@stfrigerio/sito-template 0.1.51 → 0.1.52
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/package.json +1 -1
- package/storybook-static/assets/{ASCIIText.stories-DpBtrb9i.js → ASCIIText.stories-Cb8HvABR.js} +1 -1
- package/storybook-static/assets/{AllAtoms.stories-C2hvLJ8w.js → AllAtoms.stories-Disxvghm.js} +1 -1
- package/storybook-static/assets/{AnimatedContent.stories-Di9Q7t9j.js → AnimatedContent.stories-jVAgBFE2.js} +1 -1
- package/storybook-static/assets/{AnimatedList.stories-BGyYB85Y.js → AnimatedList.stories-Di-vE601.js} +1 -1
- package/storybook-static/assets/{Antigravity.stories-Do1dnEK_.js → Antigravity.stories-CE90HCpY.js} +1 -1
- package/storybook-static/assets/{ArrayInput.stories-CNtTKUF0.js → ArrayInput.stories-DgSsXJly.js} +1 -1
- package/storybook-static/assets/{Aurora.stories-DHuVs0Nh.js → Aurora.stories-DrVAkdjt.js} +1 -1
- package/storybook-static/assets/{Beams.stories-C0fr646Y.js → Beams.stories-BSVIpqQ0.js} +1 -1
- package/storybook-static/assets/{BlobCursor.stories-CQmLI7VF.js → BlobCursor.stories-C3EgjAh2.js} +1 -1
- package/storybook-static/assets/{BlurText.stories-Bqhf_75C.js → BlurText.stories-DJVDRdFo.js} +1 -1
- package/storybook-static/assets/{BooleansHeatmap.stories-CSTfHU8X.js → BooleansHeatmap.stories-B_9cPYMM.js} +1 -1
- package/storybook-static/assets/{BorderGlow.stories-DllLrSOi.js → BorderGlow.stories-B_wdQUgw.js} +1 -1
- package/storybook-static/assets/{BubbleMenu.stories-By8eacsb.js → BubbleMenu.stories-DpLYYw_z.js} +1 -1
- package/storybook-static/assets/{Button-2CSvbnXB.js → Button-DK4vPDdE.js} +1 -1
- package/storybook-static/assets/{Button.stories-CMFODsAR.js → Button.stories-dpSafIdz.js} +1 -1
- package/storybook-static/assets/Calendar-CreieAui.css +1 -0
- package/storybook-static/assets/Calendar.stories-lRbXwh4f.js +470 -0
- package/storybook-static/assets/{Card-DZVLYsdd.js → Card--7bShmQv.js} +1 -1
- package/storybook-static/assets/{Card.stories-DisHmL7k.js → Card.stories-C9cPoCVI.js} +1 -1
- package/storybook-static/assets/{CardNav.stories-e50-9J_A.js → CardNav.stories-1WFeombk.js} +1 -1
- package/storybook-static/assets/{Carousel.stories-B-rI6jNr.js → Carousel.stories-CPp1bcnx.js} +1 -1
- package/storybook-static/assets/{Checkbox-D7FUqeuB.js → Checkbox-BZ4OK19r.js} +1 -1
- package/storybook-static/assets/{Checkbox.stories-CyIVTBxZ.js → Checkbox.stories-pzFmZn7E.js} +1 -1
- package/storybook-static/assets/{ChromaGrid.stories-S1cYuc5_.js → ChromaGrid.stories-Nunq8QCK.js} +1 -1
- package/storybook-static/assets/{CircularGallery.stories-DRrEcX-Y.js → CircularGallery.stories-C6B3QdGe.js} +1 -1
- package/storybook-static/assets/{CircularText.stories-CHoRy-lV.js → CircularText.stories-x-CZkrWE.js} +1 -1
- package/storybook-static/assets/{ClickSpark.stories-DbPNmGUE.js → ClickSpark.stories-BgEy72nd.js} +1 -1
- package/storybook-static/assets/{Color-AVL7NMMY-C-H2x7hU.js → Color-AVL7NMMY-BH2T5gYv.js} +1 -1
- package/storybook-static/assets/{ColorBends.stories-BVGGr3v3.js → ColorBends.stories-l5hP9mw3.js} +1 -1
- package/storybook-static/assets/{CountUp.stories-Ofg9f0h2.js → CountUp.stories-f4Xo5-1D.js} +1 -1
- package/storybook-static/assets/{Counter.stories-CsO7AtIx.js → Counter.stories-Cq0esRYp.js} +1 -1
- package/storybook-static/assets/{Crosshair.stories-kyfwqcvB.js → Crosshair.stories-cmjX8jB1.js} +1 -1
- package/storybook-static/assets/{Cubes.stories-hA-HjWNO.js → Cubes.stories-Deum-zPK.js} +1 -1
- package/storybook-static/assets/{CurvedLoop.stories-CHdhTRmN.js → CurvedLoop.stories-CaRb6vtE.js} +1 -1
- package/storybook-static/assets/{DarkVeil.stories-B68s8uCO.js → DarkVeil.stories-DtKNrEKT.js} +1 -1
- package/storybook-static/assets/{DateInput-DYaAr-pD.js → DateInput-Dhe5jlzS.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-D8DGjdAu.js → DateInput.stories-tMfHI-jT.js} +1 -1
- package/storybook-static/assets/{DecayCard.stories-RASuy9DU.js → DecayCard.stories-DOejb79q.js} +1 -1
- package/storybook-static/assets/{DecryptedText.stories-BYt96S4h.js → DecryptedText.stories-ZJFOqvcs.js} +1 -1
- package/storybook-static/assets/{Dither.stories-BoRhWSS3.js → Dither.stories-BteQ8qaz.js} +1 -1
- package/storybook-static/assets/{Dock.stories-HG_pJS3N.js → Dock.stories-CjgGmbrT.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-PQXLIZUC-DhsqOTVk.js → DocsRenderer-PQXLIZUC-CDqlUQhE.js} +4 -4
- package/storybook-static/assets/{EditFAB.stories-CTGHZ2-N.js → EditFAB.stories-HiEYPWDM.js} +1 -1
- package/storybook-static/assets/{EvilEye.stories-CIq_GN_B.js → EvilEye.stories-Dh40voJH.js} +1 -1
- package/storybook-static/assets/{FadeContent.stories-D4XSUqNs.js → FadeContent.stories-APJ9w9po.js} +1 -1
- package/storybook-static/assets/{FaultyTerminal.stories-D47h3D9_.js → FaultyTerminal.stories-B1QU0me7.js} +1 -1
- package/storybook-static/assets/{Fbo-DJ3Mfipf.js → Fbo-C7_12zi1.js} +1 -1
- package/storybook-static/assets/{FloatingLines.stories-DwrsyJ8S.js → FloatingLines.stories-BoZu0Eil.js} +1 -1
- package/storybook-static/assets/{FlowingMenu.stories-BQGeeDYk.js → FlowingMenu.stories-CIsIyO9J.js} +1 -1
- package/storybook-static/assets/{FluidGlass.stories-BNEe11fE.js → FluidGlass.stories-vH3qnmEk.js} +1 -1
- package/storybook-static/assets/{Folder.stories-C34siiUF.js → Folder.stories-HkOOEOjb.js} +1 -1
- package/storybook-static/assets/{FuzzyText.stories-DoRGPHuR.js → FuzzyText.stories-By8q6YQt.js} +1 -1
- package/storybook-static/assets/{Galaxy.stories-CoORoc2P.js → Galaxy.stories-07G7jp_6.js} +1 -1
- package/storybook-static/assets/{GhostCursor.stories-qUL8J6dR.js → GhostCursor.stories-BC-trpJu.js} +1 -1
- package/storybook-static/assets/{GlareHover.stories-CCdco059.js → GlareHover.stories-B_MjE5aX.js} +1 -1
- package/storybook-static/assets/{GlassSurface.stories-DZY8JTI_.js → GlassSurface.stories-rPXwGZOW.js} +1 -1
- package/storybook-static/assets/{GlitchText.stories-BOc2qtp8.js → GlitchText.stories-BN308waP.js} +1 -1
- package/storybook-static/assets/{GooeyNav.stories-AdVJ0HTE.js → GooeyNav.stories-C5lqZx3I.js} +1 -1
- package/storybook-static/assets/{GradientBlinds.stories-CPMa1wbI.js → GradientBlinds.stories-D9l7Ayxs.js} +1 -1
- package/storybook-static/assets/{GradientText.stories-DiQ4BiOA.js → GradientText.stories-BiDAn88F.js} +1 -1
- package/storybook-static/assets/{Grainient.stories-6AktjTpR.js → Grainient.stories-CSCcWH0M.js} +1 -1
- package/storybook-static/assets/{GridMotion.stories-CpUxov1L.js → GridMotion.stories-heG3R9uG.js} +1 -1
- package/storybook-static/assets/{ImageSlideshow.stories-BB_WEc_C.js → ImageSlideshow.stories-RDcrjCte.js} +1 -1
- package/storybook-static/assets/{Iridescence.stories-DVY4Ad82.js → Iridescence.stories-iJ26He9j.js} +1 -1
- package/storybook-static/assets/{LaserFlow.stories-BIwcrTST.js → LaserFlow.stories-H_kwxAaY.js} +1 -1
- package/storybook-static/assets/{LetterGlitch.stories-CYLP01fr.js → LetterGlitch.stories-BY9P1wPN.js} +1 -1
- package/storybook-static/assets/{LightPillar.stories-Op3-RL2H.js → LightPillar.stories-Bb4DN5XV.js} +1 -1
- package/storybook-static/assets/{LightRays.stories-BWfITZGs.js → LightRays.stories-Cc6Y1X_k.js} +1 -1
- package/storybook-static/assets/{Lightning.stories-z3EqNFWs.js → Lightning.stories-CpSHxlp7.js} +1 -1
- package/storybook-static/assets/{LineWaves.stories-CN-U2RZb.js → LineWaves.stories-COm5OuGf.js} +1 -1
- package/storybook-static/assets/{LiquidChrome.stories-CQunDA00.js → LiquidChrome.stories-C88ONVOT.js} +1 -1
- package/storybook-static/assets/{LiquidEther.stories-Dx5E22qa.js → LiquidEther.stories-CPSMWSN9.js} +1 -1
- package/storybook-static/assets/{LoadingSpinner-xoFPGq9a.js → LoadingSpinner-C4MXlRnC.js} +1 -1
- package/storybook-static/assets/{LoadingSpinner.stories-BXcLzSiN.js → LoadingSpinner.stories-CCyN9n1T.js} +1 -1
- package/storybook-static/assets/{MagicRings.stories-ChpUpgBm.js → MagicRings.stories-NQSwG8Yn.js} +1 -1
- package/storybook-static/assets/{Magnet.stories-CUAsnJjx.js → Magnet.stories-BAwXSJEW.js} +1 -1
- package/storybook-static/assets/{MagnetLines.stories-BtKFg9_t.js → MagnetLines.stories-CJqMXg51.js} +1 -1
- package/storybook-static/assets/{Masonry.stories-BfT7aonk.js → Masonry.stories-DAl8CRm6.js} +1 -1
- package/storybook-static/assets/{MetaBalls.stories-Bpx6y2Mq.js → MetaBalls.stories-BY7Ilvw5.js} +1 -1
- package/storybook-static/assets/{MetallicPaint.stories-i_KuUoJ7.js → MetallicPaint.stories-iuclFGy4.js} +1 -1
- package/storybook-static/assets/{MoodChart.stories-BUrwIpbe.js → MoodChart.stories-T8Td91vu.js} +1 -1
- package/storybook-static/assets/{MotionConfigContext-BdSKNtzx.js → MotionConfigContext-D_4LMwJ5.js} +1 -1
- package/storybook-static/assets/{Navbar.stories-B5n2URGj.js → Navbar.stories-SRGoJhYx.js} +1 -1
- package/storybook-static/assets/{Noise.stories-BiOgX5JV.js → Noise.stories-B5_Jt1t3.js} +1 -1
- package/storybook-static/assets/{NumberStepper-DvLaVPaJ.js → NumberStepper-BaK5ZScA.js} +1 -1
- package/storybook-static/assets/{NumberStepper.stories-Tp2dyXJp.js → NumberStepper.stories-BZIrFbrQ.js} +1 -1
- package/storybook-static/assets/{Orb.stories-B4ymfobF.js → Orb.stories-Ci1HMLUW.js} +1 -1
- package/storybook-static/assets/{OrbitImages.stories-BOOJ2sLz.js → OrbitImages.stories-Bzf1HUks.js} +1 -1
- package/storybook-static/assets/{PieChart.stories-eN4T-LQ5.js → PieChart.stories-ByRTgKp3.js} +1 -1
- package/storybook-static/assets/{PixelBlast.stories-CKyxO1s-.js → PixelBlast.stories-C83D_GSk.js} +1 -1
- package/storybook-static/assets/{PixelCard.stories-DNkvTz5j.js → PixelCard.stories-B8DdUCQe.js} +1 -1
- package/storybook-static/assets/{PixelSnow.stories-DDwr-w1I.js → PixelSnow.stories-BOHNVU80.js} +1 -1
- package/storybook-static/assets/{PixelTransition.stories-nLfk3vHv.js → PixelTransition.stories-D8VH3ukb.js} +1 -1
- package/storybook-static/assets/{Plasma.stories-CiQrlhdr.js → Plasma.stories-CatIdRAD.js} +1 -1
- package/storybook-static/assets/{Prism.stories-DiUQJHSM.js → Prism.stories-Bg6GLExD.js} +1 -1
- package/storybook-static/assets/{PrismaticBurst.stories-CE1GpHYN.js → PrismaticBurst.stories-BNdrAv89.js} +1 -1
- package/storybook-static/assets/{ProfileCard.stories-CLCPDEvl.js → ProfileCard.stories-CyaTrCeK.js} +1 -1
- package/storybook-static/assets/{QuantifiableHabitsChart.stories-qCi1Hwlz.js → QuantifiableHabitsChart.stories-C86yjHJm.js} +1 -1
- package/storybook-static/assets/{Radar.stories-DKY5fGUM.js → Radar.stories-CvzRcw-C.js} +1 -1
- package/storybook-static/assets/{Ribbons.stories-fdt7Dly3.js → Ribbons.stories-BRX9ZoeY.js} +1 -1
- package/storybook-static/assets/{RippleGrid.stories-n5CU7uPT.js → RippleGrid.stories-vnV8CCtp.js} +1 -1
- package/storybook-static/assets/{RotatingText.stories-D345b2IH.js → RotatingText.stories-B8GsJWaC.js} +1 -1
- package/storybook-static/assets/{ScrollFloat.stories-vqa9uxYG.js → ScrollFloat.stories-DOlmhv7e.js} +1 -1
- package/storybook-static/assets/{ScrollReveal.stories-dYbCWXJL.js → ScrollReveal.stories-Bm9KxbWm.js} +1 -1
- package/storybook-static/assets/{ScrollVelocity.stories-BNKZ-bfJ.js → ScrollVelocity.stories-De4s_pOX.js} +1 -1
- package/storybook-static/assets/{SearchBar.stories-CXEYCYtx.js → SearchBar.stories-CfIOeCyX.js} +1 -1
- package/storybook-static/assets/{SearchableDropdown-BTWjVlVv.js → SearchableDropdown--EWJF18v.js} +1 -1
- package/storybook-static/assets/{SearchableDropdown.stories-BBXXroOM.js → SearchableDropdown.stories-B9KNxfZm.js} +1 -1
- package/storybook-static/assets/{SelectInput-BhKBu2cI.js → SelectInput-CFM_N8VG.js} +1 -1
- package/storybook-static/assets/{SelectInput.stories-W6PuLg-G.js → SelectInput.stories-D_5G5-0N.js} +1 -1
- package/storybook-static/assets/{ShapeBlur.stories-wsyTNDdI.js → ShapeBlur.stories-DNg_BI9n.js} +1 -1
- package/storybook-static/assets/{ShapeGrid.stories-BP0HTLmc.js → ShapeGrid.stories-D6mhsKbm.js} +1 -1
- package/storybook-static/assets/{ShinyText.stories-2ZQhiBft.js → ShinyText.stories-NtVkUqNB.js} +1 -1
- package/storybook-static/assets/{Silk.stories-C973tELu.js → Silk.stories-BACMGa6I.js} +1 -1
- package/storybook-static/assets/{SleepChart.stories-C-nic0Hg.js → SleepChart.stories-S6pSldWo.js} +1 -1
- package/storybook-static/assets/{Slider-Cj4NY5N0.js → Slider-dqb2UNTZ.js} +1 -1
- package/storybook-static/assets/{Slider.stories-DLEYO7pQ.js → Slider.stories-4UkeTwoz.js} +1 -1
- package/storybook-static/assets/{SoftAurora.stories-BwKGvWh1.js → SoftAurora.stories-DH8d39VG.js} +1 -1
- package/storybook-static/assets/{SoundDemo.stories-BBGMylUU.js → SoundDemo.stories-Ci_Q1qDO.js} +1 -1
- package/storybook-static/assets/{SplashCursor.stories-Nh-ONQGd.js → SplashCursor.stories-BMBbSrDn.js} +1 -1
- package/storybook-static/assets/{SpotlightCard.stories-C7FUbVoM.js → SpotlightCard.stories-Cy3mgAFZ.js} +1 -1
- package/storybook-static/assets/{Stack.stories-eXwEbGTy.js → Stack.stories-C_qFRAvS.js} +1 -1
- package/storybook-static/assets/{StaggeredMenu.stories-tgVDfUr0.js → StaggeredMenu.stories-BeqjTXCs.js} +1 -1
- package/storybook-static/assets/{StarBorder.stories-D36zbc2N.js → StarBorder.stories-BeLKjLZu.js} +1 -1
- package/storybook-static/assets/{SunburstChart.stories-CgCbkhG8.js → SunburstChart.stories-DN8EQLMh.js} +1 -1
- package/storybook-static/assets/{Table.stories-BdABrDyr.js → Table.stories-BJ6FcfdD.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-BwzAz5v_.js → Tabs.stories-7-b1PtWp.js} +1 -1
- package/storybook-static/assets/{TargetCursor.stories-D1M0ZV-S.js → TargetCursor.stories-CfxWRalc.js} +1 -1
- package/storybook-static/assets/{TextArea-CMvPbRqQ.js → TextArea-DGywTJLt.js} +1 -1
- package/storybook-static/assets/{TextArea.stories-DmAuD1fB.js → TextArea.stories-B-uYOZs4.js} +1 -1
- package/storybook-static/assets/{TextCursor.stories-CJmFUz8s.js → TextCursor.stories-61sj2bl9.js} +1 -1
- package/storybook-static/assets/{TextInput-7QROD9Bu.js → TextInput-CiI38oLt.js} +1 -1
- package/storybook-static/assets/{TextInput.stories-Cwf2_Ika.js → TextInput.stories-DtG6MQod.js} +1 -1
- package/storybook-static/assets/{TextPressure.stories-CB8UIoN_.js → TextPressure.stories-C1h8GiS8.js} +1 -1
- package/storybook-static/assets/{TextType.stories-D4ZEW3Fz.js → TextType.stories-BfUDVoY_.js} +1 -1
- package/storybook-static/assets/ThemeSwitcher.stories-gBLrYosz.js +62 -0
- package/storybook-static/assets/{Threads.stories-P32yG4P8.js → Threads.stories-sZxNqPXX.js} +1 -1
- package/storybook-static/assets/{TimeInput.stories-Dkkdpsta.js → TimeInput.stories-CjvGCAgd.js} +1 -1
- package/storybook-static/assets/{Toggle-DLu7xVQv.js → Toggle-DwTHl9Fm.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-BSS4Epfw.js → Toggle.stories-DU0Scugu.js} +1 -1
- package/storybook-static/assets/{ToggleButton-Cq7dxxuH.js → ToggleButton-s2aFLlgS.js} +1 -1
- package/storybook-static/assets/{ToggleButton.stories-BZvOkwfy.js → ToggleButton.stories-DgSqo96g.js} +1 -1
- package/storybook-static/assets/{TrueFocus.stories-BMRj967B.js → TrueFocus.stories-CuqOvqGj.js} +1 -1
- package/storybook-static/assets/{VariableProximity.stories-B6-tbs3n.js → VariableProximity.stories-CWLeFmxb.js} +1 -1
- package/storybook-static/assets/{Waves.stories-CAJon3iL.js → Waves.stories-zeyoHm5S.js} +1 -1
- package/storybook-static/assets/{check-D8bWZLP6.js → check-7O6ar4SG.js} +1 -1
- package/storybook-static/assets/{chevron-down-BZPtZoHS.js → chevron-down-BC5Z9HYA.js} +1 -1
- package/storybook-static/assets/{chevron-right-B4kqmwjo.js → chevron-right-CDwij0IV.js} +1 -1
- package/storybook-static/assets/client-C--dgtnn.js +1 -0
- package/storybook-static/assets/{createLucideIcon-Eaeny9Zi.js → createLucideIcon-yjHXhSOm.js} +1 -1
- package/storybook-static/assets/{folder-DNcKa6s5.js → folder-CATSGh42.js} +1 -1
- package/storybook-static/assets/{iconBase-CstVDnta.js → iconBase-D_x0Veg_.js} +1 -1
- package/storybook-static/assets/iframe-B7RIyArP.css +1 -0
- package/storybook-static/assets/{iframe-CvT6MryR.js → iframe-LZvJb0BS.js} +5 -5
- package/storybook-static/assets/{index-Cb6YhhUk.js → index-D9mC-cEf.js} +1 -1
- package/storybook-static/assets/{index-KuyQzDCw.js → index-DSYnL-zq.js} +1 -1
- package/storybook-static/assets/{index-2ZuXCVEx.js → index-vc18hLoj.js} +1 -1
- package/storybook-static/assets/{layout-grid-nUVet5Tw.js → layout-grid-Dyvnjtf9.js} +1 -1
- package/storybook-static/assets/{proxy-0exJiild.js → proxy-94dt0K2Y.js} +1 -1
- package/storybook-static/assets/{react-18-KOo_VULj.js → react-18-C-ERT8YQ.js} +1 -1
- package/storybook-static/assets/{react-three-fiber.esm-BbD9yVT_.js → react-three-fiber.esm-D_o7ZgN9.js} +1 -1
- package/storybook-static/assets/{search-Cfa-rwoK.js → search-BVmOcKZi.js} +1 -1
- package/storybook-static/assets/{sun-BwQ2hAsY.js → sun-s1P_-p6e.js} +1 -1
- package/storybook-static/assets/{use-animation-frame-BOMew7B2.js → use-animation-frame-04H3dRpD.js} +1 -1
- package/storybook-static/assets/{use-in-view-BP3CscI2.js → use-in-view--MCxH20O.js} +1 -1
- package/storybook-static/assets/{use-motion-value-DfJqnIZb.js → use-motion-value-Cic9xvrL.js} +1 -1
- package/storybook-static/assets/{use-spring-SHZiaDU4.js → use-spring-D4LsSJyy.js} +1 -1
- package/storybook-static/assets/{use-transform-CATrWDJd.js → use-transform-D1fwdMmS.js} +1 -1
- package/storybook-static/assets/{useSound-DyOR6GVH.js → useSound-Dc8S51xy.js} +1 -1
- package/storybook-static/assets/{users-CoCnAJkL.js → users-DmRtN79P.js} +1 -1
- package/storybook-static/assets/{x-D_m9a61B.js → x-C7Ulr4p2.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/project.json +1 -1
- package/storybook-static/sb-addons/chromatic-com-storybook-4/manager-bundle.js +1 -1
- package/storybook-static/sb-addons/docs-2/manager-bundle.js +2 -2
- package/storybook-static/sb-addons/links-3/manager-bundle.js +1 -1
- package/storybook-static/sb-addons/storybook-5/manager-bundle.js +1 -1
- package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +3 -3
- package/storybook-static/assets/Calendar-gAaU5NXk.css +0 -1
- package/storybook-static/assets/Calendar.stories-BPwP3WUJ.js +0 -470
- package/storybook-static/assets/ThemeSwitcher.stories-DHgVmIcC.js +0 -62
- package/storybook-static/assets/client-er7qZ0kF.js +0 -1
- package/storybook-static/assets/iframe-Df7_64QT.css +0 -1
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
import{r as k,j as e}from"./iframe-LZvJb0BS.js";import{m as W}from"./proxy-94dt0K2Y.js";import"./preload-helper-C1FmrZbK.js";import"./MotionConfigContext-D_4LMwJ5.js";const ze="_calendar_11jmb_2",Ae="_loading_11jmb_14",qe="_loadingSpinner_11jmb_21",We="_header_11jmb_27",Ge="_navigation_11jmb_35",Oe="_navButton_11jmb_41",Ue="_title_11jmb_60",Ye="_controls_11jmb_70",Ke="_todayButton_11jmb_76",Qe="_viewToggle_11jmb_92",Je="_viewButton_11jmb_99",Xe="_active_11jmb_113",Ze="_weekDays_11jmb_123",et="_weekNumberHeader_11jmb_134",tt="_weekDay_11jmb_123",nt="_daysGrid_11jmb_151",at="_weekView_11jmb_162",it="_dayCell_11jmb_166",ot="_dayNumber_11jmb_195",st="_today_11jmb_76",rt="_events_11jmb_214",dt="_event_11jmb_214",lt="_eventTitle_11jmb_241",ct="_eventTime_11jmb_250",mt="_otherMonth_11jmb_295",pt="_selected_11jmb_300",ut="_compact_11jmb_311",gt="_dots_11jmb_323",vt="_dot_11jmb_323",yt="_dotMore_11jmb_338",ht="_weekNumber_11jmb_134",wt="_completed_11jmb_388",Dt="_completedIcon_11jmb_409",ft="_moreEvents_11jmb_416",xt="_emptyState_11jmb_426",Ct="_dayView_11jmb_436",kt="_dayViewHeader_11jmb_445",_t="_timeColumnHeader_11jmb_455",bt="_dayColumnHeader_11jmb_462",jt="_dayViewScrollContainer_11jmb_471",St="_dayViewContent_11jmb_479",Et="_timeColumn_11jmb_455",Tt="_dayColumn_11jmb_462",Mt="_timeSlot_11jmb_497",Nt="_timeLabel_11jmb_506",$t="_hourSlot_11jmb_512",Bt="_hourLine_11jmb_525",Lt="_dayEvent_11jmb_535",Vt="_dayEventTitle_11jmb_556",Rt="_dayEventTime_11jmb_564",Ht="_currentTimeIndicator_11jmb_576",n={calendar:ze,loading:Ae,loadingSpinner:qe,header:We,navigation:Ge,navButton:Oe,title:Ue,controls:Ye,todayButton:Ke,viewToggle:Qe,viewButton:Je,active:Xe,weekDays:Ze,weekNumberHeader:et,weekDay:tt,daysGrid:nt,weekView:at,dayCell:it,dayNumber:ot,today:st,events:rt,event:dt,eventTitle:lt,eventTime:ct,otherMonth:mt,selected:pt,compact:ut,dots:gt,dot:vt,dotMore:yt,weekNumber:ht,completed:wt,completedIcon:Dt,moreEvents:ft,emptyState:xt,dayView:Ct,dayViewHeader:kt,timeColumnHeader:_t,dayColumnHeader:bt,dayViewScrollContainer:jt,dayViewContent:St,timeColumn:Et,dayColumn:Tt,timeSlot:Mt,timeLabel:Nt,hourSlot:$t,hourLine:Bt,dayEvent:Lt,dayEventTitle:Vt,dayEventTime:Rt,currentTimeIndicator:Ht};function f({events:s,onEventClick:c,onDateClick:m,onEventClickByView:h,onDateClickByView:v,onTimeSlotClick:r,viewMode:g="month",initialDate:y=new Date,config:x={},className:D="",style:G={},loading:Ee=!1,emptyState:O,hideHeader:Te=!1,compact:U=!1,selectedDate:Y}){const[p,z]=k.useState(y),[d,A]=k.useState(g),T=k.useRef(null),{eventColors:K={},iconRenderer:M,maxEventsPerDay:_=3,mondayStart:S=!1,showWeekNumbers:Q=!1,dateFormat:J={month:"long",year:"numeric"},locale:b="en-US",dayLabels:Me,monthNames:N}=x,Ne=Me||(S?["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);k.useEffect(()=>{if(d==="day"&&T.current){const t=new Date;if(p.toDateString()===t.toDateString()){const a=t.getHours(),i=t.getMinutes(),w=(a*60+i)/60*60-100;setTimeout(()=>{T.current&&(T.current.scrollTop=Math.max(0,w))},0)}}},[d,p]);const X=k.useMemo(()=>{const t=p.getFullYear(),o=p.getMonth();let a,i,u;if(d==="week"){a=new Date(p);const l=a.getDay(),C=S?a.getDate()-l+(l===0?-6:1):a.getDate()-l;a=new Date(a.setDate(C)),a.setHours(0,0,0,0),i=new Date(a),i.setDate(i.getDate()+6);const E=a.toLocaleDateString(b,{day:"numeric",month:"short"}),q=i.toLocaleDateString(b,{day:"numeric",month:"short"});u=`${E} - ${q}`}else if(d==="day")a=new Date(p),a.setHours(0,0,0,0),i=new Date(p),i.setHours(23,59,59,999),u=p.toLocaleDateString(b,{weekday:"long",year:"numeric",month:"long",day:"numeric"});else{const l=new Date(t,o,1),C=new Date(t,o+1,0);a=new Date(l);const E=S?(l.getDay()+6)%7:l.getDay();a.setDate(a.getDate()-E),i=new Date(C);const q=S?(C.getDay()+6)%7:C.getDay();i.setDate(i.getDate()+(6-q)),N&&N[o]?u=`${N[o]} ${t}`:u=p.toLocaleDateString(b,J)}const w=[],j=new Date(a);for(;j<=i;)w.push(new Date(j)),j.setDate(j.getDate()+1);return{days:w,displayTitle:u}},[p,d,S,b,J,N]),Z=t=>{const o=s.filter(a=>new Date(a.date).toDateString()===t.toDateString());return d==="week"?o.sort((a,i)=>{const u=a.time?ee(a.time):999999,w=i.time?ee(i.time):999999;return u-w}):o},ee=t=>{const[o,a]=t.split(":").map(Number);return o*60+a},$e=()=>{const t=new Date(p);d==="week"?t.setDate(t.getDate()-7):d==="day"?t.setDate(t.getDate()-1):t.setMonth(t.getMonth()-1),z(t)},Be=()=>{const t=new Date(p);d==="week"?t.setDate(t.getDate()+7):d==="day"?t.setDate(t.getDate()+1):t.setMonth(t.getMonth()+1),z(t)},Le=()=>{z(new Date)},$=t=>{if(t.color)return t.color;if(t.type&&K[t.type])return K[t.type];const o={high:"#FF4444",medium:"#FFA500",low:"#4A90E2"};return t.priority&&o[t.priority]?o[t.priority]:"#4A90E2"},Ve=t=>{const o=t.replace("#",""),a=parseInt(o.substring(0,2),16),i=parseInt(o.substring(2,4),16),u=parseInt(o.substring(4,6),16);return(.299*a+.587*i+.114*u)/255>.5?"#000000":"#FFFFFF"},te=t=>{if(t.textColor)return t.textColor;const o=$(t);return Ve(o)},ne=t=>{h&&h[d]?h[d](t):c&&c(t)},Re=t=>{v&&v[d]?v[d](t):m&&m(t)},He=t=>{if(r){const o=new Date(p);o.setHours(t,0,0,0);const a=`${t.toString().padStart(2,"0")}:00`;r(o,t,a)}},Ie=t=>{const o=new Date;return t.toDateString()===o.toDateString()},Pe=t=>t.getMonth()===p.getMonth(),Fe=t=>{const o=new Date(t.getFullYear(),0,1),a=t.getTime()-o.getTime(),i=1e3*60*60*24*7;return Math.floor(a/i)+1};return Ee?e.jsx("div",{className:`${n.calendar} ${n.loading} ${D}`,style:G,children:e.jsx("div",{className:n.loadingSpinner,children:"Loading..."})}):e.jsxs("div",{className:`${n.calendar} ${U?n.compact:""} ${D}`,style:G,children:[!Te&&e.jsxs("div",{className:n.header,children:[e.jsxs("div",{className:n.navigation,children:[e.jsx("button",{onClick:$e,className:n.navButton,"aria-label":"Previous",children:e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:e.jsx("polyline",{points:"15,18 9,12 15,6"})})}),e.jsx("h3",{className:n.title,children:X.displayTitle}),e.jsx("button",{onClick:Be,className:n.navButton,"aria-label":"Next",children:e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:e.jsx("polyline",{points:"9,6 15,12 9,18"})})})]}),e.jsxs("div",{className:n.controls,children:[e.jsx("button",{onClick:Le,className:n.todayButton,children:"Today"}),e.jsxs("div",{className:n.viewToggle,children:[e.jsx("button",{className:`${n.viewButton} ${d==="month"?n.active:""}`,onClick:()=>A("month"),children:"Month"}),e.jsx("button",{className:`${n.viewButton} ${d==="week"?n.active:""}`,onClick:()=>A("week"),children:"Week"}),e.jsx("button",{className:`${n.viewButton} ${d==="day"?n.active:""}`,onClick:()=>A("day"),children:"Day"})]})]})]}),d!=="day"&&e.jsxs("div",{className:n.weekDays,children:[Q&&e.jsx("div",{className:n.weekNumberHeader,children:"Week"}),Ne.map(t=>e.jsx("div",{className:n.weekDay,children:t},t))]}),d==="day"?e.jsxs("div",{className:n.dayView,children:[e.jsxs("div",{className:n.dayViewHeader,children:[e.jsx("div",{className:n.timeColumnHeader}),e.jsx("div",{className:n.dayColumnHeader,children:p.toLocaleDateString(b,{weekday:"short",day:"numeric"})})]}),e.jsx("div",{className:n.dayViewScrollContainer,ref:T,children:e.jsxs("div",{className:n.dayViewContent,children:[(()=>{const t=new Date,o=t.getHours(),a=t.getMinutes(),u=(o*60+a)/1440*(24*60);return p.toDateString()===t.toDateString()?e.jsx("div",{className:n.currentTimeIndicator,style:{top:`${u}px`}}):null})(),e.jsx("div",{className:n.timeColumn,children:Array.from({length:24},(t,o)=>e.jsx("div",{className:n.timeSlot,children:e.jsxs("span",{className:n.timeLabel,children:[o.toString().padStart(2,"0"),":00"]})},o))}),e.jsx("div",{className:n.dayColumn,children:Array.from({length:24},(t,o)=>{const a=Z(p).filter(i=>i.time?parseInt(i.time.split(":")[0])===o:!1);return e.jsxs("div",{className:n.hourSlot,onClick:i=>{(i.target===i.currentTarget||i.target.classList.contains(n.hourLine))&&He(o)},style:{cursor:"pointer"},children:[e.jsx("div",{className:n.hourLine}),a.map((i,u)=>e.jsxs(W.div,{className:`${n.dayEvent} ${i.status==="completed"?n.completed:""}`,style:{backgroundColor:$(i),color:te(i),opacity:i.status==="completed"?.7:1},onClick:w=>{w.stopPropagation(),ne(i)},initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{duration:.2,delay:u*.05,ease:"easeOut"},whileHover:{scale:1.02,y:-1,transition:{duration:.1}},whileTap:{scale:.98,transition:{duration:.1}},children:[M&&M(i),e.jsxs("span",{className:n.dayEventTitle,children:[e.jsx("span",{className:n.dayEventTime,children:i.time}),i.title]}),i.status==="completed"&&e.jsx("svg",{className:n.completedIcon,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:e.jsx("polyline",{points:"20,6 9,17 4,12"})})]},i.id))]},o)})})]})})]}):e.jsx("div",{className:`${n.daysGrid} ${d==="week"?n.weekView:""}`,children:X.days.map((t,o)=>{const a=Z(t),i=Ie(t),u=d==="week"||Pe(t),w=Q&&o%7===0,j=Y&&t.toDateString()===Y.toDateString();return e.jsxs(W.div,{className:`${n.dayCell} ${i?n.today:""} ${u?"":n.otherMonth} ${j?n.selected:""}`,initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.3,delay:o*.02,ease:"easeOut"},onClick:()=>Re(t),children:[w&&e.jsx("div",{className:n.weekNumber,children:Fe(t)}),e.jsx("div",{className:n.dayNumber,children:t.getDate()}),a.length>0&&U&&d==="month"?e.jsxs("div",{className:n.dots,children:[a.slice(0,_).map(l=>e.jsx("span",{className:n.dot,style:{backgroundColor:$(l)}},l.id)),a.length>_&&e.jsxs("span",{className:n.dotMore,children:["+",a.length-_]})]}):a.length>0?e.jsxs("div",{className:n.events,children:[a.slice(0,_).map((l,C)=>e.jsxs(W.div,{className:`${n.event} ${l.status==="completed"?n.completed:""}`,style:{backgroundColor:$(l),color:te(l),opacity:l.status==="completed"?.7:1},onClick:E=>{E.stopPropagation(),ne(l)},initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{duration:.2,delay:C*.05,ease:"easeOut"},whileHover:{scale:1.02,y:-1,transition:{duration:.1}},whileTap:{scale:.98,transition:{duration:.1}},children:[M&&M(l),e.jsxs("span",{className:n.eventTitle,children:[l.time&&e.jsx("span",{className:n.eventTime,children:l.time}),l.title]}),l.status==="completed"&&e.jsx("svg",{className:n.completedIcon,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:e.jsx("polyline",{points:"20,6 9,17 4,12"})})]},l.id)),a.length>_&&e.jsxs("div",{className:n.moreEvents,children:["+",a.length-_," more"]})]}):O?e.jsx("div",{className:n.emptyState,children:O}):null]},`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`)})})]})}f.__docgenInfo={description:`Calendar component - A flexible, reusable calendar for displaying events
|
|
2
|
+
|
|
3
|
+
@component
|
|
4
|
+
@description
|
|
5
|
+
A highly customizable calendar component that can display events in month or week view.
|
|
6
|
+
Supports custom event types, colors, icons, and localization. Perfect for scheduling,
|
|
7
|
+
project management, habit tracking, or any date-based data visualization.
|
|
8
|
+
|
|
9
|
+
@example
|
|
10
|
+
// Basic usage
|
|
11
|
+
<Calendar
|
|
12
|
+
events={myEvents}
|
|
13
|
+
onEventClick={handleEventClick}
|
|
14
|
+
viewMode="month"
|
|
15
|
+
/>
|
|
16
|
+
|
|
17
|
+
@example
|
|
18
|
+
// With custom configuration
|
|
19
|
+
<Calendar
|
|
20
|
+
events={projectEvents}
|
|
21
|
+
config={{
|
|
22
|
+
eventColors: { task: '#4A90E2', meeting: '#7ED321' },
|
|
23
|
+
maxEventsPerDay: 5,
|
|
24
|
+
mondayStart: true
|
|
25
|
+
}}
|
|
26
|
+
onEventClick={handleEventClick}
|
|
27
|
+
/>`,methods:[],displayName:"Calendar",props:{events:{required:!0,tsType:{name:"Array",elements:[{name:"CalendarEvent"}],raw:"CalendarEvent[]"},description:"Array of events to display"},onEventClick:{required:!1,tsType:{name:"signature",type:"function",raw:"(event: CalendarEvent) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"}],return:{name:"void"}}},description:"Callback when an event is clicked"},onDateClick:{required:!1,tsType:{name:"signature",type:"function",raw:"(date: Date) => void",signature:{arguments:[{type:{name:"Date"},name:"date"}],return:{name:"void"}}},description:"Callback when a date is clicked"},onEventClickByView:{required:!1,tsType:{name:"signature",type:"object",raw:`{
|
|
28
|
+
month?: (event: CalendarEvent) => void;
|
|
29
|
+
week?: (event: CalendarEvent) => void;
|
|
30
|
+
day?: (event: CalendarEvent) => void;
|
|
31
|
+
}`,signature:{properties:[{key:"month",value:{name:"signature",type:"function",raw:"(event: CalendarEvent) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"}],return:{name:"void"}},required:!1}},{key:"week",value:{name:"signature",type:"function",raw:"(event: CalendarEvent) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"}],return:{name:"void"}},required:!1}},{key:"day",value:{name:"signature",type:"function",raw:"(event: CalendarEvent) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"}],return:{name:"void"}},required:!1}}]}},description:"View-specific event click handlers"},onDateClickByView:{required:!1,tsType:{name:"signature",type:"object",raw:`{
|
|
32
|
+
month?: (date: Date) => void;
|
|
33
|
+
week?: (date: Date) => void;
|
|
34
|
+
day?: (date: Date) => void;
|
|
35
|
+
}`,signature:{properties:[{key:"month",value:{name:"signature",type:"function",raw:"(date: Date) => void",signature:{arguments:[{type:{name:"Date"},name:"date"}],return:{name:"void"}},required:!1}},{key:"week",value:{name:"signature",type:"function",raw:"(date: Date) => void",signature:{arguments:[{type:{name:"Date"},name:"date"}],return:{name:"void"}},required:!1}},{key:"day",value:{name:"signature",type:"function",raw:"(date: Date) => void",signature:{arguments:[{type:{name:"Date"},name:"date"}],return:{name:"void"}},required:!1}}]}},description:"View-specific date click handlers"},onTimeSlotClick:{required:!1,tsType:{name:"signature",type:"function",raw:"(date: Date, hour: number, time: string) => void",signature:{arguments:[{type:{name:"Date"},name:"date"},{type:{name:"number"},name:"hour"},{type:{name:"string"},name:"time"}],return:{name:"void"}}},description:"Callback when a time slot is clicked in day view"},viewMode:{required:!1,tsType:{name:"union",raw:"'month' | 'week' | 'day'",elements:[{name:"literal",value:"'month'"},{name:"literal",value:"'week'"},{name:"literal",value:"'day'"}]},description:"Initial view mode",defaultValue:{value:"'month'",computed:!1}},initialDate:{required:!1,tsType:{name:"Date"},description:"Initial date to display",defaultValue:{value:"new Date()",computed:!1}},config:{required:!1,tsType:{name:"CalendarConfig"},description:"Configuration options",defaultValue:{value:"{}",computed:!1}},className:{required:!1,tsType:{name:"string"},description:"Custom CSS class",defaultValue:{value:"''",computed:!1}},style:{required:!1,tsType:{name:"ReactCSSProperties",raw:"React.CSSProperties"},description:"Custom styles",defaultValue:{value:"{}",computed:!1}},loading:{required:!1,tsType:{name:"boolean"},description:"Loading state",defaultValue:{value:"false",computed:!1}},emptyState:{required:!1,tsType:{name:"ReactReactNode",raw:"React.ReactNode"},description:"Custom empty state component"},hideHeader:{required:!1,tsType:{name:"boolean"},description:"Hide the calendar header (navigation, title, view controls)",defaultValue:{value:"false",computed:!1}},compact:{required:!1,tsType:{name:"boolean"},description:"Compact mode - renders colored dots instead of event blocks in month view",defaultValue:{value:"false",computed:!1}},selectedDate:{required:!1,tsType:{name:"Date"},description:"Externally controlled selected date highlight (distinct from initialDate which controls navigation)"}}};const qt={title:"Organisms/Calendar",component:f,parameters:{layout:"padded",docs:{description:{component:"A flexible, customizable calendar component for displaying events in month or week view. Perfect for scheduling, project management, habit tracking, or any date-based data visualization."}}},tags:["autodocs"],argTypes:{events:{control:"object",description:"Array of events to display on the calendar"},viewMode:{control:"radio",options:["month","week"],description:"Initial view mode for the calendar"},onEventClick:{action:"event-clicked"},onDateClick:{action:"date-clicked"}}},Se=()=>{const s=new Date,c=[];for(let r=0;r<12;r++){const g=new Date(s);g.setDate(s.getDate()+Math.floor(Math.random()*30)-15),c.push({id:`event-${r}`,title:`Event ${r+1}`,date:g,time:Math.random()>.5?`${9+Math.floor(Math.random()*8)}:${Math.random()>.5?"00":"30"}`:void 0,type:["meeting","task","deadline","milestone"][Math.floor(Math.random()*4)],status:Math.random()>.7?"completed":"pending",priority:["high","medium","low"][Math.floor(Math.random()*3)]})}const m=["Daily Standup","Sprint Retro","Code Review: Auth","Code Review: Payments","1:1 with Manager","Architecture Review","Lunch & Learn","Client Demo","Bug Triage","Design Critique","Interview (Sr. FE)","Interview (BE)","Security Debrief","Deploy to Staging","QA Sign-off","Prod Go/No-Go","Team Happy Hour","Write Summary"],h=["meeting","meeting","task","task","meeting","meeting","milestone","deadline","task","meeting","meeting","meeting","meeting","deadline","meeting","milestone","task","task"],v=["medium","medium","high","high","medium","high","low","high","medium","medium","high","high","high","high","medium","high","low","low"];for(let r=0;r<m.length;r++)c.push({id:`busy-${r}`,title:m[r],date:new Date(s),time:`${6+Math.floor(r*13/m.length)}:${r%2===0?"00":"30"}`,type:h[r],status:r<5?"completed":"pending",priority:v[r]});return c},B={args:{events:Se(),viewMode:"month"}},L={args:{events:Se(),viewMode:"week"}},V={args:{events:[{id:"1",title:"Morning Standup",date:new Date,time:"09:00",type:"meeting",status:"pending",priority:"high"},{id:"2",title:"Code Review",date:new Date,time:"10:30",type:"task",status:"pending",priority:"medium"},{id:"3",title:"Lunch Break",date:new Date,time:"12:00",type:"break",status:"pending",priority:"low"},{id:"4",title:"Team Sync",date:new Date,time:"14:00",type:"meeting",status:"completed",priority:"medium"},{id:"5",title:"Development Work",date:new Date,time:"15:30",type:"task",status:"pending",priority:"high"},{id:"6",title:"Documentation",date:new Date,time:"17:00",type:"task",status:"pending",priority:"low"}],viewMode:"day"}},R={args:{events:[]},render:()=>{const[s,c]=k.useState([{id:"1",title:"Sprint Planning",date:new Date,time:"09:00",type:"meeting",status:"pending",priority:"high"},{id:"2",title:"Code Review",date:new Date(Date.now()+864e5),time:"14:30",type:"review",status:"completed",priority:"medium"},{id:"3",title:"Design Sprint",date:new Date(Date.now()+1728e5),type:"workshop",status:"pending",priority:"medium"}]),[m,h]=k.useState([]),v=g=>{const y=new Date().toLocaleTimeString();c(x=>x.map(D=>D.id===g.id?{...D,status:D.status==="completed"?"pending":"completed"}:D)),h(x=>[`[${y}] 🔄 Toggled "${g.title}" status`,...x.slice(0,4)])},r=g=>{const y=new Date().toLocaleTimeString(),x={id:`new-${Date.now()}`,title:"New Event",date:g,time:"15:00",type:"meeting",status:"pending",priority:"medium"};c(D=>[...D,x]),h(D=>[`[${y}] ➕ Added event on ${g.toLocaleDateString()}`,...D.slice(0,4)])};return e.jsxs("div",{children:[e.jsxs("div",{style:{padding:"var(--spacing-md)",background:"var(--color-primary-light)",borderRadius:"var(--radius-md)",marginBottom:"var(--spacing-lg)"},children:[e.jsx("h4",{style:{margin:"0 0 var(--spacing-xs) 0",color:"var(--color-primary)"},children:"🎯 Interactive Demo"}),e.jsx("p",{style:{margin:0,fontSize:"var(--font-size-sm)",color:"var(--color-text-secondary)"},children:"• Click events to toggle status • Click dates to add new events"})]}),e.jsx(f,{events:s,onEventClick:v,onDateClick:r,config:{eventColors:{meeting:"#4A90E2",review:"#BD10E0",workshop:"#4ECDC4"},iconRenderer:g=>{const y={meeting:"👥",review:"👀",workshop:"🎨"};return e.jsx("span",{style:{fontSize:"11px"},children:y[g.type]||"📅"})}},viewMode:"month"}),m.length>0&&e.jsxs("div",{style:{marginTop:"var(--spacing-lg)",padding:"var(--spacing-md)",background:"var(--color-background-secondary)",borderRadius:"var(--radius-md)"},children:[e.jsx("h5",{style:{margin:"0 0 var(--spacing-sm) 0",color:"var(--color-text)"},children:"Recent Actions:"}),m.map((g,y)=>e.jsx("div",{style:{padding:"var(--spacing-xs)",margin:"2px 0",background:"var(--color-background)",borderRadius:"var(--radius-xs)",fontSize:"var(--font-size-xs)",fontFamily:"monospace"},children:g},y))]})]})}},H={args:{events:[]},render:()=>{const s=[],c=new Date,m=["Exercise","Meditation","Reading","Water","Sleep"],h=["💪","🧘","📚","💧","😴"];for(let v=-7;v<=7;v++){const r=new Date(c);r.setDate(c.getDate()+v),m.forEach((g,y)=>{Math.random()>.3&&s.push({id:`habit-${v}-${y}`,title:g,date:new Date(r),type:"habit",status:Math.random()>.1?"completed":"pending",color:`hsl(${y*70}, 70%, 50%)`,metadata:{icon:h[y]}})})}return e.jsxs("div",{children:[e.jsx("h3",{style:{marginBottom:"var(--spacing-md)",color:"var(--color-text)"},children:"🎯 Habit Tracking Use Case"}),e.jsx(f,{events:s,config:{iconRenderer:v=>{var r;return e.jsx("span",{style:{fontSize:"10px"},children:((r=v.metadata)==null?void 0:r.icon)||"✓"})},maxEventsPerDay:8,mondayStart:!0},viewMode:"month"})]})}},I={args:{events:[]},render:()=>{const s=new Date,c=[{id:"schedule-1",title:"Team Standup and a very long text for a task that never ends",date:new Date(s.getTime()-(s.getDay()-1)*24*60*60*1e3),time:"09:00",type:"meeting",status:"pending",priority:"medium"},{id:"schedule-2",title:"Code Review",date:new Date(s.getTime()-(s.getDay()-1)*24*60*60*1e3),time:"11:30",type:"review",status:"completed",priority:"high"},{id:"schedule-3",title:"Client Call",date:new Date(s.getTime()-(s.getDay()-2)*24*60*60*1e3),time:"10:00",type:"call",status:"pending",priority:"high"},{id:"schedule-4",title:"Sprint Planning",date:new Date(s.getTime()-(s.getDay()-2)*24*60*60*1e3),time:"14:00",type:"meeting",status:"pending",priority:"high"},{id:"schedule-5",title:"Demo Day",date:new Date(s.getTime()-(s.getDay()-5)*24*60*60*1e3),time:"13:00",type:"presentation",status:"pending",priority:"high"}];return e.jsxs("div",{children:[e.jsx("h3",{style:{marginBottom:"var(--spacing-md)",color:"var(--color-text)"},children:"📅 Event Scheduling (Week View)"}),e.jsx(f,{events:c,config:{eventColors:{meeting:"#4A90E2",call:"#7ED321",review:"#BD10E0",presentation:"#FF6B6B"},iconRenderer:m=>{const h={meeting:"👥",call:"📞",review:"👀",presentation:"🎯"};return e.jsx("span",{style:{fontSize:"12px"},children:h[m.type]||"📅"})},maxEventsPerDay:6,mondayStart:!0},viewMode:"week"})]})}},P={args:{events:[]},render:()=>{const s=[{id:"custom-1",title:"VIP Client Meeting",date:new Date,time:"10:00",type:"vip",status:"pending",priority:"high"},{id:"custom-2",title:"Design Sprint",date:new Date(Date.now()+864e5),type:"workshop",status:"pending",priority:"medium"},{id:"custom-3",title:"Project Milestone ✓",date:new Date(Date.now()-864e5),type:"milestone",status:"completed",priority:"high"}];return e.jsxs("div",{children:[e.jsx("h3",{style:{marginBottom:"var(--spacing-md)",color:"var(--color-text)"},children:"🎨 Custom Colors, Icons & Configuration"}),e.jsx(f,{events:s,config:{eventColors:{vip:"#FF6B6B",workshop:"#4ECDC4",milestone:"#F39C12"},iconRenderer:c=>c.type==="vip"?e.jsx("span",{style:{fontSize:"12px"},children:"⭐"}):c.type==="workshop"?e.jsx("span",{style:{fontSize:"12px"},children:"🎨"}):c.type==="milestone"?e.jsx("span",{style:{fontSize:"12px"},children:"🎯"}):e.jsx("span",{style:{fontSize:"12px"},children:"📅"}),maxEventsPerDay:6,mondayStart:!0,showWeekNumbers:!0,locale:"en-US"},viewMode:"month"})]})}},F={args:{events:[]},render:()=>{const s=[],c=new Date;for(let m=0;m<6;m++)s.push({id:`many-${m}`,title:`Meeting ${m+1}`,date:c,time:`${9+m}:00`,type:"meeting",status:"pending",priority:"medium"});return e.jsxs("div",{style:{display:"grid",gap:"var(--spacing-xl)"},children:[e.jsxs("div",{children:[e.jsx("h4",{style:{margin:"0 0 var(--spacing-md) 0",color:"var(--color-text)"},children:'📊 Many Events (shows "more" indicator)'}),e.jsx(f,{events:s,config:{maxEventsPerDay:3},viewMode:"month"})]}),e.jsxs("div",{children:[e.jsx("h4",{style:{margin:"0 0 var(--spacing-md) 0",color:"var(--color-text)"},children:"💨 Loading State"}),e.jsx(f,{events:[],loading:!0})]}),e.jsxs("div",{children:[e.jsx("h4",{style:{margin:"0 0 var(--spacing-md) 0",color:"var(--color-text)"},children:"📭 Empty State"}),e.jsx(f,{events:[],emptyState:e.jsx("span",{style:{color:"var(--color-text-tertiary)",fontSize:"11px"},children:"No events"})})]})]})}};var ae,ie,oe;B.parameters={...B.parameters,docs:{...(ae=B.parameters)==null?void 0:ae.docs,source:{originalSource:`{
|
|
36
|
+
args: {
|
|
37
|
+
events: generateSampleEvents(),
|
|
38
|
+
viewMode: 'month'
|
|
39
|
+
}
|
|
40
|
+
}`,...(oe=(ie=B.parameters)==null?void 0:ie.docs)==null?void 0:oe.source}}};var se,re,de;L.parameters={...L.parameters,docs:{...(se=L.parameters)==null?void 0:se.docs,source:{originalSource:`{
|
|
41
|
+
args: {
|
|
42
|
+
events: generateSampleEvents(),
|
|
43
|
+
viewMode: 'week'
|
|
44
|
+
}
|
|
45
|
+
}`,...(de=(re=L.parameters)==null?void 0:re.docs)==null?void 0:de.source}}};var le,ce,me;V.parameters={...V.parameters,docs:{...(le=V.parameters)==null?void 0:le.docs,source:{originalSource:`{
|
|
46
|
+
args: {
|
|
47
|
+
events: [{
|
|
48
|
+
id: '1',
|
|
49
|
+
title: 'Morning Standup',
|
|
50
|
+
date: new Date(),
|
|
51
|
+
time: '09:00',
|
|
52
|
+
type: 'meeting',
|
|
53
|
+
status: 'pending',
|
|
54
|
+
priority: 'high'
|
|
55
|
+
}, {
|
|
56
|
+
id: '2',
|
|
57
|
+
title: 'Code Review',
|
|
58
|
+
date: new Date(),
|
|
59
|
+
time: '10:30',
|
|
60
|
+
type: 'task',
|
|
61
|
+
status: 'pending',
|
|
62
|
+
priority: 'medium'
|
|
63
|
+
}, {
|
|
64
|
+
id: '3',
|
|
65
|
+
title: 'Lunch Break',
|
|
66
|
+
date: new Date(),
|
|
67
|
+
time: '12:00',
|
|
68
|
+
type: 'break',
|
|
69
|
+
status: 'pending',
|
|
70
|
+
priority: 'low'
|
|
71
|
+
}, {
|
|
72
|
+
id: '4',
|
|
73
|
+
title: 'Team Sync',
|
|
74
|
+
date: new Date(),
|
|
75
|
+
time: '14:00',
|
|
76
|
+
type: 'meeting',
|
|
77
|
+
status: 'completed',
|
|
78
|
+
priority: 'medium'
|
|
79
|
+
}, {
|
|
80
|
+
id: '5',
|
|
81
|
+
title: 'Development Work',
|
|
82
|
+
date: new Date(),
|
|
83
|
+
time: '15:30',
|
|
84
|
+
type: 'task',
|
|
85
|
+
status: 'pending',
|
|
86
|
+
priority: 'high'
|
|
87
|
+
}, {
|
|
88
|
+
id: '6',
|
|
89
|
+
title: 'Documentation',
|
|
90
|
+
date: new Date(),
|
|
91
|
+
time: '17:00',
|
|
92
|
+
type: 'task',
|
|
93
|
+
status: 'pending',
|
|
94
|
+
priority: 'low'
|
|
95
|
+
}],
|
|
96
|
+
viewMode: 'day'
|
|
97
|
+
}
|
|
98
|
+
}`,...(me=(ce=V.parameters)==null?void 0:ce.docs)==null?void 0:me.source}}};var pe,ue,ge;R.parameters={...R.parameters,docs:{...(pe=R.parameters)==null?void 0:pe.docs,source:{originalSource:`{
|
|
99
|
+
args: {
|
|
100
|
+
events: []
|
|
101
|
+
},
|
|
102
|
+
render: () => {
|
|
103
|
+
const [events, setEvents] = useState<CalendarEvent[]>([{
|
|
104
|
+
id: '1',
|
|
105
|
+
title: 'Sprint Planning',
|
|
106
|
+
date: new Date(),
|
|
107
|
+
time: '09:00',
|
|
108
|
+
type: 'meeting',
|
|
109
|
+
status: 'pending',
|
|
110
|
+
priority: 'high'
|
|
111
|
+
}, {
|
|
112
|
+
id: '2',
|
|
113
|
+
title: 'Code Review',
|
|
114
|
+
date: new Date(Date.now() + 24 * 60 * 60 * 1000),
|
|
115
|
+
time: '14:30',
|
|
116
|
+
type: 'review',
|
|
117
|
+
status: 'completed',
|
|
118
|
+
priority: 'medium'
|
|
119
|
+
}, {
|
|
120
|
+
id: '3',
|
|
121
|
+
title: 'Design Sprint',
|
|
122
|
+
date: new Date(Date.now() + 2 * 24 * 60 * 60 * 1000),
|
|
123
|
+
type: 'workshop',
|
|
124
|
+
status: 'pending',
|
|
125
|
+
priority: 'medium'
|
|
126
|
+
}]);
|
|
127
|
+
const [actionLog, setActionLog] = useState<string[]>([]);
|
|
128
|
+
const handleEventClick = (event: CalendarEvent) => {
|
|
129
|
+
const timestamp = new Date().toLocaleTimeString();
|
|
130
|
+
|
|
131
|
+
// Toggle status and log action
|
|
132
|
+
setEvents(prev => prev.map(e => e.id === event.id ? {
|
|
133
|
+
...e,
|
|
134
|
+
status: e.status === 'completed' ? 'pending' : 'completed'
|
|
135
|
+
} : e));
|
|
136
|
+
setActionLog(prev => [\`[\${timestamp}] 🔄 Toggled "\${event.title}" status\`, ...prev.slice(0, 4) // Keep only last 5 logs
|
|
137
|
+
]);
|
|
138
|
+
};
|
|
139
|
+
const handleDateClick = (date: Date) => {
|
|
140
|
+
const timestamp = new Date().toLocaleTimeString();
|
|
141
|
+
const newEvent: CalendarEvent = {
|
|
142
|
+
id: \`new-\${Date.now()}\`,
|
|
143
|
+
title: 'New Event',
|
|
144
|
+
date: date,
|
|
145
|
+
time: '15:00',
|
|
146
|
+
type: 'meeting',
|
|
147
|
+
status: 'pending',
|
|
148
|
+
priority: 'medium'
|
|
149
|
+
};
|
|
150
|
+
setEvents(prev => [...prev, newEvent]);
|
|
151
|
+
setActionLog(prev => [\`[\${timestamp}] ➕ Added event on \${date.toLocaleDateString()}\`, ...prev.slice(0, 4)]);
|
|
152
|
+
};
|
|
153
|
+
return <div>
|
|
154
|
+
<div style={{
|
|
155
|
+
padding: 'var(--spacing-md)',
|
|
156
|
+
background: 'var(--color-primary-light)',
|
|
157
|
+
borderRadius: 'var(--radius-md)',
|
|
158
|
+
marginBottom: 'var(--spacing-lg)'
|
|
159
|
+
}}>
|
|
160
|
+
<h4 style={{
|
|
161
|
+
margin: '0 0 var(--spacing-xs) 0',
|
|
162
|
+
color: 'var(--color-primary)'
|
|
163
|
+
}}>
|
|
164
|
+
🎯 Interactive Demo
|
|
165
|
+
</h4>
|
|
166
|
+
<p style={{
|
|
167
|
+
margin: 0,
|
|
168
|
+
fontSize: 'var(--font-size-sm)',
|
|
169
|
+
color: 'var(--color-text-secondary)'
|
|
170
|
+
}}>
|
|
171
|
+
• Click events to toggle status • Click dates to add new events
|
|
172
|
+
</p>
|
|
173
|
+
</div>
|
|
174
|
+
|
|
175
|
+
<Calendar events={events} onEventClick={handleEventClick} onDateClick={handleDateClick} config={{
|
|
176
|
+
eventColors: {
|
|
177
|
+
meeting: '#4A90E2',
|
|
178
|
+
review: '#BD10E0',
|
|
179
|
+
workshop: '#4ECDC4'
|
|
180
|
+
},
|
|
181
|
+
iconRenderer: event => {
|
|
182
|
+
const icons = {
|
|
183
|
+
meeting: '👥',
|
|
184
|
+
review: '👀',
|
|
185
|
+
workshop: '🎨'
|
|
186
|
+
};
|
|
187
|
+
return <span style={{
|
|
188
|
+
fontSize: '11px'
|
|
189
|
+
}}>{icons[event.type as keyof typeof icons] || '📅'}</span>;
|
|
190
|
+
}
|
|
191
|
+
}} viewMode="month" />
|
|
192
|
+
|
|
193
|
+
{actionLog.length > 0 && <div style={{
|
|
194
|
+
marginTop: 'var(--spacing-lg)',
|
|
195
|
+
padding: 'var(--spacing-md)',
|
|
196
|
+
background: 'var(--color-background-secondary)',
|
|
197
|
+
borderRadius: 'var(--radius-md)'
|
|
198
|
+
}}>
|
|
199
|
+
<h5 style={{
|
|
200
|
+
margin: '0 0 var(--spacing-sm) 0',
|
|
201
|
+
color: 'var(--color-text)'
|
|
202
|
+
}}>
|
|
203
|
+
Recent Actions:
|
|
204
|
+
</h5>
|
|
205
|
+
{actionLog.map((log, index) => <div key={index} style={{
|
|
206
|
+
padding: 'var(--spacing-xs)',
|
|
207
|
+
margin: '2px 0',
|
|
208
|
+
background: 'var(--color-background)',
|
|
209
|
+
borderRadius: 'var(--radius-xs)',
|
|
210
|
+
fontSize: 'var(--font-size-xs)',
|
|
211
|
+
fontFamily: 'monospace'
|
|
212
|
+
}}>
|
|
213
|
+
{log}
|
|
214
|
+
</div>)}
|
|
215
|
+
</div>}
|
|
216
|
+
</div>;
|
|
217
|
+
}
|
|
218
|
+
}`,...(ge=(ue=R.parameters)==null?void 0:ue.docs)==null?void 0:ge.source}}};var ve,ye,he;H.parameters={...H.parameters,docs:{...(ve=H.parameters)==null?void 0:ve.docs,source:{originalSource:`{
|
|
219
|
+
args: {
|
|
220
|
+
events: []
|
|
221
|
+
},
|
|
222
|
+
render: () => {
|
|
223
|
+
const habitEvents: CalendarEvent[] = [];
|
|
224
|
+
const today = new Date();
|
|
225
|
+
const habits = ['Exercise', 'Meditation', 'Reading', 'Water', 'Sleep'];
|
|
226
|
+
const habitIcons = ['💪', '🧘', '📚', '💧', '😴'];
|
|
227
|
+
for (let i = -7; i <= 7; i++) {
|
|
228
|
+
const date = new Date(today);
|
|
229
|
+
date.setDate(today.getDate() + i);
|
|
230
|
+
habits.forEach((habit, index) => {
|
|
231
|
+
if (Math.random() > 0.3) {
|
|
232
|
+
// 70% completion rate
|
|
233
|
+
habitEvents.push({
|
|
234
|
+
id: \`habit-\${i}-\${index}\`,
|
|
235
|
+
title: habit,
|
|
236
|
+
date: new Date(date),
|
|
237
|
+
type: 'habit',
|
|
238
|
+
status: Math.random() > 0.1 ? 'completed' : 'pending',
|
|
239
|
+
color: \`hsl(\${index * 70}, 70%, 50%)\`,
|
|
240
|
+
metadata: {
|
|
241
|
+
icon: habitIcons[index]
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
return <div>
|
|
248
|
+
<h3 style={{
|
|
249
|
+
marginBottom: 'var(--spacing-md)',
|
|
250
|
+
color: 'var(--color-text)'
|
|
251
|
+
}}>
|
|
252
|
+
🎯 Habit Tracking Use Case
|
|
253
|
+
</h3>
|
|
254
|
+
<Calendar events={habitEvents} config={{
|
|
255
|
+
iconRenderer: event => <span style={{
|
|
256
|
+
fontSize: '10px'
|
|
257
|
+
}}>{event.metadata?.icon as string || '✓'}</span>,
|
|
258
|
+
maxEventsPerDay: 8,
|
|
259
|
+
mondayStart: true
|
|
260
|
+
}} viewMode="month" />
|
|
261
|
+
</div>;
|
|
262
|
+
}
|
|
263
|
+
}`,...(he=(ye=H.parameters)==null?void 0:ye.docs)==null?void 0:he.source}}};var we,De,fe;I.parameters={...I.parameters,docs:{...(we=I.parameters)==null?void 0:we.docs,source:{originalSource:`{
|
|
264
|
+
args: {
|
|
265
|
+
events: []
|
|
266
|
+
},
|
|
267
|
+
render: () => {
|
|
268
|
+
const today = new Date();
|
|
269
|
+
const scheduleEvents: CalendarEvent[] = [
|
|
270
|
+
// Monday
|
|
271
|
+
{
|
|
272
|
+
id: 'schedule-1',
|
|
273
|
+
title: 'Team Standup and a very long text for a task that never ends',
|
|
274
|
+
date: new Date(today.getTime() - (today.getDay() - 1) * 24 * 60 * 60 * 1000),
|
|
275
|
+
time: '09:00',
|
|
276
|
+
type: 'meeting',
|
|
277
|
+
status: 'pending',
|
|
278
|
+
priority: 'medium'
|
|
279
|
+
}, {
|
|
280
|
+
id: 'schedule-2',
|
|
281
|
+
title: 'Code Review',
|
|
282
|
+
date: new Date(today.getTime() - (today.getDay() - 1) * 24 * 60 * 60 * 1000),
|
|
283
|
+
time: '11:30',
|
|
284
|
+
type: 'review',
|
|
285
|
+
status: 'completed',
|
|
286
|
+
priority: 'high'
|
|
287
|
+
},
|
|
288
|
+
// Tuesday
|
|
289
|
+
{
|
|
290
|
+
id: 'schedule-3',
|
|
291
|
+
title: 'Client Call',
|
|
292
|
+
date: new Date(today.getTime() - (today.getDay() - 2) * 24 * 60 * 60 * 1000),
|
|
293
|
+
time: '10:00',
|
|
294
|
+
type: 'call',
|
|
295
|
+
status: 'pending',
|
|
296
|
+
priority: 'high'
|
|
297
|
+
}, {
|
|
298
|
+
id: 'schedule-4',
|
|
299
|
+
title: 'Sprint Planning',
|
|
300
|
+
date: new Date(today.getTime() - (today.getDay() - 2) * 24 * 60 * 60 * 1000),
|
|
301
|
+
time: '14:00',
|
|
302
|
+
type: 'meeting',
|
|
303
|
+
status: 'pending',
|
|
304
|
+
priority: 'high'
|
|
305
|
+
},
|
|
306
|
+
// Friday
|
|
307
|
+
{
|
|
308
|
+
id: 'schedule-5',
|
|
309
|
+
title: 'Demo Day',
|
|
310
|
+
date: new Date(today.getTime() - (today.getDay() - 5) * 24 * 60 * 60 * 1000),
|
|
311
|
+
time: '13:00',
|
|
312
|
+
type: 'presentation',
|
|
313
|
+
status: 'pending',
|
|
314
|
+
priority: 'high'
|
|
315
|
+
}];
|
|
316
|
+
return <div>
|
|
317
|
+
<h3 style={{
|
|
318
|
+
marginBottom: 'var(--spacing-md)',
|
|
319
|
+
color: 'var(--color-text)'
|
|
320
|
+
}}>
|
|
321
|
+
📅 Event Scheduling (Week View)
|
|
322
|
+
</h3>
|
|
323
|
+
<Calendar events={scheduleEvents} config={{
|
|
324
|
+
eventColors: {
|
|
325
|
+
meeting: '#4A90E2',
|
|
326
|
+
call: '#7ED321',
|
|
327
|
+
review: '#BD10E0',
|
|
328
|
+
presentation: '#FF6B6B'
|
|
329
|
+
},
|
|
330
|
+
iconRenderer: event => {
|
|
331
|
+
const icons = {
|
|
332
|
+
meeting: '👥',
|
|
333
|
+
call: '📞',
|
|
334
|
+
review: '👀',
|
|
335
|
+
presentation: '🎯'
|
|
336
|
+
};
|
|
337
|
+
return <span style={{
|
|
338
|
+
fontSize: '12px'
|
|
339
|
+
}}>{icons[event.type as keyof typeof icons] || '📅'}</span>;
|
|
340
|
+
},
|
|
341
|
+
maxEventsPerDay: 6,
|
|
342
|
+
mondayStart: true
|
|
343
|
+
}} viewMode="week" />
|
|
344
|
+
</div>;
|
|
345
|
+
}
|
|
346
|
+
}`,...(fe=(De=I.parameters)==null?void 0:De.docs)==null?void 0:fe.source}}};var xe,Ce,ke;P.parameters={...P.parameters,docs:{...(xe=P.parameters)==null?void 0:xe.docs,source:{originalSource:`{
|
|
347
|
+
args: {
|
|
348
|
+
events: []
|
|
349
|
+
},
|
|
350
|
+
render: () => {
|
|
351
|
+
const customEvents: CalendarEvent[] = [{
|
|
352
|
+
id: 'custom-1',
|
|
353
|
+
title: 'VIP Client Meeting',
|
|
354
|
+
date: new Date(),
|
|
355
|
+
time: '10:00',
|
|
356
|
+
type: 'vip',
|
|
357
|
+
status: 'pending',
|
|
358
|
+
priority: 'high'
|
|
359
|
+
}, {
|
|
360
|
+
id: 'custom-2',
|
|
361
|
+
title: 'Design Sprint',
|
|
362
|
+
date: new Date(Date.now() + 24 * 60 * 60 * 1000),
|
|
363
|
+
type: 'workshop',
|
|
364
|
+
status: 'pending',
|
|
365
|
+
priority: 'medium'
|
|
366
|
+
}, {
|
|
367
|
+
id: 'custom-3',
|
|
368
|
+
title: 'Project Milestone ✓',
|
|
369
|
+
date: new Date(Date.now() - 24 * 60 * 60 * 1000),
|
|
370
|
+
type: 'milestone',
|
|
371
|
+
status: 'completed',
|
|
372
|
+
priority: 'high'
|
|
373
|
+
}];
|
|
374
|
+
return <div>
|
|
375
|
+
<h3 style={{
|
|
376
|
+
marginBottom: 'var(--spacing-md)',
|
|
377
|
+
color: 'var(--color-text)'
|
|
378
|
+
}}>
|
|
379
|
+
🎨 Custom Colors, Icons & Configuration
|
|
380
|
+
</h3>
|
|
381
|
+
<Calendar events={customEvents} config={{
|
|
382
|
+
eventColors: {
|
|
383
|
+
vip: '#FF6B6B',
|
|
384
|
+
workshop: '#4ECDC4',
|
|
385
|
+
milestone: '#F39C12'
|
|
386
|
+
},
|
|
387
|
+
iconRenderer: event => {
|
|
388
|
+
if (event.type === 'vip') return <span style={{
|
|
389
|
+
fontSize: '12px'
|
|
390
|
+
}}>⭐</span>;
|
|
391
|
+
if (event.type === 'workshop') return <span style={{
|
|
392
|
+
fontSize: '12px'
|
|
393
|
+
}}>🎨</span>;
|
|
394
|
+
if (event.type === 'milestone') return <span style={{
|
|
395
|
+
fontSize: '12px'
|
|
396
|
+
}}>🎯</span>;
|
|
397
|
+
return <span style={{
|
|
398
|
+
fontSize: '12px'
|
|
399
|
+
}}>📅</span>;
|
|
400
|
+
},
|
|
401
|
+
maxEventsPerDay: 6,
|
|
402
|
+
mondayStart: true,
|
|
403
|
+
showWeekNumbers: true,
|
|
404
|
+
locale: 'en-US'
|
|
405
|
+
}} viewMode="month" />
|
|
406
|
+
</div>;
|
|
407
|
+
}
|
|
408
|
+
}`,...(ke=(Ce=P.parameters)==null?void 0:Ce.docs)==null?void 0:ke.source}}};var _e,be,je;F.parameters={...F.parameters,docs:{...(_e=F.parameters)==null?void 0:_e.docs,source:{originalSource:`{
|
|
409
|
+
args: {
|
|
410
|
+
events: []
|
|
411
|
+
},
|
|
412
|
+
render: () => {
|
|
413
|
+
const manyEvents: CalendarEvent[] = [];
|
|
414
|
+
const today = new Date();
|
|
415
|
+
|
|
416
|
+
// Generate multiple events for a single day
|
|
417
|
+
for (let i = 0; i < 6; i++) {
|
|
418
|
+
manyEvents.push({
|
|
419
|
+
id: \`many-\${i}\`,
|
|
420
|
+
title: \`Meeting \${i + 1}\`,
|
|
421
|
+
date: today,
|
|
422
|
+
time: \`\${9 + i}:00\`,
|
|
423
|
+
type: 'meeting',
|
|
424
|
+
status: 'pending',
|
|
425
|
+
priority: 'medium'
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
return <div style={{
|
|
429
|
+
display: 'grid',
|
|
430
|
+
gap: 'var(--spacing-xl)'
|
|
431
|
+
}}>
|
|
432
|
+
<div>
|
|
433
|
+
<h4 style={{
|
|
434
|
+
margin: '0 0 var(--spacing-md) 0',
|
|
435
|
+
color: 'var(--color-text)'
|
|
436
|
+
}}>
|
|
437
|
+
📊 Many Events (shows "more" indicator)
|
|
438
|
+
</h4>
|
|
439
|
+
<Calendar events={manyEvents} config={{
|
|
440
|
+
maxEventsPerDay: 3
|
|
441
|
+
}} viewMode="month" />
|
|
442
|
+
</div>
|
|
443
|
+
|
|
444
|
+
<div>
|
|
445
|
+
<h4 style={{
|
|
446
|
+
margin: '0 0 var(--spacing-md) 0',
|
|
447
|
+
color: 'var(--color-text)'
|
|
448
|
+
}}>
|
|
449
|
+
💨 Loading State
|
|
450
|
+
</h4>
|
|
451
|
+
<Calendar events={[]} loading={true} />
|
|
452
|
+
</div>
|
|
453
|
+
|
|
454
|
+
<div>
|
|
455
|
+
<h4 style={{
|
|
456
|
+
margin: '0 0 var(--spacing-md) 0',
|
|
457
|
+
color: 'var(--color-text)'
|
|
458
|
+
}}>
|
|
459
|
+
📭 Empty State
|
|
460
|
+
</h4>
|
|
461
|
+
<Calendar events={[]} emptyState={<span style={{
|
|
462
|
+
color: 'var(--color-text-tertiary)',
|
|
463
|
+
fontSize: '11px'
|
|
464
|
+
}}>
|
|
465
|
+
No events
|
|
466
|
+
</span>} />
|
|
467
|
+
</div>
|
|
468
|
+
</div>;
|
|
469
|
+
}
|
|
470
|
+
}`,...(je=(be=F.parameters)==null?void 0:be.docs)==null?void 0:je.source}}};const Wt=["MonthView","WeekView","DayView","ClickInteractions","HabitTracker","EventScheduler","CustomConfiguration","ComponentStates"];export{R as ClickInteractions,F as ComponentStates,P as CustomConfiguration,V as DayView,I as EventScheduler,H as HabitTracker,B as MonthView,L as WeekView,Wt as __namedExportsOrder,qt as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as I,j as e}from"./iframe-
|
|
1
|
+
import{r as I,j as e}from"./iframe-LZvJb0BS.js";import{A as M}from"./index-vc18hLoj.js";import{m as _}from"./proxy-94dt0K2Y.js";const B="_card_k0xft_1",V="_hoverable_k0xft_50",A="_elevated_k0xft_65",L="_outlined_k0xft_78",S="_flat_k0xft_111",E="_glass_k0xft_156",W="_imageContainer_k0xft_187",F="_image_k0xft_187",H="_header_k0xft_233",R="_headerContent_k0xft_248",O="_expandButton_k0xft_254",D="_expandIcon_k0xft_285",J="_expandableContent_k0xft_289",U="_expandable_k0xft_289",X="_body_k0xft_313",z="_footer_k0xft_319",G="_title_k0xft_350",K="_subtitle_k0xft_366",Q="_clickable_k0xft_380",Y="_padding_k0xft_394",Z="_noPadding_k0xft_398",$="_loading_k0xft_403",ee="_loadingShimmer_k0xft_1",ae="_loadingPulse_k0xft_1",a={card:B,hoverable:V,elevated:A,outlined:L,flat:S,glass:E,imageContainer:W,image:F,header:H,headerContent:R,expandButton:O,expandIcon:D,expandableContent:J,expandable:U,body:X,footer:z,title:G,subtitle:K,clickable:Q,padding:Y,noPadding:Z,loading:$,loadingShimmer:ee,loadingPulse:ae},te=({variant:g="elevated",hoverable:d=!1,clickable:l=!1,padding:c=!0,image:p,imageAlt:v="",title:o,subtitle:s,header:u,footer:m,children:f,expandable:t=!1,defaultExpanded:C=!1,expanded:i,onExpandChange:r,className:b="",onClick:k,motionProps:y,...j})=>{const[T,N]=I.useState(C),n=i!==void 0?i:T,h=()=>{const x=!n;i===void 0&&N(x),r==null||r(x)},q=[a.card,a[g],d&&a.hoverable,l&&a.clickable,!c&&a.noPadding,t&&a.expandable,b].filter(Boolean).join(" "),w=()=>u?e.jsxs("div",{className:a.header,children:[e.jsx("div",{className:a.headerContent,children:u}),t&&e.jsx("button",{className:a.expandButton,onClick:h,"aria-label":n?"Collapse card":"Expand card",children:e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a.expandIcon,style:{transform:n?"rotate(180deg)":"rotate(0deg)"},children:e.jsx("path",{d:"M6 9l6 6 6-6"})})})]}):o||s?e.jsxs("div",{className:a.header,children:[e.jsxs("div",{className:a.headerContent,children:[o&&e.jsx("h3",{className:a.title,children:o}),s&&e.jsx("p",{className:a.subtitle,children:s})]}),t&&e.jsx("button",{className:a.expandButton,onClick:h,"aria-label":n?"Collapse card":"Expand card",children:e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a.expandIcon,style:{transform:n?"rotate(180deg)":"rotate(0deg)"},children:e.jsx("path",{d:"M6 9l6 6 6-6"})})})]}):null,P=e.jsxs(e.Fragment,{children:[p&&e.jsx("div",{className:a.imageContainer,children:e.jsx("img",{src:p,alt:v,className:a.image})}),w(),e.jsx(M,{initial:!1,children:(!t||n)&&e.jsxs(_.div,{initial:t?{height:0,opacity:0}:void 0,animate:t?{height:"auto",opacity:1}:void 0,exit:t?{height:0,opacity:0}:void 0,transition:{duration:.3,ease:"easeInOut"},className:a.expandableContent,children:[f&&e.jsx("div",{className:c?a.body:void 0,children:f}),m&&e.jsx("div",{className:a.footer,children:m})]},"content")})]});return e.jsx(_.div,{className:q,onClick:l?k:void 0,whileHover:d?{y:-4}:void 0,transition:{type:"spring",stiffness:400,damping:17},...y,...j,children:P})};te.__docgenInfo={description:`Card Component
|
|
2
2
|
|
|
3
3
|
@component
|
|
4
4
|
@description
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e,r as T}from"./iframe-
|
|
1
|
+
import{j as e,r as T}from"./iframe-LZvJb0BS.js";import{C as a}from"./Card--7bShmQv.js";import{B as t}from"./Button-DK4vPDdE.js";import"./preload-helper-C1FmrZbK.js";import"./index-vc18hLoj.js";import"./proxy-94dt0K2Y.js";import"./MotionConfigContext-D_4LMwJ5.js";import"./useSound-Dc8S51xy.js";const D={title:"Atoms/Card",component:a,parameters:{layout:"centered",docs:{description:{component:"A flexible container component with various styling options and animation support."}}},tags:["autodocs"],argTypes:{variant:{control:"select",options:["elevated","outlined","flat","glass"],description:"Visual style variant of the card"},padding:{control:"boolean"},hoverable:{control:"boolean"},clickable:{control:"boolean"},expandable:{control:"boolean"},defaultExpanded:{control:"boolean"},title:{control:"text"},subtitle:{control:"text"},onClick:{action:"clicked"},onExpandChange:{action:"expand-changed"}}},r={args:{title:"Card Title",subtitle:"Optional subtitle",hoverable:!0,children:e.jsx("p",{children:"Card content goes here. Use controls to switch between elevated, outlined, flat, and glass variants."})}},n={args:{variant:"elevated",hoverable:!0,image:"https://via.placeholder.com/350x200",imageAlt:"Feature image",children:e.jsxs("div",{style:{maxWidth:"350px"},children:[e.jsx("h2",{style:{marginBottom:"0.5rem"},children:"Feature Card"}),e.jsx("p",{style:{marginBottom:"1rem",color:"#666"},children:"Image, title, description, and action buttons composed together."}),e.jsxs("div",{style:{display:"flex",gap:"0.5rem"},children:[e.jsx(t,{variant:"primary",size:"small",children:"Learn More"}),e.jsx(t,{variant:"outline",size:"small",children:"Share"})]})]})}},l={render:()=>e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"1rem",maxWidth:"800px"},children:[e.jsxs(a,{variant:"elevated",hoverable:!0,children:[e.jsx("h4",{children:"Elevated"}),e.jsx("p",{children:"With shadow"})]}),e.jsxs(a,{variant:"outlined",hoverable:!0,children:[e.jsx("h4",{children:"Outlined"}),e.jsx("p",{children:"With border"})]}),e.jsxs(a,{variant:"glass",hoverable:!0,children:[e.jsx("h4",{children:"Glass"}),e.jsx("p",{children:"Glassmorphism"})]})]}),parameters:{controls:{disable:!0},layout:"padded"}},s={args:{title:"Expandable Card",subtitle:"Click the arrow to expand",expandable:!0,variant:"outlined",children:e.jsxs("div",{children:[e.jsx("p",{children:"This content is collapsible. Useful for FAQ sections, settings panels, or progressive disclosure."}),e.jsxs("div",{style:{display:"flex",gap:"0.5rem",marginTop:"1rem"},children:[e.jsx(t,{variant:"primary",size:"small",children:"Action"}),e.jsx(t,{variant:"outline",size:"small",children:"Secondary"})]})]})}},i={render:()=>{const[d,p]=T.useState(!1);return e.jsxs("div",{style:{width:"400px"},children:[e.jsxs(a,{title:"Controlled Expandable",subtitle:"State managed externally",expandable:!0,expanded:d,onExpandChange:p,variant:"glass",hoverable:!0,children:[e.jsx("p",{children:"Expanded state is controlled via props."}),e.jsxs("p",{children:["Current: ",e.jsx("strong",{children:d?"Expanded":"Collapsed"})]})]}),e.jsx("div",{style:{marginTop:"1rem",textAlign:"center"},children:e.jsx(t,{variant:"primary",onClick:()=>p(!d),children:"External Toggle"})})]})},parameters:{controls:{disable:!0}}},o={render:()=>e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"1rem",maxWidth:"600px"},children:[e.jsx(a,{title:"Getting Started",expandable:!0,variant:"outlined",children:e.jsx("p",{children:"Create an account and follow the onboarding tutorial to get started."})}),e.jsx(a,{title:"Account Management",expandable:!0,variant:"outlined",children:e.jsx("p",{children:"Manage settings from the profile page: personal info, password, notifications."})}),e.jsx(a,{title:"Billing & Payments",expandable:!0,defaultExpanded:!0,variant:"outlined",children:e.jsx("p",{children:"We accept all major credit cards and PayPal. Billing is monthly or annual."})})]}),parameters:{controls:{disable:!0},layout:"padded"}};var c,m,u;r.parameters={...r.parameters,docs:{...(c=r.parameters)==null?void 0:c.docs,source:{originalSource:`{
|
|
2
2
|
args: {
|
|
3
3
|
title: 'Card Title',
|
|
4
4
|
subtitle: 'Optional subtitle',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as o,j as r}from"./iframe-
|
|
1
|
+
import{r as o,j as r}from"./iframe-LZvJb0BS.js";import{g as u}from"./index-C8pce-KX.js";import{G as M}from"./iconBase-D_x0Veg_.js";import"./preload-helper-C1FmrZbK.js";function U(f){return M({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M18.25 15.5a.75.75 0 0 1-.75-.75V7.56L7.28 17.78a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L16.44 6.5H9.25a.75.75 0 0 1 0-1.5h9a.75.75 0 0 1 .75.75v9a.75.75 0 0 1-.75.75Z"},child:[]}]})(f)}const G="_open_87iwp_63",O="_logo_87iwp_71",n={"card-nav-container":"_card-nav-container_87iwp_1","card-nav":"_card-nav_87iwp_1","card-nav-top":"_card-nav-top_87iwp_25","hamburger-menu":"_hamburger-menu_87iwp_38","hamburger-line":"_hamburger-line_87iwp_48",open:G,"logo-container":"_logo-container_87iwp_71",logo:O,"card-nav-cta-button":"_card-nav-cta-button_87iwp_84","card-nav-content":"_card-nav-content_87iwp_101","nav-card":"_nav-card_87iwp_121","nav-card-label":"_nav-card-label_87iwp_134","nav-card-links":"_nav-card-links_87iwp_140","nav-card-link":"_nav-card-link_87iwp_140"},L=({logo:f,logoAlt:$="Logo",items:m,className:N="",ease:b="power3.out",baseColor:k="#fff",menuColor:R,buttonBgColor:j,buttonTextColor:E})=>{const[A,g]=o.useState(!1),[s,_]=o.useState(!1),c=o.useRef(null),p=o.useRef([]),l=o.useRef(null),C=()=>{const e=c.current;if(!e)return 260;if(window.matchMedia("(max-width: 768px)").matches){const a=e.querySelector(".card-nav-content");if(a){const i=a.style.visibility,v=a.style.pointerEvents,S=a.style.position,T=a.style.height;a.style.visibility="visible",a.style.pointerEvents="auto",a.style.position="static",a.style.height="auto",a.offsetHeight;const V=60,q=16,I=a.scrollHeight;return a.style.visibility=i,a.style.pointerEvents=v,a.style.position=S,a.style.height=T,V+I+q}}return 260},h=()=>{const e=c.current;if(!e)return null;u.set(e,{height:60,overflow:"hidden"}),u.set(p.current,{y:50,opacity:0});const t=u.timeline({paused:!0});return t.to(e,{height:C,duration:.4,ease:b}),t.to(p.current,{y:0,opacity:1,duration:.4,ease:b,stagger:.08},"-=0.1"),t};o.useLayoutEffect(()=>{const e=h();return l.current=e,()=>{e==null||e.kill(),l.current=null}},[b,m]),o.useLayoutEffect(()=>{const e=()=>{if(l.current)if(s){const t=C();u.set(c.current,{height:t}),l.current.kill();const a=h();a&&(a.progress(1),l.current=a)}else{l.current.kill();const t=h();t&&(l.current=t)}};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[s]);const D=()=>{const e=l.current;e&&(s?(g(!1),e.eventCallback("onReverseComplete",()=>_(!1)),e.reverse()):(g(!0),_(!0),e.play(0)))},H=e=>t=>{t&&(p.current[e]=t)};return r.jsx("div",{className:`${n["card-nav-container"]} ${N}`,children:r.jsxs("nav",{ref:c,className:`${n["card-nav"]} ${s?n.open:""}`,style:{backgroundColor:k},children:[r.jsxs("div",{className:`${n["card-nav-top"]}`,children:[r.jsxs("div",{className:`${n["hamburger-menu"]} ${A?n.open:""}`,onClick:D,role:"button","aria-label":s?"Close menu":"Open menu",tabIndex:0,style:{color:R||"#000"},children:[r.jsx("div",{className:`${n["hamburger-line"]}`}),r.jsx("div",{className:`${n["hamburger-line"]}`})]}),r.jsx("div",{className:`${n["logo-container"]}`,children:r.jsx("img",{src:f,alt:$,className:`${n.logo}`})}),r.jsx("button",{type:"button",className:`${n["card-nav-cta-button"]}`,style:{backgroundColor:j,color:E},children:"Get Started"})]}),r.jsx("div",{className:`${n["card-nav-content"]}`,"aria-hidden":!s,children:(m||[]).slice(0,3).map((e,t)=>{var a;return r.jsxs("div",{className:`${n["nav-card"]}`,ref:H(t),style:{backgroundColor:e.bgColor,color:e.textColor},children:[r.jsx("div",{className:`${n["nav-card-label"]}`,children:e.label}),r.jsx("div",{className:`${n["nav-card-links"]}`,children:(a=e.links)==null?void 0:a.map((i,v)=>r.jsxs("a",{className:`${n["nav-card-link"]}`,href:i.href,"aria-label":i.ariaLabel,children:[r.jsx(U,{className:"nav-card-link-icon","aria-hidden":"true"}),i.label]},`${i.label}-${v}`))})]},`${e.label}-${t}`)})})]})})};L.__docgenInfo={description:"",methods:[],displayName:"CardNav",props:{logoAlt:{defaultValue:{value:"'Logo'",computed:!1},required:!1},className:{defaultValue:{value:"''",computed:!1},required:!1},ease:{defaultValue:{value:"'power3.out'",computed:!1},required:!1},baseColor:{defaultValue:{value:"'#fff'",computed:!1},required:!1}}};const Z={title:"ReactBits/Components/CardNav",component:L,parameters:{layout:"fullscreen"},tags:["autodocs"]},d={args:{logoAlt:"Logo",items:[{label:"Products",bgColor:"#1a1a2e",textColor:"#fff",links:[{label:"Analytics",href:"#",ariaLabel:"Analytics"},{label:"Dashboard",href:"#",ariaLabel:"Dashboard"},{label:"Reports",href:"#",ariaLabel:"Reports"}]},{label:"Resources",bgColor:"#16213e",textColor:"#fff",links:[{label:"Documentation",href:"#",ariaLabel:"Documentation"},{label:"Tutorials",href:"#",ariaLabel:"Tutorials"}]},{label:"Company",bgColor:"#0f3460",textColor:"#fff",links:[{label:"About Us",href:"#",ariaLabel:"About Us"},{label:"Careers",href:"#",ariaLabel:"Careers"},{label:"Contact",href:"#",ariaLabel:"Contact"}]}],ease:"power3.out",baseColor:"#fff"}};var y,w,x;d.parameters={...d.parameters,docs:{...(y=d.parameters)==null?void 0:y.docs,source:{originalSource:`{
|
|
2
2
|
args: {
|
|
3
3
|
logoAlt: 'Logo',
|
|
4
4
|
items: [{
|