@stfrigerio/sito-template 0.1.93 → 0.1.95
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/Slider/Slider.d.ts +3 -1
- package/dist/components/atoms/Slider/Slider.d.ts.map +1 -1
- package/dist/components/atoms/Slider/Slider.stories.d.ts +1 -1
- package/dist/components/atoms/Slider/Slider.stories.d.ts.map +1 -1
- package/dist/components/organisms/charts/SleepChart/SleepChart.d.ts.map +1 -1
- package/dist/index.esm.js +155 -204
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +155 -204
- 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-DrudQHKY.js → ASCIIText.stories-DFJdLu85.js} +1 -1
- package/storybook-static/assets/{AllAtoms.stories-BXID4WzW.js → AllAtoms.stories-exRxVmzu.js} +1 -1
- package/storybook-static/assets/{AnimatedContent.stories-rkECxTC5.js → AnimatedContent.stories-A1SzIOe2.js} +1 -1
- package/storybook-static/assets/{AnimatedList.stories-DceCppsl.js → AnimatedList.stories-D2Q-T7WK.js} +1 -1
- package/storybook-static/assets/{Antigravity.stories-DD3JmAmU.js → Antigravity.stories-CB3_2V40.js} +1 -1
- package/storybook-static/assets/{ArrayInput.stories-BAvKHGQB.js → ArrayInput.stories-pogP4q4b.js} +1 -1
- package/storybook-static/assets/{Aurora.stories-BYrMKBe7.js → Aurora.stories-Cu440k5S.js} +1 -1
- package/storybook-static/assets/{Beams.stories-DeRcKotI.js → Beams.stories-CzUpFwoS.js} +1 -1
- package/storybook-static/assets/{BlobCursor.stories-D_iUCdES.js → BlobCursor.stories-IsVKCCEO.js} +1 -1
- package/storybook-static/assets/{BlurText.stories-vdNkHJVm.js → BlurText.stories-BVGu0aqN.js} +1 -1
- package/storybook-static/assets/{BooleansHeatmap.stories-BZYeHLAz.js → BooleansHeatmap.stories-BthQ5ehB.js} +1 -1
- package/storybook-static/assets/{BorderGlow.stories-COWEvsmJ.js → BorderGlow.stories-BNwBLObC.js} +1 -1
- package/storybook-static/assets/{BubbleMenu.stories--nEnzDhs.js → BubbleMenu.stories-7__gkj8R.js} +1 -1
- package/storybook-static/assets/{Button-DP5stqes.js → Button-CwSLfSSb.js} +1 -1
- package/storybook-static/assets/{Button.stories-76diKoKj.js → Button.stories-DXdSC8Ub.js} +1 -1
- package/storybook-static/assets/{Calendar.stories-DY03HIKB.js → Calendar.stories-HJNrPTKA.js} +1 -1
- package/storybook-static/assets/{Card-DSyWBYs_.js → Card-CMuvydSk.js} +1 -1
- package/storybook-static/assets/{Card.stories-BfbZDXZO.js → Card.stories-C6r4Lfy1.js} +1 -1
- package/storybook-static/assets/{CardNav.stories--VrU7evh.js → CardNav.stories-WDha-__w.js} +1 -1
- package/storybook-static/assets/{Carousel.stories-XyP6q4Rg.js → Carousel.stories-C73W8Cj0.js} +1 -1
- package/storybook-static/assets/{Checkbox-JNE8OaUA.js → Checkbox-DXDBhCOJ.js} +1 -1
- package/storybook-static/assets/{Checkbox.stories-D320woed.js → Checkbox.stories-BdYI4nAD.js} +1 -1
- package/storybook-static/assets/{ChromaGrid.stories-BOeRxkcj.js → ChromaGrid.stories-DWa4kR3d.js} +1 -1
- package/storybook-static/assets/{CircularGallery.stories-BUfNOegQ.js → CircularGallery.stories-DtM7FALz.js} +1 -1
- package/storybook-static/assets/{CircularText.stories-CdV1M_if.js → CircularText.stories-BaJvxGQF.js} +1 -1
- package/storybook-static/assets/{ClickSpark.stories-1eMVZ8RC.js → ClickSpark.stories--IchxFvN.js} +1 -1
- package/storybook-static/assets/{ColorBends.stories-BF2nGf_4.js → ColorBends.stories-0cTr18l9.js} +1 -1
- package/storybook-static/assets/{CountUp.stories-Ch_SNlvE.js → CountUp.stories-Cf4NC-XR.js} +1 -1
- package/storybook-static/assets/{Counter.stories-BmI6qH5-.js → Counter.stories-CyhbcvKm.js} +1 -1
- package/storybook-static/assets/{Crosshair.stories-DQRV389y.js → Crosshair.stories-ZZ5g9eO6.js} +1 -1
- package/storybook-static/assets/{Cubes.stories-DvjAvOA1.js → Cubes.stories-CrYhlnje.js} +1 -1
- package/storybook-static/assets/{CurvedLoop.stories-NIYSKDTP.js → CurvedLoop.stories-DyK7Wlt6.js} +1 -1
- package/storybook-static/assets/{DarkVeil.stories-CApOHgXU.js → DarkVeil.stories-BEf6V85c.js} +1 -1
- package/storybook-static/assets/{DateInput-B_r0sRwf.js → DateInput-8onWa3KI.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-CfuODQ2a.js → DateInput.stories-BUDpdFa5.js} +1 -1
- package/storybook-static/assets/{DecayCard.stories-C5eS9onf.js → DecayCard.stories-DG0lwrmk.js} +1 -1
- package/storybook-static/assets/{DecryptedText.stories-BME2d8uw.js → DecryptedText.stories-BAy5in1k.js} +1 -1
- package/storybook-static/assets/{Dither.stories-B17kfr96.js → Dither.stories-B0Asjgfz.js} +1 -1
- package/storybook-static/assets/{Dock.stories-BbP_I9_M.js → Dock.stories-BrZSOCw5.js} +1 -1
- package/storybook-static/assets/{EditFAB.stories-C72Gcifb.js → EditFAB.stories-Cur6BXdD.js} +1 -1
- package/storybook-static/assets/{EvilEye.stories-CwQxTfYX.js → EvilEye.stories-C6fVeJGL.js} +1 -1
- package/storybook-static/assets/{FadeContent.stories-C3O5ZJqI.js → FadeContent.stories-Ckl198gp.js} +1 -1
- package/storybook-static/assets/{FaultyTerminal.stories-D_Wa-l4E.js → FaultyTerminal.stories-CRQCWCv-.js} +1 -1
- package/storybook-static/assets/{Fbo-BR_y4K-g.js → Fbo-DIZ3Y1HH.js} +1 -1
- package/storybook-static/assets/{FloatingLines.stories-_fGROOI7.js → FloatingLines.stories-BqgEOEZS.js} +1 -1
- package/storybook-static/assets/{FlowingMenu.stories-BRV7h8y6.js → FlowingMenu.stories-BnPI8poB.js} +1 -1
- package/storybook-static/assets/{FluidGlass.stories-BRAKJ8mn.js → FluidGlass.stories-CHAlMw3S.js} +1 -1
- package/storybook-static/assets/{Folder.stories-CmAJJ65p.js → Folder.stories-Dk5JAIQD.js} +1 -1
- package/storybook-static/assets/{FuzzyText.stories-D5aPOguz.js → FuzzyText.stories-BtDnau8f.js} +1 -1
- package/storybook-static/assets/{Galaxy.stories-Dius0tEI.js → Galaxy.stories-BzhW3GF9.js} +1 -1
- package/storybook-static/assets/{GhostCursor.stories-C7amHEKd.js → GhostCursor.stories-DieHFjxw.js} +1 -1
- package/storybook-static/assets/{GlareHover.stories-DY-YKsYr.js → GlareHover.stories-BHoXBn9o.js} +1 -1
- package/storybook-static/assets/{GlassSurface.stories-DLsyCDKY.js → GlassSurface.stories-DREe1ppH.js} +1 -1
- package/storybook-static/assets/{GlitchText.stories-C1rrXsR4.js → GlitchText.stories-ByEeawKD.js} +1 -1
- package/storybook-static/assets/{GooeyNav.stories-D-_j2rcG.js → GooeyNav.stories-BwwWfgQg.js} +1 -1
- package/storybook-static/assets/{GradientBlinds.stories-DlRCOKac.js → GradientBlinds.stories-ZaBq37aP.js} +1 -1
- package/storybook-static/assets/{GradientText.stories-DzXgS_Dw.js → GradientText.stories-OlD8JIJh.js} +1 -1
- package/storybook-static/assets/{Grainient.stories-BxlobH21.js → Grainient.stories-CfHG2dG3.js} +1 -1
- package/storybook-static/assets/{GridMotion.stories-Quhev-kR.js → GridMotion.stories-BsWVs4IR.js} +1 -1
- package/storybook-static/assets/{HabitTimeOfDayChart.stories-CYZF7xtv.js → HabitTimeOfDayChart.stories-DfBLc8St.js} +1 -1
- package/storybook-static/assets/{ImageSlideshow.stories-DDly5Ic9.js → ImageSlideshow.stories-Cpb9fisd.js} +1 -1
- package/storybook-static/assets/{Iridescence.stories-XTxYkqCF.js → Iridescence.stories-Ch3ilnYv.js} +1 -1
- package/storybook-static/assets/{LaserFlow.stories-7jtKdq16.js → LaserFlow.stories-DenbpERy.js} +1 -1
- package/storybook-static/assets/{LetterGlitch.stories-D5j_lxJj.js → LetterGlitch.stories-D1DfeFIa.js} +1 -1
- package/storybook-static/assets/{LightPillar.stories-BqNS5KNb.js → LightPillar.stories-CVxcYtjt.js} +1 -1
- package/storybook-static/assets/{LightRays.stories-D6iaHJnK.js → LightRays.stories-F5idlq2b.js} +1 -1
- package/storybook-static/assets/{Lightning.stories-C_IUlayl.js → Lightning.stories-Diu1zWyT.js} +1 -1
- package/storybook-static/assets/{LineWaves.stories-BhxZrI-h.js → LineWaves.stories-CmEm2I-A.js} +1 -1
- package/storybook-static/assets/{LiquidChrome.stories-nCxKWwyz.js → LiquidChrome.stories-CHP_FcPv.js} +1 -1
- package/storybook-static/assets/{LiquidEther.stories-CcUuoICz.js → LiquidEther.stories-Iraa-nLM.js} +1 -1
- package/storybook-static/assets/{LoadingSpinner-Bfjuw-Zo.js → LoadingSpinner-DlrNT1AA.js} +1 -1
- package/storybook-static/assets/{LoadingSpinner.stories-DUQhm1Sz.js → LoadingSpinner.stories-CnE24Tsx.js} +1 -1
- package/storybook-static/assets/{MagicRings.stories-Ru1g1tym.js → MagicRings.stories-BqJypRLP.js} +1 -1
- package/storybook-static/assets/{Magnet.stories-DyxaFbU5.js → Magnet.stories-DL0Go3qR.js} +1 -1
- package/storybook-static/assets/{MagnetLines.stories-C2KK9Cyz.js → MagnetLines.stories-CxpAiInh.js} +1 -1
- package/storybook-static/assets/{Masonry.stories-DlG7k6uD.js → Masonry.stories-flII8LRK.js} +1 -1
- package/storybook-static/assets/{MetaBalls.stories-C0ys8WzV.js → MetaBalls.stories-Bs_-0CGV.js} +1 -1
- package/storybook-static/assets/{MetallicPaint.stories-JmvMEdmW.js → MetallicPaint.stories-DiyJoRNq.js} +1 -1
- package/storybook-static/assets/{MoodChart.stories-QeN7iV6J.js → MoodChart.stories-CJ2A0E0j.js} +1 -1
- package/storybook-static/assets/{MotionConfigContext-CMLd2xKL.js → MotionConfigContext-Dyabqz-b.js} +1 -1
- package/storybook-static/assets/{Navbar.stories-BnUb1yNJ.js → Navbar.stories-B--ABN9C.js} +1 -1
- package/storybook-static/assets/{Noise.stories-DB5dPqKz.js → Noise.stories-BpKTpxeE.js} +1 -1
- package/storybook-static/assets/{NumberStepper-BHAqc-JZ.js → NumberStepper-EhG-KGNo.js} +1 -1
- package/storybook-static/assets/{NumberStepper.stories-NKLY1nB0.js → NumberStepper.stories-Ba1aWk0g.js} +1 -1
- package/storybook-static/assets/{Orb.stories-DJinwB1r.js → Orb.stories-D8od8KSg.js} +1 -1
- package/storybook-static/assets/{OrbitImages.stories-Btal255T.js → OrbitImages.stories-Dxj-5r4i.js} +1 -1
- package/storybook-static/assets/{PieChart.stories-BU2hd8Kb.js → PieChart.stories-DWw4EGwt.js} +1 -1
- package/storybook-static/assets/{PixelBlast.stories-Bmajh4vp.js → PixelBlast.stories-C3u9ldzB.js} +1 -1
- package/storybook-static/assets/{PixelCard.stories-m099s9jy.js → PixelCard.stories-BtQ8LfFf.js} +1 -1
- package/storybook-static/assets/{PixelSnow.stories-cgjrgBY1.js → PixelSnow.stories-KpmT5jBn.js} +1 -1
- package/storybook-static/assets/{PixelTransition.stories-D14Djvgj.js → PixelTransition.stories-CJs0eV-2.js} +1 -1
- package/storybook-static/assets/{Plasma.stories-CZridYYD.js → Plasma.stories-CivG0ZTB.js} +1 -1
- package/storybook-static/assets/{Prism.stories-i_0Tk_CY.js → Prism.stories--tExtMti.js} +1 -1
- package/storybook-static/assets/{PrismaticBurst.stories-C_jIMY-V.js → PrismaticBurst.stories-BEHRmqtH.js} +1 -1
- package/storybook-static/assets/{ProfileCard.stories-JbNvWjjD.js → ProfileCard.stories-Bfv1Qk_A.js} +1 -1
- package/storybook-static/assets/{QuantifiableHabitsChart.stories-DLrBQbJS.js → QuantifiableHabitsChart.stories-WPetwjBc.js} +1 -1
- package/storybook-static/assets/{Radar.stories-DnaKAKCW.js → Radar.stories-CWQNMWx2.js} +1 -1
- package/storybook-static/assets/{Ribbons.stories-BGcfu58a.js → Ribbons.stories-B3X4I9Cz.js} +1 -1
- package/storybook-static/assets/{RippleGrid.stories-tTpjV-Tq.js → RippleGrid.stories-O3VVcQWl.js} +1 -1
- package/storybook-static/assets/{RotatingText.stories-CK-IVIz-.js → RotatingText.stories-Cs-vTbFZ.js} +1 -1
- package/storybook-static/assets/{ScrollFloat.stories-CRYrV93L.js → ScrollFloat.stories-BMoNuRtU.js} +1 -1
- package/storybook-static/assets/{ScrollReveal.stories-YK72d0Xy.js → ScrollReveal.stories-C5dVXxt1.js} +1 -1
- package/storybook-static/assets/{ScrollVelocity.stories-CUSz3l2q.js → ScrollVelocity.stories-CJKSvAY4.js} +1 -1
- package/storybook-static/assets/{SearchBar.stories-C-aPnTzX.js → SearchBar.stories-Dtm9l67y.js} +1 -1
- package/storybook-static/assets/{SearchableDropdown-BXKvFCPE.js → SearchableDropdown-Dqzi4LKk.js} +1 -1
- package/storybook-static/assets/{SearchableDropdown.stories-iKxYmWQM.js → SearchableDropdown.stories-BG3ESCwq.js} +1 -1
- package/storybook-static/assets/{SelectInput-Be7eIjUH.js → SelectInput-BUDt34Ej.js} +1 -1
- package/storybook-static/assets/{SelectInput.stories-Bb48rjs9.js → SelectInput.stories-Dxe4mL9o.js} +1 -1
- package/storybook-static/assets/{ShapeBlur.stories-DYxp8y9g.js → ShapeBlur.stories-C2sk-BXL.js} +1 -1
- package/storybook-static/assets/{ShapeGrid.stories-CPpN93l4.js → ShapeGrid.stories-ihKrWukc.js} +1 -1
- package/storybook-static/assets/{ShinyText.stories-Cxp_7hew.js → ShinyText.stories-DwNgYe9N.js} +1 -1
- package/storybook-static/assets/{Silk.stories-CwXNCrdC.js → Silk.stories-CzFSFGhP.js} +1 -1
- package/storybook-static/assets/SleepChart-DtIKf_2P.css +1 -0
- package/storybook-static/assets/SleepChart.stories-CZufs6Gb.js +58 -0
- package/storybook-static/assets/Slider-BRAq3fxE.js +4 -0
- package/storybook-static/assets/Slider-DrZJBbk1.css +1 -0
- package/storybook-static/assets/Slider.stories-CK522MN_.js +95 -0
- package/storybook-static/assets/{SoftAurora.stories-iOX7-JKx.js → SoftAurora.stories-DqOpOzFw.js} +1 -1
- package/storybook-static/assets/{SoundDemo.stories-C5Sp_LFz.js → SoundDemo.stories-BkFbK-1Y.js} +1 -1
- package/storybook-static/assets/{SplashCursor.stories-ChDcNXc2.js → SplashCursor.stories-ClGNxcw4.js} +1 -1
- package/storybook-static/assets/{SpotlightCard.stories-BxsBCkBs.js → SpotlightCard.stories-B-Hpffrl.js} +1 -1
- package/storybook-static/assets/{Stack.stories-DcQQpUly.js → Stack.stories-DLN47Bj-.js} +1 -1
- package/storybook-static/assets/{StaggeredMenu.stories-ytn-S4UG.js → StaggeredMenu.stories-DL6I7cbu.js} +1 -1
- package/storybook-static/assets/{StarBorder.stories-baIHr7ZF.js → StarBorder.stories-BIP0gskB.js} +1 -1
- package/storybook-static/assets/{SunburstChart.stories-AdWEy3k1.js → SunburstChart.stories-Bb0VKYC3.js} +1 -1
- package/storybook-static/assets/{Table.stories-D7REaXIg.js → Table.stories-DeMvjpqQ.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-CgPLxz_J.js → Tabs.stories-qZulSRrO.js} +1 -1
- package/storybook-static/assets/{TargetCursor.stories-BfHvmv8M.js → TargetCursor.stories-4pSN2J9r.js} +1 -1
- package/storybook-static/assets/{TextArea-CI0Iii5e.js → TextArea-CvRZ3TaY.js} +1 -1
- package/storybook-static/assets/{TextArea.stories-BfkmhGar.js → TextArea.stories-teCx-H2z.js} +1 -1
- package/storybook-static/assets/{TextCursor.stories-Dse27pLe.js → TextCursor.stories-pry7pdoW.js} +1 -1
- package/storybook-static/assets/{TextInput-l5gigbUc.js → TextInput-BPdFcHbk.js} +1 -1
- package/storybook-static/assets/{TextInput.stories-C_7KwnOR.js → TextInput.stories-B-HTRiwl.js} +1 -1
- package/storybook-static/assets/{TextPressure.stories-DzWVYhpT.js → TextPressure.stories-BdtIOM1Y.js} +1 -1
- package/storybook-static/assets/{TextType.stories-540S8Jrd.js → TextType.stories-Bq-Vo4qL.js} +1 -1
- package/storybook-static/assets/{ThemeSwitcher.stories-d1__KYaR.js → ThemeSwitcher.stories-SgJg0LCK.js} +1 -1
- package/storybook-static/assets/{Threads.stories-uvC9D_ic.js → Threads.stories-hqtYUEu-.js} +1 -1
- package/storybook-static/assets/{TimeInput.stories-BuWTsguj.js → TimeInput.stories-CPOqj_Se.js} +1 -1
- package/storybook-static/assets/{Toggle-BCT0x7tb.js → Toggle-CAPcFsLF.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-2ejJZWPf.js → Toggle.stories-O2_0c-1s.js} +1 -1
- package/storybook-static/assets/{ToggleButton-Be7o1e7W.js → ToggleButton-BZOAtsmB.js} +1 -1
- package/storybook-static/assets/{ToggleButton.stories-8_95wiIK.js → ToggleButton.stories-JG_Pazh7.js} +1 -1
- package/storybook-static/assets/{TrueFocus.stories-vBPyw8OY.js → TrueFocus.stories-rLnKDbsk.js} +1 -1
- package/storybook-static/assets/{VariableProximity.stories-C5OAoM-h.js → VariableProximity.stories-RaopvofU.js} +1 -1
- package/storybook-static/assets/{Waves.stories-8sL9f-Bt.js → Waves.stories-oO9FrJAS.js} +1 -1
- package/storybook-static/assets/{calendar-BF_yL0AR.js → calendar-JsvgBBDH.js} +1 -1
- package/storybook-static/assets/{chart-column-DLJS-5fY.js → chart-column-mrC32qXf.js} +1 -1
- package/storybook-static/assets/{check-DwJ_VWn6.js → check-CvrIUYEl.js} +1 -1
- package/storybook-static/assets/{chevron-down-DyLSJ8Qt.js → chevron-down-BUZZ9BTx.js} +1 -1
- package/storybook-static/assets/{chevron-right-CTFXx8rw.js → chevron-right-SVhPWVWz.js} +1 -1
- package/storybook-static/assets/client-7pDjGlit.js +1 -0
- package/storybook-static/assets/{createLucideIcon-zL8wv6u3.js → createLucideIcon-D1rlWUhC.js} +1 -1
- package/storybook-static/assets/{download-CcEdXgFT.js → download-Bmqc20p3.js} +1 -1
- package/storybook-static/assets/{folder-Dd3pJY4q.js → folder-BCJqv57N.js} +1 -1
- package/storybook-static/assets/{iconBase-Cfr82KeI.js → iconBase-Bvu3HEFH.js} +1 -1
- package/storybook-static/assets/{iframe-CY9B_G0D.js → iframe-D7y7FUTK.js} +3 -3
- package/storybook-static/assets/{index-BzOjSiRu.js → index-BCGRwJ5q.js} +1 -1
- package/storybook-static/assets/{index-REPfzYsl.js → index-C_G3JJLn.js} +1 -1
- package/storybook-static/assets/{index-CL-OfYDM.js → index-um02zCcj.js} +1 -1
- package/storybook-static/assets/{proxy-Dl3L0B2p.js → proxy-Ce-uTDDv.js} +1 -1
- package/storybook-static/assets/{react-18-BbtU51zU.js → react-18-DlLnXErP.js} +1 -1
- package/storybook-static/assets/{react-three-fiber.esm-CznFgls0.js → react-three-fiber.esm-ssg-DJvA.js} +1 -1
- package/storybook-static/assets/{search-DhKMpr6w.js → search-BpBodH3r.js} +1 -1
- package/storybook-static/assets/{settings-m_zwbUf_.js → settings-D8D67Id0.js} +1 -1
- package/storybook-static/assets/{sun-BStn-dFd.js → sun-BQcJSsaQ.js} +1 -1
- package/storybook-static/assets/{trash-2-DykSITTu.js → trash-2-D6WRmoL3.js} +1 -1
- package/storybook-static/assets/{use-animation-frame-D4QJ-C9-.js → use-animation-frame-CO9S19qn.js} +1 -1
- package/storybook-static/assets/{use-in-view-Dpa3pAJ3.js → use-in-view-DZc-byXh.js} +1 -1
- package/storybook-static/assets/{use-motion-value-h87hhTXC.js → use-motion-value-mO9NrpTN.js} +1 -1
- package/storybook-static/assets/{use-spring-Ch98J2Hp.js → use-spring-CdsbAGfL.js} +1 -1
- package/storybook-static/assets/{use-transform-BqQ2Wgir.js → use-transform-DcYgqXpl.js} +1 -1
- package/storybook-static/assets/{useSound-CXRse1g5.js → useSound-Ape9PZyo.js} +1 -1
- package/storybook-static/assets/{users-Ddo-Fe6m.js → users-BQ1OQC3n.js} +1 -1
- package/storybook-static/assets/{x-WlhVA84m.js → x-Cq6n8SKu.js} +1 -1
- package/storybook-static/iframe.html +1 -1
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/assets/SleepChart-CjpdWR_T.css +0 -1
- package/storybook-static/assets/SleepChart.stories-BYJFOKo_.js +0 -58
- package/storybook-static/assets/Slider-BXnBVqND.js +0 -4
- package/storybook-static/assets/Slider-BfT1m14M.css +0 -1
- package/storybook-static/assets/Slider.stories-Dc4IqM8s.js +0 -99
- package/storybook-static/assets/client-pOOYpA6s.js +0 -1
|
@@ -74,6 +74,8 @@ export interface SliderProps {
|
|
|
74
74
|
tooltipContent?: (value: number) => string;
|
|
75
75
|
/** Sound configuration for interactions */
|
|
76
76
|
soundConfig?: ComponentSoundConfig;
|
|
77
|
+
/** Visual variant: 'track' (default range slider) or 'dots' (tally strip) */
|
|
78
|
+
variant?: 'track' | 'dots';
|
|
77
79
|
}
|
|
78
80
|
/**
|
|
79
81
|
* Slider component — responsive, accessible range input with a styled track, fill, and thumb.
|
|
@@ -81,5 +83,5 @@ export interface SliderProps {
|
|
|
81
83
|
* The thumb is inset at the track endpoints so it never overflows. Drag state is tracked
|
|
82
84
|
* via pointer events (works on mouse, touch, and pen).
|
|
83
85
|
*/
|
|
84
|
-
export declare function Slider({ value, onChange, min, max, step, label, showValue, valueFormatter, labels, config, disabled, className, style, loading, colorFunction, showTooltip, tooltipContent, soundConfig, }: SliderProps): import("react/jsx-runtime").JSX.Element;
|
|
86
|
+
export declare function Slider({ value, onChange, min, max, step, label, showValue, valueFormatter, labels, config, disabled, className, style, loading, colorFunction, showTooltip, tooltipContent, soundConfig, variant, }: SliderProps): import("react/jsx-runtime").JSX.Element;
|
|
85
87
|
//# sourceMappingURL=Slider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Slider/Slider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAGlF;;;GAGG;AACH,MAAM,WAAW,WAAW;IACxB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,0BAA0B;IAC1B,MAAM,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,yBAAyB;IACzB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,8BAA8B;IAC9B,UAAU,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACL;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IACxB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,sDAAsD;IACtD,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,mCAAmC;IACnC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,2CAA2C;IAC3C,WAAW,CAAC,EAAE,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Slider/Slider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAGlF;;;GAGG;AACH,MAAM,WAAW,WAAW;IACxB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,0BAA0B;IAC1B,MAAM,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,yBAAyB;IACzB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,8BAA8B;IAC9B,UAAU,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACL;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IACxB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,sDAAsD;IACtD,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,mCAAmC;IACnC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,2CAA2C;IAC3C,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,EACnB,KAAK,EACL,QAAQ,EACR,GAAO,EACP,GAAS,EACT,IAAQ,EACR,KAAK,EACL,SAAiB,EACjB,cAAc,EACd,MAAW,EACX,MAAW,EACX,QAAgB,EAChB,SAAc,EACd,KAAU,EACV,OAAe,EACf,aAAa,EACb,WAAmB,EACnB,cAAc,EACd,WAAW,EACX,OAAiB,GACpB,EAAE,WAAW,2CAwNb"}
|
|
@@ -7,5 +7,5 @@ export declare const Default: Story;
|
|
|
7
7
|
export declare const Rating: Story;
|
|
8
8
|
export declare const Temperature: Story;
|
|
9
9
|
export declare const MoodTracker: Story;
|
|
10
|
-
export declare const
|
|
10
|
+
export declare const Dots: Story;
|
|
11
11
|
//# sourceMappingURL=Slider.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Slider/Slider.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAe,MAAM,UAAU,CAAC;AAE/C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"Slider.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Slider/Slider.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAe,MAAM,UAAU,CAAC;AAE/C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CAwB7B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAYnC,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAGF,eAAO,MAAM,MAAM,EAAE,KAoBpB,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,KAkBzB,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,KAuBzB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,KAYlB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SleepChart.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/charts/SleepChart/SleepChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAA;AAInE,UAAU,SAAS;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAWD,UAAU,eAAe;IACrB,SAAS,EAAE,SAAS,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC;
|
|
1
|
+
{"version":3,"file":"SleepChart.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/charts/SleepChart/SleepChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAA;AAInE,UAAU,SAAS;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAWD,UAAU,eAAe;IACrB,SAAS,EAAE,SAAS,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC;AA0CD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwQhD,CAAA"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1584,7 +1584,7 @@ const TallyMarks = ({ count, color }) => {
|
|
|
1584
1584
|
};
|
|
1585
1585
|
const TallyRow = ({ value, label, icon, color, disabled, emptyHint, className, customStyles, onIncrement, onDecrement, ariaLabel, isDecrementDisabled, isIncrementDisabled }) => {
|
|
1586
1586
|
const resolvedColor = color || 'currentColor';
|
|
1587
|
-
return (jsxs("div", { "aria-label": ariaLabel, "aria-disabled": disabled || undefined, className: `${className} ${styles$q.tallyRow}`, style: customStyles.container, children: [
|
|
1587
|
+
return (jsxs("div", { "aria-label": ariaLabel, "aria-disabled": disabled || undefined, className: `${className} ${styles$q.tallyRow}`, style: customStyles.container, children: [icon && (jsx("span", { className: styles$q.tallyIcon, style: { color: resolvedColor, ...customStyles.icon }, children: icon })), label && (jsx("span", { className: styles$q.tallyLabel, style: customStyles.label, children: label })), jsx("div", { className: styles$q.tallyBody, children: value <= 0 ? (jsx("span", { className: styles$q.tallyHint, children: emptyHint })) : (jsx(TallyMarks, { count: value, color: resolvedColor })) }), jsx("button", { type: "button", className: styles$q.tallyButton, onClick: onDecrement, disabled: isDecrementDisabled, "aria-label": `Decrease ${label || 'value'}`, children: jsx("span", { className: styles$q.tallyButtonIcon, children: "\u2212" }) }), jsx("span", { className: styles$q.tallyValue, style: { color: resolvedColor, ...customStyles.value }, "aria-hidden": "true", children: value }), jsx("button", { type: "button", className: styles$q.tallyButton, onClick: onIncrement, disabled: isIncrementDisabled, "aria-label": `Increase ${label || 'value'}`, children: jsx("span", { className: styles$q.tallyButtonIcon, children: "+" }) })] }));
|
|
1588
1588
|
};
|
|
1589
1589
|
|
|
1590
1590
|
var styles$p = {"button":"ToggleButton-module_button__DTuyY","background":"ToggleButton-module_background__NwfTp","content":"ToggleButton-module_content__NHqIN","iconWrapper":"ToggleButton-module_iconWrapper__yN4sP","icon":"ToggleButton-module_icon__r8juX","label":"ToggleButton-module_label__4mPJP","hideMobile":"ToggleButton-module_hideMobile__GFAc3","checkmark":"ToggleButton-module_checkmark__ZJwf-","ripple":"ToggleButton-module_ripple__2-faB","small":"ToggleButton-module_small__MhfoN","large":"ToggleButton-module_large__A3naL","default":"ToggleButton-module_default__q8QaZ","active":"ToggleButton-module_active__4DjlR","outlined":"ToggleButton-module_outlined__OtqJB","filled":"ToggleButton-module_filled__LySNn","ghost":"ToggleButton-module_ghost__9KXcb","active-primary":"ToggleButton-module_active-primary__vXMP7","active-secondary":"ToggleButton-module_active-secondary__9Ttdx","active-success":"ToggleButton-module_active-success__oi0rr","active-danger":"ToggleButton-module_active-danger__VUdxr","active-warning":"ToggleButton-module_active-warning__77nSu","animation-scale":"ToggleButton-module_animation-scale__j-3mJ","scaleAnimation":"ToggleButton-module_scaleAnimation__Ms1j2","animation-rotate":"ToggleButton-module_animation-rotate__pBmfc","rotateAnimation":"ToggleButton-module_rotateAnimation__xWZJ5","animation-flip":"ToggleButton-module_animation-flip__ErAbm","flipAnimation":"ToggleButton-module_flipAnimation__qwDTb","disabled":"ToggleButton-module_disabled__Gv5ji"};
|
|
@@ -1704,7 +1704,7 @@ const ToggleButton = ({ active, onClick, icon, label, disabled = false, size = '
|
|
|
1704
1704
|
}, disabled: disabled, whileHover: !disabled ? { scale: 1.05 } : undefined, whileTap: !disabled ? { scale: 0.95 } : undefined, title: tooltip, "aria-pressed": active, "aria-label": label, ...handlers, children: [jsx(motion.div, { className: styles$p.background, variants: backgroundVariants, initial: "inactive", animate: active ? "active" : "inactive" }), jsxs("div", { className: styles$p.content, children: [icon && (jsx(motion.div, { className: styles$p.iconWrapper, variants: iconVariants[animation], initial: "inactive", animate: active ? "active" : "inactive", transition: { duration: 0.3 }, children: typeof icon === 'string' ? (jsx("span", { className: styles$p.icon, children: icon })) : (jsx("div", { className: styles$p.icon, children: icon })) })), label && jsx("span", { className: labelClasses, children: label }), jsx(AnimatePresence, { children: showCheckmark && active && (jsx(motion.div, { className: styles$p.checkmark, variants: checkmarkVariants, initial: "hidden", animate: "visible", exit: "hidden", children: jsx("svg", { viewBox: "0 0 24 24", fill: "none", children: jsx("path", { d: "M20 6L9 17L4 12", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round" }) }) })) })] }), jsx(AnimatePresence, { children: active && (jsx(motion.div, { className: styles$p.ripple, initial: { scale: 0, opacity: 0.5 }, animate: { scale: 2, opacity: 0 }, exit: { scale: 0, opacity: 0 }, transition: { duration: 0.6 } })) })] }));
|
|
1705
1705
|
};
|
|
1706
1706
|
|
|
1707
|
-
var styles$o = {"slider":"Slider-module_slider__RD4G7","label":"Slider-module_label__j4H8M","sliderContainer":"Slider-module_sliderContainer__kQICC","track":"Slider-module_track__fQ-oP","dragging":"Slider-module_dragging__rynPv","fill":"Slider-module_fill__AYR4-","input":"Slider-module_input__fqY-G","thumb":"Slider-module_thumb__yQJho","tooltip":"Slider-module_tooltip__ZubHR","tooltipArrow":"Slider-module_tooltipArrow__1aV9s","valueDisplay":"Slider-module_valueDisplay__V6caL","labelsContainer":"Slider-module_labelsContainer__F6ojF","labelItem":"Slider-module_labelItem__FuEaY","size-sm":"Slider-module_size-sm__Y2bmS","size-lg":"Slider-module_size-lg__RSnPf","disabled":"Slider-module_disabled__gxYoH","loading":"Slider-module_loading__6FkKb","loadingTrack":"Slider-module_loadingTrack__8ItT2","loadingIndicator":"Slider-module_loadingIndicator__Elydq"};
|
|
1707
|
+
var styles$o = {"slider":"Slider-module_slider__RD4G7","label":"Slider-module_label__j4H8M","sliderContainer":"Slider-module_sliderContainer__kQICC","track":"Slider-module_track__fQ-oP","dragging":"Slider-module_dragging__rynPv","fill":"Slider-module_fill__AYR4-","input":"Slider-module_input__fqY-G","thumb":"Slider-module_thumb__yQJho","tooltip":"Slider-module_tooltip__ZubHR","tooltipArrow":"Slider-module_tooltipArrow__1aV9s","valueDisplay":"Slider-module_valueDisplay__V6caL","labelsContainer":"Slider-module_labelsContainer__F6ojF","labelItem":"Slider-module_labelItem__FuEaY","dotsContainer":"Slider-module_dotsContainer__zpcZe","dot":"Slider-module_dot__TkGh5","dotFilled":"Slider-module_dotFilled__n779E","size-sm":"Slider-module_size-sm__Y2bmS","size-lg":"Slider-module_size-lg__RSnPf","disabled":"Slider-module_disabled__gxYoH","loading":"Slider-module_loading__6FkKb","loadingTrack":"Slider-module_loadingTrack__8ItT2","loadingIndicator":"Slider-module_loadingIndicator__Elydq"};
|
|
1708
1708
|
|
|
1709
1709
|
/**
|
|
1710
1710
|
* Slider component — responsive, accessible range input with a styled track, fill, and thumb.
|
|
@@ -1712,7 +1712,7 @@ var styles$o = {"slider":"Slider-module_slider__RD4G7","label":"Slider-module_la
|
|
|
1712
1712
|
* The thumb is inset at the track endpoints so it never overflows. Drag state is tracked
|
|
1713
1713
|
* via pointer events (works on mouse, touch, and pen).
|
|
1714
1714
|
*/
|
|
1715
|
-
function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValue = false, valueFormatter, labels = [], config = {}, disabled = false, className = '', style = {}, loading = false, colorFunction, showTooltip = false, tooltipContent, soundConfig, }) {
|
|
1715
|
+
function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValue = false, valueFormatter, labels = [], config = {}, disabled = false, className = '', style = {}, loading = false, colorFunction, showTooltip = false, tooltipContent, soundConfig, variant = 'track', }) {
|
|
1716
1716
|
const { handlers, playSound } = useComponentSound(soundConfig);
|
|
1717
1717
|
const [isDragging, setIsDragging] = useState(false);
|
|
1718
1718
|
const { colors = {}, size = 'md' } = config;
|
|
@@ -1749,6 +1749,28 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
|
|
|
1749
1749
|
if (loading) {
|
|
1750
1750
|
return (jsxs("div", { className: `${styles$o.slider} ${sizeClass} ${styles$o.loading} ${className}`, style: style, children: [label && jsx("label", { className: styles$o.label, children: label }), jsx("div", { className: styles$o.loadingTrack, children: jsx(motion.div, { className: styles$o.loadingIndicator, animate: { x: ['-100%', '200%'] }, transition: { repeat: Infinity, duration: 1.5, ease: 'easeInOut' } }) })] }));
|
|
1751
1751
|
}
|
|
1752
|
+
if (variant === 'dots') {
|
|
1753
|
+
const dotCount = Math.max(0, Math.floor((max - min) / step));
|
|
1754
|
+
const dotValues = Array.from({ length: dotCount }, (_, i) => min + (i + 1) * step);
|
|
1755
|
+
const handleDotClick = (dotValue) => {
|
|
1756
|
+
if (disabled || loading)
|
|
1757
|
+
return;
|
|
1758
|
+
playSound('click');
|
|
1759
|
+
const next = value === dotValue ? dotValue - step : dotValue;
|
|
1760
|
+
onChange(Math.max(min, next));
|
|
1761
|
+
};
|
|
1762
|
+
return (jsxs("div", { className: `${styles$o.slider} ${sizeClass} ${stateClass} ${className}`, style: style, ...handlers, children: [label && jsx("label", { className: styles$o.label, children: label }), jsx("div", { className: styles$o.dotsContainer, role: "slider", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value, "aria-label": label, children: dotValues.map((dotValue) => {
|
|
1763
|
+
const filled = dotValue <= value;
|
|
1764
|
+
return (jsx("button", { type: "button", className: `${styles$o.dot} ${filled ? styles$o.dotFilled : ''}`, style: filled
|
|
1765
|
+
? {
|
|
1766
|
+
backgroundColor: dynamicColor,
|
|
1767
|
+
borderColor: dynamicColor,
|
|
1768
|
+
}
|
|
1769
|
+
: undefined, onClick: () => handleDotClick(dotValue), disabled: disabled, "aria-label": valueFormatter
|
|
1770
|
+
? valueFormatter(dotValue)
|
|
1771
|
+
: `Set to ${dotValue}` }, dotValue));
|
|
1772
|
+
}) }), showValue && (jsx("div", { className: styles$o.valueDisplay, style: { color: dynamicColor }, children: formatValue(value) }))] }));
|
|
1773
|
+
}
|
|
1752
1774
|
// Inset the thumb so its bounding box stays inside the track at 0/100%.
|
|
1753
1775
|
// At percentage=0: marginLeft=0 → thumb flush-left. At 100%: marginLeft=-thumbSize → flush-right.
|
|
1754
1776
|
const insetStyle = {
|
|
@@ -4573,7 +4595,7 @@ const HabitTimeOfDayChart = ({ events, width = 800, height = 400, startDate, end
|
|
|
4573
4595
|
: ''] }), 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))) }))] })] })) }))] }));
|
|
4574
4596
|
};
|
|
4575
4597
|
|
|
4576
|
-
var styles$6 = {"container":"SleepChart-module_container__RjHVU","header":"SleepChart-module_header__bcoWe","
|
|
4598
|
+
var styles$6 = {"container":"SleepChart-module_container__RjHVU","header":"SleepChart-module_header__bcoWe","eyebrow":"SleepChart-module_eyebrow__KH0ox","title":"SleepChart-module_title__6-QII","chart":"SleepChart-module_chart__jC1nL","gridLine":"SleepChart-module_gridLine__hi715","gridLineAccent":"SleepChart-module_gridLineAccent__Sk-l6","sleepBar":"SleepChart-module_sleepBar__Hk76f","sleepBarHover":"SleepChart-module_sleepBarHover__cBTca","squiggle":"SleepChart-module_squiggle__Hxfjx","endpoint":"SleepChart-module_endpoint__vB4WD","endpointSleep":"SleepChart-module_endpointSleep__FA1vK","endpointWake":"SleepChart-module_endpointWake__CWEOB","xAxis":"SleepChart-module_xAxis__xzXyM","yAxis":"SleepChart-module_yAxis__7N-LA","tooltip":"SleepChart-module_tooltip__jQBv1","visible":"SleepChart-module_visible__wy0ck","tooltipDate":"SleepChart-module_tooltipDate__g2kOA","tooltipBody":"SleepChart-module_tooltipBody__RamWJ","tooltipRow":"SleepChart-module_tooltipRow__CuDaE","tooltipTotal":"SleepChart-module_tooltipTotal__5v3dE"};
|
|
4577
4599
|
|
|
4578
4600
|
const parseTimeToDecimal = (time) => {
|
|
4579
4601
|
const [hours, minutes] = time.split(':').map(Number);
|
|
@@ -4581,288 +4603,217 @@ const parseTimeToDecimal = (time) => {
|
|
|
4581
4603
|
};
|
|
4582
4604
|
const formatTime = (hour) => {
|
|
4583
4605
|
const h24 = Math.floor(hour % 24);
|
|
4584
|
-
const h12 = h24 === 0 ? 12 : h24 > 12 ? h24 - 12 : h24;
|
|
4585
|
-
const ampm = h24 >= 12 ? 'PM' : 'AM';
|
|
4586
4606
|
const minutes = Math.round((hour % 1) * 60);
|
|
4587
|
-
return `${
|
|
4607
|
+
return `${h24.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;
|
|
4608
|
+
};
|
|
4609
|
+
const formatDuration = (decimal) => {
|
|
4610
|
+
const h = Math.floor(decimal);
|
|
4611
|
+
const m = Math.round((decimal % 1) * 60);
|
|
4612
|
+
return `${h}h ${m.toString().padStart(2, '0')}m`;
|
|
4588
4613
|
};
|
|
4589
|
-
|
|
4614
|
+
// Build an SVG sine-wave path between two x-coordinates at a given baseline y.
|
|
4615
|
+
// Two quadratic curves per cycle keep the curve smooth without needing cubic control points.
|
|
4616
|
+
const buildSquigglePath = (x1, x2, y, amplitude, wavelength) => {
|
|
4617
|
+
const distance = Math.max(0, x2 - x1);
|
|
4618
|
+
if (distance === 0)
|
|
4619
|
+
return `M ${x1} ${y}`;
|
|
4620
|
+
const cycles = Math.max(1, Math.round(distance / wavelength));
|
|
4621
|
+
const halfStep = distance / (cycles * 2);
|
|
4622
|
+
let path = `M ${x1} ${y}`;
|
|
4623
|
+
for (let i = 0; i < cycles * 2; i++) {
|
|
4624
|
+
const cx = x1 + (i + 0.5) * halfStep;
|
|
4625
|
+
const cy = y + (i % 2 === 0 ? -amplitude : amplitude);
|
|
4626
|
+
const ex = x1 + (i + 1) * halfStep;
|
|
4627
|
+
path += ` Q ${cx} ${cy} ${ex} ${y}`;
|
|
4628
|
+
}
|
|
4629
|
+
return path;
|
|
4630
|
+
};
|
|
4631
|
+
const SleepChart = ({ sleepData, width = 800, height = 400, onDateClick, }) => {
|
|
4590
4632
|
const svgRef = useRef(null);
|
|
4591
4633
|
const [tooltipData, setTooltipData] = useState(null);
|
|
4592
|
-
const margin = useMemo(() => ({ top:
|
|
4634
|
+
const margin = useMemo(() => ({ top: 12, right: 16, bottom: 32, left: 64 }), []);
|
|
4593
4635
|
const chartWidth = width - margin.left - margin.right;
|
|
4594
4636
|
const chartHeight = height - margin.top - margin.bottom;
|
|
4595
|
-
// Hide tooltip on scroll
|
|
4596
4637
|
useEffect(() => {
|
|
4597
|
-
const handleScroll = () =>
|
|
4598
|
-
setTooltipData(null);
|
|
4599
|
-
};
|
|
4638
|
+
const handleScroll = () => setTooltipData(null);
|
|
4600
4639
|
window.addEventListener('scroll', handleScroll, true);
|
|
4601
|
-
return () =>
|
|
4602
|
-
window.removeEventListener('scroll', handleScroll, true);
|
|
4603
|
-
};
|
|
4640
|
+
return () => window.removeEventListener('scroll', handleScroll, true);
|
|
4604
4641
|
}, []);
|
|
4605
4642
|
useEffect(() => {
|
|
4606
4643
|
if (!svgRef.current || sleepData.length === 0)
|
|
4607
4644
|
return;
|
|
4608
4645
|
const svg = d3.select(svgRef.current);
|
|
4609
4646
|
svg.selectAll('*').remove();
|
|
4610
|
-
// Add invisible rect to detect mouse leave events
|
|
4611
4647
|
svg.append('rect')
|
|
4612
4648
|
.attr('width', width)
|
|
4613
4649
|
.attr('height', height)
|
|
4614
4650
|
.attr('fill', 'transparent')
|
|
4615
4651
|
.style('pointer-events', 'all')
|
|
4616
|
-
.on('mouseleave', () =>
|
|
4617
|
-
|
|
4618
|
-
|
|
4619
|
-
const g = svg.append('g')
|
|
4652
|
+
.on('mouseleave', () => setTooltipData(null));
|
|
4653
|
+
const g = svg
|
|
4654
|
+
.append('g')
|
|
4620
4655
|
.attr('transform', `translate(${margin.left},${margin.top})`);
|
|
4621
|
-
const xScale = d3.scaleLinear()
|
|
4622
|
-
|
|
4623
|
-
|
|
4624
|
-
|
|
4625
|
-
const yScale = d3.scaleBand()
|
|
4656
|
+
const xScale = d3.scaleLinear().domain([18, 42]).range([0, chartWidth]);
|
|
4657
|
+
const yDomain = sleepData.map((d) => d.date);
|
|
4658
|
+
const yScale = d3
|
|
4659
|
+
.scaleBand()
|
|
4626
4660
|
.domain(yDomain)
|
|
4627
4661
|
.range([0, chartHeight])
|
|
4628
|
-
.paddingInner(0.
|
|
4662
|
+
.paddingInner(0.35)
|
|
4629
4663
|
.paddingOuter(0.1);
|
|
4630
|
-
//
|
|
4664
|
+
// Dotted vertical gridlines; midnight/noon are slightly more present.
|
|
4631
4665
|
g.selectAll('.grid-line-x')
|
|
4632
|
-
.data(d3.range(18, 43,
|
|
4633
|
-
.enter()
|
|
4666
|
+
.data(d3.range(18, 43, 3))
|
|
4667
|
+
.enter()
|
|
4668
|
+
.append('line')
|
|
4634
4669
|
.attr('class', styles$6.gridLine)
|
|
4635
|
-
.attr('x1', d => xScale(d))
|
|
4670
|
+
.attr('x1', (d) => xScale(d))
|
|
4636
4671
|
.attr('y1', 0)
|
|
4637
|
-
.attr('x2', d => xScale(d))
|
|
4672
|
+
.attr('x2', (d) => xScale(d))
|
|
4638
4673
|
.attr('y2', chartHeight)
|
|
4639
|
-
.
|
|
4640
|
-
const hour = d % 24;
|
|
4641
|
-
if (hour === 0)
|
|
4642
|
-
return 'var(--color-border)'; // Midnight
|
|
4643
|
-
if (hour === 12)
|
|
4644
|
-
return 'var(--color-border)'; // Noon
|
|
4645
|
-
return 'var(--color-border)';
|
|
4646
|
-
})
|
|
4647
|
-
.style('stroke-opacity', d => {
|
|
4648
|
-
const hour = d % 24;
|
|
4649
|
-
if (hour === 0 || hour === 12)
|
|
4650
|
-
return 0.3;
|
|
4651
|
-
if (hour % 3 === 0)
|
|
4652
|
-
return 0.15;
|
|
4653
|
-
return 0.05;
|
|
4654
|
-
})
|
|
4655
|
-
.style('stroke-width', d => {
|
|
4674
|
+
.classed(styles$6.gridLineAccent, (d) => {
|
|
4656
4675
|
const hour = d % 24;
|
|
4657
|
-
|
|
4658
|
-
return 2;
|
|
4659
|
-
return 1;
|
|
4676
|
+
return hour === 0 || hour === 12;
|
|
4660
4677
|
});
|
|
4661
4678
|
sleepData.forEach((dayData) => {
|
|
4662
4679
|
const yValue = yScale(dayData.date);
|
|
4663
4680
|
if (yValue === undefined)
|
|
4664
4681
|
return;
|
|
4665
4682
|
const barHeight = yScale.bandwidth();
|
|
4666
|
-
const sleepGroup = g
|
|
4683
|
+
const sleepGroup = g
|
|
4684
|
+
.append('g')
|
|
4667
4685
|
.attr('class', styles$6.sleepBar)
|
|
4668
|
-
.style('cursor', 'pointer')
|
|
4686
|
+
.style('cursor', onDateClick ? 'pointer' : 'default')
|
|
4669
4687
|
.on('click', () => onDateClick?.(dayData.date));
|
|
4670
|
-
// Handle sleep time and wake hour separately
|
|
4671
4688
|
let sleepHour = null;
|
|
4672
4689
|
let wakeHour = null;
|
|
4673
4690
|
if (dayData.sleep_time) {
|
|
4674
4691
|
sleepHour = parseTimeToDecimal(dayData.sleep_time);
|
|
4675
|
-
|
|
4676
|
-
if (sleepHour < 18) {
|
|
4692
|
+
if (sleepHour < 18)
|
|
4677
4693
|
sleepHour += 24;
|
|
4678
|
-
}
|
|
4679
4694
|
}
|
|
4680
4695
|
if (dayData.wake_hour) {
|
|
4681
4696
|
wakeHour = parseTimeToDecimal(dayData.wake_hour);
|
|
4682
|
-
// If we have sleep time, wake time should be after sleep time
|
|
4683
4697
|
if (sleepHour !== null) {
|
|
4684
|
-
// If wake hour is before sleep hour or very early, it's next day
|
|
4685
4698
|
if (wakeHour < sleepHour || (sleepHour >= 18 && wakeHour < 18)) {
|
|
4686
4699
|
wakeHour += 24;
|
|
4687
4700
|
}
|
|
4688
4701
|
}
|
|
4689
|
-
else {
|
|
4690
|
-
|
|
4691
|
-
if (wakeHour < 12) {
|
|
4692
|
-
wakeHour += 24;
|
|
4693
|
-
}
|
|
4702
|
+
else if (wakeHour < 12) {
|
|
4703
|
+
wakeHour += 24;
|
|
4694
4704
|
}
|
|
4695
4705
|
}
|
|
4696
|
-
// Draw the bar only if both values exist
|
|
4697
4706
|
if (sleepHour !== null && wakeHour !== null) {
|
|
4698
|
-
const
|
|
4699
|
-
|
|
4700
|
-
|
|
4701
|
-
|
|
4702
|
-
|
|
4703
|
-
|
|
4704
|
-
|
|
4705
|
-
.
|
|
4706
|
-
.attr('
|
|
4707
|
-
.attr('
|
|
4708
|
-
.
|
|
4709
|
-
|
|
4710
|
-
|
|
4711
|
-
.
|
|
4712
|
-
|
|
4707
|
+
const x1 = xScale(sleepHour);
|
|
4708
|
+
const x2 = xScale(wakeHour);
|
|
4709
|
+
const y = yValue + barHeight / 2;
|
|
4710
|
+
const amplitude = Math.min(barHeight / 2.2, 7);
|
|
4711
|
+
const wavelength = 14;
|
|
4712
|
+
const d = buildSquigglePath(x1, x2, y, amplitude, wavelength);
|
|
4713
|
+
const path = sleepGroup
|
|
4714
|
+
.append('path')
|
|
4715
|
+
.attr('class', styles$6.squiggle)
|
|
4716
|
+
.attr('d', d)
|
|
4717
|
+
.attr('fill', 'none');
|
|
4718
|
+
const node = path.node();
|
|
4719
|
+
const length = typeof node.getTotalLength === 'function'
|
|
4720
|
+
? node.getTotalLength()
|
|
4721
|
+
: (x2 - x1) * 1.8;
|
|
4722
|
+
path.attr('stroke-dasharray', length)
|
|
4723
|
+
.attr('stroke-dashoffset', length)
|
|
4724
|
+
.transition()
|
|
4725
|
+
.duration(540)
|
|
4713
4726
|
.ease(d3.easeCubicOut)
|
|
4714
|
-
.attr('
|
|
4715
|
-
.attr('opacity', 0.85);
|
|
4727
|
+
.attr('stroke-dashoffset', 0);
|
|
4716
4728
|
}
|
|
4717
|
-
// Draw sleep dot if sleep time exists
|
|
4718
4729
|
if (sleepHour !== null) {
|
|
4719
|
-
|
|
4730
|
+
sleepGroup
|
|
4731
|
+
.append('circle')
|
|
4732
|
+
.attr('class', `${styles$6.endpoint} ${styles$6.endpointSleep}`)
|
|
4720
4733
|
.attr('cx', xScale(sleepHour))
|
|
4721
4734
|
.attr('cy', yValue + barHeight / 2)
|
|
4722
|
-
.attr('r', 0)
|
|
4723
|
-
.
|
|
4724
|
-
.
|
|
4725
|
-
.
|
|
4726
|
-
.
|
|
4727
|
-
.
|
|
4728
|
-
// Animate the dot
|
|
4729
|
-
sleepDot.transition()
|
|
4730
|
-
.duration(400)
|
|
4731
|
-
.delay(300 + Math.random() * 100)
|
|
4732
|
-
.ease(d3.easeBackOut)
|
|
4733
|
-
.attr('r', 6);
|
|
4735
|
+
.attr('r', 0)
|
|
4736
|
+
.transition()
|
|
4737
|
+
.duration(280)
|
|
4738
|
+
.delay(160)
|
|
4739
|
+
.ease(d3.easeCubicOut)
|
|
4740
|
+
.attr('r', 3.5);
|
|
4734
4741
|
}
|
|
4735
|
-
// Draw wake dot if wake hour exists
|
|
4736
4742
|
if (wakeHour !== null) {
|
|
4737
|
-
|
|
4743
|
+
sleepGroup
|
|
4744
|
+
.append('circle')
|
|
4745
|
+
.attr('class', `${styles$6.endpoint} ${styles$6.endpointWake}`)
|
|
4738
4746
|
.attr('cx', xScale(wakeHour))
|
|
4739
4747
|
.attr('cy', yValue + barHeight / 2)
|
|
4740
|
-
.attr('r', 0)
|
|
4741
|
-
.
|
|
4742
|
-
.
|
|
4743
|
-
.
|
|
4744
|
-
.
|
|
4745
|
-
.
|
|
4746
|
-
// Animate the dot
|
|
4747
|
-
wakeDot.transition()
|
|
4748
|
-
.duration(400)
|
|
4749
|
-
.delay(500 + Math.random() * 100)
|
|
4750
|
-
.ease(d3.easeBackOut)
|
|
4751
|
-
.attr('r', 6);
|
|
4748
|
+
.attr('r', 0)
|
|
4749
|
+
.transition()
|
|
4750
|
+
.duration(280)
|
|
4751
|
+
.delay(220)
|
|
4752
|
+
.ease(d3.easeCubicOut)
|
|
4753
|
+
.attr('r', 3.5);
|
|
4752
4754
|
}
|
|
4753
|
-
// Add hover interactions with tooltip
|
|
4754
4755
|
sleepGroup
|
|
4755
4756
|
.on('mouseenter', function (event) {
|
|
4756
|
-
|
|
4757
|
-
|
|
4758
|
-
|
|
4759
|
-
.
|
|
4760
|
-
|
|
4761
|
-
|
|
4762
|
-
|
|
4763
|
-
|
|
4764
|
-
.
|
|
4765
|
-
|
|
4766
|
-
.attr('r', 8);
|
|
4767
|
-
// Calculate tooltip data
|
|
4768
|
-
const rect = svgRef.current?.getBoundingClientRect();
|
|
4769
|
-
if (rect) {
|
|
4770
|
-
const duration = (sleepHour !== null && wakeHour !== null)
|
|
4771
|
-
? wakeHour - sleepHour
|
|
4772
|
-
: null;
|
|
4773
|
-
setTooltipData({
|
|
4774
|
-
date: dayData.date,
|
|
4775
|
-
sleepTime: sleepHour !== null ? formatTime(sleepHour) : null,
|
|
4776
|
-
wakeTime: wakeHour !== null ? formatTime(wakeHour) : null,
|
|
4777
|
-
duration: duration !== null ? Math.round(duration * 100) / 100 : null,
|
|
4778
|
-
x: event.pageX,
|
|
4779
|
-
y: event.pageY - 80
|
|
4780
|
-
});
|
|
4781
|
-
}
|
|
4757
|
+
d3.select(this).classed(styles$6.sleepBarHover, true);
|
|
4758
|
+
const duration = sleepHour !== null && wakeHour !== null ? wakeHour - sleepHour : null;
|
|
4759
|
+
setTooltipData({
|
|
4760
|
+
date: dayData.date,
|
|
4761
|
+
sleepTime: sleepHour !== null ? formatTime(sleepHour) : null,
|
|
4762
|
+
wakeTime: wakeHour !== null ? formatTime(wakeHour) : null,
|
|
4763
|
+
duration: duration !== null ? Math.round(duration * 100) / 100 : null,
|
|
4764
|
+
x: event.pageX,
|
|
4765
|
+
y: event.pageY - 12,
|
|
4766
|
+
});
|
|
4782
4767
|
})
|
|
4783
4768
|
.on('mouseleave', function () {
|
|
4784
|
-
|
|
4785
|
-
d3.select(this).select('rect')
|
|
4786
|
-
.transition()
|
|
4787
|
-
.duration(200)
|
|
4788
|
-
.attr('opacity', 0.85)
|
|
4789
|
-
.style('filter', 'drop-shadow(0 2px 8px rgba(155, 89, 182, 0.3))');
|
|
4790
|
-
// Reset dots
|
|
4791
|
-
d3.select(this).selectAll('circle')
|
|
4792
|
-
.transition()
|
|
4793
|
-
.duration(200)
|
|
4794
|
-
.attr('r', 6);
|
|
4795
|
-
// Hide tooltip
|
|
4769
|
+
d3.select(this).classed(styles$6.sleepBarHover, false);
|
|
4796
4770
|
setTooltipData(null);
|
|
4797
4771
|
})
|
|
4798
4772
|
.on('mousemove', function (event) {
|
|
4799
|
-
|
|
4800
|
-
setTooltipData(prev => prev ? {
|
|
4801
|
-
...prev,
|
|
4802
|
-
x: event.pageX,
|
|
4803
|
-
y: event.pageY - 80
|
|
4804
|
-
} : null);
|
|
4773
|
+
setTooltipData((prev) => prev ? { ...prev, x: event.pageX, y: event.pageY - 12 } : null);
|
|
4805
4774
|
});
|
|
4806
4775
|
});
|
|
4807
|
-
|
|
4808
|
-
const defs = svg.append('defs');
|
|
4809
|
-
const gradient = defs.append('linearGradient')
|
|
4810
|
-
.attr('id', 'sleepGradient')
|
|
4811
|
-
.attr('x1', '0%')
|
|
4812
|
-
.attr('x2', '100%');
|
|
4813
|
-
gradient.append('stop')
|
|
4814
|
-
.attr('offset', '0%')
|
|
4815
|
-
.attr('stop-color', '#9B59B6')
|
|
4816
|
-
.attr('stop-opacity', 1);
|
|
4817
|
-
gradient.append('stop')
|
|
4818
|
-
.attr('offset', '50%')
|
|
4819
|
-
.attr('stop-color', '#7B68A6')
|
|
4820
|
-
.attr('stop-opacity', 1);
|
|
4821
|
-
gradient.append('stop')
|
|
4822
|
-
.attr('offset', '100%')
|
|
4823
|
-
.attr('stop-color', '#3498DB')
|
|
4824
|
-
.attr('stop-opacity', 1);
|
|
4825
|
-
const xAxisTicks = d3.range(18, 43, 3).map(hour => ({
|
|
4776
|
+
const xAxisTicks = d3.range(18, 43, 3).map((hour) => ({
|
|
4826
4777
|
value: hour,
|
|
4827
|
-
label: hour
|
|
4828
|
-
(hour % 24) === 0 ? '12 AM' :
|
|
4829
|
-
(hour % 24) < 12 ? `${hour % 24} AM` :
|
|
4830
|
-
(hour % 24) === 12 ? '12 PM' : `${(hour % 24) - 12} PM`
|
|
4778
|
+
label: `${(hour % 24).toString().padStart(2, '0')}:00`,
|
|
4831
4779
|
}));
|
|
4832
|
-
const xAxis = g
|
|
4780
|
+
const xAxis = g
|
|
4781
|
+
.append('g')
|
|
4833
4782
|
.attr('class', styles$6.xAxis)
|
|
4834
4783
|
.attr('transform', `translate(0,${chartHeight})`)
|
|
4835
|
-
.call(d3
|
|
4836
|
-
.
|
|
4784
|
+
.call(d3
|
|
4785
|
+
.axisBottom(xScale)
|
|
4786
|
+
.tickValues(xAxisTicks.map((t) => t.value))
|
|
4837
4787
|
.tickFormat((d) => {
|
|
4838
|
-
const tick = xAxisTicks.find(t => t.value === d);
|
|
4788
|
+
const tick = xAxisTicks.find((t) => t.value === d);
|
|
4839
4789
|
return tick ? tick.label : '';
|
|
4840
4790
|
})
|
|
4841
|
-
.
|
|
4842
|
-
|
|
4843
|
-
xAxis.
|
|
4844
|
-
|
|
4845
|
-
|
|
4846
|
-
|
|
4847
|
-
|
|
4848
|
-
const yAxisTicks = yDomain.filter((_, i) => i % Math.ceil(yDomain.length / 10) === 0);
|
|
4849
|
-
g.append('g')
|
|
4791
|
+
.tickSize(0)
|
|
4792
|
+
.tickPadding(10));
|
|
4793
|
+
xAxis.select('.domain').remove();
|
|
4794
|
+
const tickEvery = Math.max(1, Math.ceil(yDomain.length / 8));
|
|
4795
|
+
const yAxisTicks = yDomain.filter((_, i) => i % tickEvery === 0);
|
|
4796
|
+
const yAxis = g
|
|
4797
|
+
.append('g')
|
|
4850
4798
|
.attr('class', styles$6.yAxis)
|
|
4851
|
-
.call(d3
|
|
4799
|
+
.call(d3
|
|
4800
|
+
.axisLeft(yScale)
|
|
4852
4801
|
.tickValues(yAxisTicks)
|
|
4853
|
-
.tickFormat(d => {
|
|
4802
|
+
.tickFormat((d) => {
|
|
4854
4803
|
const date = new Date(d);
|
|
4855
|
-
return `${(date.getMonth() + 1)
|
|
4856
|
-
|
|
4804
|
+
return `${(date.getMonth() + 1)
|
|
4805
|
+
.toString()
|
|
4806
|
+
.padStart(2, '0')}/${date.getDate().toString().padStart(2, '0')}`;
|
|
4807
|
+
})
|
|
4808
|
+
.tickSize(0)
|
|
4809
|
+
.tickPadding(12));
|
|
4810
|
+
yAxis.select('.domain').remove();
|
|
4857
4811
|
}, [sleepData, chartWidth, chartHeight, margin, onDateClick, height, width]);
|
|
4858
|
-
return (jsxs("div", { className: styles$6.container, children: [jsxs("
|
|
4859
|
-
|
|
4860
|
-
|
|
4861
|
-
|
|
4862
|
-
|
|
4863
|
-
month: 'short',
|
|
4864
|
-
day: 'numeric'
|
|
4865
|
-
}) })] }), jsxs("div", { className: styles$6.tooltipInfo, children: [tooltipData.sleepTime && (jsxs("div", { className: styles$6.tooltipRow, children: [jsxs("span", { className: styles$6.tooltipLabel, children: [jsx("span", { children: "\uD83C\uDF19" }), jsx("span", { children: "Sleep:" })] }), jsx("span", { className: styles$6.tooltipValue, children: tooltipData.sleepTime })] })), tooltipData.wakeTime && (jsxs("div", { className: styles$6.tooltipRow, children: [jsxs("span", { className: styles$6.tooltipLabel, children: [jsx("span", { children: "\u2600\uFE0F" }), jsx("span", { children: "Wake:" })] }), jsx("span", { className: styles$6.tooltipValue, children: tooltipData.wakeTime })] })), tooltipData.duration !== null && (jsxs("div", { className: styles$6.tooltipDuration, children: [jsx("span", { children: "\u23F1\uFE0F" }), jsxs("span", { children: [Math.floor(tooltipData.duration), "h ", Math.round((tooltipData.duration % 1) * 60), "m"] })] }))] })] }))] }));
|
|
4812
|
+
return (jsxs("div", { className: styles$6.container, children: [jsxs("header", { className: styles$6.header, children: [jsx("span", { className: styles$6.eyebrow, children: "the night" }), jsxs("h3", { className: styles$6.title, children: [jsx("em", { children: "Sleep" }), " pattern"] })] }), jsx("svg", { ref: svgRef, width: width, height: height, className: styles$6.chart }), tooltipData && (jsxs("div", { className: `${styles$6.tooltip} ${styles$6.visible}`, style: { left: `${tooltipData.x}px`, top: `${tooltipData.y}px` }, children: [jsx("div", { className: styles$6.tooltipDate, children: new Date(tooltipData.date).toLocaleDateString('en-US', {
|
|
4813
|
+
weekday: 'short',
|
|
4814
|
+
month: 'short',
|
|
4815
|
+
day: 'numeric',
|
|
4816
|
+
}) }), jsxs("div", { className: styles$6.tooltipBody, children: [tooltipData.sleepTime && (jsxs("div", { className: styles$6.tooltipRow, children: [jsx("em", { children: "sleep" }), jsx("time", { children: tooltipData.sleepTime })] })), tooltipData.wakeTime && (jsxs("div", { className: styles$6.tooltipRow, children: [jsx("em", { children: "wake" }), jsx("time", { children: tooltipData.wakeTime })] })), tooltipData.duration !== null && (jsxs("div", { className: `${styles$6.tooltipRow} ${styles$6.tooltipTotal}`, children: [jsx("em", { children: "total" }), jsx("time", { children: formatDuration(tooltipData.duration) })] }))] })] }))] }));
|
|
4866
4817
|
};
|
|
4867
4818
|
|
|
4868
4819
|
var styles$5 = {"container":"BooleansHeatmap-module_container__IOyeU","title":"BooleansHeatmap-module_title__8DRRQ","habitEmoji":"BooleansHeatmap-module_habitEmoji__Mawv-","chart":"BooleansHeatmap-module_chart__-q0Pc","monthLabel":"BooleansHeatmap-module_monthLabel__MXbIg","dayLabel":"BooleansHeatmap-module_dayLabel__2RRtm","cell":"BooleansHeatmap-module_cell__WADVB","legend":"BooleansHeatmap-module_legend__WqGF8","legendItem":"BooleansHeatmap-module_legendItem__rDE2g","legendColor":"BooleansHeatmap-module_legendColor__Z34-d","tooltip":"BooleansHeatmap-module_tooltip__-fHl7"};
|