@stfrigerio/sito-template 0.1.80 → 0.1.82
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/Modal/Modal.d.ts +4 -38
- package/dist/components/atoms/Modal/Modal.d.ts.map +1 -1
- package/dist/components/organisms/charts/HabitTimeOfDayChart/HabitTimeOfDayChart.d.ts.map +1 -1
- package/dist/index.esm.js +106 -51
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +105 -50
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/package.json +1 -1
- package/storybook-static/assets/{ASCIIText.stories-CdJFsDcm.js → ASCIIText.stories-Chq2wqt4.js} +1 -1
- package/storybook-static/assets/{AllAtoms.stories-vADuLoia.js → AllAtoms.stories-DLznfaZg.js} +1 -1
- package/storybook-static/assets/{AnimatedContent.stories-ewE7Jlyl.js → AnimatedContent.stories-Ch4mKkA0.js} +1 -1
- package/storybook-static/assets/{AnimatedList.stories-CmT-fxZO.js → AnimatedList.stories-C6Vz0FCT.js} +1 -1
- package/storybook-static/assets/{Antigravity.stories-Bx-RRn4g.js → Antigravity.stories-BDqw3T6I.js} +1 -1
- package/storybook-static/assets/{ArrayInput.stories-H4cLlULb.js → ArrayInput.stories-BbjRW9g9.js} +1 -1
- package/storybook-static/assets/{Aurora.stories-CiKEkok2.js → Aurora.stories-DCWdNHLP.js} +1 -1
- package/storybook-static/assets/{Beams.stories-CGfOm4ei.js → Beams.stories-uVFJtZZC.js} +1 -1
- package/storybook-static/assets/{BlobCursor.stories-DiyecFOA.js → BlobCursor.stories-u-IiCtXC.js} +1 -1
- package/storybook-static/assets/{BlurText.stories-C8Bnk1EX.js → BlurText.stories-Dmjy33IC.js} +1 -1
- package/storybook-static/assets/{BooleansHeatmap.stories-DI-Borh4.js → BooleansHeatmap.stories-DD7qJ3qg.js} +1 -1
- package/storybook-static/assets/{BorderGlow.stories-DKuCmhDT.js → BorderGlow.stories-BxQiDlqs.js} +1 -1
- package/storybook-static/assets/{BubbleMenu.stories-Nuwlv60z.js → BubbleMenu.stories-G-Z2RWyT.js} +1 -1
- package/storybook-static/assets/{Button-BH8v2e05.js → Button-BEROGzCk.js} +1 -1
- package/storybook-static/assets/{Button.stories-CL91avj4.js → Button.stories-D33FxSNS.js} +1 -1
- package/storybook-static/assets/{Calendar.stories-DL-qPwAm.js → Calendar.stories-CG7X8qkI.js} +1 -1
- package/storybook-static/assets/{Card-CYbXBupP.js → Card-fcdM6HLu.js} +1 -1
- package/storybook-static/assets/{Card.stories-CLdKZH7w.js → Card.stories-DfbXQjWb.js} +1 -1
- package/storybook-static/assets/{CardNav.stories-Bkq2eiuC.js → CardNav.stories-6RzSwzWw.js} +1 -1
- package/storybook-static/assets/{Carousel.stories-CgYPp8N9.js → Carousel.stories-CspEI8EG.js} +1 -1
- package/storybook-static/assets/{Checkbox-C2Ftcw-B.js → Checkbox-By_9yb5V.js} +1 -1
- package/storybook-static/assets/{Checkbox.stories-D0G0xUmz.js → Checkbox.stories-CnNyL3UU.js} +1 -1
- package/storybook-static/assets/{ChromaGrid.stories-CgLxe4qI.js → ChromaGrid.stories-Cn7o01d6.js} +1 -1
- package/storybook-static/assets/{CircularGallery.stories-DCbGVf2c.js → CircularGallery.stories-cwObn-26.js} +1 -1
- package/storybook-static/assets/{CircularText.stories-Bmq7ZqfC.js → CircularText.stories-DhQc2-_y.js} +1 -1
- package/storybook-static/assets/{ClickSpark.stories-Dc7lLvwJ.js → ClickSpark.stories-CLdNWnu7.js} +1 -1
- package/storybook-static/assets/{ColorBends.stories-BWy7DYaP.js → ColorBends.stories-lblPWvB6.js} +1 -1
- package/storybook-static/assets/{CountUp.stories-CrEdXn4r.js → CountUp.stories-BBSkd7rN.js} +1 -1
- package/storybook-static/assets/{Counter.stories-xbB_rpHK.js → Counter.stories-DGIDnd_M.js} +1 -1
- package/storybook-static/assets/{Crosshair.stories-jb2KMdHU.js → Crosshair.stories-BxZkxORC.js} +1 -1
- package/storybook-static/assets/{Cubes.stories-VWgsinzf.js → Cubes.stories-Cq0z_fjM.js} +1 -1
- package/storybook-static/assets/{CurvedLoop.stories-D4vzwgej.js → CurvedLoop.stories-pv3XzsFk.js} +1 -1
- package/storybook-static/assets/{DarkVeil.stories-nCCiwzbM.js → DarkVeil.stories-BolNyRBQ.js} +1 -1
- package/storybook-static/assets/{DateInput-CC15k4Vf.js → DateInput-1tmPJAdU.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-B43zuCJK.js → DateInput.stories-XGj6lck2.js} +1 -1
- package/storybook-static/assets/{DecayCard.stories-pvJh7W64.js → DecayCard.stories-KfZrqHpt.js} +1 -1
- package/storybook-static/assets/{DecryptedText.stories-B1QFF8s1.js → DecryptedText.stories-kNQDPyZk.js} +1 -1
- package/storybook-static/assets/{Dither.stories-pq4xjpKd.js → Dither.stories-Cs8nVlE2.js} +1 -1
- package/storybook-static/assets/{Dock.stories-ihFTr5C5.js → Dock.stories-BFNMe7xq.js} +1 -1
- package/storybook-static/assets/{EditFAB.stories-Bs-9cRhd.js → EditFAB.stories-20q5YrbB.js} +1 -1
- package/storybook-static/assets/{EvilEye.stories-BWXnq24Y.js → EvilEye.stories-BnrzxIfd.js} +1 -1
- package/storybook-static/assets/{FadeContent.stories-pXTU-JIQ.js → FadeContent.stories-B2Vg7NtY.js} +1 -1
- package/storybook-static/assets/{FaultyTerminal.stories-BeQm-159.js → FaultyTerminal.stories-C5NnbXoc.js} +1 -1
- package/storybook-static/assets/{Fbo-VC2TXL_C.js → Fbo-B1ly9qOC.js} +1 -1
- package/storybook-static/assets/{FloatingLines.stories-XxLhow2j.js → FloatingLines.stories-D1QGzub9.js} +1 -1
- package/storybook-static/assets/{FlowingMenu.stories-CqZrs3Uu.js → FlowingMenu.stories-BAxs_ywo.js} +1 -1
- package/storybook-static/assets/{FluidGlass.stories-Drau1tiq.js → FluidGlass.stories-B3lxcmL1.js} +1 -1
- package/storybook-static/assets/{Folder.stories-CjgFkSND.js → Folder.stories-CUfwhATp.js} +1 -1
- package/storybook-static/assets/{FuzzyText.stories-Br4WpF-A.js → FuzzyText.stories-DI8R2peb.js} +1 -1
- package/storybook-static/assets/{Galaxy.stories-Crx5J_uS.js → Galaxy.stories-oz93vAik.js} +1 -1
- package/storybook-static/assets/{GhostCursor.stories-D0dTI4u7.js → GhostCursor.stories-B1IB369c.js} +1 -1
- package/storybook-static/assets/{GlareHover.stories-BqC9e1Hb.js → GlareHover.stories-DviHg4L1.js} +1 -1
- package/storybook-static/assets/{GlassSurface.stories-DZ024TSe.js → GlassSurface.stories-B2sESgaw.js} +1 -1
- package/storybook-static/assets/{GlitchText.stories-jFj-BUKV.js → GlitchText.stories-BuqkMtNy.js} +1 -1
- package/storybook-static/assets/{GooeyNav.stories-CEqhFiE8.js → GooeyNav.stories-D4grnYLS.js} +1 -1
- package/storybook-static/assets/{GradientBlinds.stories-CW5kpxYL.js → GradientBlinds.stories-DwGQO5rS.js} +1 -1
- package/storybook-static/assets/{GradientText.stories-DbHZi99L.js → GradientText.stories-BdLz2dro.js} +1 -1
- package/storybook-static/assets/{Grainient.stories-Cly0yjqz.js → Grainient.stories-BxMWusJr.js} +1 -1
- package/storybook-static/assets/{GridMotion.stories-Dv4czKOY.js → GridMotion.stories-B-LmxPAj.js} +1 -1
- package/storybook-static/assets/HabitTimeOfDayChart.stories-DodVI5KS.js +44 -0
- package/storybook-static/assets/{ImageSlideshow.stories-AfRCXiFL.js → ImageSlideshow.stories-51QNKTUQ.js} +1 -1
- package/storybook-static/assets/{Iridescence.stories-BMZkeDOP.js → Iridescence.stories-Bs2nLYXu.js} +1 -1
- package/storybook-static/assets/{LaserFlow.stories-Cjl7kx8X.js → LaserFlow.stories-BdRELLoY.js} +1 -1
- package/storybook-static/assets/{LetterGlitch.stories-CDDQYcx4.js → LetterGlitch.stories-BG6-IYnT.js} +1 -1
- package/storybook-static/assets/{LightPillar.stories-DVy-RN5g.js → LightPillar.stories-CtZ9TDUP.js} +1 -1
- package/storybook-static/assets/{LightRays.stories-B016QOBy.js → LightRays.stories-CaDyyeib.js} +1 -1
- package/storybook-static/assets/{Lightning.stories-Dzy1oJF2.js → Lightning.stories-B9QATAFy.js} +1 -1
- package/storybook-static/assets/{LineWaves.stories-BydARhov.js → LineWaves.stories-CiUIInmC.js} +1 -1
- package/storybook-static/assets/{LiquidChrome.stories-B9ZZjYRF.js → LiquidChrome.stories-DsyezGpV.js} +1 -1
- package/storybook-static/assets/{LiquidEther.stories-BkDJmjtE.js → LiquidEther.stories-Dg8WYwre.js} +1 -1
- package/storybook-static/assets/{LoadingSpinner-DcwTWgcV.js → LoadingSpinner-1USgqYdn.js} +1 -1
- package/storybook-static/assets/{LoadingSpinner.stories-Dnj2jism.js → LoadingSpinner.stories-Cd-KbND6.js} +1 -1
- package/storybook-static/assets/{MagicRings.stories-BaCliiKo.js → MagicRings.stories-CTNnBnJI.js} +1 -1
- package/storybook-static/assets/{Magnet.stories-B11_Eo8J.js → Magnet.stories-ch36PRNC.js} +1 -1
- package/storybook-static/assets/{MagnetLines.stories-Qt6rC6j8.js → MagnetLines.stories-ChB1r2tY.js} +1 -1
- package/storybook-static/assets/{Masonry.stories-1Zd-qIAf.js → Masonry.stories-CBOzxvk7.js} +1 -1
- package/storybook-static/assets/{MetaBalls.stories-BMw12NVI.js → MetaBalls.stories-dWlz4Ds5.js} +1 -1
- package/storybook-static/assets/{MetallicPaint.stories-DK_MQecd.js → MetallicPaint.stories-CcxSOjEN.js} +1 -1
- package/storybook-static/assets/{MoodChart.stories-BWVcU_OW.js → MoodChart.stories-BgsUY46X.js} +1 -1
- package/storybook-static/assets/{MotionConfigContext-WWx21lsP.js → MotionConfigContext-8tx48NVJ.js} +1 -1
- package/storybook-static/assets/{Navbar.stories-DRsZCyOK.js → Navbar.stories-CO8mIGs3.js} +1 -1
- package/storybook-static/assets/{Noise.stories-CSagy7J1.js → Noise.stories-BXZ62aBv.js} +1 -1
- package/storybook-static/assets/{NumberStepper-DDKqilmB.js → NumberStepper-DpQK9rgt.js} +1 -1
- package/storybook-static/assets/{NumberStepper.stories-ta9bT43d.js → NumberStepper.stories-fdH_OESD.js} +1 -1
- package/storybook-static/assets/{Orb.stories-B27f_Mp5.js → Orb.stories-Q3Gvtt0O.js} +1 -1
- package/storybook-static/assets/{OrbitImages.stories-pbkZL0KD.js → OrbitImages.stories-DYKNJct4.js} +1 -1
- package/storybook-static/assets/{PieChart.stories-DXibmyag.js → PieChart.stories-DYhNCUc1.js} +1 -1
- package/storybook-static/assets/{PixelBlast.stories-Cd7ELIox.js → PixelBlast.stories-Dr_e2urO.js} +1 -1
- package/storybook-static/assets/{PixelCard.stories-QYg_f-kJ.js → PixelCard.stories-DYxagn6s.js} +1 -1
- package/storybook-static/assets/{PixelSnow.stories-Cr9QWIrr.js → PixelSnow.stories-CmFmFk80.js} +1 -1
- package/storybook-static/assets/{PixelTransition.stories-C-WOp_LR.js → PixelTransition.stories-DcLJrTvU.js} +1 -1
- package/storybook-static/assets/{Plasma.stories-VHAR1xeQ.js → Plasma.stories-DCPIsxfL.js} +1 -1
- package/storybook-static/assets/{Prism.stories-DeyjYz66.js → Prism.stories-BULB8fvL.js} +1 -1
- package/storybook-static/assets/{PrismaticBurst.stories-DvkfGTAr.js → PrismaticBurst.stories-BvmGa2kj.js} +1 -1
- package/storybook-static/assets/{ProfileCard.stories-CcPQg-Hv.js → ProfileCard.stories-Dvh4QFpO.js} +1 -1
- package/storybook-static/assets/{QuantifiableHabitsChart.stories-C6VWlFI0.js → QuantifiableHabitsChart.stories-BEu9suJJ.js} +1 -1
- package/storybook-static/assets/{Radar.stories--RY7R3OS.js → Radar.stories-NWjE9LdW.js} +1 -1
- package/storybook-static/assets/{Ribbons.stories-C7n9tx_g.js → Ribbons.stories-CLPqbKy0.js} +1 -1
- package/storybook-static/assets/{RippleGrid.stories-3RXapYiy.js → RippleGrid.stories-D0U4l21Z.js} +1 -1
- package/storybook-static/assets/{RotatingText.stories-Bt6WA6FO.js → RotatingText.stories-DY81NZLB.js} +1 -1
- package/storybook-static/assets/{ScrollFloat.stories-CWx8WGsN.js → ScrollFloat.stories-BhHzMWym.js} +1 -1
- package/storybook-static/assets/{ScrollReveal.stories-BVMnOHDG.js → ScrollReveal.stories-BCXWfFIW.js} +1 -1
- package/storybook-static/assets/{ScrollVelocity.stories-DbhM6LsV.js → ScrollVelocity.stories-CQxRZHee.js} +1 -1
- package/storybook-static/assets/{SearchBar.stories-Cr7ZECC_.js → SearchBar.stories-C-nnZWH1.js} +1 -1
- package/storybook-static/assets/{SearchableDropdown-B0i1ibfz.js → SearchableDropdown-BPoVONEr.js} +1 -1
- package/storybook-static/assets/{SearchableDropdown.stories-CONyMSzp.js → SearchableDropdown.stories-B2D6NBP8.js} +1 -1
- package/storybook-static/assets/{SelectInput-DM8VWb-H.js → SelectInput-CCLJ-HdU.js} +1 -1
- package/storybook-static/assets/{SelectInput.stories-DGlt60ll.js → SelectInput.stories-Dm8quSVP.js} +1 -1
- package/storybook-static/assets/{ShapeBlur.stories-Crbv5z82.js → ShapeBlur.stories-DvmwLZse.js} +1 -1
- package/storybook-static/assets/{ShapeGrid.stories-Dj_OezwO.js → ShapeGrid.stories-DlZ2iAx6.js} +1 -1
- package/storybook-static/assets/{ShinyText.stories-DJOeAHRl.js → ShinyText.stories-REqkvy1G.js} +1 -1
- package/storybook-static/assets/{Silk.stories-BCgvZrfN.js → Silk.stories-5LO-9cQL.js} +1 -1
- package/storybook-static/assets/{SleepChart.stories-ChSrLDUZ.js → SleepChart.stories-DJFdnHZ5.js} +1 -1
- package/storybook-static/assets/{Slider-BxUKJrvC.js → Slider-DEYrg76s.js} +1 -1
- package/storybook-static/assets/{Slider.stories-BIePmg36.js → Slider.stories-og2k40z1.js} +1 -1
- package/storybook-static/assets/{SoftAurora.stories-0Wf3E-ut.js → SoftAurora.stories-U4EPU95S.js} +1 -1
- package/storybook-static/assets/{SoundDemo.stories-Bfcl6O8Y.js → SoundDemo.stories-J78qNGXU.js} +1 -1
- package/storybook-static/assets/{SplashCursor.stories-BHfxyWxe.js → SplashCursor.stories-BO2m4Pud.js} +1 -1
- package/storybook-static/assets/{SpotlightCard.stories-BN6lbioi.js → SpotlightCard.stories-DQnH0jiS.js} +1 -1
- package/storybook-static/assets/{Stack.stories-C8h__4aO.js → Stack.stories-2oDvjh2Y.js} +1 -1
- package/storybook-static/assets/{StaggeredMenu.stories-n0x61Yxa.js → StaggeredMenu.stories-DeF6_l-v.js} +1 -1
- package/storybook-static/assets/{StarBorder.stories-CklXh7Cs.js → StarBorder.stories-DnuxceeK.js} +1 -1
- package/storybook-static/assets/{SunburstChart.stories-BZAojE_q.js → SunburstChart.stories-ByAmDMXC.js} +1 -1
- package/storybook-static/assets/{Table.stories-DN7ZPpOO.js → Table.stories-BM_-AQKA.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-D8ioATag.js → Tabs.stories-Be9D-sgf.js} +1 -1
- package/storybook-static/assets/{TargetCursor.stories-BVY9PBXD.js → TargetCursor.stories-BwoTGxBB.js} +1 -1
- package/storybook-static/assets/{TextArea-B91mTJ1S.js → TextArea-DQqwBKxS.js} +1 -1
- package/storybook-static/assets/{TextArea.stories-BplQM96a.js → TextArea.stories-CfvGGw99.js} +1 -1
- package/storybook-static/assets/{TextCursor.stories-B9jN3Zaz.js → TextCursor.stories-CUs-V-I-.js} +1 -1
- package/storybook-static/assets/{TextInput-gkuohvRv.js → TextInput-QkZkrLUf.js} +1 -1
- package/storybook-static/assets/{TextInput.stories-DpR0x8bn.js → TextInput.stories-BpmAMtlW.js} +1 -1
- package/storybook-static/assets/{TextPressure.stories-BacTH6b1.js → TextPressure.stories-B3caXuKV.js} +1 -1
- package/storybook-static/assets/{TextType.stories-lI_4US1N.js → TextType.stories-DNL8zjaf.js} +1 -1
- package/storybook-static/assets/{ThemeSwitcher.stories-CMRpdYba.js → ThemeSwitcher.stories-CDu0XAN-.js} +1 -1
- package/storybook-static/assets/{Threads.stories-DClx4xSn.js → Threads.stories-Crft2hna.js} +1 -1
- package/storybook-static/assets/{TimeInput.stories-D4aYn8hp.js → TimeInput.stories-xpl2uzTO.js} +1 -1
- package/storybook-static/assets/{Toggle-zzEIyGsL.js → Toggle-Bk1MAq01.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-vK7n9Pn5.js → Toggle.stories-BzphoQYN.js} +1 -1
- package/storybook-static/assets/{ToggleButton-DNTCrVXy.js → ToggleButton-Dq5MZ2JT.js} +1 -1
- package/storybook-static/assets/{ToggleButton.stories-DwRnggIQ.js → ToggleButton.stories-CkvKN5T3.js} +1 -1
- package/storybook-static/assets/{TrueFocus.stories-D8oCteJV.js → TrueFocus.stories-D-GIGe3p.js} +1 -1
- package/storybook-static/assets/{VariableProximity.stories-BbgYWC7t.js → VariableProximity.stories-CGRj0AaF.js} +1 -1
- package/storybook-static/assets/{Waves.stories-5UKDofeV.js → Waves.stories-D7MCXF3v.js} +1 -1
- package/storybook-static/assets/{check-BxYPpesN.js → check-CqecRFgk.js} +1 -1
- package/storybook-static/assets/{chevron-down-B8zdRhXt.js → chevron-down-Diw32xyH.js} +1 -1
- package/storybook-static/assets/{chevron-right-DbZQawrO.js → chevron-right-BbMxok5Z.js} +1 -1
- package/storybook-static/assets/client-btLso6m5.js +1 -0
- package/storybook-static/assets/{createLucideIcon-DzdQJ9zJ.js → createLucideIcon-CLKNpMFx.js} +1 -1
- package/storybook-static/assets/{download-CH9m89_W.js → download-wAxlpNrd.js} +1 -1
- package/storybook-static/assets/{folder-CkfgXDdN.js → folder-BNDVJFto.js} +1 -1
- package/storybook-static/assets/{iconBase-DbnMJ-eQ.js → iconBase-0L4wR9Gc.js} +1 -1
- package/storybook-static/assets/{iframe-B6jx7rwj.js → iframe-h2tL8CDC.js} +3 -3
- package/storybook-static/assets/{index-DSxCFvRi.js → index--LmV1k19.js} +1 -1
- package/storybook-static/assets/{index-Djn89Lc7.js → index-C9HvlbD_.js} +1 -1
- package/storybook-static/assets/{index-BUSbwJpV.js → index-CGL0EAQT.js} +1 -1
- package/storybook-static/assets/{proxy-DThijezB.js → proxy-9txmJjjf.js} +1 -1
- package/storybook-static/assets/{react-18-CC2o_KTG.js → react-18-BDD9c9dl.js} +1 -1
- package/storybook-static/assets/{react-three-fiber.esm-CrZWbBn0.js → react-three-fiber.esm-CBxD6u-E.js} +1 -1
- package/storybook-static/assets/{search-DL4xWQAj.js → search-DEAccYIz.js} +1 -1
- package/storybook-static/assets/{settings-DnzSTmB8.js → settings-B6oWl9ku.js} +1 -1
- package/storybook-static/assets/{sun-BWKcGhza.js → sun-RxB88WOP.js} +1 -1
- package/storybook-static/assets/{trash-2-CERNk2Wg.js → trash-2-nAjb2GZD.js} +1 -1
- package/storybook-static/assets/{use-animation-frame-sEDY6GbM.js → use-animation-frame-Dfiys8aM.js} +1 -1
- package/storybook-static/assets/{use-in-view-DLwo7uun.js → use-in-view-BU3Foeq5.js} +1 -1
- package/storybook-static/assets/{use-motion-value-Oa0ddXN-.js → use-motion-value-sE0g715q.js} +1 -1
- package/storybook-static/assets/{use-spring-BqiqYxMo.js → use-spring-CptO6Mnm.js} +1 -1
- package/storybook-static/assets/{use-transform-D6NCQSqI.js → use-transform-Bg7wVHLN.js} +1 -1
- package/storybook-static/assets/{useSound-Z19TqyCM.js → useSound-C9sUL0x2.js} +1 -1
- package/storybook-static/assets/{users-BAv6filM.js → users-DL_eoHBs.js} +1 -1
- package/storybook-static/assets/{x-CxMBr8uV.js → x-BKY2SXF1.js} +1 -1
- package/storybook-static/iframe.html +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/assets/HabitTimeOfDayChart.stories-BdnPRzWQ.js +0 -44
- package/storybook-static/assets/client-DHjvzCEB.js +0 -1
|
@@ -18,44 +18,10 @@ export interface ModalProps {
|
|
|
18
18
|
actions?: ReactNode;
|
|
19
19
|
/** When true, the body is padded; when false, the body is flush to the edges */
|
|
20
20
|
padding?: boolean;
|
|
21
|
+
/** How the modal renders on narrow viewports. `sheet` slides from the bottom; `center` stays centered. Defaults to `sheet`. */
|
|
22
|
+
mobileVariant?: 'sheet' | 'center';
|
|
23
|
+
/** When the modal is in sheet mode on mobile, allow the user to swipe the header down to dismiss. Defaults to true. */
|
|
24
|
+
draggable?: boolean;
|
|
21
25
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Modal Component
|
|
24
|
-
*
|
|
25
|
-
* @component
|
|
26
|
-
* @description
|
|
27
|
-
* An accessible overlay dialog with a backdrop, title header, optional
|
|
28
|
-
* header actions, and a flexible body. Renders into a React portal on
|
|
29
|
-
* `document.body`, animates in/out with Framer Motion, closes on Escape
|
|
30
|
-
* key or backdrop click, and clicks inside the dialog don't propagate
|
|
31
|
-
* to the backdrop.
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* // Basic usage
|
|
35
|
-
* <Modal open={isOpen} title="Confirm" onClose={() => setIsOpen(false)}>
|
|
36
|
-
* <p>Are you sure?</p>
|
|
37
|
-
* </Modal>
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* // With header actions and wide size
|
|
41
|
-
* <Modal
|
|
42
|
-
* open={isOpen}
|
|
43
|
-
* title="Edit profile"
|
|
44
|
-
* size="wide"
|
|
45
|
-
* actions={<button onClick={save}>Save</button>}
|
|
46
|
-
* onClose={handleClose}
|
|
47
|
-
* >
|
|
48
|
-
* <ProfileForm />
|
|
49
|
-
* </Modal>
|
|
50
|
-
*
|
|
51
|
-
* @example
|
|
52
|
-
* // Flush body (no padding) for editors and full-bleed content
|
|
53
|
-
* <Modal open={isOpen} title="Document" padding={false} onClose={handleClose}>
|
|
54
|
-
* <DocEditor content={content} onSave={save} />
|
|
55
|
-
* </Modal>
|
|
56
|
-
*
|
|
57
|
-
* @param {ModalProps} props - The props for the Modal component
|
|
58
|
-
* @returns {React.ReactPortal | null} A portal rendering the modal, or null on the server
|
|
59
|
-
*/
|
|
60
26
|
export declare const Modal: React.FC<ModalProps>;
|
|
61
27
|
//# sourceMappingURL=Modal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AAMtE;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,6CAA6C;IAC7C,IAAI,EAAE,OAAO,CAAC;IACd,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,qGAAqG;IACrG,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yBAAyB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,gGAAgG;IAChG,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IACtC,0FAA0F;IAC1F,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+HAA+H;IAC/H,aAAa,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACnC,uHAAuH;IACvH,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAqBD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CA+GtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HabitTimeOfDayChart.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/charts/HabitTimeOfDayChart/HabitTimeOfDayChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAIhF,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,CAAA;AAErD,UAAU,wBAAwB;IAC9B,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACvC,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACvC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;CAC1B;
|
|
1
|
+
{"version":3,"file":"HabitTimeOfDayChart.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/charts/HabitTimeOfDayChart/HabitTimeOfDayChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAIhF,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,CAAA;AAErD,UAAU,wBAAwB;IAC9B,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACvC,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACvC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;CAC1B;AAwED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAidlE,CAAA"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { motion, AnimatePresence, useMotionValue, useTransform, animate, LayoutGroup } from 'framer-motion';
|
|
2
|
+
import { motion, AnimatePresence, useDragControls, useMotionValue, useTransform, animate, LayoutGroup } from 'framer-motion';
|
|
3
3
|
import React, { useRef, useEffect, useCallback, useState, useMemo, createContext, useContext, Fragment as Fragment$1, memo } from 'react';
|
|
4
4
|
import { createPortal } from 'react-dom';
|
|
5
5
|
import { X, Calendar as Calendar$1, ChevronDown, Search, Check, Edit, Folder, Users, Book, MessageSquare, UserPlus, Sun, Moon, Info, Github, SquareKanban, ChevronRight, Plus, Loader2, AlertTriangle, Play, Brain, FolderSearch, FilePlus, Pencil, FileText, Terminal, Trash2, GripVertical, Download, Menu, ChevronLeft, Maximize, Share2, Pause } from 'lucide-react';
|
|
@@ -720,47 +720,29 @@ const EmptyState = ({ icon, title, message, action, size = 'default', }) => {
|
|
|
720
720
|
return (jsxs("div", { className: wrapperClass, children: [icon && jsx("div", { className: styles$z.icon, children: icon }), title && jsx("h3", { className: styles$z.title, children: title }), jsx("p", { className: styles$z.message, children: message }), action && jsx("div", { className: styles$z.action, children: action })] }));
|
|
721
721
|
};
|
|
722
722
|
|
|
723
|
-
var styles$y = {"backdrop":"Modal-module_backdrop__yOx-a","dialog":"Modal-module_dialog__yEXTq","dialogCompact":"Modal-module_dialogCompact__z1Wxp","dialogWide":"Modal-module_dialogWide__9PTXK","header":"Modal-module_header__NHHKd","title":"Modal-module_title__i3R0x","headerActions":"Modal-module_headerActions__g28UN","closeButton":"Modal-module_closeButton__siC-1","body":"Modal-module_body__U7jvM","bodyFlush":"Modal-module_bodyFlush__wtk3q"};
|
|
723
|
+
var styles$y = {"backdrop":"Modal-module_backdrop__yOx-a","dialog":"Modal-module_dialog__yEXTq","dialogCompact":"Modal-module_dialogCompact__z1Wxp","dialogWide":"Modal-module_dialogWide__9PTXK","header":"Modal-module_header__NHHKd","title":"Modal-module_title__i3R0x","headerActions":"Modal-module_headerActions__g28UN","closeButton":"Modal-module_closeButton__siC-1","body":"Modal-module_body__U7jvM","bodyFlush":"Modal-module_bodyFlush__wtk3q","backdropSheet":"Modal-module_backdropSheet__o9kW3","dialogSheet":"Modal-module_dialogSheet__EjpwP","grabBar":"Modal-module_grabBar__qhl9f"};
|
|
724
724
|
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
* title="Edit profile"
|
|
747
|
-
* size="wide"
|
|
748
|
-
* actions={<button onClick={save}>Save</button>}
|
|
749
|
-
* onClose={handleClose}
|
|
750
|
-
* >
|
|
751
|
-
* <ProfileForm />
|
|
752
|
-
* </Modal>
|
|
753
|
-
*
|
|
754
|
-
* @example
|
|
755
|
-
* // Flush body (no padding) for editors and full-bleed content
|
|
756
|
-
* <Modal open={isOpen} title="Document" padding={false} onClose={handleClose}>
|
|
757
|
-
* <DocEditor content={content} onSave={save} />
|
|
758
|
-
* </Modal>
|
|
759
|
-
*
|
|
760
|
-
* @param {ModalProps} props - The props for the Modal component
|
|
761
|
-
* @returns {React.ReactPortal | null} A portal rendering the modal, or null on the server
|
|
762
|
-
*/
|
|
763
|
-
const Modal = ({ open, title, onClose, children, size = 'default', actions, padding = true, }) => {
|
|
725
|
+
const MOBILE_BREAKPOINT = '(max-width: 640px)';
|
|
726
|
+
const useIsMobile = () => {
|
|
727
|
+
const [isMobile, setIsMobile] = useState(() => {
|
|
728
|
+
if (typeof window === 'undefined')
|
|
729
|
+
return false;
|
|
730
|
+
return window.matchMedia(MOBILE_BREAKPOINT).matches;
|
|
731
|
+
});
|
|
732
|
+
useEffect(() => {
|
|
733
|
+
if (typeof window === 'undefined')
|
|
734
|
+
return;
|
|
735
|
+
const mq = window.matchMedia(MOBILE_BREAKPOINT);
|
|
736
|
+
const onChange = (e) => setIsMobile(e.matches);
|
|
737
|
+
mq.addEventListener('change', onChange);
|
|
738
|
+
return () => mq.removeEventListener('change', onChange);
|
|
739
|
+
}, []);
|
|
740
|
+
return isMobile;
|
|
741
|
+
};
|
|
742
|
+
const Modal = ({ open, title, onClose, children, size = 'default', actions, padding = true, mobileVariant = 'sheet', draggable = true, }) => {
|
|
743
|
+
const isMobile = useIsMobile();
|
|
744
|
+
const dragControls = useDragControls();
|
|
745
|
+
const headerRef = useRef(null);
|
|
764
746
|
useEffect(() => {
|
|
765
747
|
if (!open)
|
|
766
748
|
return;
|
|
@@ -773,14 +755,38 @@ const Modal = ({ open, title, onClose, children, size = 'default', actions, padd
|
|
|
773
755
|
}, [open, onClose]);
|
|
774
756
|
if (typeof document === 'undefined')
|
|
775
757
|
return null;
|
|
758
|
+
const isSheet = mobileVariant === 'sheet' && isMobile;
|
|
759
|
+
const isDraggable = isSheet && draggable;
|
|
760
|
+
const backdropClass = [styles$y.backdrop, isSheet && styles$y.backdropSheet]
|
|
761
|
+
.filter(Boolean)
|
|
762
|
+
.join(' ');
|
|
776
763
|
const dialogClass = [
|
|
777
764
|
styles$y.dialog,
|
|
778
765
|
size === 'compact' && styles$y.dialogCompact,
|
|
779
766
|
size === 'wide' && styles$y.dialogWide,
|
|
767
|
+
isSheet && styles$y.dialogSheet,
|
|
780
768
|
]
|
|
781
769
|
.filter(Boolean)
|
|
782
770
|
.join(' ');
|
|
783
|
-
|
|
771
|
+
const enteringAnimation = isSheet
|
|
772
|
+
? { initial: { y: '100%' }, animate: { y: 0 }, exit: { y: '100%' } }
|
|
773
|
+
: {
|
|
774
|
+
initial: { opacity: 0, scale: 0.96, y: 8 },
|
|
775
|
+
animate: { opacity: 1, scale: 1, y: 0 },
|
|
776
|
+
exit: { opacity: 0, scale: 0.96, y: 8 },
|
|
777
|
+
};
|
|
778
|
+
return createPortal(jsx(AnimatePresence, { children: open && (jsx(motion.div, { className: backdropClass, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.15 }, onClick: onClose, "aria-hidden": "true", children: jsxs(motion.div, { className: dialogClass, role: "dialog", "aria-modal": "true", "aria-label": title, ...enteringAnimation, transition: isSheet
|
|
779
|
+
? { type: 'spring', stiffness: 320, damping: 32 }
|
|
780
|
+
: { duration: 0.15, ease: 'easeOut' }, onClick: (e) => e.stopPropagation(), drag: isDraggable ? 'y' : false, dragControls: isDraggable ? dragControls : undefined, dragConstraints: { top: 0 }, dragElastic: { top: 0, bottom: 0.3 }, dragListener: false, onDragEnd: (_, info) => {
|
|
781
|
+
if (info.offset.y > 80)
|
|
782
|
+
onClose();
|
|
783
|
+
}, children: [isSheet && jsx("div", { className: styles$y.grabBar }), jsxs("div", { ref: headerRef, className: styles$y.header, onPointerDown: (e) => {
|
|
784
|
+
if (!isDraggable)
|
|
785
|
+
return;
|
|
786
|
+
if (e.target.closest('button'))
|
|
787
|
+
return;
|
|
788
|
+
dragControls.start(e);
|
|
789
|
+
}, children: [jsx("span", { className: styles$y.title, children: title }), actions && jsx("div", { className: styles$y.headerActions, children: actions }), jsx("button", { className: styles$y.closeButton, onClick: onClose, "aria-label": "Close modal", type: "button", children: jsx(X, { size: 16 }) })] }), jsx("div", { className: padding ? styles$y.body : styles$y.bodyFlush, children: children })] }) })) }), document.body);
|
|
784
790
|
};
|
|
785
791
|
|
|
786
792
|
var styles$x = {"checkboxLabel":"Checkbox-module_checkboxLabel__4tBVg","checkbox":"Checkbox-module_checkbox__BbJul","checkboxText":"Checkbox-module_checkboxText__oJsc9"};
|
|
@@ -4402,6 +4408,53 @@ const HabitTimeOfDayChart = ({ events, width = 800, height = 400, startDate, end
|
|
|
4402
4408
|
const active = new Set(activeHabits);
|
|
4403
4409
|
return parsed.filter(e => active.has(e.habitKey));
|
|
4404
4410
|
}, [parsed, activeHabits]);
|
|
4411
|
+
// Group events that land on the same minute (same habit) into a single
|
|
4412
|
+
// cluster so overlapping dots become one sized/counted dot. Then, for any
|
|
4413
|
+
// (date, minute) coord with multiple habits, fan them out horizontally so
|
|
4414
|
+
// different-colored dots stop masking each other.
|
|
4415
|
+
const clusters = useMemo(() => {
|
|
4416
|
+
const byKey = new Map();
|
|
4417
|
+
filtered.forEach(e => {
|
|
4418
|
+
const bucketFraction = Math.round(e.hourFraction * 60) / 60;
|
|
4419
|
+
const bucketMinute = Math.round(bucketFraction * 60) % 60;
|
|
4420
|
+
const bucketHour = Math.floor(bucketFraction);
|
|
4421
|
+
const key = `${e.date}|${e.habitKey}|${bucketFraction}`;
|
|
4422
|
+
const existing = byKey.get(key);
|
|
4423
|
+
if (existing) {
|
|
4424
|
+
existing.count += 1;
|
|
4425
|
+
}
|
|
4426
|
+
else {
|
|
4427
|
+
byKey.set(key, {
|
|
4428
|
+
habitKey: e.habitKey,
|
|
4429
|
+
date: e.date,
|
|
4430
|
+
hour: bucketHour,
|
|
4431
|
+
minute: bucketMinute,
|
|
4432
|
+
hourFraction: bucketFraction,
|
|
4433
|
+
count: 1,
|
|
4434
|
+
xOffsetPx: 0,
|
|
4435
|
+
});
|
|
4436
|
+
}
|
|
4437
|
+
});
|
|
4438
|
+
const coordGroups = new Map();
|
|
4439
|
+
byKey.forEach(c => {
|
|
4440
|
+
const coordKey = `${c.date}|${c.hourFraction}`;
|
|
4441
|
+
const arr = coordGroups.get(coordKey);
|
|
4442
|
+
if (arr)
|
|
4443
|
+
arr.push(c);
|
|
4444
|
+
else
|
|
4445
|
+
coordGroups.set(coordKey, [c]);
|
|
4446
|
+
});
|
|
4447
|
+
const out = [];
|
|
4448
|
+
const spacing = 10;
|
|
4449
|
+
coordGroups.forEach(group => {
|
|
4450
|
+
group.sort((a, b) => a.habitKey.localeCompare(b.habitKey));
|
|
4451
|
+
const mid = (group.length - 1) / 2;
|
|
4452
|
+
group.forEach((c, i) => {
|
|
4453
|
+
out.push({ ...c, xOffsetPx: (i - mid) * spacing });
|
|
4454
|
+
});
|
|
4455
|
+
});
|
|
4456
|
+
return out;
|
|
4457
|
+
}, [filtered]);
|
|
4405
4458
|
const hourlyTotals = useMemo(() => {
|
|
4406
4459
|
const totals = Array.from({ length: 24 }, (_, hour) => ({
|
|
4407
4460
|
hour,
|
|
@@ -4455,15 +4508,16 @@ const HabitTimeOfDayChart = ({ events, width = 800, height = 400, startDate, end
|
|
|
4455
4508
|
.attr('y2', chartHeight);
|
|
4456
4509
|
// Dots
|
|
4457
4510
|
const rowHeight = yScale.bandwidth();
|
|
4458
|
-
const
|
|
4511
|
+
const baseRadius = Math.min(5, Math.max(2, rowHeight / 2));
|
|
4512
|
+
const maxRadius = baseRadius * 2.2;
|
|
4459
4513
|
g.selectAll('circle.dot')
|
|
4460
|
-
.data(
|
|
4514
|
+
.data(clusters)
|
|
4461
4515
|
.enter()
|
|
4462
4516
|
.append('circle')
|
|
4463
4517
|
.attr('class', styles$7.dot)
|
|
4464
|
-
.attr('cx', d => xScale(d.hourFraction))
|
|
4518
|
+
.attr('cx', d => xScale(d.hourFraction) + d.xOffsetPx)
|
|
4465
4519
|
.attr('cy', d => (yScale(d.date) ?? 0) + rowHeight / 2)
|
|
4466
|
-
.attr('r',
|
|
4520
|
+
.attr('r', d => Math.min(maxRadius, baseRadius * Math.sqrt(d.count)))
|
|
4467
4521
|
.attr('fill', d => getColor(d.habitKey))
|
|
4468
4522
|
.attr('opacity', d => hoveredHabit && hoveredHabit !== d.habitKey ? 0.15 : 0.8)
|
|
4469
4523
|
.style('cursor', 'pointer')
|
|
@@ -4472,13 +4526,13 @@ const HabitTimeOfDayChart = ({ events, width = 800, height = 400, startDate, end
|
|
|
4472
4526
|
if (!rect)
|
|
4473
4527
|
return;
|
|
4474
4528
|
setTooltipData({
|
|
4475
|
-
x: xScale(d.hourFraction) + margin.left + rect.left,
|
|
4529
|
+
x: xScale(d.hourFraction) + d.xOffsetPx + margin.left + rect.left,
|
|
4476
4530
|
y: (yScale(d.date) ?? 0) + margin.top + rect.top,
|
|
4477
4531
|
habit: d.habitKey,
|
|
4478
4532
|
hour: d.hour,
|
|
4479
4533
|
minute: d.minute,
|
|
4480
4534
|
date: d.date,
|
|
4481
|
-
count:
|
|
4535
|
+
count: d.count,
|
|
4482
4536
|
});
|
|
4483
4537
|
})
|
|
4484
4538
|
.on('mouseleave', () => setTooltipData(null));
|
|
@@ -4574,6 +4628,7 @@ const HabitTimeOfDayChart = ({ events, width = 800, height = 400, startDate, end
|
|
|
4574
4628
|
}, [
|
|
4575
4629
|
view,
|
|
4576
4630
|
filtered,
|
|
4631
|
+
clusters,
|
|
4577
4632
|
hourlyTotals,
|
|
4578
4633
|
dateRange,
|
|
4579
4634
|
maxHourTotal,
|
|
@@ -4597,9 +4652,9 @@ const HabitTimeOfDayChart = ({ events, width = 800, height = 400, startDate, end
|
|
|
4597
4652
|
day: 'numeric',
|
|
4598
4653
|
});
|
|
4599
4654
|
};
|
|
4600
|
-
return (jsxs("div", { className: styles$7.container, children: [!hideControls && (jsx("div", { className: styles$7.controls, children: jsx("div", { className: styles$7.viewToggle, children: ['scatter', 'totals'].map(type => (jsxs("button", { className: `${styles$7.viewButton} ${view === type ? styles$7.active : ''}`, onClick: () => setView(type), title: viewConfig[type].label, children: [jsx("span", { className: styles$7.viewIcon, children: viewConfig[type].icon }), jsx("span", { className: styles$7.viewLabel, children: viewConfig[type].label })] }, type))) }) })), habits.length > 0 && (jsx("div", { className: `${styles$7.legend}${compactLegend ? ` ${styles$7.compactLegend}` : ''}`, children: habits.map(habit => (jsxs("button", { className: `${styles$7.legendItem} ${!activeHabits.includes(habit) ? styles$7.inactive : ''}`, onClick: () => toggleHabit(habit), onMouseEnter: () => setHoveredHabit(habit), onMouseLeave: () => setHoveredHabit(null), children: [jsx("span", { className: styles$7.legendEmoji, children: customHabitEmojis[habit] || '📊' }), jsx("span", { className: styles$7.legendColor, style: { backgroundColor: getColor(habit) } }), jsx("span", { className: styles$7.legendLabel, children: habit })] }, habit))) })), jsx("svg", { ref: svgRef, viewBox: `0 0 ${width} ${height}`, preserveAspectRatio: "xMidYMid meet", className: styles$7.chart }), tooltipData && (jsx("div", { className: `${styles$7.tooltip} ${styles$7.visible}`, style: { left: `${tooltipData.x}px`, top: `${tooltipData.y - 70}px` }, children: tooltipData.habit ? (jsxs(Fragment, { children: [jsxs("div", { className: styles$7.tooltipHeader, children: [jsx("span", { className: styles$7.tooltipDot, style: { backgroundColor: getColor(tooltipData.habit) } }), jsxs("span", { children: [customHabitEmojis[tooltipData.habit] || '', " ", tooltipData.habit] })] }),
|
|
4601
|
-
|
|
4602
|
-
|
|
4655
|
+
return (jsxs("div", { className: styles$7.container, children: [!hideControls && (jsx("div", { className: styles$7.controls, children: jsx("div", { className: styles$7.viewToggle, children: ['scatter', 'totals'].map(type => (jsxs("button", { className: `${styles$7.viewButton} ${view === type ? styles$7.active : ''}`, onClick: () => setView(type), title: viewConfig[type].label, children: [jsx("span", { className: styles$7.viewIcon, children: viewConfig[type].icon }), jsx("span", { className: styles$7.viewLabel, children: viewConfig[type].label })] }, type))) }) })), habits.length > 0 && (jsx("div", { className: `${styles$7.legend}${compactLegend ? ` ${styles$7.compactLegend}` : ''}`, children: habits.map(habit => (jsxs("button", { className: `${styles$7.legendItem} ${!activeHabits.includes(habit) ? styles$7.inactive : ''}`, onClick: () => toggleHabit(habit), onMouseEnter: () => setHoveredHabit(habit), onMouseLeave: () => setHoveredHabit(null), children: [jsx("span", { className: styles$7.legendEmoji, children: customHabitEmojis[habit] || '📊' }), jsx("span", { className: styles$7.legendColor, style: { backgroundColor: getColor(habit) } }), jsx("span", { className: styles$7.legendLabel, children: habit })] }, habit))) })), jsx("svg", { ref: svgRef, viewBox: `0 0 ${width} ${height}`, preserveAspectRatio: "xMidYMid meet", className: styles$7.chart }), tooltipData && (jsx("div", { className: `${styles$7.tooltip} ${styles$7.visible}`, style: { left: `${tooltipData.x}px`, top: `${tooltipData.y - 70}px` }, children: tooltipData.habit ? (jsxs(Fragment, { children: [jsxs("div", { className: styles$7.tooltipHeader, children: [jsx("span", { className: styles$7.tooltipDot, style: { backgroundColor: getColor(tooltipData.habit) } }), jsxs("span", { children: [customHabitEmojis[tooltipData.habit] || '', " ", tooltipData.habit] })] }), jsxs("div", { className: styles$7.tooltipInfo, children: [jsxs("div", { className: styles$7.tooltipDate, children: [tooltipData.date ? formatTooltipDate(tooltipData.date) : '', tooltipData.minute !== undefined
|
|
4656
|
+
? ` · ${formatTime$1(tooltipData.hour, tooltipData.minute)}`
|
|
4657
|
+
: ''] }), tooltipData.count > 1 && (jsxs("div", { className: styles$7.tooltipValue, children: [jsx("strong", { children: tooltipData.count }), jsx("span", { className: styles$7.tooltipUnits, children: "events" })] }))] })] })) : (jsxs(Fragment, { children: [jsx("div", { className: styles$7.tooltipHeader, children: jsx("span", { children: formatHour(tooltipData.hour) }) }), jsxs("div", { className: styles$7.tooltipInfo, children: [jsxs("div", { className: styles$7.tooltipValue, children: [jsx("strong", { children: tooltipData.count }), jsxs("span", { className: styles$7.tooltipUnits, children: ["event", tooltipData.count === 1 ? '' : 's'] })] }), tooltipData.breakdown && tooltipData.breakdown.length > 1 && (jsx("div", { className: styles$7.tooltipBreakdown, children: tooltipData.breakdown.map(({ habit, count }) => (jsxs("div", { className: styles$7.tooltipBreakdownRow, children: [jsx("span", { className: styles$7.tooltipDot, style: { backgroundColor: getColor(habit) } }), jsxs("span", { children: [customHabitEmojis[habit] || '', " ", habit] }), jsx("span", { className: styles$7.tooltipCount, children: count })] }, habit))) }))] })] })) }))] }));
|
|
4603
4658
|
};
|
|
4604
4659
|
|
|
4605
4660
|
var styles$6 = {"container":"SleepChart-module_container__RjHVU","header":"SleepChart-module_header__bcoWe","title":"SleepChart-module_title__6-QII","legend":"SleepChart-module_legend__VsqQj","legendItem":"SleepChart-module_legendItem__2c1nd","sleepDot":"SleepChart-module_sleepDot__qCY6O","wakeDot":"SleepChart-module_wakeDot__-RcrT","chart":"SleepChart-module_chart__jC1nL","gridLine":"SleepChart-module_gridLine__hi715","sleepBar":"SleepChart-module_sleepBar__Hk76f","xAxis":"SleepChart-module_xAxis__xzXyM","yAxis":"SleepChart-module_yAxis__7N-LA","tooltip":"SleepChart-module_tooltip__jQBv1","visible":"SleepChart-module_visible__wy0ck","tooltipHeader":"SleepChart-module_tooltipHeader__5BdPL","tooltipEmoji":"SleepChart-module_tooltipEmoji__c5vtz","tooltipInfo":"SleepChart-module_tooltipInfo__9Yrno","tooltipRow":"SleepChart-module_tooltipRow__CuDaE","tooltipLabel":"SleepChart-module_tooltipLabel__7SNzQ","tooltipValue":"SleepChart-module_tooltipValue__FoAVy","tooltipDuration":"SleepChart-module_tooltipDuration__d2wBW"};
|