@stfrigerio/sito-template 0.1.58 → 0.1.60
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/atoms/Button/Button.stories.d.ts +0 -1
- package/dist/components/atoms/Button/Button.stories.d.ts.map +1 -1
- package/dist/components/atoms/Card/Card.stories.d.ts +0 -1
- package/dist/components/atoms/Card/Card.stories.d.ts.map +1 -1
- package/dist/components/atoms/Checkbox/Checkbox.stories.d.ts +0 -7
- package/dist/components/atoms/Checkbox/Checkbox.stories.d.ts.map +1 -1
- package/dist/components/atoms/DateInput/DateInput.stories.d.ts +0 -7
- package/dist/components/atoms/DateInput/DateInput.stories.d.ts.map +1 -1
- package/dist/components/atoms/LoadingSpinner/LoadingSpinner.stories.d.ts +1 -15
- package/dist/components/atoms/LoadingSpinner/LoadingSpinner.stories.d.ts.map +1 -1
- package/dist/components/atoms/NumberStepper/NumberStepper.stories.d.ts +0 -16
- package/dist/components/atoms/NumberStepper/NumberStepper.stories.d.ts.map +1 -1
- package/dist/components/atoms/SearchableDropdown/SearchableDropdown.stories.d.ts +0 -9
- package/dist/components/atoms/SearchableDropdown/SearchableDropdown.stories.d.ts.map +1 -1
- package/dist/components/atoms/SelectInput/SelectInput.stories.d.ts +0 -6
- package/dist/components/atoms/SelectInput/SelectInput.stories.d.ts.map +1 -1
- package/dist/components/atoms/Slider/Slider.stories.d.ts.map +1 -1
- package/dist/components/atoms/TextArea/TextArea.stories.d.ts +0 -10
- package/dist/components/atoms/TextArea/TextArea.stories.d.ts.map +1 -1
- package/dist/components/atoms/TextInput/TextInput.stories.d.ts +0 -14
- package/dist/components/atoms/TextInput/TextInput.stories.d.ts.map +1 -1
- package/dist/components/atoms/Toggle/Toggle.stories.d.ts +0 -8
- package/dist/components/atoms/Toggle/Toggle.stories.d.ts.map +1 -1
- package/dist/components/atoms/ToggleButton/ToggleButton.stories.d.ts +0 -7
- package/dist/components/atoms/ToggleButton/ToggleButton.stories.d.ts.map +1 -1
- package/dist/components/molecules/ArrayInput/ArrayInput.stories.d.ts +0 -9
- package/dist/components/molecules/ArrayInput/ArrayInput.stories.d.ts.map +1 -1
- package/dist/components/molecules/EditFAB/EditFAB.stories.d.ts +1 -12
- package/dist/components/molecules/EditFAB/EditFAB.stories.d.ts.map +1 -1
- package/dist/components/molecules/SearchBar/SearchBar.stories.d.ts +0 -8
- package/dist/components/molecules/SearchBar/SearchBar.stories.d.ts.map +1 -1
- package/dist/components/molecules/Tabs/Tabs.stories.d.ts.map +1 -1
- package/dist/components/molecules/ThemeSwitcher/ThemeSwitcher.stories.d.ts +0 -3
- package/dist/components/molecules/ThemeSwitcher/ThemeSwitcher.stories.d.ts.map +1 -1
- package/dist/components/molecules/TimeInput/TimeInput.stories.d.ts +0 -6
- package/dist/components/molecules/TimeInput/TimeInput.stories.d.ts.map +1 -1
- package/dist/components/organisms/Calendar/Calendar.d.ts +5 -1
- package/dist/components/organisms/Calendar/Calendar.d.ts.map +1 -1
- package/dist/components/organisms/Calendar/Calendar.stories.d.ts +1 -1
- package/dist/components/organisms/Calendar/Calendar.stories.d.ts.map +1 -1
- package/dist/components/organisms/Calendar/DayEventCard.d.ts +1 -1
- package/dist/components/organisms/Calendar/DayEventCard.d.ts.map +1 -1
- package/dist/components/organisms/Calendar/exportEvents.d.ts +8 -0
- package/dist/components/organisms/Calendar/exportEvents.d.ts.map +1 -0
- package/dist/components/organisms/ImageSlideshow/ImageSlideshow.stories.d.ts +0 -23
- package/dist/components/organisms/ImageSlideshow/ImageSlideshow.stories.d.ts.map +1 -1
- package/dist/components/organisms/Navbar/Navbar.d.ts +1 -0
- package/dist/components/organisms/Navbar/Navbar.d.ts.map +1 -1
- package/dist/components/organisms/Navbar/Navbar.stories.d.ts +1 -7
- package/dist/components/organisms/Navbar/Navbar.stories.d.ts.map +1 -1
- package/dist/components/organisms/charts/BooleansHeatmap/BooleansHeatmap.stories.d.ts +1 -4
- package/dist/components/organisms/charts/BooleansHeatmap/BooleansHeatmap.stories.d.ts.map +1 -1
- package/dist/components/organisms/charts/PieChart/PieChart.stories.d.ts +1 -5
- package/dist/components/organisms/charts/PieChart/PieChart.stories.d.ts.map +1 -1
- package/dist/index.esm.js +233 -59
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +231 -57
- package/dist/index.js.map +1 -1
- package/dist/stories/utils.d.ts.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/themes/globals.css +2 -5
- package/package.json +1 -1
- package/storybook-static/assets/{ASCIIText.stories-LbmvFzzv.js → ASCIIText.stories-OSKwRAyY.js} +4 -4
- package/storybook-static/assets/{AllAtoms.stories-CLunFOjI.js → AllAtoms.stories-BMrwCHeq.js} +1 -1
- package/storybook-static/assets/{AnimatedContent.stories-B8hBaVkK.js → AnimatedContent.stories-Bxf47ut1.js} +1 -1
- package/storybook-static/assets/{AnimatedList.stories-D8a9eYqH.js → AnimatedList.stories-B1E8UqMr.js} +2 -2
- package/storybook-static/assets/{Antigravity.stories-D_mJbWK0.js → Antigravity.stories-I5mdFgmP.js} +1 -1
- package/storybook-static/assets/ArrayInput.stories-DxmE1Rmk.js +138 -0
- package/storybook-static/assets/{Aurora.stories-BN4MataE.js → Aurora.stories-DTyse-oN.js} +2 -2
- package/storybook-static/assets/{Beams.stories-CCtZOw8G.js → Beams.stories-BTOldQ0-.js} +6 -6
- package/storybook-static/assets/{BlobCursor.stories-CdB55R5G.js → BlobCursor.stories-C_EhL1Sb.js} +1 -1
- package/storybook-static/assets/{BlurText.stories-Bg2Ih2Je.js → BlurText.stories-DBE9duA2.js} +2 -2
- package/storybook-static/assets/BooleansHeatmap-C8cFXa7K.css +1 -0
- package/storybook-static/assets/BooleansHeatmap.stories-BK-0k1Yf.js +63 -0
- package/storybook-static/assets/{BorderGlow.stories-CUxbrsvW.js → BorderGlow.stories-DUaNIh97.js} +1 -1
- package/storybook-static/assets/{BubbleMenu.stories-DuVDLBsV.js → BubbleMenu.stories-DUkNhCYN.js} +1 -1
- package/storybook-static/assets/{Button-CQGdvhpN.js → Button-CmL8YExH.js} +1 -1
- package/storybook-static/assets/{Button.stories-D8Xx3I9p.js → Button.stories-Qe92VaQO.js} +2 -2
- package/storybook-static/assets/Calendar-CXrUBxYt.css +1 -0
- package/storybook-static/assets/Calendar.stories-DvRq1jLb.js +352 -0
- package/storybook-static/assets/{Card-DNp-cUnt.js → Card-BNN9rA1_.js} +1 -1
- package/storybook-static/assets/{Card.stories-D1f1NTVU.js → Card.stories-DJtwbzzK.js} +1 -1
- package/storybook-static/assets/{CardNav.stories-Cd4zEw8p.js → CardNav.stories-D3WJ4l1d.js} +1 -1
- package/storybook-static/assets/{Carousel.stories-BxbGwXE5.js → Carousel.stories-Cl5XZxQx.js} +2 -2
- package/storybook-static/assets/{Checkbox-Dw8W2w74.js → Checkbox-NV1yLfww.js} +1 -1
- package/storybook-static/assets/Checkbox.stories-DEt8_02c.js +55 -0
- package/storybook-static/assets/{ChromaGrid.stories-DBHYiDPV.js → ChromaGrid.stories-BPq9jzOX.js} +1 -1
- package/storybook-static/assets/{CircularGallery.stories-TJN6o_RG.js → CircularGallery.stories-BKkHClqR.js} +2 -2
- package/storybook-static/assets/{CircularText.stories-rNjRUNn2.js → CircularText.stories-DL97L-4c.js} +1 -1
- package/storybook-static/assets/{ClickSpark.stories-BfqByoGe.js → ClickSpark.stories-CePCUrfJ.js} +1 -1
- package/storybook-static/assets/{ColorBends.stories-IEMOWAyf.js → ColorBends.stories-qHNzC_b-.js} +2 -2
- package/storybook-static/assets/{CountUp.stories-DXPrKAQb.js → CountUp.stories-DN2cFFy0.js} +1 -1
- package/storybook-static/assets/{Counter.stories-DMdecsw_.js → Counter.stories-U-VxTg4K.js} +2 -2
- package/storybook-static/assets/{Crosshair.stories-CYzDxRSn.js → Crosshair.stories-DZ3e7z4E.js} +2 -2
- package/storybook-static/assets/{Cubes.stories-Drq4ULo3.js → Cubes.stories-zndGensK.js} +1 -1
- package/storybook-static/assets/{CurvedLoop.stories-C9GMKnIw.js → CurvedLoop.stories-CPwaetTg.js} +1 -1
- package/storybook-static/assets/{DarkVeil.stories-BtLNfEH8.js → DarkVeil.stories-7UE8YAds.js} +2 -2
- package/storybook-static/assets/{DateInput-CW4PsZAQ.js → DateInput-C7UYtU2f.js} +2 -2
- package/storybook-static/assets/DateInput-Dhcb9x13.css +1 -0
- package/storybook-static/assets/DateInput.stories-Blprxd6L.js +51 -0
- package/storybook-static/assets/{DecayCard.stories-CAU_wTc7.js → DecayCard.stories-CyDj4Rzg.js} +1 -1
- package/storybook-static/assets/{DecryptedText.stories-Dvba9C1V.js → DecryptedText.stories-CcmNeei7.js} +1 -1
- package/storybook-static/assets/{Dither.stories-B5KfMprl.js → Dither.stories-Cx3gQA5F.js} +2 -2
- package/storybook-static/assets/{Dock.stories-oyQGRzlM.js → Dock.stories-BnetMt5P.js} +1 -1
- package/storybook-static/assets/EditFAB.stories-BM8RRvq2.js +233 -0
- package/storybook-static/assets/{EvilEye.stories-C1820-DG.js → EvilEye.stories-CU9FGY5P.js} +2 -2
- package/storybook-static/assets/{FadeContent.stories-B4z_JRy9.js → FadeContent.stories-BaWDFQed.js} +1 -1
- package/storybook-static/assets/{FaultyTerminal.stories-DmkguJql.js → FaultyTerminal.stories-D1AZCPEZ.js} +2 -2
- package/storybook-static/assets/{Fbo-CTQm-4Bw.js → Fbo-BM-i3UPR.js} +1 -1
- package/storybook-static/assets/{FloatingLines.stories-CQvqKSpH.js → FloatingLines.stories-fehYMPcZ.js} +2 -2
- package/storybook-static/assets/{FlowingMenu.stories-DmOspv0B.js → FlowingMenu.stories-DRGoAotO.js} +1 -1
- package/storybook-static/assets/{FluidGlass.stories-CZSqxrNt.js → FluidGlass.stories-DgAiwR5f.js} +2 -2
- package/storybook-static/assets/{Folder.stories-7vb52Lfi.js → Folder.stories-Bys9N63w.js} +1 -1
- package/storybook-static/assets/{FuzzyText.stories-BdXN4VK1.js → FuzzyText.stories-D-74llkc.js} +1 -1
- package/storybook-static/assets/{Galaxy.stories-BhT1GZh5.js → Galaxy.stories-VD6ETxyT.js} +2 -2
- package/storybook-static/assets/{GhostCursor.stories-DkXqCjE9.js → GhostCursor.stories-DjMEnN7i.js} +2 -2
- package/storybook-static/assets/{GlareHover.stories-CznX3yTV.js → GlareHover.stories-6KgkPV6C.js} +1 -1
- package/storybook-static/assets/{GlassSurface.stories-BnwwYK95.js → GlassSurface.stories-Dj1kCNDg.js} +2 -2
- package/storybook-static/assets/{GlitchText.stories-CVcTBUVS.js → GlitchText.stories-DcGDGtvN.js} +2 -2
- package/storybook-static/assets/{GooeyNav.stories-C0abTHBc.js → GooeyNav.stories-yae-ax1k.js} +1 -1
- package/storybook-static/assets/{GradientBlinds.stories-CpSguKtv.js → GradientBlinds.stories-B7h647VQ.js} +2 -2
- package/storybook-static/assets/{GradientText.stories-B4hMx13h.js → GradientText.stories-BPUXNES_.js} +1 -1
- package/storybook-static/assets/{Grainient.stories-5EakpvU2.js → Grainient.stories-BjFhc8gt.js} +2 -2
- package/storybook-static/assets/{GridMotion.stories-Bm3DD7cb.js → GridMotion.stories-Bm8YB3Nc.js} +1 -1
- package/storybook-static/assets/ImageSlideshow.stories-BT5Pfqt3.js +103 -0
- package/storybook-static/assets/{Iridescence.stories-Cykk3hHZ.js → Iridescence.stories-DysieilC.js} +2 -2
- package/storybook-static/assets/{LaserFlow.stories-CfiM4ZZ5.js → LaserFlow.stories-BJMXiU6b.js} +2 -2
- package/storybook-static/assets/{LetterGlitch.stories-BXb7iSeX.js → LetterGlitch.stories-Qpkbs2x5.js} +1 -1
- package/storybook-static/assets/{LightPillar.stories-CwI-8_BF.js → LightPillar.stories-D7r7SjN3.js} +3 -3
- package/storybook-static/assets/{LightRays.stories-BIIfv6Ky.js → LightRays.stories-CSmrA40u.js} +2 -2
- package/storybook-static/assets/{Lightning.stories-B8GNkzSN.js → Lightning.stories-0zr6qZVm.js} +2 -2
- package/storybook-static/assets/{LineWaves.stories-CjxdD_yt.js → LineWaves.stories-KgMfrrqs.js} +2 -2
- package/storybook-static/assets/{LiquidChrome.stories-G7bVFJM9.js → LiquidChrome.stories-B8ZLHoH1.js} +2 -2
- package/storybook-static/assets/{LiquidEther.stories-C8n27zuA.js → LiquidEther.stories-C4k9P7aN.js} +2 -2
- package/storybook-static/assets/{LoadingSpinner-Br8TYFlF.js → LoadingSpinner-Cy3HB7-7.js} +1 -1
- package/storybook-static/assets/LoadingSpinner.stories-DDNFJhwe.js +21 -0
- package/storybook-static/assets/{MagicRings.stories-D50m_2UF.js → MagicRings.stories-UqocGxaQ.js} +2 -2
- package/storybook-static/assets/{Magnet.stories-BP9fjpzP.js → Magnet.stories-BxvO0Fqj.js} +1 -1
- package/storybook-static/assets/{MagnetLines.stories-DvbytV0Y.js → MagnetLines.stories-BMqOFHvT.js} +1 -1
- package/storybook-static/assets/{Masonry.stories-xXYQw2uD.js → Masonry.stories-CLwqpLTU.js} +1 -1
- package/storybook-static/assets/{MetaBalls.stories-DKD3gVUH.js → MetaBalls.stories-B_lPmlPu.js} +2 -2
- package/storybook-static/assets/{MetallicPaint.stories-Bz-uS-L_.js → MetallicPaint.stories-9AWQepP6.js} +2 -2
- package/storybook-static/assets/MoodChart-ba3aY_qF.css +1 -0
- package/storybook-static/assets/MoodChart.stories-B6LHsTmy.js +40 -0
- package/storybook-static/assets/{MotionConfigContext-D5hZdVGx.js → MotionConfigContext-CJ0kpWbz.js} +1 -1
- package/storybook-static/assets/Navbar-CH6O1IzY.css +1 -0
- package/storybook-static/assets/Navbar.stories-Cag40GVb.js +186 -0
- package/storybook-static/assets/{Noise.stories-D6C6-k8-.js → Noise.stories-BukT-fj1.js} +2 -2
- package/storybook-static/assets/{NumberStepper--0cJcLNZ.js → NumberStepper-Ut_VByYA.js} +1 -1
- package/storybook-static/assets/NumberStepper.stories-3y594BTK.js +88 -0
- package/storybook-static/assets/{Orb.stories-CS__2PJW.js → Orb.stories-B45u5gJo.js} +2 -2
- package/storybook-static/assets/{OrbitImages.stories-CcaelcY5.js → OrbitImages.stories-B_7X-GMA.js} +1 -1
- package/storybook-static/assets/PieChart-DXPBsaZR.css +1 -0
- package/storybook-static/assets/PieChart.stories-DLrtlyWH.js +91 -0
- package/storybook-static/assets/{PixelBlast.stories-CyK8BxPq.js → PixelBlast.stories-C4ZAaMH_.js} +2 -2
- package/storybook-static/assets/{PixelCard.stories-D_Og1Eve.js → PixelCard.stories-CaOGvNQ_.js} +1 -1
- package/storybook-static/assets/{PixelSnow.stories-CoCZucVV.js → PixelSnow.stories-CGmFGV3L.js} +2 -2
- package/storybook-static/assets/{PixelTransition.stories-DmVJ4jdu.js → PixelTransition.stories-DzTJZhF-.js} +1 -1
- package/storybook-static/assets/{Plasma.stories-DUqrW-qq.js → Plasma.stories-CoyLfj7o.js} +2 -2
- package/storybook-static/assets/{Prism.stories-DWdVDcBG.js → Prism.stories-D2E3ZI6g.js} +2 -2
- package/storybook-static/assets/{PrismaticBurst.stories-BEVYTjXo.js → PrismaticBurst.stories-B8PJhK5n.js} +2 -2
- package/storybook-static/assets/{ProfileCard.stories-CAoKQpAZ.js → ProfileCard.stories-CbRCcyd9.js} +1 -1
- package/storybook-static/assets/QuantifiableHabitsChart-BiMp7Kkq.css +1 -0
- package/storybook-static/assets/{QuantifiableHabitsChart.stories-CMexb5Ij.js → QuantifiableHabitsChart.stories-BCrpnpyh.js} +2 -2
- package/storybook-static/assets/{Radar.stories-Dcjnm9Bu.js → Radar.stories-B-Ki4OHb.js} +2 -2
- package/storybook-static/assets/{Ribbons.stories-Cs3Eg2Gz.js → Ribbons.stories-DMBczKgc.js} +4 -4
- package/storybook-static/assets/{RippleGrid.stories-QV9Doq9P.js → RippleGrid.stories-C8dKr2CX.js} +2 -2
- package/storybook-static/assets/{RotatingText.stories-DkntoAXJ.js → RotatingText.stories-DJu0v3mv.js} +2 -2
- package/storybook-static/assets/{ScrollFloat.stories-BaX43Ike.js → ScrollFloat.stories-B_edvvO1.js} +1 -1
- package/storybook-static/assets/{ScrollReveal.stories-C2IWpLpI.js → ScrollReveal.stories-DTYFesNE.js} +1 -1
- package/storybook-static/assets/{ScrollVelocity.stories-LaYJ5WQN.js → ScrollVelocity.stories-B2O7zZ2t.js} +1 -1
- package/storybook-static/assets/SearchBar.stories-CUEF7Ba4.js +64 -0
- package/storybook-static/assets/{SearchableDropdown-4HgWY0Ck.js → SearchableDropdown-C6KY2mIJ.js} +1 -1
- package/storybook-static/assets/SearchableDropdown.stories-DbSJdUAJ.js +44 -0
- package/storybook-static/assets/{SelectInput-DvSeeIw5.js → SelectInput-tDvouCuN.js} +1 -1
- package/storybook-static/assets/SelectInput.stories-C6apSsWx.js +94 -0
- package/storybook-static/assets/{ShapeBlur.stories-ZQV0yHkn.js → ShapeBlur.stories-DVQs_Ng0.js} +2 -2
- package/storybook-static/assets/{ShapeGrid.stories-G_tZAcp9.js → ShapeGrid.stories-BjibW7b1.js} +1 -1
- package/storybook-static/assets/{ShinyText.stories-C6BrLI0x.js → ShinyText.stories-DTezLW7e.js} +1 -1
- package/storybook-static/assets/{Silk.stories-BpsR4txJ.js → Silk.stories-fZbeNXOO.js} +2 -2
- package/storybook-static/assets/SleepChart-CjpdWR_T.css +1 -0
- package/storybook-static/assets/SleepChart.stories-nqH0hgCL.js +58 -0
- package/storybook-static/assets/Slider-BaDHm9m3.css +1 -0
- package/storybook-static/assets/{Slider-3iog5_du.js → Slider-DIeyN9Hx.js} +1 -1
- package/storybook-static/assets/{Slider.stories-C8eUZ7Ne.js → Slider.stories-BzcscFcU.js} +1 -1
- package/storybook-static/assets/{SoftAurora.stories--Rcyqxiu.js → SoftAurora.stories-Cvtf3TKB.js} +2 -2
- package/storybook-static/assets/{SoundDemo.stories-DvhKS2Fi.js → SoundDemo.stories-Dpq3K-yq.js} +1 -1
- package/storybook-static/assets/{SplashCursor.stories-FzRIUaX9.js → SplashCursor.stories-Y5zBSBCL.js} +2 -2
- package/storybook-static/assets/{SpotlightCard.stories-CifqsSUc.js → SpotlightCard.stories-B1KBEp6T.js} +1 -1
- package/storybook-static/assets/{Stack.stories-Dq82x0TG.js → Stack.stories-CA5YToyH.js} +1 -1
- package/storybook-static/assets/{StaggeredMenu.stories-CsiTDJGG.js → StaggeredMenu.stories-BvQIujuB.js} +1 -1
- package/storybook-static/assets/{StarBorder.stories-Ba14_TPk.js → StarBorder.stories-CHtwoVna.js} +2 -2
- package/storybook-static/assets/{SunburstChart.stories-fREzDXM9.js → SunburstChart.stories-Ch-ivaQT.js} +1 -1
- package/storybook-static/assets/Table-BFjXRRk3.css +1 -0
- package/storybook-static/assets/{Table.stories-CXsQAQrR.js → Table.stories-CvYZiI3H.js} +6 -6
- package/storybook-static/assets/Tabs-CDVjuS9_.css +1 -0
- package/storybook-static/assets/{Tabs.stories-HeiG8gYN.js → Tabs.stories-BN3Icfzj.js} +4 -4
- package/storybook-static/assets/{TargetCursor.stories-B16pWZaP.js → TargetCursor.stories-D1PTwE36.js} +1 -1
- package/storybook-static/assets/{TextArea-DKx3k6hV.js → TextArea-DKtwryA1.js} +1 -1
- package/storybook-static/assets/TextArea.stories-CxsYukYi.js +118 -0
- package/storybook-static/assets/{TextCursor.stories-CY2eIn6Z.js → TextCursor.stories-BouFdSlt.js} +1 -1
- package/storybook-static/assets/TextInput-6V0mlIuS.css +1 -0
- package/storybook-static/assets/TextInput-CsK2bPrD.js +28 -0
- package/storybook-static/assets/TextInput.stories-fZ3j5ID4.js +89 -0
- package/storybook-static/assets/{TextPressure.stories-sH-cgdL2.js → TextPressure.stories-B6pN9RLp.js} +2 -2
- package/storybook-static/assets/{TextType.stories-B7Oy3P9u.js → TextType.stories-C9jm9TdC.js} +1 -1
- package/storybook-static/assets/ThemeSwitcher.stories-DHJZPEtd.js +47 -0
- package/storybook-static/assets/{Threads.stories-e52ErKbM.js → Threads.stories-BiH2lkaI.js} +2 -2
- package/storybook-static/assets/TimeInput-BT44V2P0.css +1 -0
- package/storybook-static/assets/TimeInput.stories-DOyFcxE2.js +13 -0
- package/storybook-static/assets/{Toggle-BntWdyUe.js → Toggle-sPP5IZcW.js} +1 -1
- package/storybook-static/assets/Toggle.stories-D5BPv-SU.js +163 -0
- package/storybook-static/assets/{ToggleButton-BQqJdlB_.js → ToggleButton-DmyfG7tC.js} +1 -1
- package/storybook-static/assets/ToggleButton.stories-B1AcmGcL.js +103 -0
- package/storybook-static/assets/{TrueFocus.stories-wm4VXWCk.js → TrueFocus.stories-CYVbY0Hb.js} +1 -1
- package/storybook-static/assets/{VariableProximity.stories-BNSYs_rC.js → VariableProximity.stories-BZRrDkSH.js} +1 -1
- package/storybook-static/assets/{Waves.stories-Ce2ZJFsV.js → Waves.stories-D9BkuCeQ.js} +1 -1
- package/storybook-static/assets/{check-Cty-Z1Ib.js → check-B3Ha7gnS.js} +1 -1
- package/storybook-static/assets/{chevron-down-OhqRl4eJ.js → chevron-down-DlPO5f1Y.js} +1 -1
- package/storybook-static/assets/{chevron-right-CZm4bArI.js → chevron-right-B8eoaBIh.js} +1 -1
- package/storybook-static/assets/client-DxIdGip8.js +1 -0
- package/storybook-static/assets/{createLucideIcon-BNUG5osq.js → createLucideIcon-G8N511cp.js} +1 -1
- package/storybook-static/assets/download-w1NWX-h6.js +6 -0
- package/storybook-static/assets/{folder-BjriMpXc.js → folder-JRyPzO6h.js} +1 -1
- package/storybook-static/assets/{iconBase-DmcmY1l-.js → iconBase-DxMTUG9N.js} +1 -1
- package/storybook-static/assets/iframe-CU5nRRrn.css +1 -0
- package/storybook-static/assets/{iframe-B8pH-Lvr.js → iframe-DCkPNH_h.js} +180 -181
- package/storybook-static/assets/{index-DBfrIdYd.js → index-BTVArzym.js} +1 -1
- package/storybook-static/assets/{index-PY_vM88c.js → index-BW6Op62F.js} +6 -6
- package/storybook-static/assets/{index-BN99WpBo.js → index-CsT-CD6f.js} +1 -1
- package/storybook-static/assets/{proxy-BA3VZtN5.js → proxy-cgPyYfyG.js} +1 -1
- package/storybook-static/assets/{react-18-7dGub68c.js → react-18-YVQChixo.js} +1 -1
- package/storybook-static/assets/{react-three-fiber.esm-DI-wNJmP.js → react-three-fiber.esm-_mYjl9J6.js} +1 -1
- package/storybook-static/assets/{search-2YqBkJlG.js → search-DioxI_xb.js} +1 -1
- package/storybook-static/assets/{settings-DvzICcFU.js → settings-DFQ10p72.js} +1 -1
- package/storybook-static/assets/{sun-DgDhCM_S.js → sun-BfIldVmy.js} +1 -1
- package/storybook-static/assets/{trash-2-BwI5jvsn.js → trash-2-DqTvgQRR.js} +1 -1
- package/storybook-static/assets/{use-animation-frame-CF42h0i5.js → use-animation-frame-CnngNm80.js} +1 -1
- package/storybook-static/assets/{use-in-view-Zn8evg3J.js → use-in-view-DLYDN0EG.js} +1 -1
- package/storybook-static/assets/{use-motion-value--XhiA2Gt.js → use-motion-value-Ud8-h3gV.js} +1 -1
- package/storybook-static/assets/{use-spring-CrWzlBMd.js → use-spring-DcEBTvl_.js} +1 -1
- package/storybook-static/assets/{use-transform-vyDqMhf-.js → use-transform-8mNuLPFu.js} +1 -1
- package/storybook-static/assets/{useSound-Bk2W5gkV.js → useSound-Cv_O9Yec.js} +1 -1
- package/storybook-static/assets/{users-aNPxMiig.js → users-B5lo7ErU.js} +1 -1
- package/storybook-static/assets/{x-BC8LCdn9.js → x-CgTXkpyT.js} +1 -1
- package/storybook-static/iframe.html +3 -3
- package/storybook-static/index.html +5 -19
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/addon-visual-tests-assets/visual-test-illustration.mp4 +0 -0
- package/storybook-static/assets/ArrayInput.stories-Cshz2s-a.js +0 -232
- package/storybook-static/assets/BooleansHeatmap-BV4VTyo6.css +0 -1
- package/storybook-static/assets/BooleansHeatmap.stories-CpNxqSED.js +0 -123
- package/storybook-static/assets/Calendar-tbpzwSIm.css +0 -1
- package/storybook-static/assets/Calendar.stories-Cx2JEddO.js +0 -229
- package/storybook-static/assets/Checkbox.stories-BwsnN3CP.js +0 -83
- package/storybook-static/assets/Color-AVL7NMMY-CoWQkAiP.js +0 -1
- package/storybook-static/assets/DateInput-C4-Rlnpy.css +0 -1
- package/storybook-static/assets/DateInput.stories-d46zYiZA.js +0 -119
- package/storybook-static/assets/DocsRenderer-PQXLIZUC-C2AYT361.js +0 -1243
- package/storybook-static/assets/EditFAB.stories-DvtpW34v.js +0 -378
- package/storybook-static/assets/ImageSlideshow.stories-BasuECRV.js +0 -385
- package/storybook-static/assets/LoadingSpinner.stories-Dj0bMFhR.js +0 -169
- package/storybook-static/assets/MoodChart-2hr_Y2GI.css +0 -1
- package/storybook-static/assets/MoodChart.stories-Bk0jtB4g.js +0 -40
- package/storybook-static/assets/Navbar-BPWxCB-U.css +0 -1
- package/storybook-static/assets/Navbar.stories-Dos3kovt.js +0 -320
- package/storybook-static/assets/NumberStepper.stories-BvFwBEjt.js +0 -436
- package/storybook-static/assets/PieChart-OfDGlJ4g.css +0 -1
- package/storybook-static/assets/PieChart.stories-XZqxh_GW.js +0 -199
- package/storybook-static/assets/QuantifiableHabitsChart-Bam6n9X_.css +0 -1
- package/storybook-static/assets/SearchBar.stories-CGaj__zF.js +0 -169
- package/storybook-static/assets/SearchableDropdown.stories-CfeFR5Rk.js +0 -282
- package/storybook-static/assets/SelectInput.stories-DByYKCGI.js +0 -129
- package/storybook-static/assets/SleepChart-DBRb08s_.css +0 -1
- package/storybook-static/assets/SleepChart.stories-DcoBwiEm.js +0 -58
- package/storybook-static/assets/Slider-Bq7zObwV.css +0 -1
- package/storybook-static/assets/Table-DnhtoClE.css +0 -1
- package/storybook-static/assets/Tabs-D5ZPN7MM.css +0 -1
- package/storybook-static/assets/TextArea.stories-Bpqlv7j5.js +0 -155
- package/storybook-static/assets/TextInput-BjVJQEYN.css +0 -1
- package/storybook-static/assets/TextInput-CLyTHgK9.js +0 -28
- package/storybook-static/assets/TextInput.stories-BP1LSkLG.js +0 -203
- package/storybook-static/assets/ThemeSwitcher.stories-Bj0YQKM5.js +0 -62
- package/storybook-static/assets/TimeInput-C3enPYoV.css +0 -1
- package/storybook-static/assets/TimeInput.stories-Cd28zwwR.js +0 -55
- package/storybook-static/assets/Toggle.stories-DtqFmh3E.js +0 -199
- package/storybook-static/assets/ToggleButton.stories-DkN_4qpp.js +0 -163
- package/storybook-static/assets/client-0pKYCVHx.js +0 -1
- package/storybook-static/assets/iframe-B7RIyArP.css +0 -1
- package/storybook-static/assets/index-bi5z6E3I.js +0 -1
- package/storybook-static/assets/layout-grid-TssXYNzv.js +0 -6
- package/storybook-static/sb-addons/chromatic-com-storybook-4/manager-bundle.js +0 -356
- package/storybook-static/sb-addons/chromatic-com-storybook-4/manager-bundle.js.LEGAL.txt +0 -40
- package/storybook-static/sb-addons/docs-2/manager-bundle.js +0 -151
- package/storybook-static/sb-addons/onboarding-1/manager-bundle.js +0 -127
- /package/storybook-static/sb-addons/{links-3 → links-1}/manager-bundle.js +0 -0
- /package/storybook-static/sb-addons/{storybook-5 → storybook-2}/manager-bundle.js +0 -0
package/dist/index.esm.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { motion, AnimatePresence, useMotionValue, useTransform, animate, LayoutGroup } from 'framer-motion';
|
|
3
|
-
import React, { useRef, useEffect, useCallback, useState, createContext, useContext, useMemo, memo } from 'react';
|
|
3
|
+
import React, { useRef, useEffect, useCallback, useState, createContext, useContext, useMemo, 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, Clock, Sun, Moon, Info, Github, SquareKanban, ChevronRight, Plus, Trash2, GripVertical, Pencil, Menu, ChevronLeft, Maximize,
|
|
5
|
+
import { X, Calendar as Calendar$1, ChevronDown, Search, Check, Edit, Folder, Users, Book, MessageSquare, UserPlus, Clock, Sun, Moon, Info, Github, SquareKanban, ChevronRight, Plus, Trash2, GripVertical, Pencil, Download, Menu, ChevronLeft, Maximize, Share2, Pause, Play } from 'lucide-react';
|
|
6
6
|
import * as d3 from 'd3';
|
|
7
7
|
|
|
8
8
|
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"};
|
|
@@ -2954,7 +2954,7 @@ const LiquidButton = ({ actions, icon: Icon = Plus, className = '', }) => {
|
|
|
2954
2954
|
}, onClick: () => handleAction(action), children: [jsx(action.icon, { size: 18, color: action.color }), jsx("span", { className: styles$b.actionLabel, children: action.label })] }, action.key))) })) }), jsx(motion.button, { type: "button", className: styles$b.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 }) })] })] }));
|
|
2955
2955
|
};
|
|
2956
2956
|
|
|
2957
|
-
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","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","
|
|
2957
|
+
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"};
|
|
2958
2958
|
|
|
2959
2959
|
var styles$9 = {"wrapper":"DayEventCard-module_wrapper__qvRgl","deleteUnderlay":"DayEventCard-module_deleteUnderlay__fTtuX","card":"DayEventCard-module_card__V9xTi","dragging":"DayEventCard-module_dragging__q19ID","completed":"DayEventCard-module_completed__tq8ol","text":"DayEventCard-module_text__3dWF7","grip":"DayEventCard-module_grip__tmim4","checkIcon":"DayEventCard-module_checkIcon__Ki67j","time":"DayEventCard-module_time__Ojdye","editButton":"DayEventCard-module_editButton__nDi-e"};
|
|
2960
2960
|
|
|
@@ -2989,20 +2989,21 @@ const DayEventCard = ({ event, color, textColor, onComplete, onEdit, onDelete, o
|
|
|
2989
2989
|
return;
|
|
2990
2990
|
e.stopPropagation();
|
|
2991
2991
|
e.preventDefault();
|
|
2992
|
-
dragStart.current = { y: e.clientY, pointerId: e.pointerId };
|
|
2992
|
+
dragStart.current = { x: e.clientX, y: e.clientY, pointerId: e.pointerId };
|
|
2993
2993
|
e.currentTarget.setPointerCapture(e.pointerId);
|
|
2994
2994
|
setVerticalDragging(true);
|
|
2995
2995
|
};
|
|
2996
2996
|
const handleGripPointerMove = (e) => {
|
|
2997
2997
|
if (!dragStart.current)
|
|
2998
2998
|
return;
|
|
2999
|
-
|
|
3000
|
-
y.set(
|
|
2999
|
+
x.set(e.clientX - dragStart.current.x);
|
|
3000
|
+
y.set(e.clientY - dragStart.current.y);
|
|
3001
3001
|
};
|
|
3002
3002
|
const handleGripPointerUp = (e) => {
|
|
3003
3003
|
if (!dragStart.current)
|
|
3004
3004
|
return;
|
|
3005
3005
|
const clientY = e.clientY;
|
|
3006
|
+
const clientX = e.clientX;
|
|
3006
3007
|
try {
|
|
3007
3008
|
e.currentTarget.releasePointerCapture(dragStart.current.pointerId);
|
|
3008
3009
|
}
|
|
@@ -3012,7 +3013,8 @@ const DayEventCard = ({ event, color, textColor, onComplete, onEdit, onDelete, o
|
|
|
3012
3013
|
dragStart.current = null;
|
|
3013
3014
|
setVerticalDragging(false);
|
|
3014
3015
|
animate(y, 0, { type: 'spring', stiffness: 400, damping: 30 });
|
|
3015
|
-
|
|
3016
|
+
animate(x, 0, { type: 'spring', stiffness: 400, damping: 30 });
|
|
3017
|
+
onDragEnd?.(clientY, clientX);
|
|
3016
3018
|
};
|
|
3017
3019
|
const canSwipe = !!onDelete;
|
|
3018
3020
|
const showGrip = draggable && !!onDragEnd;
|
|
@@ -3024,6 +3026,92 @@ const DayEventCard = ({ event, color, textColor, onComplete, onEdit, onDelete, o
|
|
|
3024
3026
|
}, "aria-label": "Edit event", children: jsx(Pencil, { size: 13 }) }))] })] }));
|
|
3025
3027
|
};
|
|
3026
3028
|
|
|
3029
|
+
const EXPORT_FIELDS = [
|
|
3030
|
+
'id', 'title', 'date', 'time', 'endTime', 'allDay',
|
|
3031
|
+
'type', 'status', 'priority', 'category',
|
|
3032
|
+
];
|
|
3033
|
+
const toIsoDate = (d) => {
|
|
3034
|
+
const date = typeof d === 'string' ? new Date(d) : d;
|
|
3035
|
+
return date.toISOString();
|
|
3036
|
+
};
|
|
3037
|
+
const normalize = (event) => {
|
|
3038
|
+
const row = {};
|
|
3039
|
+
for (const f of EXPORT_FIELDS) {
|
|
3040
|
+
const v = event[f];
|
|
3041
|
+
if (v === undefined)
|
|
3042
|
+
continue;
|
|
3043
|
+
row[f] = f === 'date' ? toIsoDate(v) : v;
|
|
3044
|
+
}
|
|
3045
|
+
return row;
|
|
3046
|
+
};
|
|
3047
|
+
const escCsv = (value) => {
|
|
3048
|
+
if (value === undefined || value === null)
|
|
3049
|
+
return '';
|
|
3050
|
+
const s = String(value);
|
|
3051
|
+
if (/[",\n\r]/.test(s))
|
|
3052
|
+
return `"${s.replace(/"/g, '""')}"`;
|
|
3053
|
+
return s;
|
|
3054
|
+
};
|
|
3055
|
+
const toCsv = (events) => {
|
|
3056
|
+
const header = EXPORT_FIELDS.join(',');
|
|
3057
|
+
const rows = events.map(e => {
|
|
3058
|
+
const n = normalize(e);
|
|
3059
|
+
return EXPORT_FIELDS.map(f => escCsv(n[f])).join(',');
|
|
3060
|
+
});
|
|
3061
|
+
return [header, ...rows].join('\n');
|
|
3062
|
+
};
|
|
3063
|
+
const toJson = (events) => {
|
|
3064
|
+
return JSON.stringify(events.map(normalize), null, 2);
|
|
3065
|
+
};
|
|
3066
|
+
// TOON (Token-Oriented Object Notation): compact tabular text for uniform arrays.
|
|
3067
|
+
// Format: `events[N]{field1,field2,...}:` then indented rows of comma-separated values.
|
|
3068
|
+
// Strings containing comma/quote/newline are wrapped in double quotes with "" escaping.
|
|
3069
|
+
const escToon = (value) => {
|
|
3070
|
+
if (value === undefined || value === null)
|
|
3071
|
+
return '';
|
|
3072
|
+
const s = String(value);
|
|
3073
|
+
if (/[",\n\r]/.test(s))
|
|
3074
|
+
return `"${s.replace(/"/g, '""')}"`;
|
|
3075
|
+
return s;
|
|
3076
|
+
};
|
|
3077
|
+
const toToon = (events) => {
|
|
3078
|
+
const header = `events[${events.length}]{${EXPORT_FIELDS.join(',')}}:`;
|
|
3079
|
+
const rows = events.map(e => {
|
|
3080
|
+
const n = normalize(e);
|
|
3081
|
+
return ' ' + EXPORT_FIELDS.map(f => escToon(n[f])).join(',');
|
|
3082
|
+
});
|
|
3083
|
+
return [header, ...rows].join('\n');
|
|
3084
|
+
};
|
|
3085
|
+
const MIME = {
|
|
3086
|
+
csv: 'text/csv;charset=utf-8;',
|
|
3087
|
+
json: 'application/json;charset=utf-8;',
|
|
3088
|
+
toon: 'text/plain;charset=utf-8;',
|
|
3089
|
+
};
|
|
3090
|
+
const EXT = {
|
|
3091
|
+
csv: 'csv',
|
|
3092
|
+
json: 'json',
|
|
3093
|
+
toon: 'toon',
|
|
3094
|
+
};
|
|
3095
|
+
const serializeEvents = (events, format) => {
|
|
3096
|
+
if (format === 'csv')
|
|
3097
|
+
return toCsv(events);
|
|
3098
|
+
if (format === 'json')
|
|
3099
|
+
return toJson(events);
|
|
3100
|
+
return toToon(events);
|
|
3101
|
+
};
|
|
3102
|
+
const downloadEvents = (events, format, filename) => {
|
|
3103
|
+
const content = serializeEvents(events, format);
|
|
3104
|
+
const blob = new Blob([content], { type: MIME[format] });
|
|
3105
|
+
const url = URL.createObjectURL(blob);
|
|
3106
|
+
const a = document.createElement('a');
|
|
3107
|
+
a.href = url;
|
|
3108
|
+
a.download = `events-${new Date().toISOString().slice(0, 10)}.${EXT[format]}`;
|
|
3109
|
+
document.body.appendChild(a);
|
|
3110
|
+
a.click();
|
|
3111
|
+
document.body.removeChild(a);
|
|
3112
|
+
URL.revokeObjectURL(url);
|
|
3113
|
+
};
|
|
3114
|
+
|
|
3027
3115
|
/**
|
|
3028
3116
|
* Calendar component - A flexible, reusable calendar for displaying events
|
|
3029
3117
|
*
|
|
@@ -3053,7 +3141,7 @@ const DayEventCard = ({ event, color, textColor, onComplete, onEdit, onDelete, o
|
|
|
3053
3141
|
* onEventClick={handleEventClick}
|
|
3054
3142
|
* />
|
|
3055
3143
|
*/
|
|
3056
|
-
function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDateClickByView, onTimeSlotClick, onEventDrop, onEventComplete, onEventDelete, onEventEdit, viewMode = 'month', initialDate = new Date(), config = {}, className = '', style = {}, loading = false, emptyState, hideHeader = false, compact = false, selectedDate, selectedCategoryId, onCategoryChange }) {
|
|
3144
|
+
function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDateClickByView, onTimeSlotClick, onEventDrop, onEventComplete, onEventDelete, onEventEdit, viewMode = 'month', initialDate = new Date(), config = {}, className = '', style = {}, loading = false, emptyState, hideHeader = false, compact = false, selectedDate, selectedCategoryId, onCategoryChange, exportFormats }) {
|
|
3057
3145
|
const [currentDate, setCurrentDate] = useState(initialDate);
|
|
3058
3146
|
const [currentViewMode, setCurrentViewMode] = useState(viewMode);
|
|
3059
3147
|
const [internalCategoryId, setInternalCategoryId] = useState(null);
|
|
@@ -3065,6 +3153,20 @@ function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDat
|
|
|
3065
3153
|
onCategoryChange?.(id);
|
|
3066
3154
|
};
|
|
3067
3155
|
const dayViewScrollRef = useRef(null);
|
|
3156
|
+
const weekViewScrollRef = useRef(null);
|
|
3157
|
+
const [exportOpen, setExportOpen] = useState(false);
|
|
3158
|
+
const exportRef = useRef(null);
|
|
3159
|
+
useEffect(() => {
|
|
3160
|
+
if (!exportOpen)
|
|
3161
|
+
return;
|
|
3162
|
+
const handler = (e) => {
|
|
3163
|
+
if (exportRef.current && !exportRef.current.contains(e.target)) {
|
|
3164
|
+
setExportOpen(false);
|
|
3165
|
+
}
|
|
3166
|
+
};
|
|
3167
|
+
document.addEventListener('mousedown', handler);
|
|
3168
|
+
return () => document.removeEventListener('mousedown', handler);
|
|
3169
|
+
}, [exportOpen]);
|
|
3068
3170
|
const { eventColors = {}, iconRenderer, maxEventsPerDay = 3, mondayStart = false, showWeekNumbers = false, dateFormat = { month: 'long', year: 'numeric' }, locale = 'en-US', dayLabels, monthNames, startHour = 0, endHour = 24, hourHeight = 60, halfHourSlots = false, categories } = config;
|
|
3069
3171
|
const filteredEvents = useMemo(() => {
|
|
3070
3172
|
if (!categories || categories.length === 0 || activeCategoryId === null)
|
|
@@ -3075,24 +3177,8 @@ function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDat
|
|
|
3075
3177
|
? ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
|
|
3076
3178
|
: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
|
3077
3179
|
const finalDayLabels = dayLabels || defaultDayLabels;
|
|
3078
|
-
|
|
3079
|
-
const
|
|
3080
|
-
const dayViewStartHour = config?.startHour ?? 0;
|
|
3081
|
-
useEffect(() => {
|
|
3082
|
-
if (currentViewMode === 'day' && dayViewScrollRef.current) {
|
|
3083
|
-
const now = new Date();
|
|
3084
|
-
const isToday = currentDate.toDateString() === now.toDateString();
|
|
3085
|
-
if (isToday) {
|
|
3086
|
-
const minutesFromStart = (now.getHours() - dayViewStartHour) * 60 + now.getMinutes();
|
|
3087
|
-
const scrollPosition = (minutesFromStart / 60) * dayViewHourHeight - 100;
|
|
3088
|
-
setTimeout(() => {
|
|
3089
|
-
if (dayViewScrollRef.current) {
|
|
3090
|
-
dayViewScrollRef.current.scrollTop = Math.max(0, scrollPosition);
|
|
3091
|
-
}
|
|
3092
|
-
}, 0);
|
|
3093
|
-
}
|
|
3094
|
-
}
|
|
3095
|
-
}, [currentViewMode, currentDate, dayViewStartHour, dayViewHourHeight]);
|
|
3180
|
+
const timelineHourHeight = config?.hourHeight ?? 60;
|
|
3181
|
+
const timelineStartHour = config?.startHour ?? 0;
|
|
3096
3182
|
const calendarData = useMemo(() => {
|
|
3097
3183
|
const year = currentDate.getFullYear();
|
|
3098
3184
|
const month = currentDate.getMonth();
|
|
@@ -3153,6 +3239,26 @@ function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDat
|
|
|
3153
3239
|
}
|
|
3154
3240
|
return { days, displayTitle };
|
|
3155
3241
|
}, [currentDate, currentViewMode, mondayStart, locale, dateFormat, monthNames]);
|
|
3242
|
+
// Auto-scroll to current time in day/week views
|
|
3243
|
+
useEffect(() => {
|
|
3244
|
+
const targetRef = currentViewMode === 'day' ? dayViewScrollRef :
|
|
3245
|
+
currentViewMode === 'week' ? weekViewScrollRef :
|
|
3246
|
+
null;
|
|
3247
|
+
if (!targetRef?.current)
|
|
3248
|
+
return;
|
|
3249
|
+
const now = new Date();
|
|
3250
|
+
const isTodayOnScreen = currentViewMode === 'day'
|
|
3251
|
+
? currentDate.toDateString() === now.toDateString()
|
|
3252
|
+
: calendarData.days.some(d => d.toDateString() === now.toDateString());
|
|
3253
|
+
if (!isTodayOnScreen)
|
|
3254
|
+
return;
|
|
3255
|
+
const minutesFromStart = (now.getHours() - timelineStartHour) * 60 + now.getMinutes();
|
|
3256
|
+
const scrollPosition = Math.max(0, (minutesFromStart / 60) * timelineHourHeight - 100);
|
|
3257
|
+
setTimeout(() => {
|
|
3258
|
+
if (targetRef.current)
|
|
3259
|
+
targetRef.current.scrollTop = scrollPosition;
|
|
3260
|
+
}, 0);
|
|
3261
|
+
}, [currentViewMode, currentDate, timelineStartHour, timelineHourHeight, calendarData]);
|
|
3156
3262
|
const getDayEvents = (day) => {
|
|
3157
3263
|
const dayEvents = filteredEvents.filter(event => {
|
|
3158
3264
|
const eventDate = new Date(event.date);
|
|
@@ -3273,7 +3379,10 @@ function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDat
|
|
|
3273
3379
|
return (jsxs("div", { className: `${styles$a.calendar} ${compact ? styles$a.compact : ''} ${className}`, style: style, children: [!hideHeader && (jsxs("div", { className: styles$a.header, children: [jsxs("div", { className: styles$a.navigation, children: [jsx("button", { onClick: handlePrevious, className: styles$a.navButton, "aria-label": "Previous", children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "15,18 9,12 15,6" }) }) }), jsx("h3", { className: styles$a.title, children: calendarData.displayTitle }), jsx("button", { onClick: handleNext, className: styles$a.navButton, "aria-label": "Next", children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "9,6 15,12 9,18" }) }) })] }), categories && categories.length > 0 && (jsxs("div", { className: styles$a.filterBar, role: "tablist", "aria-label": "Filter by category", children: [jsx("button", { type: "button", role: "tab", "aria-selected": activeCategoryId === null, className: `${styles$a.filterPill} ${activeCategoryId === null ? styles$a.filterPillActive : ''}`, onClick: () => handleCategoryPick(null), children: "All" }), categories.map(cat => {
|
|
3274
3380
|
const active = activeCategoryId === cat.id;
|
|
3275
3381
|
return (jsxs("button", { type: "button", role: "tab", "aria-selected": active, className: `${styles$a.filterPill} ${active ? styles$a.filterPillActive : ''}`, style: active ? { background: cat.color, borderColor: cat.color, color: '#ffffff' } : undefined, onClick: () => handleCategoryPick(cat.id), children: [!active && (jsx("span", { className: styles$a.filterDot, style: { background: cat.color } })), cat.label] }, cat.id));
|
|
3276
|
-
})] })), jsxs("div", { className: styles$a.controls, children: [
|
|
3382
|
+
})] })), jsxs("div", { className: styles$a.controls, children: [exportFormats && exportFormats.length > 0 && (jsxs("div", { className: styles$a.exportDropdown, ref: exportRef, children: [jsx("button", { type: "button", className: styles$a.exportButton, onClick: () => setExportOpen(v => !v), "aria-haspopup": "menu", "aria-expanded": exportOpen, "aria-label": "Export events", title: "Export events", children: jsx(Download, { size: 16 }) }), exportOpen && (jsx("div", { className: styles$a.exportMenu, role: "menu", children: exportFormats.map(format => (jsx("button", { type: "button", role: "menuitem", className: styles$a.exportMenuItem, onClick: () => {
|
|
3383
|
+
downloadEvents(filteredEvents, format);
|
|
3384
|
+
setExportOpen(false);
|
|
3385
|
+
}, children: format.toUpperCase() }, format))) }))] })), jsx("button", { onClick: handleToday, className: styles$a.todayButton, children: "Today" }), jsxs("div", { className: styles$a.viewToggle, children: [jsx("button", { className: `${styles$a.viewButton} ${currentViewMode === 'month' ? styles$a.active : ''}`, onClick: () => setCurrentViewMode('month'), children: "Month" }), jsx("button", { className: `${styles$a.viewButton} ${currentViewMode === 'week' ? styles$a.active : ''}`, onClick: () => setCurrentViewMode('week'), children: "Week" }), jsx("button", { className: `${styles$a.viewButton} ${currentViewMode === 'day' ? styles$a.active : ''}`, onClick: () => setCurrentViewMode('day'), children: "Day" })] })] })] })), currentViewMode === 'month' && (jsxs("div", { className: `${styles$a.weekDays} ${showWeekNumbers ? styles$a.withWeekNumbers : ''}`, children: [showWeekNumbers && jsx("div", { className: styles$a.weekNumberHeader, children: "Wk" }), finalDayLabels.map((day) => (jsx("div", { className: styles$a.weekDay, children: day }, day)))] })), currentViewMode === 'day' ? (
|
|
3277
3386
|
// Day view layout — positioned events with duration, all-day strip, now-line
|
|
3278
3387
|
(() => {
|
|
3279
3388
|
const dayEvents = getDayEvents(currentDate);
|
|
@@ -3329,42 +3438,106 @@ function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDat
|
|
|
3329
3438
|
const height = Math.max(24, (duration / 60) * hourHeight - 2);
|
|
3330
3439
|
return (jsx("div", { className: styles$a.dayEventAnchor, style: { top, height }, onClick: (e) => e.stopPropagation(), children: jsx(DayEventCard, { event: event, color: getEventColor(event), textColor: getEventTextColor(event), onComplete: onEventComplete ?? (onEventClick ? handleEventClick : undefined), onEdit: onEventEdit, onDelete: onEventDelete, onDragEnd: onEventDrop ? (clientY) => handleEventDragEnd(event, clientY) : undefined }) }, event.id));
|
|
3331
3440
|
}), showNow && (jsx("div", { className: styles$a.currentTimeIndicator, style: { top: `${nowOffset}px` } }))] }) })] }));
|
|
3441
|
+
})()) : currentViewMode === 'week' ? (
|
|
3442
|
+
// Week view layout — 7 side-by-side day timelines. Drag events across
|
|
3443
|
+
// columns to reschedule to a different day + hour in one gesture.
|
|
3444
|
+
(() => {
|
|
3445
|
+
const days = calendarData.days;
|
|
3446
|
+
const hours = Array.from({ length: endHour - startHour }, (_, i) => startHour + i);
|
|
3447
|
+
const timelineHeight = hours.length * hourHeight;
|
|
3448
|
+
const now = new Date();
|
|
3449
|
+
const todayIdx = days.findIndex(d => d.toDateString() === now.toDateString());
|
|
3450
|
+
const nowMinutesFromStart = (now.getHours() - startHour) * 60 + now.getMinutes();
|
|
3451
|
+
const nowOffset = (nowMinutesFromStart / 60) * hourHeight;
|
|
3452
|
+
const showNow = todayIdx >= 0 && nowOffset >= 0 && nowOffset <= timelineHeight;
|
|
3453
|
+
const eventMinutes = (time) => {
|
|
3454
|
+
const [h, m] = time.split(':').map(Number);
|
|
3455
|
+
return h * 60 + m;
|
|
3456
|
+
};
|
|
3457
|
+
const eventDuration = (event) => {
|
|
3458
|
+
if (!event.time || !event.endTime)
|
|
3459
|
+
return 30;
|
|
3460
|
+
const d = eventMinutes(event.endTime) - eventMinutes(event.time);
|
|
3461
|
+
return d > 0 ? d : 30;
|
|
3462
|
+
};
|
|
3463
|
+
const handleWeekSlotClick = (day, hour, minute) => {
|
|
3464
|
+
if (!onTimeSlotClick)
|
|
3465
|
+
return;
|
|
3466
|
+
const slotDate = new Date(day);
|
|
3467
|
+
slotDate.setHours(hour, minute, 0, 0);
|
|
3468
|
+
const timeString = `${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}`;
|
|
3469
|
+
onTimeSlotClick(slotDate, hour, timeString);
|
|
3470
|
+
};
|
|
3471
|
+
const handleWeekDragEnd = (event, clientY, clientX) => {
|
|
3472
|
+
if (!onEventDrop)
|
|
3473
|
+
return;
|
|
3474
|
+
const gridEl = weekViewScrollRef.current?.querySelector(`.${styles$a.weekDayColumns}`);
|
|
3475
|
+
if (!gridEl)
|
|
3476
|
+
return;
|
|
3477
|
+
const rect = gridEl.getBoundingClientRect();
|
|
3478
|
+
const relativeX = clientX - rect.left;
|
|
3479
|
+
const relativeY = clientY - rect.top;
|
|
3480
|
+
const columnWidth = rect.width / 7;
|
|
3481
|
+
const columnIndex = Math.min(6, Math.max(0, Math.floor(relativeX / columnWidth)));
|
|
3482
|
+
const targetDay = days[columnIndex];
|
|
3483
|
+
const slotSize = halfHourSlots ? hourHeight / 2 : hourHeight;
|
|
3484
|
+
const totalSlots = halfHourSlots ? hours.length * 2 : hours.length;
|
|
3485
|
+
const slotIndex = Math.min(totalSlots - 1, Math.max(0, Math.floor(relativeY / slotSize)));
|
|
3486
|
+
const newHour = startHour + Math.floor(halfHourSlots ? slotIndex / 2 : slotIndex);
|
|
3487
|
+
const newMinute = halfHourSlots && slotIndex % 2 === 1 ? 30 : 0;
|
|
3488
|
+
const newDate = new Date(targetDay);
|
|
3489
|
+
newDate.setHours(newHour, newMinute, 0, 0);
|
|
3490
|
+
onEventDrop(event, newDate);
|
|
3491
|
+
};
|
|
3492
|
+
return (jsxs("div", { className: styles$a.weekTimeline, children: [jsxs("div", { className: styles$a.weekTimelineHeader, children: [jsx("div", { className: styles$a.timeColumnHeader }), days.map(day => {
|
|
3493
|
+
const dayIsToday = day.toDateString() === now.toDateString();
|
|
3494
|
+
const dayIsSelected = selectedDate && day.toDateString() === selectedDate.toDateString();
|
|
3495
|
+
return (jsxs("button", { type: "button", className: `${styles$a.weekDayColumnHeader} ${dayIsToday ? styles$a.today : ''} ${dayIsSelected ? styles$a.selected : ''}`, onClick: () => handleDateClick(day), children: [jsx("span", { className: styles$a.weekDayLabel, children: day.toLocaleDateString(locale, { weekday: 'short' }) }), jsx("span", { className: styles$a.weekDayNumber, children: day.getDate() })] }, day.toISOString()));
|
|
3496
|
+
})] }), jsx("div", { className: styles$a.weekTimelineScroll, ref: weekViewScrollRef, children: jsxs("div", { className: styles$a.weekTimelineGrid, style: { height: timelineHeight }, children: [jsx("div", { className: styles$a.weekTimeColumn, children: hours.map(hour => (jsx("div", { className: styles$a.weekTimeSlot, style: { height: hourHeight }, children: jsxs("span", { className: styles$a.weekHourLabel, children: [hour.toString().padStart(2, '0'), ":00"] }) }, hour))) }), jsx("div", { className: styles$a.weekDayColumns, children: days.map(day => {
|
|
3497
|
+
const dayEvents = getDayEvents(day).filter(e => !e.allDay && e.time);
|
|
3498
|
+
const dayIsToday = day.toDateString() === now.toDateString();
|
|
3499
|
+
return (jsxs("div", { className: styles$a.weekDayColumn, children: [hours.map(hour => (jsx("div", { className: styles$a.weekHourRow, style: { height: hourHeight }, children: halfHourSlots ? (jsxs(Fragment, { children: [jsx("div", { className: styles$a.halfHourSlot, onClick: () => handleWeekSlotClick(day, hour, 0) }), jsx("div", { className: `${styles$a.halfHourSlot} ${styles$a.halfHourSlotBottom}`, onClick: () => handleWeekSlotClick(day, hour, 30) })] })) : (jsx("div", { className: styles$a.halfHourSlot, onClick: () => handleWeekSlotClick(day, hour, 0) })) }, hour))), dayEvents.map(event => {
|
|
3500
|
+
const [h, m] = event.time.split(':').map(Number);
|
|
3501
|
+
const top = (h - startHour) * hourHeight + (m / 60) * hourHeight;
|
|
3502
|
+
const duration = eventDuration(event);
|
|
3503
|
+
const height = Math.max(24, (duration / 60) * hourHeight - 2);
|
|
3504
|
+
return (jsx("div", { className: styles$a.weekEventAnchor, style: { top, height }, onClick: (e) => e.stopPropagation(), children: jsx(DayEventCard, { event: event, color: getEventColor(event), textColor: getEventTextColor(event), onComplete: onEventComplete ?? (onEventClick ? handleEventClick : undefined), onEdit: onEventEdit, onDelete: onEventDelete, onDragEnd: onEventDrop ? (cy, cx) => handleWeekDragEnd(event, cy, cx) : undefined }) }, event.id));
|
|
3505
|
+
}), dayIsToday && showNow && (jsx("div", { className: styles$a.currentTimeIndicator, style: { top: `${nowOffset}px`, left: 0 } }))] }, day.toISOString()));
|
|
3506
|
+
}) })] }) })] }));
|
|
3332
3507
|
})()) : ((() => {
|
|
3333
3508
|
// Fixed month-view cell height derived from maxEventsPerDay.
|
|
3334
3509
|
// Day number + padding ≈ 40px, each event row ≈ 24px.
|
|
3335
3510
|
// Week and compact views keep their own CSS-driven sizing.
|
|
3336
|
-
const monthCellHeight =
|
|
3337
|
-
|
|
3338
|
-
: undefined;
|
|
3339
|
-
return (jsx("div", { className: `${styles$a.daysGrid} ${currentViewMode === 'week' ? styles$a.weekView : ''}`, children: calendarData.days.map((day, index) => {
|
|
3511
|
+
const monthCellHeight = !compact ? 40 + maxEventsPerDay * 24 : undefined;
|
|
3512
|
+
return (jsx("div", { className: `${styles$a.daysGrid} ${showWeekNumbers ? styles$a.withWeekNumbers : ''}`, children: calendarData.days.map((day, index) => {
|
|
3340
3513
|
const dayEvents = getDayEvents(day);
|
|
3341
3514
|
const dayIsToday = isToday(day);
|
|
3342
|
-
const isInCurrentMonth =
|
|
3515
|
+
const isInCurrentMonth = isCurrentMonth(day);
|
|
3343
3516
|
const isWeekStart = showWeekNumbers && (index % 7 === 0);
|
|
3344
3517
|
const dayIsSelected = selectedDate && day.toDateString() === selectedDate.toDateString();
|
|
3345
|
-
return (jsxs(motion.div, { className: `${styles$a.dayCell} ${dayIsToday ? styles$a.today : ''} ${!isInCurrentMonth ? styles$a.otherMonth : ''} ${dayIsSelected ? styles$a.selected : ''}`, style: monthCellHeight !== undefined ? { height: monthCellHeight, minHeight: monthCellHeight } : undefined, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: {
|
|
3346
|
-
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
|
-
|
|
3350
|
-
|
|
3351
|
-
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
|
|
3358
|
-
|
|
3359
|
-
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
|
|
3364
|
-
|
|
3365
|
-
|
|
3366
|
-
|
|
3367
|
-
|
|
3518
|
+
return (jsxs(Fragment$1, { children: [isWeekStart && (jsx("div", { className: styles$a.weekNumberCell, style: monthCellHeight !== undefined ? { height: monthCellHeight, minHeight: monthCellHeight } : undefined, children: getWeekNumber(day) })), jsxs(motion.div, { className: `${styles$a.dayCell} ${dayIsToday ? styles$a.today : ''} ${!isInCurrentMonth ? styles$a.otherMonth : ''} ${dayIsSelected ? styles$a.selected : ''}`, style: monthCellHeight !== undefined ? { height: monthCellHeight, minHeight: monthCellHeight } : undefined, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: {
|
|
3519
|
+
duration: 0.3,
|
|
3520
|
+
delay: index * 0.02,
|
|
3521
|
+
ease: "easeOut"
|
|
3522
|
+
}, onClick: () => handleDateClick(day), children: [jsx("div", { className: styles$a.dayNumber, children: day.getDate() }), dayEvents.length > 0 && compact && currentViewMode === 'month' ? (jsxs("div", { className: styles$a.dots, children: [dayEvents.slice(0, maxEventsPerDay).map((event) => (jsx("span", { className: styles$a.dot, style: { backgroundColor: getEventColor(event) } }, event.id))), dayEvents.length > maxEventsPerDay && (jsxs("span", { className: styles$a.dotMore, children: ["+", dayEvents.length - maxEventsPerDay] }))] })) : dayEvents.length > 0 ? (jsxs("div", { className: styles$a.events, children: [dayEvents.slice(0, maxEventsPerDay).map((event, eventIndex) => (jsxs(motion.div, { className: `${styles$a.event} ${event.status === 'completed' ? styles$a.completed : ''}`, style: {
|
|
3523
|
+
backgroundColor: getEventColor(event),
|
|
3524
|
+
color: getEventTextColor(event),
|
|
3525
|
+
opacity: event.status === 'completed' ? 0.7 : 1
|
|
3526
|
+
}, onClick: (e) => {
|
|
3527
|
+
e.stopPropagation();
|
|
3528
|
+
handleEventClick(event);
|
|
3529
|
+
}, initial: { opacity: 0, x: -10 }, animate: { opacity: 1, x: 0 }, transition: {
|
|
3530
|
+
duration: 0.2,
|
|
3531
|
+
delay: eventIndex * 0.05,
|
|
3532
|
+
ease: "easeOut"
|
|
3533
|
+
}, whileHover: {
|
|
3534
|
+
scale: 1.02,
|
|
3535
|
+
y: -1,
|
|
3536
|
+
transition: { duration: 0.1 }
|
|
3537
|
+
}, whileTap: {
|
|
3538
|
+
scale: 0.98,
|
|
3539
|
+
transition: { duration: 0.1 }
|
|
3540
|
+
}, children: [iconRenderer && iconRenderer(event), jsxs("span", { className: styles$a.eventTitle, children: [event.time && (jsx("span", { className: styles$a.eventTime, children: event.time })), event.title] }), event.status === 'completed' && (jsx("svg", { className: styles$a.completedIcon, width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "20,6 9,17 4,12" }) }))] }, event.id))), dayEvents.length > maxEventsPerDay && (jsxs("div", { className: styles$a.moreEvents, children: ["+", dayEvents.length - maxEventsPerDay, " more"] }))] })) : emptyState ? (jsx("div", { className: styles$a.emptyState, children: emptyState })) : null] })] }, `${day.getFullYear()}-${day.getMonth()}-${day.getDate()}`));
|
|
3368
3541
|
}) }));
|
|
3369
3542
|
})())] }));
|
|
3370
3543
|
}
|
|
@@ -3373,7 +3546,8 @@ var desktopStyles = {"navbar":"Navbar-module_navbar__-SNiN","navbarSidebar":"Nav
|
|
|
3373
3546
|
|
|
3374
3547
|
var mobileStyles = {"navbar":"Navbar-mobile-module_navbar__-shkE","navLogo":"Navbar-mobile-module_navLogo__7Gnna","logoContainer":"Navbar-mobile-module_logoContainer__JTw99","logoImage":"Navbar-mobile-module_logoImage__QwV5v","logoPlaceholder":"Navbar-mobile-module_logoPlaceholder__tSkOl","logoContent":"Navbar-mobile-module_logoContent__FVTxh","logoText":"Navbar-mobile-module_logoText__5XghQ","logoSubtitle":"Navbar-mobile-module_logoSubtitle__4Wf8p","mobileMenuButton":"Navbar-mobile-module_mobileMenuButton__Dx3t8","menuOpen":"Navbar-mobile-module_menuOpen__XEc1c","mobileBackdrop":"Navbar-mobile-module_mobileBackdrop__biYng","navList":"Navbar-mobile-module_navList__FBo8I","navItem":"Navbar-mobile-module_navItem__-9E9-","subNavItem":"Navbar-mobile-module_subNavItem__c-5IU","navLink":"Navbar-mobile-module_navLink__A8n8F","active":"Navbar-mobile-module_active__h3ajz","activeBackground":"Navbar-mobile-module_activeBackground__btXAN","navIcon":"Navbar-mobile-module_navIcon__4L17v","activeIcon":"Navbar-mobile-module_activeIcon__A8GF-","navText":"Navbar-mobile-module_navText__ewf-i","activeText":"Navbar-mobile-module_activeText__fNqcU","navBadge":"Navbar-mobile-module_navBadge__YccGx","chevron":"Navbar-mobile-module_chevron__nBPqn","subNavList":"Navbar-mobile-module_subNavList__8tINc","navActions":"Navbar-mobile-module_navActions__fpzOK","navFooter":"Navbar-mobile-module_navFooter__yijWu","navbarSidebar":"Navbar-mobile-module_navbarSidebar__HvB-K","navbarTop":"Navbar-mobile-module_navbarTop__oyfPE","navbarMinimal":"Navbar-mobile-module_navbarMinimal__cudny","mobileMenuOpen":"Navbar-mobile-module_mobileMenuOpen__zB4Gy"};
|
|
3375
3548
|
|
|
3376
|
-
const Navbar = ({ items, logo, onItemClick, variant = 'sidebar', isMobile = false, footer, className = '', soundConfig, }) => {
|
|
3549
|
+
const Navbar = ({ items, logo, onItemClick, variant = 'sidebar', isMobile = false, footer, className = '', soundConfig, colorfulIcons = false, }) => {
|
|
3550
|
+
const coloredIconsAttr = colorfulIcons ? 'true' : undefined;
|
|
3377
3551
|
const styles = useMemo(() => (isMobile ? mobileStyles : desktopStyles), [isMobile]);
|
|
3378
3552
|
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
|
|
3379
3553
|
const [expandedItems, setExpandedItems] = useState(new Set());
|
|
@@ -3488,12 +3662,12 @@ const Navbar = ({ items, logo, onItemClick, variant = 'sidebar', isMobile = fals
|
|
|
3488
3662
|
};
|
|
3489
3663
|
const navContent = (jsxs(Fragment, { children: [logo && (jsx(motion.div, { className: styles.navLogo, initial: { opacity: 0, y: -20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.1 }, children: jsxs("div", { className: styles.logoContainer, children: [logo.src ? (jsx(motion.img, { src: logo.src, alt: logo.alt || 'Logo', className: styles.logoImage, onMouseEnter: handlers.onMouseEnter, whileHover: { scale: 1.05 }, transition: { type: 'spring', stiffness: 400 } })) : (jsx("div", { className: styles.logoPlaceholder, children: logo.text?.charAt(0) || 'L' })), (logo.text || logo.subtitle) && (jsxs("div", { className: styles.logoContent, children: [logo.text && jsx("span", { className: styles.logoText, children: logo.text }), logo.subtitle && (jsx("span", { className: styles.logoSubtitle, children: logo.subtitle }))] }))] }) })), jsx("ul", { className: styles.navList, children: items.map((item, index) => renderNavItem(item, index)) }), footer && (jsx(motion.div, { className: styles.navFooter, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.3 }, children: footer }))] }));
|
|
3490
3664
|
if (variant === 'top') {
|
|
3491
|
-
return (jsx(motion.nav, { className: `${styles.navbar} ${styles.navbarTop} ${className}`, initial: { y: -100 }, animate: { y: 0 }, transition: { type: 'spring', stiffness: 300, damping: 30 }, children: navContent }));
|
|
3665
|
+
return (jsx(motion.nav, { className: `${styles.navbar} ${styles.navbarTop} ${className}`, "data-colored-icons": coloredIconsAttr, initial: { y: -100 }, animate: { y: 0 }, transition: { type: 'spring', stiffness: 300, damping: 30 }, children: navContent }));
|
|
3492
3666
|
}
|
|
3493
3667
|
if (isMobile) {
|
|
3494
|
-
return (jsxs(Fragment, { children: [jsxs("nav", { className: `${styles.navbar} ${className}`, children: [logo && (jsx("div", { className: styles.navLogo, children: jsxs("div", { className: styles.logoContainer, children: [logo.src ? (jsx("img", { src: logo.src, alt: logo.alt || 'Logo', className: styles.logoImage })) : (jsx("div", { className: styles.logoPlaceholder, children: logo.text?.charAt(0) || 'L' })), logo.text && (jsx("div", { className: styles.logoContent, children: jsx("span", { className: styles.logoText, children: logo.text }) }))] }) })), jsxs("div", { className: styles.navActions, children: [footer && jsx("div", { className: styles.navFooter, children: footer }), jsx("button", { className: `${styles.mobileMenuButton} ${isMobileMenuOpen ? styles.menuOpen : ''}`, onClick: toggleMobileMenu, "aria-label": "Toggle navigation menu", children: isMobileMenuOpen ? jsx(X, {}) : jsx(Menu, {}) })] })] }), jsx(AnimatePresence, { children: isMobileMenuOpen && (jsx(motion.div, { className: styles.mobileBackdrop, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.2 }, onClick: () => setIsMobileMenuOpen(false), children: jsx(motion.div, { initial: { y: -20, opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: -20, opacity: 0 }, transition: { duration: 0.2 }, onClick: (e) => e.stopPropagation(), children: jsx("ul", { className: styles.navList, children: items.map((item, index) => renderNavItem(item, index)) }) }) })) })] }));
|
|
3668
|
+
return (jsxs(Fragment, { children: [jsxs("nav", { className: `${styles.navbar} ${className}`, "data-colored-icons": coloredIconsAttr, children: [logo && (jsx("div", { className: styles.navLogo, children: jsxs("div", { className: styles.logoContainer, children: [logo.src ? (jsx("img", { src: logo.src, alt: logo.alt || 'Logo', className: styles.logoImage })) : (jsx("div", { className: styles.logoPlaceholder, children: logo.text?.charAt(0) || 'L' })), logo.text && (jsx("div", { className: styles.logoContent, children: jsx("span", { className: styles.logoText, children: logo.text }) }))] }) })), jsxs("div", { className: styles.navActions, children: [footer && jsx("div", { className: styles.navFooter, children: footer }), jsx("button", { className: `${styles.mobileMenuButton} ${isMobileMenuOpen ? styles.menuOpen : ''}`, onClick: toggleMobileMenu, "aria-label": "Toggle navigation menu", children: isMobileMenuOpen ? jsx(X, {}) : jsx(Menu, {}) })] })] }), jsx(AnimatePresence, { children: isMobileMenuOpen && (jsx(motion.div, { className: styles.mobileBackdrop, "data-colored-icons": coloredIconsAttr, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.2 }, onClick: () => setIsMobileMenuOpen(false), children: jsx(motion.div, { initial: { y: -20, opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: -20, opacity: 0 }, transition: { duration: 0.2 }, onClick: (e) => e.stopPropagation(), children: jsx("ul", { className: styles.navList, children: items.map((item, index) => renderNavItem(item, index)) }) }) })) })] }));
|
|
3495
3669
|
}
|
|
3496
|
-
return (jsx(Fragment, { children: jsx(motion.nav, { className: `${styles.navbar} ${styles[`navbar${variant.charAt(0).toUpperCase() + variant.slice(1)}`]} ${className}`, initial: variant === 'sidebar' ? { x: -300 } : { opacity: 0 }, animate: variant === 'sidebar' ? { x: 0 } : { opacity: 1 }, transition: { type: 'spring', stiffness: 300, damping: 30 }, children: navContent }) }));
|
|
3670
|
+
return (jsx(Fragment, { children: jsx(motion.nav, { className: `${styles.navbar} ${styles[`navbar${variant.charAt(0).toUpperCase() + variant.slice(1)}`]} ${className}`, "data-colored-icons": coloredIconsAttr, initial: variant === 'sidebar' ? { x: -300 } : { opacity: 0 }, animate: variant === 'sidebar' ? { x: 0 } : { opacity: 1 }, transition: { type: 'spring', stiffness: 300, damping: 30 }, children: navContent }) }));
|
|
3497
3671
|
};
|
|
3498
3672
|
|
|
3499
3673
|
var styles$8 = {"container":"MoodChart-module_container__MB1Vr","chart":"MoodChart-module_chart__4-spu","gridLine":"MoodChart-module_gridLine__YJpZ8","line":"MoodChart-module_line__LfeUX","xAxis":"MoodChart-module_xAxis__SeIWG","yAxis":"MoodChart-module_yAxis__sRjjE","dataPoint":"MoodChart-module_dataPoint__112P1","tooltip":"MoodChart-module_tooltip__vW59y","tooltipHeader":"MoodChart-module_tooltipHeader__U7yvN","tooltipDate":"MoodChart-module_tooltipDate__6Jjeu","tooltipRating":"MoodChart-module_tooltipRating__5A2Yx","ratingValue":"MoodChart-module_ratingValue__7Gpfx","ratingMax":"MoodChart-module_ratingMax__10WcJ","tooltipTags":"MoodChart-module_tooltipTags__FUQrU","tag":"MoodChart-module_tag__QhCh5","tooltipComment":"MoodChart-module_tooltipComment__6driJ"};
|