@stfrigerio/sito-template 0.1.67 → 0.1.69
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/components/molecules/StreamConsole/StreamConsole.d.ts +29 -0
- package/dist/components/molecules/StreamConsole/StreamConsole.d.ts.map +1 -0
- package/dist/components/molecules/StreamConsole/index.d.ts +3 -0
- package/dist/components/molecules/StreamConsole/index.d.ts.map +1 -0
- package/dist/components/molecules/index.d.ts +2 -0
- package/dist/components/molecules/index.d.ts.map +1 -1
- package/dist/index.esm.js +251 -173
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +253 -174
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/themes/derived.css +71 -0
- package/dist/themes/shared.css +70 -0
- package/package.json +3 -1
- package/storybook-static/assets/{ASCIIText.stories-2uY7s8BZ.js → ASCIIText.stories-CsmAJN-2.js} +1 -1
- package/storybook-static/assets/{AllAtoms.stories-frv6S625.js → AllAtoms.stories-D4rQ-wy1.js} +1 -1
- package/storybook-static/assets/{AnimatedContent.stories-CUycWMM4.js → AnimatedContent.stories-D3N3SO6o.js} +1 -1
- package/storybook-static/assets/{AnimatedList.stories-BbqCXJLB.js → AnimatedList.stories-BKAHhF-d.js} +1 -1
- package/storybook-static/assets/{Antigravity.stories-DKz4EVwu.js → Antigravity.stories-CvGHJqQE.js} +1 -1
- package/storybook-static/assets/{ArrayInput.stories-yRNCdMNY.js → ArrayInput.stories-jrA1o5Ea.js} +1 -1
- package/storybook-static/assets/{Aurora.stories-Bjde8iIB.js → Aurora.stories-5UjwTJms.js} +1 -1
- package/storybook-static/assets/{Beams.stories-CJAMSn9o.js → Beams.stories-iu6YAOVD.js} +1 -1
- package/storybook-static/assets/{BlobCursor.stories-xBb3jQRL.js → BlobCursor.stories-a0oYcNSe.js} +1 -1
- package/storybook-static/assets/{BlurText.stories-Djx7K_2s.js → BlurText.stories-GYpg5JPE.js} +1 -1
- package/storybook-static/assets/{BooleansHeatmap.stories-i8MTthLD.js → BooleansHeatmap.stories-BGwP1qOw.js} +1 -1
- package/storybook-static/assets/{BorderGlow.stories-szUvXR2S.js → BorderGlow.stories-CfJyZ5FD.js} +1 -1
- package/storybook-static/assets/{BubbleMenu.stories-CP_athV9.js → BubbleMenu.stories-BoL7fzPd.js} +1 -1
- package/storybook-static/assets/{Button-DhXZPIni.js → Button-XXleA-vf.js} +1 -1
- package/storybook-static/assets/{Button.stories-C8r4c9i-.js → Button.stories-B5CWQCIN.js} +1 -1
- package/storybook-static/assets/{Calendar.stories-B54YfNAL.js → Calendar.stories-BV4SkIwi.js} +1 -1
- package/storybook-static/assets/{Card-SXfZY3lZ.js → Card-OLMSKhVR.js} +1 -1
- package/storybook-static/assets/{Card.stories-wTz6AGB9.js → Card.stories-BNK1tsEb.js} +1 -1
- package/storybook-static/assets/{CardNav.stories-VZnmV9f3.js → CardNav.stories-BcVq-zqM.js} +1 -1
- package/storybook-static/assets/{Carousel.stories-Dyr8eZly.js → Carousel.stories-RbJHXJL2.js} +1 -1
- package/storybook-static/assets/{Checkbox-CB8DMRsV.js → Checkbox-BTElgaSY.js} +1 -1
- package/storybook-static/assets/{Checkbox.stories-CFIeXU3v.js → Checkbox.stories-CAd4f8K3.js} +1 -1
- package/storybook-static/assets/{ChromaGrid.stories-DuePEuFi.js → ChromaGrid.stories-D_aDPvzD.js} +1 -1
- package/storybook-static/assets/{CircularGallery.stories-CrPHDRys.js → CircularGallery.stories-dnngbgLP.js} +1 -1
- package/storybook-static/assets/{CircularText.stories-a2t2rH4C.js → CircularText.stories-LSAafadL.js} +1 -1
- package/storybook-static/assets/{ClickSpark.stories-Do0ugmZB.js → ClickSpark.stories-DGBempBs.js} +1 -1
- package/storybook-static/assets/{ColorBends.stories-BqIUAI25.js → ColorBends.stories-DcK3_sn1.js} +1 -1
- package/storybook-static/assets/{CountUp.stories-CVtJdUZx.js → CountUp.stories-BMtv_jPx.js} +1 -1
- package/storybook-static/assets/{Counter.stories-D4h2cwzf.js → Counter.stories-CyMUXbmN.js} +1 -1
- package/storybook-static/assets/{Crosshair.stories-BV4x7-ar.js → Crosshair.stories-BNFAHXYf.js} +1 -1
- package/storybook-static/assets/{Cubes.stories-CBXpQbxi.js → Cubes.stories-CQC4LEGr.js} +1 -1
- package/storybook-static/assets/{CurvedLoop.stories-O_XCksUW.js → CurvedLoop.stories-Bbtj3443.js} +1 -1
- package/storybook-static/assets/{DarkVeil.stories-BbGAZJDV.js → DarkVeil.stories-Ce-0FIT7.js} +1 -1
- package/storybook-static/assets/{DateInput-CaMS5QAe.js → DateInput-U7LprMtG.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-6OMQJ_72.js → DateInput.stories-CTnYmtUu.js} +1 -1
- package/storybook-static/assets/{DecayCard.stories-DRtsDU6B.js → DecayCard.stories-C3NSEnfj.js} +1 -1
- package/storybook-static/assets/{DecryptedText.stories-CwVva8IA.js → DecryptedText.stories-DS3kmr3h.js} +1 -1
- package/storybook-static/assets/{Dither.stories-BwZigsAv.js → Dither.stories-DThgTxwS.js} +1 -1
- package/storybook-static/assets/{Dock.stories-C5-31n7p.js → Dock.stories-BejWrev2.js} +1 -1
- package/storybook-static/assets/{EditFAB.stories-Chl7FmBn.js → EditFAB.stories-B20NpuSi.js} +1 -1
- package/storybook-static/assets/{EvilEye.stories-BhtKyW1F.js → EvilEye.stories-DulC_ljn.js} +1 -1
- package/storybook-static/assets/{FadeContent.stories-BiLoI5tq.js → FadeContent.stories-BpeE-89g.js} +1 -1
- package/storybook-static/assets/{FaultyTerminal.stories-IbYqXVJ2.js → FaultyTerminal.stories-BbqaYCD4.js} +1 -1
- package/storybook-static/assets/{Fbo-DxFZ40cO.js → Fbo-C81uYqf5.js} +1 -1
- package/storybook-static/assets/{FloatingLines.stories-XZ4d9vMo.js → FloatingLines.stories-BhCV-IEL.js} +1 -1
- package/storybook-static/assets/{FlowingMenu.stories-DP2a8YDp.js → FlowingMenu.stories-DYmo4hlL.js} +1 -1
- package/storybook-static/assets/{FluidGlass.stories-DIQAQcZ6.js → FluidGlass.stories-Hkc16HcI.js} +1 -1
- package/storybook-static/assets/{Folder.stories-mnlj4vFW.js → Folder.stories-sb348QG_.js} +1 -1
- package/storybook-static/assets/{FuzzyText.stories-DGv8sEGm.js → FuzzyText.stories-B9oCWh_m.js} +1 -1
- package/storybook-static/assets/{Galaxy.stories-gpRz-VNQ.js → Galaxy.stories-BGZSxsRg.js} +1 -1
- package/storybook-static/assets/{GhostCursor.stories-VA1F3OwX.js → GhostCursor.stories-BH1RyEhC.js} +1 -1
- package/storybook-static/assets/{GlareHover.stories-C7nQ8K8m.js → GlareHover.stories-BxKKigvA.js} +1 -1
- package/storybook-static/assets/{GlassSurface.stories-CLxfz_0O.js → GlassSurface.stories-BThkx8mW.js} +1 -1
- package/storybook-static/assets/{GlitchText.stories-CYHae38N.js → GlitchText.stories-D4RJYPMa.js} +1 -1
- package/storybook-static/assets/{GooeyNav.stories-CYwhZuDk.js → GooeyNav.stories-BTYUo3KQ.js} +1 -1
- package/storybook-static/assets/{GradientBlinds.stories-BAoZv-ap.js → GradientBlinds.stories-olxhUbmu.js} +1 -1
- package/storybook-static/assets/{GradientText.stories-BZ0Hue6m.js → GradientText.stories-Bh69B8hF.js} +1 -1
- package/storybook-static/assets/{Grainient.stories-_RQ0o4ay.js → Grainient.stories-BphTbaj0.js} +1 -1
- package/storybook-static/assets/{GridMotion.stories-CiYjTbgc.js → GridMotion.stories-DOr_siA6.js} +1 -1
- package/storybook-static/assets/{ImageSlideshow.stories-Cx2WspmX.js → ImageSlideshow.stories-B-hGzyOU.js} +1 -1
- package/storybook-static/assets/{Iridescence.stories-Dd3aYfKm.js → Iridescence.stories-Rk7o1aTS.js} +1 -1
- package/storybook-static/assets/{LaserFlow.stories-CkkItTeG.js → LaserFlow.stories-BcUFYXjR.js} +1 -1
- package/storybook-static/assets/{LetterGlitch.stories-DuyDZk6f.js → LetterGlitch.stories-BMwuzHhW.js} +1 -1
- package/storybook-static/assets/{LightPillar.stories-B2gdOEtL.js → LightPillar.stories-jRFcnXWR.js} +1 -1
- package/storybook-static/assets/{LightRays.stories-C5jz7x4T.js → LightRays.stories-DlJZn0uj.js} +1 -1
- package/storybook-static/assets/{Lightning.stories-MG8gMBqA.js → Lightning.stories-B3crwXQU.js} +1 -1
- package/storybook-static/assets/{LineWaves.stories-BcUKRhkl.js → LineWaves.stories-BT2wiuIx.js} +1 -1
- package/storybook-static/assets/{LiquidChrome.stories-V6_q_SsB.js → LiquidChrome.stories-BAHqF7Fe.js} +1 -1
- package/storybook-static/assets/{LiquidEther.stories-NZD1YYlr.js → LiquidEther.stories-Btht6LYV.js} +1 -1
- package/storybook-static/assets/{LoadingSpinner-9e5g7mJO.js → LoadingSpinner-Bfs3FDv3.js} +1 -1
- package/storybook-static/assets/{LoadingSpinner.stories-aox-4Com.js → LoadingSpinner.stories-DQrjNBi0.js} +1 -1
- package/storybook-static/assets/{MagicRings.stories-FapW-YM6.js → MagicRings.stories-wOj093RE.js} +1 -1
- package/storybook-static/assets/{Magnet.stories-BlbaVEBe.js → Magnet.stories-DUVmVySV.js} +1 -1
- package/storybook-static/assets/{MagnetLines.stories-CGop9ZCF.js → MagnetLines.stories-Q8XadhhN.js} +1 -1
- package/storybook-static/assets/{Masonry.stories-ipkb_kpb.js → Masonry.stories-D03ww_ZA.js} +1 -1
- package/storybook-static/assets/{MetaBalls.stories-UjMh5e0Y.js → MetaBalls.stories-CDdVkcY6.js} +1 -1
- package/storybook-static/assets/{MetallicPaint.stories-BqzjCkul.js → MetallicPaint.stories-DXs7ik4I.js} +1 -1
- package/storybook-static/assets/{MoodChart.stories-Ddcrit95.js → MoodChart.stories-Rw-AGXno.js} +1 -1
- package/storybook-static/assets/{MotionConfigContext-GKjLkfLk.js → MotionConfigContext-C14_78av.js} +1 -1
- package/storybook-static/assets/{Navbar.stories-xpGvGDp2.js → Navbar.stories-FrLzsznk.js} +1 -1
- package/storybook-static/assets/{Noise.stories-MrNCWhbv.js → Noise.stories-BA3Ih5s0.js} +1 -1
- package/storybook-static/assets/{NumberStepper-CMafPj8S.js → NumberStepper-tZiXGmat.js} +1 -1
- package/storybook-static/assets/NumberStepper-vsuSLafY.css +1 -0
- package/storybook-static/assets/{NumberStepper.stories-DtYk1D8F.js → NumberStepper.stories-BhC8EKxm.js} +1 -1
- package/storybook-static/assets/{Orb.stories-CxxYjHjg.js → Orb.stories-AuD5iCC3.js} +1 -1
- package/storybook-static/assets/{OrbitImages.stories-D2SUn61d.js → OrbitImages.stories-BXvJZ0-F.js} +1 -1
- package/storybook-static/assets/{PieChart.stories-BHc6igty.js → PieChart.stories-C3r6LcY8.js} +1 -1
- package/storybook-static/assets/{PixelBlast.stories-ey830SNz.js → PixelBlast.stories-Cr-O1JRj.js} +1 -1
- package/storybook-static/assets/{PixelCard.stories-Cj9550ir.js → PixelCard.stories-2lQKPfR5.js} +1 -1
- package/storybook-static/assets/{PixelSnow.stories-KxoQD7bx.js → PixelSnow.stories-D_D3QKFz.js} +1 -1
- package/storybook-static/assets/{PixelTransition.stories-TpTlb1XS.js → PixelTransition.stories-B3ZARstC.js} +1 -1
- package/storybook-static/assets/{Plasma.stories-q_ambQtS.js → Plasma.stories-B1DaK_sM.js} +1 -1
- package/storybook-static/assets/{Prism.stories-B6fZIrNH.js → Prism.stories-DbqM5YZb.js} +1 -1
- package/storybook-static/assets/{PrismaticBurst.stories-CC1pU1Pr.js → PrismaticBurst.stories-y-HXF5cV.js} +1 -1
- package/storybook-static/assets/{ProfileCard.stories-CMn1mAio.js → ProfileCard.stories-DsmTybWU.js} +1 -1
- package/storybook-static/assets/{QuantifiableHabitsChart.stories-DjbZXeUm.js → QuantifiableHabitsChart.stories-DCI49f9X.js} +1 -1
- package/storybook-static/assets/{Radar.stories-BNnwQX_l.js → Radar.stories-CEEkO42v.js} +1 -1
- package/storybook-static/assets/{Ribbons.stories-YsLrddYw.js → Ribbons.stories-CCA_yr4B.js} +1 -1
- package/storybook-static/assets/{RippleGrid.stories-v0FYUM9u.js → RippleGrid.stories-BTwh4_2U.js} +1 -1
- package/storybook-static/assets/{RotatingText.stories-GNmEW1ub.js → RotatingText.stories-DHo8TfPe.js} +1 -1
- package/storybook-static/assets/{ScrollFloat.stories-DgNTKKcu.js → ScrollFloat.stories-BJZSf4VI.js} +1 -1
- package/storybook-static/assets/{ScrollReveal.stories-BLr7gIjD.js → ScrollReveal.stories-CiEFtSxi.js} +1 -1
- package/storybook-static/assets/{ScrollVelocity.stories-C6MVInl2.js → ScrollVelocity.stories-DfnkAXxG.js} +1 -1
- package/storybook-static/assets/{SearchBar.stories-DEPaIkGL.js → SearchBar.stories-CSXGQoV5.js} +1 -1
- package/storybook-static/assets/{SearchableDropdown-CWaT7W35.js → SearchableDropdown-DUPy8rUp.js} +1 -1
- package/storybook-static/assets/{SearchableDropdown.stories-BWNWA__W.js → SearchableDropdown.stories-CBxJFtvC.js} +1 -1
- package/storybook-static/assets/{SelectInput-1fHMqqP1.js → SelectInput-CYkoLmDl.js} +1 -1
- package/storybook-static/assets/{SelectInput.stories-ZygGOh3L.js → SelectInput.stories-CfvmOPeB.js} +1 -1
- package/storybook-static/assets/{ShapeBlur.stories-DQbBTOCc.js → ShapeBlur.stories-pc0wljrV.js} +1 -1
- package/storybook-static/assets/{ShapeGrid.stories-cunRci_L.js → ShapeGrid.stories-B4vId6lz.js} +1 -1
- package/storybook-static/assets/{ShinyText.stories-CyUsI8hq.js → ShinyText.stories-BXJJ29di.js} +1 -1
- package/storybook-static/assets/{Silk.stories--eMEeM8d.js → Silk.stories-CDD33YEC.js} +1 -1
- package/storybook-static/assets/{SleepChart.stories-BYimMJAL.js → SleepChart.stories-DdlAZqOr.js} +1 -1
- package/storybook-static/assets/{Slider-B84kfHMY.js → Slider-D658yr8V.js} +1 -1
- package/storybook-static/assets/{Slider.stories-CFLSmInM.js → Slider.stories-eskyLxXJ.js} +1 -1
- package/storybook-static/assets/{SoftAurora.stories-7GQLdjQ7.js → SoftAurora.stories-BdYYDM27.js} +1 -1
- package/storybook-static/assets/{SoundDemo.stories-F8vqqRfD.js → SoundDemo.stories-BgMuuQjq.js} +1 -1
- package/storybook-static/assets/{SplashCursor.stories-CAFZWnU9.js → SplashCursor.stories-CZtK7e_O.js} +1 -1
- package/storybook-static/assets/{SpotlightCard.stories-C1Q0dxq3.js → SpotlightCard.stories-J0JZ-0RI.js} +1 -1
- package/storybook-static/assets/{Stack.stories-BUMuMvgK.js → Stack.stories-C0wOmqrH.js} +1 -1
- package/storybook-static/assets/{StaggeredMenu.stories-4cHPpSyI.js → StaggeredMenu.stories-BLwQYHyu.js} +1 -1
- package/storybook-static/assets/{StarBorder.stories-BCbdyG0_.js → StarBorder.stories-Bc1fmorI.js} +1 -1
- package/storybook-static/assets/{SunburstChart.stories-Btc6IAOC.js → SunburstChart.stories-CAmK3nor.js} +1 -1
- package/storybook-static/assets/{Table.stories-CxhEofLD.js → Table.stories-DGMjAm4t.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-Bvz1_Btb.js → Tabs.stories-Bb40tIYe.js} +1 -1
- package/storybook-static/assets/{TargetCursor.stories-6kQzVi8x.js → TargetCursor.stories-CGwUiD7J.js} +1 -1
- package/storybook-static/assets/{TextArea-Cw0Z6fif.js → TextArea-DXQ_EBgX.js} +1 -1
- package/storybook-static/assets/{TextArea.stories-COgKS38y.js → TextArea.stories-BLrrmB4z.js} +1 -1
- package/storybook-static/assets/{TextCursor.stories-BNJPLzFm.js → TextCursor.stories-BHNu5tz7.js} +1 -1
- package/storybook-static/assets/{TextInput-CcOD24QL.js → TextInput-DV7WwA-D.js} +1 -1
- package/storybook-static/assets/{TextInput.stories-CJZAn4yN.js → TextInput.stories-CuWrd6gR.js} +1 -1
- package/storybook-static/assets/{TextPressure.stories-C42v4o6o.js → TextPressure.stories-vmUtkLCW.js} +1 -1
- package/storybook-static/assets/{TextType.stories-CvPSWJs6.js → TextType.stories-DRh6fQi6.js} +1 -1
- package/storybook-static/assets/{ThemeSwitcher.stories-DNl2WASw.js → ThemeSwitcher.stories-Cn69Ji6g.js} +1 -1
- package/storybook-static/assets/{Threads.stories-CQzja64j.js → Threads.stories-CydzcV1L.js} +1 -1
- package/storybook-static/assets/{TimeInput.stories-BSevAXEr.js → TimeInput.stories-DszOIZMM.js} +1 -1
- package/storybook-static/assets/{Toggle-cSmkSP6q.js → Toggle-DRxEA46V.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-lSwnXmCz.js → Toggle.stories-hRngPp0x.js} +1 -1
- package/storybook-static/assets/{ToggleButton-CWcHCKI6.js → ToggleButton-doH1twHO.js} +1 -1
- package/storybook-static/assets/{ToggleButton.stories-Cdkvgsau.js → ToggleButton.stories-B8nvf77b.js} +1 -1
- package/storybook-static/assets/{TrueFocus.stories-CiwMDkKc.js → TrueFocus.stories-CfKH3kUZ.js} +1 -1
- package/storybook-static/assets/{VariableProximity.stories-DJ9xPymz.js → VariableProximity.stories-D9qK9mvY.js} +1 -1
- package/storybook-static/assets/{Waves.stories-Bf8Tm2OK.js → Waves.stories-ChiEHqOk.js} +1 -1
- package/storybook-static/assets/{check-BOBzZz98.js → check-oj_6B7vS.js} +1 -1
- package/storybook-static/assets/{chevron-down-DBbVTg9F.js → chevron-down-BWokfil4.js} +1 -1
- package/storybook-static/assets/{chevron-right-3dTMXayC.js → chevron-right-Bdzt2d70.js} +1 -1
- package/storybook-static/assets/client-B8LLU4_U.js +1 -0
- package/storybook-static/assets/{createLucideIcon-CkJC9vYJ.js → createLucideIcon-BWMoBn57.js} +1 -1
- package/storybook-static/assets/{download-B0yDATDC.js → download-BLiA0tpF.js} +1 -1
- package/storybook-static/assets/{folder-DheVrPAe.js → folder-DqKZ_0EF.js} +1 -1
- package/storybook-static/assets/{iconBase-lvWfesIY.js → iconBase-DwjO8aD6.js} +1 -1
- package/storybook-static/assets/{iframe-CTSBB6I3.js → iframe-Bzk7a4jE.js} +3 -3
- package/storybook-static/assets/{index-pCzHq_05.js → index-B9IQ2veq.js} +1 -1
- package/storybook-static/assets/{index-_evbJ2Cl.js → index-CFq2Sj1X.js} +1 -1
- package/storybook-static/assets/{index-BMKvNZS6.js → index-D75c7fgA.js} +1 -1
- package/storybook-static/assets/{proxy-DkzZxEFc.js → proxy-DWSRYAjq.js} +1 -1
- package/storybook-static/assets/{react-18-BvDZXdyj.js → react-18-EohdNo4M.js} +1 -1
- package/storybook-static/assets/{react-three-fiber.esm-CBWYRSfe.js → react-three-fiber.esm-CbOYykzu.js} +1 -1
- package/storybook-static/assets/{search-B55_-81C.js → search-BQFiVrSa.js} +1 -1
- package/storybook-static/assets/{settings-BlVPfQGB.js → settings-fMTZia7j.js} +1 -1
- package/storybook-static/assets/{sun-lmKYYygH.js → sun-DRUPjcvH.js} +1 -1
- package/storybook-static/assets/{trash-2-Dbz6gZCH.js → trash-2-Cs3jaKGo.js} +1 -1
- package/storybook-static/assets/{use-animation-frame-BcYandkZ.js → use-animation-frame-D0dvJGOL.js} +1 -1
- package/storybook-static/assets/{use-in-view-Cwx1siTw.js → use-in-view-DHLaPX9x.js} +1 -1
- package/storybook-static/assets/{use-motion-value-BJ-r0NXG.js → use-motion-value-DqT2_cFi.js} +1 -1
- package/storybook-static/assets/{use-spring-BXqp16p5.js → use-spring-Iib2BnkK.js} +1 -1
- package/storybook-static/assets/{use-transform-BhprXxbF.js → use-transform-CfDt55IP.js} +1 -1
- package/storybook-static/assets/{useSound-BRmnt_Zm.js → useSound-BpN96I3Q.js} +1 -1
- package/storybook-static/assets/{users-D2lT3o9l.js → users-DuVIER1_.js} +1 -1
- package/storybook-static/assets/{x-DWSL3Ncx.js → x-BsIImlvB.js} +1 -1
- package/storybook-static/iframe.html +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/assets/NumberStepper-C_00aeJp.css +0 -1
- package/storybook-static/assets/client-SxjihoZo.js +0 -1
package/dist/index.esm.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { motion, AnimatePresence, useMotionValue, useTransform, animate, LayoutGroup } from 'framer-motion';
|
|
3
3
|
import React, { useRef, useEffect, useCallback, useState, useMemo, createContext, useContext, Fragment as Fragment$1, memo } from 'react';
|
|
4
4
|
import { createPortal } from 'react-dom';
|
|
5
|
-
import { X, Calendar as Calendar$1, ChevronDown, Search, Check, Edit, Folder, Users, Book, MessageSquare, UserPlus, Sun, Moon, Info, Github, SquareKanban, ChevronRight, Plus,
|
|
5
|
+
import { X, Calendar as Calendar$1, ChevronDown, Search, Check, Edit, Folder, Users, Book, MessageSquare, UserPlus, Sun, Moon, Info, Github, SquareKanban, ChevronRight, Plus, Loader2, AlertTriangle, Play, Brain, FolderSearch, FilePlus, Pencil, FileText, Terminal, Trash2, GripVertical, Download, Menu, ChevronLeft, Maximize, Share2, Pause } from 'lucide-react';
|
|
6
6
|
import dayjs from 'dayjs';
|
|
7
7
|
import { MobileTimePicker } from '@mui/x-date-pickers/MobileTimePicker';
|
|
8
8
|
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
|
|
@@ -10,7 +10,7 @@ import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
|
|
|
10
10
|
import { createTheme, ThemeProvider as ThemeProvider$1 } from '@mui/material/styles';
|
|
11
11
|
import * as d3 from 'd3';
|
|
12
12
|
|
|
13
|
-
var styles$
|
|
13
|
+
var styles$A = {"button":"Button-module_button__c6nkW","primary":"Button-module_primary__pMqAs","secondary":"Button-module_secondary__mBWx9","outline":"Button-module_outline__NGGGN","ghost":"Button-module_ghost__u2QBF","danger":"Button-module_danger__2ewhr","small":"Button-module_small__ZI9RX","medium":"Button-module_medium__Wnf9t","large":"Button-module_large__cQCpA","fullWidth":"Button-module_fullWidth__N8vYg","loading":"Button-module_loading__hcSI4","spinner":"Button-module_spinner__HtM96","spin":"Button-module_spin__jblrj","iconLeft":"Button-module_iconLeft__Fpz-y","iconRight":"Button-module_iconRight__kTfjS"};
|
|
14
14
|
|
|
15
15
|
const SOUND_PACKS = {
|
|
16
16
|
digital: {
|
|
@@ -575,11 +575,11 @@ function useComponentSound(config, options) {
|
|
|
575
575
|
const Button = ({ variant = 'primary', size = 'medium', fullWidth = false, loading = false, iconLeft, iconRight, children, className = '', disabled, motionProps, soundConfig, onClick, onMouseEnter, onFocus, ...rest }) => {
|
|
576
576
|
const { handlers } = useComponentSound(soundConfig);
|
|
577
577
|
const buttonClasses = [
|
|
578
|
-
styles$
|
|
579
|
-
styles$
|
|
580
|
-
styles$
|
|
581
|
-
fullWidth && styles$
|
|
582
|
-
loading && styles$
|
|
578
|
+
styles$A.button,
|
|
579
|
+
styles$A[variant],
|
|
580
|
+
styles$A[size],
|
|
581
|
+
fullWidth && styles$A.fullWidth,
|
|
582
|
+
loading && styles$A.loading,
|
|
583
583
|
className
|
|
584
584
|
].filter(Boolean).join(' ');
|
|
585
585
|
const handleClick = (e) => {
|
|
@@ -590,10 +590,10 @@ const Button = ({ variant = 'primary', size = 'medium', fullWidth = false, loadi
|
|
|
590
590
|
handlers.onMouseEnter?.();
|
|
591
591
|
onMouseEnter?.(e);
|
|
592
592
|
};
|
|
593
|
-
return (jsxs(motion.button, { className: buttonClasses, disabled: disabled || loading, whileHover: { scale: disabled || loading ? 1 : 1.02 }, whileTap: { scale: disabled || loading ? 1 : 0.98 }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: handleClick, onMouseEnter: handleMouseEnter, onFocus: onFocus, ...motionProps, ...rest, children: [loading && jsx("span", { className: styles$
|
|
593
|
+
return (jsxs(motion.button, { className: buttonClasses, disabled: disabled || loading, whileHover: { scale: disabled || loading ? 1 : 1.02 }, whileTap: { scale: disabled || loading ? 1 : 0.98 }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: handleClick, onMouseEnter: handleMouseEnter, onFocus: onFocus, ...motionProps, ...rest, children: [loading && jsx("span", { className: styles$A.spinner }), iconLeft && jsx("span", { className: styles$A.iconLeft, children: iconLeft }), children, iconRight && jsx("span", { className: styles$A.iconRight, children: iconRight })] }));
|
|
594
594
|
};
|
|
595
595
|
|
|
596
|
-
var styles$
|
|
596
|
+
var styles$z = {"card":"Card-module_card__r2DB2","hoverable":"Card-module_hoverable__X3OpS","elevated":"Card-module_elevated__hGV6-","outlined":"Card-module_outlined__ngRag","flat":"Card-module_flat__xy-xt","glass":"Card-module_glass__Sv-Vs","imageContainer":"Card-module_imageContainer__L4ma6","image":"Card-module_image__bQBt6","header":"Card-module_header__0dtj3","headerContent":"Card-module_headerContent__W7-jD","expandButton":"Card-module_expandButton__I7f49","expandIcon":"Card-module_expandIcon__Lu-OY","expandableContent":"Card-module_expandableContent__BFgO5","expandable":"Card-module_expandable__GMXzo","body":"Card-module_body__K7eL3","footer":"Card-module_footer__L5wO-","title":"Card-module_title__pW9g8","subtitle":"Card-module_subtitle__gejH4","clickable":"Card-module_clickable__Y6fm8","padding":"Card-module_padding__wtyDo","noPadding":"Card-module_noPadding__r5Qq0","loading":"Card-module_loading__S4Wng","loadingShimmer":"Card-module_loadingShimmer__Q1Osr","loadingPulse":"Card-module_loadingPulse__bXQmC"};
|
|
597
597
|
|
|
598
598
|
/**
|
|
599
599
|
* Card Component
|
|
@@ -658,28 +658,28 @@ const Card = ({ variant = 'elevated', hoverable = false, clickable = false, padd
|
|
|
658
658
|
onExpandChange?.(newExpanded);
|
|
659
659
|
};
|
|
660
660
|
const cardClasses = [
|
|
661
|
-
styles$
|
|
662
|
-
styles$
|
|
663
|
-
hoverable && styles$
|
|
664
|
-
clickable && styles$
|
|
665
|
-
!padding && styles$
|
|
666
|
-
expandable && styles$
|
|
661
|
+
styles$z.card,
|
|
662
|
+
styles$z[variant],
|
|
663
|
+
hoverable && styles$z.hoverable,
|
|
664
|
+
clickable && styles$z.clickable,
|
|
665
|
+
!padding && styles$z.noPadding,
|
|
666
|
+
expandable && styles$z.expandable,
|
|
667
667
|
className
|
|
668
668
|
].filter(Boolean).join(' ');
|
|
669
669
|
const renderHeader = () => {
|
|
670
670
|
if (header) {
|
|
671
|
-
return (jsxs("div", { className: styles$
|
|
671
|
+
return (jsxs("div", { className: styles$z.header, children: [jsx("div", { className: styles$z.headerContent, children: header }), expandable && (jsx("button", { className: styles$z.expandButton, onClick: handleToggleExpand, "aria-label": isExpanded ? 'Collapse card' : 'Expand card', children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: styles$z.expandIcon, style: { transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)' }, children: jsx("path", { d: "M6 9l6 6 6-6" }) }) }))] }));
|
|
672
672
|
}
|
|
673
673
|
if (title || subtitle) {
|
|
674
|
-
return (jsxs("div", { className: styles$
|
|
674
|
+
return (jsxs("div", { className: styles$z.header, children: [jsxs("div", { className: styles$z.headerContent, children: [title && jsx("h3", { className: styles$z.title, children: title }), subtitle && jsx("p", { className: styles$z.subtitle, children: subtitle })] }), expandable && (jsx("button", { className: styles$z.expandButton, onClick: handleToggleExpand, "aria-label": isExpanded ? 'Collapse card' : 'Expand card', children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: styles$z.expandIcon, style: { transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)' }, children: jsx("path", { d: "M6 9l6 6 6-6" }) }) }))] }));
|
|
675
675
|
}
|
|
676
676
|
return null;
|
|
677
677
|
};
|
|
678
|
-
const cardContent = (jsxs(Fragment, { children: [image && (jsx("div", { className: styles$
|
|
678
|
+
const cardContent = (jsxs(Fragment, { children: [image && (jsx("div", { className: styles$z.imageContainer, children: jsx("img", { src: image, alt: imageAlt, className: styles$z.image }) })), renderHeader(), jsx(AnimatePresence, { initial: false, children: (!expandable || isExpanded) && (jsxs(motion.div, { initial: expandable ? { height: 0, opacity: 0 } : undefined, animate: expandable ? { height: 'auto', opacity: 1 } : undefined, exit: expandable ? { height: 0, opacity: 0 } : undefined, transition: { duration: 0.3, ease: "easeInOut" }, className: styles$z.expandableContent, children: [children && (jsx("div", { className: padding ? styles$z.body : undefined, children: children })), footer && jsx("div", { className: styles$z.footer, children: footer })] }, "content")) })] }));
|
|
679
679
|
return (jsx(motion.div, { className: cardClasses, onClick: clickable ? onClick : undefined, whileHover: hoverable ? { y: -4 } : undefined, transition: { type: "spring", stiffness: 400, damping: 17 }, ...motionProps, ...rest, children: cardContent }));
|
|
680
680
|
};
|
|
681
681
|
|
|
682
|
-
var styles$
|
|
682
|
+
var styles$y = {"wrapper":"EmptyState-module_wrapper__h3Y2E","compact":"EmptyState-module_compact__HdYu1","default":"EmptyState-module_default__ACAbn","large":"EmptyState-module_large__H3ELo","icon":"EmptyState-module_icon__i7-3M","title":"EmptyState-module_title__xCyfH","message":"EmptyState-module_message__Bc5xK","action":"EmptyState-module_action__UpnvZ"};
|
|
683
683
|
|
|
684
684
|
/**
|
|
685
685
|
* EmptyState Component
|
|
@@ -716,11 +716,11 @@ var styles$x = {"wrapper":"EmptyState-module_wrapper__h3Y2E","compact":"EmptySta
|
|
|
716
716
|
* @returns {JSX.Element} The rendered EmptyState component
|
|
717
717
|
*/
|
|
718
718
|
const EmptyState = ({ icon, title, message, action, size = 'default', }) => {
|
|
719
|
-
const wrapperClass = [styles$
|
|
720
|
-
return (jsxs("div", { className: wrapperClass, children: [icon && jsx("div", { className: styles$
|
|
719
|
+
const wrapperClass = [styles$y.wrapper, styles$y[size]].filter(Boolean).join(' ');
|
|
720
|
+
return (jsxs("div", { className: wrapperClass, children: [icon && jsx("div", { className: styles$y.icon, children: icon }), title && jsx("h3", { className: styles$y.title, children: title }), jsx("p", { className: styles$y.message, children: message }), action && jsx("div", { className: styles$y.action, children: action })] }));
|
|
721
721
|
};
|
|
722
722
|
|
|
723
|
-
var styles$
|
|
723
|
+
var styles$x = {"backdrop":"Modal-module_backdrop__yOx-a","dialog":"Modal-module_dialog__yEXTq","dialogCompact":"Modal-module_dialogCompact__z1Wxp","dialogWide":"Modal-module_dialogWide__9PTXK","header":"Modal-module_header__NHHKd","title":"Modal-module_title__i3R0x","headerActions":"Modal-module_headerActions__g28UN","closeButton":"Modal-module_closeButton__siC-1","body":"Modal-module_body__U7jvM","bodyFlush":"Modal-module_bodyFlush__wtk3q"};
|
|
724
724
|
|
|
725
725
|
/**
|
|
726
726
|
* Modal Component
|
|
@@ -774,16 +774,16 @@ const Modal = ({ open, title, onClose, children, size = 'default', actions, padd
|
|
|
774
774
|
if (typeof document === 'undefined')
|
|
775
775
|
return null;
|
|
776
776
|
const dialogClass = [
|
|
777
|
-
styles$
|
|
778
|
-
size === 'compact' && styles$
|
|
779
|
-
size === 'wide' && styles$
|
|
777
|
+
styles$x.dialog,
|
|
778
|
+
size === 'compact' && styles$x.dialogCompact,
|
|
779
|
+
size === 'wide' && styles$x.dialogWide,
|
|
780
780
|
]
|
|
781
781
|
.filter(Boolean)
|
|
782
782
|
.join(' ');
|
|
783
|
-
return createPortal(jsx(AnimatePresence, { children: open && (jsx(motion.div, { className: styles$
|
|
783
|
+
return createPortal(jsx(AnimatePresence, { children: open && (jsx(motion.div, { className: styles$x.backdrop, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.15 }, onClick: onClose, "aria-hidden": "true", children: jsxs(motion.div, { className: dialogClass, role: "dialog", "aria-modal": "true", "aria-label": title, initial: { opacity: 0, scale: 0.96, y: 8 }, animate: { opacity: 1, scale: 1, y: 0 }, exit: { opacity: 0, scale: 0.96, y: 8 }, transition: { duration: 0.15, ease: 'easeOut' }, onClick: (e) => e.stopPropagation(), children: [jsxs("div", { className: styles$x.header, children: [jsx("span", { className: styles$x.title, children: title }), actions && jsx("div", { className: styles$x.headerActions, children: actions }), jsx("button", { className: styles$x.closeButton, onClick: onClose, "aria-label": "Close modal", type: "button", children: jsx(X, { size: 16 }) })] }), jsx("div", { className: padding ? styles$x.body : styles$x.bodyFlush, children: children })] }) })) }), document.body);
|
|
784
784
|
};
|
|
785
785
|
|
|
786
|
-
var styles$
|
|
786
|
+
var styles$w = {"checkboxLabel":"Checkbox-module_checkboxLabel__4tBVg","checkbox":"Checkbox-module_checkbox__BbJul","checkboxText":"Checkbox-module_checkboxText__oJsc9"};
|
|
787
787
|
|
|
788
788
|
/**
|
|
789
789
|
* Checkbox component - Modern interactive checkbox with animations
|
|
@@ -828,13 +828,13 @@ const Checkbox = ({ checked, onChange, label, disabled = false, indeterminate =
|
|
|
828
828
|
checkboxRef.current.indeterminate = indeterminate;
|
|
829
829
|
}
|
|
830
830
|
}, [indeterminate]);
|
|
831
|
-
return (jsxs("label", { className: styles$
|
|
831
|
+
return (jsxs("label", { className: styles$w.checkboxLabel, children: [jsx("input", { ref: checkboxRef, type: "checkbox", checked: checked, onChange: (e) => {
|
|
832
832
|
const isChecked = e.target.checked;
|
|
833
833
|
onChange(isChecked);
|
|
834
834
|
if (soundConfig?.onClick !== false) {
|
|
835
835
|
playSound('toggle');
|
|
836
836
|
}
|
|
837
|
-
}, className: styles$
|
|
837
|
+
}, className: styles$w.checkbox, disabled: disabled, id: id, name: name, value: value, "aria-checked": indeterminate ? 'mixed' : checked }), label && jsx("span", { className: styles$w.checkboxText, children: label })] }));
|
|
838
838
|
};
|
|
839
839
|
|
|
840
840
|
const formatDateToEuropean = (date) => {
|
|
@@ -865,7 +865,7 @@ const parseEuropeanDate = (dateString) => {
|
|
|
865
865
|
return '';
|
|
866
866
|
};
|
|
867
867
|
|
|
868
|
-
var styles$
|
|
868
|
+
var styles$v = {"dateInput":"DateInput-module_dateInput__54VPD","label":"DateInput-module_label__yDdUw","inputWrapper":"DateInput-module_inputWrapper__x-r1d","textInput":"DateInput-module_textInput__ToOSX","calendarButton":"DateInput-module_calendarButton__JzDGD","hiddenDateInput":"DateInput-module_hiddenDateInput__IWNg3","error":"DateInput-module_error__ieuPO","success":"DateInput-module_success__rPA93","loading":"DateInput-module_loading__1DAmD"};
|
|
869
869
|
|
|
870
870
|
/**
|
|
871
871
|
* DateInput component - European format date picker with manual input support
|
|
@@ -954,19 +954,19 @@ function DateInput({ label, value, onChange, placeholder = "25/12/2024", onFocus
|
|
|
954
954
|
}
|
|
955
955
|
};
|
|
956
956
|
const getClassName = () => {
|
|
957
|
-
const classes = [styles$
|
|
957
|
+
const classes = [styles$v.dateInput];
|
|
958
958
|
if (error)
|
|
959
|
-
classes.push(styles$
|
|
959
|
+
classes.push(styles$v.error);
|
|
960
960
|
if (success)
|
|
961
|
-
classes.push(styles$
|
|
961
|
+
classes.push(styles$v.success);
|
|
962
962
|
if (loading)
|
|
963
|
-
classes.push(styles$
|
|
963
|
+
classes.push(styles$v.loading);
|
|
964
964
|
return classes.join(' ');
|
|
965
965
|
};
|
|
966
|
-
return (jsxs("div", { className: getClassName(), children: [jsx("label", { className: styles$
|
|
966
|
+
return (jsxs("div", { className: getClassName(), children: [jsx("label", { className: styles$v.label, children: label }), jsxs("div", { className: styles$v.inputWrapper, children: [jsx("input", { type: "text", value: value.includes('-') ? formatDateToEuropean(value) : value, onChange: (e) => handleTextChange(e.target.value), onFocus: onFocus, onBlur: onBlur, placeholder: placeholder, className: styles$v.textInput, disabled: disabled || loading, ...handlers }), jsx("button", { type: "button", onClick: handleCalendarClick, className: styles$v.calendarButton, title: "Select date from calendar", disabled: disabled || loading, children: jsx(Calendar$1, {}) }), jsx("input", { ref: hiddenDateInputRef, type: "date", onChange: handleCalendarChange, className: styles$v.hiddenDateInput, tabIndex: -1, disabled: disabled || loading })] })] }));
|
|
967
967
|
}
|
|
968
968
|
|
|
969
|
-
var styles$
|
|
969
|
+
var styles$u = {"searchableDropdown":"SearchableDropdown-module_searchableDropdown__S2Nh5","dropdownTrigger":"SearchableDropdown-module_dropdownTrigger__dihdr","open":"SearchableDropdown-module_open__P7mRt","dropdownValue":"SearchableDropdown-module_dropdownValue__ydrc2","placeholder":"SearchableDropdown-module_placeholder__BwM2W","dropdownArrow":"SearchableDropdown-module_dropdownArrow__yd5fp","dropdownMenu":"SearchableDropdown-module_dropdownMenu__2Z5cc","dropdownSearch":"SearchableDropdown-module_dropdownSearch__NRk7j","searchInput":"SearchableDropdown-module_searchInput__VS2Hw","searchIcon":"SearchableDropdown-module_searchIcon__2vKFF","dropdownOptions":"SearchableDropdown-module_dropdownOptions__6YXqF","dropdownOption":"SearchableDropdown-module_dropdownOption__YwDr-","selected":"SearchableDropdown-module_selected__31JeB","highlighted":"SearchableDropdown-module_highlighted__P0bBq","checkIcon":"SearchableDropdown-module_checkIcon__YxowK","dropdownNoResults":"SearchableDropdown-module_dropdownNoResults__WW-Da","loading":"SearchableDropdown-module_loading__xlYf0"};
|
|
970
970
|
|
|
971
971
|
/**
|
|
972
972
|
* SearchableDropdown component - Modern filterable dropdown with animations
|
|
@@ -1071,23 +1071,23 @@ function SearchableDropdown({ label, value, onChange, options, placeholder = "Se
|
|
|
1071
1071
|
}
|
|
1072
1072
|
};
|
|
1073
1073
|
const getTriggerClassName = () => {
|
|
1074
|
-
const classes = [styles$
|
|
1074
|
+
const classes = [styles$u.dropdownTrigger];
|
|
1075
1075
|
if (isOpen)
|
|
1076
|
-
classes.push(styles$
|
|
1076
|
+
classes.push(styles$u.open);
|
|
1077
1077
|
if (loading)
|
|
1078
|
-
classes.push(styles$
|
|
1078
|
+
classes.push(styles$u.loading);
|
|
1079
1079
|
if (error)
|
|
1080
|
-
classes.push(styles$
|
|
1080
|
+
classes.push(styles$u.error);
|
|
1081
1081
|
return classes.join(' ');
|
|
1082
1082
|
};
|
|
1083
|
-
return (jsxs("div", { className: styles$
|
|
1083
|
+
return (jsxs("div", { className: styles$u.searchableDropdown, ref: dropdownRef, onKeyDown: handleKeyDown, children: [jsx("label", { children: label }), jsxs(motion.button, { type: "button", className: getTriggerClassName(), onClick: () => !disabled && !loading && setIsOpen(!isOpen), whileTap: { scale: disabled ? 1 : 0.98 }, style: { willChange: 'transform' }, disabled: disabled, children: [jsx("span", { className: `${styles$u.dropdownValue} ${!displayValue ? styles$u.placeholder : ''}`, children: displayValue || placeholder }), jsx(ChevronDown, { className: styles$u.dropdownArrow })] }), jsx(AnimatePresence, { children: isOpen && (jsxs(motion.div, { className: styles$u.dropdownMenu, initial: { opacity: 0, y: -10, scale: 0.95 }, animate: { opacity: 1, y: 0, scale: 1 }, exit: { opacity: 0, y: -10, scale: 0.95 }, transition: { duration: 0.2, ease: "easeOut" }, children: [jsxs("div", { className: styles$u.dropdownSearch, children: [jsx(Search, { className: styles$u.searchIcon }), jsx("input", { ref: inputRef, type: "text", className: styles$u.searchInput, placeholder: "Cerca...", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), onClick: (e) => e.stopPropagation() })] }), jsxs("div", { className: styles$u.dropdownOptions, children: [allOptions.map((opt, index) => {
|
|
1084
1084
|
const isSelected = value === opt.value;
|
|
1085
1085
|
const isHighlighted = highlightedIndex === index;
|
|
1086
|
-
return (jsxs(motion.button, { type: "button", className: `${styles$
|
|
1087
|
-
}), allOptions.length === 0 && (jsx(motion.div, { className: styles$
|
|
1086
|
+
return (jsxs(motion.button, { type: "button", className: `${styles$u.dropdownOption} ${isSelected ? styles$u.selected : ''} ${isHighlighted ? styles$u.highlighted : ''}`, onClick: () => handleSelect(opt.value), onMouseEnter: () => setHighlightedIndex(index), initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { delay: index * 0.02 }, whileTap: { scale: 0.98 }, style: { willChange: 'transform' }, children: [jsx("span", { children: opt.label }), isSelected && jsx(Check, { className: styles$u.checkIcon })] }, `${opt.value}-${index}`));
|
|
1087
|
+
}), allOptions.length === 0 && (jsx(motion.div, { className: styles$u.dropdownNoResults, initial: { opacity: 0 }, animate: { opacity: 1 }, children: "No results found" }))] })] })) })] }));
|
|
1088
1088
|
}
|
|
1089
1089
|
|
|
1090
|
-
var styles$
|
|
1090
|
+
var styles$t = {"selectInput":"SelectInput-module_selectInput__s6zEg","selectWrapper":"SelectInput-module_selectWrapper__Qr4pl","selectIcon":"SelectInput-module_selectIcon__9pjhf","error":"SelectInput-module_error__3WNJc","success":"SelectInput-module_success__WJ5ga","loading":"SelectInput-module_loading__n35N9"};
|
|
1091
1091
|
|
|
1092
1092
|
/**
|
|
1093
1093
|
* SelectInput component - Styled dropdown selector with flexible option format
|
|
@@ -1125,26 +1125,26 @@ var styles$s = {"selectInput":"SelectInput-module_selectInput__s6zEg","selectWra
|
|
|
1125
1125
|
function SelectInput({ label, value, onChange, options, placeholder = "Select...", disabled = false, error = false, success = false, loading = false, required = false, soundConfig, className }) {
|
|
1126
1126
|
const { handlers, playSound } = useComponentSound(soundConfig);
|
|
1127
1127
|
const getClassName = () => {
|
|
1128
|
-
const classes = [styles$
|
|
1128
|
+
const classes = [styles$t.selectInput];
|
|
1129
1129
|
if (error)
|
|
1130
|
-
classes.push(styles$
|
|
1130
|
+
classes.push(styles$t.error);
|
|
1131
1131
|
if (success)
|
|
1132
|
-
classes.push(styles$
|
|
1132
|
+
classes.push(styles$t.success);
|
|
1133
1133
|
if (loading)
|
|
1134
|
-
classes.push(styles$
|
|
1134
|
+
classes.push(styles$t.loading);
|
|
1135
1135
|
return classes.join(' ');
|
|
1136
1136
|
};
|
|
1137
|
-
return (jsxs("div", { className: `${getClassName()}${className ? ` ${className}` : ''}`, children: [jsxs("label", { children: [label, required && jsx("span", { style: { color: 'var(--color-error)' }, children: " *" })] }), jsxs("div", { className: styles$
|
|
1137
|
+
return (jsxs("div", { className: `${getClassName()}${className ? ` ${className}` : ''}`, children: [jsxs("label", { children: [label, required && jsx("span", { style: { color: 'var(--color-error)' }, children: " *" })] }), jsxs("div", { className: styles$t.selectWrapper, children: [jsxs("select", { value: value, onChange: e => {
|
|
1138
1138
|
playSound('click');
|
|
1139
1139
|
onChange(e.target.value);
|
|
1140
1140
|
}, disabled: disabled || loading, required: required, ...handlers, children: [jsx("option", { value: "", children: placeholder }), options.map(opt => {
|
|
1141
1141
|
const optionValue = typeof opt === 'string' ? opt : opt.value;
|
|
1142
1142
|
const optionLabel = typeof opt === 'string' ? opt : opt.label;
|
|
1143
1143
|
return (jsx("option", { value: optionValue, children: optionLabel }, optionValue));
|
|
1144
|
-
})] }), jsx(ChevronDown, { className: styles$
|
|
1144
|
+
})] }), jsx(ChevronDown, { className: styles$t.selectIcon })] })] }));
|
|
1145
1145
|
}
|
|
1146
1146
|
|
|
1147
|
-
var styles$
|
|
1147
|
+
var styles$s = {"textareaContainer":"TextArea-module_textareaContainer__AquFj","compact":"TextArea-module_compact__U5lPn","textareaLabel":"TextArea-module_textareaLabel__7Vmyx","requiredIndicator":"TextArea-module_requiredIndicator__3Fxyy","textareaInput":"TextArea-module_textareaInput__VCDZA","characterCount":"TextArea-module_characterCount__9FO5N","nearLimit":"TextArea-module_nearLimit__cUdnw","atLimit":"TextArea-module_atLimit__GoWCC","error":"TextArea-module_error__ciHgb","success":"TextArea-module_success__a0-xD","loading":"TextArea-module_loading__CSFBR","focusMode":"TextArea-module_focusMode__9A8U-"};
|
|
1148
1148
|
|
|
1149
1149
|
/**
|
|
1150
1150
|
* TextArea component - Multi-line text input with character counting
|
|
@@ -1179,38 +1179,38 @@ var styles$r = {"textareaContainer":"TextArea-module_textareaContainer__AquFj","
|
|
|
1179
1179
|
function TextArea({ label, value, onChange, rows = 5, placeholder = "", required = false, maxLength, disabled = false, error = false, success = false, loading = false, focusMode = false, compact = false, className = "" }) {
|
|
1180
1180
|
const textareaId = `textarea-${Math.random().toString(36).substr(2, 9)}`;
|
|
1181
1181
|
const getContainerClassName = () => {
|
|
1182
|
-
const classes = [styles$
|
|
1182
|
+
const classes = [styles$s.textareaContainer];
|
|
1183
1183
|
if (error)
|
|
1184
|
-
classes.push(styles$
|
|
1184
|
+
classes.push(styles$s.error);
|
|
1185
1185
|
if (success)
|
|
1186
|
-
classes.push(styles$
|
|
1186
|
+
classes.push(styles$s.success);
|
|
1187
1187
|
if (loading)
|
|
1188
|
-
classes.push(styles$
|
|
1188
|
+
classes.push(styles$s.loading);
|
|
1189
1189
|
if (focusMode)
|
|
1190
|
-
classes.push(styles$
|
|
1190
|
+
classes.push(styles$s.focusMode);
|
|
1191
1191
|
if (compact)
|
|
1192
|
-
classes.push(styles$
|
|
1192
|
+
classes.push(styles$s.compact);
|
|
1193
1193
|
if (className)
|
|
1194
1194
|
classes.push(className);
|
|
1195
1195
|
return classes.join(' ');
|
|
1196
1196
|
};
|
|
1197
1197
|
const getCharCountClassName = () => {
|
|
1198
1198
|
if (!maxLength)
|
|
1199
|
-
return styles$
|
|
1200
|
-
const classes = [styles$
|
|
1199
|
+
return styles$s.characterCount;
|
|
1200
|
+
const classes = [styles$s.characterCount];
|
|
1201
1201
|
const percentage = (value.length / maxLength) * 100;
|
|
1202
1202
|
if (percentage >= 100) {
|
|
1203
|
-
classes.push(styles$
|
|
1203
|
+
classes.push(styles$s.atLimit);
|
|
1204
1204
|
}
|
|
1205
1205
|
else if (percentage >= 80) {
|
|
1206
|
-
classes.push(styles$
|
|
1206
|
+
classes.push(styles$s.nearLimit);
|
|
1207
1207
|
}
|
|
1208
1208
|
return classes.join(' ');
|
|
1209
1209
|
};
|
|
1210
|
-
return (jsxs("div", { className: getContainerClassName(), children: [label && (jsxs("label", { htmlFor: textareaId, className: styles$
|
|
1210
|
+
return (jsxs("div", { className: getContainerClassName(), children: [label && (jsxs("label", { htmlFor: textareaId, className: styles$s.textareaLabel, children: [label, required && jsx("span", { className: styles$s.requiredIndicator, children: "*" })] })), jsx("textarea", { id: textareaId, value: value, onChange: (e) => onChange(e.target.value), rows: rows, placeholder: placeholder, maxLength: maxLength, className: styles$s.textareaInput, "aria-required": required, disabled: disabled || loading, "aria-invalid": error }), maxLength && (jsxs("div", { className: getCharCountClassName(), children: [jsx("span", { children: value.length }), jsx("span", { style: { opacity: 0.7 }, children: " / " }), jsx("span", { children: maxLength })] }))] }));
|
|
1211
1211
|
}
|
|
1212
1212
|
|
|
1213
|
-
var styles$
|
|
1213
|
+
var styles$r = {"textInput":"TextInput-module_textInput__b2LVM","required":"TextInput-module_required__7uLiM","inputError":"TextInput-module_inputError__QD0a-","errorMessage":"TextInput-module_errorMessage__nIDoQ","success":"TextInput-module_success__KbSS3","loading":"TextInput-module_loading__qXaca","withIcon":"TextInput-module_withIcon__-8swm","inputIcon":"TextInput-module_inputIcon__B4czN","withAction":"TextInput-module_withAction__JD3ku","actionButton":"TextInput-module_actionButton__zFJel"};
|
|
1214
1214
|
|
|
1215
1215
|
/**
|
|
1216
1216
|
* TextInput component - A versatile text input field with label and error handling
|
|
@@ -1247,21 +1247,21 @@ function TextInput({ label, value, onChange, type = "text", onBlur, placeholder,
|
|
|
1247
1247
|
const { handlers, playSound } = useComponentSound(soundConfig);
|
|
1248
1248
|
const prevValueRef = React.useRef(value);
|
|
1249
1249
|
const getContainerClassName = () => {
|
|
1250
|
-
const classes = [styles$
|
|
1250
|
+
const classes = [styles$r.textInput];
|
|
1251
1251
|
if (success)
|
|
1252
|
-
classes.push(styles$
|
|
1252
|
+
classes.push(styles$r.success);
|
|
1253
1253
|
if (loading)
|
|
1254
|
-
classes.push(styles$
|
|
1254
|
+
classes.push(styles$r.loading);
|
|
1255
1255
|
if (icon)
|
|
1256
|
-
classes.push(styles$
|
|
1256
|
+
classes.push(styles$r.withIcon);
|
|
1257
1257
|
if (actionButton)
|
|
1258
|
-
classes.push(styles$
|
|
1258
|
+
classes.push(styles$r.withAction);
|
|
1259
1259
|
return classes.join(' ');
|
|
1260
1260
|
};
|
|
1261
1261
|
React.useEffect(() => {
|
|
1262
1262
|
prevValueRef.current = value;
|
|
1263
1263
|
}, [value]);
|
|
1264
|
-
return (jsxs("div", { className: getContainerClassName(), children: [jsxs("label", { htmlFor: inputId, children: [label, required && jsx("span", { className: styles$
|
|
1264
|
+
return (jsxs("div", { className: getContainerClassName(), children: [jsxs("label", { htmlFor: inputId, children: [label, required && jsx("span", { className: styles$r.required, children: "*" })] }), jsxs("div", { style: { position: 'relative' }, children: [icon && jsx("div", { className: styles$r.inputIcon, children: icon }), jsx("input", { id: inputId, type: type, value: value, onChange: (e) => {
|
|
1265
1265
|
const newValue = e.target.value;
|
|
1266
1266
|
const oldValue = prevValueRef.current;
|
|
1267
1267
|
onChange(newValue);
|
|
@@ -1277,13 +1277,13 @@ function TextInput({ label, value, onChange, type = "text", onBlur, placeholder,
|
|
|
1277
1277
|
if (error && soundConfig?.onError) {
|
|
1278
1278
|
playSound(typeof soundConfig.onError === 'string' ? soundConfig.onError : 'error');
|
|
1279
1279
|
}
|
|
1280
|
-
}, onBlur: onBlur, placeholder: placeholder, className: error ? styles$
|
|
1280
|
+
}, onBlur: onBlur, placeholder: placeholder, className: error ? styles$r.inputError : '', "aria-invalid": !!error, "aria-describedby": error ? `${inputId}-error` : undefined, disabled: disabled || loading, maxLength: maxLength, autoComplete: autoComplete }), actionButton && (jsx("button", { type: "button", className: styles$r.actionButton, onClick: () => {
|
|
1281
1281
|
handlers.onClick?.();
|
|
1282
1282
|
actionButton.onClick();
|
|
1283
|
-
}, disabled: disabled || loading, children: actionButton.label }))] }), error && (jsx("span", { id: `${inputId}-error`, className: styles$
|
|
1283
|
+
}, disabled: disabled || loading, children: actionButton.label }))] }), error && (jsx("span", { id: `${inputId}-error`, className: styles$r.errorMessage, children: error }))] }));
|
|
1284
1284
|
}
|
|
1285
1285
|
|
|
1286
|
-
var styles$
|
|
1286
|
+
var styles$q = {"toggleContainer":"Toggle-module_toggleContainer__QxqQb","toggleButton":"Toggle-module_toggleButton__WUUf-","active":"Toggle-module_active__fX6Io"};
|
|
1287
1287
|
|
|
1288
1288
|
/**
|
|
1289
1289
|
* Toggle Component
|
|
@@ -1344,7 +1344,7 @@ function Toggle(props) {
|
|
|
1344
1344
|
justifyContent: 'center',
|
|
1345
1345
|
...style
|
|
1346
1346
|
};
|
|
1347
|
-
return (jsxs("div", { className: `${styles$
|
|
1347
|
+
return (jsxs("div", { className: `${styles$q.toggleContainer} ${className || ''}`, children: [jsxs(motion.button, { ref: leftButtonRef, className: `${styles$q.toggleButton} ${!isOn ? styles$q.active : ''}`, whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: () => {
|
|
1348
1348
|
if (!isOn) {
|
|
1349
1349
|
// Already on left
|
|
1350
1350
|
if (enableCelebration) {
|
|
@@ -1359,7 +1359,7 @@ function Toggle(props) {
|
|
|
1359
1359
|
playSound('toggle');
|
|
1360
1360
|
}
|
|
1361
1361
|
onToggle(false);
|
|
1362
|
-
}, onMouseEnter: () => handlers.onMouseEnter?.(), style: buttonStyle, children: [jsx(motion.div, { animate: { scale: !isOn ? 1.1 : 1, rotate: !isOn ? [0, -5, 5, 0] : 0 }, transition: { duration: 0.3 }, children: leftIcon }), leftLabel] }), jsxs(motion.button, { ref: rightButtonRef, className: `${styles$
|
|
1362
|
+
}, onMouseEnter: () => handlers.onMouseEnter?.(), style: buttonStyle, children: [jsx(motion.div, { animate: { scale: !isOn ? 1.1 : 1, rotate: !isOn ? [0, -5, 5, 0] : 0 }, transition: { duration: 0.3 }, children: leftIcon }), leftLabel] }), jsxs(motion.button, { ref: rightButtonRef, className: `${styles$q.toggleButton} ${isOn ? styles$q.active : ''}`, whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: () => {
|
|
1363
1363
|
if (isOn) {
|
|
1364
1364
|
// Already on right
|
|
1365
1365
|
if (enableCelebration) {
|
|
@@ -1377,7 +1377,7 @@ function Toggle(props) {
|
|
|
1377
1377
|
}, onMouseEnter: () => handlers.onMouseEnter?.(), style: buttonStyle, children: [jsx(motion.div, { animate: { scale: isOn ? 1.1 : 1, rotate: isOn ? [0, 5, -5, 0] : 0 }, transition: { duration: 0.3 }, children: rightIcon }), rightLabel] })] }));
|
|
1378
1378
|
}
|
|
1379
1379
|
|
|
1380
|
-
var styles$
|
|
1380
|
+
var styles$p = {"container":"NumberStepper-module_container__WSGlU","header":"NumberStepper-module_header__qXI1Y","icon":"NumberStepper-module_icon__vHgsw","label":"NumberStepper-module_label__AYr3g","stepper":"NumberStepper-module_stepper__oQhTp","disabled":"NumberStepper-module_disabled__kGB-g","button":"NumberStepper-module_button__YcjRt","buttonIcon":"NumberStepper-module_buttonIcon__odXec","valueContainer":"NumberStepper-module_valueContainer__87w2D","valueWrapper":"NumberStepper-module_valueWrapper__TH65N","value":"NumberStepper-module_value__BxJeD","limits":"NumberStepper-module_limits__-UrRE","limit":"NumberStepper-module_limit__7nbIP","small":"NumberStepper-module_small__P-k96","large":"NumberStepper-module_large__Lz6lk","outlined":"NumberStepper-module_outlined__CIXv7","filled":"NumberStepper-module_filled__IxOg-","minimal":"NumberStepper-module_minimal__y47-W","custom":"NumberStepper-module_custom__XGSVg","vertical":"NumberStepper-module_vertical__nBcL7","pulse":"NumberStepper-module_pulse__51oUo"};
|
|
1381
1381
|
|
|
1382
1382
|
/**
|
|
1383
1383
|
* NumberStepper Component
|
|
@@ -1564,32 +1564,32 @@ const NumberStepper = ({ value, onChange, min = -Infinity, max = Infinity, step
|
|
|
1564
1564
|
setDisplayValue(finalValue);
|
|
1565
1565
|
}, [displayValue, min, max, step, onChange]);
|
|
1566
1566
|
const containerClasses = [
|
|
1567
|
-
styles$
|
|
1568
|
-
styles$
|
|
1569
|
-
styles$
|
|
1570
|
-
layout === 'vertical' && styles$
|
|
1571
|
-
disabled && styles$
|
|
1567
|
+
styles$p.container,
|
|
1568
|
+
styles$p[size],
|
|
1569
|
+
styles$p[variant],
|
|
1570
|
+
layout === 'vertical' && styles$p.vertical,
|
|
1571
|
+
disabled && styles$p.disabled,
|
|
1572
1572
|
className
|
|
1573
1573
|
].filter(Boolean).join(' ');
|
|
1574
1574
|
// Merge custom styles with hover states
|
|
1575
1575
|
const [isButtonHovered, setIsButtonHovered] = useState(null);
|
|
1576
1576
|
const isDecrementDisabled = disabled || value <= min;
|
|
1577
1577
|
const isIncrementDisabled = disabled || value >= max;
|
|
1578
|
-
const stepperContent = (jsxs("div", { className: styles$
|
|
1578
|
+
const stepperContent = (jsxs("div", { className: styles$p.stepper, style: customStyles.stepper, onKeyDown: handleKeyDown, tabIndex: disabled ? -1 : 0, ...handlers, children: [jsx(motion.button, { className: styles$p.button, style: {
|
|
1579
1579
|
...customStyles.button,
|
|
1580
1580
|
...(isButtonHovered === 'decrement' && customStyles.buttonHover)
|
|
1581
|
-
}, onMouseEnter: () => setIsButtonHovered('decrement'), onMouseLeave: () => setIsButtonHovered(null), onClick: handleDecrement, disabled: isDecrementDisabled, whileTap: !isDecrementDisabled ? { scale: 0.9 } : undefined, animate: isDecrementing ? { scale: [1, 1.2, 1] } : undefined, transition: { duration: 0.2 }, "aria-label": "Decrease value", children: customButtons.decrement || (showPlusMinus ? (jsx("span", { className: styles$
|
|
1581
|
+
}, onMouseEnter: () => setIsButtonHovered('decrement'), onMouseLeave: () => setIsButtonHovered(null), onClick: handleDecrement, disabled: isDecrementDisabled, whileTap: !isDecrementDisabled ? { scale: 0.9 } : undefined, animate: isDecrementing ? { scale: [1, 1.2, 1] } : undefined, transition: { duration: 0.2 }, "aria-label": "Decrease value", children: customButtons.decrement || (showPlusMinus ? (jsx("span", { className: styles$p.buttonIcon, style: customStyles.buttonIcon, children: "\u2212" })) : (jsx("svg", { className: styles$p.buttonIcon, style: customStyles.buttonIcon, viewBox: "0 0 24 24", fill: "none", children: jsx("path", { d: "M15 18L9 12L15 6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }))) }), jsx("div", { className: styles$p.valueContainer, style: customStyles.valueContainer, children: jsx(AnimatePresence, { mode: "wait", children: jsx(motion.div, { initial: { y: isIncrementing ? 10 : isDecrementing ? -10 : 0, opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: isIncrementing ? -10 : isDecrementing ? 10 : 0, opacity: 0 }, transition: { duration: 0.15 }, className: styles$p.valueWrapper, children: jsx("input", { type: "text", className: styles$p.value, style: customStyles.value, value: displayValue, onChange: handleInputChange, onBlur: handleInputBlur, disabled: disabled, "aria-label": label || "Number input", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value }) }, value) }) }), jsx(motion.button, { className: styles$p.button, style: {
|
|
1582
1582
|
...customStyles.button,
|
|
1583
1583
|
...(isButtonHovered === 'increment' && customStyles.buttonHover)
|
|
1584
|
-
}, onMouseEnter: () => setIsButtonHovered('increment'), onMouseLeave: () => setIsButtonHovered(null), onClick: handleIncrement, disabled: isIncrementDisabled, whileTap: !isIncrementDisabled ? { scale: 0.9 } : undefined, animate: isIncrementing ? { scale: [1, 1.2, 1] } : undefined, transition: { duration: 0.2 }, "aria-label": "Increase value", children: customButtons.increment || (showPlusMinus ? (jsx("span", { className: styles$
|
|
1584
|
+
}, onMouseEnter: () => setIsButtonHovered('increment'), onMouseLeave: () => setIsButtonHovered(null), onClick: handleIncrement, disabled: isIncrementDisabled, whileTap: !isIncrementDisabled ? { scale: 0.9 } : undefined, animate: isIncrementing ? { scale: [1, 1.2, 1] } : undefined, transition: { duration: 0.2 }, "aria-label": "Increase value", children: customButtons.increment || (showPlusMinus ? (jsx("span", { className: styles$p.buttonIcon, style: customStyles.buttonIcon, children: "+" })) : (jsx("svg", { className: styles$p.buttonIcon, style: customStyles.buttonIcon, viewBox: "0 0 24 24", fill: "none", children: jsx("path", { d: "M9 18L15 12L9 6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }))) })] }));
|
|
1585
1585
|
// For custom variant with horizontal layout, render differently
|
|
1586
1586
|
if (variant === 'custom' && (label || icon)) {
|
|
1587
|
-
return (jsxs("div", { className: containerClasses, style: { ...customStyles.container, display: 'flex', alignItems: 'center' }, children: [jsxs("div", { className: styles$
|
|
1587
|
+
return (jsxs("div", { className: containerClasses, style: { ...customStyles.container, display: 'flex', alignItems: 'center' }, children: [jsxs("div", { className: styles$p.header, style: { ...customStyles.header, flex: 1, marginBottom: 0 }, children: [icon && jsx("span", { className: styles$p.icon, style: customStyles.icon, children: icon }), label && jsx("label", { className: styles$p.label, style: customStyles.label, children: label })] }), stepperContent, !hideLimits && (min !== -Infinity || max !== Infinity) && (jsxs("div", { className: styles$p.limits, style: customStyles.limits, children: [jsx("span", { className: styles$p.limit, children: min !== -Infinity && `Min: ${min}` }), jsx("span", { className: styles$p.limit, children: max !== Infinity && `Max: ${max}` })] }))] }));
|
|
1588
1588
|
}
|
|
1589
|
-
return (jsxs("div", { className: containerClasses, style: customStyles.container, children: [(label || icon) && (jsxs("div", { className: styles$
|
|
1589
|
+
return (jsxs("div", { className: containerClasses, style: customStyles.container, children: [(label || icon) && (jsxs("div", { className: styles$p.header, style: customStyles.header, children: [icon && jsx("span", { className: styles$p.icon, style: customStyles.icon, children: icon }), label && jsx("label", { className: styles$p.label, style: customStyles.label, children: label })] })), stepperContent, !hideLimits && (min !== -Infinity || max !== Infinity) && (jsxs("div", { className: styles$p.limits, style: customStyles.limits, children: [jsx("span", { className: styles$p.limit, children: min !== -Infinity && `Min: ${min}` }), jsx("span", { className: styles$p.limit, children: max !== Infinity && `Max: ${max}` })] }))] }));
|
|
1590
1590
|
};
|
|
1591
1591
|
|
|
1592
|
-
var styles$
|
|
1592
|
+
var styles$o = {"button":"ToggleButton-module_button__DTuyY","background":"ToggleButton-module_background__NwfTp","content":"ToggleButton-module_content__NHqIN","iconWrapper":"ToggleButton-module_iconWrapper__yN4sP","icon":"ToggleButton-module_icon__r8juX","label":"ToggleButton-module_label__4mPJP","hideMobile":"ToggleButton-module_hideMobile__GFAc3","checkmark":"ToggleButton-module_checkmark__ZJwf-","ripple":"ToggleButton-module_ripple__2-faB","small":"ToggleButton-module_small__MhfoN","large":"ToggleButton-module_large__A3naL","default":"ToggleButton-module_default__q8QaZ","active":"ToggleButton-module_active__4DjlR","outlined":"ToggleButton-module_outlined__OtqJB","filled":"ToggleButton-module_filled__LySNn","ghost":"ToggleButton-module_ghost__9KXcb","active-primary":"ToggleButton-module_active-primary__vXMP7","active-secondary":"ToggleButton-module_active-secondary__9Ttdx","active-success":"ToggleButton-module_active-success__oi0rr","active-danger":"ToggleButton-module_active-danger__VUdxr","active-warning":"ToggleButton-module_active-warning__77nSu","animation-scale":"ToggleButton-module_animation-scale__j-3mJ","scaleAnimation":"ToggleButton-module_scaleAnimation__Ms1j2","animation-rotate":"ToggleButton-module_animation-rotate__pBmfc","rotateAnimation":"ToggleButton-module_rotateAnimation__xWZJ5","animation-flip":"ToggleButton-module_animation-flip__ErAbm","flipAnimation":"ToggleButton-module_flipAnimation__qwDTb","disabled":"ToggleButton-module_disabled__Gv5ji"};
|
|
1593
1593
|
|
|
1594
1594
|
/**
|
|
1595
1595
|
* ToggleButton Component
|
|
@@ -1628,18 +1628,18 @@ var styles$n = {"button":"ToggleButton-module_button__DTuyY","background":"Toggl
|
|
|
1628
1628
|
const ToggleButton = ({ active, onClick, icon, label, disabled = false, size = 'medium', variant = 'default', activeColor = 'primary', showCheckmark = false, animation = 'scale', className = '', style = {}, color, tooltip, hideLabelOnMobile = false, soundConfig }) => {
|
|
1629
1629
|
const { handlers, playSound } = useComponentSound(soundConfig);
|
|
1630
1630
|
const buttonClasses = [
|
|
1631
|
-
styles$
|
|
1632
|
-
styles$
|
|
1633
|
-
styles$
|
|
1634
|
-
active && styles$
|
|
1635
|
-
active && styles$
|
|
1636
|
-
disabled && styles$
|
|
1637
|
-
animation !== 'none' && styles$
|
|
1631
|
+
styles$o.button,
|
|
1632
|
+
styles$o[size],
|
|
1633
|
+
styles$o[variant],
|
|
1634
|
+
active && styles$o.active,
|
|
1635
|
+
active && styles$o[`active-${activeColor}`],
|
|
1636
|
+
disabled && styles$o.disabled,
|
|
1637
|
+
animation !== 'none' && styles$o[`animation-${animation}`],
|
|
1638
1638
|
className
|
|
1639
1639
|
].filter(Boolean).join(' ');
|
|
1640
1640
|
const labelClasses = [
|
|
1641
|
-
styles$
|
|
1642
|
-
hideLabelOnMobile && styles$
|
|
1641
|
+
styles$o.label,
|
|
1642
|
+
hideLabelOnMobile && styles$o.hideMobile
|
|
1643
1643
|
].filter(Boolean).join(' ');
|
|
1644
1644
|
const iconVariants = {
|
|
1645
1645
|
scale: {
|
|
@@ -1703,10 +1703,10 @@ const ToggleButton = ({ active, onClick, icon, label, disabled = false, size = '
|
|
|
1703
1703
|
return (jsxs(motion.button, { className: buttonClasses, style: dynamicStyle, onClick: () => {
|
|
1704
1704
|
playSound('toggle');
|
|
1705
1705
|
onClick();
|
|
1706
|
-
}, disabled: disabled, whileHover: !disabled ? { scale: 1.05 } : undefined, whileTap: !disabled ? { scale: 0.95 } : undefined, title: tooltip, "aria-pressed": active, "aria-label": label, ...handlers, children: [jsx(motion.div, { className: styles$
|
|
1706
|
+
}, disabled: disabled, whileHover: !disabled ? { scale: 1.05 } : undefined, whileTap: !disabled ? { scale: 0.95 } : undefined, title: tooltip, "aria-pressed": active, "aria-label": label, ...handlers, children: [jsx(motion.div, { className: styles$o.background, variants: backgroundVariants, initial: "inactive", animate: active ? "active" : "inactive" }), jsxs("div", { className: styles$o.content, children: [icon && (jsx(motion.div, { className: styles$o.iconWrapper, variants: iconVariants[animation], initial: "inactive", animate: active ? "active" : "inactive", transition: { duration: 0.3 }, children: typeof icon === 'string' ? (jsx("span", { className: styles$o.icon, children: icon })) : (jsx("div", { className: styles$o.icon, children: icon })) })), label && jsx("span", { className: labelClasses, children: label }), jsx(AnimatePresence, { children: showCheckmark && active && (jsx(motion.div, { className: styles$o.checkmark, variants: checkmarkVariants, initial: "hidden", animate: "visible", exit: "hidden", children: jsx("svg", { viewBox: "0 0 24 24", fill: "none", children: jsx("path", { d: "M20 6L9 17L4 12", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round" }) }) })) })] }), jsx(AnimatePresence, { children: active && (jsx(motion.div, { className: styles$o.ripple, initial: { scale: 0, opacity: 0.5 }, animate: { scale: 2, opacity: 0 }, exit: { scale: 0, opacity: 0 }, transition: { duration: 0.6 } })) })] }));
|
|
1707
1707
|
};
|
|
1708
1708
|
|
|
1709
|
-
var styles$
|
|
1709
|
+
var styles$n = {"slider":"Slider-module_slider__RD4G7","label":"Slider-module_label__j4H8M","sliderContainer":"Slider-module_sliderContainer__kQICC","track":"Slider-module_track__fQ-oP","fill":"Slider-module_fill__AYR4-","shimmer":"Slider-module_shimmer__271tL","input":"Slider-module_input__fqY-G","thumb":"Slider-module_thumb__yQJho","ripple":"Slider-module_ripple__gVS04","tooltip":"Slider-module_tooltip__ZubHR","tooltipArrow":"Slider-module_tooltipArrow__1aV9s","valueDisplay":"Slider-module_valueDisplay__V6caL","labelsContainer":"Slider-module_labelsContainer__F6ojF","labelItem":"Slider-module_labelItem__FuEaY","size-sm":"Slider-module_size-sm__Y2bmS","size-lg":"Slider-module_size-lg__RSnPf","disabled":"Slider-module_disabled__gxYoH","loading":"Slider-module_loading__6FkKb","loadingTrack":"Slider-module_loadingTrack__8ItT2","loadingIndicator":"Slider-module_loadingIndicator__Elydq"};
|
|
1710
1710
|
|
|
1711
1711
|
/**
|
|
1712
1712
|
* Slider component - A beautiful, animated range input
|
|
@@ -1794,16 +1794,16 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
|
|
|
1794
1794
|
setShowTooltipState(false);
|
|
1795
1795
|
};
|
|
1796
1796
|
const dynamicColor = getDynamicColor();
|
|
1797
|
-
const sizeClass = styles$
|
|
1798
|
-
const stateClass = disabled ? styles$
|
|
1797
|
+
const sizeClass = styles$n[`size-${size}`];
|
|
1798
|
+
const stateClass = disabled ? styles$n.disabled : loading ? styles$n.loading : '';
|
|
1799
1799
|
if (loading) {
|
|
1800
|
-
return (jsxs("div", { className: `${styles$
|
|
1800
|
+
return (jsxs("div", { className: `${styles$n.slider} ${sizeClass} ${styles$n.loading} ${className}`, style: style, children: [label && jsx("label", { className: styles$n.label, children: label }), jsx("div", { className: styles$n.loadingTrack, children: jsx(motion.div, { className: styles$n.loadingIndicator, animate: { x: ['-100%', '200%'] }, transition: {
|
|
1801
1801
|
repeat: Infinity,
|
|
1802
1802
|
duration: 1.5,
|
|
1803
1803
|
ease: "easeInOut"
|
|
1804
1804
|
} }) })] }));
|
|
1805
1805
|
}
|
|
1806
|
-
return (jsxs("div", { className: `${styles$
|
|
1806
|
+
return (jsxs("div", { className: `${styles$n.slider} ${sizeClass} ${stateClass} ${className}`, style: style, children: [label && (jsx(motion.label, { className: styles$n.label, initial: { opacity: 0, y: -10 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3 }, children: label })), jsxs(motion.div, { className: styles$n.sliderContainer, ref: sliderRef, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, whileHover: { scale: 1.02 }, transition: { duration: 0.1 }, children: [jsx(motion.div, { className: styles$n.track, whileHover: { height: 8, marginTop: -1 }, transition: { duration: 0.1 }, children: jsx(motion.div, { className: styles$n.fill, style: {
|
|
1807
1807
|
width: `${percentage}%`,
|
|
1808
1808
|
backgroundColor: dynamicColor
|
|
1809
1809
|
}, initial: { width: 0 }, animate: { width: `${percentage}%` }, transition: {
|
|
@@ -1813,7 +1813,7 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
|
|
|
1813
1813
|
damping: 30
|
|
1814
1814
|
}, whileHover: {
|
|
1815
1815
|
boxShadow: `inset 0 0 0 1px rgba(255,255,255,0.2)`
|
|
1816
|
-
} }) }), jsx("input", { type: "range", min: min, max: max, step: step, value: value, onChange: handleChange, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, ...handlers, className: styles$
|
|
1816
|
+
} }) }), jsx("input", { type: "range", min: min, max: max, step: step, value: value, onChange: handleChange, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, ...handlers, className: styles$n.input, disabled: disabled, "aria-label": label }), jsx(motion.div, { className: styles$n.thumb, style: {
|
|
1817
1817
|
left: `${percentage}%`,
|
|
1818
1818
|
backgroundColor: dynamicColor,
|
|
1819
1819
|
borderColor: colors.thumb || dynamicColor
|
|
@@ -1830,14 +1830,14 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
|
|
|
1830
1830
|
}, whileHover: {
|
|
1831
1831
|
scale: 1.1,
|
|
1832
1832
|
transition: { duration: 0.1 }
|
|
1833
|
-
}, children: isDragging && (jsx(motion.div, { className: styles$
|
|
1833
|
+
}, children: isDragging && (jsx(motion.div, { className: styles$n.ripple, initial: { scale: 0, opacity: 0.6 }, animate: { scale: 2, opacity: 0 }, transition: { duration: 0.5 } })) }), jsx(AnimatePresence, { children: showTooltipState && (jsxs(motion.div, { className: styles$n.tooltip, style: {
|
|
1834
1834
|
left: `${percentage}%`,
|
|
1835
1835
|
backgroundColor: dynamicColor
|
|
1836
|
-
}, initial: { opacity: 0, y: 10, scale: 0.8 }, animate: { opacity: 1, y: 0, scale: 1 }, exit: { opacity: 0, y: 10, scale: 0.8 }, transition: { duration: 0.2 }, children: [tooltipContent ? tooltipContent(value) : formatValue(value), jsx("div", { className: styles$
|
|
1836
|
+
}, initial: { opacity: 0, y: 10, scale: 0.8 }, animate: { opacity: 1, y: 0, scale: 1 }, exit: { opacity: 0, y: 10, scale: 0.8 }, transition: { duration: 0.2 }, children: [tooltipContent ? tooltipContent(value) : formatValue(value), jsx("div", { className: styles$n.tooltipArrow, style: { borderTopColor: dynamicColor } })] })) })] }), showValue && (jsx(motion.div, { className: styles$n.valueDisplay, style: { color: dynamicColor }, initial: { scale: 0.8 }, animate: { scale: 1 }, transition: {
|
|
1837
1837
|
duration: 0.2,
|
|
1838
1838
|
type: "spring",
|
|
1839
1839
|
stiffness: 300
|
|
1840
|
-
}, children: formatValue(value) }, value)), labels.length > 0 && (jsx("div", { className: styles$
|
|
1840
|
+
}, children: formatValue(value) }, value)), labels.length > 0 && (jsx("div", { className: styles$n.labelsContainer, children: labels.map((labelConfig, index) => {
|
|
1841
1841
|
let position = 0;
|
|
1842
1842
|
if (labelConfig.position === 'start')
|
|
1843
1843
|
position = 0;
|
|
@@ -1845,7 +1845,7 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
|
|
|
1845
1845
|
position = 100;
|
|
1846
1846
|
else if (typeof labelConfig.position === 'number')
|
|
1847
1847
|
position = labelConfig.position;
|
|
1848
|
-
return (jsx(motion.div, { className: styles$
|
|
1848
|
+
return (jsx(motion.div, { className: styles$n.labelItem, style: {
|
|
1849
1849
|
left: `${position}%`,
|
|
1850
1850
|
color: labelConfig.color
|
|
1851
1851
|
}, initial: { opacity: 0, y: 5 }, animate: { opacity: 1, y: 0 }, transition: {
|
|
@@ -1858,7 +1858,7 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
|
|
|
1858
1858
|
}) }))] }));
|
|
1859
1859
|
}
|
|
1860
1860
|
|
|
1861
|
-
var styles$
|
|
1861
|
+
var styles$m = {"loadingContainer":"LoadingSpinner-module_loadingContainer__m5u51","fullScreen":"LoadingSpinner-module_fullScreen__TuAem","overlay":"LoadingSpinner-module_overlay__X7FTa","shimmer":"LoadingSpinner-module_shimmer__xw4AH","small":"LoadingSpinner-module_small__nq8A3","loadingText":"LoadingSpinner-module_loadingText__wWwna","medium":"LoadingSpinner-module_medium__3JC1S","large":"LoadingSpinner-module_large__4MvAc","dotsSpinner":"LoadingSpinner-module_dotsSpinner__PXtfs","dot1":"LoadingSpinner-module_dot1__5YKSi","dot2":"LoadingSpinner-module_dot2__l6Rbu","dot3":"LoadingSpinner-module_dot3__b9YPW","circleSpinner":"LoadingSpinner-module_circleSpinner__ZmmWs","pulseSpinner":"LoadingSpinner-module_pulseSpinner__wTtDJ","textGradient":"LoadingSpinner-module_textGradient__QDrTY","sparkleContainer":"LoadingSpinner-module_sparkleContainer__9XLJG","sparkle":"LoadingSpinner-module_sparkle__LtFFf"};
|
|
1862
1862
|
|
|
1863
1863
|
const defaultMessages = [
|
|
1864
1864
|
'Loading your content...',
|
|
@@ -1942,22 +1942,22 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
|
|
|
1942
1942
|
}
|
|
1943
1943
|
}, [currentMessageIndex, message, messagesToUse, showMessage]);
|
|
1944
1944
|
const containerClasses = [
|
|
1945
|
-
styles$
|
|
1946
|
-
styles$
|
|
1947
|
-
styles$
|
|
1948
|
-
fullScreen && styles$
|
|
1949
|
-
overlay && styles$
|
|
1945
|
+
styles$m.loadingContainer,
|
|
1946
|
+
styles$m[size],
|
|
1947
|
+
styles$m[variant],
|
|
1948
|
+
fullScreen && styles$m.fullScreen,
|
|
1949
|
+
overlay && styles$m.overlay,
|
|
1950
1950
|
className
|
|
1951
1951
|
].filter(Boolean).join(' ');
|
|
1952
1952
|
const customStyle = {
|
|
1953
1953
|
...(color && { '--spinner-color': color }),
|
|
1954
1954
|
...(backgroundColor && { '--spinner-background': backgroundColor }),
|
|
1955
1955
|
};
|
|
1956
|
-
const renderDots = () => (jsxs(motion.div, { className: styles$
|
|
1956
|
+
const renderDots = () => (jsxs(motion.div, { className: styles$m.dotsSpinner, animate: { rotate: 360 }, transition: {
|
|
1957
1957
|
duration: 2,
|
|
1958
1958
|
repeat: Infinity,
|
|
1959
1959
|
ease: 'linear'
|
|
1960
|
-
}, children: [jsx(motion.div, { className: styles$
|
|
1960
|
+
}, children: [jsx(motion.div, { className: styles$m.dot1, animate: {
|
|
1961
1961
|
scale: [1, 1.3, 1],
|
|
1962
1962
|
y: [0, -6, 0]
|
|
1963
1963
|
}, transition: {
|
|
@@ -1965,7 +1965,7 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
|
|
|
1965
1965
|
repeat: Infinity,
|
|
1966
1966
|
ease: 'easeInOut',
|
|
1967
1967
|
delay: 0
|
|
1968
|
-
} }), jsx(motion.div, { className: styles$
|
|
1968
|
+
} }), jsx(motion.div, { className: styles$m.dot2, animate: {
|
|
1969
1969
|
scale: [1, 1.3, 1],
|
|
1970
1970
|
y: [0, -6, 0]
|
|
1971
1971
|
}, transition: {
|
|
@@ -1973,7 +1973,7 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
|
|
|
1973
1973
|
repeat: Infinity,
|
|
1974
1974
|
ease: 'easeInOut',
|
|
1975
1975
|
delay: 0.5
|
|
1976
|
-
} }), jsx(motion.div, { className: styles$
|
|
1976
|
+
} }), jsx(motion.div, { className: styles$m.dot3, animate: {
|
|
1977
1977
|
scale: [1, 1.3, 1],
|
|
1978
1978
|
y: [0, -6, 0]
|
|
1979
1979
|
}, transition: {
|
|
@@ -1982,12 +1982,12 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
|
|
|
1982
1982
|
ease: 'easeInOut',
|
|
1983
1983
|
delay: 1
|
|
1984
1984
|
} })] }));
|
|
1985
|
-
const renderSpinner = () => (jsx(motion.div, { className: styles$
|
|
1985
|
+
const renderSpinner = () => (jsx(motion.div, { className: styles$m.circleSpinner, animate: { rotate: 360 }, transition: {
|
|
1986
1986
|
duration: 1,
|
|
1987
1987
|
repeat: Infinity,
|
|
1988
1988
|
ease: 'linear'
|
|
1989
1989
|
} }));
|
|
1990
|
-
const renderPulse = () => (jsx(motion.div, { className: styles$
|
|
1990
|
+
const renderPulse = () => (jsx(motion.div, { className: styles$m.pulseSpinner, animate: {
|
|
1991
1991
|
scale: [1, 1.2, 1],
|
|
1992
1992
|
opacity: [1, 0.7, 1]
|
|
1993
1993
|
}, transition: {
|
|
@@ -2006,10 +2006,10 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
|
|
|
2006
2006
|
return renderDots();
|
|
2007
2007
|
}
|
|
2008
2008
|
};
|
|
2009
|
-
return (jsxs("div", { className: containerClasses, style: customStyle, children: [renderSpinnerVariant(), showMessage && (jsx(AnimatePresence, { mode: "wait", children: jsx(motion.p, { className: styles$
|
|
2009
|
+
return (jsxs("div", { className: containerClasses, style: customStyle, children: [renderSpinnerVariant(), showMessage && (jsx(AnimatePresence, { mode: "wait", children: jsx(motion.p, { className: styles$m.loadingText, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -10 }, transition: {
|
|
2010
2010
|
duration: 0.4,
|
|
2011
2011
|
ease: 'easeOut'
|
|
2012
|
-
}, children: currentMessage }, currentMessage) })), showSparkles && (jsx("div", { className: styles$
|
|
2012
|
+
}, children: currentMessage }, currentMessage) })), showSparkles && (jsx("div", { className: styles$m.sparkleContainer, children: [...Array(4)].map((_, i) => (jsx(motion.div, { className: styles$m.sparkle, animate: {
|
|
2013
2013
|
opacity: [0, 1, 0],
|
|
2014
2014
|
scale: [0.5, 1, 0.5],
|
|
2015
2015
|
rotate: [0, 180, 360]
|
|
@@ -2024,7 +2024,7 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
|
|
|
2024
2024
|
} }, i))) }))] }));
|
|
2025
2025
|
};
|
|
2026
2026
|
|
|
2027
|
-
var styles$
|
|
2027
|
+
var styles$l = {"wrapper":"DecryptedText-module_wrapper__tuLvf","srOnly":"DecryptedText-module_srOnly__A-K2T"};
|
|
2028
2028
|
|
|
2029
2029
|
/**
|
|
2030
2030
|
* DecryptedText Component
|
|
@@ -2208,13 +2208,13 @@ const DecryptedText = ({ text, speed = 50, maxIterations = 10, sequential = fals
|
|
|
2208
2208
|
onMouseLeave: () => setIsHovering(false),
|
|
2209
2209
|
}
|
|
2210
2210
|
: {};
|
|
2211
|
-
return (jsxs(motion.span, { className: `${styles$
|
|
2211
|
+
return (jsxs(motion.span, { className: `${styles$l.wrapper} ${parentClassName}`, ref: containerRef, ...hoverProps, ...props, children: [jsx("span", { className: styles$l.srOnly, children: displayText }), jsx("span", { "aria-hidden": "true", children: displayText.split('').map((char, index) => {
|
|
2212
2212
|
const isRevealedOrDone = revealedIndices.has(index) || !isScrambling || !isHovering;
|
|
2213
2213
|
return (jsx("span", { className: isRevealedOrDone ? className : encryptedClassName, children: char }, index));
|
|
2214
2214
|
}) })] }));
|
|
2215
2215
|
};
|
|
2216
2216
|
|
|
2217
|
-
var styles$
|
|
2217
|
+
var styles$k = {"arrayInput":"ArrayInput-module_arrayInput__q1x7A","arrayInputLabel":"ArrayInput-module_arrayInputLabel__HyUC7","arrayInputItem":"ArrayInput-module_arrayInputItem__bFtgl","inputWrapper":"ArrayInput-module_inputWrapper__ajhbW","input":"ArrayInput-module_input__1uywi","complexItem":"ArrayInput-module_complexItem__zr-Q-","fieldsWrapper":"ArrayInput-module_fieldsWrapper__7BVPa","removeButton":"ArrayInput-module_removeButton__gYf8Y","addButton":"ArrayInput-module_addButton__mia29"};
|
|
2218
2218
|
|
|
2219
2219
|
/**
|
|
2220
2220
|
* ArrayInput component - Versatile dynamic list manager
|
|
@@ -2281,11 +2281,11 @@ function SimpleArrayInput({ label, values, onChange, placeholder, itemStyle, inp
|
|
|
2281
2281
|
itemIdsRef.current.splice(index, 1);
|
|
2282
2282
|
onChange(newValues);
|
|
2283
2283
|
};
|
|
2284
|
-
return (jsxs("div", { className: styles$
|
|
2284
|
+
return (jsxs("div", { className: styles$k.arrayInput, children: [jsx("h3", { className: styles$k.arrayInputLabel, children: label }), jsx("div", { children: jsx(AnimatePresence, { children: values.map((value, index) => (jsxs(motion.div, { className: styles$k.arrayInputItem, style: itemStyle, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0 }, transition: {
|
|
2285
2285
|
duration: 0.3,
|
|
2286
2286
|
ease: "easeInOut",
|
|
2287
2287
|
layout: { duration: 0.2 }
|
|
2288
|
-
}, children: [jsx("div", { className: styles$
|
|
2288
|
+
}, children: [jsx("div", { className: styles$k.inputWrapper, children: multiline ? (jsx("div", { style: inputStyle, children: jsx(TextArea, { label: "", value: value, onChange: (newValue) => handleChange(index, newValue), placeholder: placeholder, rows: rows, compact: true }) })) : (jsx("input", { type: "text", value: value, onChange: (e) => handleChange(index, e.target.value), placeholder: placeholder, className: styles$k.input, style: inputStyle })) }), jsx(Button, { variant: "ghost", size: "small", onClick: () => handleRemove(index), "aria-label": "Remove item", className: styles$k.removeButton, children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) })] }, itemIdsRef.current[index]))) }) }), jsx(Button, { variant: buttonVariant, size: "small", onClick: handleAdd, className: styles$k.addButton, children: label })] }));
|
|
2289
2289
|
}
|
|
2290
2290
|
// Complex object array implementation
|
|
2291
2291
|
function ComplexArrayInput({ label, values, onChange, fields, getKey, itemStyle, inputStyle, buttonVariant = 'primary' }) {
|
|
@@ -2310,14 +2310,14 @@ function ComplexArrayInput({ label, values, onChange, fields, getKey, itemStyle,
|
|
|
2310
2310
|
// Generate key from all field values
|
|
2311
2311
|
return fields.map(f => item[f.name] || '').join('-') + `-${index}`;
|
|
2312
2312
|
};
|
|
2313
|
-
return (jsxs("div", { className: styles$
|
|
2313
|
+
return (jsxs("div", { className: styles$k.arrayInput, children: [jsx("h3", { className: styles$k.arrayInputLabel, children: label }), jsx("div", { children: jsx(AnimatePresence, { children: values.map((value, index) => (jsxs(motion.div, { className: `${styles$k.arrayInputItem} ${fields.length > 1 ? styles$k.complexItem : ''}`, style: itemStyle, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0 }, transition: {
|
|
2314
2314
|
duration: 0.3,
|
|
2315
2315
|
ease: "easeInOut",
|
|
2316
2316
|
layout: { duration: 0.2 }
|
|
2317
|
-
}, children: [jsx("div", { className: styles$
|
|
2317
|
+
}, children: [jsx("div", { className: styles$k.fieldsWrapper, children: fields.map((field) => (jsx("div", { style: inputStyle, children: field.multiline ? (jsx(TextArea, { value: value[field.name] || '', onChange: (newValue) => handleChange(index, field.name, newValue), label: field.label, placeholder: field.placeholder, rows: field.rows, compact: true })) : (jsx(TextInput, { value: value[field.name] || '', onChange: (newValue) => handleChange(index, field.name, newValue), label: field.label, type: field.type, placeholder: field.placeholder })) }, field.name))) }), jsx(Button, { variant: "ghost", size: "small", onClick: () => handleRemove(index), "aria-label": "Remove item", className: styles$k.removeButton, children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) })] }, generateKey(value, index)))) }) }), jsxs(Button, { variant: buttonVariant, size: "small", onClick: handleAdd, className: styles$k.addButton, children: ["Add ", label] })] }));
|
|
2318
2318
|
}
|
|
2319
2319
|
|
|
2320
|
-
var styles$
|
|
2320
|
+
var styles$j = {"fab":"EditFAB-module_fab__nSrTJ","primary":"EditFAB-module_primary__zbA9n","secondary":"EditFAB-module_secondary__BnXs0","success":"EditFAB-module_success__kcLg3","loader":"EditFAB-module_loader__TaJOm","draggable":"EditFAB-module_draggable__eE2vE","dragging":"EditFAB-module_dragging__btRJe"};
|
|
2321
2321
|
|
|
2322
2322
|
const EditFAB = ({ canEdit, isEditMode, hasUnsavedChanges = false, isSaving = false, onEnterEditMode, onExitEditMode, position = { bottom: 32, right: 32 } }) => {
|
|
2323
2323
|
const [isMobile, setIsMobile] = useState(false);
|
|
@@ -2402,15 +2402,15 @@ const EditFAB = ({ canEdit, isEditMode, hasUnsavedChanges = false, isSaving = fa
|
|
|
2402
2402
|
};
|
|
2403
2403
|
const getVariantClass = () => {
|
|
2404
2404
|
if (isSaving)
|
|
2405
|
-
return styles$
|
|
2405
|
+
return styles$j.primary;
|
|
2406
2406
|
if (isEditMode) {
|
|
2407
|
-
return hasUnsavedChanges ? styles$
|
|
2407
|
+
return hasUnsavedChanges ? styles$j.success : styles$j.secondary;
|
|
2408
2408
|
}
|
|
2409
|
-
return styles$
|
|
2409
|
+
return styles$j.primary;
|
|
2410
2410
|
};
|
|
2411
2411
|
const getIcon = () => {
|
|
2412
2412
|
if (isSaving) {
|
|
2413
|
-
return jsx("div", { className: styles$
|
|
2413
|
+
return jsx("div", { className: styles$j.loader });
|
|
2414
2414
|
}
|
|
2415
2415
|
if (isEditMode) {
|
|
2416
2416
|
return hasUnsavedChanges ? jsx(Check, { size: 24 }) : jsx(X, { size: 24 });
|
|
@@ -2425,14 +2425,14 @@ const EditFAB = ({ canEdit, isEditMode, hasUnsavedChanges = false, isSaving = fa
|
|
|
2425
2425
|
}
|
|
2426
2426
|
return "Enter edit mode";
|
|
2427
2427
|
};
|
|
2428
|
-
return (jsx(motion.button, { ref: fabRef, className: `${styles$
|
|
2428
|
+
return (jsx(motion.button, { ref: fabRef, className: `${styles$j.fab} ${getVariantClass()} ${isMobile ? styles$j.draggable : ''} ${isDragging ? styles$j.dragging : ''}`, style: getPositionStyles(), onClick: handleClick, onTouchStart: handleTouchStart, onTouchMove: handleTouchMove, onTouchEnd: handleTouchEnd, disabled: isSaving, "aria-label": getAriaLabel(), initial: { scale: 0, opacity: 0 }, animate: { scale: 1, opacity: 1 }, exit: { scale: 0, opacity: 0 }, whileHover: !isSaving && !isDragging ? { scale: 1.1 } : {}, whileTap: !isSaving && !isDragging ? { scale: 0.9 } : {}, transition: {
|
|
2429
2429
|
type: "spring",
|
|
2430
2430
|
stiffness: 260,
|
|
2431
2431
|
damping: 20
|
|
2432
2432
|
}, children: getIcon() }));
|
|
2433
2433
|
};
|
|
2434
2434
|
|
|
2435
|
-
var styles$
|
|
2435
|
+
var styles$i = {"searchContainer":"SearchBar-module_searchContainer__TdM1w","searchInputWrapper":"SearchBar-module_searchInputWrapper__kCZLU","searchIcon":"SearchBar-module_searchIcon__IIxEu","searchInput":"SearchBar-module_searchInput__V4gkE","clearButton":"SearchBar-module_clearButton__7fNIY","filterSelect":"SearchBar-module_filterSelect__xIVE4","resultsDropdown":"SearchBar-module_resultsDropdown__yh6NF","loadingState":"SearchBar-module_loadingState__4gidK","emptyState":"SearchBar-module_emptyState__RbI4s","spinner":"SearchBar-module_spinner__PMc6-","resultsGroups":"SearchBar-module_resultsGroups__U24DC","resultGroup":"SearchBar-module_resultGroup__SoTQH","groupHeader":"SearchBar-module_groupHeader__bFRHA","groupIcon":"SearchBar-module_groupIcon__9ENM-","groupTitle":"SearchBar-module_groupTitle__ZekZs","groupCount":"SearchBar-module_groupCount__PQIqw","groupResults":"SearchBar-module_groupResults__xTF52","resultItem":"SearchBar-module_resultItem__VaKKy","highlighted":"SearchBar-module_highlighted__Q-3sH","resultTitle":"SearchBar-module_resultTitle__i1uqL","resultSubtitle":"SearchBar-module_resultSubtitle__LQOJ1","resultMeta":"SearchBar-module_resultMeta__Kmkrn","resultContent":"SearchBar-module_resultContent__TzVzL","highlight":"SearchBar-module_highlight__Q3PSP"};
|
|
2436
2436
|
|
|
2437
2437
|
// Default filter options for backwards compatibility
|
|
2438
2438
|
const defaultFilterOptions = [
|
|
@@ -2625,18 +2625,18 @@ const SearchBar = ({ className, placeholder = "Search (Ctrl+Space)...", onSearch
|
|
|
2625
2625
|
return text || '';
|
|
2626
2626
|
const regex = new RegExp(`(${highlight.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')})`, 'gi');
|
|
2627
2627
|
const parts = text.split(regex);
|
|
2628
|
-
return parts.map((part, index) => regex.test(part) ? (jsx("mark", { className: styles$
|
|
2628
|
+
return parts.map((part, index) => regex.test(part) ? (jsx("mark", { className: styles$i.highlight, children: part }, index)) : (part));
|
|
2629
2629
|
};
|
|
2630
|
-
return (jsxs("div", { ref: searchRef, className: `${styles$
|
|
2630
|
+
return (jsxs("div", { ref: searchRef, className: `${styles$i.searchContainer} ${className || ''}`, children: [jsxs("div", { className: styles$i.searchInputWrapper, children: [jsx(Search, { className: styles$i.searchIcon }), jsx("input", { ref: inputRef, type: "text", value: query, onChange: (e) => setQuery(e.target.value), onKeyDown: handleKeyDown, onFocus: () => query.trim() && results.length > 0 && setIsDropdownOpen(true), placeholder: placeholder, className: styles$i.searchInput, "aria-label": "Search", "aria-expanded": isDropdownOpen, "aria-controls": "search-results", "aria-autocomplete": "list" }), query && (jsx(motion.button, { className: styles$i.clearButton, onClick: handleClear, whileHover: { scale: 1.1 }, whileTap: { scale: 0.9 }, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, children: jsx(X, {}) })), showFilter && (jsx("select", { value: filter, onChange: (e) => setFilter(e.target.value), className: styles$i.filterSelect, "aria-label": "Filter search results", children: filterOptions.map(option => (jsx("option", { value: option.value, children: option.label }, option.value))) }))] }), jsx(AnimatePresence, { children: isDropdownOpen && (jsx(motion.div, { ref: resultsRef, id: "search-results", className: styles$i.resultsDropdown, initial: { opacity: 0, y: -10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -10 }, transition: { duration: 0.2 }, children: isLoading ? (jsxs("div", { className: styles$i.loadingState, children: [jsx("div", { className: styles$i.spinner }), jsx("span", { children: "Searching..." })] })) : results.length === 0 ? (jsxs("div", { className: styles$i.emptyState, children: ["No results found for \"", query, "\""] })) : (jsx("div", { className: styles$i.resultsGroups, children: Object.entries(groupedResults).map(([type, groupResults]) => {
|
|
2631
2631
|
const Icon = entityIcons[type];
|
|
2632
|
-
return (jsxs("div", { className: styles$
|
|
2632
|
+
return (jsxs("div", { className: styles$i.resultGroup, children: [jsxs("div", { className: styles$i.groupHeader, children: [Icon && jsx(Icon, { className: styles$i.groupIcon }), jsx("span", { className: styles$i.groupTitle, children: type.charAt(0).toUpperCase() + type.slice(1) }), jsx("span", { className: styles$i.groupCount, children: groupResults.length })] }), jsx("div", { className: styles$i.groupResults, children: groupResults.map((result) => {
|
|
2633
2633
|
const globalIndex = results.indexOf(result);
|
|
2634
|
-
return (jsxs(motion.button, { "data-result-index": globalIndex, className: `${styles$
|
|
2634
|
+
return (jsxs(motion.button, { "data-result-index": globalIndex, className: `${styles$i.resultItem} ${highlightedIndex === globalIndex ? styles$i.highlighted : ''}`, onClick: () => handleResultClick(result), whileHover: { x: 4 }, onMouseEnter: () => setHighlightedIndex(globalIndex), children: [jsxs("div", { className: styles$i.resultContent, children: [jsx("div", { className: styles$i.resultTitle, children: highlightMatch(result.title || 'Untitled', query) }), result.subtitle && (jsx("div", { className: styles$i.resultSubtitle, children: highlightMatch(result.subtitle, query) }))] }), result.meta && (jsx("div", { className: styles$i.resultMeta, children: result.meta }))] }, `${result.type}-${result.id}`));
|
|
2635
2635
|
}) })] }, type));
|
|
2636
2636
|
}) })) })) })] }));
|
|
2637
2637
|
};
|
|
2638
2638
|
|
|
2639
|
-
var styles$
|
|
2639
|
+
var styles$h = {"timeInput":"TimeInput-module_timeInput__h1DpT","label":"TimeInput-module_label__d4rZw","required":"TimeInput-module_required__rc1vq","picker":"TimeInput-module_picker__9c6EI","error":"TimeInput-module_error__gJnpk","disabled":"TimeInput-module_disabled__wxiZ-"};
|
|
2640
2640
|
|
|
2641
2641
|
const lightTheme = createTheme({
|
|
2642
2642
|
palette: {
|
|
@@ -2672,26 +2672,26 @@ function TimeInput({ label, value, onChange, error = false, success = false, loa
|
|
|
2672
2672
|
!!document.documentElement.getAttribute('data-theme')?.includes('dark');
|
|
2673
2673
|
const muiTheme = useMemo(() => (isDark ? darkTheme : lightTheme), [isDark]);
|
|
2674
2674
|
const getContainerClassName = () => {
|
|
2675
|
-
const classes = [styles$
|
|
2675
|
+
const classes = [styles$h.timeInput];
|
|
2676
2676
|
if (error)
|
|
2677
|
-
classes.push(styles$
|
|
2677
|
+
classes.push(styles$h.error);
|
|
2678
2678
|
if (success)
|
|
2679
|
-
classes.push(styles$
|
|
2679
|
+
classes.push(styles$h.success);
|
|
2680
2680
|
if (loading)
|
|
2681
|
-
classes.push(styles$
|
|
2681
|
+
classes.push(styles$h.loading);
|
|
2682
2682
|
if (disabled)
|
|
2683
|
-
classes.push(styles$
|
|
2683
|
+
classes.push(styles$h.disabled);
|
|
2684
2684
|
if (className)
|
|
2685
2685
|
classes.push(className);
|
|
2686
2686
|
return classes.join(' ');
|
|
2687
2687
|
};
|
|
2688
|
-
return (jsxs("div", { className: getContainerClassName(), children: [label && (jsxs("label", { className: styles$
|
|
2688
|
+
return (jsxs("div", { className: getContainerClassName(), children: [label && (jsxs("label", { className: styles$h.label, children: [label, required && jsx("span", { className: styles$h.required, children: "*" })] })), jsx(ThemeProvider$1, { theme: muiTheme, children: jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: jsx(MobileTimePicker, { value: dayjsValue, onChange: (newValue) => {
|
|
2689
2689
|
onChange(newValue ? newValue.format('HH:mm') : '');
|
|
2690
2690
|
}, ampm: false, views: ['hours', 'minutes'], disabled: disabled || loading, slotProps: {
|
|
2691
2691
|
textField: {
|
|
2692
2692
|
size: 'small',
|
|
2693
2693
|
fullWidth: true,
|
|
2694
|
-
className: styles$
|
|
2694
|
+
className: styles$h.picker,
|
|
2695
2695
|
sx: {
|
|
2696
2696
|
'& .MuiPickersOutlinedInput-root': {
|
|
2697
2697
|
fontFamily: "'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, monospace",
|
|
@@ -2779,7 +2779,7 @@ const ThemeProvider = ({ children, defaultTheme = 'light', storageKey = 'app-the
|
|
|
2779
2779
|
return (jsx(ThemeContext.Provider, { value: { theme, setTheme, toggleTheme }, children: children }));
|
|
2780
2780
|
};
|
|
2781
2781
|
|
|
2782
|
-
var styles$
|
|
2782
|
+
var styles$g = {"button":"ThemeSwitcher-module_button__VfRjU","iconWrapper":"ThemeSwitcher-module_iconWrapper__FpHo8","label":"ThemeSwitcher-module_label__2Hfkp","toggle":"ThemeSwitcher-module_toggle__ATXx4","toggleTrack":"ThemeSwitcher-module_toggleTrack__x28Rv","toggleThumb":"ThemeSwitcher-module_toggleThumb__V8QeN","dropdown":"ThemeSwitcher-module_dropdown__3qLdt","dropdownTrigger":"ThemeSwitcher-module_dropdownTrigger__UzYV5","dropdownMenu":"ThemeSwitcher-module_dropdownMenu__3L5hT","dropdownItem":"ThemeSwitcher-module_dropdownItem__inw-K","active":"ThemeSwitcher-module_active__OHP19","icon":"ThemeSwitcher-module_icon__iRZiJ","text":"ThemeSwitcher-module_text__OCOoA"};
|
|
2783
2783
|
|
|
2784
2784
|
const ThemeSwitcher = ({ variant = 'button', showLabel = false, className = '', currentTheme, onThemeChange, themes: customThemes, }) => {
|
|
2785
2785
|
// Use safe version that returns null when outside a ThemeProvider
|
|
@@ -2800,19 +2800,19 @@ const ThemeSwitcher = ({ variant = 'button', showLabel = false, className = '',
|
|
|
2800
2800
|
if (variant === 'toggle') {
|
|
2801
2801
|
// Simple toggle between light and dark
|
|
2802
2802
|
const isDark = theme.includes('dark');
|
|
2803
|
-
return (jsxs(motion.button, { className: `${styles$
|
|
2803
|
+
return (jsxs(motion.button, { className: `${styles$g.toggle} ${className}`, onClick: () => setTheme(isDark ? 'light' : 'dark'), whileTap: { scale: 0.95 }, "aria-label": "Toggle theme", children: [jsx(motion.div, { className: styles$g.toggleTrack, animate: { backgroundColor: isDark ? 'var(--color-primary)' : 'var(--color-border)' }, children: jsx(motion.div, { className: styles$g.toggleThumb, animate: { x: isDark ? 24 : 0 }, transition: { type: 'spring', stiffness: 500, damping: 30 }, children: isDark ? jsx(Moon, { size: 14 }) : jsx(Sun, { size: 14 }) }) }), showLabel && jsx("span", { className: styles$g.label, children: isDark ? 'Dark' : 'Light' })] }));
|
|
2804
2804
|
}
|
|
2805
2805
|
if (variant === 'dropdown') {
|
|
2806
|
-
return (jsxs("div", { className: `${styles$
|
|
2806
|
+
return (jsxs("div", { className: `${styles$g.dropdown} ${className}`, children: [jsxs(motion.button, { className: styles$g.dropdownTrigger, whileTap: { scale: 0.98 }, children: [currentThemeData.icon, showLabel && jsx("span", { className: styles$g.label, children: currentThemeData.label })] }), jsx(motion.div, { className: styles$g.dropdownMenu, initial: { opacity: 0, y: -10 }, animate: { opacity: 1, y: 0 }, children: themes.map((t) => (jsxs(motion.button, { className: `${styles$g.dropdownItem} ${theme === t.value ? styles$g.active : ''}`, onClick: () => setTheme(t.value), whileHover: { x: 4 }, whileTap: { scale: 0.98 }, children: [jsx("span", { className: styles$g.icon, children: t.icon }), jsx("span", { className: styles$g.text, children: t.label })] }, t.value))) })] }));
|
|
2807
2807
|
}
|
|
2808
2808
|
// Default button variant - cycles through themes
|
|
2809
|
-
return (jsxs(motion.button, { className: `${styles$
|
|
2809
|
+
return (jsxs(motion.button, { className: `${styles$g.button} ${className}`, onClick: () => {
|
|
2810
2810
|
const nextIndex = (currentThemeIndex + 1) % themes.length;
|
|
2811
2811
|
setTheme(themes[nextIndex].value);
|
|
2812
|
-
}, whileTap: { scale: 0.95 }, whileHover: { scale: 1.05 }, "aria-label": `Current theme: ${currentThemeData.label}. Click to change.`, children: [jsx(motion.div, { initial: { rotate: -180, opacity: 0 }, animate: { rotate: 0, opacity: 1 }, exit: { rotate: 180, opacity: 0 }, transition: { duration: 0.3 }, className: styles$
|
|
2812
|
+
}, whileTap: { scale: 0.95 }, whileHover: { scale: 1.05 }, "aria-label": `Current theme: ${currentThemeData.label}. Click to change.`, children: [jsx(motion.div, { initial: { rotate: -180, opacity: 0 }, animate: { rotate: 0, opacity: 1 }, exit: { rotate: 180, opacity: 0 }, transition: { duration: 0.3 }, className: styles$g.iconWrapper, children: currentThemeData.icon }, theme), showLabel && jsx("span", { className: styles$g.label, children: currentThemeData.label })] }));
|
|
2813
2813
|
};
|
|
2814
2814
|
|
|
2815
|
-
var styles$
|
|
2815
|
+
var styles$f = {"tabs":"Tabs-module_tabs__Vlvn7","tab":"Tabs-module_tab__uQKim","tabIcon":"Tabs-module_tabIcon__AgN-O","fullWidth":"Tabs-module_fullWidth__X-GHP"};
|
|
2816
2816
|
|
|
2817
2817
|
// Default tabs for backwards compatibility
|
|
2818
2818
|
const defaultTabs = [
|
|
@@ -2823,39 +2823,39 @@ const defaultTabs = [
|
|
|
2823
2823
|
];
|
|
2824
2824
|
const Tabs = ({ activeTab, onTabChange, tabs: customTabs, className = '', fullWidth = false }) => {
|
|
2825
2825
|
const tabs = customTabs ?? defaultTabs;
|
|
2826
|
-
return (jsx("div", { className: `${styles$
|
|
2826
|
+
return (jsx("div", { className: `${styles$f.tabs} ${fullWidth ? styles$f.fullWidth : ''} ${className}`, children: tabs.map((tab) => {
|
|
2827
2827
|
const isActive = activeTab === tab.id;
|
|
2828
|
-
return (jsxs(motion.button, { className: styles$
|
|
2828
|
+
return (jsxs(motion.button, { className: styles$f.tab, "data-active": isActive, onClick: () => onTabChange(tab.id), style: { position: 'relative' }, children: [jsx(motion.div, { animate: {
|
|
2829
2829
|
rotate: isActive ? [0, -10, 10, -5, 5, 0] : 0,
|
|
2830
2830
|
}, transition: {
|
|
2831
2831
|
rotate: {
|
|
2832
2832
|
duration: 0.5,
|
|
2833
2833
|
ease: 'easeInOut'
|
|
2834
2834
|
}
|
|
2835
|
-
}, children: tab.icon && (React.isValidElement(tab.icon) ? (jsx("span", { className: styles$
|
|
2835
|
+
}, children: tab.icon && (React.isValidElement(tab.icon) ? (jsx("span", { className: styles$f.tabIcon, children: tab.icon })) : (jsx("span", { className: styles$f.tabIcon, children: React.createElement(tab.icon) }))) }), jsx("span", { children: tab.label })] }, tab.id));
|
|
2836
2836
|
}) }));
|
|
2837
2837
|
};
|
|
2838
2838
|
|
|
2839
|
-
var styles$
|
|
2839
|
+
var styles$e = {"toastContainer":"Toast-module_toastContainer__gp5C0","toast":"Toast-module_toast__eenNR","toastSuccess":"Toast-module_toastSuccess__e-cSx","toastError":"Toast-module_toastError__6JO9w","toastWarning":"Toast-module_toastWarning__pJoF1","toastInfo":"Toast-module_toastInfo__y33kR","icon":"Toast-module_icon__Z-D6i","iconSuccess":"Toast-module_iconSuccess__ehY27","iconError":"Toast-module_iconError__nXhZz","iconWarning":"Toast-module_iconWarning__Ie8oD","iconInfo":"Toast-module_iconInfo__8vOf5","content":"Toast-module_content__eBhK8","title":"Toast-module_title__EfUfZ","message":"Toast-module_message__l4pyr","closeButton":"Toast-module_closeButton__UWOVG","progressBar":"Toast-module_progressBar__fGwBU"};
|
|
2840
2840
|
|
|
2841
2841
|
const getIcon = (type) => {
|
|
2842
2842
|
switch (type) {
|
|
2843
2843
|
case 'success':
|
|
2844
|
-
return (jsx("svg", { className: `${styles$
|
|
2844
|
+
return (jsx("svg", { className: `${styles$e.icon} ${styles$e.iconSuccess}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }));
|
|
2845
2845
|
case 'error':
|
|
2846
|
-
return (jsx("svg", { className: `${styles$
|
|
2846
|
+
return (jsx("svg", { className: `${styles$e.icon} ${styles$e.iconError}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }));
|
|
2847
2847
|
case 'warning':
|
|
2848
|
-
return (jsx("svg", { className: `${styles$
|
|
2848
|
+
return (jsx("svg", { className: `${styles$e.icon} ${styles$e.iconWarning}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }));
|
|
2849
2849
|
case 'info':
|
|
2850
|
-
return (jsx("svg", { className: `${styles$
|
|
2850
|
+
return (jsx("svg", { className: `${styles$e.icon} ${styles$e.iconInfo}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }));
|
|
2851
2851
|
}
|
|
2852
2852
|
};
|
|
2853
2853
|
const getToastStyle = (type) => {
|
|
2854
2854
|
switch (type) {
|
|
2855
|
-
case 'success': return styles$
|
|
2856
|
-
case 'error': return styles$
|
|
2857
|
-
case 'warning': return styles$
|
|
2858
|
-
case 'info': return styles$
|
|
2855
|
+
case 'success': return styles$e.toastSuccess;
|
|
2856
|
+
case 'error': return styles$e.toastError;
|
|
2857
|
+
case 'warning': return styles$e.toastWarning;
|
|
2858
|
+
case 'info': return styles$e.toastInfo;
|
|
2859
2859
|
default: return '';
|
|
2860
2860
|
}
|
|
2861
2861
|
};
|
|
@@ -2877,7 +2877,7 @@ const ToastItem = ({ toast, removeToast, }) => {
|
|
|
2877
2877
|
clearInterval(interval);
|
|
2878
2878
|
};
|
|
2879
2879
|
}, [toast.id, duration, removeToast]);
|
|
2880
|
-
return (jsxs(motion.div, { className: `${styles$
|
|
2880
|
+
return (jsxs(motion.div, { className: `${styles$e.toast} ${getToastStyle(toast.type)}`, initial: { opacity: 0, x: 100, scale: 0.9 }, animate: { opacity: 1, x: 0, scale: 1 }, exit: { opacity: 0, x: 100, scale: 0.9 }, transition: { type: 'spring', stiffness: 500, damping: 40 }, layout: true, children: [getIcon(toast.type), jsxs("div", { className: styles$e.content, children: [toast.title && jsx("p", { className: styles$e.title, children: toast.title }), jsx("p", { className: styles$e.message, children: toast.message })] }), jsx("button", { className: styles$e.closeButton, onClick: () => removeToast(toast.id), "aria-label": "Close notification", children: jsx("svg", { width: "16", height: "16", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) }), jsx(motion.div, { className: styles$e.progressBar, initial: { width: '100%' }, animate: { width: `${progress}%` }, style: {
|
|
2881
2881
|
color: toast.type === 'success' ? '#10B981'
|
|
2882
2882
|
: toast.type === 'error' ? '#EF4444'
|
|
2883
2883
|
: toast.type === 'warning' ? '#F59E0B'
|
|
@@ -2887,10 +2887,10 @@ const ToastItem = ({ toast, removeToast, }) => {
|
|
|
2887
2887
|
const ToastContainer = ({ toasts, removeToast }) => {
|
|
2888
2888
|
if (typeof document === 'undefined')
|
|
2889
2889
|
return null;
|
|
2890
|
-
return createPortal(jsx("div", { className: styles$
|
|
2890
|
+
return createPortal(jsx("div", { className: styles$e.toastContainer, children: jsx(AnimatePresence, { mode: "sync", children: toasts.map((toast) => (jsx(ToastItem, { toast: toast, removeToast: removeToast }, toast.id))) }) }), document.body);
|
|
2891
2891
|
};
|
|
2892
2892
|
|
|
2893
|
-
var styles$
|
|
2893
|
+
var styles$d = {"breadcrumb":"Breadcrumb-module_breadcrumb__pGabz","separator":"Breadcrumb-module_separator__UCmyy","item":"Breadcrumb-module_item__0cLOg","link":"Breadcrumb-module_link__udp8M","current":"Breadcrumb-module_current__3DpQc"};
|
|
2894
2894
|
|
|
2895
2895
|
/**
|
|
2896
2896
|
* Breadcrumb Component
|
|
@@ -2909,13 +2909,13 @@ var styles$c = {"breadcrumb":"Breadcrumb-module_breadcrumb__pGabz","separator":"
|
|
|
2909
2909
|
* />
|
|
2910
2910
|
*/
|
|
2911
2911
|
const Breadcrumb = ({ items, onNavigate, className = '' }) => {
|
|
2912
|
-
return (jsx("nav", { className: `${styles$
|
|
2912
|
+
return (jsx("nav", { className: `${styles$d.breadcrumb} ${className}`, "aria-label": "Breadcrumb", children: items.map((item, index) => {
|
|
2913
2913
|
const isLast = index === items.length - 1;
|
|
2914
|
-
return (jsxs(React.Fragment, { children: [index > 0 && jsx(ChevronRight, { size: 14, className: styles$
|
|
2914
|
+
return (jsxs(React.Fragment, { children: [index > 0 && jsx(ChevronRight, { size: 14, className: styles$d.separator }), isLast || !item.href ? (jsx("span", { className: `${styles$d.item} ${isLast ? styles$d.current : ''}`, children: item.label })) : (jsx("button", { className: `${styles$d.item} ${styles$d.link}`, onClick: () => onNavigate?.(item.href), children: item.label }))] }, index));
|
|
2915
2915
|
}) }));
|
|
2916
2916
|
};
|
|
2917
2917
|
|
|
2918
|
-
var styles$
|
|
2918
|
+
var styles$c = {"overlay":"LiquidButton-module_overlay__-P-xm","container":"LiquidButton-module_container__f1COS","actions":"LiquidButton-module_actions__XBz7p","actionButton":"LiquidButton-module_actionButton__PlEOk","actionLabel":"LiquidButton-module_actionLabel__tIGHE","button":"LiquidButton-module_button__znjyS"};
|
|
2919
2919
|
|
|
2920
2920
|
/**
|
|
2921
2921
|
* LiquidButton Component
|
|
@@ -2941,11 +2941,89 @@ const LiquidButton = ({ actions, icon: Icon = Plus, className = '', }) => {
|
|
|
2941
2941
|
setExpanded(false);
|
|
2942
2942
|
action.onClick();
|
|
2943
2943
|
}, []);
|
|
2944
|
-
return (jsxs(Fragment, { children: [jsx(AnimatePresence, { children: expanded && (jsx(motion.div, { className: styles$
|
|
2944
|
+
return (jsxs(Fragment, { children: [jsx(AnimatePresence, { children: expanded && (jsx(motion.div, { className: styles$c.overlay, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: handleToggle })) }), jsxs("div", { className: `${styles$c.container} ${className}`, children: [jsx(AnimatePresence, { children: expanded && (jsx("div", { className: styles$c.actions, children: actions.map((action, index) => (jsxs(motion.button, { type: "button", className: styles$c.actionButton, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, transition: {
|
|
2945
2945
|
duration: 0.15,
|
|
2946
2946
|
delay: (actions.length - 1 - index) * 0.05,
|
|
2947
|
-
}, onClick: () => handleAction(action), children: [jsx(action.icon, { size: 18, color: action.color }), jsx("span", { className: styles$
|
|
2947
|
+
}, onClick: () => handleAction(action), children: [jsx(action.icon, { size: 18, color: action.color }), jsx("span", { className: styles$c.actionLabel, children: action.label })] }, action.key))) })) }), jsx(motion.button, { type: "button", className: styles$c.button, onClick: handleToggle, animate: { rotate: expanded ? 45 : 0 }, transition: { duration: 0.2 }, "aria-label": expanded ? 'Close actions' : 'Open actions', children: jsx(Icon, { size: 24, strokeWidth: 2.5 }) })] })] }));
|
|
2948
|
+
};
|
|
2949
|
+
|
|
2950
|
+
var styles$b = {"wrap":"StreamConsole-module_wrap__MnVWw","header":"StreamConsole-module_header__FjnRM","headerLeft":"StreamConsole-module_headerLeft__gNDyh","statusDot":"StreamConsole-module_statusDot__xQ254","spin":"StreamConsole-module_spin__OrOeL","label":"StreamConsole-module_label__rJIDm","statusText":"StreamConsole-module_statusText__oG-ej","dismiss":"StreamConsole-module_dismiss__WH3Kv","body":"StreamConsole-module_body__-HIK-","hint":"StreamConsole-module_hint__BA4SI","line":"StreamConsole-module_line__5hMY2","linePrefix":"StreamConsole-module_linePrefix__xR-Oj","lineText":"StreamConsole-module_lineText__IyRSF","lineLabel":"StreamConsole-module_lineLabel__z-qj4"};
|
|
2951
|
+
|
|
2952
|
+
// Known prefixes produced by stream-json summarizers (DAO-style):
|
|
2953
|
+
// "bash: ls -la", "read: path/to/file", "edit: path/to/file",
|
|
2954
|
+
// "write: path", "grep: pattern", "glob: pattern", "thinking: ..."
|
|
2955
|
+
// Plus scaffold-specific lifecycle markers like "spawning claude ..." and
|
|
2956
|
+
// "resuming session ...". Anything else keeps the default `·` dot.
|
|
2957
|
+
function parseStep(message) {
|
|
2958
|
+
const prefixMatch = /^([a-z]+):\s*(.*)$/i.exec(message);
|
|
2959
|
+
if (prefixMatch) {
|
|
2960
|
+
const key = prefixMatch[1].toLowerCase();
|
|
2961
|
+
const body = prefixMatch[2];
|
|
2962
|
+
const known = {
|
|
2963
|
+
bash: 'bash',
|
|
2964
|
+
read: 'read',
|
|
2965
|
+
edit: 'edit',
|
|
2966
|
+
write: 'write',
|
|
2967
|
+
grep: 'grep',
|
|
2968
|
+
glob: 'glob',
|
|
2969
|
+
thinking: 'thinking',
|
|
2970
|
+
};
|
|
2971
|
+
if (known[key])
|
|
2972
|
+
return { subtype: known[key], label: key, body };
|
|
2973
|
+
}
|
|
2974
|
+
if (/^(spawning|resuming|starting|launching)\b/i.test(message)) {
|
|
2975
|
+
return { subtype: 'lifecycle', label: '', body: message };
|
|
2976
|
+
}
|
|
2977
|
+
return { subtype: null, label: '', body: message };
|
|
2978
|
+
}
|
|
2979
|
+
const STEP_ICON = {
|
|
2980
|
+
bash: Terminal,
|
|
2981
|
+
read: FileText,
|
|
2982
|
+
edit: Pencil,
|
|
2983
|
+
write: FilePlus,
|
|
2984
|
+
grep: Search,
|
|
2985
|
+
glob: FolderSearch,
|
|
2986
|
+
thinking: Brain,
|
|
2987
|
+
lifecycle: Play,
|
|
2948
2988
|
};
|
|
2989
|
+
function StreamConsole({ stream, onCancel, onDismiss, hideDismiss = false, runningLabel = 'Running', successLabel = 'Done', errorLabel = 'Failed', }) {
|
|
2990
|
+
const listRef = useRef(null);
|
|
2991
|
+
const userScrolledUp = useRef(false);
|
|
2992
|
+
useEffect(() => {
|
|
2993
|
+
const el = listRef.current;
|
|
2994
|
+
if (!el)
|
|
2995
|
+
return;
|
|
2996
|
+
const onScroll = () => {
|
|
2997
|
+
const atBottom = el.scrollHeight - el.scrollTop - el.clientHeight < 40;
|
|
2998
|
+
userScrolledUp.current = !atBottom;
|
|
2999
|
+
};
|
|
3000
|
+
el.addEventListener('scroll', onScroll);
|
|
3001
|
+
return () => el.removeEventListener('scroll', onScroll);
|
|
3002
|
+
}, []);
|
|
3003
|
+
useEffect(() => {
|
|
3004
|
+
const el = listRef.current;
|
|
3005
|
+
if (!el || userScrolledUp.current)
|
|
3006
|
+
return;
|
|
3007
|
+
el.scrollTop = el.scrollHeight;
|
|
3008
|
+
}, [stream.events.length]);
|
|
3009
|
+
const Icon = stream.status === 'running' ? Loader2 : stream.status === 'success' ? Check : AlertTriangle;
|
|
3010
|
+
const statusLabel = stream.status === 'running'
|
|
3011
|
+
? runningLabel
|
|
3012
|
+
: stream.status === 'success'
|
|
3013
|
+
? successLabel
|
|
3014
|
+
: errorLabel;
|
|
3015
|
+
const canShowDismiss = !hideDismiss && (stream.status === 'running' ? !!onCancel : !!onDismiss);
|
|
3016
|
+
return (jsxs(motion.div, { className: styles$b.wrap, "data-status": stream.status, initial: { opacity: 0, y: -8 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -8 }, transition: { duration: 0.18 }, children: [jsxs("header", { className: styles$b.header, children: [jsxs("div", { className: styles$b.headerLeft, children: [jsx("span", { className: styles$b.statusDot, "data-status": stream.status, children: jsx(Icon, { size: 12, className: stream.status === 'running' ? styles$b.spin : '' }) }), jsx("span", { className: styles$b.label, children: stream.label }), jsx("span", { className: styles$b.statusText, children: statusLabel })] }), canShowDismiss && (jsx("button", { type: "button", className: styles$b.dismiss, "aria-label": stream.status === 'running' ? 'Cancel' : 'Dismiss', onClick: () => {
|
|
3017
|
+
if (stream.status === 'running')
|
|
3018
|
+
onCancel?.(stream.id);
|
|
3019
|
+
else
|
|
3020
|
+
onDismiss?.(stream.id);
|
|
3021
|
+
}, children: jsx(X, { size: 14 }) }))] }), jsxs("div", { className: styles$b.body, ref: listRef, children: [stream.events.length === 0 && stream.status === 'running' && (jsx("p", { className: styles$b.hint, children: "Waiting for output\u2026" })), stream.events.map((event, i) => {
|
|
3022
|
+
const step = event.type === 'step' ? parseStep(event.message) : null;
|
|
3023
|
+
const StepIcon = step?.subtype ? STEP_ICON[step.subtype] : null;
|
|
3024
|
+
return (jsxs("p", { className: styles$b.line, "data-type": event.type, "data-subtype": step?.subtype ?? undefined, children: [jsx("span", { className: styles$b.linePrefix, children: StepIcon ? (jsx(StepIcon, { size: 11 })) : event.type === 'error' ? ('!') : event.type === 'warning' ? ('⚠') : event.type === 'success' ? ('✓') : ('·') }), step?.label ? (jsx("span", { className: styles$b.lineLabel, children: step.label })) : null, jsx("span", { className: styles$b.lineText, children: step ? step.body : event.message })] }, i));
|
|
3025
|
+
}), stream.status === 'error' && stream.errorMessage && (jsxs("p", { className: styles$b.line, "data-type": "error", children: [jsx("span", { className: styles$b.linePrefix, children: "!" }), jsx("span", { className: styles$b.lineText, children: stream.errorMessage })] }))] })] }));
|
|
3026
|
+
}
|
|
2949
3027
|
|
|
2950
3028
|
var styles$a = {"calendar":"Calendar-module_calendar__3mIJS","loading":"Calendar-module_loading__59Z9-","loadingSpinner":"Calendar-module_loadingSpinner__7MXqV","header":"Calendar-module_header__cZHNA","navigation":"Calendar-module_navigation__PGkpY","navButton":"Calendar-module_navButton__kOe-w","title":"Calendar-module_title__oJZ7m","controls":"Calendar-module_controls__i1Z38","exportDropdown":"Calendar-module_exportDropdown__yQX4q","exportButton":"Calendar-module_exportButton__dx7--","exportMenu":"Calendar-module_exportMenu__-lZ-8","exportMenuItem":"Calendar-module_exportMenuItem__D9MdL","todayButton":"Calendar-module_todayButton__Ac9zc","viewToggle":"Calendar-module_viewToggle__Fhg2t","viewButton":"Calendar-module_viewButton__J2WY6","active":"Calendar-module_active__lIqH-","filterBar":"Calendar-module_filterBar__ZD-lX","filterPill":"Calendar-module_filterPill__f7S8p","filterPillActive":"Calendar-module_filterPillActive__9Wtm9","filterDot":"Calendar-module_filterDot__E1Hp8","weekDays":"Calendar-module_weekDays__4J-8f","withWeekNumbers":"Calendar-module_withWeekNumbers__qbnUY","weekNumberHeader":"Calendar-module_weekNumberHeader__xhKbB","weekDay":"Calendar-module_weekDay__cg8Gr","daysGrid":"Calendar-module_daysGrid__ER0GM","dayCell":"Calendar-module_dayCell__TV-HR","dayNumber":"Calendar-module_dayNumber__ICH-X","today":"Calendar-module_today__eGuUU","events":"Calendar-module_events__qdbs7","event":"Calendar-module_event__Q1Zq3","eventTitle":"Calendar-module_eventTitle__XU7Wd","eventTime":"Calendar-module_eventTime__pMGEB","otherMonth":"Calendar-module_otherMonth__r6VJK","selected":"Calendar-module_selected__5e6h0","compact":"Calendar-module_compact__i0SF3","dots":"Calendar-module_dots__1Q7QR","dot":"Calendar-module_dot__tsCR1","dotMore":"Calendar-module_dotMore__emasD","weekNumberCell":"Calendar-module_weekNumberCell__bydCw","completed":"Calendar-module_completed__B-SHI","completedIcon":"Calendar-module_completedIcon__-oDZ9","moreEvents":"Calendar-module_moreEvents__TIKaT","emptyState":"Calendar-module_emptyState__2fcj7","dayView":"Calendar-module_dayView__PCIos","dayViewHeader":"Calendar-module_dayViewHeader__Gvxx2","timeColumnHeader":"Calendar-module_timeColumnHeader__B0btR","dayColumnHeader":"Calendar-module_dayColumnHeader__Rjqwg","allDayStrip":"Calendar-module_allDayStrip__VOqbV","allDayLabel":"Calendar-module_allDayLabel__2AmyT","allDayList":"Calendar-module_allDayList__6hFSb","dayViewScrollContainer":"Calendar-module_dayViewScrollContainer__84Byq","dayTimelineGrid":"Calendar-module_dayTimelineGrid__r1BNI","hourRow":"Calendar-module_hourRow__U-YN-","hourLabel":"Calendar-module_hourLabel__im84k","hourSlots":"Calendar-module_hourSlots__vbtYy","halfHourSlot":"Calendar-module_halfHourSlot__UWIri","halfHourSlotBottom":"Calendar-module_halfHourSlotBottom__aE5Mo","dayEventAnchor":"Calendar-module_dayEventAnchor__oryAi","weekTimeline":"Calendar-module_weekTimeline__q75EF","weekTimelineHeader":"Calendar-module_weekTimelineHeader__n5i06","weekDayColumnHeader":"Calendar-module_weekDayColumnHeader__u2ghX","weekDayLabel":"Calendar-module_weekDayLabel__i8Rm9","weekDayNumber":"Calendar-module_weekDayNumber__tqFKO","weekTimelineScroll":"Calendar-module_weekTimelineScroll__jesa0","weekTimelineGrid":"Calendar-module_weekTimelineGrid__MxIHF","weekTimeColumn":"Calendar-module_weekTimeColumn__rK4ZV","weekTimeSlot":"Calendar-module_weekTimeSlot__IFPUz","weekHourLabel":"Calendar-module_weekHourLabel__0ANmg","weekDayColumns":"Calendar-module_weekDayColumns__soiyU","weekDayColumn":"Calendar-module_weekDayColumn__sXVu0","weekHourRow":"Calendar-module_weekHourRow__FHcB2","weekEventAnchor":"Calendar-module_weekEventAnchor__nhG4x","currentTimeIndicator":"Calendar-module_currentTimeIndicator__GntOZ"};
|
|
2951
3029
|
|
|
@@ -5758,5 +5836,5 @@ const ConfirmationModal = ({ isOpen, onClose, onConfirm, title, message, confirm
|
|
|
5758
5836
|
return (jsx(AnimatePresence, { children: isOpen && (jsxs(Fragment, { children: [jsx(motion.div, { className: styles.overlay, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: !isLoading ? onClose : undefined }), jsx("div", { className: styles.positioner, children: jsxs(motion.div, { className: styles.modal, initial: { opacity: 0, scale: 0.9, y: 20 }, animate: { opacity: 1, scale: 1, y: 0 }, exit: { opacity: 0, scale: 0.9, y: 20 }, transition: { type: 'spring', stiffness: 300, damping: 30 }, children: [jsxs("div", { className: `${styles.header} ${styles[variant]}`, children: [jsx("h2", { className: styles.title, children: title }), !isLoading && (jsx("button", { className: styles.closeButton, onClick: onClose, type: "button", "aria-label": "Close", children: "\u2715" }))] }), jsx("div", { className: styles.content, children: jsx("p", { className: styles.message, children: message }) }), jsxs("div", { className: styles.footer, children: [jsx(Button, { type: "button", variant: "ghost", onClick: onClose, disabled: isLoading, children: cancelText }), jsx(Button, { type: "button", variant: variant === 'danger' ? 'danger' : 'primary', onClick: handleConfirm, disabled: isLoading, loading: isLoading, children: confirmText })] })] }) })] })) }));
|
|
5759
5837
|
};
|
|
5760
5838
|
|
|
5761
|
-
export { ArrayInput, BooleansHeatmap, Breadcrumb, Button, Calendar, Card, Checkbox, ConfirmationModal, DateInput, DecryptedText, EditFAB, EmptyState, ImageSlideshow, LiquidButton, LoadingSpinner, Modal, MoodChart, Navbar, NumberStepper, PieChart, QuantifiableHabitsChart, SearchBar, SearchableDropdown, SelectInput, SleepChart, Slider, SunburstChart, Table, Tabs, TextArea, TextInput, ThemeProvider, ThemeSwitcher, TimeInput, ToastContainer, Toggle, ToggleButton, soundManager, useComponentSound, useSound, useTheme, useThemeSafe };
|
|
5839
|
+
export { ArrayInput, BooleansHeatmap, Breadcrumb, Button, Calendar, Card, Checkbox, ConfirmationModal, DateInput, DecryptedText, EditFAB, EmptyState, ImageSlideshow, LiquidButton, LoadingSpinner, Modal, MoodChart, Navbar, NumberStepper, PieChart, QuantifiableHabitsChart, SearchBar, SearchableDropdown, SelectInput, SleepChart, Slider, StreamConsole, SunburstChart, Table, Tabs, TextArea, TextInput, ThemeProvider, ThemeSwitcher, TimeInput, ToastContainer, Toggle, ToggleButton, soundManager, useComponentSound, useSound, useTheme, useThemeSafe };
|
|
5762
5840
|
//# sourceMappingURL=index.esm.js.map
|