@hanzo/ui 5.3.7 → 5.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d/button.js +1 -1
- package/dist/3d/button.mjs +1 -1
- package/dist/3d/card.js +1 -1
- package/dist/3d/card.mjs +1 -1
- package/dist/3d/carousel.js +1 -1
- package/dist/3d/carousel.mjs +1 -1
- package/dist/3d/grid.js +1 -1
- package/dist/3d/grid.mjs +1 -1
- package/dist/3d/index.js +1 -1
- package/dist/3d/index.mjs +1 -1
- package/dist/3d/marquee.js +1 -1
- package/dist/3d/marquee.mjs +1 -1
- package/dist/3d/pin.js +1 -1
- package/dist/3d/pin.mjs +1 -1
- package/dist/accordion.js +1 -1
- package/dist/accordion.mjs +1 -1
- package/dist/alert-dialog.js +1 -1
- package/dist/alert-dialog.mjs +1 -1
- package/dist/alert.js +1 -1
- package/dist/alert.mjs +1 -1
- package/dist/animation/animated-background.js +1 -1
- package/dist/animation/animated-background.mjs +1 -1
- package/dist/animation/animated-beam.js +1 -1
- package/dist/animation/animated-beam.mjs +1 -1
- package/dist/animation/animated-cursor.js +1 -1
- package/dist/animation/animated-cursor.mjs +1 -1
- package/dist/animation/animated-icon.js +2 -1
- package/dist/animation/animated-icon.mjs +2 -1
- package/dist/animation/animated-list.js +1 -1
- package/dist/animation/animated-list.mjs +1 -1
- package/dist/animation/animated-number.js +1 -1
- package/dist/animation/animated-number.mjs +1 -1
- package/dist/animation/animated-testimonials.js +1 -1
- package/dist/animation/animated-testimonials.mjs +1 -1
- package/dist/animation/animated-tooltip.js +1 -1
- package/dist/animation/animated-tooltip.mjs +1 -1
- package/dist/animation/apple-cards-carousel.js +1 -1
- package/dist/animation/apple-cards-carousel.mjs +1 -1
- package/dist/animation/apple-hello-effect.js +1 -1
- package/dist/animation/apple-hello-effect.mjs +1 -1
- package/dist/animation/index.js +2 -1
- package/dist/animation/index.mjs +2 -1
- package/dist/avatar.js +1 -1
- package/dist/avatar.mjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/badge.mjs +1 -1
- package/dist/blocks/index.js +2 -2
- package/dist/blocks/index.mjs +2 -2
- package/dist/breadcrumb.js +1 -1
- package/dist/breadcrumb.mjs +1 -1
- package/dist/calendar.js +1 -1
- package/dist/calendar.mjs +1 -1
- package/dist/carousel.js +1 -1
- package/dist/carousel.mjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.mjs +1 -1
- package/dist/code/block.js +2 -1
- package/dist/code/block.mjs +2 -1
- package/dist/code/compare.js +6 -1
- package/dist/code/compare.mjs +6 -1
- package/dist/code/diff.js +12 -1
- package/dist/code/diff.mjs +12 -1
- package/dist/code/editor.js +1 -1
- package/dist/code/editor.mjs +1 -1
- package/dist/code/explorer.js +1 -1
- package/dist/code/explorer.mjs +1 -1
- package/dist/code/index.js +62 -1
- package/dist/code/index.mjs +62 -1
- package/dist/code/preview.js +42 -1
- package/dist/code/preview.mjs +42 -1
- package/dist/code/snippet.js +2 -1
- package/dist/code/snippet.mjs +2 -1
- package/dist/code/tabs.js +1 -1
- package/dist/code/tabs.mjs +1 -1
- package/dist/code/terminal.js +3 -1
- package/dist/code/terminal.mjs +3 -1
- package/dist/collapsible.js +1 -1
- package/dist/collapsible.mjs +1 -1
- package/dist/command.js +1 -1
- package/dist/command.mjs +1 -1
- package/dist/context-menu.js +1 -1
- package/dist/context-menu.mjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/dialog.mjs +1 -1
- package/dist/dock/basic.js +1 -1
- package/dist/dock/basic.mjs +1 -1
- package/dist/dock/index.js +1 -1
- package/dist/dock/index.mjs +1 -1
- package/dist/dock/limelight-nav.js +1 -1
- package/dist/dock/limelight-nav.mjs +1 -1
- package/dist/dock/macos.js +1 -1
- package/dist/dock/macos.mjs +1 -1
- package/dist/dock/menu.js +1 -1
- package/dist/dock/menu.mjs +1 -1
- package/dist/dock/message.js +1 -1
- package/dist/dock/message.mjs +1 -1
- package/dist/drawer.js +1 -1
- package/dist/drawer.mjs +1 -1
- package/dist/dropdown-menu.js +1 -1
- package/dist/dropdown-menu.mjs +1 -1
- package/dist/finance/AdvancedChart.js +2 -1
- package/dist/finance/AdvancedChart.mjs +2 -1
- package/dist/finance/CompanyProfile.js +2 -1
- package/dist/finance/CompanyProfile.mjs +2 -1
- package/dist/finance/CryptoScreener.js +2 -1
- package/dist/finance/CryptoScreener.mjs +2 -1
- package/dist/finance/Financials.js +2 -1
- package/dist/finance/Financials.mjs +2 -1
- package/dist/finance/ForexScreener.js +2 -1
- package/dist/finance/ForexScreener.mjs +2 -1
- package/dist/finance/MarketOverview.js +2 -1
- package/dist/finance/MarketOverview.mjs +2 -1
- package/dist/finance/NewsTimeline.js +2 -1
- package/dist/finance/NewsTimeline.mjs +2 -1
- package/dist/finance/OrderEntry.js +1 -1
- package/dist/finance/OrderEntry.mjs +1 -1
- package/dist/finance/OrdersHistory.js +1 -1
- package/dist/finance/OrdersHistory.mjs +1 -1
- package/dist/finance/PositionsList.js +1 -1
- package/dist/finance/PositionsList.mjs +1 -1
- package/dist/finance/StockScreener.js +2 -1
- package/dist/finance/StockScreener.mjs +2 -1
- package/dist/finance/SymbolInfo.js +2 -1
- package/dist/finance/SymbolInfo.mjs +2 -1
- package/dist/finance/TechnicalAnalysis.js +2 -1
- package/dist/finance/TechnicalAnalysis.mjs +2 -1
- package/dist/finance/TickerTape.js +2 -1
- package/dist/finance/TickerTape.mjs +2 -1
- package/dist/finance/TradingPanel.js +1 -1
- package/dist/finance/TradingPanel.mjs +1 -1
- package/dist/finance/index.js +2 -1
- package/dist/finance/index.mjs +2 -1
- package/dist/form/index.js +1 -1
- package/dist/form/index.mjs +1 -1
- package/dist/form.js +1 -1
- package/dist/form.mjs +1 -1
- package/dist/hover-card.js +1 -1
- package/dist/hover-card.mjs +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/input-otp.js +1 -1
- package/dist/input-otp.mjs +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/lib/utils.mjs +1 -1
- package/dist/navigation/index.js +1 -1
- package/dist/navigation/index.mjs +1 -1
- package/dist/navigation-menu.js +1 -1
- package/dist/navigation-menu.mjs +1 -1
- package/dist/pattern/grid-pattern.js +10 -1
- package/dist/pattern/grid-pattern.mjs +10 -1
- package/dist/pattern/index.js +10 -1
- package/dist/pattern/index.mjs +10 -1
- package/dist/popover.js +1 -1
- package/dist/popover.mjs +1 -1
- package/dist/primitives/index.js +1 -1
- package/dist/primitives/index.mjs +1 -1
- package/dist/primitives-export.js +1 -1
- package/dist/primitives-export.mjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/progress.mjs +1 -1
- package/dist/project/gantt.js +1 -1
- package/dist/project/gantt.mjs +1 -1
- package/dist/project/index.js +1 -1
- package/dist/project/index.mjs +1 -1
- package/dist/project/kanban.js +1 -1
- package/dist/project/kanban.mjs +1 -1
- package/dist/project/list.js +1 -1
- package/dist/project/list.mjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/radio-group.mjs +1 -1
- package/dist/resizable.js +1 -1
- package/dist/resizable.mjs +1 -1
- package/dist/scroll-area.js +1 -1
- package/dist/scroll-area.mjs +1 -1
- package/dist/select.js +1 -1
- package/dist/select.mjs +1 -1
- package/dist/separator.js +1 -1
- package/dist/separator.mjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/sheet.mjs +1 -1
- package/dist/skeleton.js +1 -1
- package/dist/skeleton.mjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/slider.mjs +1 -1
- package/dist/sonner.js +1 -1
- package/dist/sonner.mjs +1 -1
- package/dist/switch.js +1 -1
- package/dist/switch.mjs +1 -1
- package/dist/table.js +1 -1
- package/dist/table.mjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tabs.mjs +1 -1
- package/dist/tailwind/index.js +1 -1
- package/dist/tailwind/index.mjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/textarea.mjs +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/toggle-group.mjs +1 -1
- package/dist/toggle.js +1 -1
- package/dist/toggle.mjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/tooltip.mjs +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.mjs +1 -1
- package/dist/ui/announcement.js +1 -1
- package/dist/ui/announcement.mjs +1 -1
- package/dist/ui/avatar-group.js +1 -1
- package/dist/ui/avatar-group.mjs +1 -1
- package/dist/ui/banner.js +1 -1
- package/dist/ui/banner.mjs +1 -1
- package/dist/ui/cursor.js +1 -1
- package/dist/ui/cursor.mjs +1 -1
- package/dist/ui/index.js +1 -1
- package/dist/ui/index.mjs +1 -1
- package/dist/ui/marquee.js +1 -1
- package/dist/ui/marquee.mjs +1 -1
- package/dist/ui/pill.js +1 -1
- package/dist/ui/pill.mjs +1 -1
- package/dist/ui/spinner.js +1 -1
- package/dist/ui/spinner.mjs +1 -1
- package/dist/ui/tags.js +1 -1
- package/dist/ui/tags.mjs +1 -1
- package/dist/ui/ticker.js +1 -1
- package/dist/ui/ticker.mjs +1 -1
- package/dist/util/index.js +1 -1
- package/dist/util/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-2B7NONPA.mjs +0 -1
- package/dist/chunk-2G2TUOYL.mjs +0 -1
- package/dist/chunk-2NRIIJQX.mjs +0 -1
- package/dist/chunk-2QQUT6FO.js +0 -1
- package/dist/chunk-2WJA3HSQ.mjs +0 -1
- package/dist/chunk-37TVHMP2.mjs +0 -1
- package/dist/chunk-3COMMLYS.js +0 -1
- package/dist/chunk-3JXTWYX4.mjs +0 -1
- package/dist/chunk-3LHI3PX3.js +0 -1
- package/dist/chunk-3MGIZWAB.mjs +0 -1
- package/dist/chunk-3RI2CAUD.mjs +0 -1
- package/dist/chunk-3SCWILJG.mjs +0 -1
- package/dist/chunk-3YL43AE4.js +0 -1
- package/dist/chunk-4CJ44NSE.js +0 -1
- package/dist/chunk-4Q7ZSPY5.mjs +0 -1
- package/dist/chunk-4TW4U2UN.js +0 -1
- package/dist/chunk-4V3ZHFMN.js +0 -1
- package/dist/chunk-4YMLAU5Z.js +0 -1
- package/dist/chunk-543CBJCW.mjs +0 -1
- package/dist/chunk-5OFYCUOP.mjs +0 -1
- package/dist/chunk-5WJCKQNU.mjs +0 -2
- package/dist/chunk-5XGQGWZM.js +0 -1
- package/dist/chunk-63HNMH7C.js +0 -1
- package/dist/chunk-675QWDLU.mjs +0 -1
- package/dist/chunk-6JORQMRC.mjs +0 -1
- package/dist/chunk-6T7CYRG7.js +0 -1
- package/dist/chunk-6ZY3MBIT.js +0 -3
- package/dist/chunk-72TOQ4DM.mjs +0 -1
- package/dist/chunk-74JIFEFB.mjs +0 -1
- package/dist/chunk-7B5FD4EX.mjs +0 -1
- package/dist/chunk-7QB7ZQ7S.js +0 -1
- package/dist/chunk-7SGMZA6O.mjs +0 -1
- package/dist/chunk-7SP7DCJD.js +0 -2
- package/dist/chunk-7SZPHHBV.mjs +0 -1
- package/dist/chunk-A47N7TW2.mjs +0 -2
- package/dist/chunk-AABD5QO3.js +0 -1
- package/dist/chunk-AAEV2ONV.mjs +0 -1
- package/dist/chunk-AB5DY56M.mjs +0 -1
- package/dist/chunk-AKQGA7BP.mjs +0 -1
- package/dist/chunk-AKV7ZDJN.mjs +0 -1
- package/dist/chunk-AQFMZ53B.js +0 -1
- package/dist/chunk-AQYYHBXT.js +0 -1
- package/dist/chunk-ATNZNQV7.mjs +0 -2
- package/dist/chunk-AVI3IRMQ.mjs +0 -1
- package/dist/chunk-B36534P3.js +0 -1
- package/dist/chunk-B5SWQNYJ.mjs +0 -1
- package/dist/chunk-B5YYUUXW.mjs +0 -1
- package/dist/chunk-BALF4M3M.mjs +0 -1
- package/dist/chunk-BBTCLHXF.js +0 -2
- package/dist/chunk-BKKW66AM.mjs +0 -1
- package/dist/chunk-BKOJG4VJ.mjs +0 -2
- package/dist/chunk-BSO3JZ7S.js +0 -1
- package/dist/chunk-BTHDX6LM.js +0 -1
- package/dist/chunk-BX5NPSJL.js +0 -1
- package/dist/chunk-C64EW4QE.mjs +0 -1
- package/dist/chunk-C6DDKSBN.js +0 -2
- package/dist/chunk-CH2T5MI4.js +0 -1
- package/dist/chunk-CHQFVVZG.mjs +0 -2
- package/dist/chunk-CVLDBF72.js +0 -1
- package/dist/chunk-CWFGLK4T.mjs +0 -1
- package/dist/chunk-CY75DPD4.mjs +0 -1
- package/dist/chunk-D62ZOURF.js +0 -1
- package/dist/chunk-D6W5YYHP.js +0 -1
- package/dist/chunk-DAYNCC5Z.mjs +0 -3
- package/dist/chunk-DEQAYMUY.mjs +0 -1
- package/dist/chunk-DHN3REDJ.js +0 -1
- package/dist/chunk-DKL2FM7J.mjs +0 -1
- package/dist/chunk-DNHCQ446.js +0 -1
- package/dist/chunk-DRLJ6Z7Q.js +0 -1
- package/dist/chunk-DVA7HROB.js +0 -1
- package/dist/chunk-DX7WWVJP.mjs +0 -12
- package/dist/chunk-DYF5HRXR.mjs +0 -1
- package/dist/chunk-E45AM32Q.js +0 -1
- package/dist/chunk-EJA2AU5X.js +0 -1
- package/dist/chunk-ELR6GOUX.mjs +0 -1
- package/dist/chunk-ENDXD5HO.js +0 -1
- package/dist/chunk-ER3ALPBZ.js +0 -1
- package/dist/chunk-F3D72E4E.js +0 -1
- package/dist/chunk-F6AIQXTW.mjs +0 -1
- package/dist/chunk-FCHJPQ73.mjs +0 -1
- package/dist/chunk-FE2O6776.js +0 -1
- package/dist/chunk-FFCMERSP.js +0 -1
- package/dist/chunk-FLC52TR6.js +0 -1
- package/dist/chunk-FLZRGQ3O.mjs +0 -1
- package/dist/chunk-FOTLPQNB.js +0 -1
- package/dist/chunk-FZWBG7UV.mjs +0 -1
- package/dist/chunk-G2LRED4X.js +0 -1
- package/dist/chunk-G2O6JIRY.mjs +0 -1
- package/dist/chunk-G62CSYX2.js +0 -1
- package/dist/chunk-G7QRK2WL.mjs +0 -1
- package/dist/chunk-GCZQ2LS2.js +0 -10
- package/dist/chunk-GFWDGZO7.mjs +0 -1
- package/dist/chunk-GH56HZXN.mjs +0 -42
- package/dist/chunk-GIKQMGEY.mjs +0 -1
- package/dist/chunk-GJEV6LDG.mjs +0 -2
- package/dist/chunk-GK7TQN2Y.mjs +0 -2
- package/dist/chunk-GRGR3K4M.mjs +0 -1
- package/dist/chunk-GZCOKOS6.js +0 -2
- package/dist/chunk-H5T5EPQU.mjs +0 -1
- package/dist/chunk-H7ZFQ43F.mjs +0 -2
- package/dist/chunk-HAMILVTN.mjs +0 -1
- package/dist/chunk-HAYVC5RR.js +0 -1
- package/dist/chunk-HL4KRRJB.mjs +0 -1
- package/dist/chunk-HLJAWNJK.js +0 -1
- package/dist/chunk-ILMRC36I.js +0 -1
- package/dist/chunk-IQEZ2NU7.js +0 -2
- package/dist/chunk-ISSZRFPX.js +0 -2
- package/dist/chunk-JAVQTNQQ.js +0 -1
- package/dist/chunk-JB2D6UKV.js +0 -1
- package/dist/chunk-JFPLY6KM.js +0 -1
- package/dist/chunk-JOKSCCHB.js +0 -1
- package/dist/chunk-JOQWSZRJ.mjs +0 -1
- package/dist/chunk-JPGIJFW5.js +0 -1
- package/dist/chunk-JSGFZR4R.js +0 -2
- package/dist/chunk-JWBQUHSX.mjs +0 -1
- package/dist/chunk-JYLGS2OX.mjs +0 -1
- package/dist/chunk-K7YTUP2D.js +0 -1
- package/dist/chunk-KA5C2ZIG.js +0 -1
- package/dist/chunk-KDE3N3L6.mjs +0 -1
- package/dist/chunk-KOAG4CSB.js +0 -1
- package/dist/chunk-KX4C4YC2.js +0 -1
- package/dist/chunk-L3LBHAK5.js +0 -2
- package/dist/chunk-L4IEIO4B.js +0 -1
- package/dist/chunk-LADFCKQD.mjs +0 -1
- package/dist/chunk-LDQCX2XP.mjs +0 -1
- package/dist/chunk-LFWWUVJX.js +0 -1
- package/dist/chunk-LHKPSY4L.js +0 -1
- package/dist/chunk-LO46SH6E.mjs +0 -1
- package/dist/chunk-LPZWN5DR.js +0 -1
- package/dist/chunk-LSWZ5XAN.mjs +0 -1
- package/dist/chunk-LWQTRAJQ.js +0 -1
- package/dist/chunk-M3BGNQQL.js +0 -1
- package/dist/chunk-M6TWUBHE.mjs +0 -1
- package/dist/chunk-NCEQVAW6.js +0 -1
- package/dist/chunk-NCPDG735.js +0 -1
- package/dist/chunk-NGPIX3K3.mjs +0 -1
- package/dist/chunk-NH6GXQGY.js +0 -1
- package/dist/chunk-NIJRO4XT.mjs +0 -1
- package/dist/chunk-NJF3RXSG.js +0 -1
- package/dist/chunk-NO5HGITF.js +0 -42
- package/dist/chunk-NZNYBJNF.mjs +0 -2
- package/dist/chunk-O5PW6EK3.js +0 -2
- package/dist/chunk-O6FV6MCF.js +0 -1
- package/dist/chunk-OC34KEWQ.mjs +0 -1
- package/dist/chunk-OCDDRG5O.mjs +0 -6
- package/dist/chunk-OCV63ER7.mjs +0 -2
- package/dist/chunk-ODLBKJ43.mjs +0 -1
- package/dist/chunk-OFSGDRF7.js +0 -1
- package/dist/chunk-OTEETXQN.mjs +0 -1
- package/dist/chunk-OUIQYPE7.js +0 -2
- package/dist/chunk-OVM7NM4B.mjs +0 -1
- package/dist/chunk-PCWXM2CW.js +0 -1
- package/dist/chunk-PDWGHI5P.mjs +0 -1
- package/dist/chunk-PKKSIZZP.js +0 -12
- package/dist/chunk-PO4JYM6P.js +0 -1
- package/dist/chunk-PP6VTZRY.mjs +0 -1
- package/dist/chunk-PWKHIIIX.mjs +0 -2
- package/dist/chunk-PYX2CWVB.mjs +0 -1
- package/dist/chunk-Q2ITEICA.js +0 -1
- package/dist/chunk-Q3VHBQ3B.mjs +0 -1
- package/dist/chunk-QCWXF6PM.mjs +0 -2
- package/dist/chunk-QIS2X5VM.js +0 -2
- package/dist/chunk-QKJMVZ7Q.mjs +0 -1
- package/dist/chunk-QUZIAJAR.js +0 -1
- package/dist/chunk-QVDGUDZV.js +0 -2
- package/dist/chunk-RG6TMPXT.mjs +0 -0
- package/dist/chunk-RIQZF4MD.js +0 -1
- package/dist/chunk-RNN6AHKF.js +0 -1
- package/dist/chunk-ROROVLVL.mjs +0 -2
- package/dist/chunk-RPOB4E3W.js +0 -1
- package/dist/chunk-SSCZEDKZ.mjs +0 -1
- package/dist/chunk-SVCCHDR3.js +0 -1
- package/dist/chunk-SXMUVC4D.mjs +0 -1
- package/dist/chunk-TGAUPMBC.js +0 -1
- package/dist/chunk-TGL6VBFN.js +0 -1
- package/dist/chunk-TNP7EGQ2.js +0 -1
- package/dist/chunk-TNRO5CZD.mjs +0 -1
- package/dist/chunk-TVPXSBXH.js +0 -1
- package/dist/chunk-U7CUKU4W.mjs +0 -1
- package/dist/chunk-UHDVCJC6.js +0 -1
- package/dist/chunk-UMYLUB72.js +0 -1
- package/dist/chunk-UTENKTJZ.mjs +0 -2
- package/dist/chunk-V2ROY52O.mjs +0 -1
- package/dist/chunk-V6JJ3J5H.js +0 -6
- package/dist/chunk-VEZEUPWM.js +0 -2
- package/dist/chunk-VLNUXNN6.mjs +0 -1
- package/dist/chunk-W4VZMLH5.mjs +0 -1
- package/dist/chunk-WHGMPLBG.mjs +0 -1
- package/dist/chunk-WK5DTWFH.mjs +0 -1
- package/dist/chunk-WNHSNXIT.mjs +0 -1
- package/dist/chunk-X3Y7POKQ.js +0 -1
- package/dist/chunk-X7RQ2Z7V.mjs +0 -1
- package/dist/chunk-XEL222AH.js +0 -2
- package/dist/chunk-XFK7RTKE.js +0 -1
- package/dist/chunk-XQ5PD6OG.mjs +0 -1
- package/dist/chunk-XSJZFX23.mjs +0 -1
- package/dist/chunk-XUSV3KOD.js +0 -1
- package/dist/chunk-XXFPKDCE.js +0 -1
- package/dist/chunk-XYYYZCEM.js +0 -1
- package/dist/chunk-Y5IP4FKL.js +0 -1
- package/dist/chunk-Y6ZF7DGV.mjs +0 -1
- package/dist/chunk-YBL5BPLL.js +0 -1
- package/dist/chunk-YGT4URRE.mjs +0 -1
- package/dist/chunk-YZFRWYNS.js +0 -1
- package/dist/chunk-ZB7NJBX4.mjs +0 -1
- package/dist/chunk-ZBFT2QPL.mjs +0 -1
- package/dist/chunk-ZDOIGP2L.js +0 -1
- package/dist/chunk-ZHYR5K4F.mjs +0 -1
- package/dist/chunk-ZSLVLXBF.mjs +0 -10
- package/dist/chunk-ZZTEYKC5.js +0 -1
package/dist/code/compare.js
CHANGED
|
@@ -1 +1,6 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var o=require('react'),classVarianceAuthority=require('class-variance-authority'),lucideReact=require('lucide-react'),utils=require('@hanzo/ui/lib/utils'),badge=require('@hanzo/ui/badge'),button=require('@hanzo/ui/button'),diff=require('@hanzo/ui/code/diff'),snippet=require('@hanzo/ui/code/snippet'),dropdownMenu=require('@hanzo/ui/dropdown-menu'),scrollArea=require('@hanzo/ui/scroll-area'),tabs=require('@hanzo/ui/tabs'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var o__namespace=/*#__PURE__*/_interopNamespace(o);var te=Object.defineProperty;var m=(v,x)=>te(v,"name",{value:x,configurable:true});var ge=classVarianceAuthority.cva("relative flex flex-col overflow-hidden rounded-lg border bg-background",{variants:{layout:{horizontal:"flex-col",vertical:"flex-row"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{layout:"horizontal",size:"default"}}),pe=o__namespace.forwardRef(({className:v,layout:x,size:V,files:i,defaultView:j="side-by-side",showLineNumbers:u=true,showCopyButton:E=true,allowMerge:A=false,conflictMarkers:I=[],onMergeConflict:S,onFileSelect:P,height:$="600px",syncScroll:M=true,...U},q)=>{let[c,G]=o__namespace.useState(j),[d,b]=o__namespace.useState(()=>i.length>=2?[i[0].id,i[1].id]:i.length>0?[i[0].id]:[]),[h,K]=o__namespace.useState({resolved:{},conflicts:I}),[O,T]=o__namespace.useState(false),g=o__namespace.useRef({}),N=o__namespace.useCallback((e,n)=>{M&&Object.entries(g.current).forEach(([a,s])=>{a!==e&&s&&(s.scrollTop=n);});},[M]),W=o__namespace.useCallback(async()=>{let e=d.map(n=>{let a=i.find(s=>s.id===n);return a?`=== ${a.filename} ===
|
|
2
|
+
${a.content}`:""}).join(`
|
|
3
|
+
|
|
4
|
+
`);try{await navigator.clipboard.writeText(e),T(!0),setTimeout(()=>T(!1),2e3);}catch(n){console.error("Failed to copy comparison:",n);}},[i,d]),B=o__namespace.useCallback((e,n)=>{K(a=>({...a,resolved:{...a.resolved,[e]:n}})),S?.(n);},[S]),J=o__namespace.useCallback((e,n)=>{let a=e.content.split(`
|
|
5
|
+
`),s=n.content.split(`
|
|
6
|
+
`),l=0,k=0,R=0,ee=Math.max(a.length,s.length);for(let p=0;p<ee;p++){let D=a[p],L=s[p];D===void 0?l++:L===void 0?k++:D!==L&&R++;}return {added:l,removed:k,modified:R}},[]),Q=m(()=>jsxRuntime.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i.map((e,n)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs(button.Button,{variant:d.includes(e.id)?"default":"outline",size:"sm",onClick:()=>{b(c==="three-way"?a=>a.includes(e.id)?a.filter(s=>s!==e.id):a.length<3?[...a,e.id]:[a[1],a[2],e.id]:a=>a.includes(e.id)?a.filter(s=>s!==e.id):a.length<2?[...a,e.id]:[a[1],e.id]),P?.(e.id);},className:"gap-2",children:[e.label||e.filename,e.version&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:e.version})]}),n<i.length-1&&c!=="three-way"&&jsxRuntime.jsx("span",{className:"text-muted-foreground",children:"vs"})]},e.id))}),"renderFileSelector"),X=m(()=>{let[e,n]=d.map(s=>i.find(l=>l.id===s)).filter(Boolean);if(!e||!n)return jsxRuntime.jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select two files to compare"});let a=J(e,n);return jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsx("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"Comparison"}),jsxRuntime.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[jsxRuntime.jsxs("span",{className:"text-green-600",children:["+",a.added]}),jsxRuntime.jsxs("span",{className:"text-red-600",children:["-",a.removed]}),jsxRuntime.jsxs("span",{className:"text-yellow-600",children:["~",a.modified]})]})]})}),jsxRuntime.jsx("div",{className:"flex-1 min-h-0",children:jsxRuntime.jsx(diff.CodeDiff,{oldCode:e.content,newCode:n.content,language:e.language,oldFilename:e.filename,newFilename:n.filename,showLineNumbers:u,showCopyButton:false,maxHeight:"100%",defaultView:"split",className:"border-0 rounded-none h-full"})})]})},"renderSideBySide"),Y=m(()=>{let[e,n]=d.map(a=>i.find(s=>s.id===a)).filter(Boolean);return !e||!n?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select two files to compare"}):jsxRuntime.jsx(diff.CodeDiff,{oldCode:e.content,newCode:n.content,language:e.language,filename:`${e.filename} \u2192 ${n.filename}`,showLineNumbers:u,showCopyButton:false,maxHeight:"100%",defaultView:"unified",className:"border-0 rounded-none"})},"renderUnified"),Z=m(()=>{let[e,n,a]=d.map(s=>i.find(l=>l.id===s)).filter(Boolean);return !e||!n||!a?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select three files for three-way merge (base, current, incoming)"}):jsxRuntime.jsxs("div",{className:"grid grid-cols-3 gap-0 h-full",children:[jsxRuntime.jsxs("div",{className:"border-r",children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-muted/30",children:jsxRuntime.jsxs("span",{className:"text-sm font-medium",children:["Base (",e.filename,")"]})}),jsxRuntime.jsx(scrollArea.ScrollArea,{className:"h-full",ref:s=>{g.current.base=s;},onScrollCapture:s=>{let l=s.target;N("base",l.scrollTop);},children:jsxRuntime.jsx(snippet.CodeSnippet,{code:e.content,language:e.language,showLineNumbers:u,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]}),jsxRuntime.jsxs("div",{className:"border-r",children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-blue-500/10",children:jsxRuntime.jsxs("span",{className:"text-sm font-medium text-blue-600 dark:text-blue-400",children:["Current (",n.filename,")"]})}),jsxRuntime.jsx(scrollArea.ScrollArea,{className:"h-full",ref:s=>{g.current.current=s;},onScrollCapture:s=>{let l=s.target;N("current",l.scrollTop);},children:jsxRuntime.jsx(snippet.CodeSnippet,{code:n.content,language:n.language,showLineNumbers:u,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-green-500/10",children:jsxRuntime.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["Incoming (",a.filename,")"]})}),jsxRuntime.jsx(scrollArea.ScrollArea,{className:"h-full",ref:s=>{g.current.incoming=s;},onScrollCapture:s=>{let l=s.target;N("incoming",l.scrollTop);},children:jsxRuntime.jsx(snippet.CodeSnippet,{code:a.content,language:a.language,showLineNumbers:u,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]})]})},"renderThreeWay"),_=m(()=>!A||h.conflicts.length===0?null:jsxRuntime.jsx("div",{className:"border-t bg-muted/30",children:jsxRuntime.jsxs("div",{className:"px-4 py-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"Merge Conflicts"}),jsxRuntime.jsx(badge.Badge,{variant:"destructive",className:"text-xs",children:h.conflicts.length})]}),jsxRuntime.jsx("div",{className:"mt-2 space-y-2",children:h.conflicts.map((e,n)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[jsxRuntime.jsxs("span",{children:["Lines ",e.startLine,"-",e.endLine]}),jsxRuntime.jsxs("div",{className:"flex gap-1",children:[jsxRuntime.jsx(button.Button,{variant:"outline",size:"sm",onClick:()=>B(n,"current"),className:"h-6 text-xs",children:"Keep Current"}),jsxRuntime.jsx(button.Button,{variant:"outline",size:"sm",onClick:()=>B(n,"incoming"),className:"h-6 text-xs",children:"Accept Incoming"})]})]},n))})]})}),"renderMergeConflicts");return jsxRuntime.jsxs("div",{ref:q,className:utils.cn(ge({layout:x,size:V}),v),style:{height:$},...U,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxRuntime.jsx("div",{className:"flex items-center gap-4",children:Q()}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(tabs.Tabs,{value:c,onValueChange:e=>G(e),children:jsxRuntime.jsxs(tabs.TabsList,{className:"grid w-full grid-cols-3",children:[jsxRuntime.jsx(tabs.TabsTrigger,{value:"side-by-side",className:"text-xs",children:"Side by Side"}),jsxRuntime.jsx(tabs.TabsTrigger,{value:"unified",className:"text-xs",children:"Unified"}),jsxRuntime.jsx(tabs.TabsTrigger,{value:"three-way",className:"text-xs",children:"Three-way"})]})}),E&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:W,className:"h-8 w-8 p-0",children:O?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"})}),jsxRuntime.jsxs(dropdownMenu.DropdownMenu,{children:[jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger,{asChild:true,children:jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.MoreHorizontal,{className:"h-3.5 w-3.5"})})}),jsxRuntime.jsxs(dropdownMenu.DropdownMenuContent,{align:"end",children:[jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem,{onClick:()=>b([]),className:"gap-2",children:[jsxRuntime.jsx(lucideReact.RotateCcw,{className:"h-4 w-4"}),"Reset Selection"]}),jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem,{className:"gap-2",children:[jsxRuntime.jsx(lucideReact.Settings,{className:"h-4 w-4"}),"Settings"]})]})]})]})]}),jsxRuntime.jsxs("div",{className:"flex-1 min-h-0",children:[c==="side-by-side"&&X(),c==="unified"&&Y(),c==="three-way"&&Z()]}),_()]})});pe.displayName="CodeCompare";exports.CodeCompare=pe;exports.codeCompareVariants=ge;
|
package/dist/code/compare.mjs
CHANGED
|
@@ -1 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import*as o from'react';import {cva}from'class-variance-authority';import {Check,Copy,MoreHorizontal,RotateCcw,Settings}from'lucide-react';import {cn}from'@hanzo/ui/lib/utils';import {Badge}from'@hanzo/ui/badge';import {Button}from'@hanzo/ui/button';import {CodeDiff}from'@hanzo/ui/code/diff';import {CodeSnippet}from'@hanzo/ui/code/snippet';import {DropdownMenu,DropdownMenuTrigger,DropdownMenuContent,DropdownMenuItem}from'@hanzo/ui/dropdown-menu';import {ScrollArea}from'@hanzo/ui/scroll-area';import {Tabs,TabsList,TabsTrigger}from'@hanzo/ui/tabs';import {jsxs,jsx}from'react/jsx-runtime';var te=Object.defineProperty;var m=(v,x)=>te(v,"name",{value:x,configurable:true});var ge=cva("relative flex flex-col overflow-hidden rounded-lg border bg-background",{variants:{layout:{horizontal:"flex-col",vertical:"flex-row"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{layout:"horizontal",size:"default"}}),pe=o.forwardRef(({className:v,layout:x,size:V,files:i,defaultView:j="side-by-side",showLineNumbers:u=true,showCopyButton:E=true,allowMerge:A=false,conflictMarkers:I=[],onMergeConflict:S,onFileSelect:P,height:$="600px",syncScroll:M=true,...U},q)=>{let[c,G]=o.useState(j),[d,b]=o.useState(()=>i.length>=2?[i[0].id,i[1].id]:i.length>0?[i[0].id]:[]),[h,K]=o.useState({resolved:{},conflicts:I}),[O,T]=o.useState(false),g=o.useRef({}),N=o.useCallback((e,n)=>{M&&Object.entries(g.current).forEach(([a,s])=>{a!==e&&s&&(s.scrollTop=n);});},[M]),W=o.useCallback(async()=>{let e=d.map(n=>{let a=i.find(s=>s.id===n);return a?`=== ${a.filename} ===
|
|
2
|
+
${a.content}`:""}).join(`
|
|
3
|
+
|
|
4
|
+
`);try{await navigator.clipboard.writeText(e),T(!0),setTimeout(()=>T(!1),2e3);}catch(n){console.error("Failed to copy comparison:",n);}},[i,d]),B=o.useCallback((e,n)=>{K(a=>({...a,resolved:{...a.resolved,[e]:n}})),S?.(n);},[S]),J=o.useCallback((e,n)=>{let a=e.content.split(`
|
|
5
|
+
`),s=n.content.split(`
|
|
6
|
+
`),l=0,k=0,R=0,ee=Math.max(a.length,s.length);for(let p=0;p<ee;p++){let D=a[p],L=s[p];D===void 0?l++:L===void 0?k++:D!==L&&R++;}return {added:l,removed:k,modified:R}},[]),Q=m(()=>jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i.map((e,n)=>jsxs("div",{className:"flex items-center gap-2",children:[jsxs(Button,{variant:d.includes(e.id)?"default":"outline",size:"sm",onClick:()=>{b(c==="three-way"?a=>a.includes(e.id)?a.filter(s=>s!==e.id):a.length<3?[...a,e.id]:[a[1],a[2],e.id]:a=>a.includes(e.id)?a.filter(s=>s!==e.id):a.length<2?[...a,e.id]:[a[1],e.id]),P?.(e.id);},className:"gap-2",children:[e.label||e.filename,e.version&&jsx(Badge,{variant:"secondary",className:"text-xs",children:e.version})]}),n<i.length-1&&c!=="three-way"&&jsx("span",{className:"text-muted-foreground",children:"vs"})]},e.id))}),"renderFileSelector"),X=m(()=>{let[e,n]=d.map(s=>i.find(l=>l.id===s)).filter(Boolean);if(!e||!n)return jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select two files to compare"});let a=J(e,n);return jsxs("div",{className:"flex flex-col h-full",children:[jsx("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:jsxs("div",{className:"flex items-center gap-4",children:[jsx("span",{className:"text-sm font-medium",children:"Comparison"}),jsxs("div",{className:"flex items-center gap-3 text-xs",children:[jsxs("span",{className:"text-green-600",children:["+",a.added]}),jsxs("span",{className:"text-red-600",children:["-",a.removed]}),jsxs("span",{className:"text-yellow-600",children:["~",a.modified]})]})]})}),jsx("div",{className:"flex-1 min-h-0",children:jsx(CodeDiff,{oldCode:e.content,newCode:n.content,language:e.language,oldFilename:e.filename,newFilename:n.filename,showLineNumbers:u,showCopyButton:false,maxHeight:"100%",defaultView:"split",className:"border-0 rounded-none h-full"})})]})},"renderSideBySide"),Y=m(()=>{let[e,n]=d.map(a=>i.find(s=>s.id===a)).filter(Boolean);return !e||!n?jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select two files to compare"}):jsx(CodeDiff,{oldCode:e.content,newCode:n.content,language:e.language,filename:`${e.filename} \u2192 ${n.filename}`,showLineNumbers:u,showCopyButton:false,maxHeight:"100%",defaultView:"unified",className:"border-0 rounded-none"})},"renderUnified"),Z=m(()=>{let[e,n,a]=d.map(s=>i.find(l=>l.id===s)).filter(Boolean);return !e||!n||!a?jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select three files for three-way merge (base, current, incoming)"}):jsxs("div",{className:"grid grid-cols-3 gap-0 h-full",children:[jsxs("div",{className:"border-r",children:[jsx("div",{className:"border-b px-4 py-2 bg-muted/30",children:jsxs("span",{className:"text-sm font-medium",children:["Base (",e.filename,")"]})}),jsx(ScrollArea,{className:"h-full",ref:s=>{g.current.base=s;},onScrollCapture:s=>{let l=s.target;N("base",l.scrollTop);},children:jsx(CodeSnippet,{code:e.content,language:e.language,showLineNumbers:u,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]}),jsxs("div",{className:"border-r",children:[jsx("div",{className:"border-b px-4 py-2 bg-blue-500/10",children:jsxs("span",{className:"text-sm font-medium text-blue-600 dark:text-blue-400",children:["Current (",n.filename,")"]})}),jsx(ScrollArea,{className:"h-full",ref:s=>{g.current.current=s;},onScrollCapture:s=>{let l=s.target;N("current",l.scrollTop);},children:jsx(CodeSnippet,{code:n.content,language:n.language,showLineNumbers:u,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]}),jsxs("div",{children:[jsx("div",{className:"border-b px-4 py-2 bg-green-500/10",children:jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["Incoming (",a.filename,")"]})}),jsx(ScrollArea,{className:"h-full",ref:s=>{g.current.incoming=s;},onScrollCapture:s=>{let l=s.target;N("incoming",l.scrollTop);},children:jsx(CodeSnippet,{code:a.content,language:a.language,showLineNumbers:u,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]})]})},"renderThreeWay"),_=m(()=>!A||h.conflicts.length===0?null:jsx("div",{className:"border-t bg-muted/30",children:jsxs("div",{className:"px-4 py-2",children:[jsxs("div",{className:"flex items-center justify-between",children:[jsx("span",{className:"text-sm font-medium",children:"Merge Conflicts"}),jsx(Badge,{variant:"destructive",className:"text-xs",children:h.conflicts.length})]}),jsx("div",{className:"mt-2 space-y-2",children:h.conflicts.map((e,n)=>jsxs("div",{className:"flex items-center gap-2 text-xs",children:[jsxs("span",{children:["Lines ",e.startLine,"-",e.endLine]}),jsxs("div",{className:"flex gap-1",children:[jsx(Button,{variant:"outline",size:"sm",onClick:()=>B(n,"current"),className:"h-6 text-xs",children:"Keep Current"}),jsx(Button,{variant:"outline",size:"sm",onClick:()=>B(n,"incoming"),className:"h-6 text-xs",children:"Accept Incoming"})]})]},n))})]})}),"renderMergeConflicts");return jsxs("div",{ref:q,className:cn(ge({layout:x,size:V}),v),style:{height:$},...U,children:[jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsx("div",{className:"flex items-center gap-4",children:Q()}),jsxs("div",{className:"flex items-center gap-2",children:[jsx(Tabs,{value:c,onValueChange:e=>G(e),children:jsxs(TabsList,{className:"grid w-full grid-cols-3",children:[jsx(TabsTrigger,{value:"side-by-side",className:"text-xs",children:"Side by Side"}),jsx(TabsTrigger,{value:"unified",className:"text-xs",children:"Unified"}),jsx(TabsTrigger,{value:"three-way",className:"text-xs",children:"Three-way"})]})}),E&&jsx(Button,{variant:"ghost",size:"sm",onClick:W,className:"h-8 w-8 p-0",children:O?jsx(Check,{className:"h-3.5 w-3.5 text-green-500"}):jsx(Copy,{className:"h-3.5 w-3.5"})}),jsxs(DropdownMenu,{children:[jsx(DropdownMenuTrigger,{asChild:true,children:jsx(Button,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",children:jsx(MoreHorizontal,{className:"h-3.5 w-3.5"})})}),jsxs(DropdownMenuContent,{align:"end",children:[jsxs(DropdownMenuItem,{onClick:()=>b([]),className:"gap-2",children:[jsx(RotateCcw,{className:"h-4 w-4"}),"Reset Selection"]}),jsxs(DropdownMenuItem,{className:"gap-2",children:[jsx(Settings,{className:"h-4 w-4"}),"Settings"]})]})]})]})]}),jsxs("div",{className:"flex-1 min-h-0",children:[c==="side-by-side"&&X(),c==="unified"&&Y(),c==="three-way"&&Z()]}),_()]})});pe.displayName="CodeCompare";export{pe as CodeCompare,ge as codeCompareVariants};
|
package/dist/code/diff.js
CHANGED
|
@@ -1 +1,12 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var a=require('react'),classVarianceAuthority=require('class-variance-authority'),lucideReact=require('lucide-react'),shiki=require('shiki'),utils=require('@hanzo/ui/lib/utils'),badge=require('@hanzo/ui/badge'),button=require('@hanzo/ui/button'),skeleton=require('@hanzo/ui/skeleton'),toggleGroup=require('@hanzo/ui/toggle-group'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var a__namespace=/*#__PURE__*/_interopNamespace(a);var ee=Object.defineProperty;var x=(f,p)=>ee(f,"name",{value:p,configurable:true});var me=classVarianceAuthority.cva("relative overflow-hidden rounded-lg border bg-muted/50",{variants:{theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{theme:"dark",size:"default"}}),C=a__namespace.memo(({change:f,showLineNumbers:p,isUnified:g=false,highlightedContent:u})=>{let l=x(()=>{let i="group relative flex min-h-[1.5rem] items-center py-0.5";if(g)switch(f.type){case "add":return utils.cn(i,"bg-green-500/10 border-l-2 border-l-green-500");case "remove":return utils.cn(i,"bg-red-500/10 border-l-2 border-l-red-500");default:return utils.cn(i,"hover:bg-muted/50")}return utils.cn(i,"hover:bg-muted/50")},"getLineClasses"),o=x(()=>{if(!g)return null;switch(f.type){case "add":return jsxRuntime.jsx(lucideReact.Plus,{className:"h-3 w-3 text-green-500 mr-2 flex-shrink-0"});case "remove":return jsxRuntime.jsx(lucideReact.Minus,{className:"h-3 w-3 text-red-500 mr-2 flex-shrink-0"});default:return jsxRuntime.jsx("span",{className:"w-3 mr-2 flex-shrink-0"})}},"getLinePrefix");return jsxRuntime.jsx("div",{className:l(),children:jsxRuntime.jsxs("div",{className:"flex items-center px-4 w-full",children:[p&&jsxRuntime.jsx("div",{className:"flex items-center gap-2 mr-4",children:g?jsxRuntime.jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:f.lineNumber}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:f.oldLineNumber||""}),jsxRuntime.jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:f.newLineNumber||""})]})}),o(),jsxRuntime.jsx("div",{className:"flex-1 overflow-x-auto font-mono",dangerouslySetInnerHTML:{__html:u||f.content}})]})})});C.displayName="DiffLine";function B(f,p){let g=f.split(`
|
|
2
|
+
`),u=p.split(`
|
|
3
|
+
`),l=[],o=0,i=0,h=1;for(;o<g.length||i<u.length;){let N=g[o],v=u[i];o>=g.length?(l.push({type:"add",lineNumber:h++,content:v,newLineNumber:i+1}),i++):i>=u.length?(l.push({type:"remove",lineNumber:h++,content:N,oldLineNumber:o+1}),o++):N===v?(l.push({type:"unchanged",lineNumber:h++,content:N,oldLineNumber:o+1,newLineNumber:i+1}),o++,i++):(l.push({type:"remove",lineNumber:h++,content:N,oldLineNumber:o+1}),l.push({type:"add",lineNumber:h++,content:v,newLineNumber:i+1}),o++,i++);}return l}x(B,"generateDiff");var ce=a__namespace.forwardRef(({className:f,theme:p,size:g,oldCode:u,newCode:l,language:o="text",filename:i,oldFilename:h,newFilename:N,showLineNumbers:v=true,showCopyButton:_=true,maxHeight:A="500px",defaultView:U="unified",collapseUnchanged:k=false,contextLines:y=3,...F},J)=>{let[L,K]=a__namespace.useState(U),[D,S]=a__namespace.useState(false),[Q,T]=a__namespace.useState(true),[R,H]=a__namespace.useState(""),[M,V]=a__namespace.useState(""),[m,P]=a__namespace.useState([]),$={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark"};a__namespace.useEffect(()=>{x(async()=>{T(true);try{let[n,t]=await Promise.all([shiki.codeToHtml(u,{lang:o,theme:$[p||"dark"]}),shiki.codeToHtml(l,{lang:o,theme:$[p||"dark"]})]),r=x(c=>{let E=document.createElement("div");return E.innerHTML=c,E.querySelector("code")?.innerHTML||c},"extractContent");H(r(n)),V(r(t));let b=B(u,l);P(b);}catch(n){console.error("Failed to highlight code:",n),H(u),V(l),P(B(u,l));}finally{T(false);}},"highlightCode")();},[u,l,o,p]);let W=a__namespace.useCallback(async()=>{try{let s=L==="unified"?m.map(n=>`${n.type==="add"?"+":n.type==="remove"?"-":" "}${n.content}`).join(`
|
|
4
|
+
`):`--- ${h||"old"}
|
|
5
|
+
+++ ${N||"new"}
|
|
6
|
+
${u}
|
|
7
|
+
|
|
8
|
+
${l}`;await navigator.clipboard.writeText(s),S(!0),setTimeout(()=>S(!1),2e3);}catch(s){console.error("Failed to copy diff:",s);}},[m,L,u,l,h,N]),X=a__namespace.useMemo(()=>{if(!k)return m;let s=[],n=0;for(;n<m.length;){let t=m[n];if(t.type!=="unchanged"){s.push(t),n++;continue}let r=n;for(;n<m.length&&m[n].type==="unchanged";)n++;let b=n-r;if(b<=y*2)for(let c=r;c<n;c++)s.push(m[c]);else {for(let c=r;c<r+y;c++)s.push(m[c]);s.push({type:"unchanged",lineNumber:-1,content:`... ${b-y*2} unchanged lines ...`});for(let c=n-y;c<n;c++)s.push(m[c]);}}return s},[m,k,y]),I=a__namespace.useMemo(()=>{let s=m.filter(t=>t.type==="add").length,n=m.filter(t=>t.type==="remove").length;return {additions:s,deletions:n}},[m]),Y=x(()=>{let s=R.split(`
|
|
9
|
+
`),n=M.split(`
|
|
10
|
+
`);return jsxRuntime.jsx("div",{className:"font-mono",children:X.map((t,r)=>{if(t.lineNumber===-1)return jsxRuntime.jsx("div",{className:"flex items-center justify-center py-2 text-muted-foreground bg-muted/30",children:jsxRuntime.jsx("span",{className:"text-xs",children:t.content})},r);let b=t.content;return t.type==="add"&&t.newLineNumber?b=n[t.newLineNumber-1]||t.content:(t.type==="remove"&&t.oldLineNumber||t.type==="unchanged"&&t.oldLineNumber)&&(b=s[t.oldLineNumber-1]||t.content),jsxRuntime.jsx(C,{change:t,showLineNumbers:v,isUnified:true,highlightedContent:b},r)})})},"renderUnifiedView"),Z=x(()=>{let s=R.split(`
|
|
11
|
+
`),n=M.split(`
|
|
12
|
+
`);return jsxRuntime.jsxs("div",{className:"grid grid-cols-2 gap-0",children:[jsxRuntime.jsxs("div",{className:"border-r",children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-red-500/10",children:jsxRuntime.jsx("span",{className:"text-sm font-medium text-red-600 dark:text-red-400",children:h||i||"Old"})}),jsxRuntime.jsx("div",{className:"font-mono",children:s.map((t,r)=>jsxRuntime.jsx(C,{change:{type:"remove",lineNumber:r+1,content:t,oldLineNumber:r+1},showLineNumbers:v,highlightedContent:t},`old-${r}`))})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-green-500/10",children:jsxRuntime.jsx("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:N||i||"New"})}),jsxRuntime.jsx("div",{className:"font-mono",children:n.map((t,r)=>jsxRuntime.jsx(C,{change:{type:"add",lineNumber:r+1,content:t,newLineNumber:r+1},showLineNumbers:v,highlightedContent:t},`new-${r}`))})]})]})},"renderSplitView");return jsxRuntime.jsxs("div",{ref:J,className:utils.cn(me({theme:p,size:g,className:f})),...F,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(lucideReact.GitCompare,{className:"h-4 w-4 text-muted-foreground"}),i&&jsxRuntime.jsx("span",{className:"text-sm font-medium",children:i}),o&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:o})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[jsxRuntime.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntime.jsx(lucideReact.Plus,{className:"h-3 w-3 text-green-500"}),I.additions]}),jsxRuntime.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntime.jsx(lucideReact.Minus,{className:"h-3 w-3 text-red-500"}),I.deletions]})]})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs(toggleGroup.ToggleGroup,{type:"single",value:L,onValueChange:s=>s&&K(s),size:"sm",children:[jsxRuntime.jsx(toggleGroup.ToggleGroupItem,{value:"unified","aria-label":"Unified view",children:jsxRuntime.jsx(lucideReact.Square,{className:"h-3 w-3"})}),jsxRuntime.jsx(toggleGroup.ToggleGroupItem,{value:"split","aria-label":"Split view",children:jsxRuntime.jsx(lucideReact.SplitSquareHorizontal,{className:"h-3 w-3"})})]}),_&&jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",onClick:W,className:"h-8 w-8 p-0",children:[D?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"}),jsxRuntime.jsx("span",{className:"sr-only",children:D?"Copied":"Copy diff"})]})]})]}),jsxRuntime.jsx("div",{className:"overflow-auto",style:{maxHeight:A},children:Q?jsxRuntime.jsx("div",{className:"p-4 space-y-2",children:Array.from({length:10}).map((s,n)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[v&&jsxRuntime.jsx(skeleton.Skeleton,{className:"h-4 w-8"}),jsxRuntime.jsx(skeleton.Skeleton,{className:"h-4 flex-1"})]},n))}):L==="unified"?Y():Z()})]})});ce.displayName="CodeDiff";exports.CodeDiff=ce;exports.codeDiffVariants=me;
|
package/dist/code/diff.mjs
CHANGED
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import*as a from'react';import {cva}from'class-variance-authority';import {GitCompare,Plus,Minus,Square,SplitSquareHorizontal,Check,Copy}from'lucide-react';import {codeToHtml}from'shiki';import {cn}from'@hanzo/ui/lib/utils';import {Badge}from'@hanzo/ui/badge';import {Button}from'@hanzo/ui/button';import {Skeleton}from'@hanzo/ui/skeleton';import {ToggleGroup,ToggleGroupItem}from'@hanzo/ui/toggle-group';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var ee=Object.defineProperty;var x=(f,p)=>ee(f,"name",{value:p,configurable:true});var me=cva("relative overflow-hidden rounded-lg border bg-muted/50",{variants:{theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{theme:"dark",size:"default"}}),C=a.memo(({change:f,showLineNumbers:p,isUnified:g=false,highlightedContent:u})=>{let l=x(()=>{let i="group relative flex min-h-[1.5rem] items-center py-0.5";if(g)switch(f.type){case "add":return cn(i,"bg-green-500/10 border-l-2 border-l-green-500");case "remove":return cn(i,"bg-red-500/10 border-l-2 border-l-red-500");default:return cn(i,"hover:bg-muted/50")}return cn(i,"hover:bg-muted/50")},"getLineClasses"),o=x(()=>{if(!g)return null;switch(f.type){case "add":return jsx(Plus,{className:"h-3 w-3 text-green-500 mr-2 flex-shrink-0"});case "remove":return jsx(Minus,{className:"h-3 w-3 text-red-500 mr-2 flex-shrink-0"});default:return jsx("span",{className:"w-3 mr-2 flex-shrink-0"})}},"getLinePrefix");return jsx("div",{className:l(),children:jsxs("div",{className:"flex items-center px-4 w-full",children:[p&&jsx("div",{className:"flex items-center gap-2 mr-4",children:g?jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:f.lineNumber}):jsxs(Fragment,{children:[jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:f.oldLineNumber||""}),jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:f.newLineNumber||""})]})}),o(),jsx("div",{className:"flex-1 overflow-x-auto font-mono",dangerouslySetInnerHTML:{__html:u||f.content}})]})})});C.displayName="DiffLine";function B(f,p){let g=f.split(`
|
|
2
|
+
`),u=p.split(`
|
|
3
|
+
`),l=[],o=0,i=0,h=1;for(;o<g.length||i<u.length;){let N=g[o],v=u[i];o>=g.length?(l.push({type:"add",lineNumber:h++,content:v,newLineNumber:i+1}),i++):i>=u.length?(l.push({type:"remove",lineNumber:h++,content:N,oldLineNumber:o+1}),o++):N===v?(l.push({type:"unchanged",lineNumber:h++,content:N,oldLineNumber:o+1,newLineNumber:i+1}),o++,i++):(l.push({type:"remove",lineNumber:h++,content:N,oldLineNumber:o+1}),l.push({type:"add",lineNumber:h++,content:v,newLineNumber:i+1}),o++,i++);}return l}x(B,"generateDiff");var ce=a.forwardRef(({className:f,theme:p,size:g,oldCode:u,newCode:l,language:o="text",filename:i,oldFilename:h,newFilename:N,showLineNumbers:v=true,showCopyButton:_=true,maxHeight:A="500px",defaultView:U="unified",collapseUnchanged:k=false,contextLines:y=3,...F},J)=>{let[L,K]=a.useState(U),[D,S]=a.useState(false),[Q,T]=a.useState(true),[R,H]=a.useState(""),[M,V]=a.useState(""),[m,P]=a.useState([]),$={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark"};a.useEffect(()=>{x(async()=>{T(true);try{let[n,t]=await Promise.all([codeToHtml(u,{lang:o,theme:$[p||"dark"]}),codeToHtml(l,{lang:o,theme:$[p||"dark"]})]),r=x(c=>{let E=document.createElement("div");return E.innerHTML=c,E.querySelector("code")?.innerHTML||c},"extractContent");H(r(n)),V(r(t));let b=B(u,l);P(b);}catch(n){console.error("Failed to highlight code:",n),H(u),V(l),P(B(u,l));}finally{T(false);}},"highlightCode")();},[u,l,o,p]);let W=a.useCallback(async()=>{try{let s=L==="unified"?m.map(n=>`${n.type==="add"?"+":n.type==="remove"?"-":" "}${n.content}`).join(`
|
|
4
|
+
`):`--- ${h||"old"}
|
|
5
|
+
+++ ${N||"new"}
|
|
6
|
+
${u}
|
|
7
|
+
|
|
8
|
+
${l}`;await navigator.clipboard.writeText(s),S(!0),setTimeout(()=>S(!1),2e3);}catch(s){console.error("Failed to copy diff:",s);}},[m,L,u,l,h,N]),X=a.useMemo(()=>{if(!k)return m;let s=[],n=0;for(;n<m.length;){let t=m[n];if(t.type!=="unchanged"){s.push(t),n++;continue}let r=n;for(;n<m.length&&m[n].type==="unchanged";)n++;let b=n-r;if(b<=y*2)for(let c=r;c<n;c++)s.push(m[c]);else {for(let c=r;c<r+y;c++)s.push(m[c]);s.push({type:"unchanged",lineNumber:-1,content:`... ${b-y*2} unchanged lines ...`});for(let c=n-y;c<n;c++)s.push(m[c]);}}return s},[m,k,y]),I=a.useMemo(()=>{let s=m.filter(t=>t.type==="add").length,n=m.filter(t=>t.type==="remove").length;return {additions:s,deletions:n}},[m]),Y=x(()=>{let s=R.split(`
|
|
9
|
+
`),n=M.split(`
|
|
10
|
+
`);return jsx("div",{className:"font-mono",children:X.map((t,r)=>{if(t.lineNumber===-1)return jsx("div",{className:"flex items-center justify-center py-2 text-muted-foreground bg-muted/30",children:jsx("span",{className:"text-xs",children:t.content})},r);let b=t.content;return t.type==="add"&&t.newLineNumber?b=n[t.newLineNumber-1]||t.content:(t.type==="remove"&&t.oldLineNumber||t.type==="unchanged"&&t.oldLineNumber)&&(b=s[t.oldLineNumber-1]||t.content),jsx(C,{change:t,showLineNumbers:v,isUnified:true,highlightedContent:b},r)})})},"renderUnifiedView"),Z=x(()=>{let s=R.split(`
|
|
11
|
+
`),n=M.split(`
|
|
12
|
+
`);return jsxs("div",{className:"grid grid-cols-2 gap-0",children:[jsxs("div",{className:"border-r",children:[jsx("div",{className:"border-b px-4 py-2 bg-red-500/10",children:jsx("span",{className:"text-sm font-medium text-red-600 dark:text-red-400",children:h||i||"Old"})}),jsx("div",{className:"font-mono",children:s.map((t,r)=>jsx(C,{change:{type:"remove",lineNumber:r+1,content:t,oldLineNumber:r+1},showLineNumbers:v,highlightedContent:t},`old-${r}`))})]}),jsxs("div",{children:[jsx("div",{className:"border-b px-4 py-2 bg-green-500/10",children:jsx("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:N||i||"New"})}),jsx("div",{className:"font-mono",children:n.map((t,r)=>jsx(C,{change:{type:"add",lineNumber:r+1,content:t,newLineNumber:r+1},showLineNumbers:v,highlightedContent:t},`new-${r}`))})]})]})},"renderSplitView");return jsxs("div",{ref:J,className:cn(me({theme:p,size:g,className:f})),...F,children:[jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxs("div",{className:"flex items-center gap-4",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx(GitCompare,{className:"h-4 w-4 text-muted-foreground"}),i&&jsx("span",{className:"text-sm font-medium",children:i}),o&&jsx(Badge,{variant:"secondary",className:"text-xs",children:o})]}),jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[jsxs("span",{className:"flex items-center gap-1",children:[jsx(Plus,{className:"h-3 w-3 text-green-500"}),I.additions]}),jsxs("span",{className:"flex items-center gap-1",children:[jsx(Minus,{className:"h-3 w-3 text-red-500"}),I.deletions]})]})]}),jsxs("div",{className:"flex items-center gap-2",children:[jsxs(ToggleGroup,{type:"single",value:L,onValueChange:s=>s&&K(s),size:"sm",children:[jsx(ToggleGroupItem,{value:"unified","aria-label":"Unified view",children:jsx(Square,{className:"h-3 w-3"})}),jsx(ToggleGroupItem,{value:"split","aria-label":"Split view",children:jsx(SplitSquareHorizontal,{className:"h-3 w-3"})})]}),_&&jsxs(Button,{variant:"ghost",size:"sm",onClick:W,className:"h-8 w-8 p-0",children:[D?jsx(Check,{className:"h-3.5 w-3.5 text-green-500"}):jsx(Copy,{className:"h-3.5 w-3.5"}),jsx("span",{className:"sr-only",children:D?"Copied":"Copy diff"})]})]})]}),jsx("div",{className:"overflow-auto",style:{maxHeight:A},children:Q?jsx("div",{className:"p-4 space-y-2",children:Array.from({length:10}).map((s,n)=>jsxs("div",{className:"flex items-center gap-4",children:[v&&jsx(Skeleton,{className:"h-4 w-8"}),jsx(Skeleton,{className:"h-4 flex-1"})]},n))}):L==="unified"?Y():Z()})]})});ce.displayName="CodeDiff";export{ce as CodeDiff,me as codeDiffVariants};
|
package/dist/code/editor.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var e=require('react'),P=require('@monaco-editor/react'),lucideReact=require('lucide-react'),nextThemes=require('next-themes'),utils=require('@hanzo/ui/lib/utils'),button=require('@hanzo/ui/button'),dropdownMenu=require('@hanzo/ui/dropdown-menu'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var e__namespace=/*#__PURE__*/_interopNamespace(e);var P__default=/*#__PURE__*/_interopDefault(P);var G=["javascript","typescript","python","java","csharp","cpp","c","go","rust","ruby","php","swift","kotlin","dart","html","css","scss","json","xml","yaml","sql","markdown","shell","plaintext"],b={javascript:"JavaScript",typescript:"TypeScript",python:"Python",java:"Java",csharp:"C#",cpp:"C++",c:"C",go:"Go",rust:"Rust",ruby:"Ruby",php:"PHP",swift:"Swift",kotlin:"Kotlin",dart:"Dart",html:"HTML",css:"CSS",scss:"SCSS",json:"JSON",xml:"XML",yaml:"YAML",sql:"SQL",markdown:"Markdown",shell:"Shell",plaintext:"Plain Text"},K=e__namespace.forwardRef(({value:r,defaultValue:c="",language:d="javascript",height:y="400px",theme:s="auto",onChange:i,onMount:w,readOnly:v=false,lineNumbers:S=true,minimap:x=false,wordWrap:M="on",fontSize:k=14,className:N,showCopyButton:u=true,showLanguageSelector:p=true,availableLanguages:L=G},R)=>{let{theme:m}=nextThemes.useTheme(),[l,D]=e__namespace.useState(d),[T,h]=e__namespace.useState(false),[n,g]=e__namespace.useState(r||c);e__namespace.useEffect(()=>{r!==void 0&&g(r);},[r]);let O=e__namespace.useCallback(async()=>{try{await navigator.clipboard.writeText(n),h(!0),setTimeout(()=>h(!1),2e3);}catch(t){console.error("Failed to copy:",t);}},[n]),z=e__namespace.useCallback((t,j)=>{g(t||""),i&&i(t,j);},[i]),E=e__namespace.useMemo(()=>s==="auto"?m==="dark"?"vs-dark":"light":s==="dark"?"vs-dark":"light",[s,m]);return jsxRuntime.jsxs("div",{ref:R,className:utils.cn("relative overflow-hidden rounded-md border bg-background",N),children:[(p||u)&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b bg-muted/50 px-3 py-2",children:[p&&jsxRuntime.jsxs(dropdownMenu.DropdownMenu,{children:[jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger,{asChild:true,children:jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",className:"h-8 gap-1 px-2 text-xs font-mono",children:[b[l]||l,jsxRuntime.jsx(lucideReact.ChevronDown,{className:"h-3 w-3"})]})}),jsxRuntime.jsx(dropdownMenu.DropdownMenuContent,{align:"start",className:"max-h-80 overflow-auto",children:L.map(t=>jsxRuntime.jsx(dropdownMenu.DropdownMenuItem,{onClick:()=>D(t),className:"font-mono text-xs",children:b[t]||t},t))})]}),u&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 px-2 text-xs",onClick:O,disabled:!n,children:T?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Check,{className:"h-3 w-3"}),"Copied!"]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Copy,{className:"h-3 w-3"}),"Copy"]})})]}),jsxRuntime.jsx(P__default.default,{height:y,defaultLanguage:d,language:l,value:n,defaultValue:c,theme:E,onChange:z,onMount:w,options:{readOnly:v,lineNumbers:S?"on":"off",minimap:{enabled:x},wordWrap:M,fontSize:k,scrollBeyondLastLine:false,automaticLayout:true,tabSize:2,insertSpaces:true,formatOnPaste:true,formatOnType:true,scrollbar:{vertical:"auto",horizontal:"auto",verticalScrollbarSize:10,horizontalScrollbarSize:10},padding:{top:16,bottom:16}}})]})});K.displayName="CodeEditor";exports.CodeEditor=K;
|
package/dist/code/editor.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import*as e from'react';import P from'@monaco-editor/react';import {ChevronDown,Check,Copy}from'lucide-react';import {useTheme}from'next-themes';import {cn}from'@hanzo/ui/lib/utils';import {Button}from'@hanzo/ui/button';import {DropdownMenu,DropdownMenuTrigger,DropdownMenuContent,DropdownMenuItem}from'@hanzo/ui/dropdown-menu';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var G=["javascript","typescript","python","java","csharp","cpp","c","go","rust","ruby","php","swift","kotlin","dart","html","css","scss","json","xml","yaml","sql","markdown","shell","plaintext"],b={javascript:"JavaScript",typescript:"TypeScript",python:"Python",java:"Java",csharp:"C#",cpp:"C++",c:"C",go:"Go",rust:"Rust",ruby:"Ruby",php:"PHP",swift:"Swift",kotlin:"Kotlin",dart:"Dart",html:"HTML",css:"CSS",scss:"SCSS",json:"JSON",xml:"XML",yaml:"YAML",sql:"SQL",markdown:"Markdown",shell:"Shell",plaintext:"Plain Text"},K=e.forwardRef(({value:r,defaultValue:c="",language:d="javascript",height:y="400px",theme:s="auto",onChange:i,onMount:w,readOnly:v=false,lineNumbers:S=true,minimap:x=false,wordWrap:M="on",fontSize:k=14,className:N,showCopyButton:u=true,showLanguageSelector:p=true,availableLanguages:L=G},R)=>{let{theme:m}=useTheme(),[l,D]=e.useState(d),[T,h]=e.useState(false),[n,g]=e.useState(r||c);e.useEffect(()=>{r!==void 0&&g(r);},[r]);let O=e.useCallback(async()=>{try{await navigator.clipboard.writeText(n),h(!0),setTimeout(()=>h(!1),2e3);}catch(t){console.error("Failed to copy:",t);}},[n]),z=e.useCallback((t,j)=>{g(t||""),i&&i(t,j);},[i]),E=e.useMemo(()=>s==="auto"?m==="dark"?"vs-dark":"light":s==="dark"?"vs-dark":"light",[s,m]);return jsxs("div",{ref:R,className:cn("relative overflow-hidden rounded-md border bg-background",N),children:[(p||u)&&jsxs("div",{className:"flex items-center justify-between border-b bg-muted/50 px-3 py-2",children:[p&&jsxs(DropdownMenu,{children:[jsx(DropdownMenuTrigger,{asChild:true,children:jsxs(Button,{variant:"ghost",size:"sm",className:"h-8 gap-1 px-2 text-xs font-mono",children:[b[l]||l,jsx(ChevronDown,{className:"h-3 w-3"})]})}),jsx(DropdownMenuContent,{align:"start",className:"max-h-80 overflow-auto",children:L.map(t=>jsx(DropdownMenuItem,{onClick:()=>D(t),className:"font-mono text-xs",children:b[t]||t},t))})]}),u&&jsx(Button,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 px-2 text-xs",onClick:O,disabled:!n,children:T?jsxs(Fragment,{children:[jsx(Check,{className:"h-3 w-3"}),"Copied!"]}):jsxs(Fragment,{children:[jsx(Copy,{className:"h-3 w-3"}),"Copy"]})})]}),jsx(P,{height:y,defaultLanguage:d,language:l,value:n,defaultValue:c,theme:E,onChange:z,onMount:w,options:{readOnly:v,lineNumbers:S?"on":"off",minimap:{enabled:x},wordWrap:M,fontSize:k,scrollBeyondLastLine:false,automaticLayout:true,tabSize:2,insertSpaces:true,formatOnPaste:true,formatOnType:true,scrollbar:{vertical:"auto",horizontal:"auto",verticalScrollbarSize:10,horizontalScrollbarSize:10},padding:{top:16,bottom:16}}})]})});K.displayName="CodeEditor";export{K as CodeEditor};
|
package/dist/code/explorer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var l=require('react'),classVarianceAuthority=require('class-variance-authority'),lucideReact=require('lucide-react'),utils=require('@hanzo/ui/lib/utils'),button=require('@hanzo/ui/button'),input=require('@hanzo/ui/input'),scrollArea=require('@hanzo/ui/scroll-area'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var l__namespace=/*#__PURE__*/_interopNamespace(l);var H=Object.defineProperty;var p=(o,n)=>H(o,"name",{value:n,configurable:true});var te=classVarianceAuthority.cva("relative flex flex-col overflow-hidden rounded-lg border bg-background",{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),re=p((o,n=false)=>{if(n)return lucideReact.Folder;switch(o.split(".").pop()?.toLowerCase()){case "js":case "jsx":case "ts":case "tsx":case "vue":case "svelte":return lucideReact.FileCode;case "json":case "xml":case "yaml":case "yml":case "toml":case "ini":return lucideReact.FileText;case "png":case "jpg":case "jpeg":case "gif":case "svg":case "webp":case "ico":return lucideReact.FileImage;default:return lucideReact.File}},"getFileIcon"),se=p(o=>{if(!o)return "";let n=["B","KB","MB","GB"],c=o,s=0;for(;c>=1024&&s<n.length-1;)c/=1024,s++;return `${c.toFixed(1)} ${n[s]}`},"formatFileSize"),ae=p(o=>{if(!o)return "";let c=new Date().getTime()-o.getTime(),s=Math.floor(c/(1e3*60*60*24));return s===0?"Today":s===1?"Yesterday":s<7?`${s} days ago`:s<30?`${Math.floor(s/7)} weeks ago`:s<365?`${Math.floor(s/30)} months ago`:`${Math.floor(s/365)} years ago`},"formatModifiedDate"),ie=l__namespace.forwardRef(({className:o,size:n,files:c,onFileSelect:s,onFolderToggle:F,selectedFile:h,showSearch:j=true,showFileIcons:x=true,showFileSize:w=false,showModifiedDate:T=false,height:z="400px",defaultExpanded:D=[],searchPlaceholder:L="Search files...",emptyMessage:B="No files found",...I},P)=>{let[d,C]=l__namespace.useState(""),[E,V]=l__namespace.useState(new Set(D)),g=l__namespace.useCallback(e=>e.map(r=>({...r,isExpanded:E.has(r.id),children:r.children?g(r.children):void 0})),[E]),v=l__namespace.useCallback((e,r)=>{if(!r)return e;let a=[];for(let i of e)if(i.name.toLowerCase().includes(r.toLowerCase()))a.push(i);else if(i.type==="folder"&&i.children){let f=v(i.children,r);f.length>0&&a.push({...i,children:f,isExpanded:true});}return a},[]),N=l__namespace.useMemo(()=>{let e=g(c);return d?v(e,d):e},[c,d,g,v]),S=l__namespace.useCallback(e=>{V(r=>{let a=new Set(r);return a.has(e.id)?a.delete(e.id):a.add(e.id),a}),F?.(e);},[F]),k=l__namespace.useCallback((e,r=0)=>{let a=x?re(e.name,e.type==="folder"):null,i=e.type==="folder"&&e.isExpanded?lucideReact.FolderOpen:lucideReact.Folder,f=h===e.id||h===e.path;return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:utils.cn("flex items-center gap-2 px-2 py-1 hover:bg-muted/50 cursor-pointer transition-colors",f&&"bg-muted","rounded-sm"),style:{paddingLeft:`${r*16+8}px`},onClick:()=>{e.type==="folder"?S(e):s?.(e);},children:[e.type==="folder"&&jsxRuntime.jsx("div",{className:"w-4 h-4 flex items-center justify-center",children:e.isExpanded?jsxRuntime.jsx(lucideReact.ChevronDown,{className:"h-3 w-3"}):jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-3 w-3"})}),x&&jsxRuntime.jsx("div",{className:"w-4 h-4 flex items-center justify-center flex-shrink-0",children:e.type==="folder"?jsxRuntime.jsx(i,{className:"h-4 w-4 text-blue-500"}):a?jsxRuntime.jsx(a,{className:"h-4 w-4 text-muted-foreground"}):null}),jsxRuntime.jsx("span",{className:"flex-1 truncate",children:e.name}),w&&e.type==="file"&&e.size&&jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:se(e.size)}),T&&e.modified&&jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:ae(e.modified)})]}),e.type==="folder"&&e.isExpanded&&e.children&&jsxRuntime.jsx("div",{children:e.children.map(u=>k(u,r+1))})]},e.id)},[x,w,T,h,S,s]),A=p(()=>{C("");},"clearSearch");return jsxRuntime.jsxs("div",{ref:P,className:utils.cn(te({size:n}),o),style:{height:z},...I,children:[j&&jsxRuntime.jsx("div",{className:"flex items-center gap-2 border-b px-4 py-2",children:jsxRuntime.jsxs("div",{className:"relative flex-1",children:[jsxRuntime.jsx(lucideReact.Search,{className:"absolute left-2 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),jsxRuntime.jsx(input.Input,{value:d,onChange:e=>C(e.target.value),placeholder:L,className:"pl-8 pr-8 h-8"}),d&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:A,className:"absolute right-1 top-1/2 transform -translate-y-1/2 h-6 w-6 p-0",children:jsxRuntime.jsx(lucideReact.X,{className:"h-3 w-3"})})]})}),jsxRuntime.jsx(scrollArea.ScrollArea,{className:"flex-1",children:jsxRuntime.jsx("div",{className:"p-2",children:N.length===0?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-24 text-muted-foreground",children:d?`No files match "${d}"`:B}):jsxRuntime.jsx("div",{className:"space-y-0.5",children:N.map(e=>k(e,0))})})}),jsxRuntime.jsxs("div",{className:"border-t px-4 py-2 text-xs text-muted-foreground",children:[(()=>{let e=p(f=>{let u=0,y=0;for(let b of f)if(b.type==="file")u++;else if(y++,b.children){let R=e(b.children);u+=R.files,y+=R.folders;}return {files:u,folders:y}},"countFiles"),{files:r,folders:a}=e(N),i=[];return r>0&&i.push(`${r} file${r===1?"":"s"}`),a>0&&i.push(`${a} folder${a===1?"":"s"}`),i.join(", ")||"Empty"})(),d&&jsxRuntime.jsx("span",{children:" (filtered)"})]})]})});ie.displayName="CodeExplorer";exports.CodeExplorer=ie;exports.codeExplorerVariants=te;
|
package/dist/code/explorer.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import*as l from'react';import {cva}from'class-variance-authority';import {FolderOpen,Folder,ChevronDown,ChevronRight,Search,X,File,FileImage,FileText,FileCode}from'lucide-react';import {cn}from'@hanzo/ui/lib/utils';import {Button}from'@hanzo/ui/button';import {Input}from'@hanzo/ui/input';import {ScrollArea}from'@hanzo/ui/scroll-area';import {jsxs,jsx}from'react/jsx-runtime';var H=Object.defineProperty;var p=(o,n)=>H(o,"name",{value:n,configurable:true});var te=cva("relative flex flex-col overflow-hidden rounded-lg border bg-background",{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),re=p((o,n=false)=>{if(n)return Folder;switch(o.split(".").pop()?.toLowerCase()){case "js":case "jsx":case "ts":case "tsx":case "vue":case "svelte":return FileCode;case "json":case "xml":case "yaml":case "yml":case "toml":case "ini":return FileText;case "png":case "jpg":case "jpeg":case "gif":case "svg":case "webp":case "ico":return FileImage;default:return File}},"getFileIcon"),se=p(o=>{if(!o)return "";let n=["B","KB","MB","GB"],c=o,s=0;for(;c>=1024&&s<n.length-1;)c/=1024,s++;return `${c.toFixed(1)} ${n[s]}`},"formatFileSize"),ae=p(o=>{if(!o)return "";let c=new Date().getTime()-o.getTime(),s=Math.floor(c/(1e3*60*60*24));return s===0?"Today":s===1?"Yesterday":s<7?`${s} days ago`:s<30?`${Math.floor(s/7)} weeks ago`:s<365?`${Math.floor(s/30)} months ago`:`${Math.floor(s/365)} years ago`},"formatModifiedDate"),ie=l.forwardRef(({className:o,size:n,files:c,onFileSelect:s,onFolderToggle:F,selectedFile:h,showSearch:j=true,showFileIcons:x=true,showFileSize:w=false,showModifiedDate:T=false,height:z="400px",defaultExpanded:D=[],searchPlaceholder:L="Search files...",emptyMessage:B="No files found",...I},P)=>{let[d,C]=l.useState(""),[E,V]=l.useState(new Set(D)),g=l.useCallback(e=>e.map(r=>({...r,isExpanded:E.has(r.id),children:r.children?g(r.children):void 0})),[E]),v=l.useCallback((e,r)=>{if(!r)return e;let a=[];for(let i of e)if(i.name.toLowerCase().includes(r.toLowerCase()))a.push(i);else if(i.type==="folder"&&i.children){let f=v(i.children,r);f.length>0&&a.push({...i,children:f,isExpanded:true});}return a},[]),N=l.useMemo(()=>{let e=g(c);return d?v(e,d):e},[c,d,g,v]),S=l.useCallback(e=>{V(r=>{let a=new Set(r);return a.has(e.id)?a.delete(e.id):a.add(e.id),a}),F?.(e);},[F]),k=l.useCallback((e,r=0)=>{let a=x?re(e.name,e.type==="folder"):null,i=e.type==="folder"&&e.isExpanded?FolderOpen:Folder,f=h===e.id||h===e.path;return jsxs("div",{children:[jsxs("div",{className:cn("flex items-center gap-2 px-2 py-1 hover:bg-muted/50 cursor-pointer transition-colors",f&&"bg-muted","rounded-sm"),style:{paddingLeft:`${r*16+8}px`},onClick:()=>{e.type==="folder"?S(e):s?.(e);},children:[e.type==="folder"&&jsx("div",{className:"w-4 h-4 flex items-center justify-center",children:e.isExpanded?jsx(ChevronDown,{className:"h-3 w-3"}):jsx(ChevronRight,{className:"h-3 w-3"})}),x&&jsx("div",{className:"w-4 h-4 flex items-center justify-center flex-shrink-0",children:e.type==="folder"?jsx(i,{className:"h-4 w-4 text-blue-500"}):a?jsx(a,{className:"h-4 w-4 text-muted-foreground"}):null}),jsx("span",{className:"flex-1 truncate",children:e.name}),w&&e.type==="file"&&e.size&&jsx("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:se(e.size)}),T&&e.modified&&jsx("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:ae(e.modified)})]}),e.type==="folder"&&e.isExpanded&&e.children&&jsx("div",{children:e.children.map(u=>k(u,r+1))})]},e.id)},[x,w,T,h,S,s]),A=p(()=>{C("");},"clearSearch");return jsxs("div",{ref:P,className:cn(te({size:n}),o),style:{height:z},...I,children:[j&&jsx("div",{className:"flex items-center gap-2 border-b px-4 py-2",children:jsxs("div",{className:"relative flex-1",children:[jsx(Search,{className:"absolute left-2 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),jsx(Input,{value:d,onChange:e=>C(e.target.value),placeholder:L,className:"pl-8 pr-8 h-8"}),d&&jsx(Button,{variant:"ghost",size:"sm",onClick:A,className:"absolute right-1 top-1/2 transform -translate-y-1/2 h-6 w-6 p-0",children:jsx(X,{className:"h-3 w-3"})})]})}),jsx(ScrollArea,{className:"flex-1",children:jsx("div",{className:"p-2",children:N.length===0?jsx("div",{className:"flex items-center justify-center h-24 text-muted-foreground",children:d?`No files match "${d}"`:B}):jsx("div",{className:"space-y-0.5",children:N.map(e=>k(e,0))})})}),jsxs("div",{className:"border-t px-4 py-2 text-xs text-muted-foreground",children:[(()=>{let e=p(f=>{let u=0,y=0;for(let b of f)if(b.type==="file")u++;else if(y++,b.children){let R=e(b.children);u+=R.files,y+=R.folders;}return {files:u,folders:y}},"countFiles"),{files:r,folders:a}=e(N),i=[];return r>0&&i.push(`${r} file${r===1?"":"s"}`),a>0&&i.push(`${a} folder${a===1?"":"s"}`),i.join(", ")||"Empty"})(),d&&jsx("span",{children:" (filtered)"})]})]})});ie.displayName="CodeExplorer";export{ie as CodeExplorer,te as codeExplorerVariants};
|
package/dist/code/index.js
CHANGED
|
@@ -1 +1,62 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var U=require('react'),classVarianceAuthority=require('class-variance-authority'),lucideReact=require('lucide-react'),shiki=require('shiki'),utils=require('@hanzo/ui/lib/utils'),badge=require('@hanzo/ui/badge'),button=require('@hanzo/ui/button'),skeleton=require('@hanzo/ui/skeleton'),jsxRuntime=require('react/jsx-runtime'),diff=require('@hanzo/ui/code/diff'),snippet=require('@hanzo/ui/code/snippet'),dropdownMenu=require('@hanzo/ui/dropdown-menu'),scrollArea=require('@hanzo/ui/scroll-area'),tabs=require('@hanzo/ui/tabs'),toggleGroup=require('@hanzo/ui/toggle-group'),Xt=require('@monaco-editor/react'),nextThemes=require('next-themes'),input=require('@hanzo/ui/input'),separator=require('@hanzo/ui/separator'),toggle=require('@hanzo/ui/toggle');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var U__namespace=/*#__PURE__*/_interopNamespace(U);var Xt__default=/*#__PURE__*/_interopDefault(Xt);var yt=Object.defineProperty;var x=(d,u)=>yt(d,"name",{value:u,configurable:true});var Be=classVarianceAuthority.cva("relative overflow-hidden rounded-lg border bg-muted/50",{variants:{theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700","vs-dark":"bg-slate-950 border-slate-800",monokai:"bg-slate-900 border-slate-700",dracula:"bg-slate-900 border-purple-800/30",nord:"bg-slate-800 border-slate-600"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{theme:"dark",size:"default"}}),Ve=U__namespace.memo(({line:d,lineNumber:u,showLineNumbers:l,isHighlighted:a=false,isDiffAdded:t=false,isDiffRemoved:s=false})=>jsxRuntime.jsxs("div",{className:utils.cn("group relative flex min-h-[1.5rem] items-center px-4 py-0.5",a&&"bg-blue-500/10 border-l-2 border-l-blue-500",t&&"bg-green-500/10 border-l-2 border-l-green-500",s&&"bg-red-500/10 border-l-2 border-l-red-500"),children:[l&&jsxRuntime.jsx("span",{className:"mr-4 inline-block w-8 select-none text-right text-xs text-muted-foreground",children:u}),(t||s)&&jsxRuntime.jsx("span",{className:"mr-2 select-none text-xs",children:t?"+":s?"-":" "}),jsxRuntime.jsx("div",{className:"flex-1 overflow-x-auto",dangerouslySetInnerHTML:{__html:d}})]}));Ve.displayName="CodeLine";var ze=U__namespace.forwardRef(({className:d,theme:u,size:l,code:a,language:t="text",filename:s,showLineNumbers:g=true,highlightLines:w=[],showCopyButton:L=true,maxHeight:E="400px",diff:X,...J},Y)=>{let[O,j]=U__namespace.useState(""),[H,M]=U__namespace.useState(false),[P,$]=U__namespace.useState(true),_={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark","vs-dark":"dark-plus",monokai:"monokai",dracula:"dracula",nord:"nord"};U__namespace.useEffect(()=>{x(async()=>{$(true);try{let N=await shiki.codeToHtml(a,{lang:t,theme:_[u||"dark"],transformers:[{code(r){let c=r.children.find(b=>b.type==="element"&&b.tagName==="code");c&&"children"in c&&c.children&&(r.children=c.children);}}]}),k=document.createElement("div");k.innerHTML=N;let B=k.querySelector("code");j(B?.innerHTML||N);}catch(N){console.error("Failed to highlight code:",N),j(a);}finally{$(false);}},"highlightCode")();},[a,t,u]);let R=U__namespace.useCallback(async()=>{try{await navigator.clipboard.writeText(a),M(!0),setTimeout(()=>M(!1),2e3);}catch(C){console.error("Failed to copy code:",C);}},[a]),F=O.split(`
|
|
2
|
+
`);return jsxRuntime.jsxs("div",{ref:Y,"data-testid":"code-block",className:utils.cn(Be({theme:u,size:l,className:d})),...J,children:[(s||t||L)&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[s&&jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx(lucideReact.FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:s})]}),t&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:t})]}),L&&jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",onClick:R,className:"h-8 w-8 p-0",children:[H?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"}),jsxRuntime.jsx("span",{className:"sr-only",children:H?"Copied":"Copy code"})]})]}),jsxRuntime.jsx("div",{className:"overflow-auto",style:{maxHeight:E},children:P?jsxRuntime.jsx("div",{className:"p-4 space-y-2",children:Array.from({length:10}).map((C,N)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[g&&jsxRuntime.jsx(skeleton.Skeleton,{"data-testid":"skeleton",className:"h-4 w-8"}),jsxRuntime.jsx(skeleton.Skeleton,{"data-testid":"skeleton",className:"h-4 flex-1"})]},N))}):jsxRuntime.jsx("div",{className:"font-mono",children:F.map((C,N)=>{let k=N+1,B=w.includes(k),r=X?.added?.includes(k),c=X?.removed?.includes(k);return jsxRuntime.jsx(Ve,{line:C,lineNumber:k,showLineNumbers:g,isHighlighted:B,isDiffAdded:r,isDiffRemoved:c},N)})})})]})});ze.displayName="CodeBlock";var Ae=classVarianceAuthority.cva("relative flex flex-col overflow-hidden rounded-lg border bg-background",{variants:{layout:{horizontal:"flex-col",vertical:"flex-row"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{layout:"horizontal",size:"default"}}),Oe=U__namespace.forwardRef(({className:d,layout:u,size:l,files:a,defaultView:t="side-by-side",showLineNumbers:s=true,showCopyButton:g=true,allowMerge:w=false,conflictMarkers:L=[],onMergeConflict:E,onFileSelect:X,height:J="600px",syncScroll:Y=true,...O},j)=>{let[H,M]=U__namespace.useState(t),[P,$]=U__namespace.useState(()=>a.length>=2?[a[0].id,a[1].id]:a.length>0?[a[0].id]:[]),[_,R]=U__namespace.useState({resolved:{},conflicts:L}),[F,C]=U__namespace.useState(false),N=U__namespace.useRef({}),k=U__namespace.useCallback((o,p)=>{Y&&Object.entries(N.current).forEach(([n,i])=>{n!==o&&i&&(i.scrollTop=p);});},[Y]),B=U__namespace.useCallback(async()=>{let o=P.map(p=>{let n=a.find(i=>i.id===p);return n?`=== ${n.filename} ===
|
|
3
|
+
${n.content}`:""}).join(`
|
|
4
|
+
|
|
5
|
+
`);try{await navigator.clipboard.writeText(o),C(!0),setTimeout(()=>C(!1),2e3);}catch(p){console.error("Failed to copy comparison:",p);}},[a,P]),r=U__namespace.useCallback((o,p)=>{R(n=>({...n,resolved:{...n.resolved,[o]:p}})),E?.(p);},[E]),c=U__namespace.useCallback((o,p)=>{let n=o.content.split(`
|
|
6
|
+
`),i=p.content.split(`
|
|
7
|
+
`),e=0,f=0,z=0,m=Math.max(n.length,i.length);for(let T=0;T<m;T++){let ce=n[T],ne=i[T];ce===void 0?e++:ne===void 0?f++:ce!==ne&&z++;}return {added:e,removed:f,modified:z}},[]),b=x(()=>jsxRuntime.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:a.map((o,p)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs(button.Button,{variant:P.includes(o.id)?"default":"outline",size:"sm",onClick:()=>{$(H==="three-way"?n=>n.includes(o.id)?n.filter(i=>i!==o.id):n.length<3?[...n,o.id]:[n[1],n[2],o.id]:n=>n.includes(o.id)?n.filter(i=>i!==o.id):n.length<2?[...n,o.id]:[n[1],o.id]),X?.(o.id);},className:"gap-2",children:[o.label||o.filename,o.version&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:o.version})]}),p<a.length-1&&H!=="three-way"&&jsxRuntime.jsx("span",{className:"text-muted-foreground",children:"vs"})]},o.id))}),"renderFileSelector"),V=x(()=>{let[o,p]=P.map(i=>a.find(e=>e.id===i)).filter(Boolean);if(!o||!p)return jsxRuntime.jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select two files to compare"});let n=c(o,p);return jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsx("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"Comparison"}),jsxRuntime.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[jsxRuntime.jsxs("span",{className:"text-green-600",children:["+",n.added]}),jsxRuntime.jsxs("span",{className:"text-red-600",children:["-",n.removed]}),jsxRuntime.jsxs("span",{className:"text-yellow-600",children:["~",n.modified]})]})]})}),jsxRuntime.jsx("div",{className:"flex-1 min-h-0",children:jsxRuntime.jsx(diff.CodeDiff,{oldCode:o.content,newCode:p.content,language:o.language,oldFilename:o.filename,newFilename:p.filename,showLineNumbers:s,showCopyButton:false,maxHeight:"100%",defaultView:"split",className:"border-0 rounded-none h-full"})})]})},"renderSideBySide"),G=x(()=>{let[o,p]=P.map(n=>a.find(i=>i.id===n)).filter(Boolean);return !o||!p?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select two files to compare"}):jsxRuntime.jsx(diff.CodeDiff,{oldCode:o.content,newCode:p.content,language:o.language,filename:`${o.filename} \u2192 ${p.filename}`,showLineNumbers:s,showCopyButton:false,maxHeight:"100%",defaultView:"unified",className:"border-0 rounded-none"})},"renderUnified"),Q=x(()=>{let[o,p,n]=P.map(i=>a.find(e=>e.id===i)).filter(Boolean);return !o||!p||!n?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select three files for three-way merge (base, current, incoming)"}):jsxRuntime.jsxs("div",{className:"grid grid-cols-3 gap-0 h-full",children:[jsxRuntime.jsxs("div",{className:"border-r",children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-muted/30",children:jsxRuntime.jsxs("span",{className:"text-sm font-medium",children:["Base (",o.filename,")"]})}),jsxRuntime.jsx(scrollArea.ScrollArea,{className:"h-full",ref:i=>{N.current.base=i;},onScrollCapture:i=>{let e=i.target;k("base",e.scrollTop);},children:jsxRuntime.jsx(snippet.CodeSnippet,{code:o.content,language:o.language,showLineNumbers:s,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]}),jsxRuntime.jsxs("div",{className:"border-r",children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-blue-500/10",children:jsxRuntime.jsxs("span",{className:"text-sm font-medium text-blue-600 dark:text-blue-400",children:["Current (",p.filename,")"]})}),jsxRuntime.jsx(scrollArea.ScrollArea,{className:"h-full",ref:i=>{N.current.current=i;},onScrollCapture:i=>{let e=i.target;k("current",e.scrollTop);},children:jsxRuntime.jsx(snippet.CodeSnippet,{code:p.content,language:p.language,showLineNumbers:s,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-green-500/10",children:jsxRuntime.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["Incoming (",n.filename,")"]})}),jsxRuntime.jsx(scrollArea.ScrollArea,{className:"h-full",ref:i=>{N.current.incoming=i;},onScrollCapture:i=>{let e=i.target;k("incoming",e.scrollTop);},children:jsxRuntime.jsx(snippet.CodeSnippet,{code:n.content,language:n.language,showLineNumbers:s,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]})]})},"renderThreeWay"),D=x(()=>!w||_.conflicts.length===0?null:jsxRuntime.jsx("div",{className:"border-t bg-muted/30",children:jsxRuntime.jsxs("div",{className:"px-4 py-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"Merge Conflicts"}),jsxRuntime.jsx(badge.Badge,{variant:"destructive",className:"text-xs",children:_.conflicts.length})]}),jsxRuntime.jsx("div",{className:"mt-2 space-y-2",children:_.conflicts.map((o,p)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[jsxRuntime.jsxs("span",{children:["Lines ",o.startLine,"-",o.endLine]}),jsxRuntime.jsxs("div",{className:"flex gap-1",children:[jsxRuntime.jsx(button.Button,{variant:"outline",size:"sm",onClick:()=>r(p,"current"),className:"h-6 text-xs",children:"Keep Current"}),jsxRuntime.jsx(button.Button,{variant:"outline",size:"sm",onClick:()=>r(p,"incoming"),className:"h-6 text-xs",children:"Accept Incoming"})]})]},p))})]})}),"renderMergeConflicts");return jsxRuntime.jsxs("div",{ref:j,className:utils.cn(Ae({layout:u,size:l}),d),style:{height:J},...O,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxRuntime.jsx("div",{className:"flex items-center gap-4",children:b()}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(tabs.Tabs,{value:H,onValueChange:o=>M(o),children:jsxRuntime.jsxs(tabs.TabsList,{className:"grid w-full grid-cols-3",children:[jsxRuntime.jsx(tabs.TabsTrigger,{value:"side-by-side",className:"text-xs",children:"Side by Side"}),jsxRuntime.jsx(tabs.TabsTrigger,{value:"unified",className:"text-xs",children:"Unified"}),jsxRuntime.jsx(tabs.TabsTrigger,{value:"three-way",className:"text-xs",children:"Three-way"})]})}),g&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:B,className:"h-8 w-8 p-0",children:F?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"})}),jsxRuntime.jsxs(dropdownMenu.DropdownMenu,{children:[jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger,{asChild:true,children:jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.MoreHorizontal,{className:"h-3.5 w-3.5"})})}),jsxRuntime.jsxs(dropdownMenu.DropdownMenuContent,{align:"end",children:[jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem,{onClick:()=>$([]),className:"gap-2",children:[jsxRuntime.jsx(lucideReact.RotateCcw,{className:"h-4 w-4"}),"Reset Selection"]}),jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem,{className:"gap-2",children:[jsxRuntime.jsx(lucideReact.Settings,{className:"h-4 w-4"}),"Settings"]})]})]})]})]}),jsxRuntime.jsxs("div",{className:"flex-1 min-h-0",children:[H==="side-by-side"&&V(),H==="unified"&&G(),H==="three-way"&&Q()]}),D()]})});Oe.displayName="CodeCompare";var Je=classVarianceAuthority.cva("relative overflow-hidden rounded-lg border bg-muted/50",{variants:{theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{theme:"dark",size:"default"}}),ye=U__namespace.memo(({change:d,showLineNumbers:u,isUnified:l=false,highlightedContent:a})=>{let t=x(()=>{let g="group relative flex min-h-[1.5rem] items-center py-0.5";if(l)switch(d.type){case "add":return utils.cn(g,"bg-green-500/10 border-l-2 border-l-green-500");case "remove":return utils.cn(g,"bg-red-500/10 border-l-2 border-l-red-500");default:return utils.cn(g,"hover:bg-muted/50")}return utils.cn(g,"hover:bg-muted/50")},"getLineClasses"),s=x(()=>{if(!l)return null;switch(d.type){case "add":return jsxRuntime.jsx(lucideReact.Plus,{className:"h-3 w-3 text-green-500 mr-2 flex-shrink-0"});case "remove":return jsxRuntime.jsx(lucideReact.Minus,{className:"h-3 w-3 text-red-500 mr-2 flex-shrink-0"});default:return jsxRuntime.jsx("span",{className:"w-3 mr-2 flex-shrink-0"})}},"getLinePrefix");return jsxRuntime.jsx("div",{className:t(),children:jsxRuntime.jsxs("div",{className:"flex items-center px-4 w-full",children:[u&&jsxRuntime.jsx("div",{className:"flex items-center gap-2 mr-4",children:l?jsxRuntime.jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:d.lineNumber}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:d.oldLineNumber||""}),jsxRuntime.jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:d.newLineNumber||""})]})}),s(),jsxRuntime.jsx("div",{className:"flex-1 overflow-x-auto font-mono",dangerouslySetInnerHTML:{__html:a||d.content}})]})})});ye.displayName="DiffLine";function Ue(d,u){let l=d.split(`
|
|
8
|
+
`),a=u.split(`
|
|
9
|
+
`),t=[],s=0,g=0,w=1;for(;s<l.length||g<a.length;){let L=l[s],E=a[g];s>=l.length?(t.push({type:"add",lineNumber:w++,content:E,newLineNumber:g+1}),g++):g>=a.length?(t.push({type:"remove",lineNumber:w++,content:L,oldLineNumber:s+1}),s++):L===E?(t.push({type:"unchanged",lineNumber:w++,content:L,oldLineNumber:s+1,newLineNumber:g+1}),s++,g++):(t.push({type:"remove",lineNumber:w++,content:L,oldLineNumber:s+1}),t.push({type:"add",lineNumber:w++,content:E,newLineNumber:g+1}),s++,g++);}return t}x(Ue,"generateDiff");var Xe=U__namespace.forwardRef(({className:d,theme:u,size:l,oldCode:a,newCode:t,language:s="text",filename:g,oldFilename:w,newFilename:L,showLineNumbers:E=true,showCopyButton:X=true,maxHeight:J="500px",defaultView:Y="unified",collapseUnchanged:O=false,contextLines:j=3,...H},M)=>{let[P,$]=U__namespace.useState(Y),[_,R]=U__namespace.useState(false),[F,C]=U__namespace.useState(true),[N,k]=U__namespace.useState(""),[B,r]=U__namespace.useState(""),[c,b]=U__namespace.useState([]),V={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark"};U__namespace.useEffect(()=>{x(async()=>{C(true);try{let[i,e]=await Promise.all([shiki.codeToHtml(a,{lang:s,theme:V[u||"dark"]}),shiki.codeToHtml(t,{lang:s,theme:V[u||"dark"]})]),f=x(m=>{let T=document.createElement("div");return T.innerHTML=m,T.querySelector("code")?.innerHTML||m},"extractContent");k(f(i)),r(f(e));let z=Ue(a,t);b(z);}catch(i){console.error("Failed to highlight code:",i),k(a),r(t),b(Ue(a,t));}finally{C(false);}},"highlightCode")();},[a,t,s,u]);let G=U__namespace.useCallback(async()=>{try{let n=P==="unified"?c.map(i=>`${i.type==="add"?"+":i.type==="remove"?"-":" "}${i.content}`).join(`
|
|
10
|
+
`):`--- ${w||"old"}
|
|
11
|
+
+++ ${L||"new"}
|
|
12
|
+
${a}
|
|
13
|
+
|
|
14
|
+
${t}`;await navigator.clipboard.writeText(n),R(!0),setTimeout(()=>R(!1),2e3);}catch(n){console.error("Failed to copy diff:",n);}},[c,P,a,t,w,L]),Q=U__namespace.useMemo(()=>{if(!O)return c;let n=[],i=0;for(;i<c.length;){let e=c[i];if(e.type!=="unchanged"){n.push(e),i++;continue}let f=i;for(;i<c.length&&c[i].type==="unchanged";)i++;let z=i-f;if(z<=j*2)for(let m=f;m<i;m++)n.push(c[m]);else {for(let m=f;m<f+j;m++)n.push(c[m]);n.push({type:"unchanged",lineNumber:-1,content:`... ${z-j*2} unchanged lines ...`});for(let m=i-j;m<i;m++)n.push(c[m]);}}return n},[c,O,j]),D=U__namespace.useMemo(()=>{let n=c.filter(e=>e.type==="add").length,i=c.filter(e=>e.type==="remove").length;return {additions:n,deletions:i}},[c]),o=x(()=>{let n=N.split(`
|
|
15
|
+
`),i=B.split(`
|
|
16
|
+
`);return jsxRuntime.jsx("div",{className:"font-mono",children:Q.map((e,f)=>{if(e.lineNumber===-1)return jsxRuntime.jsx("div",{className:"flex items-center justify-center py-2 text-muted-foreground bg-muted/30",children:jsxRuntime.jsx("span",{className:"text-xs",children:e.content})},f);let z=e.content;return e.type==="add"&&e.newLineNumber?z=i[e.newLineNumber-1]||e.content:(e.type==="remove"&&e.oldLineNumber||e.type==="unchanged"&&e.oldLineNumber)&&(z=n[e.oldLineNumber-1]||e.content),jsxRuntime.jsx(ye,{change:e,showLineNumbers:E,isUnified:true,highlightedContent:z},f)})})},"renderUnifiedView"),p=x(()=>{let n=N.split(`
|
|
17
|
+
`),i=B.split(`
|
|
18
|
+
`);return jsxRuntime.jsxs("div",{className:"grid grid-cols-2 gap-0",children:[jsxRuntime.jsxs("div",{className:"border-r",children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-red-500/10",children:jsxRuntime.jsx("span",{className:"text-sm font-medium text-red-600 dark:text-red-400",children:w||g||"Old"})}),jsxRuntime.jsx("div",{className:"font-mono",children:n.map((e,f)=>jsxRuntime.jsx(ye,{change:{type:"remove",lineNumber:f+1,content:e,oldLineNumber:f+1},showLineNumbers:E,highlightedContent:e},`old-${f}`))})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-green-500/10",children:jsxRuntime.jsx("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:L||g||"New"})}),jsxRuntime.jsx("div",{className:"font-mono",children:i.map((e,f)=>jsxRuntime.jsx(ye,{change:{type:"add",lineNumber:f+1,content:e,newLineNumber:f+1},showLineNumbers:E,highlightedContent:e},`new-${f}`))})]})]})},"renderSplitView");return jsxRuntime.jsxs("div",{ref:M,className:utils.cn(Je({theme:u,size:l,className:d})),...H,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(lucideReact.GitCompare,{className:"h-4 w-4 text-muted-foreground"}),g&&jsxRuntime.jsx("span",{className:"text-sm font-medium",children:g}),s&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:s})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[jsxRuntime.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntime.jsx(lucideReact.Plus,{className:"h-3 w-3 text-green-500"}),D.additions]}),jsxRuntime.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntime.jsx(lucideReact.Minus,{className:"h-3 w-3 text-red-500"}),D.deletions]})]})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs(toggleGroup.ToggleGroup,{type:"single",value:P,onValueChange:n=>n&&$(n),size:"sm",children:[jsxRuntime.jsx(toggleGroup.ToggleGroupItem,{value:"unified","aria-label":"Unified view",children:jsxRuntime.jsx(lucideReact.Square,{className:"h-3 w-3"})}),jsxRuntime.jsx(toggleGroup.ToggleGroupItem,{value:"split","aria-label":"Split view",children:jsxRuntime.jsx(lucideReact.SplitSquareHorizontal,{className:"h-3 w-3"})})]}),X&&jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",onClick:G,className:"h-8 w-8 p-0",children:[_?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"}),jsxRuntime.jsx("span",{className:"sr-only",children:_?"Copied":"Copy diff"})]})]})]}),jsxRuntime.jsx("div",{className:"overflow-auto",style:{maxHeight:J},children:F?jsxRuntime.jsx("div",{className:"p-4 space-y-2",children:Array.from({length:10}).map((n,i)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[E&&jsxRuntime.jsx(skeleton.Skeleton,{className:"h-4 w-8"}),jsxRuntime.jsx(skeleton.Skeleton,{className:"h-4 flex-1"})]},i))}):P==="unified"?o():p()})]})});Xe.displayName="CodeDiff";var oa=["javascript","typescript","python","java","csharp","cpp","c","go","rust","ruby","php","swift","kotlin","dart","html","css","scss","json","xml","yaml","sql","markdown","shell","plaintext"],Qe={javascript:"JavaScript",typescript:"TypeScript",python:"Python",java:"Java",csharp:"C#",cpp:"C++",c:"C",go:"Go",rust:"Rust",ruby:"Ruby",php:"PHP",swift:"Swift",kotlin:"Kotlin",dart:"Dart",html:"HTML",css:"CSS",scss:"SCSS",json:"JSON",xml:"XML",yaml:"YAML",sql:"SQL",markdown:"Markdown",shell:"Shell",plaintext:"Plain Text"},et=U__namespace.forwardRef(({value:d,defaultValue:u="",language:l="javascript",height:a="400px",theme:t="auto",onChange:s,onMount:g,readOnly:w=false,lineNumbers:L=true,minimap:E=false,wordWrap:X="on",fontSize:J=14,className:Y,showCopyButton:O=true,showLanguageSelector:j=true,availableLanguages:H=oa},M)=>{let{theme:P}=nextThemes.useTheme(),[$,_]=U__namespace.useState(l),[R,F]=U__namespace.useState(false),[C,N]=U__namespace.useState(d||u);U__namespace.useEffect(()=>{d!==void 0&&N(d);},[d]);let k=U__namespace.useCallback(async()=>{try{await navigator.clipboard.writeText(C),F(!0),setTimeout(()=>F(!1),2e3);}catch(c){console.error("Failed to copy:",c);}},[C]),B=U__namespace.useCallback((c,b)=>{N(c||""),s&&s(c,b);},[s]),r=U__namespace.useMemo(()=>t==="auto"?P==="dark"?"vs-dark":"light":t==="dark"?"vs-dark":"light",[t,P]);return jsxRuntime.jsxs("div",{ref:M,className:utils.cn("relative overflow-hidden rounded-md border bg-background",Y),children:[(j||O)&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b bg-muted/50 px-3 py-2",children:[j&&jsxRuntime.jsxs(dropdownMenu.DropdownMenu,{children:[jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger,{asChild:true,children:jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",className:"h-8 gap-1 px-2 text-xs font-mono",children:[Qe[$]||$,jsxRuntime.jsx(lucideReact.ChevronDown,{className:"h-3 w-3"})]})}),jsxRuntime.jsx(dropdownMenu.DropdownMenuContent,{align:"start",className:"max-h-80 overflow-auto",children:H.map(c=>jsxRuntime.jsx(dropdownMenu.DropdownMenuItem,{onClick:()=>_(c),className:"font-mono text-xs",children:Qe[c]||c},c))})]}),O&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 px-2 text-xs",onClick:k,disabled:!C,children:R?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Check,{className:"h-3 w-3"}),"Copied!"]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Copy,{className:"h-3 w-3"}),"Copy"]})})]}),jsxRuntime.jsx(Xt__default.default,{height:a,defaultLanguage:l,language:$,value:C,defaultValue:u,theme:r,onChange:B,onMount:g,options:{readOnly:w,lineNumbers:L?"on":"off",minimap:{enabled:E},wordWrap:X,fontSize:J,scrollBeyondLastLine:false,automaticLayout:true,tabSize:2,insertSpaces:true,formatOnPaste:true,formatOnType:true,scrollbar:{vertical:"auto",horizontal:"auto",verticalScrollbarSize:10,horizontalScrollbarSize:10},padding:{top:16,bottom:16}}})]})});et.displayName="CodeEditor";var st=classVarianceAuthority.cva("relative flex flex-col overflow-hidden rounded-lg border bg-background",{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),ya=x((d,u=false)=>{if(u)return lucideReact.Folder;switch(d.split(".").pop()?.toLowerCase()){case "js":case "jsx":case "ts":case "tsx":case "vue":case "svelte":return lucideReact.FileCode;case "json":case "xml":case "yaml":case "yml":case "toml":case "ini":return lucideReact.FileText;case "png":case "jpg":case "jpeg":case "gif":case "svg":case "webp":case "ico":return lucideReact.FileImage;default:return lucideReact.File}},"getFileIcon"),wa=x(d=>{if(!d)return "";let u=["B","KB","MB","GB"],l=d,a=0;for(;l>=1024&&a<u.length-1;)l/=1024,a++;return `${l.toFixed(1)} ${u[a]}`},"formatFileSize"),Na=x(d=>{if(!d)return "";let l=new Date().getTime()-d.getTime(),a=Math.floor(l/(1e3*60*60*24));return a===0?"Today":a===1?"Yesterday":a<7?`${a} days ago`:a<30?`${Math.floor(a/7)} weeks ago`:a<365?`${Math.floor(a/30)} months ago`:`${Math.floor(a/365)} years ago`},"formatModifiedDate"),rt=U__namespace.forwardRef(({className:d,size:u,files:l,onFileSelect:a,onFolderToggle:t,selectedFile:s,showSearch:g=true,showFileIcons:w=true,showFileSize:L=false,showModifiedDate:E=false,height:X="400px",defaultExpanded:J=[],searchPlaceholder:Y="Search files...",emptyMessage:O="No files found",...j},H)=>{let[M,P]=U__namespace.useState(""),[$,_]=U__namespace.useState(new Set(J)),R=U__namespace.useCallback(r=>r.map(c=>({...c,isExpanded:$.has(c.id),children:c.children?R(c.children):void 0})),[$]),F=U__namespace.useCallback((r,c)=>{if(!c)return r;let b=[];for(let V of r)if(V.name.toLowerCase().includes(c.toLowerCase()))b.push(V);else if(V.type==="folder"&&V.children){let G=F(V.children,c);G.length>0&&b.push({...V,children:G,isExpanded:true});}return b},[]),C=U__namespace.useMemo(()=>{let r=R(l);return M?F(r,M):r},[l,M,R,F]),N=U__namespace.useCallback(r=>{_(c=>{let b=new Set(c);return b.has(r.id)?b.delete(r.id):b.add(r.id),b}),t?.(r);},[t]),k=U__namespace.useCallback((r,c=0)=>{let b=w?ya(r.name,r.type==="folder"):null,V=r.type==="folder"&&r.isExpanded?lucideReact.FolderOpen:lucideReact.Folder,G=s===r.id||s===r.path;return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:utils.cn("flex items-center gap-2 px-2 py-1 hover:bg-muted/50 cursor-pointer transition-colors",G&&"bg-muted","rounded-sm"),style:{paddingLeft:`${c*16+8}px`},onClick:()=>{r.type==="folder"?N(r):a?.(r);},children:[r.type==="folder"&&jsxRuntime.jsx("div",{className:"w-4 h-4 flex items-center justify-center",children:r.isExpanded?jsxRuntime.jsx(lucideReact.ChevronDown,{className:"h-3 w-3"}):jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-3 w-3"})}),w&&jsxRuntime.jsx("div",{className:"w-4 h-4 flex items-center justify-center flex-shrink-0",children:r.type==="folder"?jsxRuntime.jsx(V,{className:"h-4 w-4 text-blue-500"}):b?jsxRuntime.jsx(b,{className:"h-4 w-4 text-muted-foreground"}):null}),jsxRuntime.jsx("span",{className:"flex-1 truncate",children:r.name}),L&&r.type==="file"&&r.size&&jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:wa(r.size)}),E&&r.modified&&jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:Na(r.modified)})]}),r.type==="folder"&&r.isExpanded&&r.children&&jsxRuntime.jsx("div",{children:r.children.map(Q=>k(Q,c+1))})]},r.id)},[w,L,E,s,N,a]),B=x(()=>{P("");},"clearSearch");return jsxRuntime.jsxs("div",{ref:H,className:utils.cn(st({size:u}),d),style:{height:X},...j,children:[g&&jsxRuntime.jsx("div",{className:"flex items-center gap-2 border-b px-4 py-2",children:jsxRuntime.jsxs("div",{className:"relative flex-1",children:[jsxRuntime.jsx(lucideReact.Search,{className:"absolute left-2 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),jsxRuntime.jsx(input.Input,{value:M,onChange:r=>P(r.target.value),placeholder:Y,className:"pl-8 pr-8 h-8"}),M&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:B,className:"absolute right-1 top-1/2 transform -translate-y-1/2 h-6 w-6 p-0",children:jsxRuntime.jsx(lucideReact.X,{className:"h-3 w-3"})})]})}),jsxRuntime.jsx(scrollArea.ScrollArea,{className:"flex-1",children:jsxRuntime.jsx("div",{className:"p-2",children:C.length===0?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-24 text-muted-foreground",children:M?`No files match "${M}"`:O}):jsxRuntime.jsx("div",{className:"space-y-0.5",children:C.map(r=>k(r,0))})})}),jsxRuntime.jsxs("div",{className:"border-t px-4 py-2 text-xs text-muted-foreground",children:[(()=>{let r=x(G=>{let Q=0,D=0;for(let o of G)if(o.type==="file")Q++;else if(D++,o.children){let p=r(o.children);Q+=p.files,D+=p.folders;}return {files:Q,folders:D}},"countFiles"),{files:c,folders:b}=r(C),V=[];return c>0&&V.push(`${c} file${c===1?"":"s"}`),b>0&&V.push(`${b} folder${b===1?"":"s"}`),V.join(", ")||"Empty"})(),M&&jsxRuntime.jsx("span",{children:" (filtered)"})]})]})});rt.displayName="CodeExplorer";var mt=classVarianceAuthority.cva("relative overflow-hidden rounded-lg border bg-background",{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),Ia=x(d=>{let u=d.find(s=>s.type==="html"),l=d.filter(s=>s.type==="css"),a=d.filter(s=>s.type==="js"),t=u?.content||"<div>No HTML file provided</div>";if(l.length>0&&(t=`<style>${l.map(g=>g.content).join(`
|
|
19
|
+
`)}</style>
|
|
20
|
+
${t}`),a.length>0){let s=a.map(g=>g.content).join(`
|
|
21
|
+
`);t=`${t}
|
|
22
|
+
<script>${s}</script>`;}return t},"runHTMLCode"),ja=`
|
|
23
|
+
<script>
|
|
24
|
+
const originalConsole = window.console;
|
|
25
|
+
const logs = [];
|
|
26
|
+
|
|
27
|
+
['log', 'warn', 'error', 'info'].forEach(method => {
|
|
28
|
+
window.console[method] = function(...args) {
|
|
29
|
+
logs.push({
|
|
30
|
+
type: method,
|
|
31
|
+
content: args.map(arg =>
|
|
32
|
+
typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)
|
|
33
|
+
).join(' '),
|
|
34
|
+
timestamp: Date.now()
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
// Also call original console method
|
|
38
|
+
originalConsole[method].apply(originalConsole, arguments);
|
|
39
|
+
|
|
40
|
+
// Send to parent
|
|
41
|
+
window.parent.postMessage({
|
|
42
|
+
type: 'console',
|
|
43
|
+
data: logs[logs.length - 1]
|
|
44
|
+
}, '*');
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
window.addEventListener('error', (e) => {
|
|
49
|
+
window.parent.postMessage({
|
|
50
|
+
type: 'error',
|
|
51
|
+
data: {
|
|
52
|
+
type: 'error',
|
|
53
|
+
content: e.message + ' at ' + e.filename + ':' + e.lineno,
|
|
54
|
+
timestamp: Date.now()
|
|
55
|
+
}
|
|
56
|
+
}, '*');
|
|
57
|
+
});
|
|
58
|
+
</script>
|
|
59
|
+
`,pt=U__namespace.forwardRef(({className:d,size:u,files:l,defaultFile:a,showPreview:t=true,showConsole:s=true,autoRun:g=false,maxHeight:w="600px",previewHeight:L="300px",consoleHeight:E="150px",allowFullscreen:X=true,customRunner:J,...Y},O)=>{let [j,H]=U__namespace.useState(a||l[0]?.filename||""),[M,P]=U__namespace.useState(""),[$,_]=U__namespace.useState(false),[R,F]=U__namespace.useState([]),[C,N]=U__namespace.useState(t),[k,B]=U__namespace.useState(s),[r,c]=U__namespace.useState(false),[b,V]=U__namespace.useState({}),G=U__namespace.useRef(null);l.find(e=>e.filename===j)||l[0];U__namespace.useEffect(()=>{let e=x(f=>{(f.data?.type==="console"||f.data?.type==="error")&&F(z=>[...z,f.data.data]);},"handleMessage");return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[]);let D=U__namespace.useCallback(async()=>{_(true),F([]);try{let e;if(J?e=await J(l):e=Ia(l),e=ja+e,P(e),G.current){let f=G.current.contentDocument;f&&(f.open(),f.write(e),f.close());}}catch(e){F([{type:"error",content:e instanceof Error?e.message:String(e),timestamp:Date.now()}]);}finally{_(false);}},[l,J]);U__namespace.useEffect(()=>{if(g){let e=setTimeout(D,1e3);return ()=>clearTimeout(e)}},[l,g,D]);let o=U__namespace.useCallback(async e=>{let f=l.find(z=>z.filename===e);if(f)try{await navigator.clipboard.writeText(f.content),V(z=>({...z,[e]:!0})),setTimeout(()=>{V(z=>({...z,[e]:!1}));},2e3);}catch(z){console.error("Failed to copy code:",z);}},[l]),p=x(()=>{F([]);},"clearConsole"),n=x(()=>jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(lucideReact.Terminal,{className:"h-4 w-4"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"Console"}),R.length>0&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:R.length})]}),jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:p,className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.X,{className:"h-3.5 w-3.5"})})]}),jsxRuntime.jsx("div",{className:"flex-1 overflow-auto p-2 space-y-1 font-mono text-xs",children:R.length===0?jsxRuntime.jsx("div",{className:"text-muted-foreground italic",children:"No output"}):R.map((e,f)=>jsxRuntime.jsxs("div",{className:utils.cn("flex items-start gap-2 p-2 rounded",e.type==="error"&&"bg-red-500/10 text-red-600 dark:text-red-400",e.type==="log"&&"bg-blue-500/10 text-blue-600 dark:text-blue-400",e.type==="output"&&"bg-green-500/10 text-green-600 dark:text-green-400"),children:[jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground",children:new Date(e.timestamp).toLocaleTimeString()}),jsxRuntime.jsx("pre",{className:"flex-1 whitespace-pre-wrap break-words",children:e.content})]},f))})]}),"renderConsole"),i=r?"fixed inset-0 z-50 bg-background":"";return jsxRuntime.jsxs("div",{ref:O,className:utils.cn(mt({size:u}),i,d),style:{maxHeight:r?"100vh":w},...Y,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxRuntime.jsx(tabs.Tabs,{value:j,onValueChange:H,className:"flex-1",children:jsxRuntime.jsx(tabs.TabsList,{className:"h-auto p-0 bg-transparent",children:l.map(e=>jsxRuntime.jsxs(tabs.TabsTrigger,{value:e.filename,className:"relative flex items-center gap-2 data-[state=active]:bg-muted",children:[jsxRuntime.jsx("span",{children:e.filename}),jsxRuntime.jsx(badge.Badge,{variant:"outline",className:"text-xs",children:e.language}),jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:f=>{f.stopPropagation(),o(e.filename);},className:"h-6 w-6 p-0 opacity-0 group-hover:opacity-100",children:b[e.filename]?jsxRuntime.jsx(lucideReact.Check,{className:"h-3 w-3 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3 w-3"})})]},e.filename))})}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(toggle.Toggle,{pressed:C,onPressedChange:N,"aria-label":"Toggle preview",size:"sm",children:C?jsxRuntime.jsx(lucideReact.Eye,{className:"h-4 w-4"}):jsxRuntime.jsx(lucideReact.EyeOff,{className:"h-4 w-4"})}),jsxRuntime.jsx(toggle.Toggle,{pressed:k,onPressedChange:B,"aria-label":"Toggle console",size:"sm",children:jsxRuntime.jsx(lucideReact.Terminal,{className:"h-4 w-4"})}),jsxRuntime.jsxs(button.Button,{variant:"outline",size:"sm",onClick:D,disabled:$,className:"gap-2",children:[$?jsxRuntime.jsx(lucideReact.RefreshCw,{className:"h-4 w-4 animate-spin"}):jsxRuntime.jsx(lucideReact.Play,{className:"h-4 w-4"}),"Run"]}),X&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:()=>c(!r),className:"h-8 w-8 p-0",children:r?jsxRuntime.jsx(lucideReact.Square,{className:"h-4 w-4"}):jsxRuntime.jsx(lucideReact.Settings,{className:"h-4 w-4"})})]})]}),jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsx("div",{className:"flex-1 min-h-0",children:jsxRuntime.jsx(tabs.Tabs,{value:j,onValueChange:H,children:l.map(e=>jsxRuntime.jsx(tabs.TabsContent,{value:e.filename,className:"m-0 h-full",children:jsxRuntime.jsx(snippet.CodeSnippet,{code:e.content,language:e.language,showLineNumbers:true,showCopyButton:false,showHeader:false,maxHeight:"100%",className:"border-0 rounded-none"})},e.filename))})}),(C||k)&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(separator.Separator,{}),jsxRuntime.jsxs("div",{className:"flex flex-col lg:flex-row min-h-0",children:[C&&jsxRuntime.jsxs("div",{className:"flex-1 min-h-0 border-r last:border-r-0",style:{height:L},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 border-b px-4 py-2 bg-muted/30",children:[jsxRuntime.jsx(lucideReact.Eye,{className:"h-4 w-4"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"Preview"}),R.filter(e=>e.type==="error").length>0&&jsxRuntime.jsx(lucideReact.AlertTriangle,{className:"h-4 w-4 text-red-500"})]}),jsxRuntime.jsx("iframe",{ref:G,className:"w-full h-full bg-white",sandbox:"allow-scripts allow-same-origin",srcDoc:M})]}),k&&jsxRuntime.jsx("div",{className:"flex-1 min-h-0",style:{height:E},children:n()})]})]})]}),r&&jsxRuntime.jsx("div",{className:"absolute inset-0 bg-black/50",onClick:()=>c(false)})]})});pt.displayName="CodePreview";var Le=classVarianceAuthority.cva("relative group",{variants:{variant:{default:"rounded-lg border bg-muted/50",inline:"inline-block rounded-md bg-muted px-2 py-1",minimal:"bg-transparent"},theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700",terminal:"bg-black border-green-500/30 text-green-400",retro:"bg-amber-50 border-amber-200 text-amber-900"},size:{xs:"text-xs",sm:"text-sm",default:"text-sm",lg:"text-base"}},defaultVariants:{variant:"default",theme:"dark",size:"default"}}),Me=U__namespace.forwardRef(({className:d,variant:u,theme:l,size:a,code:t,language:s="text",filename:g,showLineNumbers:w=false,highlightLines:L=[],showCopyButton:E=true,showLanguageBadge:X=true,showHeader:J=true,maxHeight:Y,expandable:O=false,collapsedHeight:j="200px",wrapLines:H=false,startLineNumber:M=1,...P},$)=>{let[_,R]=U__namespace.useState(""),[F,C]=U__namespace.useState(false),[N,k]=U__namespace.useState(true),[B,r]=U__namespace.useState(!O),c={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark",terminal:"github-dark",retro:"github-light"};U__namespace.useEffect(()=>{x(async()=>{k(true);try{let o=Object.keys(shiki.bundledLanguages).includes(s),p=await shiki.codeToHtml(t,{lang:o?s:"text",theme:c[l||"dark"]}),n=document.createElement("div");n.innerHTML=p;let i=n.querySelector("code");R(i?.innerHTML||p);}catch(o){console.error("Failed to highlight code:",o);let p=t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");R(p);}finally{k(false);}},"highlightCode")();},[t,s,l]);let b=U__namespace.useCallback(async()=>{try{await navigator.clipboard.writeText(t),C(!0),setTimeout(()=>C(!1),2e3);}catch(D){console.error("Failed to copy code:",D);}},[t]),V=_.split(`
|
|
60
|
+
`).filter((D,o,p)=>D.trim()!==""||o<p.length-1),G=x(()=>jsxRuntime.jsx("code",{className:utils.cn(Le({variant:u,theme:l,size:a}),"font-mono",d),dangerouslySetInnerHTML:{__html:_}}),"renderInline"),Q=x(()=>jsxRuntime.jsxs("div",{ref:$,className:utils.cn(Le({variant:u,theme:l,size:a}),"overflow-hidden",d),...P,children:[J&&(g||s||E||O)&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[g&&jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx(lucideReact.FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:g})]}),X&&s&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:s})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[O&&jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",onClick:()=>r(!B),className:"h-8 w-8 p-0",children:[B?jsxRuntime.jsx(lucideReact.Minimize2,{className:"h-3.5 w-3.5"}):jsxRuntime.jsx(lucideReact.Maximize2,{className:"h-3.5 w-3.5"}),jsxRuntime.jsx("span",{className:"sr-only",children:B?"Collapse":"Expand"})]}),E&&jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",onClick:b,className:"h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity",children:[F?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"}),jsxRuntime.jsx("span",{className:"sr-only",children:F?"Copied":"Copy code"})]})]})]}),jsxRuntime.jsx("div",{className:utils.cn("overflow-auto",!H&&"overflow-x-auto"),style:{maxHeight:B?Y:j},children:N?jsxRuntime.jsx("div",{className:"p-4 space-y-2",children:Array.from({length:Math.min(V.length||5,10)}).map((D,o)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[w&&jsxRuntime.jsx(skeleton.Skeleton,{className:"h-4 w-8"}),jsxRuntime.jsx(skeleton.Skeleton,{className:"h-4 flex-1"})]},o))}):jsxRuntime.jsx("div",{className:"font-mono",children:V.map((D,o)=>{let p=o+M,n=L.includes(p);return jsxRuntime.jsxs("div",{className:utils.cn("group relative flex min-h-[1.5rem] items-center px-4 py-0.5",n&&"bg-blue-500/10 border-l-2 border-l-blue-500",!H&&"whitespace-nowrap"),children:[w&&jsxRuntime.jsx("span",{className:"mr-4 inline-block w-8 select-none text-right text-xs text-muted-foreground",children:p}),jsxRuntime.jsx("div",{className:utils.cn("flex-1",H?"whitespace-pre-wrap break-words":"overflow-x-auto"),dangerouslySetInnerHTML:{__html:D}})]},o)})})}),O&&!B&&jsxRuntime.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-8 bg-gradient-to-t from-background to-transparent pointer-events-none"}),u==="minimal"&&E&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:b,className:"absolute top-2 right-2 h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity",children:F?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"})})]}),"renderBlock");return u==="inline"?G():Q()});Me.displayName="CodeSnippet";var ht=U__namespace.forwardRef(({children:d,language:u,className:l,...a},t)=>jsxRuntime.jsx(Me,{ref:t,code:d,language:u,variant:"inline",showCopyButton:false,showLanguageBadge:false,showHeader:false,className:l,...a}));ht.displayName="InlineCode";var bt=U__namespace.forwardRef(({className:d,tabs:u=[],defaultTab:l=0,...a},t)=>{let[s,g]=U__namespace.useState(l);return u.length===0?jsxRuntime.jsx("div",{ref:t,className:utils.cn("rounded-lg border bg-card p-6 text-card-foreground shadow-sm",d),...a,children:jsxRuntime.jsx("p",{className:"text-sm text-muted-foreground",children:"No code tabs available. Add tabs to display code snippets."})}):jsxRuntime.jsxs("div",{ref:t,className:utils.cn("rounded-lg border bg-card text-card-foreground shadow-sm",d),...a,children:[jsxRuntime.jsx("div",{className:"border-b",children:jsxRuntime.jsx("div",{className:"flex gap-1 p-2",children:u.map((w,L)=>jsxRuntime.jsx("button",{onClick:()=>g(L),className:utils.cn("rounded-md px-4 py-2 text-sm font-medium transition-colors",s===L?"bg-primary text-primary-foreground":"hover:bg-muted"),children:w.label},L))})}),jsxRuntime.jsx("div",{className:"p-4",children:jsxRuntime.jsx("pre",{className:"overflow-x-auto rounded-md bg-muted p-4",children:jsxRuntime.jsx("code",{className:"text-sm",children:u[s]?.code})})})]})});bt.displayName="CodeTabs";var xt=classVarianceAuthority.cva("relative flex flex-col overflow-hidden rounded-lg border",{variants:{theme:{dark:"bg-black border-gray-700 text-green-400",light:"bg-white border-gray-300 text-gray-900",matrix:"bg-black border-green-500 text-green-400",hacker:"bg-gray-900 border-yellow-500 text-yellow-400",retro:"bg-amber-900 border-amber-600 text-amber-100",modern:"bg-slate-900 border-slate-700 text-slate-100"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{theme:"dark",size:"default"}}),ee={black:"text-black",red:"text-red-500",green:"text-green-500",yellow:"text-yellow-500",blue:"text-blue-500",magenta:"text-magenta-500",cyan:"text-cyan-500",white:"text-white",gray:"text-gray-500",brightRed:"text-red-400",brightGreen:"text-green-400",brightYellow:"text-yellow-400",brightBlue:"text-blue-400",brightMagenta:"text-magenta-400",brightCyan:"text-cyan-400",brightWhite:"text-gray-100"},os=x(d=>{let u=/\x1b\[([0-9;]*)m/g,l=[],a=0,t=[],s;for(;(s=u.exec(d))!==null;)s.index>a&&l.push({text:d.slice(a,s.index),classes:[...t]}),s[1].split(";").map(w=>parseInt(w)||0).forEach(w=>{switch(w){case 0:t=[];break;case 30:t.push(ee.black);break;case 31:t.push(ee.red);break;case 32:t.push(ee.green);break;case 33:t.push(ee.yellow);break;case 34:t.push(ee.blue);break;case 35:t.push(ee.magenta);break;case 36:t.push(ee.cyan);break;case 37:t.push(ee.white);break;case 90:t.push(ee.gray);break;case 91:t.push(ee.brightRed);break;case 92:t.push(ee.brightGreen);break;case 93:t.push(ee.brightYellow);break;case 94:t.push(ee.brightBlue);break;case 95:t.push(ee.brightMagenta);break;case 96:t.push(ee.brightCyan);break;case 97:t.push(ee.brightWhite);break}}),a=s.index+s[0].length;return a<d.length&&l.push({text:d.slice(a),classes:[...t]}),l.map((g,w)=>jsxRuntime.jsx("span",{className:utils.cn(g.classes),children:g.text},w))},"parseAnsiContent"),vt=U__namespace.forwardRef(({className:d,theme:u,size:l,title:a="Terminal",prompt:t="$",maxLines:s=1e3,showLineNumbers:g=false,allowInput:w=true,allowClear:L=true,allowCopy:E=true,allowDownload:X=false,allowFullscreen:J=true,height:Y="400px",autoScroll:O=true,history:j=[],onCommand:H,onClear:M,initialLines:P=[],...$},_)=>{let[R,F]=U__namespace.useState(P),[C,N]=U__namespace.useState(""),[k,B]=U__namespace.useState(-1),[r,c]=U__namespace.useState(false),[b,V]=U__namespace.useState(j),G=U__namespace.useRef(null),Q=U__namespace.useRef(null);U__namespace.useEffect(()=>{O&&G.current&&(G.current.scrollTop=G.current.scrollHeight);},[R,O]);let D=U__namespace.useCallback(m=>{let T={...m,id:`line-${Date.now()}-${Math.random()}`,timestamp:Date.now()};F(ce=>{let ne=[...ce,T];return ne.length>s?ne.slice(-s):ne});},[s]),o=U__namespace.useCallback(async m=>{if(m.trim()){if(V(T=>[...T,m]),B(-1),D({type:"input",content:`${t} ${m}`,command:m}),m==="clear"){M?M():F([]);return}if(m==="history"){b.forEach((T,ce)=>{D({type:"output",content:`${ce+1} ${T}`});});return}if(m.startsWith("echo ")){D({type:"output",content:m.slice(5)});return}if(H)try{await H(m);}catch(T){D({type:"error",content:T instanceof Error?T.message:String(T),exitCode:1});}else D({type:"error",content:`Command not found: ${m}`,exitCode:127});}},[t,D,H,M,b]),p=x(m=>{m.preventDefault(),C.trim()&&(o(C),N(""));},"handleInputSubmit"),n=x(m=>{if(m.key==="ArrowUp"){if(m.preventDefault(),k<b.length-1){let T=k+1;B(T),N(b[b.length-1-T]||"");}}else if(m.key==="ArrowDown")if(m.preventDefault(),k>0){let T=k-1;B(T),N(b[b.length-1-T]||"");}else k===0&&(B(-1),N(""));},"handleKeyDown"),i=U__namespace.useCallback(async()=>{let m=R.map(T=>T.content).join(`
|
|
61
|
+
`);try{await navigator.clipboard.writeText(m);}catch(T){console.error("Failed to copy terminal content:",T);}},[R]),e=U__namespace.useCallback(()=>{let m=R.map(He=>`[${new Date(He.timestamp).toISOString()}] ${He.content}`).join(`
|
|
62
|
+
`),T=new Blob([m],{type:"text/plain"}),ce=URL.createObjectURL(T),ne=document.createElement("a");ne.href=ce,ne.download=`terminal-${Date.now()}.txt`,document.body.appendChild(ne),ne.click(),document.body.removeChild(ne),URL.revokeObjectURL(ce);},[R]),f=x(()=>{M?M():F([]);},"clearTerminal"),z=x(()=>{w&&Q.current&&Q.current.focus();},"handleTerminalClick");return jsxRuntime.jsxs("div",{ref:_,className:utils.cn(xt({theme:u,size:l}),r&&"fixed inset-0 z-50",d),style:{height:r?"100vh":Y},onClick:z,...$,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs("div",{className:"flex gap-1",children:[jsxRuntime.jsx("div",{className:"w-3 h-3 rounded-full bg-red-500"}),jsxRuntime.jsx("div",{className:"w-3 h-3 rounded-full bg-yellow-500"}),jsxRuntime.jsx("div",{className:"w-3 h-3 rounded-full bg-green-500"})]}),jsxRuntime.jsx(lucideReact.Terminal,{className:"h-4 w-4"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:a}),R.length>0&&jsxRuntime.jsxs("span",{className:"text-xs text-muted-foreground",children:[R.length," lines"]})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[L&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:f,className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.RefreshCw,{className:"h-3.5 w-3.5"})}),E&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:i,className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"})}),X&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:e,className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.Download,{className:"h-3.5 w-3.5"})}),J&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:()=>c(!r),className:"h-8 w-8 p-0",children:r?jsxRuntime.jsx(lucideReact.Minimize2,{className:"h-3.5 w-3.5"}):jsxRuntime.jsx(lucideReact.Maximize2,{className:"h-3.5 w-3.5"})})]})]}),jsxRuntime.jsxs("div",{className:"flex-1 flex flex-col min-h-0",children:[jsxRuntime.jsx(scrollArea.ScrollArea,{ref:G,className:"flex-1 p-4",children:jsxRuntime.jsx("div",{className:"space-y-1 font-mono",children:R.map((m,T)=>jsxRuntime.jsxs("div",{className:"flex items-start gap-2",children:[g&&jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground w-12 text-right flex-shrink-0",children:T+1}),jsxRuntime.jsx("div",{className:utils.cn("flex-1 whitespace-pre-wrap break-words",m.type==="input"&&"text-inherit",m.type==="output"&&"text-muted-foreground",m.type==="error"&&"text-red-400",m.type==="system"&&"text-blue-400"),children:typeof m.content=="string"&&m.content.includes("\x1B[")?os(m.content):m.content})]},m.id))})}),w&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(separator.Separator,{}),jsxRuntime.jsx("form",{onSubmit:p,className:"p-4",children:jsxRuntime.jsxs("div",{className:"flex items-center gap-2 font-mono",children:[jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-4 w-4 flex-shrink-0"}),jsxRuntime.jsx("span",{className:"flex-shrink-0",children:t}),jsxRuntime.jsx(input.Input,{ref:Q,value:C,onChange:m=>N(m.target.value),onKeyDown:n,className:"flex-1 border-0 bg-transparent p-0 focus-visible:ring-0 font-mono",placeholder:"Enter command...",autoComplete:"off",autoFocus:true})]})})]})]})]})});vt.displayName="CodeTerminal";exports.CodeBlock=ze;exports.CodeCompare=Oe;exports.CodeDiff=Xe;exports.CodeEditor=et;exports.CodeExplorer=rt;exports.CodePreview=pt;exports.CodeSnippet=Me;exports.CodeTabs=bt;exports.CodeTerminal=vt;exports.InlineCode=ht;exports.codeBlockVariants=Be;exports.codeCompareVariants=Ae;exports.codeDiffVariants=Je;exports.codeExplorerVariants=st;exports.codePreviewVariants=mt;exports.codeSnippetVariants=Le;exports.codeTerminalVariants=xt;
|