@nukleas/react-cyberdesign 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/cn.ts","../src/theme/ThemeProvider.tsx","../src/components/Accordion.tsx","../src/components/Alert.tsx","../src/components/Modal.tsx","../src/components/Button.tsx","../src/components/AlertDialog.tsx","../src/components/AspectRatio.tsx","../src/components/AugButton.tsx","../src/components/AugPanel.tsx","../src/components/Avatar.tsx","../src/components/Badge.tsx","../src/components/BottomNav.tsx","../src/components/Breadcrumb.tsx","../src/components/ButtonGroup.tsx","../src/components/Calendar.tsx","../src/components/Card.tsx","../src/components/Carousel.tsx","../src/components/Chip.tsx","../src/components/Input.tsx","../src/components/PanelHeader.tsx","../src/components/Spinner.tsx","../src/components/Chat.tsx","../src/components/Checkbox.tsx","../src/components/Clock.tsx","../src/components/Collapsible.tsx","../src/components/Combobox.tsx","../src/components/Command.tsx","../src/components/ContextMenu.tsx","../src/components/Table.tsx","../src/components/Empty.tsx","../src/components/DataTable.tsx","../src/components/DatePicker.tsx","../src/components/Dialog.tsx","../src/components/Sheet.tsx","../src/components/Drawer.tsx","../src/components/Dropdown.tsx","../src/components/DropdownMenu.tsx","../src/components/FeedItem.tsx","../src/components/Field.tsx","../src/components/Gauge.tsx","../src/components/GlowCard.tsx","../src/components/HBar.tsx","../src/components/HoverCard.tsx","../src/components/HudBar.tsx","../src/components/HudFrame.tsx","../src/components/InputGroup.tsx","../src/components/InputOTP.tsx","../src/components/Interference.tsx","../src/components/Item.tsx","../src/components/Kbd.tsx","../src/components/Label.tsx","../src/components/Menubar.tsx","../src/components/Select.tsx","../src/components/NativeSelect.tsx","../src/components/NavigationMenu.tsx","../src/components/Pagination.tsx","../src/components/Popover.tsx","../src/components/Progress.tsx","../src/components/Radio.tsx","../src/components/RadioGroup.tsx","../src/components/Resizable.tsx","../src/components/Scanner.tsx","../src/components/ScrollArea.tsx","../src/components/SectionHeader.tsx","../src/components/Separator.tsx","../src/components/Sidebar.tsx","../src/components/Skeleton.tsx","../src/components/Slider.tsx","../src/components/Spreadsheet.tsx","../src/components/Stat.tsx","../src/components/StatusBar.tsx","../src/components/StatusDot.tsx","../src/components/StatusPill.tsx","../src/components/Switch.tsx","../src/components/Tabs.tsx","../src/components/Terminal.tsx","../src/components/Textarea.tsx","../src/components/Ticker.tsx","../src/components/Toast.tsx","../src/components/Toaster.tsx","../src/components/Toggle.tsx","../src/components/ToggleGroup.tsx","../src/components/Tooltip.tsx","../src/components/Transport.tsx","../src/components/Typography.tsx"],"names":["createContext","useContext","useMemo","jsx","jsxs","Fragment","useState","Children","isValidElement","useEffect","useRef","useCallback","n","_"],"mappings":";;;;;;AACO,SAAS,MAAM,KAAA,EAAyD;AAC7E,EAAA,OAAO,KAAA,CAAM,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACvC;ACsBA,IAAM,YAAA,GAAeA,oBAAuB,QAAQ,CAAA;AAG7C,SAAS,QAAA,GAAoB;AAClC,EAAA,OAAOC,iBAAW,YAAY,CAAA;AAChC;AAYO,SAAS,aAAA,CAAc;AAAA,EAC5B,KAAA,GAAQ,QAAA;AAAA,EACR,IAAA,GAAO,KAAA;AAAA,EACP,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,MAAM,QAAQC,aAAA,CAAQ,MAAM,KAAA,EAAO,CAAC,KAAK,CAAC,CAAA;AAE1C,EAAA,uBACEC,cAAA,CAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,KAAA,EACrB,QAAA,kBAAAA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAW,EAAA,CAAG,CAAA,MAAA,EAAS,KAAK,CAAA,CAAA,EAAI,IAAA,IAAQ,WAAW,SAAS,CAAA;AAAA,MAC5D,eAAA,EAAe,KAAA;AAAA,MACd,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;ACrCA,SAAS,aAAA,CAAc,EAAE,KAAA,EAAO,IAAA,EAAM,UAAU,SAAA,GAAY,EAAA,EAAI,GAAG,IAAA,EAAK,EAAuB;AAC7F,EAAA,uBACEC,eAAA,CAAC,aAAQ,SAAA,EAAW,EAAA,CAAG,sBAAsB,SAAS,CAAA,EAAI,GAAG,IAAA,EAC3D,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,SAAA,EAAA,EAAQ,WAAU,uBAAA,EAChB,QAAA,EAAA;AAAA,MAAA,IAAA,IAAQ,wBAAQD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAsB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,MAC3D;AAAA,KAAA,EACH,CAAA;AAAA,oBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EACb,0BAAAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACb,0BAAAA,cAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,6BAAA,EAA+B,QAAA,EAAS,GACzD,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAWA,SAAS,aAAA,CAAc;AAAA,EACrB,KAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,cAAA;AAAA,QACA,OAAA,KAAY,SAAA,IAAa,CAAA,cAAA,EAAiB,OAAO,CAAA,CAAA;AAAA,QACjD;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,kBACG,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,sBACfA,cAAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UAEC,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,MAAM,IAAA,CAAK,IAAA;AAAA,UACX,MAAM,IAAA,CAAK,WAAA;AAAA,UAEV,QAAA,EAAA,IAAA,CAAK;AAAA,SAAA;AAAA,QALD;AAAA,OAOR,CAAA,GACD;AAAA;AAAA,GACN;AAEJ;AAEO,IAAM,YAAY,MAAA,CAAO,MAAA,CAAO,eAAe,EAAE,IAAA,EAAM,eAAe;AC7DtE,SAAS,KAAA,CAAM;AAAA,EACpB,OAAA,GAAU,MAAA;AAAA,EACV,IAAA;AAAA,EACA,MAAA,GAAS,KAAA;AAAA,EACT,KAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAe;AACb,EAAA,uBACEC,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,UAAA;AAAA,QACA,aAAa,OAAO,CAAA,CAAA;AAAA,QACpB,SAAS,IAAA,IAAQ,cAAA;AAAA,QACjB,MAAA,IAAU,kBAAA;AAAA,QACV;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,IAAA,IAAQ,wBAAQD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAkB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,wBACxDC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,KAAA,IAAS,wBAAQD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAmB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACzD,YAAY,IAAA,oBAAQA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAkB,QAAA,EAAS;AAAA,SAAA,EACjE,CAAA;AAAA,QACC,SAAA,oBACCA,cAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,qBAAoB,OAAA,EAAS,SAAA,EAAW,YAAA,EAAW,SAAA,EAAU,QAAA,EAAA,QAAA,EAE/E;AAAA;AAAA;AAAA,GAEJ;AAEJ;AClCO,SAAS,KAAA,CAAM;AAAA,EACpB,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA,GAAO,SAAA;AAAA,EACP,SAAA,GAAY,KAAA;AAAA,EACZ,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAe;AACb,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,IAAA,IAAQ,SAAS,CAAA;AAAA,MACnD,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,IAAI,CAAA,CAAE,MAAA,KAAW,CAAA,CAAE,aAAA,EAAe,OAAA,IAAU;AAAA,MAC9C,CAAA;AAAA,MAEA,QAAA,kBAAAC,eAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,GAAG,UAAA,EAAY,IAAA,KAAS,aAAa,CAAA,UAAA,EAAa,IAAI,IAAI,SAAS,CAAA;AAAA,UAC9E,IAAA,EAAK,QAAA;AAAA,UACL,YAAA,EAAW,MAAA;AAAA,UACV,GAAG,IAAA;AAAA,UAEF,QAAA,EAAA;AAAA,YAAA,CAAA,KAAA,IAAS,QAAQ,CAAC,SAAA,qBAClBA,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kBAAA,EACZ,QAAA,EAAA;AAAA,cAAA,KAAA,IAAS,wBAAQD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAmB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,cAC1D,CAAC,SAAA,oBACAA,cAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,iBAAA,EAAkB,OAAA,EAAS,OAAA,EAAS,YAAA,EAAW,OAAA,EAAQ,QAAA,EAAA,QAAA,EAEzE;AAAA,aAAA,EAEJ,CAAA;AAAA,4BAEFA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAkB,QAAA,EAAS,CAAA;AAAA,YACzC,UAAU,IAAA,oBAAQA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAoB,QAAA,EAAA,MAAA,EAAO;AAAA;AAAA;AAAA;AAC/D;AAAA,GACF;AAEJ;AC9CO,SAAS,MAAA,CAAO;AAAA,EACrB,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,IAAA,GAAO,KAAA;AAAA,EACP,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgB;AACd,EAAA,uBACEA,cAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,QAAA;AAAA,QACA,OAAA,KAAY,SAAA,IAAa,CAAA,QAAA,EAAW,OAAO,CAAA,CAAA;AAAA,QAC3C,SAAS,IAAA,IAAQ,YAAA;AAAA,QACjB,IAAA,IAAQ,cAAA;AAAA,QACR;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACdO,SAAS,WAAA,CAAY;AAAA,EAC1B,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,SAAA;AAAA,EACR,QAAA;AAAA,EACA,YAAA,GAAe,SAAA;AAAA,EACf,WAAA,GAAc,QAAA;AAAA,EACd,SAAA;AAAA,EACA,WAAA,GAAc;AAChB,CAAA,EAAqB;AACnB,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA,EAAK,IAAA;AAAA,MACL,MAAA,kBACEC,eAAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAAF,eAAC,MAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,OAAA,EAAS,SAC5B,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,wBACAA,cAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,cAAc,QAAA,GAAW,SAAA;AAAA,YAClC,SAAS,MAAM;AACb,cAAA,SAAA,IAAY;AACZ,cAAA,OAAA,IAAU;AAAA,YACZ,CAAA;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA;AACH,OAAA,EACF,CAAA;AAAA,MAGD;AAAA;AAAA,GACH;AAEJ;ACjDO,SAAS,WAAA,CAAY;AAAA,EAC1B,QAAQ,EAAA,GAAK,CAAA;AAAA,EACb,SAAA,GAAY,EAAA;AAAA,EACZ,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,MAAA,GAAwB;AAAA,IAC5B,GAAG,KAAA;AAAA,IACH,aAAA,EAAe,CAAA,EAAI,CAAA,GAAI,KAAA,GAAS,GAAG,CAAA,CAAA;AAAA,GACrC;AACA,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAmB,SAAS,CAAA,EAAG,KAAA,EAAO,MAAA,EAAS,GAAG,IAAA,EAClE,QAAA,EACH,CAAA;AAEJ;ACZO,SAAS,SAAA,CAAU;AAAA,EACxB,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,OAAA,GAAU,KAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,uBACEA,cAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,YAAA;AAAA,QACA,YAAY,SAAA,IAAa,qBAAA;AAAA,QACzB,SAAS,IAAA,IAAQ,gBAAA;AAAA,QACjB,SAAS,IAAA,IAAQ,gBAAA;AAAA,QACjB,OAAA,IAAW,iBAAA;AAAA,QACX;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACzBO,SAAS,QAAA,CAAS;AAAA,EACvB,IAAA,GAAO,IAAA;AAAA,EACP,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,cAAA;AAAA,QACA,SAAS,IAAA,IAAQ,kBAAA;AAAA,QACjB,SAAS,IAAA,IAAQ,kBAAA;AAAA,QACjB,QAAA,IAAY,iBAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACdO,SAAS,MAAA,CAAO;AAAA,EACrB,GAAA;AAAA,EACA,GAAA,GAAM,EAAA;AAAA,EACN,QAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,IAAA,GAAO,KAAA;AAAA,EACP,MAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAgB;AACd,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,WAAA;AAAA,QACA,IAAA,KAAS,IAAA,IAAQ,CAAA,WAAA,EAAc,IAAI,CAAA,CAAA;AAAA,QACnC,IAAA,IAAQ,iBAAA;AAAA,QACR;AAAA,OACF;AAAA,MACA,aAAA,EAAa,MAAA;AAAA,MACZ,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA,GAAA,IAAO,IAAA,mBACNA,cAAAA,CAAC,SAAI,SAAA,EAAU,kBAAA,EAAmB,GAAA,EAAU,GAAA,EAAU,oBAEtDA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAuB,QAAA,EAAA,QAAA,EAAS;AAAA;AAAA,GAEpD;AAEJ;AAUO,SAAS,WAAA,CAAY,EAAE,IAAA,EAAM,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,MAAK,EAAqB;AACzF,EAAA,uBACEC,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,iBAAA,EAAmB,SAAS,CAAA,EAAI,GAAG,IAAA,EACnD,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,IAAA,IAAQ,QAAQ,IAAA,GAAO,CAAA,oBAAKA,eAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,uBAAA,EAAwB,QAAA,EAAA;AAAA,MAAA,GAAA;AAAA,MAAE;AAAA,KAAA,EAAK;AAAA,GAAA,EAC9E,CAAA;AAEJ;AAEA,MAAA,CAAO,KAAA,GAAQ,WAAA;ACvDR,SAAS,KAAA,CAAM;AAAA,EACpB,KAAA,GAAQ,QAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAe;AACb,EAAA,uBACED,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,CAAA,UAAA,EAAa,KAAK,CAAA,CAAA,EAAI,SAAS,CAAA,EAAI,GAAG,MACnE,QAAA,EACH,CAAA;AAEJ;ACDO,SAAS,SAAA,CAAU;AAAA,EACxB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,SAAS,CAAA,EAAI,GAAG,IAAA,EACjD,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,IAAA,MAAM,MAAA,GAAS,UAAU,IAAA,CAAK,EAAA;AAC9B,IAAA,uBACEC,eAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QAEC,IAAA,EAAK,QAAA;AAAA,QACL,UAAU,IAAA,CAAK,QAAA;AAAA,QACf,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,MAAA,IAAU,WAAW,CAAA;AAAA,QAC1D,eAAa,MAAA,IAAU,MAAA;AAAA,QACvB,OAAA,EAAS,MAAM,aAAA,GAAgB,IAAA,CAAK,EAAE,CAAA;AAAA,QAErC,QAAA,EAAA;AAAA,UAAA,IAAA,CAAK,IAAA,IAAQ,wBAAQD,cAAAA,CAAC,UAAK,SAAA,EAAU,qBAAA,EAAuB,eAAK,IAAA,EAAK,CAAA;AAAA,0BACvEA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EAAwB,eAAK,KAAA,EAAM,CAAA;AAAA,UAClD,IAAA,CAAK,SAAS,IAAA,oBACbA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EAAwB,QAAA,EAAA,IAAA,CAAK,KAAA,EAAM;AAAA;AAAA,OAAA;AAAA,MAVhD,IAAA,CAAK;AAAA,KAYZ;AAAA,EAEJ,CAAC,CAAA,EACH,CAAA;AAEJ;AC7BO,SAAS,UAAA,CAAW;AAAA,EACzB,KAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,cAAc,SAAA,GAAY,YAAA;AAAA,EAC1B,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,SAAA,GAAY,MAAM,MAAA,GAAS,CAAA;AACjC,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,cAAY,SAAA,EAAY,GAAG,MAC9B,QAAA,kBAAAA,cAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,eAAA;AAAA,QACA,YAAY,OAAA,IAAW,sBAAA;AAAA,QACvB,YAAY,KAAA,IAAS,oBAAA;AAAA,QACrB;AAAA,OACF;AAAA,MAEC,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,KAAM;AACtB,QAAA,MAAM,QAAA,GAAW,IAAA,CAAK,MAAA,IAAU,CAAA,KAAM,SAAA;AACtC,QAAA,uBACEA,cAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,QAAA,IAAY,6BAA6B,CAAA;AAAA,YAE7E,sBAAY,IAAA,CAAK,IAAA,IAAQ,uBACxBA,cAAAA,CAAC,UAAM,QAAA,EAAA,IAAA,CAAK,KAAA,EAAM,oBAElBA,cAAAA,CAAC,OAAE,SAAA,EAAU,qBAAA,EAAsB,MAAM,IAAA,CAAK,IAAA,EAC3C,eAAK,KAAA,EACR;AAAA,WAAA;AAAA,UARG;AAAA,SAUP;AAAA,MAEJ,CAAC;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AClDO,SAAS,WAAA,CAAY;AAAA,EAC1B,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,cAAA,EAAgB,QAAA,IAAY,0BAA0B,SAAS,CAAA;AAAA,MAC7E,IAAA,EAAK,OAAA;AAAA,MACJ,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACrBA,IAAM,QAAA,GAAW,CAAC,IAAA,EAAM,IAAA,EAAM,MAAM,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI,CAAA;AAE1D,SAAS,aAAa,CAAA,EAAS;AAC7B,EAAA,OAAO,IAAI,KAAK,CAAA,CAAE,WAAA,IAAe,CAAA,CAAE,QAAA,IAAY,CAAC,CAAA;AAClD;AAEA,SAAS,YAAY,CAAA,EAAS;AAC5B,EAAA,OAAO,IAAI,IAAA,CAAK,CAAA,CAAE,WAAA,EAAY,EAAG,CAAA,CAAE,QAAA,EAAS,GAAI,CAAA,EAAG,CAAC,CAAA,CAAE,OAAA,EAAQ;AAChE;AAEA,SAAS,OAAA,CAAQ,GAAS,CAAA,EAAS;AACjC,EAAA,OACE,EAAE,WAAA,EAAY,KAAM,CAAA,CAAE,WAAA,MACtB,CAAA,CAAE,QAAA,EAAS,KAAM,CAAA,CAAE,UAAS,IAC5B,CAAA,CAAE,OAAA,EAAQ,KAAM,EAAE,OAAA,EAAQ;AAE9B;AAEA,SAAS,YAAY,CAAA,EAAS;AAC5B,EAAA,OAAO,CAAA,CAAE,eAAe,MAAA,EAAW,EAAE,OAAO,MAAA,EAAQ,IAAA,EAAM,WAAW,CAAA;AACvE;AAeO,SAAS,QAAA,CAAS;AAAA,EACvB,QAAA;AAAA,EACA,eAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIG,cAAA;AAAA,IAAS,MACjD,YAAA,CAAa,YAAA,IAAgB,eAAA,oBAAmB,IAAI,MAAM;AAAA,GAC5D;AACA,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIA,eAA2B,eAAe,CAAA;AAE1F,EAAA,MAAM,IAAA,GAAO,YAAA,CAAa,KAAA,IAAS,aAAa,CAAA;AAChD,EAAA,MAAM,QAAQ,QAAA,IAAY,gBAAA;AAC1B,EAAA,MAAM,QAAQJ,aAAAA,CAAQ,0BAAU,IAAA,EAAK,EAAG,EAAE,CAAA;AAE1C,EAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAAY;AAC3B,IAAA,MAAM,IAAA,GAAO,aAAa,CAAC,CAAA;AAC3B,IAAA,IAAI,KAAA,IAAS,IAAA,EAAM,gBAAA,CAAiB,IAAI,CAAA;AACxC,IAAA,aAAA,GAAgB,IAAI,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,MAAM,KAAA,GAAQA,cAAQ,MAAM;AAC1B,IAAA,MAAM,QAAA,GAAW,KAAK,MAAA,EAAO;AAC7B,IAAA,MAAM,KAAA,GAAQ,YAAY,IAAI,CAAA;AAC9B,IAAA,MAAM,SAAA,GAAY,WAAA,CAAY,IAAI,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,EAAG,IAAA,CAAK,QAAA,EAAS,GAAI,CAAA,EAAG,CAAC,CAAC,CAAA;AAClF,IAAA,MAAM,MAA+C,EAAC;AACtD,IAAA,KAAA,IAAS,CAAA,GAAI,QAAA,GAAW,CAAA,EAAG,CAAA,IAAK,GAAG,CAAA,EAAA,EAAK;AACtC,MAAA,GAAA,CAAI,IAAA,CAAK;AAAA,QACP,IAAA,EAAM,IAAI,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,EAAG,IAAA,CAAK,QAAA,EAAS,GAAI,CAAA,EAAG,SAAA,GAAY,CAAC,CAAA;AAAA,QACrE,OAAA,EAAS;AAAA,OACV,CAAA;AAAA,IACH;AACA,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,IAAK,KAAA,EAAO,CAAA,EAAA,EAAK;AAC/B,MAAA,GAAA,CAAI,IAAA,CAAK,EAAE,IAAA,EAAM,IAAI,KAAK,IAAA,CAAK,WAAA,EAAY,EAAG,IAAA,CAAK,UAAS,EAAG,CAAC,CAAA,EAAG,OAAA,EAAS,OAAO,CAAA;AAAA,IACrF;AACA,IAAA,OAAO,GAAA,CAAI,MAAA,GAAS,CAAA,KAAM,CAAA,EAAG;AAC3B,MAAA,MAAM,IAAA,GAAO,GAAA,CAAI,GAAA,CAAI,MAAA,GAAS,CAAC,CAAA,CAAE,IAAA;AACjC,MAAA,GAAA,CAAI,IAAA,CAAK;AAAA,QACP,IAAA,EAAM,IAAI,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,EAAG,IAAA,CAAK,QAAA,EAAS,EAAG,IAAA,CAAK,OAAA,EAAQ,GAAI,CAAC,CAAA;AAAA,QACtE,OAAA,EAAS;AAAA,OACV,CAAA;AAAA,IACH;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,uBACEE,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,aAAA,EAAe,SAAS,CAAA,EAAI,GAAG,IAAA,EAChD,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,sBAAAD,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAA,WAAA,CAAY,IAAI,CAAA,EAAE,CAAA;AAAA,sBACxDC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACb,QAAA,EAAA;AAAA,wBAAAD,cAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,sBAAA;AAAA,YACV,YAAA,EAAW,gBAAA;AAAA,YACX,OAAA,EAAS,MAAM,OAAA,CAAQ,IAAI,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,EAAG,IAAA,CAAK,QAAA,EAAS,GAAI,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,YAC5E,QAAA,EAAA;AAAA;AAAA,SAED;AAAA,wBACAA,cAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,sBAAA;AAAA,YACV,YAAA,EAAW,YAAA;AAAA,YACX,OAAA,EAAS,MAAM,OAAA,CAAQ,IAAI,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,EAAG,IAAA,CAAK,QAAA,EAAS,GAAI,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,YAC5E,QAAA,EAAA;AAAA;AAAA;AAED,OAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,oBACAC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,qBACbD,cAAAA,CAAC,SAAY,SAAA,EAAU,sBAAA,EACpB,QAAA,EAAA,CAAA,EAAA,EADO,CAEV,CACD,CAAA;AAAA,MACA,MAAM,GAAA,CAAI,CAAC,EAAE,IAAA,EAAM,SAAQ,KAAM;AAChC,QAAA,MAAM,UAAA,GAAa,KAAA,GAAQ,OAAA,CAAQ,IAAA,EAAM,KAAK,CAAA,GAAI,KAAA;AAClD,QAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,IAAA,EAAM,KAAK,CAAA;AACnC,QAAA,uBACEA,cAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAW,EAAA;AAAA,cACT,kBAAA;AAAA,cACA,OAAA,IAAW,YAAA;AAAA,cACX,OAAA,IAAW,UAAA;AAAA,cACX,UAAA,IAAc;AAAA,aAChB;AAAA,YACA,SAAS,MAAM;AACb,cAAA,IAAI,QAAA,IAAY,IAAA,EAAM,mBAAA,CAAoB,IAAI,CAAA;AAC9C,cAAA,QAAA,GAAW,IAAI,CAAA;AAAA,YACjB,CAAA;AAAA,YAEC,eAAK,OAAA;AAAQ,WAAA;AAAA,UAbT,KAAK,WAAA;AAAY,SAcxB;AAAA,MAEJ,CAAC;AAAA,KAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;ACpIO,SAAS,IAAA,CAAK,EAAE,IAAA,GAAO,KAAA,EAAO,YAAY,EAAA,EAAI,QAAA,EAAU,GAAG,IAAA,EAAK,EAAc;AACnF,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,SAAA,EAAW,IAAA,IAAQ,eAAA,EAAiB,SAAS,CAAA,EAAI,GAAG,IAAA,EACpE,QAAA,EACH,CAAA;AAEJ;AAQO,SAAS,UAAA,CAAW,EAAE,GAAA,GAAM,KAAA,EAAO,YAAY,EAAA,EAAI,QAAA,EAAU,GAAG,IAAA,EAAK,EAAoB;AAC9F,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAmB,GAAA,IAAO,sBAAA,EAAwB,SAAS,CAAA,EAAI,GAAG,IAAA,EAClF,QAAA,EACH,CAAA;AAEJ;AAEO,SAAS,UAAU,EAAE,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,MAAK,EAAuC;AACnG,EAAA,uBACEA,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,EAAA,CAAG,kBAAkB,SAAS,CAAA,EAAI,GAAG,IAAA,EACjD,QAAA,EACH,CAAA;AAEJ;AAEO,SAAS,gBAAgB,EAAE,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,MAAK,EAAyC;AAC3G,EAAA,uBACEA,cAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,EAAA,CAAG,wBAAwB,SAAS,CAAA,EAAI,GAAG,IAAA,EACtD,QAAA,EACH,CAAA;AAEJ;AAEO,SAAS,YAAY,EAAE,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,MAAK,EAAmC;AACjG,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,oBAAoB,SAAS,CAAA,EAAI,GAAG,IAAA,EACpD,QAAA,EACH,CAAA;AAEJ;AAQO,SAAS,UAAA,CAAW,EAAE,GAAA,GAAM,KAAA,EAAO,YAAY,EAAA,EAAI,QAAA,EAAU,GAAG,IAAA,EAAK,EAAoB;AAC9F,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAmB,GAAA,IAAO,sBAAA,EAAwB,SAAS,CAAA,EAAI,GAAG,IAAA,EAClF,QAAA,EACH,CAAA;AAEJ;AAEA,MAAA,CAAO,OAAO,IAAA,EAAM;AAAA,EAClB,MAAA,EAAQ,UAAA;AAAA,EACR,KAAA,EAAO,SAAA;AAAA,EACP,WAAA,EAAa,eAAA;AAAA,EACb,OAAA,EAAS,WAAA;AAAA,EACT,MAAA,EAAQ;AACV,CAAC,CAAA;AC9DM,SAAS,QAAA,CAAS;AAAA,EACvB,QAAA;AAAA,EACA,YAAA,GAAe,CAAA;AAAA,EACf,QAAA,GAAW,IAAA;AAAA,EACX,YAAA,GAAe,IAAA;AAAA,EACf,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,MAAM,SAASI,cAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA,CAAE,OAAOC,oBAAc,CAAA;AAC/D,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIF,eAAS,YAAY,CAAA;AAC/C,EAAA,MAAM,QAAQ,MAAA,CAAO,MAAA;AACrB,EAAA,MAAM,KAAK,CAAC,CAAA,KAAc,UAAW,CAAA,GAAI,KAAA,GAAS,SAAS,KAAK,CAAA;AAEhE,EAAA,uBACEF,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,aAAA,EAAe,SAAS,CAAA,EAAI,GAAG,IAAA,EAChD,QAAA,EAAA;AAAA,oBAAAD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACb,QAAA,kBAAAA,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,oBAAA;AAAA,QACV,OAAO,EAAE,SAAA,EAAW,CAAA,YAAA,EAAe,KAAA,GAAQ,GAAG,CAAA,EAAA,CAAA,EAAK;AAAA,QAElD,iBAAO,GAAA,CAAI,CAAC,OAAO,CAAA,qBAClBA,eAAC,KAAA,EAAA,EAAY,SAAA,EAAU,oBAAA,EACrB,QAAA,kBAAAA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAA4B,QAAA,EAAA,KAAA,EAAM,CAAA,EAAA,EADzC,CAEV,CACD;AAAA;AAAA,KACH,EACF,CAAA;AAAA,IAAA,CACE,gBAAgB,QAAA,qBAChBC,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,YAAA,oBACCD,cAAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,UAAS,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,MAAM,GAAG,KAAA,GAAQ,CAAC,CAAA,EAAG,YAAA,EAAW,YAAW,QAAA,EAAA,QAAA,EAEpF,CAAA;AAAA,MAED,QAAA,oBACCA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qBACdA,cAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,CAAA,KAAM,SAAS,WAAW,CAAA;AAAA,UAC5D,YAAA,EAAY,CAAA,YAAA,EAAe,CAAA,GAAI,CAAC,CAAA,CAAA;AAAA,UAChC,OAAA,EAAS,MAAM,QAAA,CAAS,CAAC;AAAA,SAAA;AAAA,QAJpB;AAAA,OAMR,CAAA,EACH,CAAA;AAAA,MAED,gCACCA,cAAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,UAAS,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,MAAM,GAAG,KAAA,GAAQ,CAAC,CAAA,EAAG,YAAA,EAAW,QAAO,QAAA,EAAA,QAAA,EAEhF;AAAA,KAAA,EAEJ;AAAA,GAAA,EAEJ,CAAA;AAEJ;ACxDO,SAAS,IAAA,CAAK;AAAA,EACnB,MAAA,GAAS,KAAA;AAAA,EACT,IAAA,GAAO,IAAA;AAAA,EACP,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,GAAG;AACL,CAAA,EAAc;AACZ,EAAA,uBACEA,cAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,SAAA,EAAW,GAAG,SAAA,EAAW,IAAA,KAAS,QAAQ,aAAA,EAAe,MAAA,IAAU,aAAa,SAAS,CAAA;AAAA,MACzF,eAAa,MAAA,IAAU,MAAA;AAAA,MACvB,cAAA,EAAc,MAAA;AAAA,MACb,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAMO,SAAS,QAAQ,EAAE,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,MAAK,EAAiB;AAC3E,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,eAAe,SAAS,CAAA,EAAI,GAAG,IAAA,EAC/C,QAAA,EACH,CAAA;AAEJ;AChCO,SAAS,KAAA,CAAM;AAAA,EACpB,IAAA,GAAO,IAAA;AAAA,EACP,MAAA,GAAS,KAAA;AAAA,EACT,KAAA,GAAQ,KAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,IAAA,GAAO,MAAA;AAAA,EACP,GAAG;AACL,CAAA,EAAe;AACb,EAAA,uBACEA,cAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,UAAA;AAAA,QACA,SAAS,IAAA,IAAQ,cAAA;AAAA,QACjB,SAAS,IAAA,IAAQ,cAAA;AAAA,QACjB,MAAA,IAAU,kBAAA;AAAA,QACV,KAAA,IAAS,iBAAA;AAAA,QACT;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;ACxBO,SAAS,WAAA,CAAY;AAAA,EAC1B,OAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,uBACEC,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,iBAAA,EAAmB,SAAS,CAAA,EAAI,GAAG,IAAA,EACnD,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,WAAW,IAAA,oBACVD,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAA4B,QAAA,EAAA,OAAA,EAAQ;AAAA,GAAA,EAEvD,CAAA;AAEJ;ACZO,SAAS,OAAA,CAAQ;AAAA,EACtB,IAAA,GAAO,IAAA;AAAA,EACP,OAAA,GAAU,MAAA;AAAA,EACV,KAAA,GAAQ,SAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAY,KAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,YAAA;AAAA,QACA,IAAA,KAAS,IAAA,IAAQ,CAAA,YAAA,EAAe,IAAI,CAAA,CAAA;AAAA,QACpC,YAAY,MAAA,IAAU,kBAAA;AAAA,QACtB,YAAY,MAAA,IAAU,kBAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA,OAAA,KAAY,MAAA,oBAAUA,cAAAA,CAAC,MAAA,EAAA,EAAK;AAAA;AAAA,GAC/B;AAEJ;ACOO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA,GAAS,KAAA;AAAA,EACT,MAAA,GAAS,KAAA;AAAA,EACT,SAAA,GAAY,KAAA;AAAA,EACZ,SAAA,GAAY,EAAA;AAAA,EACZ,IAAA,GAAO,QAAA;AAAA,EACP,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,GAAA,GAAM,KAAA,KAAU,OAAO,KAAA,KAAU,WAAW,KAAA,GAAQ,MAAA,CAAA;AAC1D,EAAA,uBACEC,eAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,KAAA,EAAO,GAAA;AAAA,MACP,YAAA,EAAY,OAAO,GAAA,KAAQ,QAAA,GAAW,GAAA,GAAM,MAAA;AAAA,MAC5C,SAAA,EAAW,EAAA;AAAA,QACT,gBAAA;AAAA,QACA,MAAA,IAAU,WAAA;AAAA,QACV,MAAA,IAAU,wBAAA;AAAA,QACV;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,IAAA,IAAQ,wBAAQD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAwB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,QAAA,CAC5D,SAAA,IAAc,CAAC,IAAA,IAAQ,KAAA,IAAS,IAAA,qBAChCA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QAEhD;AAAA;AAAA;AAAA,GACH;AAEJ;AAWO,SAAS,WAAA,CAAY;AAAA,EAC1B,SAAA,GAAY,SAAA;AAAA,EACZ,OAAA,GAAU,KAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,iBAAA;AAAA,QACA,SAAA,KAAc,YAAY,0BAAA,GAA6B,wBAAA;AAAA,QACvD,OAAA,IAAW,YAAA;AAAA,QACX;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAWO,SAAS,aAAA,CAAc;AAAA,EAC5B,IAAA;AAAA,EACA,QAAA,GAAW,MAAA;AAAA,EACX,MAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIG,eAAS,KAAK,CAAA;AAE1C,EAAA,MAAM,OAAO,YAAY;AACvB,IAAA,IAAI;AACF,MAAA,MAAM,SAAA,CAAU,SAAA,EAAW,SAAA,CAAU,IAAI,CAAA;AAAA,IAC3C,CAAA,CAAA,MAAQ;AAAA,IAER;AACA,IAAA,SAAA,CAAU,IAAI,CAAA;AACd,IAAA,MAAA,GAAS,IAAI,CAAA;AACb,IAAA,MAAA,CAAO,UAAA,CAAW,MAAM,SAAA,CAAU,KAAK,GAAG,IAAI,CAAA;AAAA,EAChD,CAAA;AAEA,EAAA,uBACEF,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,cAAA,EAAgB,SAAS,CAAA,EAAI,GAAG,IAAA,EACjD,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,sBAAAD,cAAAA,CAAC,UAAM,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,sBAChBC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACZ,QAAA,EAAA;AAAA,QAAA,KAAA,oBACCD,cAAAA,CAAC,UAAA,EAAA,EAAW,IAAA,EAAK,QAAA,EAAI,KAAA,EAAM,KAAA,EAAM,KAAA,EAAM,YAAA,EAAa,OAAA,EAAS,MAAM,KAAA,CAAM,IAAI,CAAA,EAAG,CAAA;AAAA,QAEjF,QAAA,oBACCA,cAAAA,CAAC,UAAA,EAAA,EAAW,MAAK,QAAA,EAAI,KAAA,EAAM,QAAA,EAAS,KAAA,EAAM,oBAAA,EAAqB,OAAA,EAAS,MAAM,QAAA,CAAS,IAAI,CAAA,EAAG,CAAA;AAAA,wBAEhGA,cAAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAM,SAAS,QAAA,GAAM,QAAA;AAAA,YACrB,KAAA,EAAO,SAAS,QAAA,GAAW,MAAA;AAAA,YAC3B,KAAA,EAAM,WAAA;AAAA,YACN,MAAA,EAAQ,MAAA;AAAA,YACR,OAAA,EAAS;AAAA;AAAA;AACX,OAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,oBACAA,cAAAA,CAAC,KAAA,EAAA,EACC,0BAAAA,cAAAA,CAAC,MAAA,EAAA,EAAM,gBAAK,CAAA,EACd;AAAA,GAAA,EACF,CAAA;AAEJ;AAoBA,IAAM,WAAA,GAAwC;AAAA,EAC5C,IAAA,EAAM,KAAA;AAAA,EACN,SAAA,EAAW,IAAA;AAAA,EACX,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO;AACT,CAAA;AAGO,SAAS,WAAA,CAAY;AAAA,EAC1B,IAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA,GAAW,SAAA;AAAA,EACX,IAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA,GAAiB,KAAA;AAAA,EACjB,UAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,QAAA,GAAW,MAAA,IAAU,IAAA,IAAQ,IAAA,IAAQ,QAAQ,IAAA,KAAS,QAAA;AAE5D,EAAA,uBACEC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,CAAA,aAAA,EAAgB,IAAI,CAAA,CAAA,EAAI,SAAS,CAAA,EAAI,GAAG,IAAA,EACvE,QAAA,EAAA;AAAA,IAAA,QAAA,IAAY,SAAS,QAAA,oBACpBA,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mBAAA,EACb,QAAA,EAAA;AAAA,sBAAAD,cAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,MAAA,IAAU,WAAA,CAAY,IAAI,CAAA,EAAE,CAAA;AAAA,MAClC,QAAQ,IAAA,oBAAQA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2BAA2B,QAAA,EAAA,IAAA,EAAK;AAAA,KAAA,EACnE,CAAA;AAAA,oBAEFC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,eAAe,CAAA,aAAA,EAAgB,IAAI,CAAA,CAAE,CAAA,EAAG,OAAO,EAAE,QAAA,EAAU,UAAA,EAAY,QAAA,EAAU,QAAO,EACxG,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,MACA,OAAA,IAAW,wBACVD,cAAAA,CAAC,eAAY,SAAA,EAAU,SAAA,EAAU,OAAA,EAAS,cAAA,EACvC,QAAA,EAAA,OAAA,EACH;AAAA,KAAA,EAEJ,CAAA;AAAA,IACC,IAAA,IAAQ,wBACPA,cAAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,QAAA,EAAU,QAAA;AAAA,QACV,MAAA,EAAQ,UAAA;AAAA,QACR,QAAA,EAAU,YAAA;AAAA,QACV,KAAA,EAAO,SAAA;AAAA,QACP,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,UAAU,GAAA;AAAI;AAAA;AACxC,GAAA,EAEJ,CAAA;AAEJ;AAOO,SAAS,UAAA,CAAW,EAAE,KAAA,GAAQ,UAAA,EAAY,YAAY,EAAA,EAAI,GAAG,MAAK,EAAoB;AAC3F,EAAA,uBACEC,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,gBAAA,EAAkB,SAAS,CAAA,EAAI,GAAG,IAAA,EACnD,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EAAuB,eAAW,IAAA,EAChD,QAAA,EAAA;AAAA,sBAAAD,eAAC,MAAA,EAAA,EAAK,CAAA;AAAA,sBACNA,eAAC,MAAA,EAAA,EAAK,CAAA;AAAA,sBACNA,eAAC,MAAA,EAAA,EAAK;AAAA,KAAA,EACR,CAAA;AAAA,IACC;AAAA,GAAA,EACH,CAAA;AAEJ;AA+BO,SAAS,IAAA,CAAK;AAAA,EACnB,KAAA,GAAQ,IAAA;AAAA,EACR,OAAA;AAAA,EACA,WAAW,EAAC;AAAA,EACZ,OAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA,GAAc,yBAAA;AAAA,EACd,QAAA;AAAA,EACA,WAAA,GAAc,MAAA;AAAA,EACd,aAAA;AAAA,EACA,MAAA,GAAS,KAAA;AAAA,EACT,WAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,aAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAc;AACZ,EAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAAiB;AACrC,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,IAAI,QAAA,EAAU;AACd,IAAA,IAAI,OAAO,IAAA,EAAK,EAAG,QAAA,GAAW,KAAA,CAAM,MAAM,CAAA;AAAA,EAC5C,CAAA;AAEA,EAAA,uBACEC,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,SAAA,EAAW,SAAS,CAAA,EAAI,GAAG,IAAA,EAC5C,QAAA,EAAA;AAAA,oBAAAD,cAAAA,CAAC,WAAA,EAAA,EAAY,OAAA,EAAmB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oBACtCC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,QAAA,CAAS,GAAA;AAAA,QAAI,CAAC,CAAA,EAAG,CAAA,KAChB,aAAA,mBACED,cAAAA,CAAC,KAAA,EAAA,EAAqB,QAAA,EAAA,aAAA,CAAc,CAAA,EAAG,CAAC,CAAA,EAAA,EAA9B,CAAA,CAAE,EAAA,IAAM,CAAwB,oBAE1CA,cAAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YAEC,MAAM,CAAA,CAAE,IAAA;AAAA,YACR,MAAM,CAAA,CAAE,IAAA;AAAA,YACR,UAAU,CAAA,CAAE,QAAA;AAAA,YACZ,MAAM,CAAA,CAAE,IAAA;AAAA,YACR,QAAQ,CAAA,CAAE,MAAA;AAAA,YAET,QAAA,EAAA,CAAA,CAAE;AAAA,WAAA;AAAA,UAPE,EAAE,EAAA,IAAM;AAAA;AAQf,OAEJ;AAAA,MACC,MAAA,oBAAUA,cAAAA,CAAC,UAAA,EAAA,EAAW,OAAO,WAAA,EAAa,CAAA;AAAA,MAC1C;AAAA,KAAA,EACH,CAAA;AAAA,IACC,OAAA,IAAW,IAAA,IAAQ,OAAA,CAAQ,MAAA,GAAS,qBACnCA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACZ,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,sBACZA,cAAAA,CAAC,IAAA,EAAA,EAA2B,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,MAAM,QAAA,GAAW,EAAE,KAAK,CAAA,EACpE,QAAA,EAAA,CAAA,CAAE,KAAA,EAAA,EADM,MAAA,CAAO,CAAA,CAAE,KAAK,CAEzB,CACD,CAAA,EACH,CAAA;AAAA,oBAEFC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,aAAA,IAAiB,wBAAQD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAA2B,QAAA,EAAA,aAAA,EAAc,CAAA;AAAA,sBAClFC,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAA,EAAoB,UAAU,YAAA,EAC5C,QAAA,EAAA;AAAA,wBAAAD,cAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA;AAAA,YACA,UAAU,CAAC,CAAA,KAAM,aAAA,GAAgB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YAC/C,WAAA;AAAA,YACA;AAAA;AAAA,SACF;AAAA,wBACAA,eAAC,MAAA,EAAA,EAAO,IAAA,EAAK,UAAS,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAK,IAAA,EAAK,QAAA,EAAU,QAAA,IAAY,CAAC,KAAA,EAAO,IAAA,IAC7E,QAAA,EAAA,QAAA,mBAAWA,eAAC,OAAA,EAAA,EAAQ,IAAA,EAAK,IAAA,EAAK,CAAA,GAAK,WAAA,EACtC;AAAA,OAAA,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AC7VO,SAAS,QAAA,CAAS,EAAE,KAAA,EAAO,WAAA,EAAa,YAAY,EAAA,EAAI,GAAG,MAAK,EAAkB;AACvF,EAAA,MAAM,KAAA,mBACJA,cAAAA,CAAC,OAAA,EAAA,EAAM,MAAK,UAAA,EAAW,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,CAAC,KAAA,IAAS,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAGtF,EAAA,IAAI,KAAA,IAAS,IAAA,IAAQ,WAAA,IAAe,IAAA,EAAM,OAAO,KAAA;AAEjD,EAAA,uBACEC,eAAAA,CAAC,OAAA,EAAA,EAAM,WAAW,EAAA,CAAG,YAAA,EAAc,SAAS,CAAA,EAC1C,QAAA,EAAA;AAAA,oBAAAD,eAAC,OAAA,EAAA,EAAM,IAAA,EAAK,YAAW,SAAA,EAAU,aAAA,EAAe,GAAG,IAAA,EAAM,CAAA;AAAA,oBACzDC,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,MAAA,KAAA;AAAA,MACA,eAAe,IAAA,oBAAQD,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAoB,QAAA,EAAA,WAAA,EAAY;AAAA,KAAA,EAC1E;AAAA,GAAA,EACF,CAAA;AAEJ;ACZO,SAAS,KAAA,CAAM;AAAA,EACpB,QAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,MAAA,GAAS,KAAA;AAAA,EACT,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAe;AACb,EAAA,MAAM,CAAC,KAAK,MAAM,CAAA,GAAIG,eAAS,sBAAM,IAAI,MAAM,CAAA;AAE/C,EAAAG,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,EAAA,GAAK,OAAO,WAAA,CAAY,MAAM,uBAAO,IAAI,IAAA,EAAM,CAAA,EAAG,GAAI,CAAA;AAC5D,IAAA,OAAO,MAAM,MAAA,CAAO,aAAA,CAAc,EAAE,CAAA;AAAA,EACtC,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,IAAA,GAAO,GAAA,CAAI,kBAAA,CAAmB,MAAA,EAAW;AAAA,IAC7C,MAAA;AAAA,IACA,IAAA,EAAM,SAAA;AAAA,IACN,MAAA,EAAQ,SAAA;AAAA,IACR,MAAA,EAAQ,SAAA;AAAA,IACR;AAAA,GACD,CAAA;AACD,EAAA,MAAM,IAAA,GAAO,GAAA,CAAI,kBAAA,CAAmB,MAAA,EAAW;AAAA,IAC7C,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,GAAA,EAAK,SAAA;AAAA,IACL;AAAA,GACD,CAAA;AAED,EAAA,uBACEL,gBAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,UAAA,EAAY,SAAS,CAAA,EAAI,GAAG,IAAA,EAC7C,QAAA,EAAA;AAAA,IAAA,QAAA,oBAAYD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAkB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,oBACpDA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAkB,QAAA,EAAA,IAAA,EAAK;AAAA,GAAA,EACzC,CAAA;AAEJ;AClCO,SAAS,WAAA,CAAY;AAAA,EAC1B,OAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd,IAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIG,eAAS,WAAW,CAAA;AACpD,EAAA,MAAM,SAAS,IAAA,IAAQ,QAAA;AAEvB,EAAA,MAAM,SAAS,MAAM;AACnB,IAAA,MAAM,OAAO,CAAC,MAAA;AACd,IAAA,IAAI,IAAA,IAAQ,IAAA,EAAM,WAAA,CAAY,IAAI,CAAA;AAClC,IAAA,YAAA,GAAe,IAAI,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,uBACEF,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAkB,MAAA,IAAU,SAAA,EAAW,SAAS,CAAA,EAAI,GAAG,IAAA,EACxE,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,YAAO,IAAA,EAAK,QAAA,EAAS,WAAU,yBAAA,EAA0B,OAAA,EAAS,MAAA,EAAQ,eAAA,EAAe,MAAA,EACxF,QAAA,EAAA;AAAA,sBAAAD,cAAAA,CAAC,UAAM,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,sBACfA,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,yBAAA,EAA0B,aAAA,EAAW,MAAC,QAAA,EAAA,QAAA,EAEtD;AAAA,KAAA,EACF,CAAA;AAAA,oBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAA2B,QAAA,EAAS;AAAA,GAAA,EACrD,CAAA;AAEJ;ACvBO,SAAS,QAAA,CAAS;AAAA,EACvB,OAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA,GAAe,EAAA;AAAA,EACf,QAAA;AAAA,EACA,WAAA,GAAc,cAAA;AAAA,EACd,SAAA,GAAY,YAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,eAAS,KAAK,CAAA;AACtC,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,eAAS,YAAY,CAAA;AACrD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,eAAS,EAAE,CAAA;AACrC,EAAA,MAAM,WAAW,KAAA,IAAS,QAAA;AAE1B,EAAA,MAAM,aAAA,GAAgB,QAAQ,IAAA,CAAK,CAAC,MAAM,CAAA,CAAE,KAAA,KAAU,QAAQ,CAAA,EAAG,KAAA,IAAS,EAAA;AAE1E,EAAA,MAAM,QAAA,GAAWJ,cAAQ,MAAM;AAC7B,IAAA,MAAM,CAAA,GAAI,KAAA,CAAM,IAAA,EAAK,CAAE,WAAA,EAAY;AACnC,IAAA,IAAI,CAAC,GAAG,OAAO,OAAA;AACf,IAAA,OAAO,OAAA,CAAQ,MAAA;AAAA,MACb,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,aAAY,CAAE,QAAA,CAAS,CAAC,CAAA,IAAK,CAAA,CAAE,KAAA,CAAM,WAAA,EAAY,CAAE,SAAS,CAAC;AAAA,KAC9E;AAAA,EACF,CAAA,EAAG,CAAC,OAAA,EAAS,KAAK,CAAC,CAAA;AAEnB,EAAA,uBACEE,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,IAAA,IAAQ,SAAA,EAAW,SAAS,CAAA,EAAI,GAAG,IAAA,EACnE,QAAA,EAAA;AAAA,oBAAAD,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,QAAA;AAAA,QACA,WAAA;AAAA,QACA,KAAA,EAAO,OAAO,KAAA,GAAQ,aAAA;AAAA,QACtB,SAAS,MAAM;AACb,UAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,UAAA,QAAA,CAAS,EAAE,CAAA;AAAA,QACb,CAAA;AAAA,QACA,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,UAAA,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AACvB,UAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,QACd,CAAA;AAAA,QACA,QAAQ,MAAM;AAEZ,UAAA,MAAA,CAAO,UAAA,CAAW,MAAM,OAAA,CAAQ,KAAK,GAAG,GAAG,CAAA;AAAA,QAC7C;AAAA;AAAA,KACF;AAAA,oBACAC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAoB,MAAK,SAAA,EACrC,QAAA,EAAA;AAAA,MAAA,QAAA,CAAS,MAAA,KAAW,CAAA,oBACnBD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAoB,KAAA,EAAO,EAAE,OAAA,EAAS,EAAA,EAAG,EACrD,QAAA,EAAA,SAAA,EACH,CAAA;AAAA,MAED,QAAA,CAAS,GAAA,CAAI,CAAC,GAAA,qBACbA,cAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,IAAA,EAAK,QAAA;AAAA,UACL,IAAA,EAAK,QAAA;AAAA,UACL,UAAU,GAAA,CAAI,QAAA;AAAA,UACd,eAAA,EAAe,IAAI,KAAA,KAAU,QAAA;AAAA,UAC7B,SAAA,EAAU,qBAAA;AAAA,UACV,WAAA,EAAa,CAAC,CAAA,KAAM,CAAA,CAAE,cAAA,EAAe;AAAA,UACrC,SAAS,MAAM;AACb,YAAA,IAAI,KAAA,IAAS,IAAA,EAAM,WAAA,CAAY,GAAA,CAAI,KAAK,CAAA;AACxC,YAAA,QAAA,GAAW,IAAI,KAAK,CAAA;AACpB,YAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,UACf,CAAA;AAAA,UAEC,QAAA,EAAA,GAAA,CAAI;AAAA,SAAA;AAAA,QAbA,GAAA,CAAI;AAAA,OAeZ;AAAA,KAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;ACxEO,SAAS,OAAA,CAAQ;AAAA,EACtB,KAAA;AAAA,EACA,WAAA,GAAc,sBAAA;AAAA,EACd,SAAA,GAAY,YAAA;AAAA,EACZ,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIG,eAAS,EAAE,CAAA;AACrC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,eAAS,CAAC,CAAA;AAEtC,EAAA,MAAM,QAAA,GAAWJ,cAAQ,MAAM;AAC7B,IAAA,MAAM,CAAA,GAAI,KAAA,CAAM,IAAA,EAAK,CAAE,WAAA,EAAY;AACnC,IAAA,IAAI,CAAC,GAAG,OAAO,KAAA;AACf,IAAA,OAAO,KAAA,CAAM,MAAA,CAAO,CAAC,IAAA,KAAS;AAC5B,MAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,KAAK,CAAA,CAAA,EAAI,KAAK,QAAA,IAAY,EAAE,CAAA,CAAA,EAAI,OAAO,KAAK,KAAA,KAAU,QAAA,GAAW,KAAK,KAAA,GAAQ,EAAE,GAAG,WAAA,EAAY;AACnH,MAAA,OAAO,GAAA,CAAI,SAAS,CAAC,CAAA;AAAA,IACvB,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,KAAA,EAAO,KAAK,CAAC,CAAA;AAEjB,EAAA,MAAM,MAAA,GAASA,cAAQ,MAAM;AAC3B,IAAA,MAAM,GAAA,uBAAU,GAAA,EAA2B;AAC3C,IAAA,KAAA,MAAW,QAAQ,QAAA,EAAU;AAC3B,MAAA,MAAM,CAAA,GAAI,KAAK,KAAA,IAAS,EAAA;AACxB,MAAA,IAAI,CAAC,IAAI,GAAA,CAAI,CAAC,GAAG,GAAA,CAAI,GAAA,CAAI,CAAA,EAAG,EAAE,CAAA;AAC9B,MAAA,GAAA,CAAI,GAAA,CAAI,CAAC,CAAA,CAAG,IAAA,CAAK,IAAI,CAAA;AAAA,IACvB;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,uBACEE,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,YAAA,EAAc,SAAS,CAAA,EAAI,GAAG,IAAA,EAC/C,QAAA,EAAA;AAAA,oBAAAD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACb,QAAA,kBAAAA,cAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,mBAAA;AAAA,QACV,KAAA,EAAO,KAAA;AAAA,QACP,WAAA;AAAA,QACA,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,UAAA,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AACvB,UAAA,SAAA,CAAU,CAAC,CAAA;AAAA,QACb,CAAA;AAAA,QACA,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,UAAA,IAAI,CAAA,CAAE,QAAQ,WAAA,EAAa;AACzB,YAAA,CAAA,CAAE,cAAA,EAAe;AACjB,YAAA,SAAA,CAAU,CAAC,MAAM,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA,EAAG,QAAA,CAAS,MAAA,GAAS,CAAC,CAAC,CAAA;AAAA,UACvD,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,SAAA,EAAW;AAC9B,YAAA,CAAA,CAAE,cAAA,EAAe;AACjB,YAAA,SAAA,CAAU,CAAC,CAAA,KAAM,IAAA,CAAK,IAAI,CAAA,GAAI,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,UACrC,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,QAAA,CAAS,MAAM,CAAA,IAAK,CAAC,QAAA,CAAS,MAAM,CAAA,CAAE,QAAA,EAAU;AAC9E,YAAA,QAAA,CAAS,MAAM,EAAE,QAAA,IAAW;AAC5B,YAAA,QAAA,GAAW,QAAA,CAAS,MAAM,CAAC,CAAA;AAAA,UAC7B;AAAA,QACF;AAAA;AAAA,KACF,EACF,CAAA;AAAA,oBACAC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EAAmB,MAAK,SAAA,EACpC,QAAA,EAAA;AAAA,MAAA,QAAA,CAAS,WAAW,CAAA,oBAAKD,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAqB,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,MACvE,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,OAAA,EAAS,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,KAAA,EAAO,UAAU,CAAA,qBACnDC,gBAAC,KAAA,EAAA,EACE,QAAA,EAAA;AAAA,QAAA,KAAA,oBAASD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAA2B,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QACzD,UAAA,CAAW,GAAA,CAAI,CAAC,IAAA,KAAS;AACxB,UAAA,MAAM,GAAA,GAAM,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAA;AACjC,UAAA,uBACEC,eAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,QAAA;AAAA,cACL,IAAA,EAAK,QAAA;AAAA,cACL,UAAU,IAAA,CAAK,QAAA;AAAA,cACf,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,GAAA,KAAQ,UAAU,aAAa,CAAA;AAAA,cACjE,iBAAe,GAAA,KAAQ,MAAA;AAAA,cACvB,YAAA,EAAc,MAAM,SAAA,CAAU,GAAG,CAAA;AAAA,cACjC,SAAS,MAAM;AACb,gBAAA,IAAA,CAAK,QAAA,IAAW;AAChB,gBAAA,QAAA,GAAW,IAAI,CAAA;AAAA,cACjB,CAAA;AAAA,cAEC,QAAA,EAAA;AAAA,gBAAA,IAAA,CAAK,KAAA;AAAA,gBACL,IAAA,CAAK,OAAO,IAAA,oBAAQD,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EAAwB,QAAA,EAAA,IAAA,CAAK,GAAA,EAAI;AAAA;AAAA,aAAA;AAAA,YAbjE,IAAA,CAAK;AAAA,WAcZ;AAAA,QAEJ,CAAC;AAAA,OAAA,EAAA,EAtBO,KAAA,IAAS,WAuBnB,CACD;AAAA,KAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;ACzFO,SAAS,WAAA,CAAY,EAAE,KAAA,EAAO,QAAA,EAAU,YAAY,EAAA,EAAI,GAAG,MAAK,EAAqB;AAC1F,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,eAAS,KAAK,CAAA;AACtC,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAIA,cAAAA,CAAS,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA;AAE7C,EAAAG,gBAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,CAAQ,KAAK,CAAA;AACjC,IAAA,MAAA,CAAO,gBAAA,CAAiB,SAAS,KAAK,CAAA;AACtC,IAAA,MAAA,CAAO,gBAAA,CAAiB,QAAA,EAAU,KAAA,EAAO,IAAI,CAAA;AAC7C,IAAA,OAAO,MAAM;AACX,MAAA,MAAA,CAAO,mBAAA,CAAoB,SAAS,KAAK,CAAA;AACzC,MAAA,MAAA,CAAO,mBAAA,CAAoB,QAAA,EAAU,KAAA,EAAO,IAAI,CAAA;AAAA,IAClD,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAAuB;AAC5C,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAA,CAAO,EAAE,CAAA,EAAG,CAAA,CAAE,SAAS,CAAA,EAAG,CAAA,CAAE,SAAS,CAAA;AACrC,IAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,EACd,CAAA;AAEA,EAAA,uBACEL,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,SAAS,CAAA,EAAG,aAAA,EAA+B,GAAG,IAAA,EAC9D,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,oBACDD,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAmB,IAAA,IAAQ,SAAS,CAAA;AAAA,QAClD,OAAO,EAAE,IAAA,EAAM,IAAI,CAAA,EAAG,GAAA,EAAK,IAAI,CAAA,EAAE;AAAA,QACjC,IAAA,EAAK,MAAA;AAAA,QAEJ,QAAA,EAAA,KAAA,CAAM,GAAA;AAAA,UAAI,CAAC,IAAA,EAAM,CAAA,KAChB,IAAA,CAAK,GAAA,mBACHA,cAAAA,CAAC,KAAA,EAAA,EAAY,SAAA,EAAU,sBAAA,EAAA,EAAb,CAAoC,CAAA,mBAE9CC,eAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,QAAA;AAAA,cACL,IAAA,EAAK,UAAA;AAAA,cACL,UAAU,IAAA,CAAK,QAAA;AAAA,cACf,SAAA,EAAW,EAAA,CAAG,uBAAA,EAAyB,IAAA,CAAK,UAAU,+BAA+B,CAAA;AAAA,cACrF,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,gBAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,gBAAA,IAAA,CAAK,QAAA,IAAW;AAChB,gBAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,cACf,CAAA;AAAA,cAEC,QAAA,EAAA;AAAA,gBAAA,IAAA,CAAK,KAAA;AAAA,gBACL,IAAA,CAAK,OAAO,IAAA,oBAAQD,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EAAwB,QAAA,EAAA,IAAA,CAAK,GAAA,EAAI;AAAA;AAAA,aAAA;AAAA,YAZjE;AAAA;AAaP;AAEJ;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;AClDO,SAAS,KAAA,CAAM;AAAA,EACpB,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,MAAA,GAAS,KAAA;AAAA,EACT,SAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAe;AACb,EAAA,MAAM,wBACJA,cAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,UAAA;AAAA,QACA,OAAA,IAAW,mBAAA;AAAA,QACX,QAAA,IAAY,oBAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAGF,EAAA,IAAI,CAAC,QAAQ,OAAO,KAAA;AAEpB,EAAA,MAAM,EAAE,WAAW,aAAA,GAAgB,EAAA,EAAI,GAAG,QAAA,EAAS,GAAI,aAAa,EAAC;AACrE,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,iBAAiB,aAAa,CAAA,EAAI,GAAG,QAAA,EACrD,QAAA,EAAA,KAAA,EACH,CAAA;AAEJ;AAOA,SAAS,SAAA,CAAU,EAAE,QAAA,EAAU,GAAG,MAAK,EAAmB;AACxD,EAAA,uBAAOA,cAAAA,CAAC,OAAA,EAAA,EAAO,GAAG,MAAO,QAAA,EAAS,CAAA;AACpC;AAOA,SAAS,SAAA,CAAU,EAAE,QAAA,EAAU,GAAG,MAAK,EAAmB;AACxD,EAAA,uBAAOA,cAAAA,CAAC,OAAA,EAAA,EAAO,GAAG,MAAO,QAAA,EAAS,CAAA;AACpC;AAOA,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,GAAG,MAAK,EAAkB;AACtD,EAAA,uBAAOA,cAAAA,CAAC,IAAA,EAAA,EAAI,GAAG,MAAO,QAAA,EAAS,CAAA;AACjC;AAWA,SAAS,eAAA,CAAgB;AAAA,EACvB,OAAA,GAAU,KAAA;AAAA,EACV,IAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyB;AACvB,EAAA,MAAM,QAAA,GAAW,IAAA,KAAS,IAAA,GAAO,EAAA,GAAK,IAAA,IAAQ,MAAA;AAC9C,EAAA,uBACEA,cAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,OAAA,IAAW,eAAA,EAAiB,SAAS,CAAA;AAAA,MACnD,WAAA,EAAW,QAAA;AAAA,MACV,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAWA,SAAS,SAAA,CAAU;AAAA,EACjB,OAAA,GAAU,KAAA;AAAA,EACV,MAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,uBACEA,cAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,OAAA,IAAW,eAAA,EAAiB,SAAS,CAAA;AAAA,MACnD,aAAA,EAAa,MAAA;AAAA,MACZ,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAEA,KAAA,CAAM,IAAA,GAAO,SAAA;AACb,KAAA,CAAM,IAAA,GAAO,SAAA;AACb,KAAA,CAAM,GAAA,GAAM,QAAA;AACZ,KAAA,CAAM,UAAA,GAAa,eAAA;AACnB,KAAA,CAAM,IAAA,GAAO,SAAA;ACjIN,SAAS,KAAA,CAAM;AAAA,EACpB,IAAA,GAAO,QAAA;AAAA,EACP,KAAA,GAAQ,SAAA;AAAA,EACR,WAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAe;AACb,EAAA,uBACEC,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,UAAA,EAAY,SAAS,CAAA,EAAI,GAAG,IAAA,EAC5C,QAAA,EAAA;AAAA,IAAA,IAAA,IAAQ,wBAAQD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAkB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,IACtD,SAAS,IAAA,oBAAQA,eAAC,IAAA,EAAA,EAAG,SAAA,EAAU,mBAAmB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IACxD,eAAe,IAAA,oBAAQA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yBAAyB,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,IACzE,QAAA;AAAA,IACA,WAAW,IAAA,oBAAQA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAqB,QAAA,EAAA,OAAA,EAAQ;AAAA,GAAA,EAClE,CAAA;AAEJ;ACLO,SAAS,SAAA,CAAa;AAAA,EAC3B,OAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA,GAAa,SAAA;AAAA,EACb,gBAAA,GAAmB,kCAAA;AAAA,EACnB;AACF,CAAA,EAAsB;AACpB,EAAA,IAAI,IAAA,CAAK,WAAW,CAAA,EAAG;AACrB,IAAA,uBAAOA,cAAAA,CAAC,KAAA,EAAA,EAAM,KAAA,EAAO,UAAA,EAAY,aAAa,gBAAA,EAAkB,CAAA;AAAA,EAClE;AAEA,EAAA,uBACEC,eAAAA,CAAC,KAAA,EAAA,EAAM,SAAkB,QAAA,EAAoB,MAAA,EAAM,MAAC,SAAA,EAClD,QAAA,EAAA;AAAA,oBAAAD,cAAAA,CAAC,KAAA,CAAM,IAAA,EAAN,EACC,QAAA,kBAAAA,eAAC,KAAA,CAAM,GAAA,EAAN,EACE,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,wBACZA,cAAAA,CAAC,KAAA,CAAM,UAAA,EAAN,EAAgC,QAAA,EAAA,GAAA,CAAI,UAAd,GAAA,CAAI,GAAiB,CAC7C,CAAA,EACH,CAAA,EACF,CAAA;AAAA,oBACAA,cAAAA,CAAC,KAAA,CAAM,MAAN,EACE,QAAA,EAAA,IAAA,CAAK,IAAI,CAAC,GAAA,EAAK,sBACdA,cAAAA,CAAC,MAAM,GAAA,EAAN,EACE,kBAAQ,GAAA,CAAI,CAAC,wBACZA,cAAAA,CAAC,KAAA,CAAM,IAAA,EAAN,EAAyB,OAAA,EAAS,GAAA,CAAI,SACpC,QAAA,EAAA,GAAA,CAAI,IAAA,CAAK,KAAK,CAAC,CAAA,EAAA,EADD,IAAI,GAErB,CACD,KALa,QAAA,GAAW,GAAA,EAAK,CAAC,CAAA,IAAK,CAMtC,CACD,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;ACvDA,SAAS,WAAW,CAAA,EAAS;AAC3B,EAAA,OAAO,CAAA,CAAE,mBAAmB,MAAA,EAAW;AAAA,IACrC,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO,OAAA;AAAA,IACP,GAAA,EAAK;AAAA,GACN,CAAA;AACH;AAWO,SAAS,UAAA,CAAW;AAAA,EACzB,KAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,aAAA;AAAA,EACd,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,eAAS,KAAK,CAAA;AACtC,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,eAA2B,YAAY,CAAA;AACvE,EAAA,MAAM,WAAW,KAAA,IAAS,QAAA;AAE1B,EAAA,uBACEF,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAkB,IAAA,IAAQ,SAAA,EAAW,SAAS,CAAA,EAAI,GAAG,IAAA,EACtE,QAAA,EAAA;AAAA,oBAAAD,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAQ,IAAA;AAAA,QACR,QAAA;AAAA,QACA,KAAA,EAAO,QAAA,GAAW,UAAA,CAAW,QAAQ,CAAA,GAAI,EAAA;AAAA,QACzC,WAAA;AAAA,QACA,OAAA,EAAS,MAAM,CAAC,QAAA,IAAY,QAAQ,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,QAC7C,eAAA,EAAe;AAAA;AAAA,KACjB;AAAA,oBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBACb,QAAA,kBAAAA,cAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,QAAA;AAAA,QACA,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,UAAA,IAAI,KAAA,IAAS,IAAA,EAAM,WAAA,CAAY,CAAC,CAAA;AAChC,UAAA,QAAA,GAAW,CAAC,CAAA;AACZ,UAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,QACf;AAAA;AAAA,KACF,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;ACpDO,SAAS,OAAO,KAAA,EAAoB;AACzC,EAAA,uBAAOA,cAAAA,CAAC,KAAA,EAAA,EAAO,GAAG,KAAA,EAAO,CAAA;AAC3B;ACWO,SAAS,KAAA,CAAM;AAAA,EACpB,IAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA,GAAO,OAAA;AAAA,EACP,IAAA,GAAO,SAAA;AAAA,EACP,KAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAe;AACb,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,IAAA,IAAQ,SAAS,CAAA;AAAA,MACnD,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,IAAI,CAAA,CAAE,MAAA,KAAW,CAAA,CAAE,aAAA,EAAe,OAAA,IAAU;AAAA,MAC9C,CAAA;AAAA,MAEA,QAAA,kBAAAC,eAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,UAAA;AAAA,YACA,aAAa,IAAI,CAAA,CAAA;AAAA,YACjB,IAAA,KAAS,SAAA,IAAa,CAAA,UAAA,EAAa,IAAI,CAAA,CAAA;AAAA,YACvC;AAAA,WACF;AAAA,UACA,IAAA,EAAK,QAAA;AAAA,UACL,YAAA,EAAW,MAAA;AAAA,UACV,GAAG,IAAA;AAAA,UAEF,QAAA,EAAA;AAAA,YAAA,CAAA,KAAA,IAAS,IAAA,IAAQ,eAAe,IAAA,IAAQ,CAAC,8BACzCA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACb,QAAA,EAAA;AAAA,8BAAAA,gBAAC,KAAA,EAAA,EACE,QAAA,EAAA;AAAA,gBAAA,KAAA,IAAS,wBAAQD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAmB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,gBACzD,eAAe,IAAA,oBAAQA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yBAAyB,QAAA,EAAA,WAAA,EAAY;AAAA,eAAA,EAC5E,CAAA;AAAA,cACC,CAAC,SAAA,oBACAA,cAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,iBAAA,EAAkB,OAAA,EAAS,OAAA,EAAS,YAAA,EAAW,SAAQ,QAAA,EAAA,QAAA,EAEvF;AAAA,aAAA,EAEJ,CAAA;AAAA,4BAEFA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAkB,QAAA,EAAS,CAAA;AAAA,YACzC,UAAU,IAAA,oBAAQA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAoB,QAAA,EAAA,MAAA,EAAO;AAAA;AAAA;AAAA;AAC/D;AAAA,GACF;AAEJ;AC9DO,SAAS,OAAO,EAAE,IAAA,GAAO,QAAA,EAAU,GAAG,MAAK,EAAgB;AAChE,EAAA,uBAAOA,cAAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAa,GAAG,IAAA,EAAM,CAAA;AACtC;AC8BO,SAAS,QAAA,CAAS;AAAA,EACvB,OAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA,GAAQ,MAAA;AAAA,EACR,gBAAA,GAAmB,QAAA;AAAA,EACnB,WAAA,GAAc,KAAA;AAAA,EACd,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,eAAS,WAAW,CAAA;AAE5C,EAAA,uBACEF,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,IAAA,IAAQ,SAAA,EAAW,SAAS,CAAA,EAAI,GAAG,IAAA,EACnE,QAAA,EAAA;AAAA,oBAAAD,cAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAkB,sBAAsB,CAAA;AAAA,QACtD,eAAA,EAAe,IAAA;AAAA,QACf,SAAS,MAAM,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,QAE/B,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,oBACAA,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAqB,KAAA,KAAU,WAAW,0BAA0B,CAAA;AAAA,QAClF,IAAA,EAAK,MAAA;AAAA,QAEJ,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,KAAA,EAAO,CAAA,KAAM;AACvB,UAAA,IAAI,KAAA,IAAS,KAAA,IAAS,KAAA,CAAM,GAAA,EAAK;AAC/B,YAAA,uBAAOA,cAAAA,CAAC,KAAA,EAAA,EAAY,SAAA,EAAU,sBAAb,CAAgC,CAAA;AAAA,UACnD;AACA,UAAA,IAAI,SAAA,IAAa,KAAA,IAAS,KAAA,CAAM,OAAA,EAAS;AACvC,YAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAY,WAAU,oBAAA,EACpB,QAAA,EAAA,KAAA,CAAM,SADC,CAEV,CAAA;AAAA,UAEJ;AACA,UAAA,MAAM,IAAA,GAAO,KAAA;AACb,UAAA,uBACEC,eAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,QAAA;AAAA,cACL,IAAA,EAAK,UAAA;AAAA,cACL,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAqB,IAAA,CAAK,UAAU,2BAA2B,CAAA;AAAA,cAC7E,UAAU,IAAA,CAAK,QAAA;AAAA,cACf,eAAA,EAAe,KAAK,QAAA,IAAY,MAAA;AAAA,cAChC,SAAS,MAAM;AACb,gBAAA,IAAA,CAAK,QAAA,IAAW;AAChB,gBAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,cACf,CAAA;AAAA,cAEC,QAAA,EAAA;AAAA,gBAAA,IAAA,CAAK,IAAA,IAAQ,wBACZD,cAAAA,CAAC,UAAK,SAAA,EAAU,wBAAA,EAA0B,eAAK,IAAA,EAAK,CAAA;AAAA,gBAErD,IAAA,CAAK,KAAA;AAAA,gBACL,IAAA,CAAK,OAAO,IAAA,oBACXA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,QAAA,EAAA,IAAA,CAAK,GAAA,EAAI;AAAA;AAAA,aAAA;AAAA,YAhB/C;AAAA,WAkBP;AAAA,QAEJ,CAAC;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;AC/FO,SAAS,aAAa,KAAA,EAA0B;AACrD,EAAA,uBAAOA,cAAAA,CAAC,QAAA,EAAA,EAAU,GAAG,KAAA,EAAO,CAAA;AAC9B;ACSO,SAAS,QAAA,CAAS;AAAA,EACvB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,uBACEC,eAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,cAAA,EAAgB,QAAA,IAAY,eAAe,SAAS,CAAA;AAAA,MAClE,eAAa,QAAA,IAAY,MAAA;AAAA,MACxB,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UACA,QAAQ,IAAA,oBAAQD,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAsB,QAAA,EAAA,IAAA,EAAK;AAAA,SAAA,EAC9D,CAAA;AAAA,wBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAuB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QAC3C,YAAY,IAAA,oBAAQA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAA0B,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,QACtE;AAAA;AAAA;AAAA,GACH;AAEJ;AAMO,SAAS,KAAK,EAAE,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,MAAK,EAAc;AACrE,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,WAAW,SAAS,CAAA,EAAI,GAAG,IAAA,EAC3C,QAAA,EACH,CAAA;AAEJ;ACzCO,SAAS,KAAA,CAAM;AAAA,EACpB,MAAA,GAAS,KAAA;AAAA,EACT,WAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAe;AACb,EAAA,uBACEC,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,MAAA,IAAU,oBAAoB,SAAS,CAAA;AAAA,MAChE,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,eAAe,IAAA,oBAAQD,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iBAAiB,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,QACjE,SAAS,IAAA,oBAAQA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAkB,QAAA,EAAA,KAAA,EAAM;AAAA;AAAA;AAAA,GACzD;AAEJ;ACZO,SAAS,KAAA,CAAM;AAAA,EACpB,KAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,KAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAe;AACb,EAAA,uBACEC,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,UAAA;AAAA,QACA,SAAS,OAAA,IAAW,iBAAA;AAAA,QACpB,OAAA,IAAW,aAAa,OAAO,CAAA,CAAA;AAAA,QAC/B,KAAA,IAAS,iBAAA;AAAA,QACT;AAAA,OACF;AAAA,MACA,OAAO,EAAE,CAAC,SAAS,GAAG,KAAA,EAAO,GAAG,KAAA,EAAM;AAAA,MACrC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAkB,CAAA;AAAA,wBACjCA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EAAiB,CAAA;AAAA,wBAChCC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAmB,qBAAW,KAAA,EAAM,CAAA;AAAA,UAClD,SAAS,IAAA,oBAAQA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAmB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACzD;AAAA,SAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ;ACvCO,SAAS,QAAA,CAAS;AAAA,EACvB,KAAA,GAAQ,QAAA;AAAA,EACR,MAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAW,EAAA,CAAG,cAAA,EAAgB,CAAA,cAAA,EAAiB,KAAK,IAAI,SAAS,CAAA;AAAA,MACjE,aAAA,EAAa,SAAS,MAAA,GAAS,MAAA;AAAA,MAC/B,OAAA;AAAA,MACA,KAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACnBO,SAAS,IAAA,CAAK;AAAA,EACnB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAc;AACZ,EAAA,MAAM,GAAA,GAAM,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,CAAC,CAAA;AAC5C,EAAA,MAAM,SAAA,GAA2B;AAAA,IAC/B,KAAA,EAAO,GAAG,GAAG,CAAA,CAAA,CAAA;AAAA,IACb,GAAI,KAAA,GAAQ,EAAE,UAAA,EAAY,OAAM,GAAI;AAAA,GACtC;AAEA,EAAA,uBACEC,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,aAAA,EAAe,SAAS,CAAA,EAAI,GAAG,IAAA,EAChD,QAAA,EAAA;AAAA,oBAAAD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oBAC5CA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EACb,QAAA,kBAAAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAoB,KAAA,EAAO,SAAA,EAAW,CAAA,EACvD,CAAA;AAAA,oBACAA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAsB,QAAA,EAAA,OAAA,IAAW,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,EAAE;AAAA,GAAA,EACnE,CAAA;AAEJ;AC3BO,SAAS,SAAA,CAAU;AAAA,EACxB,OAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,uBACEC,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,eAAA,EAAiB,SAAS,CAAA,EAAI,GAAG,IAAA,EAClD,QAAA,EAAA;AAAA,oBAAAD,cAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAU,CAAA,EAAI,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,oBAC5BC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EAAyB,MAAK,SAAA,EAC1C,QAAA,EAAA;AAAA,MAAA,KAAA,IAAS,wBAAQD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAqB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MAC3D,eAAe,IAAA,oBAAQA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,2BAA2B,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,MAC3E;AAAA,KAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;ACbO,SAAS,UAAA,CAAW;AAAA,EACzB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,uBACEC,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,gBAAA,EAAkB,SAAS,CAAA,EAAI,GAAG,IAAA,EAClD,QAAA,EAAA;AAAA,IAAA,KAAA,IAAS,wBAAQD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAyB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IAChE,KAAA,IAAS,IAAA,oBACRA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,uBAAA,EAAyB,MAAA,IAAU,CAAA,uBAAA,EAA0B,MAAM,CAAA,CAAE,GACtF,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,IAED;AAAA,GAAA,EACH,CAAA;AAEJ;AAuBO,SAAS,MAAA,CAAO;AAAA,EACrB,QAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgB;AACd,EAAA,uBACEC,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,YAAA;AAAA,QACA,QAAA,IAAY,eAAe,QAAQ,CAAA,CAAA;AAAA,QACnC,OAAA,IAAW,qBAAA;AAAA,QACX;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA,EAAU,IAAI,CAAC,GAAA,EAAK,CAAA,qBACnBD,eAAC,UAAA,EAAA,EAAmB,KAAA,EAAO,GAAA,CAAI,KAAA,EAAO,OAAO,GAAA,CAAI,KAAA,EAAO,QAAQ,GAAA,CAAI,MAAA,EAAA,EAAnD,CAA2D,CAC7E,CAAA;AAAA,QACA;AAAA;AAAA;AAAA,GACH;AAEJ;AC7DO,SAAS,QAAA,CAAS;AAAA,EACvB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,uBACEC,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,cAAA;AAAA,QACA,OAAA,IAAW,iBAAA;AAAA,QACX,QAAA,IAAY,kBAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,KAAA,IAAS,wBAAQD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAiB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QACvD,KAAA,IAAS,IAAA,oBACRA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,MAAA,IAAU,CAAA,eAAA,EAAkB,MAAM,CAAA,CAAE,GAAI,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QAEnF;AAAA;AAAA;AAAA,GACH;AAEJ;ACzCO,SAAS,WAAW,EAAE,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,MAAK,EAAoB;AACjF,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,kBAAkB,SAAS,CAAA,EAAI,GAAG,IAAA,EAClD,QAAA,EACH,CAAA;AAEJ;AAMO,SAAS,gBAAgB,EAAE,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,MAAK,EAAyB;AAC3F,EAAA,uBACEA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,kBAAkB,SAAS,CAAA,EAAI,GAAG,IAAA,EACnD,QAAA,EACH,CAAA;AAEJ;AAEA,MAAA,CAAO,MAAA,CAAO,UAAA,EAAY,EAAE,KAAA,EAAO,iBAAiB,CAAA;ACZ7C,SAAS,QAAA,CAAS;AAAA,EACvB,MAAA,GAAS,CAAA;AAAA,EACT,KAAA,GAAQ,EAAA;AAAA,EACR,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,IAAA,GAAO,IAAA;AAAA,EACP,cAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,MAAM,IAAA,GAAOO,YAAA,CAAuC,EAAE,CAAA;AACtD,EAAA,MAAM,MAAA,GAAS,KAAA,CAAM,MAAA,CAAO,MAAA,EAAQ,GAAG,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,MAAM,CAAA,CAAE,KAAA,CAAM,EAAE,CAAA;AAElE,EAAA,MAAM,KAAA,GAAQ,CAAC,KAAA,EAAe,IAAA,KAAiB;AAC7C,IAAA,MAAM,IAAA,GAAO,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAO,CAAA,KAAM,KAAA,GAAQ,IAAA,GAAO,CAAA,KAAM,GAAA,GAAM,EAAA,GAAK,CAAE,CAAA;AAC3E,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,MAAM,CAAA;AAC/D,IAAA,QAAA,GAAW,MAAM,CAAA;AAAA,EACnB,CAAA;AAEA,EAAA,uBACEP,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,cAAA,EAAgB,IAAA,KAAS,IAAA,IAAQ,kBAAA,EAAoB,SAAS,CAAA,EAAI,GAAG,IAAA,EACrF,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAO,EAAG,CAAC,CAAA,EAAG,CAAA,qBAC1BC,eAAAA,CAAC,MAAA,EAAA,EAAa,KAAA,EAAO,EAAE,OAAA,EAAS,UAAA,EAAW,EACxC,QAAA,EAAA;AAAA,IAAA,cAAA,IAAkB,IAAA,IAAQ,CAAA,KAAM,cAAA,oBAC/BD,cAAAA,CAAC,UAAK,SAAA,EAAU,mBAAA,EAAoB,aAAA,EAAW,IAAA,EAAC,QAAA,EAAA,GAAA,EAEhD,CAAA;AAAA,oBAEFA,cAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,CAAC,EAAA,KAAO;AACX,UAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,CAAA,GAAI,EAAA;AAAA,QACpB,CAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAsB,MAAA,CAAO,CAAC,KAAK,MAAA,CAAO,CAAC,CAAA,KAAM,GAAA,IAAO,WAAW,CAAA;AAAA,QACjF,SAAA,EAAU,SAAA;AAAA,QACV,YAAA,EAAa,eAAA;AAAA,QACb,SAAA,EAAW,CAAA;AAAA,QACX,QAAA;AAAA,QACA,OAAO,MAAA,CAAO,CAAC,MAAM,GAAA,GAAM,EAAA,GAAK,OAAO,CAAC,CAAA;AAAA,QACxC,YAAA,EAAY,CAAA,MAAA,EAAS,CAAA,GAAI,CAAC,CAAA,CAAA;AAAA,QAC1B,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,UAAA,MAAM,CAAA,GAAI,EAAE,MAAA,CAAO,KAAA,CAAM,QAAQ,KAAA,EAAO,EAAE,CAAA,CAAE,KAAA,CAAM,EAAE,CAAA;AACpD,UAAA,KAAA,CAAM,GAAG,CAAC,CAAA;AACV,UAAA,IAAI,CAAA,IAAK,IAAI,MAAA,GAAS,CAAA,OAAQ,OAAA,CAAQ,CAAA,GAAI,CAAC,CAAA,EAAG,KAAA,EAAM;AAAA,QACtD,CAAA;AAAA,QACA,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,UAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,WAAA,IAAe,CAAC,MAAA,CAAO,CAAC,CAAA,EAAG,IAAA,EAAK,IAAK,CAAA,GAAI,CAAA,EAAG;AACxD,YAAA,IAAA,CAAK,OAAA,CAAQ,CAAA,GAAI,CAAC,CAAA,EAAG,KAAA,EAAM;AAAA,UAC7B;AAAA,QACF,CAAA;AAAA,QACA,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,MAAM,KAAA,GAAQ,CAAA,CAAE,aAAA,CAAc,OAAA,CAAQ,MAAM,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,MAAM,CAAA;AAChF,UAAA,IAAI,KAAA,aAAkB,KAAK,CAAA;AAAA,QAC7B;AAAA;AAAA;AACF,GAAA,EAAA,EAhCS,CAiCX,CACD,CAAA,EACH,CAAA;AAEJ;ACvDO,SAAS,YAAA,CAAa;AAAA,EAC3B,SAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,MAAA,GAAS,KAAA;AAAA,EACT,WAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAsB;AACpB,EAAA,uBACEC,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,iBAAA;AAAA,QACA,SAAA,IAAa,oBAAoB,SAAS,CAAA,CAAA;AAAA,QAC1C,OAAA,IAAW,0BAAA;AAAA,QACX,MAAA,IAAU,yBAAA;AAAA,QACV;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EAAyB,CAAA;AAAA,QACvC,MAAA,mBACCA,cAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,0BAAA,EAA2B,WAAA,EAAW,WAAA,EAClD,QAAA,EACH,CAAA,GAEA;AAAA;AAAA;AAAA,GAEJ;AAEJ;ACpCO,SAAS,IAAA,CAAK;AAAA,EACnB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,WAAA,GAAc,KAAA;AAAA,EACd,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAc;AACZ,EAAA,uBACEC,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,SAAA;AAAA,QACA,QAAA,IAAY,mBAAA;AAAA,QACZ,WAAA,IAAe,sBAAA;AAAA,QACf;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,KAAA,IAAS,wBAAQD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAkB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBACzDC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,KAAA,IAAS,wBAAQD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAkB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACxD,eAAe,IAAA,oBAAQA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAwB,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,UAC1E;AAAA,SAAA,EACH,CAAA;AAAA,QACC,WAAW,IAAA,oBAAQA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAoB,QAAA,EAAA,OAAA,EAAQ;AAAA;AAAA;AAAA,GACjE;AAEJ;AAEO,SAAS,UAAU,EAAE,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,MAAK,EAAmC;AAC/F,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,iBAAiB,SAAS,CAAA,EAAI,GAAG,IAAA,EACjD,QAAA,EACH,CAAA;AAEJ;ACxCO,SAAS,GAAA,CAAI;AAAA,EAClB,IAAA,GAAO,IAAA;AAAA,EACP,MAAA,GAAS,KAAA;AAAA,EACT,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAa;AACX,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,QAAA;AAAA,QACA,SAAS,IAAA,IAAQ,YAAA;AAAA,QACjB,MAAA,IAAU,gBAAA;AAAA,QACV;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAUO,SAAS,QAAA,CAAS;AAAA,EACvB,SAAA,GAAY,GAAA;AAAA,EACZ,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,MAAM,OAAO,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,GAAI,QAAA,GAAW,CAAC,QAAQ,CAAA;AAC3D,EAAA,uBACEA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,cAAA,EAAgB,SAAS,CAAA,EAAI,GAAG,IAAA,EACjD,QAAA,EAAA,IAAA,CAAK,IAAI,CAAC,GAAA,EAAK,sBACdC,eAAAA,CAAC,UAAa,KAAA,EAAO,EAAE,OAAA,EAAS,UAAA,EAAW,EACxC,QAAA,EAAA;AAAA,IAAA,CAAA,GAAI,qBAAKD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAqB,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,IACxD;AAAA,GAAA,EAAA,EAFQ,CAGX,CACD,CAAA,EACH,CAAA;AAEJ;ACjDO,SAAS,KAAA,CAAM;AAAA,EACpB,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAe;AACb,EAAA,uBACEA,cAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,eAAA;AAAA,QACA,QAAA,IAAY,yBAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACRO,SAAS,QAAQ,EAAE,KAAA,EAAO,YAAY,EAAA,EAAI,GAAG,MAAK,EAAiB;AACxE,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,eAAwB,IAAI,CAAA;AAEpD,EAAA,uBACEH,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,cAAc,SAAS,CAAA,EAAG,IAAA,EAAK,SAAA,EAAW,GAAG,IAAA,EAC7D,QAAA,EAAA,KAAA,CAAM,IAAI,CAAC,IAAA,EAAM,sBAChBC,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MAEC,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,IAAA,KAAS,KAAK,SAAS,CAAA;AAAA,MACzD,YAAA,EAAc,MAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,MAEhC,QAAA,EAAA;AAAA,wBAAAD,cAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,qBAAA;AAAA,YACV,SAAS,MAAM,OAAA,CAAQ,IAAA,KAAS,CAAA,GAAI,OAAO,CAAC,CAAA;AAAA,YAC5C,YAAA,EAAc,MAAM,IAAA,IAAQ,IAAA,IAAQ,QAAQ,CAAC,CAAA;AAAA,YAE5C,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,SACR;AAAA,wBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EAAmB,IAAA,EAAK,MAAA,EACpC,QAAA,EAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,sBACrBA,cAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,UAAA;AAAA,YACL,UAAU,IAAA,CAAK,QAAA;AAAA,YACf,SAAA,EAAU,oBAAA;AAAA,YACV,SAAS,MAAM;AACb,cAAA,IAAA,CAAK,QAAA,IAAW;AAChB,cAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,YACd,CAAA;AAAA,YAEC,QAAA,EAAA,IAAA,CAAK;AAAA,WAAA;AAAA,UAVD;AAAA,SAYR,CAAA,EACH;AAAA;AAAA,KAAA;AAAA,IA5BK;AAAA,GA8BR,CAAA,EACH,CAAA;AAEJ;AC5CO,SAAS,MAAA,CAAO;AAAA,EACrB,IAAA,GAAO,IAAA;AAAA,EACP,KAAA,GAAQ,KAAA;AAAA,EACR,KAAA,GAAQ,KAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgB;AACd,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBACb,QAAA,kBAAAA,cAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,WAAA;AAAA,QACA,SAAS,IAAA,IAAQ,eAAA;AAAA,QACjB,KAAA,IAAS,kBAAA;AAAA,QACT,KAAA,IAAS,kBAAA;AAAA,QACT;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AClCO,SAAS,aAAa,KAAA,EAA0B;AACrD,EAAA,uBAAOA,cAAAA,CAAC,MAAA,EAAA,EAAQ,GAAG,KAAA,EAAO,CAAA;AAC5B;ACOO,SAAS,eAAe,EAAE,KAAA,EAAO,YAAY,EAAA,EAAI,GAAG,MAAK,EAAwB;AACtF,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,aAAA,EAAe,SAAS,CAAA,EAAI,GAAG,IAAA,EAC/C,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,MAAM,CAAA,KAAM;AACtB,IAAA,MAAM,GAAA,GAAM,EAAA,CAAG,mBAAA,EAAqB,IAAA,CAAK,UAAU,WAAW,CAAA;AAC9D,IAAA,IAAI,KAAK,IAAA,EAAM;AACb,MAAA,uBACEA,cAAAA,CAAC,GAAA,EAAA,EAAU,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,SAAA,EAAW,GAAA,EAAK,OAAA,EAAS,IAAA,CAAK,OAAA,EACvD,QAAA,EAAA,IAAA,CAAK,SADA,CAER,CAAA;AAAA,IAEJ;AACA,IAAA,uBACEA,cAAAA,CAAC,QAAA,EAAA,EAAe,IAAA,EAAK,QAAA,EAAS,SAAA,EAAW,GAAA,EAAK,OAAA,EAAS,IAAA,CAAK,OAAA,EACzD,QAAA,EAAA,IAAA,CAAK,KAAA,EAAA,EADK,CAEb,CAAA;AAAA,EAEJ,CAAC,CAAA,EACH,CAAA;AAEJ;ACVA,SAAS,UAAA,CAAW,IAAA,EAAc,SAAA,EAAmB,YAAA,EAA2C;AAC9F,EAAA,MAAM,KAAA,GAAQ,SAAA;AAEd,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,OAAO,YAAY,CAAA;AAC5C,EAAA,MAAM,QAAQ,IAAA,CAAK,GAAA,CAAI,KAAA,GAAQ,CAAA,EAAG,OAAO,YAAY,CAAA;AACrD,EAAA,MAAM,KAAA,GAA6B,CAAC,CAAC,CAAA;AACrC,EAAA,IAAI,IAAA,GAAO,CAAA,EAAG,KAAA,CAAM,IAAA,CAAK,QAAG,CAAA;AAC5B,EAAA,KAAA,IAAS,IAAI,IAAA,EAAM,CAAA,IAAK,OAAO,CAAA,EAAA,EAAK,KAAA,CAAM,KAAK,CAAC,CAAA;AAChD,EAAA,IAAI,KAAA,GAAQ,KAAA,GAAQ,CAAA,EAAG,KAAA,CAAM,KAAK,QAAG,CAAA;AACrC,EAAA,IAAI,KAAA,GAAQ,CAAA,EAAG,KAAA,CAAM,IAAA,CAAK,KAAK,CAAA;AAC/B,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA,GAAe,CAAA;AAAA,EACf,IAAA,GAAO,SAAA;AAAA,EACP,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,aAAA;AAAA,EACZ,SAAA,GAAY,aAAA;AAAA,EACZ,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,EAAA,GAAK,CAAC,CAAA,KAAc;AACxB,IAAA,IAAI,CAAA,GAAI,CAAA,IAAK,CAAA,GAAI,SAAA,IAAa,MAAM,IAAA,EAAM;AAC1C,IAAA,YAAA,GAAe,CAAC,CAAA;AAAA,EAClB,CAAA;AAEA,EAAA,uBACEC,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,eAAA;AAAA,QACA,IAAA,KAAS,SAAA,IAAa,CAAA,eAAA,EAAkB,IAAI,CAAA,CAAA;AAAA,QAC5C,OAAA,IAAW,wBAAA;AAAA,QACX;AAAA,OACF;AAAA,MACA,YAAA,EAAW,YAAA;AAAA,MACV,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAD,cAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,yCAAA;AAAA,YACV,UAAU,IAAA,IAAQ,CAAA;AAAA,YAClB,eAAA,EAAe,QAAQ,CAAA,IAAK,MAAA;AAAA,YAC5B,OAAA,EAAS,MAAM,EAAA,CAAG,IAAA,GAAO,CAAC,CAAA;AAAA,YAEzB,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QACC,UAAA,CAAW,IAAA,EAAM,SAAA,EAAW,YAAY,CAAA,CAAE,GAAA;AAAA,UAAI,CAAC,CAAA,EAAG,CAAA,KACjD,CAAA,KAAM,2BACJA,cAAAA,CAAC,MAAA,EAAA,EAAmB,SAAA,EAAU,2BAA0B,QAAA,EAAA,cAAA,EAAA,EAA7C,CAAA,CAAA,EAAI,CAAC,CAAA,CAEhB,oBAEAA,cAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,QAAA;AAAA,cACL,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,CAAA,KAAM,QAAQ,WAAW,CAAA;AAAA,cAC9D,cAAA,EAAc,CAAA,KAAM,IAAA,GAAO,MAAA,GAAS,MAAA;AAAA,cACpC,OAAA,EAAS,MAAM,EAAA,CAAG,CAAC,CAAA;AAAA,cAElB,QAAA,EAAA;AAAA,aAAA;AAAA,YANI;AAAA;AAOP,SAEJ;AAAA,wBACAA,cAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,yCAAA;AAAA,YACV,UAAU,IAAA,IAAQ,SAAA;AAAA,YAClB,eAAA,EAAe,QAAQ,SAAA,IAAa,MAAA;AAAA,YACpC,OAAA,EAAS,MAAM,EAAA,CAAG,IAAA,GAAO,CAAC,CAAA;AAAA,YAEzB,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QACC,QAAA,oBACCC,eAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,qBAAA,EAAsB,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UAC9B,IAAA;AAAA,UAAK,MAAA;AAAA,UAAK;AAAA,SAAA,EAClB;AAAA;AAAA;AAAA,GAEJ;AAEJ;AC3FO,SAAS,OAAA,CAAQ;AAAA,EACtB,OAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd,IAAA;AAAA,EACA,YAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,KAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIE,eAAS,WAAW,CAAA;AACpD,EAAA,MAAM,SAAS,IAAA,IAAQ,QAAA;AAEvB,EAAA,MAAM,OAAA,GAAU,CAAC,IAAA,KAAkB;AACjC,IAAA,IAAI,IAAA,IAAQ,IAAA,EAAM,WAAA,CAAY,IAAI,CAAA;AAClC,IAAA,YAAA,GAAe,IAAI,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,MAAM,SAAA,GACJ,SAAS,KAAA,GACL,0BAAA,GACA,SAAS,OAAA,GACP,4BAAA,GACA,IAAA,KAAS,YAAA,GACP,iCAAA,GACA,6BAAA;AAEV,EAAA,uBACEF,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,YAAA,EAAc,MAAA,IAAU,SAAA,EAAW,SAAS,CAAA,EAAI,GAAG,IAAA,EACpE,QAAA,EAAA;AAAA,oBAAAD,cAAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,OAAA,EAAS,MAAM,OAAA,CAAQ,CAAC,MAAM,CAAA,EAAG,eAAA,EAAe,MAAA,EACnE,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,oBACAC,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,qBAAA,EAAuB,SAAS,CAAA,EAAG,IAAA,EAAK,QAAA,EACxD,QAAA,EAAA;AAAA,MAAA,KAAA,IAAS,wBAAQD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAqB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MAC3D,eAAe,IAAA,oBAAQA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAU,2BAA2B,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,MAC3E;AAAA,KAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AC7CO,SAAS,QAAA,CAAS;AAAA,EACvB,KAAA,GAAQ,CAAA;AAAA,EACR,OAAA,GAAU,SAAA;AAAA,EACV,KAAA,GAAQ,KAAA;AAAA,EACR,aAAA,GAAgB,KAAA;AAAA,EAChB,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,aAAA;AAAA,QACA,OAAA,KAAY,SAAA,IAAa,CAAA,aAAA,EAAgB,OAAO,CAAA,CAAA;AAAA,QAChD,KAAA,IAAS,oBAAA;AAAA,QACT,aAAA,IAAiB,4BAAA;AAAA,QACjB;AAAA,OACF;AAAA,MACA,IAAA,EAAK,aAAA;AAAA,MACL,eAAA,EAAe,gBAAgB,MAAA,GAAY,KAAA;AAAA,MAC3C,eAAA,EAAe,CAAA;AAAA,MACf,eAAA,EAAe,GAAA;AAAA,MACd,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAAA,cAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,kBAAA;AAAA,UACV,OAAO,aAAA,GAAgB,MAAA,GAAY,EAAE,KAAA,EAAO,CAAA,EAAG,KAAK,CAAA,CAAA,CAAA;AAAI;AAAA;AAC1D;AAAA,GACF;AAEJ;AChCO,SAAS,KAAA,CAAM,EAAE,KAAA,EAAO,WAAA,EAAa,YAAY,EAAA,EAAI,GAAG,MAAK,EAAe;AACjF,EAAA,MAAM,KAAA,mBACJA,cAAAA,CAAC,OAAA,EAAA,EAAM,MAAK,OAAA,EAAQ,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,CAAC,KAAA,IAAS,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAGhF,EAAA,IAAI,KAAA,IAAS,IAAA,IAAQ,WAAA,IAAe,IAAA,EAAM,OAAO,KAAA;AAEjD,EAAA,uBACEC,eAAAA,CAAC,OAAA,EAAA,EAAM,WAAW,EAAA,CAAG,YAAA,EAAc,SAAS,CAAA,EAC1C,QAAA,EAAA;AAAA,oBAAAD,eAAC,OAAA,EAAA,EAAM,IAAA,EAAK,SAAQ,SAAA,EAAU,UAAA,EAAY,GAAG,IAAA,EAAM,CAAA;AAAA,oBACnDC,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,MAAA,KAAA;AAAA,MACA,eAAe,IAAA,oBAAQD,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAoB,QAAA,EAAA,WAAA,EAAY;AAAA,KAAA,EAC1E;AAAA,GAAA,EACF,CAAA;AAEJ;ACLO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA,GAAc,UAAA;AAAA,EACd,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,SAAS,CAAA;AAAA,MACvB,IAAA,EAAK,YAAA;AAAA,MACL,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,WAAA,KAAgB,YAAA,GAAe,KAAA,GAAQ,QAAA;AAAA,QACtD,GAAA,EAAK,WAAA,KAAgB,YAAA,GAAe,EAAA,GAAK;AAAA,OAC3C;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACVA,cAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UAEC,IAAA;AAAA,UACA,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,aAAa,IAAA,CAAK,WAAA;AAAA,UAClB,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,cAAA,EAAgB,iBAAiB,IAAA,CAAK,KAAA;AAAA,UACtC,OAAA,EAAS,KAAA,IAAS,IAAA,GAAO,KAAA,KAAU,KAAK,KAAA,GAAQ,MAAA;AAAA,UAChD,QAAA,EAAU,MAAM,aAAA,GAAgB,IAAA,CAAK,KAAK;AAAA,SAAA;AAAA,QARrC,IAAA,CAAK;AAAA,OAUb;AAAA;AAAA,GACH;AAEJ;ACzCO,SAAS,SAAA,CAAU;AAAA,EACxB,KAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA,GAAc,YAAA;AAAA,EACd,WAAA,GAAc,EAAA;AAAA,EACd,OAAA,GAAU,EAAA;AAAA,EACV,OAAA,GAAU,EAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIG,eAAS,WAAW,CAAA;AAC5C,EAAA,MAAM,OAAA,GAAUI,aAAuB,IAAI,CAAA;AAC3C,EAAA,MAAM,QAAA,GAAWA,aAAO,KAAK,CAAA;AAE7B,EAAA,MAAM,MAAA,GAASC,iBAAA;AAAA,IACb,CAAC,SAAiB,OAAA,KAAoB;AACpC,MAAA,MAAM,KAAK,OAAA,CAAQ,OAAA;AACnB,MAAA,IAAI,CAAC,EAAA,IAAM,CAAC,QAAA,CAAS,OAAA,EAAS;AAC9B,MAAA,MAAM,IAAA,GAAO,GAAG,qBAAA,EAAsB;AACtC,MAAA,MAAM,GAAA,GACJ,WAAA,KAAgB,YAAA,GAAA,CACV,OAAA,GAAU,IAAA,CAAK,IAAA,IAAQ,IAAA,CAAK,KAAA,GAAS,GAAA,GAAA,CACrC,OAAA,GAAU,IAAA,CAAK,GAAA,IAAO,KAAK,MAAA,GAAU,GAAA;AAC7C,MAAA,OAAA,CAAQ,IAAA,CAAK,IAAI,OAAA,EAAS,IAAA,CAAK,IAAI,OAAA,EAAS,GAAG,CAAC,CAAC,CAAA;AAAA,IACnD,CAAA;AAAA,IACA,CAAC,WAAA,EAAa,OAAA,EAAS,OAAO;AAAA,GAChC;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAuB;AAC1C,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,QAAA,CAAS,OAAA,GAAU,IAAA;AACnB,IAAA,MAAM,OAAO,CAAC,EAAA,KAAmB,OAAO,EAAA,CAAG,OAAA,EAAS,GAAG,OAAO,CAAA;AAC9D,IAAA,MAAM,KAAK,MAAM;AACf,MAAA,QAAA,CAAS,OAAA,GAAU,KAAA;AACnB,MAAA,MAAA,CAAO,mBAAA,CAAoB,aAAa,IAAI,CAAA;AAC5C,MAAA,MAAA,CAAO,mBAAA,CAAoB,WAAW,EAAE,CAAA;AAAA,IAC1C,CAAA;AACA,IAAA,MAAA,CAAO,gBAAA,CAAiB,aAAa,IAAI,CAAA;AACzC,IAAA,MAAA,CAAO,gBAAA,CAAiB,WAAW,EAAE,CAAA;AAAA,EACvC,CAAA;AAEA,EAAA,MAAM,aACJ,WAAA,KAAgB,YAAA,GACZ,EAAE,KAAA,EAAO,GAAG,IAAI,CAAA,CAAA,CAAA,EAAK,IAAA,EAAM,MAAA,KAC3B,EAAE,MAAA,EAAQ,GAAG,IAAI,CAAA,CAAA,CAAA,EAAK,MAAM,MAAA,EAAgB;AAElD,EAAA,uBACEP,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,OAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,cAAA;AAAA,QACA,gBAAgB,UAAA,IAAc,wBAAA;AAAA,QAC9B;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAD,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAAsB,KAAA,EAAO,YACzC,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,wBACAA,cAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,sBAAA;AAAA,YACV,IAAA,EAAK,WAAA;AAAA,YACL,kBAAA,EAAkB,WAAA;AAAA,YAClB;AAAA;AAAA,SACF;AAAA,wBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAAsB,OAAO,EAAE,IAAA,EAAM,CAAA,EAAE,EACnD,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ;AC3EO,SAAS,OAAA,CAAQ;AAAA,EACtB,QAAA,GAAW,KAAA;AAAA,EACX,IAAA,GAAO,KAAA;AAAA,EACP,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,uBACEC,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,YAAA;AAAA,QACA,QAAA,IAAY,sBAAA;AAAA,QACZ,IAAA,IAAQ,kBAAA;AAAA,QACR;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EAAmB,CAAA;AAAA,QACjC;AAAA;AAAA;AAAA,GACH;AAEJ;ACxBO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA,GAAO,IAAA;AAAA,EACP,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAkB,IAAA,IAAQ,sBAAA,EAAwB,SAAS,CAAA,EAAI,GAAG,IAAA,EAClF,QAAA,EACH,CAAA;AAEJ;ACJO,SAAS,aAAA,CAAc;AAAA,EAC5B,KAAA;AAAA,EACA,KAAA,GAAQ,QAAA;AAAA,EACR,OAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,uBACEC,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,mBAAA,EAAqB,SAAS,CAAA,EAAI,GAAG,IAAA,EACrD,QAAA,EAAA;AAAA,IAAA,KAAA,IAAS,wBAAQD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4BAA4B,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oBACpEA,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,4BAA4B,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IAC/C,QAAA;AAAA,IACA,WAAW,IAAA,oBAAQA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAA8B,QAAA,EAAA,OAAA,EAAQ;AAAA,GAAA,EAC3E,CAAA;AAEJ;ACpBO,SAAS,SAAA,CAAU;AAAA,EACxB,WAAA,GAAc,YAAA;AAAA,EACd,IAAA,GAAO,KAAA;AAAA,EACP,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,MAAM,WAAW,QAAA,IAAY,IAAA;AAC7B,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,cAAA;AAAA,QACA,gBAAgB,UAAA,IAAc,wBAAA;AAAA,QAC9B,IAAA,IAAQ,oBAAA;AAAA,QACR,QAAA,IAAY,qBAAA;AAAA,QACZ,CAAC,QAAA,IAAY,WAAA,KAAgB,YAAA,IAAgB,qBAAA;AAAA,QAC7C;AAAA,OACF;AAAA,MACA,IAAA,EAAK,WAAA;AAAA,MACJ,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACbO,SAAS,OAAA,CAAQ;AAAA,EACtB,KAAA,GAAQ,KAAA;AAAA,EACR,KAAA;AAAA,EACA,QAAA;AAAA,EACA,gBAAA,GAAmB,KAAA;AAAA,EACnB,SAAA;AAAA,EACA,iBAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIG,eAAS,gBAAgB,CAAA;AACzD,EAAA,MAAM,cAAc,SAAA,IAAa,QAAA;AAEjC,EAAA,MAAM,SAAS,MAAM;AACnB,IAAA,MAAM,OAAO,CAAC,WAAA;AACd,IAAA,IAAI,SAAA,IAAa,IAAA,EAAM,WAAA,CAAY,IAAI,CAAA;AACvC,IAAA,iBAAA,GAAoB,IAAI,CAAA;AAAA,EAC1B,CAAA;AAEA,EAAA,uBACEF,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,mBAAA,EAAqB,SAAS,CAAA,EAAI,GAAG,IAAA,EACtD,QAAA,EAAA;AAAA,oBAAAA,gBAAC,OAAA,EAAA,EAAM,SAAA,EAAW,GAAG,YAAA,EAAc,WAAA,IAAe,uBAAuB,CAAA,EACvE,QAAA,EAAA;AAAA,sBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EACb,QAAA,EAAA;AAAA,wBAAAD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBAC3CA,cAAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,UAAS,IAAA,EAAK,IAAA,EAAK,IAAA,EAAI,IAAA,EAAC,SAAS,MAAA,EAAQ,YAAA,EAAW,gBAAA,EAC9D,QAAA,EAAA,WAAA,GAAc,WAAM,QAAA,EACvB;AAAA,OAAA,EACF,CAAA;AAAA,sBACAA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBACZ,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,KAAM;AACtB,QAAA,MAAM,GAAA,GAAM,EAAA,CAAG,kBAAA,EAAoB,IAAA,CAAK,UAAU,WAAW,CAAA;AAC7D,QAAA,MAAM,IAAA,mBACJC,eAAAA,CAAAC,mBAAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,IAAA,CAAK,IAAA,IAAQ,wBAAQF,cAAAA,CAAC,UAAK,SAAA,EAAU,uBAAA,EAAyB,eAAK,IAAA,EAAK,CAAA;AAAA,0BACzEA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EAA0B,eAAK,KAAA,EAAM;AAAA,SAAA,EACvD,CAAA;AAEF,QAAA,IAAI,KAAK,IAAA,EAAM;AACb,UAAA,uBACEA,cAAAA,CAAC,GAAA,EAAA,EAAU,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,SAAA,EAAW,GAAA,EAAK,OAAA,EAAS,IAAA,CAAK,OAAA,EACvD,QAAA,EAAA,IAAA,EAAA,EADK,CAER,CAAA;AAAA,QAEJ;AACA,QAAA,uBACEA,cAAAA,CAAC,QAAA,EAAA,EAAe,IAAA,EAAK,QAAA,EAAS,SAAA,EAAW,GAAA,EAAK,OAAA,EAAS,IAAA,CAAK,OAAA,EACzD,QAAA,EAAA,IAAA,EAAA,EADU,CAEb,CAAA;AAAA,MAEJ,CAAC,CAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,oBACAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAoB,QAAA,EAAS;AAAA,GAAA,EAC/C,CAAA;AAEJ;ACpEO,SAAS,QAAA,CAAS;AAAA,EACvB,KAAA,GAAQ,OAAA;AAAA,EACR,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,IAAI,KAAA,KAAU,MAAA,IAAU,KAAA,KAAU,OAAA,EAAS;AACzC,IAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,CAAA,YAAA,EAAe,KAAK,CAAA,CAAA,EAAI,SAAS,CAAA,EAAI,GAAG,IAAA,EACxD,QAAA,EACH,CAAA;AAAA,EAEJ;AACA,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,aAAA;AAAA,QACA,KAAA,KAAU,OAAA,IAAW,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAA;AAAA,QAC1C,KAAA,IAAS,kBAAkB,KAAK,CAAA,CAAA;AAAA,QAChC;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAGO,SAAS,YAAY,EAAE,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,MAAK,EAAmC;AACjG,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,0BAA0B,SAAS,CAAA,EAAI,GAAG,IAAA,EAC1D,QAAA,EACH,CAAA;AAEJ;ACnCO,SAAS,OAAO,EAAE,UAAA,EAAY,YAAY,EAAA,EAAI,GAAG,MAAK,EAAgB;AAC3E,EAAA,MAAM,KAAA,mBACJA,cAAAA,CAAC,OAAA,EAAA,EAAM,MAAK,OAAA,EAAQ,SAAA,EAAW,EAAA,CAAG,WAAA,EAAa,CAAC,UAAA,IAAc,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAGtF,EAAA,IAAI,UAAA,IAAc,MAAM,OAAO,KAAA;AAE/B,EAAA,uBACEC,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,gBAAA,EAAkB,SAAS,CAAA,EAC5C,QAAA,EAAA;AAAA,oBAAAD,eAAC,OAAA,EAAA,EAAM,IAAA,EAAK,SAAQ,SAAA,EAAU,WAAA,EAAa,GAAG,IAAA,EAAM,CAAA;AAAA,oBACpDA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAmB,QAAA,EAAA,UAAA,EAAW;AAAA,GAAA,EAChD,CAAA;AAEJ;AC+BA,SAAS,YAAY,KAAA,EAAuB;AAC1C,EAAA,IAAI,CAAA,GAAI,KAAA;AACR,EAAA,IAAI,CAAA,GAAI,EAAA;AACR,EAAA,GAAG;AACD,IAAA,CAAA,GAAI,MAAA,CAAO,YAAA,CAAa,EAAA,GAAM,CAAA,GAAI,EAAG,CAAA,GAAI,CAAA;AACzC,IAAA,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,CAAA,GAAI,EAAE,CAAA,GAAI,CAAA;AAAA,EAC3B,SAAS,CAAA,IAAK,CAAA;AACd,EAAA,OAAO,CAAA;AACT;AAEA,SAAS,aAAa,GAAA,EAA+B;AACnD,EAAA,MAAM,IAAI,GAAA,CAAI,IAAA,GAAO,WAAA,EAAY,CAAE,MAAM,iBAAiB,CAAA;AAC1D,EAAA,IAAI,CAAC,GAAG,OAAO,IAAA;AACf,EAAA,MAAM,OAAA,GAAU,EAAE,CAAC,CAAA;AACnB,EAAA,MAAM,MAAM,QAAA,CAAS,CAAA,CAAE,CAAC,CAAA,EAAG,EAAE,CAAA,GAAI,CAAA;AACjC,EAAA,IAAI,GAAA,GAAM,CAAA;AACV,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AACvC,IAAA,GAAA,GAAM,GAAA,GAAM,EAAA,IAAM,OAAA,CAAQ,UAAA,CAAW,CAAC,CAAA,GAAI,EAAA,CAAA;AAAA,EAC5C;AACA,EAAA,GAAA,IAAO,CAAA;AACP,EAAA,IAAI,GAAA,GAAM,CAAA,IAAK,GAAA,GAAM,CAAA,EAAG,OAAO,IAAA;AAC/B,EAAA,OAAO,EAAE,KAAK,GAAA,EAAI;AACpB;AAEA,SAAS,WAAA,CAAY,KAAa,GAAA,EAAqB;AACrD,EAAA,OAAO,GAAG,WAAA,CAAY,GAAG,CAAC,CAAA,EAAG,MAAM,CAAC,CAAA,CAAA;AACtC;AAEA,SAAS,YAAA,CAAa,IAAA,EAAc,IAAA,EAAc,IAAA,GAAO,EAAA,EAAqB;AAC5E,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,MAAK,EAAG,MAAM,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAA,EAAK,EAAG,MAAM,IAAI,CAAC,CAAA;AACpF;AAEA,SAAS,YAAY,IAAA,EAAwC;AAC3D,EAAA,OAAO,KAAK,GAAA,CAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAA;AACnC;AAEA,SAAS,UAAA,CAAW,IAAA,EAAuB,IAAA,EAAc,IAAA,EAA+B;AACtF,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,KAAQ;AAC7B,IAAA,MAAM,CAAA,GAAI,CAAC,GAAG,GAAG,CAAA;AACjB,IAAA,OAAO,CAAA,CAAE,MAAA,GAAS,IAAA,EAAM,CAAA,CAAE,KAAK,EAAE,CAAA;AACjC,IAAA,OAAO,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,IAAI,CAAA;AAAA,EACxB,CAAC,CAAA;AACD,EAAA,OAAO,IAAA,CAAK,MAAA,GAAS,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAA,EAAK,EAAG,MAAM,EAAE,CAAC,CAAA;AAC3E,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,IAAI,CAAA;AAC3B;AAEA,SAAS,iBAAiB,KAAA,EAAwB;AAChD,EAAA,IAAI,UAAU,EAAA,IAAM,KAAA,CAAM,UAAA,CAAW,GAAG,GAAG,OAAO,KAAA;AAClD,EAAA,OAAO,CAAC,OAAO,KAAA,CAAM,MAAA,CAAO,KAAK,CAAC,CAAA,IAAK,KAAA,CAAM,IAAA,EAAK,KAAM,EAAA;AAC1D;AAGA,SAAS,gBAAgB,GAAA,EAAa,IAAA,EAAuB,KAAA,mBAAqB,IAAI,KAAI,EAAW;AACnG,EAAA,MAAM,IAAA,GAAO,GAAA,CAAI,KAAA,CAAM,CAAC,EAAE,IAAA,EAAK;AAC/B,EAAA,IAAI,CAAC,MAAM,OAAO,EAAA;AAElB,EAAA,MAAM,OAAA,GAAU,CAAC,GAAA,EAAa,GAAA,KAAiC;AAC7D,IAAA,IAAI,GAAA,GAAM,CAAA,IAAK,GAAA,GAAM,CAAA,IAAK,GAAA,IAAO,IAAA,CAAK,MAAA,IAAU,GAAA,KAAQ,IAAA,CAAK,CAAC,CAAA,EAAG,MAAA,IAAU,IAAI,OAAO,CAAA;AACtF,IAAA,MAAM,CAAA,GAAI,IAAA,CAAK,GAAG,CAAA,CAAE,GAAG,CAAA,IAAK,EAAA;AAC5B,IAAA,IAAI,CAAA,CAAE,UAAA,CAAW,GAAG,CAAA,EAAG;AACrB,MAAA,MAAM,IAAA,GAAO,WAAA,CAAY,GAAA,EAAK,GAAG,CAAA;AACjC,MAAA,IAAI,KAAA,CAAM,GAAA,CAAI,IAAI,CAAA,EAAG,OAAO,SAAA;AAC5B,MAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,KAAK,CAAA;AAC1B,MAAA,IAAA,CAAK,IAAI,IAAI,CAAA;AACb,MAAA,MAAM,GAAA,GAAM,eAAA,CAAgB,CAAA,EAAG,IAAA,EAAM,IAAI,CAAA;AACzC,MAAA,IAAI,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,EAAG,OAAO,GAAA;AAChC,MAAA,MAAMS,EAAAA,GAAI,OAAO,GAAG,CAAA;AACpB,MAAA,OAAO,MAAA,CAAO,KAAA,CAAMA,EAAC,CAAA,GAAI,GAAA,GAAMA,EAAAA;AAAA,IACjC;AACA,IAAA,IAAI,CAAA,KAAM,IAAI,OAAO,CAAA;AACrB,IAAA,MAAM,CAAA,GAAI,OAAO,CAAC,CAAA;AAClB,IAAA,OAAO,MAAA,CAAO,KAAA,CAAM,CAAC,CAAA,GAAI,CAAA,GAAI,CAAA;AAAA,EAC/B,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,EAAW,CAAA,KAAwB;AACtD,IAAA,MAAM,KAAA,GAAQ,aAAa,CAAC,CAAA;AAC5B,IAAA,MAAM,GAAA,GAAM,aAAa,CAAC,CAAA;AAC1B,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,GAAA,SAAY,EAAC;AAC5B,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,GAAA,EAAK,IAAI,GAAG,CAAA;AACtC,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,GAAA,EAAK,IAAI,GAAG,CAAA;AACtC,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,GAAA,EAAK,IAAI,GAAG,CAAA;AACtC,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,GAAA,EAAK,IAAI,GAAG,CAAA;AACtC,IAAA,MAAM,OAAiB,EAAC;AACxB,IAAA,KAAA,IAAS,CAAA,GAAI,EAAA,EAAI,CAAA,IAAK,EAAA,EAAI,CAAA,EAAA,EAAK;AAC7B,MAAA,KAAA,IAAS,CAAA,GAAI,EAAA,EAAI,CAAA,IAAK,EAAA,EAAI,CAAA,EAAA,EAAK;AAC7B,QAAA,MAAM,CAAA,GAAI,OAAA,CAAQ,CAAA,EAAG,CAAC,CAAA;AACtB,QAAA,IAAI,OAAO,CAAA,KAAM,QAAA,EAAU,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,aAAA,IAC7B,OAAO,CAAA,KAAM,QAAA,IAAY,CAAC,CAAA,CAAE,UAAA,CAAW,GAAG,CAAA,EAAG;AACpD,UAAA,MAAM,CAAA,GAAI,OAAO,CAAC,CAAA;AAClB,UAAA,IAAI,CAAC,MAAA,CAAO,KAAA,CAAM,CAAC,CAAA,EAAG,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,QACnC;AAAA,MACF;AAAA,IACF;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAGA,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,+CAA+C,CAAA;AAC1E,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,MAAM,EAAA,GAAK,OAAA,CAAQ,CAAC,CAAA,CAAE,WAAA,EAAY;AAClC,IAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,CAAC,CAAA,CAAE,IAAA,EAAK;AAC5B,IAAA,IAAI,OAAiB,EAAC;AACtB,IAAA,IAAI,GAAA,CAAI,QAAA,CAAS,GAAG,CAAA,EAAG;AACrB,MAAA,MAAM,CAAC,CAAA,EAAG,CAAC,CAAA,GAAI,GAAA,CAAI,MAAM,GAAG,CAAA;AAC5B,MAAA,IAAA,GAAO,WAAA,CAAY,GAAG,CAAC,CAAA;AAAA,IACzB,CAAA,MAAO;AACL,MAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,KAAA,CAAM,GAAG,CAAA,CAAE,IAAI,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,EAAM,CAAA;AAChD,MAAA,KAAA,MAAW,KAAK,KAAA,EAAO;AACrB,QAAA,MAAM,GAAA,GAAM,aAAa,CAAC,CAAA;AAC1B,QAAA,IAAI,GAAA,EAAK;AACP,UAAA,MAAM,CAAA,GAAI,OAAA,CAAQ,GAAA,CAAI,GAAA,EAAK,IAAI,GAAG,CAAA;AAClC,UAAA,IAAI,OAAO,CAAA,KAAM,QAAA,EAAU,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,QACxC,CAAA,MAAO;AACL,UAAA,MAAM,CAAA,GAAI,OAAO,CAAC,CAAA;AAClB,UAAA,IAAI,CAAC,MAAA,CAAO,KAAA,CAAM,CAAC,CAAA,EAAG,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,QACnC;AAAA,MACF;AAAA,IACF;AACA,IAAA,IAAI,EAAA,KAAO,OAAA,EAAS,OAAO,MAAA,CAAO,KAAK,MAAM,CAAA;AAC7C,IAAA,IAAI,IAAA,CAAK,MAAA,KAAW,CAAA,EAAG,OAAO,GAAA;AAC9B,IAAA,IAAI,EAAA,KAAO,KAAA,EAAO,OAAO,MAAA,CAAO,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,GAAI,CAAA,EAAG,CAAC,CAAC,CAAA;AAC/D,IAAA,IAAI,EAAA,KAAO,SAAS,EAAA,KAAO,SAAA;AACzB,MAAA,OAAO,MAAA,CAAO,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,GAAI,CAAA,EAAG,CAAC,CAAA,GAAI,IAAA,CAAK,MAAM,CAAA;AAC7D,IAAA,IAAI,EAAA,KAAO,OAAO,OAAO,MAAA,CAAO,KAAK,GAAA,CAAI,GAAG,IAAI,CAAC,CAAA;AACjD,IAAA,IAAI,EAAA,KAAO,OAAO,OAAO,MAAA,CAAO,KAAK,GAAA,CAAI,GAAG,IAAI,CAAC,CAAA;AAAA,EACnD;AAGA,EAAA,IAAI;AACF,IAAA,IAAI,QAAA,GAAW,IAAA,CAAK,OAAA,CAAQ,aAAA,EAAe,CAAC,GAAA,KAAQ;AAClD,MAAA,MAAM,KAAA,GAAQ,aAAa,GAAG,CAAA;AAC9B,MAAA,IAAI,CAAC,OAAO,OAAO,GAAA;AACnB,MAAA,MAAM,CAAA,GAAI,OAAA,CAAQ,KAAA,CAAM,GAAA,EAAK,MAAM,GAAG,CAAA;AACtC,MAAA,IAAI,OAAO,CAAA,KAAM,QAAA,IAAY,CAAA,CAAE,UAAA,CAAW,GAAG,CAAA,EAAG,MAAM,IAAI,KAAA,CAAM,CAAC,CAAA;AACjE,MAAA,IAAI,OAAO,CAAA,KAAM,QAAA,EAAU,OAAO,OAAO,CAAC,CAAA;AAC1C,MAAA,MAAM,CAAA,GAAI,OAAO,CAAC,CAAA;AAClB,MAAA,IAAI,OAAO,KAAA,CAAM,CAAC,GAAG,MAAM,IAAI,MAAM,SAAS,CAAA;AAC9C,MAAA,OAAO,OAAO,CAAC,CAAA;AAAA,IACjB,CAAC,CAAA;AAED,IAAA,IAAI,CAAC,mBAAA,CAAoB,IAAA,CAAK,QAAQ,GAAG,OAAO,QAAA;AAEhD,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,CAAA,sBAAA,EAAyB,QAAQ,IAAI,CAAA,EAAE;AAC/D,IAAA,IAAI,OAAO,WAAW,QAAA,IAAY,CAAC,OAAO,QAAA,CAAS,MAAM,GAAG,OAAO,OAAA;AAEnE,IAAA,OAAO,OAAO,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,IAAI,IAAI,IAAI,CAAA;AAAA,EAChD,SAAS,CAAA,EAAG;AACV,IAAA,IAAI,CAAA,YAAa,SAAS,CAAA,CAAE,OAAA,CAAQ,WAAW,GAAG,CAAA,SAAU,CAAA,CAAE,OAAA;AAC9D,IAAA,OAAO,SAAA;AAAA,EACT;AACF;AAEA,SAAS,YAAA,CAAa,GAAA,EAAa,IAAA,EAAuB,QAAA,EAA2B;AACnF,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,IAAI,UAAA,CAAW,GAAG,GAAG,OAAO,GAAA;AAC9C,EAAA,OAAO,eAAA,CAAgB,KAAK,IAAI,CAAA;AAClC;AAEA,SAAS,OAAA,CAAQ,IAAA,EAAiB,CAAA,EAAc,CAAA,EAAuB;AACrE,EAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,GAAA,EAAK,EAAE,GAAG,CAAA;AAChC,EAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,GAAA,EAAK,EAAE,GAAG,CAAA;AAChC,EAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,GAAA,EAAK,EAAE,GAAG,CAAA;AAChC,EAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,GAAA,EAAK,EAAE,GAAG,CAAA;AAChC,EAAA,OAAO,IAAA,CAAK,GAAA,IAAO,EAAA,IAAM,IAAA,CAAK,GAAA,IAAO,MAAM,IAAA,CAAK,GAAA,IAAO,EAAA,IAAM,IAAA,CAAK,GAAA,IAAO,EAAA;AAC3E;AAUO,SAAS,WAAA,CAAY;AAAA,EAC1B,IAAA,EAAM,cAAA;AAAA,EACN,WAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,IAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAM,QAAA;AAAA,EACN,WAAA,GAAc,EAAA;AAAA,EACd,SAAA,GAAY,GAAA;AAAA,EACZ,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,IAAA;AAAA,EACX,cAAA,GAAiB,IAAA;AAAA,EACjB,UAAA,GAAa,IAAA;AAAA,EACb,YAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,IAAA,GAAO,QAAA,IAAY,cAAA,EAAgB,MAAA,IAAU,aAAa,MAAA,IAAU,EAAA;AAC1E,EAAA,MAAM,IAAA,GACJ,YAAY,cAAA,GAAiB,CAAC,GAAG,MAAA,IAAU,WAAA,GAAc,CAAC,CAAA,EAAG,MAAA,IAAU,CAAA;AAEzE,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIN,cAAAA;AAAA,IAA0B,MACxD,WAAW,WAAA,IAAe,YAAA,CAAa,MAAM,IAAI,CAAA,EAAG,MAAM,IAAI;AAAA,GAChE;AAEA,EAAA,MAAM,MAAA,GAASJ,cAAQ,MAAM;AAC3B,IAAA,MAAM,SAAS,cAAA,IAAkB,QAAA;AACjC,IAAA,OAAO,UAAA,CAAW,MAAA,EAAQ,IAAA,EAAM,IAAI,CAAA;AAAA,EACtC,GAAG,CAAC,cAAA,EAAgB,QAAA,EAAU,IAAA,EAAM,IAAI,CAAC,CAAA;AAEzC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAII,cAAAA,CAAoB,EAAE,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,CAAA;AAClE,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,cAAAA,CAAoB,EAAE,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,CAAA;AAClE,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,eAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,eAAS,EAAE,CAAA;AACrC,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,eAA0B,MAAM,CAAA;AAEpE,EAAA,MAAM,OAAA,GAAUI,aAAuB,IAAI,CAAA;AAC3C,EAAA,MAAM,YAAA,GAAeA,aAAyB,IAAI,CAAA;AAClD,EAAA,MAAM,UAAA,GAAaA,aAAyB,IAAI,CAAA;AAEhD,EAAA,MAAM,SAAA,GAAYC,iBAAAA;AAAA,IAChB,CAAC,MAAuB,IAAA,KAAuD;AAC7E,MAAA,IAAI,cAAA,IAAkB,IAAA,EAAM,WAAA,CAAY,IAAI,CAAA;AAC5C,MAAA,QAAA,GAAW,IAAI,CAAA;AACf,MAAA,IAAI,IAAA,iBAAqB,IAAA,CAAK,GAAA,EAAK,KAAK,GAAA,EAAK,IAAA,CAAK,OAAO,IAAI,CAAA;AAAA,IAC/D,CAAA;AAAA,IACA,CAAC,cAAA,EAAgB,QAAA,EAAU,YAAY;AAAA,GACzC;AAEA,EAAA,MAAM,MAAA,GAASA,iBAAAA;AAAA,IACb,CAAC,GAAA,EAAa,GAAA,EAAa,KAAA,KAAkB;AAC3C,MAAA,MAAM,IAAA,GAAO,YAAY,MAAM,CAAA;AAC/B,MAAA,IAAA,CAAK,GAAG,CAAA,CAAE,GAAG,CAAA,GAAI,KAAA;AACjB,MAAA,SAAA,CAAU,IAAA,EAAM,EAAE,GAAA,EAAK,GAAA,EAAK,OAAO,CAAA;AAAA,IACrC,CAAA;AAAA,IACA,CAAC,QAAQ,SAAS;AAAA,GACpB;AAEA,EAAA,MAAM,SAAA,GAAYA,iBAAAA;AAAA,IAChB,CAAC,MAAuB,IAAA,KAAkB;AACxC,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,MAAM,MAAM,MAAA,CAAO,MAAA,CAAO,GAAG,CAAA,GAAI,MAAA,CAAO,GAAG,CAAA,IAAK,EAAA;AAChD,MAAA,QAAA,CAAS,IAAA,KAAS,MAAA,GAAY,IAAA,GAAO,GAAG,CAAA;AACxC,MAAA,aAAA,CAAc,IAAI,CAAA;AAClB,MAAA,UAAA,CAAW,IAAI,CAAA;AAAA,IACjB,CAAA;AAAA,IACA,CAAC,QAAA,EAAU,MAAA,EAAQ,MAAM;AAAA,GAC3B;AAEA,EAAA,MAAM,OAAA,GAAUA,iBAAAA;AAAA,IACd,CAAC,MAAe,IAAA,KAAqB;AACnC,MAAA,IAAI,WAAW,IAAA,EAAM;AACnB,QAAA,MAAA,CAAO,MAAA,CAAO,GAAA,EAAK,MAAA,CAAO,GAAA,EAAK,KAAK,CAAA;AAAA,MACtC;AACA,MAAA,UAAA,CAAW,KAAK,CAAA;AAChB,MAAA,QAAA,CAAS,EAAE,CAAA;AACX,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,SAAA,CAAU,IAAI,CAAA;AACd,QAAA,SAAA,CAAU,IAAI,CAAA;AAAA,MAChB;AAEA,MAAA,qBAAA,CAAsB,MAAM,OAAA,CAAQ,OAAA,EAAS,KAAA,EAAO,CAAA;AAAA,IACtD,CAAA;AAAA,IACA,CAAC,OAAA,EAAS,KAAA,EAAO,MAAA,EAAQ,MAAM;AAAA,GACjC;AAEA,EAAAF,gBAAU,MAAM;AACd,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,MAAM,KAAK,YAAA,CAAa,OAAA;AACxB,MAAA,IAAI,EAAA,EAAI;AACN,QAAA,EAAA,CAAG,KAAA,EAAM;AACT,QAAA,IAAI,UAAA,KAAe,MAAA,EAAQ,EAAA,CAAG,MAAA,EAAO;AAAA,aAChC;AACH,UAAA,MAAM,GAAA,GAAM,GAAG,KAAA,CAAM,MAAA;AACrB,UAAA,EAAA,CAAG,iBAAA,CAAkB,KAAK,GAAG,CAAA;AAAA,QAC/B;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA,EAAG,CAAC,OAAA,EAAS,UAAU,CAAC,CAAA;AAExB,EAAA,MAAM,YAAY,MAAA,CAAO,MAAA,CAAO,GAAG,CAAA,GAAI,MAAA,CAAO,GAAG,CAAA,IAAK,EAAA;AACtD,EAAA,MAAM,aAAA,GAAgB,YAAA,CAAa,SAAA,EAAW,MAAA,EAAQ,QAAQ,CAAA;AAC9D,EAAA,MAAM,cAAA,GAAiBP,cAAQ,MAAM;AACnC,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,GAAA,EAAK,OAAO,GAAG,CAAA;AAC1C,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,GAAA,EAAK,OAAO,GAAG,CAAA;AAC1C,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,GAAA,EAAK,OAAO,GAAG,CAAA;AAC1C,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,GAAA,EAAK,OAAO,GAAG,CAAA;AAC1C,IAAA,OAAA,CAAQ,EAAA,GAAK,EAAA,GAAK,CAAA,KAAM,EAAA,GAAK,EAAA,GAAK,CAAA,CAAA;AAAA,EACpC,CAAA,EAAG,CAAC,MAAA,EAAQ,MAAM,CAAC,CAAA;AAEnB,EAAA,MAAM,UAAA,GAAa,CAAC,GAAA,EAAa,GAAA,EAAa,MAAA,KAAoB;AAChE,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,GAAA,EAAK,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,IAAA,GAAO,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,MACxC,GAAA,EAAK,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,IAAA,GAAO,CAAA,EAAG,GAAG,CAAC;AAAA,KAC1C;AACA,IAAA,SAAA,CAAU,IAAI,CAAA;AACd,IAAA,IAAI,CAAC,MAAA,EAAQ,SAAA,CAAU,IAAI,CAAA;AAAA,EAC7B,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAA0C;AAC/D,IAAA,IAAI,OAAA,EAAS;AAEb,IAAA,MAAM,EAAE,GAAA,EAAK,QAAA,EAAU,OAAA,EAAS,SAAQ,GAAI,CAAA;AAC5C,IAAA,MAAM,MAAM,OAAA,IAAW,OAAA;AAGvB,IAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,OAAA,EAAS;AACnC,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,IAAI,GAAA,KAAQ,OAAA,IAAW,CAAC,QAAA,EAAU;AAChC,QAAA,SAAA,CAAU,MAAM,CAAA;AAAA,MAClB,CAAA,MAAA,IAAW,QAAQ,IAAA,EAAM;AACvB,QAAA,SAAA,CAAU,MAAM,CAAA;AAAA,MAClB,CAAA,MAAA,IAAW,GAAA,KAAQ,OAAA,IAAW,QAAA,EAAU;AACtC,QAAA,UAAA,CAAW,MAAA,CAAO,GAAA,GAAM,CAAA,EAAG,MAAA,CAAO,KAAK,KAAK,CAAA;AAAA,MAC9C;AACA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,GAAA,KAAQ,QAAA,IAAY,GAAA,KAAQ,WAAA,EAAa;AAC3C,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,IAAI,QAAQ,WAAA,EAAa;AACvB,QAAA,SAAA,CAAU,QAAQ,EAAE,CAAA;AAAA,MACtB,CAAA,MAAO;AAEL,QAAA,MAAM,IAAA,GAAO,YAAY,MAAM,CAAA;AAC/B,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,EAAM,CAAA,EAAA,EAAK;AAC7B,UAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,EAAM,CAAA,EAAA,EAAK;AAC7B,YAAA,IAAI,OAAA,CAAQ,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,CAAA,EAAE,EAAG,MAAA,EAAQ,MAAM,CAAA,EAAG,IAAA,CAAK,CAAC,CAAA,CAAE,CAAC,CAAA,GAAI,EAAA;AAAA,UAChE;AAAA,QACF;AACA,QAAA,SAAA,CAAU,IAAI,CAAA;AAAA,MAChB;AACA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,GAAA,IAAO,GAAA,CAAI,WAAA,EAAY,KAAM,GAAA,EAAK;AACpC,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAM,IAAA,GAAO,SAAA;AACb,MAAA,KAAK,SAAA,CAAU,SAAA,EAAW,SAAA,CAAU,IAAI,CAAA;AACxC,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,OAAO,GAAA,CAAI,WAAA,EAAY,KAAM,GAAA,IAAO,CAAC,QAAA,EAAU;AACjD,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,KAAK,UAAU,SAAA,EAAW,QAAA,EAAS,CAAE,IAAA,CAAK,CAAC,IAAA,KAAS;AAElD,QAAA,MAAM,KAAA,GAAQ,KAAK,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA,CAAE,KAAA,CAAM,IAAI,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,EAAG,CAAA,EAAG,QAAQ,EAAE,CAAA,KAAM,IAAI,MAAA,GAAS,CAAA,IAAK,MAAM,EAAA,CAAG,CAAA;AAC3G,QAAA,MAAM,IAAA,GAAO,YAAY,MAAM,CAAA;AAC/B,QAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,EAAM,EAAA,KAAO;AAC1B,UAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,GAAI,CAAA;AAC7B,UAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,GAAA,EAAK,EAAA,KAAO;AACzB,YAAA,MAAM,CAAA,GAAI,OAAO,GAAA,GAAM,EAAA;AACvB,YAAA,MAAM,CAAA,GAAI,OAAO,GAAA,GAAM,EAAA;AACvB,YAAA,IAAI,CAAA,GAAI,QAAQ,CAAA,GAAI,IAAA,OAAW,CAAC,CAAA,CAAE,CAAC,CAAA,GAAI,GAAA;AAAA,UACzC,CAAC,CAAA;AAAA,QACH,CAAC,CAAA;AACD,QAAA,SAAA,CAAU,IAAI,CAAA;AAAA,MAChB,CAAC,CAAA;AACD,MAAA;AAAA,IACF;AAGA,IAAA,MAAM,GAAA,GAAwC;AAAA,MAC5C,OAAA,EAAS,CAAC,EAAA,EAAI,CAAC,CAAA;AAAA,MACf,SAAA,EAAW,CAAC,CAAA,EAAG,CAAC,CAAA;AAAA,MAChB,SAAA,EAAW,CAAC,CAAA,EAAG,EAAE,CAAA;AAAA,MACjB,UAAA,EAAY,CAAC,CAAA,EAAG,CAAC,CAAA;AAAA,MACjB,GAAA,EAAK,CAAC,CAAA,EAAG,QAAA,GAAW,KAAK,CAAC,CAAA;AAAA,MAC1B,IAAA,EAAM,CAAC,CAAA,EAAG,CAAC,OAAO,GAAG,CAAA;AAAA,MACrB,KAAK,CAAC,CAAA,EAAG,IAAA,GAAO,CAAA,GAAI,OAAO,GAAG;AAAA,KAChC;AAEA,IAAA,IAAI,OAAO,GAAA,EAAK;AACd,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAM,CAAC,EAAA,EAAI,EAAE,CAAA,GAAI,IAAI,GAAG,CAAA;AACxB,MAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,QAAA,UAAA,CAAW,OAAO,GAAA,GAAM,EAAA,EAAI,MAAA,CAAO,GAAA,GAAM,IAAI,KAAK,CAAA;AAAA,MACpD,CAAA,MAAO;AACL,QAAA,UAAA,CAAW,OAAO,GAAA,GAAM,EAAA,EAAI,MAAA,CAAO,GAAA,GAAM,IAAI,QAAQ,CAAA;AAAA,MACvD;AACA,MAAA;AAAA,IACF;AAGA,IAAA,IACE,CAAC,YACD,GAAA,CAAI,MAAA,KAAW,KACf,CAAC,GAAA,IACD,CAAC,CAAA,CAAE,MAAA,EACH;AACA,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,SAAA,CAAU,QAAQ,GAAG,CAAA;AAAA,IACvB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,CAAC,CAAA,KAA4C;AACnE,IAAA,IAAI,CAAA,CAAE,QAAQ,QAAA,EAAU;AACtB,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,OAAA,CAAQ,KAAK,CAAA;AACb,MAAA;AAAA,IACF;AACA,IAAA,IAAI,CAAA,CAAE,QAAQ,OAAA,EAAS;AACrB,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,OAAA,CAAQ,IAAA,EAAM;AAAA,QACZ,GAAA,EAAK,IAAA,CAAK,GAAA,CAAI,IAAA,GAAO,CAAA,EAAG,OAAO,GAAA,IAAO,CAAA,CAAE,QAAA,GAAW,EAAA,GAAK,CAAA,CAAE,CAAA;AAAA,QAC1D,KAAK,MAAA,CAAO;AAAA,OACb,CAAA;AACD,MAAA;AAAA,IACF;AACA,IAAA,IAAI,CAAA,CAAE,QAAQ,KAAA,EAAO;AACnB,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,OAAA,CAAQ,IAAA,EAAM;AAAA,QACZ,KAAK,MAAA,CAAO,GAAA;AAAA,QACZ,GAAA,EAAK,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,IAAA,GAAO,CAAA,EAAG,MAAA,CAAO,GAAA,IAAO,CAAA,CAAE,QAAA,GAAW,EAAA,GAAK,EAAE,CAAC;AAAA,OACxE,CAAA;AACD,MAAA;AAAA,IACF;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY;AAAA,IAChB,GAAG,KAAA;AAAA,IACH,CAAC,0BAAoC,GAAG,CAAA,EAAG,WAAW,CAAA,EAAA,CAAA;AAAA,IACtD,CAAC,2BAAqC,GACpC,OAAO,cAAc,QAAA,GAAW,CAAA,EAAG,SAAS,CAAA,EAAA,CAAA,GAAO;AAAA,GACvD;AAEA,EAAA,uBACEE,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,OAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,cAAA;AAAA,QACA,OAAA,IAAW,uBAAA;AAAA,QACX,QAAA,IAAY,wBAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,KAAA,EAAO,SAAA;AAAA,MACP,QAAA,EAAU,CAAA;AAAA,MACV,IAAA,EAAK,MAAA;AAAA,MACL,eAAA,EAAe,IAAA;AAAA,MACf,eAAA,EAAe,IAAA;AAAA,MACf,YAAA,EAAW,aAAA;AAAA,MACX,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,cAAA,oBACCA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,cAAAA,CAAC,SAAI,SAAA,EAAU,oBAAA,EAAsB,sBAAY,MAAA,CAAO,GAAA,EAAK,MAAA,CAAO,GAAG,CAAA,EAAE,CAAA;AAAA,0BACzEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAyB,QAAA,EAAA,SAAA,EAAE,CAAA;AAAA,0BAC1CA,cAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAK,UAAA;AAAA,cACL,SAAA,EAAU,wBAAA;AAAA,cACV,KAAA,EAAO,UAAU,KAAA,GAAQ,SAAA;AAAA,cACzB,QAAA,EAAU,QAAA;AAAA,cACV,UAAA,EAAY,KAAA;AAAA,cACZ,YAAA,EAAW,aAAA;AAAA,cACX,SAAS,MAAM;AACb,gBAAA,IAAI,CAAC,QAAA,IAAY,CAAC,OAAA,YAAmB,MAAM,CAAA;AAAA,cAC7C,CAAA;AAAA,cACA,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,gBAAA,IAAI,CAAC,OAAA,EAAS,SAAA,CAAU,MAAA,EAAQ,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,qBACzC,QAAA,CAAS,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAAA,cAC9B,CAAA;AAAA,cACA,SAAA,EAAW,eAAA;AAAA,cACX,QAAQ,MAAM;AAEZ,gBAAA,IAAI,OAAA,UAAiB,IAAI,CAAA;AAAA,cAC3B;AAAA;AAAA;AACF,SAAA,EACF,CAAA;AAAA,wBAGFA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BACb,QAAA,kBAAAC,eAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,qBAAA,EACf,QAAA,EAAA;AAAA,0BAAAD,cAAAA,CAAC,OAAA,EAAA,EACC,QAAA,kBAAAC,eAAAA,CAAC,IAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAD,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,sBAAA,EAAuB,OAAM,KAAA,EAAM,CAAA;AAAA,YAChD,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,MAAK,EAAG,CAAC,CAAA,EAAG,CAAA,qBAChCA,cAAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBAEC,SAAA,EAAW,EAAA;AAAA,kBACT,wBAAA;AAAA,kBAAA,CACC,MAAA,CAAO,GAAA,KAAQ,CAAA,IACd,OAAA,CAAQ,EAAE,GAAA,EAAK,MAAA,CAAO,GAAA,EAAK,GAAA,EAAK,CAAA,EAAE,EAAG,MAAA,EAAQ,MAAM,CAAA,KACnD;AAAA,iBACJ;AAAA,gBACA,KAAA,EAAM,KAAA;AAAA,gBAEL,QAAA,EAAA,YAAA,GAAe,CAAC,CAAA,IAAK,WAAA,CAAY,CAAC;AAAA,eAAA;AAAA,cAT9B;AAAA,aAWR;AAAA,WAAA,EACH,CAAA,EACF,CAAA;AAAA,0BACAA,cAAAA,CAAC,OAAA,EAAA,EACE,QAAA,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,IAAA,EAAK,EAAG,CAAC,CAAA,EAAG,CAAA,qBAChCC,gBAAC,IAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAD,cAAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,wBAAA;AAAA,kBAAA,CACC,MAAA,CAAO,GAAA,KAAQ,CAAA,IACd,OAAA,CAAQ,EAAE,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,MAAA,CAAO,GAAA,EAAI,EAAG,MAAA,EAAQ,MAAM,CAAA,KACnD;AAAA,iBACJ;AAAA,gBACA,KAAA,EAAM,KAAA;AAAA,gBAEL,QAAA,EAAA,SAAA,GAAY,CAAC,CAAA,IAAK,CAAA,GAAI;AAAA;AAAA,aACzB;AAAA,YACC,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,MAAK,EAAG,CAACU,IAAG,CAAA,KAAM;AACtC,cAAA,MAAM,GAAA,GAAM,MAAA,CAAO,CAAC,CAAA,GAAI,CAAC,CAAA,IAAK,EAAA;AAC9B,cAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,GAAA,EAAK,MAAA,EAAQ,QAAQ,CAAA;AAChD,cAAA,MAAM,QAAA,GAAW,MAAA,CAAO,GAAA,KAAQ,CAAA,IAAK,OAAO,GAAA,KAAQ,CAAA;AACpD,cAAA,MAAM,UAAA,GAAa,QAAQ,EAAE,GAAA,EAAK,GAAG,GAAA,EAAK,CAAA,EAAE,EAAG,MAAA,EAAQ,MAAM,CAAA;AAC7D,cAAA,MAAM,YAAY,QAAA,IAAY,OAAA;AAC9B,cAAA,MAAM,KAAA,GAAQ,YAAY,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,IAAK,KAAA,CAAM,WAAW,GAAG,CAAA;AACrE,cAAA,MAAM,KAAA,GACH,CAAC,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,IAAK,gBAAA,CAAiB,GAAG,CAAA,IAC5C,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,IAAK,iBAAiB,KAAK,CAAA;AAEhD,cAAA,uBACEV,cAAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBAEC,IAAA,EAAK,UAAA;AAAA,kBACL,eAAA,EAAe,UAAA;AAAA,kBACf,iBAAe,CAAA,GAAI,CAAA;AAAA,kBACnB,SAAA,EAAW,EAAA;AAAA,oBACT,oBAAA;AAAA,oBACA,QAAA,IAAY,WAAA;AAAA,oBACZ,UAAA,IAAc,aAAA;AAAA,oBACd,SAAA,IAAa,YAAA;AAAA,oBACb,KAAA,IAAS,4BAAA;AAAA,oBACT,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,IAAK,6BAAA;AAAA,oBACvB,KAAA,IAAS;AAAA,mBACX;AAAA,kBACA,WAAA,EAAa,CAAC,CAAA,KAAM;AAElB,oBAAA,IAAI,WAAW,QAAA,EAAU;AACzB,oBAAA,IAAI,OAAA,UAAiB,IAAI,CAAA;AACzB,oBAAA,CAAA,CAAE,cAAA,EAAe;AACjB,oBAAA,OAAA,CAAQ,SAAS,KAAA,EAAM;AACvB,oBAAA,MAAM,IAAA,GAAO,EAAE,GAAA,EAAK,CAAA,EAAG,KAAK,CAAA,EAAE;AAC9B,oBAAA,SAAA,CAAU,IAAI,CAAA;AACd,oBAAA,IAAI,EAAE,QAAA,EAAU,CAEhB,MAAO;AACL,sBAAA,SAAA,CAAU,IAAI,CAAA;AAAA,oBAChB;AAAA,kBACF,CAAA;AAAA,kBACA,eAAe,MAAM;AACnB,oBAAA,IAAI,CAAC,QAAA,EAAU,SAAA,CAAU,MAAM,CAAA;AAAA,kBACjC,CAAA;AAAA,kBAEC,sCACCA,cAAAA;AAAA,oBAAC,OAAA;AAAA,oBAAA;AAAA,sBACC,GAAA,EAAK,YAAA;AAAA,sBACL,SAAA,EAAW,EAAA;AAAA,wBACT,0BAAA;AAAA,wBACA,KAAA,IAAS;AAAA,uBACX;AAAA,sBACA,KAAA,EAAO,KAAA;AAAA,sBACP,UAAA,EAAY,KAAA;AAAA,sBACZ,YAAA,EAAY,CAAA,KAAA,EAAQ,WAAA,CAAY,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA;AAAA,sBACrC,UAAU,CAAC,CAAA,KAAM,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,sBACxC,SAAA,EAAW,eAAA;AAAA,sBACX,QAAQ,MAAM;AAEZ,wBAAA,qBAAA,CAAsB,MAAM;AAC1B,0BAAA,IAAI,QAAA,CAAS,aAAA,KAAkB,UAAA,CAAW,OAAA,EAAS;AACnD,0BAAA,IAAI,QAAA,CAAS,aAAA,KAAkB,YAAA,CAAa,OAAA,EAAS;AACrD,0BAAA,IAAI,OAAA,UAAiB,IAAI,CAAA;AAAA,wBAC3B,CAAC,CAAA;AAAA,sBACH;AAAA;AAAA,sCAGFA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8BAA8B,QAAA,EAAA,KAAA,EAAM;AAAA,iBAAA;AAAA,gBArDjD;AAAA,eAuDP;AAAA,YAEJ,CAAC;AAAA,WAAA,EAAA,EAlFM,CAmFT,CACD,CAAA,EACH;AAAA,SAAA,EACF,CAAA,EACF,CAAA;AAAA,QAEC,UAAA,oBACCC,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,sBAAA,EACb,QAAA,EAAA;AAAA,0BAAAA,gBAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,YAAA,OAAA;AAAA,4BACCD,eAAC,QAAA,EAAA,EAAQ,QAAA,EAAA,WAAA,CAAY,OAAO,GAAA,EAAK,MAAA,CAAO,GAAG,CAAA,EAAE;AAAA,WAAA,EACpD,CAAA;AAAA,UACC,cAAA,GAAiB,CAAA,oBAChBC,eAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,YAAA,MAAA;AAAA,4BACAD,cAAAA,CAAC,QAAA,EAAA,EAAQ,QAAA,EAAA,cAAA,EAAe;AAAA,WAAA,EAC9B,CAAA;AAAA,0BAEFA,cAAAA,CAAC,MAAA,EAAA,EACE,qBAAW,WAAA,GAAc,OAAA,GAAU,YAAY,OAAA,EAClD,CAAA;AAAA,UACC,YAAY,SAAA,CAAU,UAAA,CAAW,GAAG,CAAA,oBACnCC,gBAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,YAAA,SAAA;AAAA,4BACFD,cAAAA,CAAC,QAAA,EAAA,EAAQ,QAAA,EAAA,aAAA,EAAc;AAAA,WAAA,EAC3B,CAAA;AAAA,0BAEFC,eAAAA,CAAC,MAAA,EAAA,EAAK,OAAO,EAAE,UAAA,EAAY,QAAO,EAC/B,QAAA,EAAA;AAAA,YAAA,IAAA;AAAA,YAAK,MAAA;AAAA,YAAE;AAAA,WAAA,EACV;AAAA,SAAA,EACF;AAAA;AAAA;AAAA,GAEJ;AAEJ;AAGO,SAAS,qBAAA,CAAsB,IAAA,EAAc,IAAA,EAAc,IAAA,GAAO,EAAA,EAAqB;AAC5F,EAAA,OAAO,YAAA,CAAa,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AACtC;ACzoBO,SAAS,IAAA,CAAK;AAAA,EACnB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAc;AACZ,EAAA,uBACEA,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,SAAA,EAAW,OAAA,KAAY,aAAa,CAAA,SAAA,EAAY,OAAO,IAAI,SAAS,CAAA;AAAA,MACjF,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBACxCA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAkB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QACvC,KAAA,IAAS,IAAA,oBACRA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAkB,KAAA,IAAS,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAE,GAAI,QAAA,EAAA,KAAA,EAAM;AAAA;AAAA;AAAA,GAEvF;AAEJ;AAGO,SAAS,SAAS,EAAE,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,MAAK,EAAmC;AAC9F,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,YAAY,SAAS,CAAA,EAAI,GAAG,IAAA,EAC5C,QAAA,EACH,CAAA;AAEJ;AAEA,IAAA,CAAK,IAAA,GAAO,QAAA;AC/BL,SAAS,SAAA,CAAU;AAAA,EACxB,OAAA;AAAA,EACA,MAAA,GAAS,IAAA;AAAA,EACT,OAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,uBACEC,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,eAAA,EAAiB,SAAS,CAAA,EAAI,GAAG,IAAA,EACjD,QAAA,EAAA;AAAA,IAAA,OAAA;AAAA,IACA,OAAA,IAAW,IAAA,oBACVD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,MAAA,IAAU,gCAAgC,CAAA,EACrF,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,IAED,QAAA;AAAA,IACA,QAAQ,IAAA,oBAAQA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAuB,QAAA,EAAA,IAAA,EAAK;AAAA,GAAA,EAC9D,CAAA;AAEJ;ACvBO,SAAS,SAAA,CAAU;AAAA,EACxB,MAAA,GAAS,MAAA;AAAA,EACT,QAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,MAAM,WAAA,GACJ,WAAW,MAAA,GACP,MAAA,GACA,WAAW,SAAA,GACT,wBAAA,GACA,kBAAkB,MAAM,CAAA,CAAA;AAEhC,EAAA,uBACEC,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,iBAAiB,WAAA,EAAa,SAAS,CAAA,EAAI,GAAG,IAAA,EAChE,QAAA,EAAA;AAAA,oBAAAD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAA,EAAqB,eAAW,IAAA,EAAC,CAAA;AAAA,IAChD,CAAC,OAAA,IAAW,QAAA,IAAY,wBAAQA,cAAAA,CAAC,UAAM,QAAA,EAAS;AAAA,GAAA,EACnD,CAAA;AAEJ;AChBO,SAAS,UAAA,CAAW;AAAA,EACzB,OAAA,GAAU,SAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,uBACEA,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,gBAAA;AAAA,QACA,OAAA,KAAY,SAAA,IAAa,CAAA,gBAAA,EAAmB,OAAO,CAAA,CAAA;AAAA,QACnD;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AC1BO,SAAS,MAAA,CAAO,EAAE,IAAA,GAAO,IAAA,EAAM,OAAO,SAAA,GAAY,EAAA,EAAI,GAAG,IAAA,EAAK,EAAgB;AACnF,EAAA,uBACEC,eAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAW,EAAA,CAAG,aAAa,IAAA,KAAS,IAAA,IAAQ,eAAA,EAAiB,SAAS,CAAA,EAC3E,QAAA,EAAA;AAAA,oBAAAD,eAAC,OAAA,EAAA,EAAM,IAAA,EAAK,YAAW,SAAA,EAAU,kBAAA,EAAoB,GAAG,IAAA,EAAM,CAAA;AAAA,oBAC9DA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EACd,0BAAAA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAmB,CAAA,EACrC,CAAA;AAAA,IACC,SAAS,IAAA,oBAAQA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAoB,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EAC9D,CAAA;AAEJ;ACUO,SAAS,IAAA,CAAK;AAAA,EACnB,KAAA;AAAA,EACA,OAAA,GAAU,WAAA;AAAA,EACV,aAAA,GAAgB,CAAA;AAAA,EAChB,MAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,SAAA,GAAY;AACd,CAAA,EAAc;AACZ,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIG,eAAS,aAAa,CAAA;AACtD,EAAA,MAAM,UAAU,MAAA,IAAU,QAAA;AAE1B,EAAA,MAAM,MAAA,GAAS,CAAC,CAAA,KAAc;AAC5B,IAAA,IAAI,KAAA,CAAM,CAAC,CAAA,EAAG,QAAA,EAAU;AACxB,IAAA,IAAI,MAAA,IAAU,IAAA,EAAM,WAAA,CAAY,CAAC,CAAA;AACjC,IAAA,WAAA,GAAc,CAAC,CAAA;AAAA,EACjB,CAAA;AAEA,EAAA,uBACEF,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,SAAA;AAAA,QACA,YAAY,OAAA,IAAW,gBAAA;AAAA,QACvB,YAAY,UAAA,IAAc,mBAAA;AAAA,QAC1B;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EAAgB,IAAA,EAAK,SAAA,EACjC,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBAChBC,eAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,KAAA;AAAA,YACL,iBAAe,CAAA,KAAM,OAAA;AAAA,YACrB,UAAU,IAAA,CAAK,QAAA;AAAA,YACf,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,CAAA,KAAM,WAAW,WAAW,CAAA;AAAA,YAC9D,OAAA,EAAS,MAAM,MAAA,CAAO,CAAC,CAAA;AAAA,YAEtB,QAAA,EAAA;AAAA,cAAA,IAAA,CAAK,KAAA;AAAA,cACL,IAAA,CAAK,KAAA,IAAS,IAAA,oBACbD,eAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2BAAA,EAA4B,KAAA,EAAO,EAAE,UAAA,EAAY,CAAA,EAAE,EAChE,eAAK,KAAA,EACR;AAAA;AAAA,WAAA;AAAA,UAZG;AAAA,SAeR,CAAA,EACH,CAAA;AAAA,QACC,CAAC,UAAA,oBACAA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACZ,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBAChBA,cAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,UAAA;AAAA,YACL,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAkB,CAAA,KAAM,WAAW,WAAW,CAAA;AAAA,YAE3D,QAAA,EAAA,IAAA,CAAK;AAAA,WAAA;AAAA,UAJD;AAAA,SAMR,CAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ;ACzDO,SAAS,QAAA,CAAS;AAAA,EACvB,KAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAQ,EAAC;AAAA,EACT,OAAA,GAAU,KAAA;AAAA,EACV,GAAA,GAAM,KAAA;AAAA,EACN,KAAA,GAAQ,KAAA;AAAA,EACR,WAAA,GAAc,YAAA;AAAA,EACd,UAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,uBACEC,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,aAAA;AAAA,QACA,OAAA,IAAW,sBAAA;AAAA,QACX,GAAA,IAAO,kBAAA;AAAA,QACP;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEF,QAAA,EAAA;AAAA,QAAA,CAAA,KAAA,IAAS,QAAQ,QAAA,qBACjBA,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,KAAA,IAAS,wBAAQD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAsB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UAC7D,QAAA,oBACCC,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uBAAA,EACb,QAAA,EAAA;AAAA,4BAAAD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wCAAA,EAAyC,OAAM,UAAA,EAAW,CAAA;AAAA,4BAC1EA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wCAAA,EAAyC,OAAM,UAAA,EAAW,CAAA;AAAA,4BAC1EA,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0CAAA,EAA2C,OAAM,OAAA,EAAQ;AAAA,WAAA,EAC3E;AAAA,SAAA,EAEJ,CAAA;AAAA,wBAEFC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gCAAA,EACZ,QAAA,EAAA;AAAA,UAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBAChBA,eAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cAEC,SAAA,EAAW,GAAG,mBAAA,EAAqB,IAAA,CAAK,QAAQ,CAAA,mBAAA,EAAsB,IAAA,CAAK,IAAI,CAAA,CAAE,CAAA;AAAA,cAEhF,QAAA,EAAA;AAAA,gBAAA,IAAA,CAAK,MAAA,IAAU,wBAAQD,cAAAA,CAAC,UAAK,SAAA,EAAU,qBAAA,EAAuB,eAAK,MAAA,EAAO,CAAA;AAAA,gBAC1E,IAAA,CAAK;AAAA;AAAA,aAAA;AAAA,YAJD;AAAA,WAMR,CAAA;AAAA,UACA;AAAA,SAAA,EACH,CAAA;AAAA,QACC,KAAA,oBACCC,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,WAAA,IAAe,wBAAQD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAuB,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,0BAC3EA,eAAC,OAAA,EAAA,EAAM,SAAA,EAAU,sBAAqB,WAAA,EAAY,iBAAA,EAAmB,GAAG,UAAA,EAAY;AAAA,SAAA,EACtF;AAAA;AAAA;AAAA,GAEJ;AAEJ;AClFO,SAAS,QAAA,CAAS,EAAE,KAAA,GAAQ,KAAA,EAAO,YAAY,EAAA,EAAI,GAAG,MAAK,EAAkB;AAClF,EAAA,uBACEA,cAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,KAAA,IAAS,sBAAsB,SAAS,CAAA;AAAA,MACpE,GAAG;AAAA;AAAA,GACN;AAEJ;ACFO,SAAS,MAAA,CAAO;AAAA,EACrB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA,GAAO,KAAA;AAAA,EACP,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAgB;AACd,EAAA,MAAM,aAAA,GAAgB,OAAO,MAAA,GAAS,KAAA;AACtC,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,WAAA;AAAA,QACA,aAAA,IAAiB,cAAc,aAAa,CAAA,CAAA;AAAA,QAC5C,QAAA,IAAY,qBAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,0BAAAA,cAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kBAAA,EACZ,QAAA,EAAA,KAAA,CAAM,IAAI,CAAC,IAAA,EAAM,CAAA,qBAChBA,eAAC,MAAA,EAAA,EAAa,SAAA,EAAU,mBACrB,QAAA,EAAA,IAAA,EAAA,EADQ,CAEX,CACD,CAAA,EACH;AAAA;AAAA,GACF;AAEJ;AC1BO,SAAS,KAAA,CAAM;AAAA,EACpB,OAAA,GAAU,MAAA;AAAA,EACV,IAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAe;AACb,EAAA,uBACEC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,CAAA,UAAA,EAAa,OAAO,CAAA,CAAA,EAAI,SAAS,CAAA,EAAI,GAAG,IAAA,EACpE,QAAA,EAAA;AAAA,IAAA,IAAA,IAAQ,wBAAQD,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAkB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,oBACxDC,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,KAAA,IAAS,wBAAQD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAmB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MACzD,YAAY,IAAA,oBAAQA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAkB,QAAA,EAAS;AAAA,KAAA,EACjE,CAAA;AAAA,IACC,SAAA,oBACCA,cAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,qBAAoB,OAAA,EAAS,SAAA,EAAW,YAAA,EAAW,SAAA,EAAU,QAAA,EAAA,QAAA,EAE/E;AAAA,GAAA,EAEJ,CAAA;AAEJ;AClBA,IAAM,cAAA,GAAiBH,oBAA0C,IAAI,CAAA;AAE9D,SAAS,QAAA,GAAW;AACzB,EAAA,MAAM,GAAA,GAAMC,iBAAW,cAAc,CAAA;AACrC,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAC1E,EAAA,OAAO,GAAA;AACT;AAiBO,SAAS,eAAA,CAAgB;AAAA,EAC9B,QAAA;AAAA,EACA,QAAA,GAAW,cAAA;AAAA,EACX,QAAA,GAAW;AACb,CAAA,EAAyB;AACvB,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIK,cAAAA,CAAwB,EAAE,CAAA;AAEpD,EAAA,MAAM,OAAA,GAAUK,iBAAAA,CAAY,CAAC,EAAA,KAAe;AAC1C,IAAA,QAAA,CAAS,CAAC,SAAS,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,EAAE,CAAC,CAAA;AAAA,EACpD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,KAAA,GAAQA,iBAAAA;AAAA,IACZ,CAAC,KAAA,KAAsB;AACrB,MAAA,MAAM,KAAK,KAAA,CAAM,EAAA,IAAM,CAAA,EAAA,EAAK,IAAA,CAAK,KAAK,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,GAAS,QAAA,CAAS,EAAE,EAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA;AAChF,MAAA,MAAM,GAAA,GAAmB,EAAE,GAAG,KAAA,EAAO,EAAA,EAAG;AACxC,MAAA,QAAA,CAAS,CAAC,IAAA,KAAS,CAAC,GAAG,IAAA,EAAM,GAAG,CAAC,CAAA;AACjC,MAAA,MAAM,EAAA,GAAK,MAAM,QAAA,IAAY,QAAA;AAC7B,MAAA,IAAI,EAAA,GAAK,GAAG,MAAA,CAAO,UAAA,CAAW,MAAM,OAAA,CAAQ,EAAE,GAAG,EAAE,CAAA;AACnD,MAAA,OAAO,EAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAC,UAAU,OAAO;AAAA,GACpB;AAEA,EAAA,MAAM,KAAA,GAAQT,aAAAA,CAAQ,OAAO,EAAE,KAAA,EAAO,SAAQ,CAAA,EAAI,CAAC,KAAA,EAAO,OAAO,CAAC,CAAA;AAElE,EAAA,uBACEE,eAAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,KAAA,EACtB,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,oBACDD,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,YAAA,EAAc,CAAA,YAAA,EAAe,QAAQ,CAAA,CAAE,GAAG,WAAA,EAAU,QAAA,EACpE,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,EAAE,EAAA,EAAI,QAAA,EAAU,EAAA,EAAI,GAAG,KAAA,EAAM,qBACvCA,eAAC,KAAA,EAAA,EAAgB,GAAG,KAAA,EAAO,SAAA,EAAW,MAAM,OAAA,CAAQ,EAAE,CAAA,EAAA,EAA1C,EAA6C,CAC1D,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AAGO,SAAS,QAAQ,KAAA,EAA+C;AACrE,EAAA,uBAAOA,cAAAA,CAAC,eAAA,EAAA,EAAiB,GAAG,KAAA,EAAO,CAAA;AACrC;ACrEO,SAAS,MAAA,CAAO;AAAA,EACrB,OAAA;AAAA,EACA,cAAA,GAAiB,KAAA;AAAA,EACjB,eAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,OAAA,GAAU,SAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgB;AACd,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIG,eAAS,cAAc,CAAA;AACvD,EAAA,MAAM,OAAO,OAAA,IAAW,QAAA;AAExB,EAAA,MAAM,EAAE,OAAA,EAAS,GAAG,UAAA,EAAW,GAAI,IAAA;AAEnC,EAAA,uBACEH,cAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,WAAA;AAAA,QACA,SAAS,IAAA,IAAQ,eAAA;AAAA,QACjB,YAAY,SAAA,IAAa,oBAAA;AAAA,QACzB,IAAA,IAAQ,OAAA;AAAA,QACR;AAAA,OACF;AAAA,MACA,YAAA,EAAY,OAAO,IAAA,GAAO,KAAA;AAAA,MAC1B,cAAA,EAAc,IAAA;AAAA,MACd,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,OAAA,GAAU,CAAC,CAAA;AACX,QAAA,MAAM,OAAO,CAAC,IAAA;AACd,QAAA,IAAI,OAAA,IAAW,IAAA,EAAM,WAAA,CAAY,IAAI,CAAA;AACrC,QAAA,eAAA,GAAkB,IAAI,CAAA;AAAA,MACxB,CAAA;AAAA,MACC,GAAG,UAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AChCO,SAAS,WAAA,CAAY;AAAA,EAC1B,KAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,aAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIG,cAAAA;AAAA,IAC9B,YAAA,KAAiB,QAAA,GAAW,EAAC,GAAI,EAAA;AAAA,GACnC;AACA,EAAA,MAAM,UAAU,KAAA,IAAS,QAAA;AAEzB,EAAA,MAAM,IAAA,GAAO,CAAC,CAAA,KACZ,QAAA,GAAY,QAAqB,QAAA,CAAS,CAAC,IAAI,OAAA,KAAY,CAAA;AAE7D,EAAA,MAAM,MAAA,GAAS,CAAC,CAAA,KAAc;AAC5B,IAAA,IAAI,IAAA;AACJ,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,GAAA,GAAM,CAAC,GAAI,OAAoB,CAAA;AACrC,MAAA,MAAM,CAAA,GAAI,GAAA,CAAI,OAAA,CAAQ,CAAC,CAAA;AACvB,MAAA,IAAI,CAAA,IAAK,CAAA,EAAG,GAAA,CAAI,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,WACtB,GAAA,CAAI,KAAK,CAAC,CAAA;AACf,MAAA,IAAA,GAAO,GAAA;AAAA,IACT,CAAA,MAAO;AACL,MAAA,IAAA,GAAO,OAAA,KAAY,IAAI,EAAA,GAAK,CAAA;AAAA,IAC9B;AACA,IAAA,IAAI,KAAA,IAAS,IAAA,EAAM,WAAA,CAAY,IAAI,CAAA;AACnC,IAAA,aAAA,GAAgB,IAAI,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,uBACEH,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,mBAAmB,SAAS,CAAA,EAAG,IAAA,EAAK,OAAA,EAAS,GAAG,IAAA,EAChE,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,yBACVA,cAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MAEC,IAAA,EAAK,QAAA;AAAA,MACL,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,SAAA,EAAW,EAAA,CAAG,WAAA,EAAa,IAAA,KAAS,IAAA,IAAQ,iBAAiB,IAAA,CAAK,IAAA,CAAK,KAAK,CAAA,IAAK,OAAO,CAAA;AAAA,MACxF,YAAA,EAAY,IAAA,CAAK,IAAA,CAAK,KAAK,IAAI,IAAA,GAAO,KAAA;AAAA,MACtC,cAAA,EAAc,IAAA,CAAK,IAAA,CAAK,KAAK,CAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,MAE/B,QAAA,EAAA,IAAA,CAAK;AAAA,KAAA;AAAA,IARD,IAAA,CAAK;AAAA,GAUb,CAAA,EACH,CAAA;AAEJ;AC3DO,SAAS,OAAA,CAAQ;AAAA,EACtB,GAAA;AAAA,EACA,KAAA,GAAQ,KAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,uBACEA,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,YAAA,EAAc,KAAA,IAAS,qBAAqB,SAAS,CAAA;AAAA,MACnE,UAAA,EAAU,GAAA;AAAA,MACT,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACZO,SAAS,SAAA,CAAU;AAAA,EACxB,OAAA,GAAU,KAAA;AAAA,EACV,MAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA,GAAY,aAAA;AAAA,EACZ,SAAA,GAAY,aAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,uBACEC,gBAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,cAAA,EAAgB,SAAS,CAAA,EAAI,GAAG,IAAA,EACjD,QAAA,EAAA;AAAA,oBAAAA,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,sBAAAD,cAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAQ,SAAA;AAAA,UACR,UAAU,QAAA,IAAY,OAAA;AAAA,UACtB,OAAA,EAAS,MAAA;AAAA,UAER,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,sBACAA,cAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAU,YAAY,CAAC,OAAA;AAAA,UACvB,OAAA,EAAS,MAAA;AAAA,UAER,QAAA,EAAA;AAAA;AAAA;AACH,KAAA,EACF,CAAA;AAAA,IACC;AAAA,GAAA,EACH,CAAA;AAEJ;AC1CO,SAAS,GAAG,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAAuC;AAClF,EAAA,uBAAOA,eAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,OAAA,EAAS,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAC1D;AACO,SAAS,GAAG,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAAuC;AAClF,EAAA,uBAAOA,eAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,OAAA,EAAS,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAC1D;AACO,SAAS,GAAG,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAAuC;AAClF,EAAA,uBAAOA,eAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,OAAA,EAAS,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAC1D;AACO,SAAS,GAAG,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAAuC;AAClF,EAAA,uBAAOA,eAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,OAAA,EAAS,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAC1D;AACO,SAAS,EAAE,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAAyC;AACnF,EAAA,uBAAOA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAW,GAAG,MAAA,EAAQ,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AACxD;AACO,SAAS,KAAK,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAAyC;AACtF,EAAA,uBAAOA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAW,GAAG,SAAA,EAAW,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAC3D;AACO,SAAS,MAAM,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAAyC;AACvF,EAAA,uBAAOA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAW,GAAG,UAAA,EAAY,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAC5D;AACO,SAAS,MAAM,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAAgC;AAC9E,EAAA,uBAAOA,eAAC,OAAA,EAAA,EAAM,SAAA,EAAW,GAAG,UAAA,EAAY,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAChE;AACO,SAAS,WAAW,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAAgC;AACnF,EAAA,uBAAOA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,SAAA,EAAW,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAC9D;AACO,SAAS,IAAI,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAAmC;AAC/E,EAAA,uBAAOA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,QAAA,EAAU,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAC5D;AACO,SAAS,WAAW,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAA+C;AAClG,EAAA,uBAAOA,eAAC,YAAA,EAAA,EAAW,SAAA,EAAW,GAAG,eAAA,EAAiB,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAC1E;AACO,SAAS,KAAK,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAAuC;AACpF,EAAA,uBAAOA,eAAC,IAAA,EAAA,EAAG,SAAA,EAAW,GAAG,SAAA,EAAW,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAC5D;AACO,SAAS,WAAW,EAAE,SAAA,GAAY,EAAA,EAAI,GAAG,MAAK,EAA4C;AAC/F,EAAA,uBAAOA,eAAC,GAAA,EAAA,EAAE,SAAA,EAAW,GAAG,gBAAA,EAAkB,SAAS,CAAA,EAAI,GAAG,IAAA,EAAM,CAAA;AAClE;AAOO,SAAS,WAAW,EAAE,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,MAAK,EAAoB;AACjF,EAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,iBAAiB,SAAS,CAAA,EAAI,GAAG,IAAA,EACjD,QAAA,EACH,CAAA;AAEJ","file":"index.cjs","sourcesContent":["/** Lightweight className join — filters falsy parts (no runtime dep). */\nexport function cn(...parts: Array<string | false | null | undefined>): string {\n return parts.filter(Boolean).join(' ');\n}\n","import {\n createContext,\n useContext,\n useMemo,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cn } from '../lib/cn';\nimport type { CdTheme } from '../lib/types';\n\nexport interface ThemeProviderProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Active accent theme. Sets `theme-{name}` so semantic tokens\n * like `--cd-accent` resolve correctly.\n * @default 'orange'\n */\n theme?: CdTheme;\n /**\n * Opt into the accessibility type/contrast layer (`.cd-a11y`).\n * @default false\n */\n a11y?: boolean;\n children?: ReactNode;\n}\n\nconst ThemeContext = createContext<CdTheme>('orange');\n\n/** Read the nearest {@link ThemeProvider} theme (falls back to `orange`). */\nexport function useTheme(): CdTheme {\n return useContext(ThemeContext);\n}\n\n/**\n * Root theme scope for cyberdesign. Apply once near the app root so\n * accent tokens (`--cd-accent`, glows, primary buttons) resolve.\n *\n * ```tsx\n * <ThemeProvider theme=\"cyan\">\n * <App />\n * </ThemeProvider>\n * ```\n */\nexport function ThemeProvider({\n theme = 'orange',\n a11y = false,\n className,\n children,\n ...rest\n}: ThemeProviderProps) {\n const value = useMemo(() => theme, [theme]);\n\n return (\n <ThemeContext.Provider value={value}>\n <div\n className={cn(`theme-${theme}`, a11y && 'cd-a11y', className)}\n data-cd-theme={theme}\n {...rest}\n >\n {children}\n </div>\n </ThemeContext.Provider>\n );\n}\n","import type { HTMLAttributes, DetailsHTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface AccordionItemData {\n /** Trigger heading text. */\n title: ReactNode;\n /** Body content revealed when open. */\n content: ReactNode;\n /** Optional icon glyph before the title. */\n icon?: ReactNode;\n /** Render this item open initially. */\n defaultOpen?: boolean;\n}\n\nexport interface AccordionItemProps\n extends Omit<DetailsHTMLAttributes<HTMLDetailsElement>, 'title'> {\n /** Trigger heading text. */\n title: ReactNode;\n /** Optional icon glyph before the title. */\n icon?: ReactNode;\n /** Body content. */\n children?: ReactNode;\n}\n\n/** Single `<details>` accordion row — for manual composition under `<Accordion>`. */\nfunction AccordionItem({ title, icon, children, className = '', ...rest }: AccordionItemProps) {\n return (\n <details className={cn('cd-accordion__item', className)} {...rest}>\n <summary className=\"cd-accordion__trigger\">\n {icon != null && <span className=\"cd-accordion__icon\">{icon}</span>}\n {title}\n </summary>\n <div className=\"cd-accordion__body\">\n <div className=\"cd-accordion__content\">\n <div className=\"cd-accordion__content-inner\">{children}</div>\n </div>\n </div>\n </details>\n );\n}\n\nexport interface AccordionProps extends HTMLAttributes<HTMLDivElement> {\n /** Data-driven rows. Omit to compose `<Accordion.Item>` children manually. */\n items?: AccordionItemData[];\n /** `sep` adds gaps between items; `flush` drops side borders. */\n variant?: 'default' | 'sep' | 'flush';\n children?: ReactNode;\n}\n\n/** Disclosure accordion — native `<details>` rows, data-driven or composed via `Accordion.Item`. */\nfunction AccordionRoot({\n items,\n variant = 'default',\n className = '',\n children,\n ...rest\n}: AccordionProps) {\n return (\n <div\n className={cn(\n 'cd-accordion',\n variant !== 'default' && `cd-accordion--${variant}`,\n className,\n )}\n {...rest}\n >\n {items\n ? items.map((item, i) => (\n <AccordionItem\n key={i}\n title={item.title}\n icon={item.icon}\n open={item.defaultOpen}\n >\n {item.content}\n </AccordionItem>\n ))\n : children}\n </div>\n );\n}\n\nexport const Accordion = Object.assign(AccordionRoot, { Item: AccordionItem });\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Semantic color. `accent` follows the active theme accent. */\n variant?: 'info' | 'success' | 'warning' | 'error' | 'accent';\n /** Compact padding/type. */\n size?: 'sm';\n /** Drop the left accent bar for a flatter inline banner. */\n inline?: boolean;\n /** Bold uppercase heading line. */\n title?: ReactNode;\n /** Leading glyph (e.g. ℹ ✓ ⚠ ✕ ⬡). */\n icon?: ReactNode;\n /** When provided, renders a dismiss ✕ that calls this on click. */\n onDismiss?: () => void;\n /** Body text. */\n children?: ReactNode;\n}\n\n/** Banner / alert with semantic color, optional icon, title and dismiss. */\nexport function Alert({\n variant = 'info',\n size,\n inline = false,\n title,\n icon,\n onDismiss,\n className = '',\n children,\n ...rest\n}: AlertProps) {\n return (\n <div\n className={cn(\n 'cd-alert',\n `cd-alert--${variant}`,\n size === 'sm' && 'cd-alert--sm',\n inline && 'cd-alert--inline',\n className,\n )}\n {...rest}\n >\n {icon != null && <span className=\"cd-alert__icon\">{icon}</span>}\n <div className=\"cd-alert__content\">\n {title != null && <div className=\"cd-alert__title\">{title}</div>}\n {children != null && <div className=\"cd-alert__body\">{children}</div>}\n </div>\n {onDismiss && (\n <button className=\"cd-alert__dismiss\" onClick={onDismiss} aria-label=\"Dismiss\">\n ✕\n </button>\n )}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ModalProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Controls visibility — adds `is-open` to animate the overlay/panel in. */\n open: boolean;\n /** Fired by the backdrop click, the ✕ close button, and Escape handlers you wire up. */\n onClose?: () => void;\n /** Uppercase accent heading rendered in the header. Omit to hide the header. */\n title?: ReactNode;\n /** Footer content (typically action buttons). Omit to hide the footer. */\n footer?: ReactNode;\n /** Panel width. `default` is 480px; `sm` 340px, `lg` 680px, `xl` 900px. */\n size?: 'default' | 'sm' | 'lg' | 'xl';\n /** Hide the header ✕ close button. */\n hideClose?: boolean;\n /** Dialog body content. */\n children?: ReactNode;\n}\n\n/** Centered modal dialog over a dimmed backdrop — controlled via `open` / `onClose`. */\nexport function Modal({\n open,\n onClose,\n title,\n footer,\n size = 'default',\n hideClose = false,\n className = '',\n children,\n ...rest\n}: ModalProps) {\n return (\n <div\n className={cn('cd-modal-overlay', open && 'is-open')}\n onClick={(e) => {\n if (e.target === e.currentTarget) onClose?.();\n }}\n >\n <div\n className={cn('cd-modal', size !== 'default' && `cd-modal--${size}`, className)}\n role=\"dialog\"\n aria-modal=\"true\"\n {...rest}\n >\n {(title != null || !hideClose) && (\n <div className=\"cd-modal__header\">\n {title != null && <span className=\"cd-modal__title\">{title}</span>}\n {!hideClose && (\n <button className=\"cd-modal__close\" onClick={onClose} aria-label=\"Close\">\n ✕\n </button>\n )}\n </div>\n )}\n <div className=\"cd-modal__body\">{children}</div>\n {footer != null && <div className=\"cd-modal__footer\">{footer}</div>}\n </div>\n </div>\n );\n}\n","import type { ButtonHTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Visual emphasis. `primary` uses the theme accent; `danger` is destructive. */\n variant?: 'default' | 'primary' | 'danger';\n /** `sm` is the compact height; `md` is the default. */\n size?: 'sm' | 'md';\n /** Square icon-only button (no horizontal padding). */\n icon?: boolean;\n children?: ReactNode;\n}\n\n/** Cyber terminal button — uppercase, pixel-corner accent, neon hover glow. */\nexport function Button({\n variant = 'default',\n size = 'md',\n icon = false,\n className = '',\n children,\n ...rest\n}: ButtonProps) {\n return (\n <button\n className={cn(\n 'cd-btn',\n variant !== 'default' && `cd-btn--${variant}`,\n size === 'sm' && 'cd-btn--sm',\n icon && 'cd-btn--icon',\n className,\n )}\n {...rest}\n >\n {children}\n </button>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Modal } from './Modal';\nimport { Button } from './Button';\n\nexport interface AlertDialogProps {\n open: boolean;\n onClose?: () => void;\n /** Dialog title. */\n title?: ReactNode;\n /** Body description. */\n children?: ReactNode;\n /** Confirm button label. @default 'Confirm' */\n confirmLabel?: ReactNode;\n /** Cancel button label. @default 'Cancel' */\n cancelLabel?: ReactNode;\n /** Called when confirm is pressed. */\n onConfirm?: () => void;\n /** Destructive confirm styling. */\n destructive?: boolean;\n}\n\n/** Confirmation dialog built on Modal — cancel / confirm actions. */\nexport function AlertDialog({\n open,\n onClose,\n title = 'Confirm',\n children,\n confirmLabel = 'Confirm',\n cancelLabel = 'Cancel',\n onConfirm,\n destructive = false,\n}: AlertDialogProps) {\n return (\n <Modal\n open={open}\n onClose={onClose}\n title={title}\n size=\"sm\"\n footer={\n <>\n <Button type=\"button\" onClick={onClose}>\n {cancelLabel}\n </Button>\n <Button\n type=\"button\"\n variant={destructive ? 'danger' : 'primary'}\n onClick={() => {\n onConfirm?.();\n onClose?.();\n }}\n >\n {confirmLabel}\n </Button>\n </>\n }\n >\n {children}\n </Modal>\n );\n}\n","import type { CSSProperties, HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface AspectRatioProps extends HTMLAttributes<HTMLDivElement> {\n /** Aspect ratio as width/height (e.g. 16/9). @default 16/9 */\n ratio?: number;\n children?: ReactNode;\n}\n\n/** Locks children to a fixed aspect ratio box. */\nexport function AspectRatio({\n ratio = 16 / 9,\n className = '',\n style,\n children,\n ...rest\n}: AspectRatioProps) {\n const merged: CSSProperties = {\n ...style,\n paddingBottom: `${(1 / ratio) * 100}%`,\n };\n return (\n <div className={cn('cd-aspect-ratio', className)} style={merged} {...rest}>\n {children}\n </div>\n );\n}\n","import type { ButtonHTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface AugButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** `primary` fills with the accent-subtle background and a drop-shadow glow. */\n variant?: 'default' | 'primary';\n /** `sm` and `lg` adjust height, padding and clip size; `md` is the default. */\n size?: 'sm' | 'md' | 'lg';\n /** Reverse the diagonal clip to cut the TR+BL corners instead of TL+BR. */\n reverse?: boolean;\n children?: ReactNode;\n}\n\n/** Augmented clip-path button — neon-bordered diagonal-corner button matching cd-aug-btn. */\nexport function AugButton({\n variant = 'default',\n size = 'md',\n reverse = false,\n className = '',\n children,\n ...rest\n}: AugButtonProps) {\n return (\n <button\n className={cn(\n 'cd-aug-btn',\n variant === 'primary' && 'cd-aug-btn--primary',\n size === 'sm' && 'cd-aug-btn--sm',\n size === 'lg' && 'cd-aug-btn--lg',\n reverse && 'cd-aug-btn--rev',\n className,\n )}\n {...rest}\n >\n {children}\n </button>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface AugPanelProps extends HTMLAttributes<HTMLDivElement> {\n /** Clip/padding size: `sm` (6px clip), `md` (default, 20px clip) or `lg` (32px clip). */\n size?: 'sm' | 'md' | 'lg';\n /** Clip all four corners instead of the default diagonal TL+BR pair. */\n corners4?: boolean;\n children?: ReactNode;\n}\n\n/** Augmented clip-path panel — neon drop-shadow border with clipped corners (cd-aug-panel). */\nexport function AugPanel({\n size = 'md',\n corners4 = false,\n className = '',\n children,\n ...rest\n}: AugPanelProps) {\n return (\n <div\n className={cn(\n 'cd-aug-panel',\n size === 'sm' && 'cd-aug-panel--sm',\n size === 'lg' && 'cd-aug-panel--lg',\n corners4 && 'cd-aug-panel--4',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface AvatarProps extends HTMLAttributes<HTMLDivElement> {\n /** Image source. When set, renders `<img>`; otherwise shows `fallback` initials. */\n src?: string;\n /** Alt text for the image. */\n alt?: string;\n /** Initials shown when no `src` (e.g. \"NH\"). */\n fallback?: ReactNode;\n /** Diameter preset. `md` is the default (no modifier). */\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n /** Neon ring around the avatar. */\n glow?: boolean;\n /** Presence dot rendered via `data-status`. */\n status?: 'online' | 'away' | 'busy' | 'offline';\n}\n\n/** Circular avatar — image or fallback initials, sized presets, neon glow ring and presence dot. */\nexport function Avatar({\n src,\n alt = '',\n fallback,\n size = 'md',\n glow = false,\n status,\n className = '',\n ...rest\n}: AvatarProps) {\n return (\n <div\n className={cn(\n 'cd-avatar',\n size !== 'md' && `cd-avatar--${size}`,\n glow && 'cd-avatar--glow',\n className,\n )}\n data-status={status}\n {...rest}\n >\n {src != null ? (\n <img className=\"cd-avatar__image\" src={src} alt={alt} />\n ) : (\n <span className=\"cd-avatar__fallback\">{fallback}</span>\n )}\n </div>\n );\n}\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Overflow count rendered as a trailing `+N` badge. */\n more?: number;\n /** Avatars to stack, in order. */\n children?: ReactNode;\n}\n\n/** Overlapping stack of avatars with an optional `+N` overflow badge. */\nexport function AvatarGroup({ more, className = '', children, ...rest }: AvatarGroupProps) {\n return (\n <div className={cn('cd-avatar-group', className)} {...rest}>\n {children}\n {more != null && more > 0 && <span className=\"cd-avatar-group__more\">+{more}</span>}\n </div>\n );\n}\n\nAvatar.Group = AvatarGroup;\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\nimport type { CdColor } from '../lib/types';\n\nexport interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'> {\n /** Color variant. Defaults to `orange`. */\n color?: CdColor;\n children?: ReactNode;\n}\n\n/** Inline status badge — uppercase, pixel-corner, with a neon color variant. */\nexport function Badge({\n color = 'orange',\n className = '',\n children,\n ...rest\n}: BadgeProps) {\n return (\n <span className={cn('cd-badge', `cd-badge--${color}`, className)} {...rest}>\n {children}\n </span>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface BottomNavItem {\n id: string;\n label: ReactNode;\n icon?: ReactNode;\n badge?: ReactNode;\n disabled?: boolean;\n}\n\nexport interface BottomNavProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'> {\n items: BottomNavItem[];\n /** Active item id. */\n value?: string;\n onValueChange?: (id: string) => void;\n}\n\n/**\n * Mobile bottom tab bar — dashboard-app MAP / FEED / STATS / TIME pattern.\n */\nexport function BottomNav({\n items,\n value,\n onValueChange,\n className = '',\n ...rest\n}: BottomNavProps) {\n return (\n <nav className={cn('cd-bottom-nav', className)} {...rest}>\n {items.map((item) => {\n const active = value === item.id;\n return (\n <button\n key={item.id}\n type=\"button\"\n disabled={item.disabled}\n className={cn('cd-bottom-nav__item', active && 'is-active')}\n data-active={active || undefined}\n onClick={() => onValueChange?.(item.id)}\n >\n {item.icon != null && <span className=\"cd-bottom-nav__icon\">{item.icon}</span>}\n <span className=\"cd-bottom-nav__label\">{item.label}</span>\n {item.badge != null && (\n <span className=\"cd-bottom-nav__badge\">{item.badge}</span>\n )}\n </button>\n );\n })}\n </nav>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface BreadcrumbItem {\n /** Crumb text. */\n label: ReactNode;\n /** Link target. Omitted (or on the active crumb) renders plain text. */\n href?: string;\n /** Marks this crumb as the current page (plain, non-interactive). */\n active?: boolean;\n}\n\nexport interface BreadcrumbProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {\n /** Crumbs in order. The last item is treated as active if none is flagged. */\n items: BreadcrumbItem[];\n /** Separator style: `/` (default), `›` arrow, or `·` dot. */\n variant?: 'default' | 'arrow' | 'dot';\n /** Accessible label for the `<nav>`. */\n 'aria-label'?: string;\n}\n\n/** Breadcrumb trail — data-driven crumbs with slash / arrow / dot separators; renders `<nav><ol>`. */\nexport function Breadcrumb({\n items,\n variant = 'default',\n className = '',\n 'aria-label': ariaLabel = 'breadcrumb',\n ...rest\n}: BreadcrumbProps) {\n const lastIndex = items.length - 1;\n return (\n <nav aria-label={ariaLabel} {...rest}>\n <ol\n className={cn(\n 'cd-breadcrumb',\n variant === 'arrow' && 'cd-breadcrumb--arrow',\n variant === 'dot' && 'cd-breadcrumb--dot',\n className,\n )}\n >\n {items.map((item, i) => {\n const isActive = item.active ?? i === lastIndex;\n return (\n <li\n key={i}\n className={cn('cd-breadcrumb__item', isActive && 'cd-breadcrumb__item--active')}\n >\n {isActive || item.href == null ? (\n <span>{item.label}</span>\n ) : (\n <a className=\"cd-breadcrumb__link\" href={item.href}>\n {item.label}\n </a>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Stack buttons vertically. */\n vertical?: boolean;\n children?: ReactNode;\n}\n\n/** Groups adjacent `Button` children with shared borders. */\nexport function ButtonGroup({\n vertical = false,\n className = '',\n children,\n ...rest\n}: ButtonGroupProps) {\n return (\n <div\n className={cn('cd-btn-group', vertical && 'cd-btn-group--vertical', className)}\n role=\"group\"\n {...rest}\n >\n {children}\n </div>\n );\n}\n","import { useMemo, useState } from 'react';\nimport type { HTMLAttributes } from 'react';\nimport { cn } from '../lib/cn';\n\nconst WEEKDAYS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\nfunction startOfMonth(d: Date) {\n return new Date(d.getFullYear(), d.getMonth(), 1);\n}\n\nfunction daysInMonth(d: Date) {\n return new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate();\n}\n\nfunction sameDay(a: Date, b: Date) {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nfunction formatMonth(d: Date) {\n return d.toLocaleString(undefined, { month: 'long', year: 'numeric' });\n}\n\nexport interface CalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** Controlled selected date. */\n selected?: Date;\n /** Uncontrolled initial selection. */\n defaultSelected?: Date;\n /** Month currently displayed (controlled). */\n month?: Date;\n defaultMonth?: Date;\n onSelect?: (date: Date) => void;\n onMonthChange?: (month: Date) => void;\n}\n\n/** Month grid calendar with neon selection. */\nexport function Calendar({\n selected,\n defaultSelected,\n month,\n defaultMonth,\n onSelect,\n onMonthChange,\n className = '',\n ...rest\n}: CalendarProps) {\n const [internalMonth, setInternalMonth] = useState(() =>\n startOfMonth(defaultMonth ?? defaultSelected ?? new Date()),\n );\n const [internalSelected, setInternalSelected] = useState<Date | undefined>(defaultSelected);\n\n const view = startOfMonth(month ?? internalMonth);\n const value = selected ?? internalSelected;\n const today = useMemo(() => new Date(), []);\n\n const setView = (d: Date) => {\n const next = startOfMonth(d);\n if (month == null) setInternalMonth(next);\n onMonthChange?.(next);\n };\n\n const cells = useMemo(() => {\n const firstDow = view.getDay();\n const total = daysInMonth(view);\n const prevTotal = daysInMonth(new Date(view.getFullYear(), view.getMonth() - 1, 1));\n const out: Array<{ date: Date; outside: boolean }> = [];\n for (let i = firstDow - 1; i >= 0; i--) {\n out.push({\n date: new Date(view.getFullYear(), view.getMonth() - 1, prevTotal - i),\n outside: true,\n });\n }\n for (let d = 1; d <= total; d++) {\n out.push({ date: new Date(view.getFullYear(), view.getMonth(), d), outside: false });\n }\n while (out.length % 7 !== 0) {\n const last = out[out.length - 1].date;\n out.push({\n date: new Date(last.getFullYear(), last.getMonth(), last.getDate() + 1),\n outside: true,\n });\n }\n return out;\n }, [view]);\n\n return (\n <div className={cn('cd-calendar', className)} {...rest}>\n <div className=\"cd-calendar__header\">\n <span className=\"cd-calendar__title\">{formatMonth(view)}</span>\n <div className=\"cd-calendar__nav\">\n <button\n type=\"button\"\n className=\"cd-calendar__nav-btn\"\n aria-label=\"Previous month\"\n onClick={() => setView(new Date(view.getFullYear(), view.getMonth() - 1, 1))}\n >\n ‹\n </button>\n <button\n type=\"button\"\n className=\"cd-calendar__nav-btn\"\n aria-label=\"Next month\"\n onClick={() => setView(new Date(view.getFullYear(), view.getMonth() + 1, 1))}\n >\n ›\n </button>\n </div>\n </div>\n <div className=\"cd-calendar__grid\">\n {WEEKDAYS.map((w) => (\n <div key={w} className=\"cd-calendar__weekday\">\n {w}\n </div>\n ))}\n {cells.map(({ date, outside }) => {\n const isSelected = value ? sameDay(date, value) : false;\n const isToday = sameDay(date, today);\n return (\n <button\n key={date.toISOString()}\n type=\"button\"\n className={cn(\n 'cd-calendar__day',\n outside && 'is-outside',\n isToday && 'is-today',\n isSelected && 'is-selected',\n )}\n onClick={() => {\n if (selected == null) setInternalSelected(date);\n onSelect?.(date);\n }}\n >\n {date.getDate()}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n /** Neon border/glow treatment. */\n glow?: boolean;\n children?: ReactNode;\n}\n\n/** Structured surface card — compose with Card.Header/Title/Description/Content/Footer. */\nexport function Card({ glow = false, className = '', children, ...rest }: CardProps) {\n return (\n <div className={cn('cd-card', glow && 'cd-card--glow', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nexport interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {\n /** Row layout: title left, actions right. */\n row?: boolean;\n children?: ReactNode;\n}\n\nexport function CardHeader({ row = false, className = '', children, ...rest }: CardHeaderProps) {\n return (\n <div className={cn('cd-card__header', row && 'cd-card__header--row', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nexport function CardTitle({ className = '', children, ...rest }: HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3 className={cn('cd-card__title', className)} {...rest}>\n {children}\n </h3>\n );\n}\n\nexport function CardDescription({ className = '', children, ...rest }: HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p className={cn('cd-card__description', className)} {...rest}>\n {children}\n </p>\n );\n}\n\nexport function CardContent({ className = '', children, ...rest }: HTMLAttributes<HTMLDivElement>) {\n return (\n <div className={cn('cd-card__content', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nexport interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {\n /** Right-align footer actions. */\n end?: boolean;\n children?: ReactNode;\n}\n\nexport function CardFooter({ end = false, className = '', children, ...rest }: CardFooterProps) {\n return (\n <div className={cn('cd-card__footer', end && 'cd-card__footer--end', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nObject.assign(Card, {\n Header: CardHeader,\n Title: CardTitle,\n Description: CardDescription,\n Content: CardContent,\n Footer: CardFooter,\n});\n","import { useState, Children, isValidElement } from 'react';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\nimport { Button } from './Button';\n\nexport interface CarouselProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n /** Uncontrolled initial slide index. */\n defaultIndex?: number;\n showDots?: boolean;\n showControls?: boolean;\n}\n\n/** Simple horizontal carousel with prev/next and dots. */\nexport function Carousel({\n children,\n defaultIndex = 0,\n showDots = true,\n showControls = true,\n className = '',\n ...rest\n}: CarouselProps) {\n const slides = Children.toArray(children).filter(isValidElement);\n const [index, setIndex] = useState(defaultIndex);\n const count = slides.length;\n const go = (i: number) => setIndex(((i % count) + count) % count);\n\n return (\n <div className={cn('cd-carousel', className)} {...rest}>\n <div className=\"cd-carousel__viewport\">\n <div\n className=\"cd-carousel__track\"\n style={{ transform: `translateX(-${index * 100}%)` }}\n >\n {slides.map((slide, i) => (\n <div key={i} className=\"cd-carousel__slide\">\n <div className=\"cd-carousel__slide-inner\">{slide}</div>\n </div>\n ))}\n </div>\n </div>\n {(showControls || showDots) && (\n <div className=\"cd-carousel__controls\">\n {showControls && (\n <Button type=\"button\" size=\"sm\" onClick={() => go(index - 1)} aria-label=\"Previous\">\n ‹\n </Button>\n )}\n {showDots && (\n <div className=\"cd-carousel__dots\">\n {slides.map((_, i) => (\n <button\n key={i}\n type=\"button\"\n className={cn('cd-carousel__dot', i === index && 'is-active')}\n aria-label={`Go to slide ${i + 1}`}\n onClick={() => setIndex(i)}\n />\n ))}\n </div>\n )}\n {showControls && (\n <Button type=\"button\" size=\"sm\" onClick={() => go(index + 1)} aria-label=\"Next\">\n ›\n </Button>\n )}\n </div>\n )}\n </div>\n );\n}\n","import type { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ChipProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Selected / pressed visual state. */\n active?: boolean;\n size?: 'sm' | 'md';\n children?: ReactNode;\n}\n\n/**\n * Compact filter/toggle chip — dashboard-app `NEAR` / `TOP` / category filters\n * and AI-shell quick-prompt style.\n */\nexport function Chip({\n active = false,\n size = 'md',\n className = '',\n children,\n type = 'button',\n ...rest\n}: ChipProps) {\n return (\n <button\n type={type}\n className={cn('cd-chip', size === 'sm' && 'cd-chip--sm', active && 'is-active', className)}\n data-active={active || undefined}\n aria-pressed={active}\n {...rest}\n >\n {children}\n </button>\n );\n}\n\nexport interface ChipRowProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n}\n\nexport function ChipRow({ className = '', children, ...rest }: ChipRowProps) {\n return (\n <div className={cn('cd-chip-row', className)} {...rest}>\n {children}\n </div>\n );\n}\n","import type { InputHTMLAttributes } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n /** `sm` is compact, `lg` is taller; default is the standard height. */\n size?: 'sm' | 'md' | 'lg';\n /** Adds a left accent border (corpus-search pattern). */\n accent?: boolean;\n /** Error state — red border and glow. */\n error?: boolean;\n}\n\n/** Cyber text input — neon focus ring, optional left-accent border and error state. */\nexport function Input({\n size = 'md',\n accent = false,\n error = false,\n className = '',\n type = 'text',\n ...rest\n}: InputProps) {\n return (\n <input\n type={type}\n className={cn(\n 'cd-input',\n size === 'sm' && 'cd-input--sm',\n size === 'lg' && 'cd-input--lg',\n accent && 'cd-input--accent',\n error && 'cd-input--error',\n className,\n )}\n {...rest}\n />\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface PanelHeaderProps extends HTMLAttributes<HTMLDivElement> {\n /** Trailing actions slot (right-aligned), e.g. a count or status indicator. */\n actions?: ReactNode;\n /** Header label / title content. */\n children?: ReactNode;\n}\n\n/** Panel header bar — uppercase neon title with an animated sweep and a right-aligned actions slot. */\nexport function PanelHeader({\n actions,\n className = '',\n children,\n ...rest\n}: PanelHeaderProps) {\n return (\n <div className={cn('cd-panel-header', className)} {...rest}>\n {children}\n {actions != null && (\n <div className=\"cd-panel-header__actions\">{actions}</div>\n )}\n </div>\n );\n}\n","import type { HTMLAttributes } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface SpinnerProps extends HTMLAttributes<HTMLDivElement> {\n /** Diameter preset. `md` is the default (no modifier). */\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n /** `ring` (default), `dual` counter-rotating rings, or `dots` pulse. */\n variant?: 'ring' | 'dual' | 'dots';\n /** Accessible label announced to screen readers. */\n label?: string;\n}\n\n/** Loading spinner — ring / dual-ring / dot-pulse variants in five sizes. */\nexport function Spinner({\n size = 'md',\n variant = 'ring',\n label = 'Loading',\n className = '',\n ...rest\n}: SpinnerProps) {\n return (\n <div\n role=\"status\"\n aria-label={label}\n className={cn(\n 'cd-spinner',\n size !== 'md' && `cd-spinner--${size}`,\n variant === 'dual' && 'cd-spinner--dual',\n variant === 'dots' && 'cd-spinner--dots',\n className,\n )}\n {...rest}\n >\n {variant === 'dots' && <span />}\n </div>\n );\n}\n","import {\n useState,\n type ButtonHTMLAttributes,\n type FormEvent,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cn } from '../lib/cn';\nimport { Chip } from './Chip';\nimport { Input } from './Input';\nimport { Button } from './Button';\nimport { PanelHeader } from './PanelHeader';\nimport { Spinner } from './Spinner';\n\nexport type ChatRole = 'user' | 'assistant' | 'system' | 'error';\n\nexport interface ChatMessageData {\n id?: string;\n role: ChatRole;\n content: ReactNode;\n /** Optional language label for a code block under the message body. */\n code?: string;\n codeLang?: string;\n /** Timestamp / meta label. */\n time?: ReactNode;\n /** Author label (defaults from role). */\n author?: ReactNode;\n}\n\nexport interface ChatActionProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Glyph / icon before the label. */\n icon?: ReactNode;\n /** Visible text (hidden on icon-only if omit). */\n label?: ReactNode;\n /** Active/toggled state. */\n active?: boolean;\n /** Destructive hover (delete, reject). */\n danger?: boolean;\n /** Show text label next to icon. */\n showLabel?: boolean;\n}\n\n/** Icon button for message toolbars and composer tools. */\nexport function ChatAction({\n icon,\n label,\n active = false,\n danger = false,\n showLabel = false,\n className = '',\n type = 'button',\n title,\n children,\n ...rest\n}: ChatActionProps) {\n const tip = title ?? (typeof label === 'string' ? label : undefined);\n return (\n <button\n type={type}\n title={tip}\n aria-label={typeof tip === 'string' ? tip : undefined}\n className={cn(\n 'cd-chat-action',\n active && 'is-active',\n danger && 'cd-chat-action--danger',\n className,\n )}\n {...rest}\n >\n {icon != null && <span className=\"cd-chat-action__icon\">{icon}</span>}\n {(showLabel || (!icon && label != null)) && (\n <span className=\"cd-chat-action__label\">{label}</span>\n )}\n {children}\n </button>\n );\n}\n\nexport interface ChatActionsProps extends HTMLAttributes<HTMLDivElement> {\n /** Absolute overlay on the message (default) or flow below. */\n placement?: 'overlay' | 'below';\n /** Force visible (also shows on parent hover). */\n visible?: boolean;\n children?: ReactNode;\n}\n\n/** Hover toolbar container for message actions. */\nexport function ChatActions({\n placement = 'overlay',\n visible = false,\n className = '',\n children,\n ...rest\n}: ChatActionsProps) {\n return (\n <div\n className={cn(\n 'cd-chat-actions',\n placement === 'overlay' ? 'cd-chat-actions--overlay' : 'cd-chat-actions--below',\n visible && 'is-visible',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\nexport interface ChatCodeBlockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onCopy'> {\n code: string;\n language?: string;\n onCopy?: (code: string) => void;\n onInsert?: (code: string) => void;\n onRun?: (code: string) => void;\n}\n\n/** Code fence with hover copy / insert / run actions. */\nexport function ChatCodeBlock({\n code,\n language = 'code',\n onCopy,\n onInsert,\n onRun,\n className = '',\n ...rest\n}: ChatCodeBlockProps) {\n const [copied, setCopied] = useState(false);\n\n const copy = async () => {\n try {\n await navigator.clipboard?.writeText(code);\n } catch {\n /* ignore */\n }\n setCopied(true);\n onCopy?.(code);\n window.setTimeout(() => setCopied(false), 1400);\n };\n\n return (\n <div className={cn('cd-chat-code', className)} {...rest}>\n <div className=\"cd-chat-code__header\">\n <span>{language}</span>\n <div className=\"cd-chat-code__header-actions\">\n {onRun && (\n <ChatAction icon=\"▶\" label=\"Run\" title=\"Run / play\" onClick={() => onRun(code)} />\n )}\n {onInsert && (\n <ChatAction icon=\"↧\" label=\"Insert\" title=\"Insert into editor\" onClick={() => onInsert(code)} />\n )}\n <ChatAction\n icon={copied ? '✓' : '⧉'}\n label={copied ? 'Copied' : 'Copy'}\n title=\"Copy code\"\n active={copied}\n onClick={copy}\n />\n </div>\n </div>\n <pre>\n <code>{code}</code>\n </pre>\n </div>\n );\n}\n\nexport interface ChatMessageProps extends HTMLAttributes<HTMLDivElement> {\n role: ChatRole;\n /** Message body. */\n children?: ReactNode;\n /** Optional code fence below the body. */\n code?: string;\n codeLang?: string;\n time?: ReactNode;\n author?: ReactNode;\n /** Hover action toolbar. */\n actions?: ReactNode;\n /** Always show actions (no hover required). */\n actionsVisible?: boolean;\n onCopyCode?: (code: string) => void;\n onInsertCode?: (code: string) => void;\n onRunCode?: (code: string) => void;\n}\n\nconst ROLE_AUTHOR: Record<ChatRole, string> = {\n user: 'You',\n assistant: 'AI',\n system: 'System',\n error: 'Error',\n};\n\n/** Single chat message row with optional hover actions + code block. */\nexport function ChatMessage({\n role,\n children,\n code,\n codeLang = 'strudel',\n time,\n author,\n actions,\n actionsVisible = false,\n onCopyCode,\n onInsertCode,\n onRunCode,\n className = '',\n ...rest\n}: ChatMessageProps) {\n const showMeta = author != null || time != null || role !== 'system';\n\n return (\n <div className={cn('cd-chat-row', `cd-chat-row--${role}`, className)} {...rest}>\n {showMeta && role !== 'system' && (\n <div className=\"cd-chat-row__meta\">\n <span>{author ?? ROLE_AUTHOR[role]}</span>\n {time != null && <span className=\"cd-chat-row__meta-right\">{time}</span>}\n </div>\n )}\n <div className={cn('cd-chat-msg', `cd-chat-msg--${role}`)} style={{ position: 'relative', maxWidth: '100%' }}>\n {children}\n {actions != null && (\n <ChatActions placement=\"overlay\" visible={actionsVisible}>\n {actions}\n </ChatActions>\n )}\n </div>\n {code != null && (\n <ChatCodeBlock\n code={code}\n language={codeLang}\n onCopy={onCopyCode}\n onInsert={onInsertCode}\n onRun={onRunCode}\n style={{ width: '100%', maxWidth: 420 }}\n />\n )}\n </div>\n );\n}\n\nexport interface ChatTypingProps extends HTMLAttributes<HTMLDivElement> {\n label?: ReactNode;\n}\n\n/** Streaming / thinking indicator. */\nexport function ChatTyping({ label = 'Thinking', className = '', ...rest }: ChatTypingProps) {\n return (\n <div className={cn('cd-chat-typing', className)} {...rest}>\n <span className=\"cd-chat-typing__dots\" aria-hidden>\n <span />\n <span />\n <span />\n </span>\n {label}\n </div>\n );\n}\n\nexport interface ChatProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'onSubmit'> {\n title?: ReactNode;\n actions?: ReactNode;\n messages?: ChatMessageData[];\n /** Quick prompt chips above the composer. */\n prompts?: Array<{ label: ReactNode; value: string }>;\n onPrompt?: (value: string) => void;\n /** Controlled composer value. */\n value?: string;\n onValueChange?: (value: string) => void;\n placeholder?: string;\n onSubmit?: (value: string) => void;\n submitLabel?: ReactNode;\n /** Extra tools above the input (attach, mic, model picker…). */\n composerTools?: ReactNode;\n /** Show typing indicator at end of transcript. */\n typing?: boolean;\n typingLabel?: ReactNode;\n /** Disable send. */\n disabled?: boolean;\n /** Custom render for each message (defaults to ChatMessage with standard actions). */\n renderMessage?: (msg: ChatMessageData, index: number) => ReactNode;\n children?: ReactNode;\n}\n\n/**\n * AI chat panel shell — messages, optional quick prompts, composer tools, and input.\n * Pair with {@link ChatMessage} hover actions for a full AI UX.\n */\nexport function Chat({\n title = 'AI',\n actions,\n messages = [],\n prompts,\n onPrompt,\n value,\n onValueChange,\n placeholder = 'Ask for a pattern…',\n onSubmit,\n submitLabel = 'Send',\n composerTools,\n typing = false,\n typingLabel,\n disabled = false,\n renderMessage,\n className = '',\n children,\n ...rest\n}: ChatProps) {\n const handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n if (disabled) return;\n if (value?.trim()) onSubmit?.(value.trim());\n };\n\n return (\n <div className={cn('cd-chat', className)} {...rest}>\n <PanelHeader actions={actions}>{title}</PanelHeader>\n <div className=\"cd-chat__messages\">\n {messages.map((m, i) =>\n renderMessage ? (\n <div key={m.id ?? i}>{renderMessage(m, i)}</div>\n ) : (\n <ChatMessage\n key={m.id ?? i}\n role={m.role}\n code={m.code}\n codeLang={m.codeLang}\n time={m.time}\n author={m.author}\n >\n {m.content}\n </ChatMessage>\n ),\n )}\n {typing && <ChatTyping label={typingLabel} />}\n {children}\n </div>\n {prompts != null && prompts.length > 0 && (\n <div className=\"cd-chat__prompts\">\n {prompts.map((p) => (\n <Chip key={String(p.value)} size=\"sm\" onClick={() => onPrompt?.(p.value)}>\n {p.label}\n </Chip>\n ))}\n </div>\n )}\n <div className=\"cd-chat__composer-wrap\">\n {composerTools != null && <div className=\"cd-chat__composer-tools\">{composerTools}</div>}\n <form className=\"cd-chat__composer\" onSubmit={handleSubmit}>\n <Input\n value={value}\n onChange={(e) => onValueChange?.(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n />\n <Button type=\"submit\" variant=\"primary\" size=\"sm\" disabled={disabled || !value?.trim()}>\n {disabled ? <Spinner size=\"xs\" /> : submitLabel}\n </Button>\n </form>\n </div>\n </div>\n );\n}\n","import type { InputHTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface CheckboxProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {\n /** Text shown beside the box. When set, wraps the input in a `cd-control` label. */\n label?: ReactNode;\n /** Smaller helper line below the label. */\n description?: ReactNode;\n}\n\n/** Cyber checkbox — neon fill + checkmark; renders inside a `cd-control` label when labelled. */\nexport function Checkbox({ label, description, className = '', ...rest }: CheckboxProps) {\n const input = (\n <input type=\"checkbox\" className={cn('cd-checkbox', !label && className)} {...rest} />\n );\n\n if (label == null && description == null) return input;\n\n return (\n <label className={cn('cd-control', className)}>\n <input type=\"checkbox\" className=\"cd-checkbox\" {...rest} />\n <span className=\"cd-control__label\">\n {label}\n {description != null && <span className=\"cd-control__desc\">{description}</span>}\n </span>\n </label>\n );\n}\n","import { useEffect, useState } from 'react';\nimport type { HTMLAttributes } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ClockProps extends HTMLAttributes<HTMLSpanElement> {\n /** IANA timezone. @default local */\n timeZone?: string;\n /** Show calendar date. @default true */\n showDate?: boolean;\n /** 24h clock. @default true */\n hour12?: boolean;\n}\n\n/**\n * Live clock readout — dashboard-app header date/time strip.\n */\nexport function Clock({\n timeZone,\n showDate = true,\n hour12 = false,\n className = '',\n ...rest\n}: ClockProps) {\n const [now, setNow] = useState(() => new Date());\n\n useEffect(() => {\n const id = window.setInterval(() => setNow(new Date()), 1000);\n return () => window.clearInterval(id);\n }, []);\n\n const time = now.toLocaleTimeString(undefined, {\n hour12,\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n timeZone,\n });\n const date = now.toLocaleDateString(undefined, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n timeZone,\n });\n\n return (\n <span className={cn('cd-clock', className)} {...rest}>\n {showDate && <span className=\"cd-clock__date\">{date}</span>}\n <span className=\"cd-clock__time\">{time}</span>\n </span>\n );\n}\n","import { useState } from 'react';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface CollapsibleProps extends HTMLAttributes<HTMLDivElement> {\n /** Trigger label. */\n trigger: ReactNode;\n /** Uncontrolled initial open state. */\n defaultOpen?: boolean;\n /** Controlled open state. */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: ReactNode;\n}\n\n/** Expand/collapse section with a trigger row. */\nexport function Collapsible({\n trigger,\n defaultOpen = false,\n open,\n onOpenChange,\n className = '',\n children,\n ...rest\n}: CollapsibleProps) {\n const [internal, setInternal] = useState(defaultOpen);\n const isOpen = open ?? internal;\n\n const toggle = () => {\n const next = !isOpen;\n if (open == null) setInternal(next);\n onOpenChange?.(next);\n };\n\n return (\n <div className={cn('cd-collapsible', isOpen && 'is-open', className)} {...rest}>\n <button type=\"button\" className=\"cd-collapsible__trigger\" onClick={toggle} aria-expanded={isOpen}>\n <span>{trigger}</span>\n <span className=\"cd-collapsible__chevron\" aria-hidden>\n ▾\n </span>\n </button>\n <div className=\"cd-collapsible__content\">{children}</div>\n </div>\n );\n}\n","import { useMemo, useState } from 'react';\nimport type { HTMLAttributes } from 'react';\nimport { cn } from '../lib/cn';\nimport { Input } from './Input';\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface ComboboxProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n options: ComboboxOption[];\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n placeholder?: string;\n emptyText?: string;\n disabled?: boolean;\n}\n\n/** Searchable select — filters options as you type. */\nexport function Combobox({\n options,\n value,\n defaultValue = '',\n onChange,\n placeholder = 'Select…',\n emptyText = 'No matches',\n disabled = false,\n className = '',\n ...rest\n}: ComboboxProps) {\n const [open, setOpen] = useState(false);\n const [internal, setInternal] = useState(defaultValue);\n const [query, setQuery] = useState('');\n const selected = value ?? internal;\n\n const selectedLabel = options.find((o) => o.value === selected)?.label ?? '';\n\n const filtered = useMemo(() => {\n const q = query.trim().toLowerCase();\n if (!q) return options;\n return options.filter(\n (o) => o.label.toLowerCase().includes(q) || o.value.toLowerCase().includes(q),\n );\n }, [options, query]);\n\n return (\n <div className={cn('cd-combobox', open && 'is-open', className)} {...rest}>\n <Input\n disabled={disabled}\n placeholder={placeholder}\n value={open ? query : selectedLabel}\n onFocus={() => {\n setOpen(true);\n setQuery('');\n }}\n onChange={(e) => {\n setQuery(e.target.value);\n setOpen(true);\n }}\n onBlur={() => {\n // delay so option click registers\n window.setTimeout(() => setOpen(false), 120);\n }}\n />\n <div className=\"cd-combobox__menu\" role=\"listbox\">\n {filtered.length === 0 && (\n <div className=\"cd-command__empty\" style={{ padding: 12 }}>\n {emptyText}\n </div>\n )}\n {filtered.map((opt) => (\n <button\n key={opt.value}\n type=\"button\"\n role=\"option\"\n disabled={opt.disabled}\n aria-selected={opt.value === selected}\n className=\"cd-combobox__option\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => {\n if (value == null) setInternal(opt.value);\n onChange?.(opt.value);\n setOpen(false);\n }}\n >\n {opt.label}\n </button>\n ))}\n </div>\n </div>\n );\n}\n","import { useMemo, useState } from 'react';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface CommandItem {\n value: string;\n label: ReactNode;\n keywords?: string;\n group?: string;\n kbd?: ReactNode;\n disabled?: boolean;\n onSelect?: () => void;\n}\n\nexport interface CommandProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n items: CommandItem[];\n placeholder?: string;\n emptyText?: string;\n onSelect?: (item: CommandItem) => void;\n}\n\n/** Filterable command palette list. */\nexport function Command({\n items,\n placeholder = 'Type a command…',\n emptyText = 'No results',\n onSelect,\n className = '',\n ...rest\n}: CommandProps) {\n const [query, setQuery] = useState('');\n const [active, setActive] = useState(0);\n\n const filtered = useMemo(() => {\n const q = query.trim().toLowerCase();\n if (!q) return items;\n return items.filter((item) => {\n const hay = `${item.value} ${item.keywords ?? ''} ${typeof item.label === 'string' ? item.label : ''}`.toLowerCase();\n return hay.includes(q);\n });\n }, [items, query]);\n\n const groups = useMemo(() => {\n const map = new Map<string, CommandItem[]>();\n for (const item of filtered) {\n const g = item.group ?? '';\n if (!map.has(g)) map.set(g, []);\n map.get(g)!.push(item);\n }\n return map;\n }, [filtered]);\n\n return (\n <div className={cn('cd-command', className)} {...rest}>\n <div className=\"cd-command__input-wrap\">\n <input\n className=\"cd-command__input\"\n value={query}\n placeholder={placeholder}\n onChange={(e) => {\n setQuery(e.target.value);\n setActive(0);\n }}\n onKeyDown={(e) => {\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n setActive((i) => Math.min(i + 1, filtered.length - 1));\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n setActive((i) => Math.max(i - 1, 0));\n } else if (e.key === 'Enter' && filtered[active] && !filtered[active].disabled) {\n filtered[active].onSelect?.();\n onSelect?.(filtered[active]);\n }\n }}\n />\n </div>\n <div className=\"cd-command__list\" role=\"listbox\">\n {filtered.length === 0 && <div className=\"cd-command__empty\">{emptyText}</div>}\n {Array.from(groups.entries()).map(([group, groupItems]) => (\n <div key={group || '__default'}>\n {group && <div className=\"cd-command__group-label\">{group}</div>}\n {groupItems.map((item) => {\n const idx = filtered.indexOf(item);\n return (\n <button\n key={item.value}\n type=\"button\"\n role=\"option\"\n disabled={item.disabled}\n className={cn('cd-command__item', idx === active && 'is-selected')}\n data-selected={idx === active}\n onMouseEnter={() => setActive(idx)}\n onClick={() => {\n item.onSelect?.();\n onSelect?.(item);\n }}\n >\n {item.label}\n {item.kbd != null && <span className=\"cd-command__item-kbd\">{item.kbd}</span>}\n </button>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n );\n}\n","import { useEffect, useState } from 'react';\nimport type { HTMLAttributes, ReactNode, MouseEvent as ReactMouseEvent } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ContextMenuItem {\n label: ReactNode;\n kbd?: ReactNode;\n danger?: boolean;\n disabled?: boolean;\n onSelect?: () => void;\n sep?: boolean;\n}\n\nexport interface ContextMenuProps extends HTMLAttributes<HTMLDivElement> {\n items: ContextMenuItem[];\n children: ReactNode;\n}\n\n/** Right-click context menu over children. */\nexport function ContextMenu({ items, children, className = '', ...rest }: ContextMenuProps) {\n const [open, setOpen] = useState(false);\n const [pos, setPos] = useState({ x: 0, y: 0 });\n\n useEffect(() => {\n if (!open) return;\n const close = () => setOpen(false);\n window.addEventListener('click', close);\n window.addEventListener('scroll', close, true);\n return () => {\n window.removeEventListener('click', close);\n window.removeEventListener('scroll', close, true);\n };\n }, [open]);\n\n const onContextMenu = (e: ReactMouseEvent) => {\n e.preventDefault();\n setPos({ x: e.clientX, y: e.clientY });\n setOpen(true);\n };\n\n return (\n <div className={cn(className)} onContextMenu={onContextMenu} {...rest}>\n {children}\n <div\n className={cn('cd-context-menu', open && 'is-open')}\n style={{ left: pos.x, top: pos.y }}\n role=\"menu\"\n >\n {items.map((item, i) =>\n item.sep ? (\n <div key={i} className=\"cd-context-menu__sep\" />\n ) : (\n <button\n key={i}\n type=\"button\"\n role=\"menuitem\"\n disabled={item.disabled}\n className={cn('cd-context-menu__item', item.danger && 'cd-context-menu__item--danger')}\n onClick={(e) => {\n e.stopPropagation();\n item.onSelect?.();\n setOpen(false);\n }}\n >\n {item.label}\n {item.kbd != null && <span className=\"cd-context-menu__kbd\">{item.kbd}</span>}\n </button>\n ),\n )}\n </div>\n </div>\n );\n}\n","import type {\n HTMLAttributes,\n TableHTMLAttributes,\n ThHTMLAttributes,\n TdHTMLAttributes,\n ReactNode,\n} from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface TableProps extends TableHTMLAttributes<HTMLTableElement> {\n /** Tighter padding and smaller type. */\n compact?: boolean;\n /** Draw cell borders. */\n bordered?: boolean;\n /** Wrap the table in a horizontally-scrollable `cd-table-wrap` container. */\n scroll?: boolean;\n /** Props forwarded to the wrapping `cd-table-wrap` div when `scroll` is set. */\n wrapProps?: HTMLAttributes<HTMLDivElement>;\n children?: ReactNode;\n}\n\n/** Cyber data table — accent uppercase headers, status dots, numeric cells. Compose with Table.Head/Body/Row/HeaderCell/Cell. */\nexport function Table({\n compact = false,\n bordered = false,\n scroll = false,\n wrapProps,\n className = '',\n children,\n ...rest\n}: TableProps) {\n const table = (\n <table\n className={cn(\n 'cd-table',\n compact && 'cd-table--compact',\n bordered && 'cd-table--bordered',\n className,\n )}\n {...rest}\n >\n {children}\n </table>\n );\n\n if (!scroll) return table;\n\n const { className: wrapClassName = '', ...wrapRest } = wrapProps ?? {};\n return (\n <div className={cn('cd-table-wrap', wrapClassName)} {...wrapRest}>\n {table}\n </div>\n );\n}\n\nexport interface TableHeadProps extends HTMLAttributes<HTMLTableSectionElement> {\n children?: ReactNode;\n}\n\n/** `<thead>` group for the table header row(s). */\nfunction TableHead({ children, ...rest }: TableHeadProps) {\n return <thead {...rest}>{children}</thead>;\n}\n\nexport interface TableBodyProps extends HTMLAttributes<HTMLTableSectionElement> {\n children?: ReactNode;\n}\n\n/** `<tbody>` group for the table data rows. */\nfunction TableBody({ children, ...rest }: TableBodyProps) {\n return <tbody {...rest}>{children}</tbody>;\n}\n\nexport interface TableRowProps extends HTMLAttributes<HTMLTableRowElement> {\n children?: ReactNode;\n}\n\n/** `<tr>` table row. */\nfunction TableRow({ children, ...rest }: TableRowProps) {\n return <tr {...rest}>{children}</tr>;\n}\n\nexport interface TableHeaderCellProps extends ThHTMLAttributes<HTMLTableCellElement> {\n /** Right-aligned tabular-numeric header cell (`cd-table__num`). */\n numeric?: boolean;\n /** Mark column sortable; `'asc'`/`'desc'` show a direction arrow (sets `data-sort`). */\n sort?: boolean | 'asc' | 'desc';\n children?: ReactNode;\n}\n\n/** `<th>` header cell — supports numeric alignment and a sortable `data-sort` indicator. */\nfunction TableHeaderCell({\n numeric = false,\n sort,\n className = '',\n children,\n ...rest\n}: TableHeaderCellProps) {\n const dataSort = sort === true ? '' : sort || undefined;\n return (\n <th\n className={cn(numeric && 'cd-table__num', className)}\n data-sort={dataSort}\n {...rest}\n >\n {children}\n </th>\n );\n}\n\nexport interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {\n /** Right-aligned tabular-numeric, accent-colored cell (`cd-table__num`). */\n numeric?: boolean;\n /** Status dot prefix (sets `data-status`). */\n status?: 'ok' | 'warn' | 'err' | 'idle';\n children?: ReactNode;\n}\n\n/** `<td>` data cell — supports numeric alignment and a leading status dot. */\nfunction TableCell({\n numeric = false,\n status,\n className = '',\n children,\n ...rest\n}: TableCellProps) {\n return (\n <td\n className={cn(numeric && 'cd-table__num', className)}\n data-status={status}\n {...rest}\n >\n {children}\n </td>\n );\n}\n\nTable.Head = TableHead;\nTable.Body = TableBody;\nTable.Row = TableRow;\nTable.HeaderCell = TableHeaderCell;\nTable.Cell = TableCell;\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface EmptyProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n icon?: ReactNode;\n title?: ReactNode;\n description?: ReactNode;\n actions?: ReactNode;\n children?: ReactNode;\n}\n\n/** Empty state panel for lists, tables, and search results. */\nexport function Empty({\n icon = '⬡',\n title = 'No data',\n description,\n actions,\n className = '',\n children,\n ...rest\n}: EmptyProps) {\n return (\n <div className={cn('cd-empty', className)} {...rest}>\n {icon != null && <div className=\"cd-empty__icon\">{icon}</div>}\n {title != null && <h3 className=\"cd-empty__title\">{title}</h3>}\n {description != null && <p className=\"cd-empty__description\">{description}</p>}\n {children}\n {actions != null && <div className=\"cd-empty__actions\">{actions}</div>}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Table } from './Table';\nimport { Empty } from './Empty';\n\nexport interface DataTableColumn<T> {\n key: string;\n header: ReactNode;\n cell: (row: T, index: number) => ReactNode;\n /** Right-align numeric cells. */\n numeric?: boolean;\n}\n\nexport interface DataTableProps<T> {\n columns: DataTableColumn<T>[];\n data: T[];\n /** Unique key for each row. */\n getRowId?: (row: T, index: number) => string | number;\n compact?: boolean;\n bordered?: boolean;\n emptyTitle?: ReactNode;\n emptyDescription?: ReactNode;\n className?: string;\n}\n\n/** Declarative data table built on {@link Table}. */\nexport function DataTable<T>({\n columns,\n data,\n getRowId,\n compact,\n bordered,\n emptyTitle = 'No rows',\n emptyDescription = 'There is nothing to display yet.',\n className,\n}: DataTableProps<T>) {\n if (data.length === 0) {\n return <Empty title={emptyTitle} description={emptyDescription} />;\n }\n\n return (\n <Table compact={compact} bordered={bordered} scroll className={className}>\n <Table.Head>\n <Table.Row>\n {columns.map((col) => (\n <Table.HeaderCell key={col.key}>{col.header}</Table.HeaderCell>\n ))}\n </Table.Row>\n </Table.Head>\n <Table.Body>\n {data.map((row, i) => (\n <Table.Row key={getRowId?.(row, i) ?? i}>\n {columns.map((col) => (\n <Table.Cell key={col.key} numeric={col.numeric}>\n {col.cell(row, i)}\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n );\n}\n","import { useState } from 'react';\nimport type { HTMLAttributes } from 'react';\nimport { cn } from '../lib/cn';\nimport { Input } from './Input';\nimport { Calendar } from './Calendar';\n\nfunction formatDate(d: Date) {\n return d.toLocaleDateString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n}\n\nexport interface DatePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {\n value?: Date;\n defaultValue?: Date;\n onChange?: (date: Date | undefined) => void;\n placeholder?: string;\n disabled?: boolean;\n}\n\n/** Input + calendar popover for picking a date. */\nexport function DatePicker({\n value,\n defaultValue,\n onChange,\n placeholder = 'Pick a date',\n disabled = false,\n className = '',\n ...rest\n}: DatePickerProps) {\n const [open, setOpen] = useState(false);\n const [internal, setInternal] = useState<Date | undefined>(defaultValue);\n const selected = value ?? internal;\n\n return (\n <div className={cn('cd-date-picker', open && 'is-open', className)} {...rest}>\n <Input\n readOnly\n disabled={disabled}\n value={selected ? formatDate(selected) : ''}\n placeholder={placeholder}\n onClick={() => !disabled && setOpen((o) => !o)}\n aria-expanded={open}\n />\n <div className=\"cd-date-picker__panel\">\n <Calendar\n selected={selected}\n onSelect={(d) => {\n if (value == null) setInternal(d);\n onChange?.(d);\n setOpen(false);\n }}\n />\n </div>\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { Modal } from './Modal';\n\nexport type DialogProps = ComponentProps<typeof Modal>;\n\n/** Alias for {@link Modal} — familiar naming for teams used to a \"Dialog\" component. */\nexport function Dialog(props: DialogProps) {\n return <Modal {...props} />;\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface SheetProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Controls visibility. */\n open: boolean;\n onClose?: () => void;\n /** Edge the panel slides from. @default 'right' */\n side?: 'top' | 'right' | 'bottom' | 'left';\n /** Panel width for left/right. */\n size?: 'sm' | 'default' | 'lg';\n title?: ReactNode;\n description?: ReactNode;\n footer?: ReactNode;\n hideClose?: boolean;\n children?: ReactNode;\n}\n\n/** Side/bottom sheet panel over a dimmed backdrop. */\nexport function Sheet({\n open,\n onClose,\n side = 'right',\n size = 'default',\n title,\n description,\n footer,\n hideClose = false,\n className = '',\n children,\n ...rest\n}: SheetProps) {\n return (\n <div\n className={cn('cd-sheet-overlay', open && 'is-open')}\n onClick={(e) => {\n if (e.target === e.currentTarget) onClose?.();\n }}\n >\n <div\n className={cn(\n 'cd-sheet',\n `cd-sheet--${side}`,\n size !== 'default' && `cd-sheet--${size}`,\n className,\n )}\n role=\"dialog\"\n aria-modal=\"true\"\n {...rest}\n >\n {(title != null || description != null || !hideClose) && (\n <div className=\"cd-sheet__header\">\n <div>\n {title != null && <div className=\"cd-sheet__title\">{title}</div>}\n {description != null && <p className=\"cd-sheet__description\">{description}</p>}\n </div>\n {!hideClose && (\n <button type=\"button\" className=\"cd-sheet__close\" onClick={onClose} aria-label=\"Close\">\n ✕\n </button>\n )}\n </div>\n )}\n <div className=\"cd-sheet__body\">{children}</div>\n {footer != null && <div className=\"cd-sheet__footer\">{footer}</div>}\n </div>\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { Sheet } from './Sheet';\n\nexport type DrawerProps = ComponentProps<typeof Sheet>;\n\n/** Alias for {@link Sheet} with default side `bottom` (mobile drawer pattern). */\nexport function Drawer({ side = 'bottom', ...rest }: DrawerProps) {\n return <Sheet side={side} {...rest} />;\n}\n","import { useState } from 'react';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface DropdownItem {\n /** Item label text. */\n label: ReactNode;\n /** Leading icon glyph rendered in the `__item-icon` slot. */\n icon?: ReactNode;\n /** Right-aligned keyboard shortcut hint (`__item-kbd`). */\n kbd?: ReactNode;\n /** Destructive styling (red on hover). */\n danger?: boolean;\n /** Disable selection. */\n disabled?: boolean;\n /** Fired when the item is clicked (closes the menu). */\n onSelect?: () => void;\n}\n\nexport type DropdownEntry =\n | DropdownItem\n | { sep: true }\n | { label: ReactNode; heading: true };\n\nexport interface DropdownProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** Trigger node — rendered as the `cd-dropdown__trigger` button content. */\n trigger: ReactNode;\n /** Menu entries: items, `{ sep: true }` separators, or `{ heading: true }` labels. */\n items: DropdownEntry[];\n /** Right-align the menu panel under the trigger. */\n align?: 'left' | 'right';\n /** Extra classes for the trigger button (e.g. `cd-btn cd-btn--primary`). */\n triggerClassName?: string;\n /** Initial open state (uncontrolled). */\n defaultOpen?: boolean;\n}\n\n/** Dropdown menu — a trigger button toggling a `cd-dropdown__menu` of data-driven items. */\nexport function Dropdown({\n trigger,\n items,\n align = 'left',\n triggerClassName = 'cd-btn',\n defaultOpen = false,\n className = '',\n ...rest\n}: DropdownProps) {\n const [open, setOpen] = useState(defaultOpen);\n\n return (\n <div className={cn('cd-dropdown', open && 'is-open', className)} {...rest}>\n <button\n type=\"button\"\n className={cn(triggerClassName, 'cd-dropdown__trigger')}\n aria-expanded={open}\n onClick={() => setOpen((o) => !o)}\n >\n {trigger}\n </button>\n <div\n className={cn('cd-dropdown__menu', align === 'right' && 'cd-dropdown__menu--right')}\n role=\"menu\"\n >\n {items.map((entry, i) => {\n if ('sep' in entry && entry.sep) {\n return <div key={i} className=\"cd-dropdown__sep\" />;\n }\n if ('heading' in entry && entry.heading) {\n return (\n <div key={i} className=\"cd-dropdown__label\">\n {entry.label}\n </div>\n );\n }\n const item = entry as DropdownItem;\n return (\n <button\n key={i}\n type=\"button\"\n role=\"menuitem\"\n className={cn('cd-dropdown__item', item.danger && 'cd-dropdown__item--danger')}\n disabled={item.disabled}\n aria-disabled={item.disabled || undefined}\n onClick={() => {\n item.onSelect?.();\n setOpen(false);\n }}\n >\n {item.icon != null && (\n <span className=\"cd-dropdown__item-icon\">{item.icon}</span>\n )}\n {item.label}\n {item.kbd != null && (\n <span className=\"cd-dropdown__item-kbd\">{item.kbd}</span>\n )}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { Dropdown } from './Dropdown';\n\nexport type DropdownMenuProps = ComponentProps<typeof Dropdown>;\n\n/** Alias for {@link Dropdown} — familiar naming for teams used to a \"DropdownMenu\" component. */\nexport function DropdownMenu(props: DropdownMenuProps) {\n return <Dropdown {...props} />;\n}\n","import type { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface FeedItemProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'title'> {\n /** Leading badge / category chip. */\n badge?: ReactNode;\n title: ReactNode;\n subtitle?: ReactNode;\n time?: ReactNode;\n /** Selected row (map/feed selection). */\n selected?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Intel-feed list row — dashboard-app feed cards with badge, title, meta, time.\n */\nexport function FeedItem({\n badge,\n title,\n subtitle,\n time,\n selected = false,\n className = '',\n children,\n type = 'button',\n ...rest\n}: FeedItemProps) {\n return (\n <button\n type={type}\n className={cn('cd-feed-item', selected && 'is-selected', className)}\n data-active={selected || undefined}\n {...rest}\n >\n <div className=\"cd-feed-item__meta\">\n {badge}\n {time != null && <span className=\"cd-feed-item__time\">{time}</span>}\n </div>\n <div className=\"cd-feed-item__title\">{title}</div>\n {subtitle != null && <div className=\"cd-feed-item__subtitle\">{subtitle}</div>}\n {children}\n </button>\n );\n}\n\nexport interface FeedProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n}\n\nexport function Feed({ className = '', children, ...rest }: FeedProps) {\n return (\n <div className={cn('cd-feed', className)} {...rest}>\n {children}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface FieldProps extends HTMLAttributes<HTMLDivElement> {\n /** Inline layout: label left, control right. */\n inline?: boolean;\n /** Helper / description text below the control. */\n description?: ReactNode;\n /** Error message below the control (rendered with a ⚠ marker). */\n error?: ReactNode;\n /** Label + control (e.g. a `Label` followed by an input). */\n children?: ReactNode;\n}\n\n/** Form field wrapper — stacks a label, control, and optional helper/error text. */\nexport function Field({\n inline = false,\n description,\n error,\n className = '',\n children,\n ...rest\n}: FieldProps) {\n return (\n <div\n className={cn('cd-field', inline && 'cd-field--inline', className)}\n {...rest}\n >\n {children}\n {description != null && <p className=\"cd-field-desc\">{description}</p>}\n {error != null && <p className=\"cd-field-error\">{error}</p>}\n </div>\n );\n}\n","import type { CSSProperties, HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface GaugeProps extends HTMLAttributes<HTMLDivElement> {\n /** Fill amount, 0–100. Drives the conic `--value` CSS variable. */\n value: number;\n /** Text shown in the center; defaults to `value`. */\n display?: ReactNode;\n /** Uppercase caption under the value. */\n label?: ReactNode;\n /** `small` is the compact radial. */\n size?: 'small';\n /** Color theme: accent (default), or a semantic override. */\n variant?: 'danger' | 'success' | 'warn';\n /** Concentric-ring radar style with sweep fill. */\n radar?: boolean;\n /** Extra center content (rendered after value/label). */\n children?: ReactNode;\n}\n\n/** Radial neon gauge — conic fill driven by a 0–100 `value`, with center readout. */\nexport function Gauge({\n value,\n display,\n label,\n size,\n variant,\n radar = false,\n className = '',\n style,\n children,\n ...rest\n}: GaugeProps) {\n return (\n <div\n className={cn(\n 'cd-gauge',\n size === 'small' && 'cd-gauge--small',\n variant && `cd-gauge--${variant}`,\n radar && 'cd-gauge--radar',\n className,\n )}\n style={{ ['--value']: value, ...style } as CSSProperties}\n {...rest}\n >\n <div className=\"cd-gauge__track\" />\n <div className=\"cd-gauge__fill\" />\n <div className=\"cd-gauge__center\">\n <div className=\"cd-gauge__value\">{display ?? value}</div>\n {label != null && <div className=\"cd-gauge__label\">{label}</div>}\n {children}\n </div>\n </div>\n );\n}\n","import type { CSSProperties, HTMLAttributes, MouseEvent, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\nimport type { CdColor } from '../lib/types';\n\nexport interface GlowCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'> {\n /** Neon border/glow color family. Defaults to `orange`. */\n color?: CdColor;\n /** Marks the card as selected (`data-active`). */\n active?: boolean;\n children?: ReactNode;\n onClick?: (e: MouseEvent<HTMLDivElement>) => void;\n style?: CSSProperties;\n}\n\n/** Interactive panel with neon border glow — primary surface for cyber layouts. */\nexport function GlowCard({\n color = 'orange',\n active,\n className,\n onClick,\n style,\n children,\n ...rest\n}: GlowCardProps) {\n return (\n <div\n className={cn('cd-glow-card', `cd-glow-card--${color}`, className)}\n data-active={active ? 'true' : undefined}\n onClick={onClick}\n style={style}\n {...rest}\n >\n {children}\n </div>\n );\n}\n","import type { CSSProperties, HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface HBarProps extends HTMLAttributes<HTMLDivElement> {\n label: ReactNode;\n /** 0–100 fill percent. */\n value: number;\n /** Optional numeric readout (defaults to value). */\n display?: ReactNode;\n /** CSS color for the fill (defaults to accent). */\n color?: string;\n}\n\n/**\n * Labeled horizontal bar — dashboard-app \"BY CATEGORY\" breakdown rows.\n */\nexport function HBar({\n label,\n value,\n display,\n color,\n className = '',\n ...rest\n}: HBarProps) {\n const pct = Math.max(0, Math.min(100, value));\n const fillStyle: CSSProperties = {\n width: `${pct}%`,\n ...(color ? { background: color } : null),\n };\n\n return (\n <div className={cn('cd-hbar-row', className)} {...rest}>\n <span className=\"cd-hbar-row__label\">{label}</span>\n <div className=\"cd-hbar-row__track\">\n <div className=\"cd-hbar-row__fill\" style={fillStyle} />\n </div>\n <span className=\"cd-hbar-row__value\">{display ?? Math.round(pct)}</span>\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface HoverCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Trigger content. */\n trigger: ReactNode;\n title?: ReactNode;\n description?: ReactNode;\n children?: ReactNode;\n}\n\n/** Hover/focus-revealed card (CSS-driven). */\nexport function HoverCard({\n trigger,\n title,\n description,\n className = '',\n children,\n ...rest\n}: HoverCardProps) {\n return (\n <div className={cn('cd-hover-card', className)} {...rest}>\n <span tabIndex={0}>{trigger}</span>\n <div className=\"cd-hover-card__content\" role=\"tooltip\">\n {title != null && <div className=\"cd-popover__title\">{title}</div>}\n {description != null && <p className=\"cd-popover__description\">{description}</p>}\n {children}\n </div>\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\n/** Status color for a segment value — maps to `cd-hud-segment__value--*`. */\nexport type HudSegmentStatus = 'ok' | 'warn' | 'err';\n\nexport interface HudSegmentProps extends HTMLAttributes<HTMLDivElement> {\n /** Small uppercase caption. */\n label?: ReactNode;\n /** Accent-colored value. */\n value?: ReactNode;\n /** Color the value by status. */\n status?: HudSegmentStatus;\n children?: ReactNode;\n}\n\n/** One label/value cell inside a `HudBar`. */\nexport function HudSegment({\n label,\n value,\n status,\n className = '',\n children,\n ...rest\n}: HudSegmentProps) {\n return (\n <div className={cn('cd-hud-segment', className)} {...rest}>\n {label != null && <span className=\"cd-hud-segment__label\">{label}</span>}\n {value != null && (\n <span className={cn('cd-hud-segment__value', status && `cd-hud-segment__value--${status}`)}>\n {value}\n </span>\n )}\n {children}\n </div>\n );\n}\n\nexport interface HudBarSegment {\n /** Small uppercase caption. */\n label?: ReactNode;\n /** Accent-colored value. */\n value?: ReactNode;\n /** Color the value by status. */\n status?: HudSegmentStatus;\n}\n\nexport interface HudBarProps extends HTMLAttributes<HTMLDivElement> {\n /** Data-driven segments rendered left-to-right. */\n segments?: HudBarSegment[];\n /** Glowing accent edge: `top` or `bottom` bar, or `side` for vertical. */\n position?: 'top' | 'bottom' | 'side';\n /** Tighter segment padding/type. */\n compact?: boolean;\n /** Custom segment markup (e.g. `HudSegment` children) instead of `segments`. */\n children?: ReactNode;\n}\n\n/** Persistent HUD status bar — a row of label/value segments with a glowing accent edge. */\nexport function HudBar({\n segments,\n position,\n compact = false,\n className = '',\n children,\n ...rest\n}: HudBarProps) {\n return (\n <div\n className={cn(\n 'cd-hud-bar',\n position && `cd-hud-bar--${position}`,\n compact && 'cd-hud-bar--compact',\n className,\n )}\n {...rest}\n >\n {segments?.map((seg, i) => (\n <HudSegment key={i} label={seg.label} value={seg.value} status={seg.status} />\n ))}\n {children}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\n/** Status color for a HUD value readout — maps to `cd-hud__value--*`. */\nexport type HudValueStatus = 'ok' | 'warn' | 'err' | 'dim';\n\nexport interface HudFrameProps extends HTMLAttributes<HTMLDivElement> {\n /** Uppercase label line above the value. */\n label?: ReactNode;\n /** Primary readout value. */\n value?: ReactNode;\n /** Color the value by status. */\n status?: HudValueStatus;\n /** Tighter padding for dense UIs. */\n compact?: boolean;\n /** Frosted / AR-style translucent backdrop. */\n floating?: boolean;\n /** Extra content rendered after the label/value (e.g. nested gauges). */\n children?: ReactNode;\n}\n\n/** Framed HUD stat panel — uppercase label over a glowing accent value readout. */\nexport function HudFrame({\n label,\n value,\n status,\n compact = false,\n floating = false,\n className = '',\n children,\n ...rest\n}: HudFrameProps) {\n return (\n <div\n className={cn(\n 'cd-hud-frame',\n compact && 'cd-hud--compact',\n floating && 'cd-hud--floating',\n className,\n )}\n {...rest}\n >\n {label != null && <div className=\"cd-hud__label\">{label}</div>}\n {value != null && (\n <div className={cn('cd-hud__value', status && `cd-hud__value--${status}`)}>{value}</div>\n )}\n {children}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface InputGroupProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n}\n\n/** Prefix/suffix input group — place `InputGroupAddon` and `Input` as children. */\nexport function InputGroup({ className = '', children, ...rest }: InputGroupProps) {\n return (\n <div className={cn('cd-input-group', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nexport interface InputGroupAddonProps extends HTMLAttributes<HTMLSpanElement> {\n children?: ReactNode;\n}\n\nexport function InputGroupAddon({ className = '', children, ...rest }: InputGroupAddonProps) {\n return (\n <span className={cn('cd-input-addon', className)} {...rest}>\n {children}\n </span>\n );\n}\n\nObject.assign(InputGroup, { Addon: InputGroupAddon });\n","import { useRef } from 'react';\nimport type { HTMLAttributes } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface InputOTPProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Number of digits. @default 6 */\n length?: number;\n value?: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n size?: 'sm' | 'md';\n /** Insert a separator after this many digits (e.g. 3 → XXX-XXX). */\n separatorAfter?: number;\n}\n\n/** One-time-passcode digit inputs with focus advance. */\nexport function InputOTP({\n length = 6,\n value = '',\n onChange,\n disabled = false,\n size = 'md',\n separatorAfter,\n className = '',\n ...rest\n}: InputOTPProps) {\n const refs = useRef<Array<HTMLInputElement | null>>([]);\n const digits = value.padEnd(length, ' ').slice(0, length).split('');\n\n const setAt = (index: number, char: string) => {\n const next = digits.map((d, i) => (i === index ? char : d === ' ' ? '' : d));\n const joined = next.join('').replace(/\\s/g, '').slice(0, length);\n onChange?.(joined);\n };\n\n return (\n <div className={cn('cd-input-otp', size === 'sm' && 'cd-input-otp--sm', className)} {...rest}>\n {Array.from({ length }, (_, i) => (\n <span key={i} style={{ display: 'contents' }}>\n {separatorAfter != null && i === separatorAfter && (\n <span className=\"cd-input-otp__sep\" aria-hidden>\n -\n </span>\n )}\n <input\n ref={(el) => {\n refs.current[i] = el;\n }}\n className={cn('cd-input-otp__slot', digits[i] && digits[i] !== ' ' && 'is-filled')}\n inputMode=\"numeric\"\n autoComplete=\"one-time-code\"\n maxLength={1}\n disabled={disabled}\n value={digits[i] === ' ' ? '' : digits[i]}\n aria-label={`Digit ${i + 1}`}\n onChange={(e) => {\n const v = e.target.value.replace(/\\D/g, '').slice(-1);\n setAt(i, v);\n if (v && i < length - 1) refs.current[i + 1]?.focus();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Backspace' && !digits[i]?.trim() && i > 0) {\n refs.current[i - 1]?.focus();\n }\n }}\n onPaste={(e) => {\n e.preventDefault();\n const paste = e.clipboardData.getData('text').replace(/\\D/g, '').slice(0, length);\n if (paste) onChange?.(paste);\n }}\n />\n </span>\n ))}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface InterferenceProps extends HTMLAttributes<HTMLDivElement> {\n /** Static intensity: `light`, default, or `heavy`. */\n intensity?: 'light' | 'heavy';\n /** Extra-aggressive noise (combine with `heavy`). */\n intense?: boolean;\n /** Enable the text/data corruption effect (uses `corruptText` as the clipped layer text). */\n glitch?: boolean;\n /**\n * Text driving the glitch corruption layers (sets `data-text` on the content wrapper).\n * Required for the corruption effect to render; should match the visible heading text.\n */\n corruptText?: string;\n /** Content shown beneath the noise overlay. */\n children?: ReactNode;\n}\n\n/** Animated static / data-corruption overlay — adds a `__noise` layer over wrapped content. */\nexport function Interference({\n intensity,\n intense = false,\n glitch = false,\n corruptText,\n className = '',\n children,\n ...rest\n}: InterferenceProps) {\n return (\n <div\n className={cn(\n 'cd-interference',\n intensity && `cd-interference--${intensity}`,\n intense && 'cd-interference--intense',\n glitch && 'cd-interference--glitch',\n className,\n )}\n {...rest}\n >\n <div className=\"cd-interference__noise\" />\n {glitch ? (\n <div className=\"cd-interference__content\" data-text={corruptText}>\n {children}\n </div>\n ) : (\n children\n )}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n media?: ReactNode;\n title?: ReactNode;\n description?: ReactNode;\n actions?: ReactNode;\n bordered?: boolean;\n interactive?: boolean;\n children?: ReactNode;\n}\n\n/** List row primitive — media, title, description, actions. */\nexport function Item({\n media,\n title,\n description,\n actions,\n bordered = false,\n interactive = false,\n className = '',\n children,\n ...rest\n}: ItemProps) {\n return (\n <div\n className={cn(\n 'cd-item',\n bordered && 'cd-item--bordered',\n interactive && 'cd-item--interactive',\n className,\n )}\n {...rest}\n >\n {media != null && <div className=\"cd-item__media\">{media}</div>}\n <div className=\"cd-item__content\">\n {title != null && <div className=\"cd-item__title\">{title}</div>}\n {description != null && <div className=\"cd-item__description\">{description}</div>}\n {children}\n </div>\n {actions != null && <div className=\"cd-item__actions\">{actions}</div>}\n </div>\n );\n}\n\nexport function ItemGroup({ className = '', children, ...rest }: HTMLAttributes<HTMLDivElement>) {\n return (\n <div className={cn('cd-item-group', className)} {...rest}>\n {children}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface KbdProps extends HTMLAttributes<HTMLElement> {\n /** `lg` renders the larger standalone key. */\n size?: 'md' | 'lg';\n /** Accent-highlighted key with a neon glow. */\n accent?: boolean;\n children?: ReactNode;\n}\n\n/** Keyboard key — boxed glyph with size and accent variants. */\nexport function Kbd({\n size = 'md',\n accent = false,\n className = '',\n children,\n ...rest\n}: KbdProps) {\n return (\n <kbd\n className={cn(\n 'cd-kbd',\n size === 'lg' && 'cd-kbd--lg',\n accent && 'cd-kbd--accent',\n className,\n )}\n {...rest}\n >\n {children}\n </kbd>\n );\n}\n\nexport interface KbdGroupProps extends HTMLAttributes<HTMLSpanElement> {\n /** Separator rendered between keys (default `+`). */\n separator?: ReactNode;\n /** `Kbd` keys to combine. */\n children?: ReactNode;\n}\n\n/** Key combination group — joins multiple `Kbd` keys with a separator (e.g. ⌘ + K). */\nexport function KbdGroup({\n separator = '+',\n className = '',\n children,\n ...rest\n}: KbdGroupProps) {\n const keys = Array.isArray(children) ? children : [children];\n return (\n <span className={cn('cd-kbd-group', className)} {...rest}>\n {keys.map((key, i) => (\n <span key={i} style={{ display: 'contents' }}>\n {i > 0 && <span className=\"cd-kbd-group__sep\">{separator}</span>}\n {key}\n </span>\n ))}\n </span>\n );\n}\n","import type { LabelHTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {\n /** Append a red required asterisk. */\n required?: boolean;\n children?: ReactNode;\n}\n\n/** Uppercase form label — optional required asterisk. */\nexport function Label({\n required = false,\n className = '',\n children,\n ...rest\n}: LabelProps) {\n return (\n <label\n className={cn(\n 'cd-form-label',\n required && 'cd-form-label--required',\n className,\n )}\n {...rest}\n >\n {children}\n </label>\n );\n}\n","import { useState } from 'react';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface MenubarAction {\n label: ReactNode;\n disabled?: boolean;\n onSelect?: () => void;\n}\n\nexport interface MenubarMenu {\n label: ReactNode;\n items: MenubarAction[];\n}\n\nexport interface MenubarProps extends HTMLAttributes<HTMLDivElement> {\n menus: MenubarMenu[];\n}\n\n/** Horizontal application menubar with dropdown sections. */\nexport function Menubar({ menus, className = '', ...rest }: MenubarProps) {\n const [open, setOpen] = useState<number | null>(null);\n\n return (\n <div className={cn('cd-menubar', className)} role=\"menubar\" {...rest}>\n {menus.map((menu, i) => (\n <div\n key={i}\n className={cn('cd-menubar__item', open === i && 'is-open')}\n onMouseLeave={() => setOpen(null)}\n >\n <button\n type=\"button\"\n className=\"cd-menubar__trigger\"\n onClick={() => setOpen(open === i ? null : i)}\n onMouseEnter={() => open != null && setOpen(i)}\n >\n {menu.label}\n </button>\n <div className=\"cd-menubar__menu\" role=\"menu\">\n {menu.items.map((item, j) => (\n <button\n key={j}\n type=\"button\"\n role=\"menuitem\"\n disabled={item.disabled}\n className=\"cd-menubar__action\"\n onClick={() => {\n item.onSelect?.();\n setOpen(null);\n }}\n >\n {item.label}\n </button>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n","import type { ReactNode, SelectHTMLAttributes } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface SelectProps\n extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {\n /** `sm` is the compact height; default is the standard height. */\n size?: 'sm' | 'md';\n /** Uppercase tracked label styling (viz-controls pattern). */\n label?: boolean;\n /** Error state — red border. */\n error?: boolean;\n /** `<option>` elements. */\n children?: ReactNode;\n}\n\n/** Native select with custom neon chevron — wraps the element for the arrow. */\nexport function Select({\n size = 'md',\n label = false,\n error = false,\n className = '',\n children,\n ...rest\n}: SelectProps) {\n return (\n <div className=\"cd-select-wrap\">\n <select\n className={cn(\n 'cd-select',\n size === 'sm' && 'cd-select--sm',\n label && 'cd-select--label',\n error && 'cd-select--error',\n className,\n )}\n {...rest}\n >\n {children}\n </select>\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { Select } from './Select';\n\nexport type NativeSelectProps = ComponentProps<typeof Select>;\n\n/** Alias for {@link Select} — familiar naming for teams used to a \"NativeSelect\" component. */\nexport function NativeSelect(props: NativeSelectProps) {\n return <Select {...props} />;\n}\n","import type { AnchorHTMLAttributes, HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface NavigationMenuLink {\n label: ReactNode;\n href?: string;\n active?: boolean;\n onClick?: () => void;\n}\n\nexport interface NavigationMenuProps extends HTMLAttributes<HTMLElement> {\n items: NavigationMenuLink[];\n}\n\n/** Horizontal navigation link row. */\nexport function NavigationMenu({ items, className = '', ...rest }: NavigationMenuProps) {\n return (\n <nav className={cn('cd-nav-menu', className)} {...rest}>\n {items.map((item, i) => {\n const cls = cn('cd-nav-menu__link', item.active && 'is-active');\n if (item.href) {\n return (\n <a key={i} href={item.href} className={cls} onClick={item.onClick}>\n {item.label}\n </a>\n );\n }\n return (\n <button key={i} type=\"button\" className={cls} onClick={item.onClick}>\n {item.label}\n </button>\n );\n })}\n </nav>\n );\n}\n\nexport type NavigationMenuItemProps = AnchorHTMLAttributes<HTMLAnchorElement>;\n","import type { HTMLAttributes } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'> {\n /** Current page (1-based). */\n page: number;\n /** Total number of pages. */\n pageCount: number;\n /** Fired with the target page when a control is activated. */\n onPageChange?: (page: number) => void;\n /** How many sibling pages to show on each side of the current page. */\n siblingCount?: number;\n /** Size variant. */\n size?: 'default' | 'sm' | 'lg';\n /** Collapse gaps so items share borders. */\n compact?: boolean;\n /** Show \"Page X of Y\" info text after the controls. */\n showInfo?: boolean;\n /** Prev button label. */\n prevLabel?: React.ReactNode;\n /** Next button label. */\n nextLabel?: React.ReactNode;\n}\n\n/** Build the windowed list of page numbers with `'…'` gaps. */\nfunction buildPages(page: number, pageCount: number, siblingCount: number): Array<number | '…'> {\n const total = pageCount;\n // pages always shown: first, last, current ± siblingCount\n const left = Math.max(2, page - siblingCount);\n const right = Math.min(total - 1, page + siblingCount);\n const pages: Array<number | '…'> = [1];\n if (left > 2) pages.push('…');\n for (let p = left; p <= right; p++) pages.push(p);\n if (right < total - 1) pages.push('…');\n if (total > 1) pages.push(total);\n return pages;\n}\n\n/** Page navigation — windowed page list with prev/next, ellipsis and optional info. */\nexport function Pagination({\n page,\n pageCount,\n onPageChange,\n siblingCount = 1,\n size = 'default',\n compact = false,\n showInfo = false,\n prevLabel = '‹ Prev',\n nextLabel = 'Next ›',\n className = '',\n ...rest\n}: PaginationProps) {\n const go = (p: number) => {\n if (p < 1 || p > pageCount || p === page) return;\n onPageChange?.(p);\n };\n\n return (\n <nav\n className={cn(\n 'cd-pagination',\n size !== 'default' && `cd-pagination--${size}`,\n compact && 'cd-pagination--compact',\n className,\n )}\n aria-label=\"Pagination\"\n {...rest}\n >\n <button\n type=\"button\"\n className=\"cd-pagination__prev cd-pagination__item\"\n disabled={page <= 1}\n aria-disabled={page <= 1 || undefined}\n onClick={() => go(page - 1)}\n >\n {prevLabel}\n </button>\n {buildPages(page, pageCount, siblingCount).map((p, i) =>\n p === '…' ? (\n <span key={`e${i}`} className=\"cd-pagination__ellipsis\">\n ···\n </span>\n ) : (\n <button\n key={p}\n type=\"button\"\n className={cn('cd-pagination__item', p === page && 'is-active')}\n aria-current={p === page ? 'page' : undefined}\n onClick={() => go(p)}\n >\n {p}\n </button>\n ),\n )}\n <button\n type=\"button\"\n className=\"cd-pagination__next cd-pagination__item\"\n disabled={page >= pageCount}\n aria-disabled={page >= pageCount || undefined}\n onClick={() => go(page + 1)}\n >\n {nextLabel}\n </button>\n {showInfo && (\n <span className=\"cd-pagination__info\">\n Page {page} of {pageCount}\n </span>\n )}\n </nav>\n );\n}\n","import { useState } from 'react';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface PopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Trigger node. */\n trigger: ReactNode;\n /** Uncontrolled open. */\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Content placement. @default 'bottom' */\n side?: 'top' | 'bottom' | 'bottom-end' | 'right';\n title?: ReactNode;\n description?: ReactNode;\n children?: ReactNode;\n}\n\n/** Click-triggered floating panel. */\nexport function Popover({\n trigger,\n defaultOpen = false,\n open,\n onOpenChange,\n side = 'bottom',\n title,\n description,\n className = '',\n children,\n ...rest\n}: PopoverProps) {\n const [internal, setInternal] = useState(defaultOpen);\n const isOpen = open ?? internal;\n\n const setOpen = (next: boolean) => {\n if (open == null) setInternal(next);\n onOpenChange?.(next);\n };\n\n const sideClass =\n side === 'top'\n ? 'cd-popover__content--top'\n : side === 'right'\n ? 'cd-popover__content--right'\n : side === 'bottom-end'\n ? 'cd-popover__content--bottom-end'\n : 'cd-popover__content--bottom';\n\n return (\n <div className={cn('cd-popover', isOpen && 'is-open', className)} {...rest}>\n <button type=\"button\" onClick={() => setOpen(!isOpen)} aria-expanded={isOpen}>\n {trigger}\n </button>\n <div className={cn('cd-popover__content', sideClass)} role=\"dialog\">\n {title != null && <div className=\"cd-popover__title\">{title}</div>}\n {description != null && <p className=\"cd-popover__description\">{description}</p>}\n {children}\n </div>\n </div>\n );\n}\n","import type { HTMLAttributes } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ProgressProps extends HTMLAttributes<HTMLDivElement> {\n /** Fill percentage (0–100). Ignored when `indeterminate`. */\n value?: number;\n /** Color variant. Default uses the theme accent. */\n variant?: 'default' | 'danger' | 'success' | 'warning';\n /** Taller 8px bar. */\n thick?: boolean;\n /** Scanning/indeterminate animation (no fixed value). */\n indeterminate?: boolean;\n}\n\n/** Progress bar — accent fill driven by `value`%, with color, thick, and indeterminate variants. */\nexport function Progress({\n value = 0,\n variant = 'default',\n thick = false,\n indeterminate = false,\n className = '',\n ...rest\n}: ProgressProps) {\n return (\n <div\n className={cn(\n 'cd-progress',\n variant !== 'default' && `cd-progress--${variant}`,\n thick && 'cd-progress--thick',\n indeterminate && 'cd-progress--indeterminate',\n className,\n )}\n role=\"progressbar\"\n aria-valuenow={indeterminate ? undefined : value}\n aria-valuemin={0}\n aria-valuemax={100}\n {...rest}\n >\n <div\n className=\"cd-progress__bar\"\n style={indeterminate ? undefined : { width: `${value}%` }}\n />\n </div>\n );\n}\n","import type { InputHTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface RadioProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {\n /** Text shown beside the dot. When set, wraps the input in a `cd-control` label. */\n label?: ReactNode;\n /** Smaller helper line below the label. */\n description?: ReactNode;\n}\n\n/** Cyber radio — neon filled dot; renders inside a `cd-control` label when labelled. */\nexport function Radio({ label, description, className = '', ...rest }: RadioProps) {\n const input = (\n <input type=\"radio\" className={cn('cd-radio', !label && className)} {...rest} />\n );\n\n if (label == null && description == null) return input;\n\n return (\n <label className={cn('cd-control', className)}>\n <input type=\"radio\" className=\"cd-radio\" {...rest} />\n <span className=\"cd-control__label\">\n {label}\n {description != null && <span className=\"cd-control__desc\">{description}</span>}\n </span>\n </label>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\nimport { Radio } from './Radio';\n\nexport interface RadioGroupItem {\n value: string;\n label: ReactNode;\n description?: ReactNode;\n disabled?: boolean;\n}\n\nexport interface RadioGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Shared `name` for the radio inputs. */\n name: string;\n items: RadioGroupItem[];\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n /** Stack vertically (default) or horizontally. */\n orientation?: 'vertical' | 'horizontal';\n}\n\n/** Group of labelled radio options with shared name. */\nexport function RadioGroup({\n name,\n items,\n value,\n defaultValue,\n onValueChange,\n orientation = 'vertical',\n className = '',\n ...rest\n}: RadioGroupProps) {\n return (\n <div\n className={cn(className)}\n role=\"radiogroup\"\n style={{\n display: 'flex',\n flexDirection: orientation === 'horizontal' ? 'row' : 'column',\n gap: orientation === 'horizontal' ? 16 : 8,\n }}\n {...rest}\n >\n {items.map((item) => (\n <Radio\n key={item.value}\n name={name}\n value={item.value}\n label={item.label}\n description={item.description}\n disabled={item.disabled}\n defaultChecked={defaultValue === item.value}\n checked={value != null ? value === item.value : undefined}\n onChange={() => onValueChange?.(item.value)}\n />\n ))}\n </div>\n );\n}\n","import { useCallback, useRef, useState } from 'react';\nimport type { HTMLAttributes, ReactNode, MouseEvent as ReactMouseEvent } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ResizableProps extends HTMLAttributes<HTMLDivElement> {\n /** First panel content. */\n first: ReactNode;\n /** Second panel content. */\n second: ReactNode;\n /** Horizontal (side-by-side) or vertical (stacked). @default 'horizontal' */\n orientation?: 'horizontal' | 'vertical';\n /** Initial first-panel size as percent 0–100. @default 50 */\n defaultSize?: number;\n minSize?: number;\n maxSize?: number;\n}\n\n/** Two-panel resizable split view. */\nexport function Resizable({\n first,\n second,\n orientation = 'horizontal',\n defaultSize = 50,\n minSize = 15,\n maxSize = 85,\n className = '',\n ...rest\n}: ResizableProps) {\n const [size, setSize] = useState(defaultSize);\n const rootRef = useRef<HTMLDivElement>(null);\n const dragging = useRef(false);\n\n const onMove = useCallback(\n (clientX: number, clientY: number) => {\n const el = rootRef.current;\n if (!el || !dragging.current) return;\n const rect = el.getBoundingClientRect();\n const pct =\n orientation === 'horizontal'\n ? ((clientX - rect.left) / rect.width) * 100\n : ((clientY - rect.top) / rect.height) * 100;\n setSize(Math.min(maxSize, Math.max(minSize, pct)));\n },\n [orientation, minSize, maxSize],\n );\n\n const onMouseDown = (e: ReactMouseEvent) => {\n e.preventDefault();\n dragging.current = true;\n const move = (ev: MouseEvent) => onMove(ev.clientX, ev.clientY);\n const up = () => {\n dragging.current = false;\n window.removeEventListener('mousemove', move);\n window.removeEventListener('mouseup', up);\n };\n window.addEventListener('mousemove', move);\n window.addEventListener('mouseup', up);\n };\n\n const firstStyle =\n orientation === 'horizontal'\n ? { width: `${size}%`, flex: 'none' as const }\n : { height: `${size}%`, flex: 'none' as const };\n\n return (\n <div\n ref={rootRef}\n className={cn(\n 'cd-resizable',\n orientation === 'vertical' && 'cd-resizable--vertical',\n className,\n )}\n {...rest}\n >\n <div className=\"cd-resizable__panel\" style={firstStyle}>\n {first}\n </div>\n <div\n className=\"cd-resizable__handle\"\n role=\"separator\"\n aria-orientation={orientation}\n onMouseDown={onMouseDown}\n />\n <div className=\"cd-resizable__panel\" style={{ flex: 1 }}>\n {second}\n </div>\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ScannerProps extends HTMLAttributes<HTMLDivElement> {\n /** Sweep top-to-bottom instead of left-to-right. */\n vertical?: boolean;\n /** Fainter return-sweep look. */\n ping?: boolean;\n /** Content scanned by the sweep line. */\n children?: ReactNode;\n}\n\n/** Animated scan/sweep-line overlay — wraps content with a glowing lidar/radar sweep. */\nexport function Scanner({\n vertical = false,\n ping = false,\n className = '',\n children,\n ...rest\n}: ScannerProps) {\n return (\n <div\n className={cn(\n 'cd-scanner',\n vertical && 'cd-scanner--vertical',\n ping && 'cd-scanner--ping',\n className,\n )}\n {...rest}\n >\n <div className=\"cd-scanner__line\" />\n {children}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ScrollAreaProps extends HTMLAttributes<HTMLDivElement> {\n /** Thin neon scrollbar styling. @default true */\n thin?: boolean;\n children?: ReactNode;\n}\n\n/** Scrollable region with optional thin cyber scrollbar. */\nexport function ScrollArea({\n thin = true,\n className = '',\n children,\n ...rest\n}: ScrollAreaProps) {\n return (\n <div className={cn('cd-scroll-area', thin && 'cd-scroll-area--thin', className)} {...rest}>\n {children}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface SectionHeaderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Section title (uppercase tracking). */\n title: ReactNode;\n /** Leading caret glyph. @default '▸' */\n caret?: ReactNode;\n /** Right-aligned actions (chips, buttons, counts). */\n actions?: ReactNode;\n children?: ReactNode;\n}\n\n/**\n * Panel section title row — dashboard-app pattern (`▸ INTEL FEED` / `▸ METRICS`).\n * Lighter than {@link PanelHeader}; use inside sidebars and column panels.\n */\nexport function SectionHeader({\n title,\n caret = '▸',\n actions,\n className = '',\n children,\n ...rest\n}: SectionHeaderProps) {\n return (\n <div className={cn('cd-section-header', className)} {...rest}>\n {caret != null && <span className=\"cd-section-header__caret\">{caret}</span>}\n <h2 className=\"cd-section-header__title\">{title}</h2>\n {children}\n {actions != null && <div className=\"cd-section-header__actions\">{actions}</div>}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface SeparatorProps extends HTMLAttributes<HTMLDivElement> {\n /** Orientation. `vertical` draws a vertical divider. */\n orientation?: 'horizontal' | 'vertical';\n /** Neon gradient line instead of a plain rule. */\n neon?: boolean;\n /** Optional inline label (e.g. \"OR\"); centers it between the rules. */\n children?: ReactNode;\n}\n\n/** Divider rule — horizontal/vertical, optional neon gradient and centered label. */\nexport function Separator({\n orientation = 'horizontal',\n neon = false,\n className = '',\n children,\n ...rest\n}: SeparatorProps) {\n const hasLabel = children != null;\n return (\n <div\n className={cn(\n 'cd-separator',\n orientation === 'vertical' && 'cd-separator--vertical',\n neon && 'cd-separator--neon',\n hasLabel && 'cd-separator--label',\n !hasLabel && orientation === 'horizontal' && 'cd-separator--plain',\n className,\n )}\n role=\"separator\"\n {...rest}\n >\n {children}\n </div>\n );\n}\n","import { useState } from 'react';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\nimport { Button } from './Button';\n\nexport interface SidebarLink {\n label: ReactNode;\n icon?: ReactNode;\n href?: string;\n active?: boolean;\n onClick?: () => void;\n}\n\nexport interface SidebarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n title?: ReactNode;\n links: SidebarLink[];\n /** Main content beside the sidebar. */\n children?: ReactNode;\n defaultCollapsed?: boolean;\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n}\n\n/** App shell with collapsible sidebar navigation. */\nexport function Sidebar({\n title = 'Nav',\n links,\n children,\n defaultCollapsed = false,\n collapsed,\n onCollapsedChange,\n className = '',\n ...rest\n}: SidebarProps) {\n const [internal, setInternal] = useState(defaultCollapsed);\n const isCollapsed = collapsed ?? internal;\n\n const toggle = () => {\n const next = !isCollapsed;\n if (collapsed == null) setInternal(next);\n onCollapsedChange?.(next);\n };\n\n return (\n <div className={cn('cd-sidebar-layout', className)} {...rest}>\n <aside className={cn('cd-sidebar', isCollapsed && 'cd-sidebar--collapsed')}>\n <div className=\"cd-sidebar__header\">\n <span className=\"cd-sidebar__title\">{title}</span>\n <Button type=\"button\" size=\"sm\" icon onClick={toggle} aria-label=\"Toggle sidebar\">\n {isCollapsed ? '›' : '‹'}\n </Button>\n </div>\n <nav className=\"cd-sidebar__nav\">\n {links.map((link, i) => {\n const cls = cn('cd-sidebar__link', link.active && 'is-active');\n const body = (\n <>\n {link.icon != null && <span className=\"cd-sidebar__link-icon\">{link.icon}</span>}\n <span className=\"cd-sidebar__link-label\">{link.label}</span>\n </>\n );\n if (link.href) {\n return (\n <a key={i} href={link.href} className={cls} onClick={link.onClick}>\n {body}\n </a>\n );\n }\n return (\n <button key={i} type=\"button\" className={cls} onClick={link.onClick}>\n {body}\n </button>\n );\n })}\n </nav>\n </aside>\n <main className=\"cd-sidebar__main\">{children}</main>\n </div>\n );\n}\n","import type { HTMLAttributes } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n /** Pre-sized shape. `block`/`card` render the compound containers; the rest are line/avatar/button placeholders. */\n shape?: 'plain' | 'text' | 'heading' | 'avatar' | 'btn' | 'block' | 'card';\n /** Fractional width helper (full / 3/4 / 1/2 / 1/3). Ignored for `block`/`card`. */\n width?: 'full' | '3/4' | '1/2' | '1/3';\n}\n\n/** Shimmering loading placeholder — text/heading/avatar/btn shapes plus block & card containers. */\nexport function Skeleton({\n shape = 'plain',\n width,\n className = '',\n children,\n ...rest\n}: SkeletonProps) {\n if (shape === 'card' || shape === 'block') {\n return (\n <div className={cn(`cd-skeleton-${shape}`, className)} {...rest}>\n {children}\n </div>\n );\n }\n return (\n <div\n className={cn(\n 'cd-skeleton',\n shape !== 'plain' && `cd-skeleton--${shape}`,\n width && `cd-skeleton--w-${width}`,\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\n/** Inline row inside a `cd-skeleton-block` (e.g. avatar + text lines). */\nexport function SkeletonRow({ className = '', children, ...rest }: HTMLAttributes<HTMLDivElement>) {\n return (\n <div className={cn('cd-skeleton-block__row', className)} {...rest}>\n {children}\n </div>\n );\n}\n","import type { InputHTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface SliderProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {\n /** When provided, renders the value label beside the track inside a `cd-slider-wrap`. */\n value?: InputHTMLAttributes<HTMLInputElement>['value'];\n /** Node shown in the trailing `cd-slider-value` label. When set, wraps in `cd-slider-wrap`. */\n valueLabel?: ReactNode;\n}\n\n/** Range slider — neon track with 3D thumb; optional trailing value label. */\nexport function Slider({ valueLabel, className = '', ...rest }: SliderProps) {\n const input = (\n <input type=\"range\" className={cn('cd-slider', !valueLabel && className)} {...rest} />\n );\n\n if (valueLabel == null) return input;\n\n return (\n <div className={cn('cd-slider-wrap', className)}>\n <input type=\"range\" className=\"cd-slider\" {...rest} />\n <span className=\"cd-slider-value\">{valueLabel}</span>\n </div>\n );\n}\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type KeyboardEvent as ReactKeyboardEvent,\n} from 'react';\nimport { cn } from '../lib/cn';\n\n/** 2D matrix of cell raw values (display may evaluate formulas). */\nexport type SpreadsheetData = string[][];\n\nexport interface CellCoord {\n row: number;\n col: number;\n}\n\nexport interface SpreadsheetProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {\n /** Controlled cell matrix. When omitted, component is uncontrolled. */\n data?: SpreadsheetData;\n /** Initial matrix for uncontrolled mode. */\n defaultData?: SpreadsheetData;\n /** Fired with the full matrix after any edit. */\n onChange?: (data: SpreadsheetData) => void;\n /** Fired when a single cell commits. */\n onCellChange?: (row: number, col: number, value: string, data: SpreadsheetData) => void;\n /** Number of rows when no data provided. @default 12 */\n rows?: number;\n /** Number of columns when no data provided. @default 8 */\n cols?: number;\n /** Column width in px. @default 96 */\n columnWidth?: number;\n /** Max viewport height. @default 420 */\n maxHeight?: number | string;\n /** Compact row density. */\n compact?: boolean;\n /** Disable editing (selection/nav still work). */\n readOnly?: boolean;\n /** Evaluate `=` formulas for display. @default true */\n formulas?: boolean;\n /** Show address + formula bar. @default true */\n showFormulaBar?: boolean;\n /** Show status strip. @default true */\n showStatus?: boolean;\n /** Optional column labels (defaults A, B, C…). */\n columnLabels?: string[];\n /** Optional row labels (defaults 1-based numbers). */\n rowLabels?: string[];\n}\n\n// ── helpers ──────────────────────────────────────────────────────────────────\n\nfunction colToLetter(index: number): string {\n let n = index;\n let s = '';\n do {\n s = String.fromCharCode(65 + (n % 26)) + s;\n n = Math.floor(n / 26) - 1;\n } while (n >= 0);\n return s;\n}\n\nfunction parseCellRef(ref: string): CellCoord | null {\n const m = ref.trim().toUpperCase().match(/^([A-Z]+)(\\d+)$/);\n if (!m) return null;\n const letters = m[1];\n const row = parseInt(m[2], 10) - 1;\n let col = 0;\n for (let i = 0; i < letters.length; i++) {\n col = col * 26 + (letters.charCodeAt(i) - 64);\n }\n col -= 1;\n if (row < 0 || col < 0) return null;\n return { row, col };\n}\n\nfunction cellAddress(row: number, col: number): string {\n return `${colToLetter(col)}${row + 1}`;\n}\n\nfunction createMatrix(rows: number, cols: number, fill = ''): SpreadsheetData {\n return Array.from({ length: rows }, () => Array.from({ length: cols }, () => fill));\n}\n\nfunction cloneMatrix(data: SpreadsheetData): SpreadsheetData {\n return data.map((row) => [...row]);\n}\n\nfunction ensureSize(data: SpreadsheetData, rows: number, cols: number): SpreadsheetData {\n const next = data.map((row) => {\n const r = [...row];\n while (r.length < cols) r.push('');\n return r.slice(0, cols);\n });\n while (next.length < rows) next.push(Array.from({ length: cols }, () => ''));\n return next.slice(0, rows);\n}\n\nfunction isNumericDisplay(value: string): boolean {\n if (value === '' || value.startsWith('=')) return false;\n return !Number.isNaN(Number(value)) && value.trim() !== '';\n}\n\n/** Evaluate a single formula against raw matrix. Supports refs, ranges, SUM/AVG/MIN/MAX/COUNT, + - * /. */\nfunction evaluateFormula(raw: string, data: SpreadsheetData, stack: Set<string> = new Set()): string {\n const expr = raw.slice(1).trim();\n if (!expr) return '';\n\n const getCell = (row: number, col: number): number | string => {\n if (row < 0 || col < 0 || row >= data.length || col >= (data[0]?.length ?? 0)) return 0;\n const v = data[row][col] ?? '';\n if (v.startsWith('=')) {\n const addr = cellAddress(row, col);\n if (stack.has(addr)) return '#CYCLE!';\n const next = new Set(stack);\n next.add(addr);\n const out = evaluateFormula(v, data, next);\n if (out.startsWith('#')) return out;\n const n = Number(out);\n return Number.isNaN(n) ? out : n;\n }\n if (v === '') return 0;\n const n = Number(v);\n return Number.isNaN(n) ? v : n;\n };\n\n const rangeValues = (a: string, b: string): number[] => {\n const start = parseCellRef(a);\n const end = parseCellRef(b);\n if (!start || !end) return [];\n const r0 = Math.min(start.row, end.row);\n const r1 = Math.max(start.row, end.row);\n const c0 = Math.min(start.col, end.col);\n const c1 = Math.max(start.col, end.col);\n const vals: number[] = [];\n for (let r = r0; r <= r1; r++) {\n for (let c = c0; c <= c1; c++) {\n const v = getCell(r, c);\n if (typeof v === 'number') vals.push(v);\n else if (typeof v === 'string' && !v.startsWith('#')) {\n const n = Number(v);\n if (!Number.isNaN(n)) vals.push(n);\n }\n }\n }\n return vals;\n };\n\n // Function calls: SUM(A1:B2), AVG(...), MIN, MAX, COUNT\n const fnMatch = expr.match(/^(SUM|AVG|AVERAGE|MIN|MAX|COUNT)\\(([^)]+)\\)$/i);\n if (fnMatch) {\n const fn = fnMatch[1].toUpperCase();\n const arg = fnMatch[2].trim();\n let vals: number[] = [];\n if (arg.includes(':')) {\n const [a, b] = arg.split(':');\n vals = rangeValues(a, b);\n } else {\n const parts = arg.split(',').map((p) => p.trim());\n for (const p of parts) {\n const ref = parseCellRef(p);\n if (ref) {\n const v = getCell(ref.row, ref.col);\n if (typeof v === 'number') vals.push(v);\n } else {\n const n = Number(p);\n if (!Number.isNaN(n)) vals.push(n);\n }\n }\n }\n if (fn === 'COUNT') return String(vals.length);\n if (vals.length === 0) return '0';\n if (fn === 'SUM') return String(vals.reduce((a, b) => a + b, 0));\n if (fn === 'AVG' || fn === 'AVERAGE')\n return String(vals.reduce((a, b) => a + b, 0) / vals.length);\n if (fn === 'MIN') return String(Math.min(...vals));\n if (fn === 'MAX') return String(Math.max(...vals));\n }\n\n // Replace cell refs with values, then eval arithmetic safely\n try {\n let replaced = expr.replace(/[A-Z]+\\d+/gi, (ref) => {\n const coord = parseCellRef(ref);\n if (!coord) return '0';\n const v = getCell(coord.row, coord.col);\n if (typeof v === 'string' && v.startsWith('#')) throw new Error(v);\n if (typeof v === 'number') return String(v);\n const n = Number(v);\n if (Number.isNaN(n)) throw new Error('#VALUE!');\n return String(n);\n });\n // Allow only digits, ops, parens, dots, spaces\n if (!/^[\\d+\\-*/().\\s]+$/.test(replaced)) return '#NAME?';\n // eslint-disable-next-line no-new-func\n const result = Function(`\"use strict\"; return (${replaced});`)() as number;\n if (typeof result !== 'number' || !Number.isFinite(result)) return '#NUM!';\n // Trim floating noise\n return String(Math.round(result * 1e10) / 1e10);\n } catch (e) {\n if (e instanceof Error && e.message.startsWith('#')) return e.message;\n return '#ERROR!';\n }\n}\n\nfunction displayValue(raw: string, data: SpreadsheetData, formulas: boolean): string {\n if (!formulas || !raw.startsWith('=')) return raw;\n return evaluateFormula(raw, data);\n}\n\nfunction inRange(cell: CellCoord, a: CellCoord, b: CellCoord): boolean {\n const r0 = Math.min(a.row, b.row);\n const r1 = Math.max(a.row, b.row);\n const c0 = Math.min(a.col, b.col);\n const c1 = Math.max(a.col, b.col);\n return cell.row >= r0 && cell.row <= r1 && cell.col >= c0 && cell.col <= c1;\n}\n\n// ── component ────────────────────────────────────────────────────────────────\n\n/**\n * Editable cyber spreadsheet grid.\n *\n * Features: cell selection, shift-range select, inline edit, formula bar,\n * keyboard nav (arrows/tab/enter), basic formulas (`=A1+B1`, `=SUM(A1:A3)`).\n */\nexport function Spreadsheet({\n data: controlledData,\n defaultData,\n onChange,\n onCellChange,\n rows: rowsProp,\n cols: colsProp,\n columnWidth = 96,\n maxHeight = 420,\n compact = false,\n readOnly = false,\n formulas = true,\n showFormulaBar = true,\n showStatus = true,\n columnLabels,\n rowLabels,\n className = '',\n style,\n ...rest\n}: SpreadsheetProps) {\n const rows = rowsProp ?? controlledData?.length ?? defaultData?.length ?? 12;\n const cols =\n colsProp ?? controlledData?.[0]?.length ?? defaultData?.[0]?.length ?? 8;\n\n const [internal, setInternal] = useState<SpreadsheetData>(() =>\n ensureSize(defaultData ?? createMatrix(rows, cols), rows, cols),\n );\n\n const matrix = useMemo(() => {\n const source = controlledData ?? internal;\n return ensureSize(source, rows, cols);\n }, [controlledData, internal, rows, cols]);\n\n const [active, setActive] = useState<CellCoord>({ row: 0, col: 0 });\n const [anchor, setAnchor] = useState<CellCoord>({ row: 0, col: 0 });\n const [editing, setEditing] = useState(false);\n const [draft, setDraft] = useState('');\n const [editOrigin, setEditOrigin] = useState<'type' | 'edit'>('edit');\n\n const rootRef = useRef<HTMLDivElement>(null);\n const cellInputRef = useRef<HTMLInputElement>(null);\n const fxInputRef = useRef<HTMLInputElement>(null);\n\n const setMatrix = useCallback(\n (next: SpreadsheetData, cell?: { row: number; col: number; value: string }) => {\n if (controlledData == null) setInternal(next);\n onChange?.(next);\n if (cell) onCellChange?.(cell.row, cell.col, cell.value, next);\n },\n [controlledData, onChange, onCellChange],\n );\n\n const commit = useCallback(\n (row: number, col: number, value: string) => {\n const next = cloneMatrix(matrix);\n next[row][col] = value;\n setMatrix(next, { row, col, value });\n },\n [matrix, setMatrix],\n );\n\n const beginEdit = useCallback(\n (mode: 'type' | 'edit', seed?: string) => {\n if (readOnly) return;\n const raw = matrix[active.row]?.[active.col] ?? '';\n setDraft(seed !== undefined ? seed : raw);\n setEditOrigin(mode);\n setEditing(true);\n },\n [readOnly, matrix, active],\n );\n\n const endEdit = useCallback(\n (save: boolean, move?: CellCoord) => {\n if (editing && save) {\n commit(active.row, active.col, draft);\n }\n setEditing(false);\n setDraft('');\n if (move) {\n setActive(move);\n setAnchor(move);\n }\n // restore focus to grid for keyboard nav\n requestAnimationFrame(() => rootRef.current?.focus());\n },\n [editing, draft, active, commit],\n );\n\n useEffect(() => {\n if (editing) {\n const el = cellInputRef.current;\n if (el) {\n el.focus();\n if (editOrigin === 'edit') el.select();\n else {\n const len = el.value.length;\n el.setSelectionRange(len, len);\n }\n }\n }\n }, [editing, editOrigin]);\n\n const activeRaw = matrix[active.row]?.[active.col] ?? '';\n const activeDisplay = displayValue(activeRaw, matrix, formulas);\n const selectionCount = useMemo(() => {\n const r0 = Math.min(active.row, anchor.row);\n const r1 = Math.max(active.row, anchor.row);\n const c0 = Math.min(active.col, anchor.col);\n const c1 = Math.max(active.col, anchor.col);\n return (r1 - r0 + 1) * (c1 - c0 + 1);\n }, [active, anchor]);\n\n const moveActive = (row: number, col: number, extend: boolean) => {\n const next = {\n row: Math.max(0, Math.min(rows - 1, row)),\n col: Math.max(0, Math.min(cols - 1, col)),\n };\n setActive(next);\n if (!extend) setAnchor(next);\n };\n\n const onGridKeyDown = (e: ReactKeyboardEvent<HTMLDivElement>) => {\n if (editing) return;\n\n const { key, shiftKey, metaKey, ctrlKey } = e;\n const mod = metaKey || ctrlKey;\n\n // Start edit\n if (key === 'F2' || key === 'Enter') {\n e.preventDefault();\n if (key === 'Enter' && !shiftKey) {\n beginEdit('edit');\n } else if (key === 'F2') {\n beginEdit('edit');\n } else if (key === 'Enter' && shiftKey) {\n moveActive(active.row - 1, active.col, false);\n }\n return;\n }\n\n if (key === 'Delete' || key === 'Backspace') {\n if (readOnly) return;\n e.preventDefault();\n if (key === 'Backspace') {\n beginEdit('type', '');\n } else {\n // clear selection range\n const next = cloneMatrix(matrix);\n for (let r = 0; r < rows; r++) {\n for (let c = 0; c < cols; c++) {\n if (inRange({ row: r, col: c }, active, anchor)) next[r][c] = '';\n }\n }\n setMatrix(next);\n }\n return;\n }\n\n if (mod && key.toLowerCase() === 'c') {\n e.preventDefault();\n const text = activeRaw;\n void navigator.clipboard?.writeText(text);\n return;\n }\n\n if (mod && key.toLowerCase() === 'v' && !readOnly) {\n e.preventDefault();\n void navigator.clipboard?.readText().then((text) => {\n // Support TSV paste of a block\n const lines = text.replace(/\\r/g, '').split('\\n').filter((l, i, arr) => !(i === arr.length - 1 && l === ''));\n const next = cloneMatrix(matrix);\n lines.forEach((line, ri) => {\n const cells = line.split('\\t');\n cells.forEach((val, ci) => {\n const r = active.row + ri;\n const c = active.col + ci;\n if (r < rows && c < cols) next[r][c] = val;\n });\n });\n setMatrix(next);\n });\n return;\n }\n\n // Navigation\n const nav: Record<string, [number, number]> = {\n ArrowUp: [-1, 0],\n ArrowDown: [1, 0],\n ArrowLeft: [0, -1],\n ArrowRight: [0, 1],\n Tab: [0, shiftKey ? -1 : 1],\n Home: [0, -active.col],\n End: [0, cols - 1 - active.col],\n };\n\n if (key in nav) {\n e.preventDefault();\n const [dr, dc] = nav[key];\n if (key === 'Tab') {\n moveActive(active.row + dr, active.col + dc, false);\n } else {\n moveActive(active.row + dr, active.col + dc, shiftKey);\n }\n return;\n }\n\n // Type to overwrite\n if (\n !readOnly &&\n key.length === 1 &&\n !mod &&\n !e.altKey\n ) {\n e.preventDefault();\n beginEdit('type', key);\n }\n };\n\n const onEditorKeyDown = (e: ReactKeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n endEdit(false);\n return;\n }\n if (e.key === 'Enter') {\n e.preventDefault();\n endEdit(true, {\n row: Math.min(rows - 1, active.row + (e.shiftKey ? -1 : 1)),\n col: active.col,\n });\n return;\n }\n if (e.key === 'Tab') {\n e.preventDefault();\n endEdit(true, {\n row: active.row,\n col: Math.max(0, Math.min(cols - 1, active.col + (e.shiftKey ? -1 : 1))),\n });\n return;\n }\n };\n\n const styleVars = {\n ...style,\n ['--cd-sheetgrid-col-width' as string]: `${columnWidth}px`,\n ['--cd-sheetgrid-max-height' as string]:\n typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight,\n } as CSSProperties;\n\n return (\n <div\n ref={rootRef}\n className={cn(\n 'cd-sheetgrid',\n compact && 'cd-sheetgrid--compact',\n readOnly && 'cd-sheetgrid--readonly',\n className,\n )}\n style={styleVars}\n tabIndex={0}\n role=\"grid\"\n aria-rowcount={rows}\n aria-colcount={cols}\n aria-label=\"Spreadsheet\"\n onKeyDown={onGridKeyDown}\n {...rest}\n >\n {showFormulaBar && (\n <div className=\"cd-sheetgrid__bar\">\n <div className=\"cd-sheetgrid__addr\">{cellAddress(active.row, active.col)}</div>\n <div className=\"cd-sheetgrid__fx-label\">ƒx</div>\n <input\n ref={fxInputRef}\n className=\"cd-sheetgrid__fx-input\"\n value={editing ? draft : activeRaw}\n disabled={readOnly}\n spellCheck={false}\n aria-label=\"Formula bar\"\n onFocus={() => {\n if (!readOnly && !editing) beginEdit('edit');\n }}\n onChange={(e) => {\n if (!editing) beginEdit('type', e.target.value);\n else setDraft(e.target.value);\n }}\n onKeyDown={onEditorKeyDown}\n onBlur={() => {\n // blur handled carefully — only commit if still editing and focus left grid\n if (editing) endEdit(true);\n }}\n />\n </div>\n )}\n\n <div className=\"cd-sheetgrid__viewport\">\n <table className=\"cd-sheetgrid__table\">\n <thead>\n <tr>\n <th className=\"cd-sheetgrid__corner\" scope=\"col\" />\n {Array.from({ length: cols }, (_, c) => (\n <th\n key={c}\n className={cn(\n 'cd-sheetgrid__col-head',\n (active.col === c ||\n inRange({ row: active.row, col: c }, active, anchor)) &&\n 'is-active',\n )}\n scope=\"col\"\n >\n {columnLabels?.[c] ?? colToLetter(c)}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: rows }, (_, r) => (\n <tr key={r}>\n <th\n className={cn(\n 'cd-sheetgrid__row-head',\n (active.row === r ||\n inRange({ row: r, col: active.col }, active, anchor)) &&\n 'is-active',\n )}\n scope=\"row\"\n >\n {rowLabels?.[r] ?? r + 1}\n </th>\n {Array.from({ length: cols }, (_, c) => {\n const raw = matrix[r]?.[c] ?? '';\n const shown = displayValue(raw, matrix, formulas);\n const isActive = active.row === r && active.col === c;\n const isSelected = inRange({ row: r, col: c }, active, anchor);\n const isEditing = isActive && editing;\n const isErr = formulas && raw.startsWith('=') && shown.startsWith('#');\n const isNum =\n (!raw.startsWith('=') && isNumericDisplay(raw)) ||\n (raw.startsWith('=') && isNumericDisplay(shown));\n\n return (\n <td\n key={c}\n role=\"gridcell\"\n aria-selected={isSelected}\n aria-colindex={c + 1}\n className={cn(\n 'cd-sheetgrid__cell',\n isActive && 'is-active',\n isSelected && 'is-selected',\n isEditing && 'is-editing',\n isNum && 'cd-sheetgrid__cell--number',\n raw.startsWith('=') && 'cd-sheetgrid__cell--formula',\n isErr && 'cd-sheetgrid__cell--error',\n )}\n onMouseDown={(e) => {\n // prevent grid blur stealing edit\n if (editing && isActive) return;\n if (editing) endEdit(true);\n e.preventDefault();\n rootRef.current?.focus();\n const next = { row: r, col: c };\n setActive(next);\n if (e.shiftKey) {\n /* keep anchor */\n } else {\n setAnchor(next);\n }\n }}\n onDoubleClick={() => {\n if (!readOnly) beginEdit('edit');\n }}\n >\n {isEditing ? (\n <input\n ref={cellInputRef}\n className={cn(\n 'cd-sheetgrid__cell-input',\n isNum && 'cd-sheetgrid__cell-input--number',\n )}\n value={draft}\n spellCheck={false}\n aria-label={`Edit ${cellAddress(r, c)}`}\n onChange={(e) => setDraft(e.target.value)}\n onKeyDown={onEditorKeyDown}\n onBlur={() => {\n // delay to allow formula bar / other cell mousedown\n requestAnimationFrame(() => {\n if (document.activeElement === fxInputRef.current) return;\n if (document.activeElement === cellInputRef.current) return;\n if (editing) endEdit(true);\n });\n }}\n />\n ) : (\n <span className=\"cd-sheetgrid__cell-display\">{shown}</span>\n )}\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n\n {showStatus && (\n <div className=\"cd-sheetgrid__status\">\n <span>\n cell <strong>{cellAddress(active.row, active.col)}</strong>\n </span>\n {selectionCount > 1 && (\n <span>\n sel <strong>{selectionCount}</strong>\n </span>\n )}\n <span>\n {readOnly ? 'read-only' : editing ? 'editing' : 'ready'}\n </span>\n {formulas && activeRaw.startsWith('=') && (\n <span>\n → <strong>{activeDisplay}</strong>\n </span>\n )}\n <span style={{ marginLeft: 'auto' }}>\n {rows}×{cols}\n </span>\n </div>\n )}\n </div>\n );\n}\n\n/** Build an empty matrix helper for consumers. */\nexport function createSpreadsheetData(rows: number, cols: number, fill = ''): SpreadsheetData {\n return createMatrix(rows, cols, fill);\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface StatProps extends HTMLAttributes<HTMLDivElement> {\n /** Uppercase caption above the value. */\n label: ReactNode;\n /** The headline metric. */\n value: ReactNode;\n /** Secondary change/context line below the value. */\n delta?: ReactNode;\n /** Tints the delta green (`up`) or red (`down`). */\n trend?: 'up' | 'down';\n /** Color treatment for the value. Default is the neon-green metric look. */\n variant?: 'default' | 'accent' | 'red' | 'yellow' | 'blue' | 'magenta';\n}\n\n/** Metric block — uppercase label, neon value and optional trend delta. */\nexport function Stat({\n label,\n value,\n delta,\n trend,\n variant = 'default',\n className = '',\n ...rest\n}: StatProps) {\n return (\n <div\n className={cn('cd-stat', variant !== 'default' && `cd-stat--${variant}`, className)}\n {...rest}\n >\n <span className=\"cd-stat__label\">{label}</span>\n <span className=\"cd-stat__value\">{value}</span>\n {delta != null && (\n <span className={cn('cd-stat__delta', trend && `cd-stat__delta--${trend}`)}>{delta}</span>\n )}\n </div>\n );\n}\n\n/** Grid container that separates `Stat` cards with 1px border lines. */\nexport function StatGrid({ className = '', children, ...rest }: HTMLAttributes<HTMLDivElement>) {\n return (\n <div className={cn('cd-stats', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nStat.Grid = StatGrid;\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface StatusBarProps extends HTMLAttributes<HTMLDivElement> {\n /** Primary status message (gets `> ` prompt prefix). */\n message?: ReactNode;\n /** Show blinking terminal cursor after the message. @default true */\n cursor?: boolean;\n /** Leading status widget (e.g. StatusDot). */\n leading?: ReactNode;\n /** Trailing meta (filename, clock, etc.). */\n meta?: ReactNode;\n children?: ReactNode;\n}\n\n/**\n * App footer status strip — AI-shell status bar with terminal prompt/cursor.\n */\nexport function StatusBar({\n message,\n cursor = true,\n leading,\n meta,\n className = '',\n children,\n ...rest\n}: StatusBarProps) {\n return (\n <div className={cn('cd-status-bar', className)} {...rest}>\n {leading}\n {message != null && (\n <span className={cn('cd-status-bar__message', cursor && 'cd-status-bar__message--cursor')}>\n {message}\n </span>\n )}\n {children}\n {meta != null && <div className=\"cd-status-bar__meta\">{meta}</div>}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface StatusDotProps extends HTMLAttributes<HTMLSpanElement> {\n /** Visual state. @default 'live' */\n status?: 'live' | 'success' | 'warn' | 'danger' | 'paused' | 'idle';\n /** Optional label (e.g. SYS.ACTIVE / Live). */\n children?: ReactNode;\n /** Hide the text label, show only the orb. */\n orbOnly?: boolean;\n}\n\n/**\n * Live/system status indicator — dashboard-app `SYS.ACTIVE` pulse and\n * AI-shell Live/Paused dots.\n */\nexport function StatusDot({\n status = 'live',\n children,\n orbOnly = false,\n className = '',\n ...rest\n}: StatusDotProps) {\n const statusClass =\n status === 'idle'\n ? undefined\n : status === 'success'\n ? 'cd-status-dot--success'\n : `cd-status-dot--${status}`;\n\n return (\n <span className={cn('cd-status-dot', statusClass, className)} {...rest}>\n <span className=\"cd-status-dot__orb\" aria-hidden />\n {!orbOnly && children != null && <span>{children}</span>}\n </span>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport type StatusPillVariant =\n | 'default'\n | 'active'\n | 'developing'\n | 'resolved'\n | 'success'\n | 'critical'\n | 'muted';\n\nexport interface StatusPillProps extends HTMLAttributes<HTMLSpanElement> {\n variant?: StatusPillVariant;\n children?: ReactNode;\n}\n\n/**\n * Situation / severity pill — dashboard-app `DEVELOPING` / `ACTIVE` / `SEV 4 · CRITICAL`.\n */\nexport function StatusPill({\n variant = 'default',\n className = '',\n children,\n ...rest\n}: StatusPillProps) {\n return (\n <span\n className={cn(\n 'cd-status-pill',\n variant !== 'default' && `cd-status-pill--${variant}`,\n className,\n )}\n {...rest}\n >\n {children}\n </span>\n );\n}\n","import type { InputHTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface SwitchProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n /** `sm` is the compact track; default is the standard size. */\n size?: 'sm' | 'md';\n /** Text shown beside the toggle. */\n label?: ReactNode;\n}\n\n/** Toggle switch — visually-hidden checkbox driving a neon track + thumb. */\nexport function Switch({ size = 'md', label, className = '', ...rest }: SwitchProps) {\n return (\n <label className={cn('cd-switch', size === 'sm' && 'cd-switch--sm', className)}>\n <input type=\"checkbox\" className=\"cd-switch__input\" {...rest} />\n <span className=\"cd-switch__track\">\n <span className=\"cd-switch__thumb\" />\n </span>\n {label != null && <span className=\"cd-switch__label\">{label}</span>}\n </label>\n );\n}\n","import { useState } from 'react';\nimport type { ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface TabItem {\n /** Tab label (also the trigger text). */\n label: ReactNode;\n /** Panel content shown when this tab is active. */\n content?: ReactNode;\n /** Optional trailing badge node in the trigger (e.g. a count). */\n badge?: ReactNode;\n /** Disable selection of this tab. */\n disabled?: boolean;\n}\n\nexport interface TabsProps {\n /** The tabs to render, in order. */\n items: TabItem[];\n /** Layout style: underline (default), pills, or vertical. */\n variant?: 'underline' | 'pills' | 'vertical';\n /** Index of the initially-active tab (uncontrolled). */\n defaultActive?: number;\n /** Controlled active index. When set, `onTabChange` should update it. */\n active?: number;\n /** Fires with the new index when a tab is selected. */\n onTabChange?: (index: number) => void;\n /** Hide the panels region (trigger-only, e.g. a filter bar). */\n hidePanels?: boolean;\n className?: string;\n}\n\n/** Tabbed navigation — underline / pills / vertical, with optional badges and panels. */\nexport function Tabs({\n items,\n variant = 'underline',\n defaultActive = 0,\n active,\n onTabChange,\n hidePanels = false,\n className = '',\n}: TabsProps) {\n const [internal, setInternal] = useState(defaultActive);\n const current = active ?? internal;\n\n const select = (i: number) => {\n if (items[i]?.disabled) return;\n if (active == null) setInternal(i);\n onTabChange?.(i);\n };\n\n return (\n <div\n className={cn(\n 'cd-tabs',\n variant === 'pills' && 'cd-tabs--pills',\n variant === 'vertical' && 'cd-tabs--vertical',\n className,\n )}\n >\n <div className=\"cd-tabs__list\" role=\"tablist\">\n {items.map((item, i) => (\n <button\n key={i}\n type=\"button\"\n role=\"tab\"\n aria-selected={i === current}\n disabled={item.disabled}\n className={cn('cd-tabs__trigger', i === current && 'is-active')}\n onClick={() => select(i)}\n >\n {item.label}\n {item.badge != null && (\n <span className=\"cd-badge cd-badge--orange\" style={{ marginLeft: 4 }}>\n {item.badge}\n </span>\n )}\n </button>\n ))}\n </div>\n {!hidePanels && (\n <div className=\"cd-tabs__panels\">\n {items.map((item, i) => (\n <div\n key={i}\n role=\"tabpanel\"\n className={cn('cd-tabs__panel', i === current && 'is-active')}\n >\n {item.content}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n}\n","import type { HTMLAttributes, InputHTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\n/** Semantic line kinds — map to `cd-terminal__line--*` modifiers. */\nexport type TerminalLineType = 'system' | 'prompt' | 'command' | 'output' | 'error';\n\nexport interface TerminalLine {\n /** Line text content. */\n text: ReactNode;\n /** Line kind; omit for the default (plain) line. */\n type?: TerminalLineType;\n /** Prompt glyph shown before the text (for `prompt` lines, e.g. `root@net> `). */\n prompt?: ReactNode;\n}\n\nexport interface TerminalProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Header title text (theme-accent colored). Omit to hide the header. */\n title?: ReactNode;\n /** Show the min/max/close window control dots in the header. */\n controls?: boolean;\n /** The log lines to render in the body. */\n lines?: TerminalLine[];\n /** Tighter spacing / smaller type. */\n compact?: boolean;\n /** Extra CRT inner scanline overlay. */\n crt?: boolean;\n /** Render a bottom command input row. */\n input?: boolean;\n /** Prompt glyph shown before the input field. */\n inputPrompt?: ReactNode;\n /** Props forwarded to the input field element. */\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n /** Extra body content rendered after `lines`. */\n children?: ReactNode;\n}\n\n/** Cyberpunk terminal/console window — header, scrollable log body and optional command input. */\nexport function Terminal({\n title,\n controls = false,\n lines = [],\n compact = false,\n crt = false,\n input = false,\n inputPrompt = 'root@net> ',\n inputProps,\n className = '',\n children,\n ...rest\n}: TerminalProps) {\n return (\n <div\n className={cn(\n 'cd-terminal',\n compact && 'cd-terminal--compact',\n crt && 'cd-terminal--crt',\n className,\n )}\n {...rest}\n >\n {(title != null || controls) && (\n <div className=\"cd-terminal__header\">\n {title != null && <span className=\"cd-terminal__title\">{title}</span>}\n {controls && (\n <div className=\"cd-terminal__controls\">\n <span className=\"cd-terminal__dot cd-terminal__dot--min\" title=\"Minimize\" />\n <span className=\"cd-terminal__dot cd-terminal__dot--max\" title=\"Maximize\" />\n <span className=\"cd-terminal__dot cd-terminal__dot--close\" title=\"Close\" />\n </div>\n )}\n </div>\n )}\n <div className=\"cd-terminal__body cd-scrollbar\">\n {lines.map((line, i) => (\n <div\n key={i}\n className={cn('cd-terminal__line', line.type && `cd-terminal__line--${line.type}`)}\n >\n {line.prompt != null && <span className=\"cd-terminal__prompt\">{line.prompt}</span>}\n {line.text}\n </div>\n ))}\n {children}\n </div>\n {input && (\n <div className=\"cd-terminal__input\">\n {inputPrompt != null && <span className=\"cd-terminal__prompt\">{inputPrompt}</span>}\n <input className=\"cd-terminal__field\" placeholder=\"type command...\" {...inputProps} />\n </div>\n )}\n </div>\n );\n}\n","import type { TextareaHTMLAttributes } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface TextareaProps\n extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n /** Error state — red border. */\n error?: boolean;\n}\n\n/** Cyber multi-line text area — vertical resize, neon focus ring, error state. */\nexport function Textarea({ error = false, className = '', ...rest }: TextareaProps) {\n return (\n <textarea\n className={cn('cd-textarea', error && 'cd-textarea--error', className)}\n {...rest}\n />\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface TickerProps extends HTMLAttributes<HTMLDivElement> {\n /** The feed items to scroll, in order. */\n items: ReactNode[];\n /** Scroll speed; `fast` ≈ 9s, `slow` ≈ 32s (default ≈ 18s). */\n speed?: 'fast' | 'slow';\n /** Shorthand for `speed=\"fast\"`. */\n fast?: boolean;\n /** Scroll vertically instead of horizontally. */\n vertical?: boolean;\n}\n\n/** Auto-scrolling data ticker / feed — pauses on hover, respects reduced motion. */\nexport function Ticker({\n items,\n speed,\n fast = false,\n vertical = false,\n className = '',\n ...rest\n}: TickerProps) {\n const resolvedSpeed = fast ? 'fast' : speed;\n return (\n <div\n className={cn(\n 'cd-ticker',\n resolvedSpeed && `cd-ticker--${resolvedSpeed}`,\n vertical && 'cd-ticker--vertical',\n className,\n )}\n {...rest}\n >\n <div className=\"cd-ticker__inner\">\n {items.map((item, i) => (\n <span key={i} className=\"cd-ticker__item\">\n {item}\n </span>\n ))}\n </div>\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Semantic color. `accent` follows the active theme accent. */\n variant?: 'info' | 'success' | 'warning' | 'error' | 'accent';\n /** Leading glyph (e.g. ℹ ✓ ⚠ ✕ ⬡). */\n icon?: ReactNode;\n /** Bold uppercase heading line. */\n title?: ReactNode;\n /** When provided, renders a dismiss ✕ that calls this on click. */\n onDismiss?: () => void;\n /** Message body. */\n children?: ReactNode;\n}\n\n/** Single notification toast — semantic color, icon, title/body and optional dismiss. */\nexport function Toast({\n variant = 'info',\n icon,\n title,\n onDismiss,\n className = '',\n children,\n ...rest\n}: ToastProps) {\n return (\n <div className={cn('cd-toast', `cd-toast--${variant}`, className)} {...rest}>\n {icon != null && <span className=\"cd-toast__icon\">{icon}</span>}\n <div className=\"cd-toast__content\">\n {title != null && <div className=\"cd-toast__title\">{title}</div>}\n {children != null && <div className=\"cd-toast__body\">{children}</div>}\n </div>\n {onDismiss && (\n <button className=\"cd-toast__dismiss\" onClick={onDismiss} aria-label=\"Dismiss\">\n ✕\n </button>\n )}\n </div>\n );\n}\n","import {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n type ReactNode,\n} from 'react';\nimport { cn } from '../lib/cn';\nimport { Toast, type ToastProps } from './Toast';\n\nexport type ToastInput = Omit<ToastProps, 'onDismiss'> & { id?: string; duration?: number };\n\ninterface ToastRecord extends ToastInput {\n id: string;\n}\n\ninterface ToasterContextValue {\n toast: (input: ToastInput) => string;\n dismiss: (id: string) => void;\n}\n\nconst ToasterContext = createContext<ToasterContextValue | null>(null);\n\nexport function useToast() {\n const ctx = useContext(ToasterContext);\n if (!ctx) throw new Error('useToast must be used within <ToasterProvider>');\n return ctx;\n}\n\nexport interface ToasterProviderProps {\n children?: ReactNode;\n /** Viewport position. @default 'bottom-right' */\n position?:\n | 'top-right'\n | 'top-left'\n | 'bottom-right'\n | 'bottom-left'\n | 'top-center'\n | 'bottom-center';\n /** Default auto-dismiss ms. @default 4000 */\n duration?: number;\n}\n\n/** Sonner-style toast provider + viewport. */\nexport function ToasterProvider({\n children,\n position = 'bottom-right',\n duration = 4000,\n}: ToasterProviderProps) {\n const [items, setItems] = useState<ToastRecord[]>([]);\n\n const dismiss = useCallback((id: string) => {\n setItems((list) => list.filter((t) => t.id !== id));\n }, []);\n\n const toast = useCallback(\n (input: ToastInput) => {\n const id = input.id ?? `t-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`;\n const rec: ToastRecord = { ...input, id };\n setItems((list) => [...list, rec]);\n const ms = input.duration ?? duration;\n if (ms > 0) window.setTimeout(() => dismiss(id), ms);\n return id;\n },\n [duration, dismiss],\n );\n\n const value = useMemo(() => ({ toast, dismiss }), [toast, dismiss]);\n\n return (\n <ToasterContext.Provider value={value}>\n {children}\n <div className={cn('cd-toaster', `cd-toaster--${position}`)} aria-live=\"polite\">\n {items.map(({ id, duration: _d, ...props }) => (\n <Toast key={id} {...props} onDismiss={() => dismiss(id)} />\n ))}\n </div>\n </ToasterContext.Provider>\n );\n}\n\n/** Standalone viewport alias for Sonner naming. */\nexport function Toaster(props: Omit<ToasterProviderProps, 'children'>) {\n return <ToasterProvider {...props} />;\n}\n","import { useState } from 'react';\nimport type { ButtonHTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ToggleProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {\n /** Controlled pressed state. */\n pressed?: boolean;\n /** Uncontrolled initial state. */\n defaultPressed?: boolean;\n onPressedChange?: (pressed: boolean) => void;\n size?: 'sm' | 'md';\n variant?: 'default' | 'outline';\n children?: ReactNode;\n}\n\n/** Two-state toggle button (pressed / unpressed). */\nexport function Toggle({\n pressed,\n defaultPressed = false,\n onPressedChange,\n size = 'md',\n variant = 'default',\n className = '',\n children,\n ...rest\n}: ToggleProps) {\n const [internal, setInternal] = useState(defaultPressed);\n const isOn = pressed ?? internal;\n\n const { onClick, ...buttonRest } = rest;\n\n return (\n <button\n type=\"button\"\n className={cn(\n 'cd-toggle',\n size === 'sm' && 'cd-toggle--sm',\n variant === 'outline' && 'cd-toggle--outline',\n isOn && 'is-on',\n className,\n )}\n data-state={isOn ? 'on' : 'off'}\n aria-pressed={isOn}\n onClick={(e) => {\n onClick?.(e);\n const next = !isOn;\n if (pressed == null) setInternal(next);\n onPressedChange?.(next);\n }}\n {...buttonRest}\n >\n {children}\n </button>\n );\n}\n","import { useState } from 'react';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface ToggleGroupItem {\n value: string;\n label: ReactNode;\n disabled?: boolean;\n}\n\nexport interface ToggleGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n items: ToggleGroupItem[];\n /** Controlled value (single) or values (multiple). */\n value?: string | string[];\n defaultValue?: string | string[];\n /** Allow multiple selection. */\n multiple?: boolean;\n onValueChange?: (value: string | string[]) => void;\n size?: 'sm' | 'md';\n}\n\n/** Group of toggle buttons — single or multi select. */\nexport function ToggleGroup({\n items,\n value,\n defaultValue,\n multiple = false,\n onValueChange,\n size = 'md',\n className = '',\n ...rest\n}: ToggleGroupProps) {\n const [internal, setInternal] = useState<string | string[]>(\n defaultValue ?? (multiple ? [] : ''),\n );\n const current = value ?? internal;\n\n const isOn = (v: string) =>\n multiple ? (current as string[]).includes(v) : current === v;\n\n const select = (v: string) => {\n let next: string | string[];\n if (multiple) {\n const arr = [...(current as string[])];\n const i = arr.indexOf(v);\n if (i >= 0) arr.splice(i, 1);\n else arr.push(v);\n next = arr;\n } else {\n next = current === v ? '' : v;\n }\n if (value == null) setInternal(next);\n onValueChange?.(next);\n };\n\n return (\n <div className={cn('cd-toggle-group', className)} role=\"group\" {...rest}>\n {items.map((item) => (\n <button\n key={item.value}\n type=\"button\"\n disabled={item.disabled}\n className={cn('cd-toggle', size === 'sm' && 'cd-toggle--sm', isOn(item.value) && 'is-on')}\n data-state={isOn(item.value) ? 'on' : 'off'}\n aria-pressed={isOn(item.value)}\n onClick={() => select(item.value)}\n >\n {item.label}\n </button>\n ))}\n </div>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\n\nexport interface TooltipProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'content'> {\n /** Tooltip text shown on hover (rendered via the `data-tip` attribute). */\n tip: string;\n /** Show the tooltip below the trigger instead of above. */\n below?: boolean;\n /** The trigger content the tooltip wraps. */\n children?: ReactNode;\n}\n\n/** CSS-only tooltip — wraps a trigger and reveals `tip` text on hover. */\nexport function Tooltip({\n tip,\n below = false,\n className = '',\n children,\n ...rest\n}: TooltipProps) {\n return (\n <span\n className={cn('cd-tooltip', below && 'cd-tooltip--below', className)}\n data-tip={tip}\n {...rest}\n >\n {children}\n </span>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../lib/cn';\nimport { Button } from './Button';\n\nexport interface TransportProps extends HTMLAttributes<HTMLDivElement> {\n playing?: boolean;\n onPlay?: () => void;\n onStop?: () => void;\n playLabel?: ReactNode;\n stopLabel?: ReactNode;\n disabled?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Play/Stop transport cluster — AI-shell header transport group.\n */\nexport function Transport({\n playing = false,\n onPlay,\n onStop,\n playLabel = '▶ Play',\n stopLabel = '■ Stop',\n disabled = false,\n className = '',\n children,\n ...rest\n}: TransportProps) {\n return (\n <div className={cn('cd-transport', className)} {...rest}>\n <div className=\"cd-transport__group\">\n <Button\n type=\"button\"\n variant=\"primary\"\n disabled={disabled || playing}\n onClick={onPlay}\n >\n {playLabel}\n </Button>\n <Button\n type=\"button\"\n variant=\"danger\"\n disabled={disabled || !playing}\n onClick={onStop}\n >\n {stopLabel}\n </Button>\n </div>\n {children}\n </div>\n );\n}\n","import type {\n HTMLAttributes,\n AnchorHTMLAttributes,\n BlockquoteHTMLAttributes,\n OlHTMLAttributes,\n ReactNode,\n} from 'react';\nimport { cn } from '../lib/cn';\n\nexport function H1({ className = '', ...rest }: HTMLAttributes<HTMLHeadingElement>) {\n return <h1 className={cn('cd-h1', className)} {...rest} />;\n}\nexport function H2({ className = '', ...rest }: HTMLAttributes<HTMLHeadingElement>) {\n return <h2 className={cn('cd-h2', className)} {...rest} />;\n}\nexport function H3({ className = '', ...rest }: HTMLAttributes<HTMLHeadingElement>) {\n return <h3 className={cn('cd-h3', className)} {...rest} />;\n}\nexport function H4({ className = '', ...rest }: HTMLAttributes<HTMLHeadingElement>) {\n return <h4 className={cn('cd-h4', className)} {...rest} />;\n}\nexport function P({ className = '', ...rest }: HTMLAttributes<HTMLParagraphElement>) {\n return <p className={cn('cd-p', className)} {...rest} />;\n}\nexport function Lead({ className = '', ...rest }: HTMLAttributes<HTMLParagraphElement>) {\n return <p className={cn('cd-lead', className)} {...rest} />;\n}\nexport function Muted({ className = '', ...rest }: HTMLAttributes<HTMLParagraphElement>) {\n return <p className={cn('cd-muted', className)} {...rest} />;\n}\nexport function Small({ className = '', ...rest }: HTMLAttributes<HTMLElement>) {\n return <small className={cn('cd-small', className)} {...rest} />;\n}\nexport function InlineCode({ className = '', ...rest }: HTMLAttributes<HTMLElement>) {\n return <code className={cn('cd-code', className)} {...rest} />;\n}\nexport function Pre({ className = '', ...rest }: HTMLAttributes<HTMLPreElement>) {\n return <pre className={cn('cd-pre', className)} {...rest} />;\n}\nexport function Blockquote({ className = '', ...rest }: BlockquoteHTMLAttributes<HTMLQuoteElement>) {\n return <blockquote className={cn('cd-blockquote', className)} {...rest} />;\n}\nexport function List({ className = '', ...rest }: OlHTMLAttributes<HTMLUListElement>) {\n return <ul className={cn('cd-list', className)} {...rest} />;\n}\nexport function InlineLink({ className = '', ...rest }: AnchorHTMLAttributes<HTMLAnchorElement>) {\n return <a className={cn('cd-inline-link', className)} {...rest} />;\n}\n\nexport interface TypographyProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n}\n\n/** Optional wrapper applying base typography font. */\nexport function Typography({ className = '', children, ...rest }: TypographyProps) {\n return (\n <div className={cn('cd-typography', className)} {...rest}>\n {children}\n </div>\n );\n}\n"]}