@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.
Files changed (195) hide show
  1. package/dist/components/atoms/Slider/Slider.d.ts +3 -1
  2. package/dist/components/atoms/Slider/Slider.d.ts.map +1 -1
  3. package/dist/components/atoms/Slider/Slider.stories.d.ts +1 -1
  4. package/dist/components/atoms/Slider/Slider.stories.d.ts.map +1 -1
  5. package/dist/components/organisms/charts/SleepChart/SleepChart.d.ts.map +1 -1
  6. package/dist/index.esm.js +155 -204
  7. package/dist/index.esm.js.map +1 -1
  8. package/dist/index.js +155 -204
  9. package/dist/index.js.map +1 -1
  10. package/dist/styles.css +1 -1
  11. package/dist/styles.css.map +1 -1
  12. package/package.json +1 -1
  13. package/storybook-static/assets/{ASCIIText.stories-DrudQHKY.js → ASCIIText.stories-DFJdLu85.js} +1 -1
  14. package/storybook-static/assets/{AllAtoms.stories-BXID4WzW.js → AllAtoms.stories-exRxVmzu.js} +1 -1
  15. package/storybook-static/assets/{AnimatedContent.stories-rkECxTC5.js → AnimatedContent.stories-A1SzIOe2.js} +1 -1
  16. package/storybook-static/assets/{AnimatedList.stories-DceCppsl.js → AnimatedList.stories-D2Q-T7WK.js} +1 -1
  17. package/storybook-static/assets/{Antigravity.stories-DD3JmAmU.js → Antigravity.stories-CB3_2V40.js} +1 -1
  18. package/storybook-static/assets/{ArrayInput.stories-BAvKHGQB.js → ArrayInput.stories-pogP4q4b.js} +1 -1
  19. package/storybook-static/assets/{Aurora.stories-BYrMKBe7.js → Aurora.stories-Cu440k5S.js} +1 -1
  20. package/storybook-static/assets/{Beams.stories-DeRcKotI.js → Beams.stories-CzUpFwoS.js} +1 -1
  21. package/storybook-static/assets/{BlobCursor.stories-D_iUCdES.js → BlobCursor.stories-IsVKCCEO.js} +1 -1
  22. package/storybook-static/assets/{BlurText.stories-vdNkHJVm.js → BlurText.stories-BVGu0aqN.js} +1 -1
  23. package/storybook-static/assets/{BooleansHeatmap.stories-BZYeHLAz.js → BooleansHeatmap.stories-BthQ5ehB.js} +1 -1
  24. package/storybook-static/assets/{BorderGlow.stories-COWEvsmJ.js → BorderGlow.stories-BNwBLObC.js} +1 -1
  25. package/storybook-static/assets/{BubbleMenu.stories--nEnzDhs.js → BubbleMenu.stories-7__gkj8R.js} +1 -1
  26. package/storybook-static/assets/{Button-DP5stqes.js → Button-CwSLfSSb.js} +1 -1
  27. package/storybook-static/assets/{Button.stories-76diKoKj.js → Button.stories-DXdSC8Ub.js} +1 -1
  28. package/storybook-static/assets/{Calendar.stories-DY03HIKB.js → Calendar.stories-HJNrPTKA.js} +1 -1
  29. package/storybook-static/assets/{Card-DSyWBYs_.js → Card-CMuvydSk.js} +1 -1
  30. package/storybook-static/assets/{Card.stories-BfbZDXZO.js → Card.stories-C6r4Lfy1.js} +1 -1
  31. package/storybook-static/assets/{CardNav.stories--VrU7evh.js → CardNav.stories-WDha-__w.js} +1 -1
  32. package/storybook-static/assets/{Carousel.stories-XyP6q4Rg.js → Carousel.stories-C73W8Cj0.js} +1 -1
  33. package/storybook-static/assets/{Checkbox-JNE8OaUA.js → Checkbox-DXDBhCOJ.js} +1 -1
  34. package/storybook-static/assets/{Checkbox.stories-D320woed.js → Checkbox.stories-BdYI4nAD.js} +1 -1
  35. package/storybook-static/assets/{ChromaGrid.stories-BOeRxkcj.js → ChromaGrid.stories-DWa4kR3d.js} +1 -1
  36. package/storybook-static/assets/{CircularGallery.stories-BUfNOegQ.js → CircularGallery.stories-DtM7FALz.js} +1 -1
  37. package/storybook-static/assets/{CircularText.stories-CdV1M_if.js → CircularText.stories-BaJvxGQF.js} +1 -1
  38. package/storybook-static/assets/{ClickSpark.stories-1eMVZ8RC.js → ClickSpark.stories--IchxFvN.js} +1 -1
  39. package/storybook-static/assets/{ColorBends.stories-BF2nGf_4.js → ColorBends.stories-0cTr18l9.js} +1 -1
  40. package/storybook-static/assets/{CountUp.stories-Ch_SNlvE.js → CountUp.stories-Cf4NC-XR.js} +1 -1
  41. package/storybook-static/assets/{Counter.stories-BmI6qH5-.js → Counter.stories-CyhbcvKm.js} +1 -1
  42. package/storybook-static/assets/{Crosshair.stories-DQRV389y.js → Crosshair.stories-ZZ5g9eO6.js} +1 -1
  43. package/storybook-static/assets/{Cubes.stories-DvjAvOA1.js → Cubes.stories-CrYhlnje.js} +1 -1
  44. package/storybook-static/assets/{CurvedLoop.stories-NIYSKDTP.js → CurvedLoop.stories-DyK7Wlt6.js} +1 -1
  45. package/storybook-static/assets/{DarkVeil.stories-CApOHgXU.js → DarkVeil.stories-BEf6V85c.js} +1 -1
  46. package/storybook-static/assets/{DateInput-B_r0sRwf.js → DateInput-8onWa3KI.js} +1 -1
  47. package/storybook-static/assets/{DateInput.stories-CfuODQ2a.js → DateInput.stories-BUDpdFa5.js} +1 -1
  48. package/storybook-static/assets/{DecayCard.stories-C5eS9onf.js → DecayCard.stories-DG0lwrmk.js} +1 -1
  49. package/storybook-static/assets/{DecryptedText.stories-BME2d8uw.js → DecryptedText.stories-BAy5in1k.js} +1 -1
  50. package/storybook-static/assets/{Dither.stories-B17kfr96.js → Dither.stories-B0Asjgfz.js} +1 -1
  51. package/storybook-static/assets/{Dock.stories-BbP_I9_M.js → Dock.stories-BrZSOCw5.js} +1 -1
  52. package/storybook-static/assets/{EditFAB.stories-C72Gcifb.js → EditFAB.stories-Cur6BXdD.js} +1 -1
  53. package/storybook-static/assets/{EvilEye.stories-CwQxTfYX.js → EvilEye.stories-C6fVeJGL.js} +1 -1
  54. package/storybook-static/assets/{FadeContent.stories-C3O5ZJqI.js → FadeContent.stories-Ckl198gp.js} +1 -1
  55. package/storybook-static/assets/{FaultyTerminal.stories-D_Wa-l4E.js → FaultyTerminal.stories-CRQCWCv-.js} +1 -1
  56. package/storybook-static/assets/{Fbo-BR_y4K-g.js → Fbo-DIZ3Y1HH.js} +1 -1
  57. package/storybook-static/assets/{FloatingLines.stories-_fGROOI7.js → FloatingLines.stories-BqgEOEZS.js} +1 -1
  58. package/storybook-static/assets/{FlowingMenu.stories-BRV7h8y6.js → FlowingMenu.stories-BnPI8poB.js} +1 -1
  59. package/storybook-static/assets/{FluidGlass.stories-BRAKJ8mn.js → FluidGlass.stories-CHAlMw3S.js} +1 -1
  60. package/storybook-static/assets/{Folder.stories-CmAJJ65p.js → Folder.stories-Dk5JAIQD.js} +1 -1
  61. package/storybook-static/assets/{FuzzyText.stories-D5aPOguz.js → FuzzyText.stories-BtDnau8f.js} +1 -1
  62. package/storybook-static/assets/{Galaxy.stories-Dius0tEI.js → Galaxy.stories-BzhW3GF9.js} +1 -1
  63. package/storybook-static/assets/{GhostCursor.stories-C7amHEKd.js → GhostCursor.stories-DieHFjxw.js} +1 -1
  64. package/storybook-static/assets/{GlareHover.stories-DY-YKsYr.js → GlareHover.stories-BHoXBn9o.js} +1 -1
  65. package/storybook-static/assets/{GlassSurface.stories-DLsyCDKY.js → GlassSurface.stories-DREe1ppH.js} +1 -1
  66. package/storybook-static/assets/{GlitchText.stories-C1rrXsR4.js → GlitchText.stories-ByEeawKD.js} +1 -1
  67. package/storybook-static/assets/{GooeyNav.stories-D-_j2rcG.js → GooeyNav.stories-BwwWfgQg.js} +1 -1
  68. package/storybook-static/assets/{GradientBlinds.stories-DlRCOKac.js → GradientBlinds.stories-ZaBq37aP.js} +1 -1
  69. package/storybook-static/assets/{GradientText.stories-DzXgS_Dw.js → GradientText.stories-OlD8JIJh.js} +1 -1
  70. package/storybook-static/assets/{Grainient.stories-BxlobH21.js → Grainient.stories-CfHG2dG3.js} +1 -1
  71. package/storybook-static/assets/{GridMotion.stories-Quhev-kR.js → GridMotion.stories-BsWVs4IR.js} +1 -1
  72. package/storybook-static/assets/{HabitTimeOfDayChart.stories-CYZF7xtv.js → HabitTimeOfDayChart.stories-DfBLc8St.js} +1 -1
  73. package/storybook-static/assets/{ImageSlideshow.stories-DDly5Ic9.js → ImageSlideshow.stories-Cpb9fisd.js} +1 -1
  74. package/storybook-static/assets/{Iridescence.stories-XTxYkqCF.js → Iridescence.stories-Ch3ilnYv.js} +1 -1
  75. package/storybook-static/assets/{LaserFlow.stories-7jtKdq16.js → LaserFlow.stories-DenbpERy.js} +1 -1
  76. package/storybook-static/assets/{LetterGlitch.stories-D5j_lxJj.js → LetterGlitch.stories-D1DfeFIa.js} +1 -1
  77. package/storybook-static/assets/{LightPillar.stories-BqNS5KNb.js → LightPillar.stories-CVxcYtjt.js} +1 -1
  78. package/storybook-static/assets/{LightRays.stories-D6iaHJnK.js → LightRays.stories-F5idlq2b.js} +1 -1
  79. package/storybook-static/assets/{Lightning.stories-C_IUlayl.js → Lightning.stories-Diu1zWyT.js} +1 -1
  80. package/storybook-static/assets/{LineWaves.stories-BhxZrI-h.js → LineWaves.stories-CmEm2I-A.js} +1 -1
  81. package/storybook-static/assets/{LiquidChrome.stories-nCxKWwyz.js → LiquidChrome.stories-CHP_FcPv.js} +1 -1
  82. package/storybook-static/assets/{LiquidEther.stories-CcUuoICz.js → LiquidEther.stories-Iraa-nLM.js} +1 -1
  83. package/storybook-static/assets/{LoadingSpinner-Bfjuw-Zo.js → LoadingSpinner-DlrNT1AA.js} +1 -1
  84. package/storybook-static/assets/{LoadingSpinner.stories-DUQhm1Sz.js → LoadingSpinner.stories-CnE24Tsx.js} +1 -1
  85. package/storybook-static/assets/{MagicRings.stories-Ru1g1tym.js → MagicRings.stories-BqJypRLP.js} +1 -1
  86. package/storybook-static/assets/{Magnet.stories-DyxaFbU5.js → Magnet.stories-DL0Go3qR.js} +1 -1
  87. package/storybook-static/assets/{MagnetLines.stories-C2KK9Cyz.js → MagnetLines.stories-CxpAiInh.js} +1 -1
  88. package/storybook-static/assets/{Masonry.stories-DlG7k6uD.js → Masonry.stories-flII8LRK.js} +1 -1
  89. package/storybook-static/assets/{MetaBalls.stories-C0ys8WzV.js → MetaBalls.stories-Bs_-0CGV.js} +1 -1
  90. package/storybook-static/assets/{MetallicPaint.stories-JmvMEdmW.js → MetallicPaint.stories-DiyJoRNq.js} +1 -1
  91. package/storybook-static/assets/{MoodChart.stories-QeN7iV6J.js → MoodChart.stories-CJ2A0E0j.js} +1 -1
  92. package/storybook-static/assets/{MotionConfigContext-CMLd2xKL.js → MotionConfigContext-Dyabqz-b.js} +1 -1
  93. package/storybook-static/assets/{Navbar.stories-BnUb1yNJ.js → Navbar.stories-B--ABN9C.js} +1 -1
  94. package/storybook-static/assets/{Noise.stories-DB5dPqKz.js → Noise.stories-BpKTpxeE.js} +1 -1
  95. package/storybook-static/assets/{NumberStepper-BHAqc-JZ.js → NumberStepper-EhG-KGNo.js} +1 -1
  96. package/storybook-static/assets/{NumberStepper.stories-NKLY1nB0.js → NumberStepper.stories-Ba1aWk0g.js} +1 -1
  97. package/storybook-static/assets/{Orb.stories-DJinwB1r.js → Orb.stories-D8od8KSg.js} +1 -1
  98. package/storybook-static/assets/{OrbitImages.stories-Btal255T.js → OrbitImages.stories-Dxj-5r4i.js} +1 -1
  99. package/storybook-static/assets/{PieChart.stories-BU2hd8Kb.js → PieChart.stories-DWw4EGwt.js} +1 -1
  100. package/storybook-static/assets/{PixelBlast.stories-Bmajh4vp.js → PixelBlast.stories-C3u9ldzB.js} +1 -1
  101. package/storybook-static/assets/{PixelCard.stories-m099s9jy.js → PixelCard.stories-BtQ8LfFf.js} +1 -1
  102. package/storybook-static/assets/{PixelSnow.stories-cgjrgBY1.js → PixelSnow.stories-KpmT5jBn.js} +1 -1
  103. package/storybook-static/assets/{PixelTransition.stories-D14Djvgj.js → PixelTransition.stories-CJs0eV-2.js} +1 -1
  104. package/storybook-static/assets/{Plasma.stories-CZridYYD.js → Plasma.stories-CivG0ZTB.js} +1 -1
  105. package/storybook-static/assets/{Prism.stories-i_0Tk_CY.js → Prism.stories--tExtMti.js} +1 -1
  106. package/storybook-static/assets/{PrismaticBurst.stories-C_jIMY-V.js → PrismaticBurst.stories-BEHRmqtH.js} +1 -1
  107. package/storybook-static/assets/{ProfileCard.stories-JbNvWjjD.js → ProfileCard.stories-Bfv1Qk_A.js} +1 -1
  108. package/storybook-static/assets/{QuantifiableHabitsChart.stories-DLrBQbJS.js → QuantifiableHabitsChart.stories-WPetwjBc.js} +1 -1
  109. package/storybook-static/assets/{Radar.stories-DnaKAKCW.js → Radar.stories-CWQNMWx2.js} +1 -1
  110. package/storybook-static/assets/{Ribbons.stories-BGcfu58a.js → Ribbons.stories-B3X4I9Cz.js} +1 -1
  111. package/storybook-static/assets/{RippleGrid.stories-tTpjV-Tq.js → RippleGrid.stories-O3VVcQWl.js} +1 -1
  112. package/storybook-static/assets/{RotatingText.stories-CK-IVIz-.js → RotatingText.stories-Cs-vTbFZ.js} +1 -1
  113. package/storybook-static/assets/{ScrollFloat.stories-CRYrV93L.js → ScrollFloat.stories-BMoNuRtU.js} +1 -1
  114. package/storybook-static/assets/{ScrollReveal.stories-YK72d0Xy.js → ScrollReveal.stories-C5dVXxt1.js} +1 -1
  115. package/storybook-static/assets/{ScrollVelocity.stories-CUSz3l2q.js → ScrollVelocity.stories-CJKSvAY4.js} +1 -1
  116. package/storybook-static/assets/{SearchBar.stories-C-aPnTzX.js → SearchBar.stories-Dtm9l67y.js} +1 -1
  117. package/storybook-static/assets/{SearchableDropdown-BXKvFCPE.js → SearchableDropdown-Dqzi4LKk.js} +1 -1
  118. package/storybook-static/assets/{SearchableDropdown.stories-iKxYmWQM.js → SearchableDropdown.stories-BG3ESCwq.js} +1 -1
  119. package/storybook-static/assets/{SelectInput-Be7eIjUH.js → SelectInput-BUDt34Ej.js} +1 -1
  120. package/storybook-static/assets/{SelectInput.stories-Bb48rjs9.js → SelectInput.stories-Dxe4mL9o.js} +1 -1
  121. package/storybook-static/assets/{ShapeBlur.stories-DYxp8y9g.js → ShapeBlur.stories-C2sk-BXL.js} +1 -1
  122. package/storybook-static/assets/{ShapeGrid.stories-CPpN93l4.js → ShapeGrid.stories-ihKrWukc.js} +1 -1
  123. package/storybook-static/assets/{ShinyText.stories-Cxp_7hew.js → ShinyText.stories-DwNgYe9N.js} +1 -1
  124. package/storybook-static/assets/{Silk.stories-CwXNCrdC.js → Silk.stories-CzFSFGhP.js} +1 -1
  125. package/storybook-static/assets/SleepChart-DtIKf_2P.css +1 -0
  126. package/storybook-static/assets/SleepChart.stories-CZufs6Gb.js +58 -0
  127. package/storybook-static/assets/Slider-BRAq3fxE.js +4 -0
  128. package/storybook-static/assets/Slider-DrZJBbk1.css +1 -0
  129. package/storybook-static/assets/Slider.stories-CK522MN_.js +95 -0
  130. package/storybook-static/assets/{SoftAurora.stories-iOX7-JKx.js → SoftAurora.stories-DqOpOzFw.js} +1 -1
  131. package/storybook-static/assets/{SoundDemo.stories-C5Sp_LFz.js → SoundDemo.stories-BkFbK-1Y.js} +1 -1
  132. package/storybook-static/assets/{SplashCursor.stories-ChDcNXc2.js → SplashCursor.stories-ClGNxcw4.js} +1 -1
  133. package/storybook-static/assets/{SpotlightCard.stories-BxsBCkBs.js → SpotlightCard.stories-B-Hpffrl.js} +1 -1
  134. package/storybook-static/assets/{Stack.stories-DcQQpUly.js → Stack.stories-DLN47Bj-.js} +1 -1
  135. package/storybook-static/assets/{StaggeredMenu.stories-ytn-S4UG.js → StaggeredMenu.stories-DL6I7cbu.js} +1 -1
  136. package/storybook-static/assets/{StarBorder.stories-baIHr7ZF.js → StarBorder.stories-BIP0gskB.js} +1 -1
  137. package/storybook-static/assets/{SunburstChart.stories-AdWEy3k1.js → SunburstChart.stories-Bb0VKYC3.js} +1 -1
  138. package/storybook-static/assets/{Table.stories-D7REaXIg.js → Table.stories-DeMvjpqQ.js} +1 -1
  139. package/storybook-static/assets/{Tabs.stories-CgPLxz_J.js → Tabs.stories-qZulSRrO.js} +1 -1
  140. package/storybook-static/assets/{TargetCursor.stories-BfHvmv8M.js → TargetCursor.stories-4pSN2J9r.js} +1 -1
  141. package/storybook-static/assets/{TextArea-CI0Iii5e.js → TextArea-CvRZ3TaY.js} +1 -1
  142. package/storybook-static/assets/{TextArea.stories-BfkmhGar.js → TextArea.stories-teCx-H2z.js} +1 -1
  143. package/storybook-static/assets/{TextCursor.stories-Dse27pLe.js → TextCursor.stories-pry7pdoW.js} +1 -1
  144. package/storybook-static/assets/{TextInput-l5gigbUc.js → TextInput-BPdFcHbk.js} +1 -1
  145. package/storybook-static/assets/{TextInput.stories-C_7KwnOR.js → TextInput.stories-B-HTRiwl.js} +1 -1
  146. package/storybook-static/assets/{TextPressure.stories-DzWVYhpT.js → TextPressure.stories-BdtIOM1Y.js} +1 -1
  147. package/storybook-static/assets/{TextType.stories-540S8Jrd.js → TextType.stories-Bq-Vo4qL.js} +1 -1
  148. package/storybook-static/assets/{ThemeSwitcher.stories-d1__KYaR.js → ThemeSwitcher.stories-SgJg0LCK.js} +1 -1
  149. package/storybook-static/assets/{Threads.stories-uvC9D_ic.js → Threads.stories-hqtYUEu-.js} +1 -1
  150. package/storybook-static/assets/{TimeInput.stories-BuWTsguj.js → TimeInput.stories-CPOqj_Se.js} +1 -1
  151. package/storybook-static/assets/{Toggle-BCT0x7tb.js → Toggle-CAPcFsLF.js} +1 -1
  152. package/storybook-static/assets/{Toggle.stories-2ejJZWPf.js → Toggle.stories-O2_0c-1s.js} +1 -1
  153. package/storybook-static/assets/{ToggleButton-Be7o1e7W.js → ToggleButton-BZOAtsmB.js} +1 -1
  154. package/storybook-static/assets/{ToggleButton.stories-8_95wiIK.js → ToggleButton.stories-JG_Pazh7.js} +1 -1
  155. package/storybook-static/assets/{TrueFocus.stories-vBPyw8OY.js → TrueFocus.stories-rLnKDbsk.js} +1 -1
  156. package/storybook-static/assets/{VariableProximity.stories-C5OAoM-h.js → VariableProximity.stories-RaopvofU.js} +1 -1
  157. package/storybook-static/assets/{Waves.stories-8sL9f-Bt.js → Waves.stories-oO9FrJAS.js} +1 -1
  158. package/storybook-static/assets/{calendar-BF_yL0AR.js → calendar-JsvgBBDH.js} +1 -1
  159. package/storybook-static/assets/{chart-column-DLJS-5fY.js → chart-column-mrC32qXf.js} +1 -1
  160. package/storybook-static/assets/{check-DwJ_VWn6.js → check-CvrIUYEl.js} +1 -1
  161. package/storybook-static/assets/{chevron-down-DyLSJ8Qt.js → chevron-down-BUZZ9BTx.js} +1 -1
  162. package/storybook-static/assets/{chevron-right-CTFXx8rw.js → chevron-right-SVhPWVWz.js} +1 -1
  163. package/storybook-static/assets/client-7pDjGlit.js +1 -0
  164. package/storybook-static/assets/{createLucideIcon-zL8wv6u3.js → createLucideIcon-D1rlWUhC.js} +1 -1
  165. package/storybook-static/assets/{download-CcEdXgFT.js → download-Bmqc20p3.js} +1 -1
  166. package/storybook-static/assets/{folder-Dd3pJY4q.js → folder-BCJqv57N.js} +1 -1
  167. package/storybook-static/assets/{iconBase-Cfr82KeI.js → iconBase-Bvu3HEFH.js} +1 -1
  168. package/storybook-static/assets/{iframe-CY9B_G0D.js → iframe-D7y7FUTK.js} +3 -3
  169. package/storybook-static/assets/{index-BzOjSiRu.js → index-BCGRwJ5q.js} +1 -1
  170. package/storybook-static/assets/{index-REPfzYsl.js → index-C_G3JJLn.js} +1 -1
  171. package/storybook-static/assets/{index-CL-OfYDM.js → index-um02zCcj.js} +1 -1
  172. package/storybook-static/assets/{proxy-Dl3L0B2p.js → proxy-Ce-uTDDv.js} +1 -1
  173. package/storybook-static/assets/{react-18-BbtU51zU.js → react-18-DlLnXErP.js} +1 -1
  174. package/storybook-static/assets/{react-three-fiber.esm-CznFgls0.js → react-three-fiber.esm-ssg-DJvA.js} +1 -1
  175. package/storybook-static/assets/{search-DhKMpr6w.js → search-BpBodH3r.js} +1 -1
  176. package/storybook-static/assets/{settings-m_zwbUf_.js → settings-D8D67Id0.js} +1 -1
  177. package/storybook-static/assets/{sun-BStn-dFd.js → sun-BQcJSsaQ.js} +1 -1
  178. package/storybook-static/assets/{trash-2-DykSITTu.js → trash-2-D6WRmoL3.js} +1 -1
  179. package/storybook-static/assets/{use-animation-frame-D4QJ-C9-.js → use-animation-frame-CO9S19qn.js} +1 -1
  180. package/storybook-static/assets/{use-in-view-Dpa3pAJ3.js → use-in-view-DZc-byXh.js} +1 -1
  181. package/storybook-static/assets/{use-motion-value-h87hhTXC.js → use-motion-value-mO9NrpTN.js} +1 -1
  182. package/storybook-static/assets/{use-spring-Ch98J2Hp.js → use-spring-CdsbAGfL.js} +1 -1
  183. package/storybook-static/assets/{use-transform-BqQ2Wgir.js → use-transform-DcYgqXpl.js} +1 -1
  184. package/storybook-static/assets/{useSound-CXRse1g5.js → useSound-Ape9PZyo.js} +1 -1
  185. package/storybook-static/assets/{users-Ddo-Fe6m.js → users-BQ1OQC3n.js} +1 -1
  186. package/storybook-static/assets/{x-WlhVA84m.js → x-Cq6n8SKu.js} +1 -1
  187. package/storybook-static/iframe.html +1 -1
  188. package/storybook-static/index.json +1 -1
  189. package/storybook-static/project.json +1 -1
  190. package/storybook-static/assets/SleepChart-CjpdWR_T.css +0 -1
  191. package/storybook-static/assets/SleepChart.stories-BYJFOKo_.js +0 -58
  192. package/storybook-static/assets/Slider-BXnBVqND.js +0 -4
  193. package/storybook-static/assets/Slider-BfT1m14M.css +0 -1
  194. package/storybook-static/assets/Slider.stories-Dc4IqM8s.js +0 -99
  195. 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;CACtC;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,GACd,EAAE,WAAW,2CAyJb"}
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 CustomColors: Story;
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,CAuB7B,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,YAAY,EAAE,KAgB1B,CAAC"}
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;AAeD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsXhD,CAAA"}
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: [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" }) }), 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("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: "+" }) })] }));
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","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"};
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 `${Math.floor(h12)}:${minutes.toString().padStart(2, '0')} ${ampm}`;
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
- const SleepChart = ({ sleepData, width = 800, height = 400, onDateClick }) => {
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: 30, right: 30, bottom: 50, left: 80 }), []);
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
- setTooltipData(null);
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
- .domain([18, 42])
4623
- .range([0, chartWidth]);
4624
- const yDomain = sleepData.map(d => d.date);
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.2)
4662
+ .paddingInner(0.35)
4629
4663
  .paddingOuter(0.1);
4630
- // Add vertical grid lines with midnight/noon highlights
4664
+ // Dotted vertical gridlines; midnight/noon are slightly more present.
4631
4665
  g.selectAll('.grid-line-x')
4632
- .data(d3.range(18, 43, 1))
4633
- .enter().append('line')
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
- .style('stroke', d => {
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
- if (hour === 0 || hour === 12)
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.append('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
- // Convert evening hours to 24+ scale (e.g., 22:00 stays 22, but early morning like 02:00 becomes 26)
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
- // No sleep time - if wake time is early morning, assume next day
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 rect = sleepGroup.append('rect')
4699
- .attr('x', xScale(sleepHour))
4700
- .attr('y', yValue)
4701
- .attr('width', 0) // Start with 0 width for animation
4702
- .attr('height', barHeight)
4703
- .attr('rx', barHeight / 2)
4704
- .attr('fill', 'url(#sleepGradient)')
4705
- .attr('opacity', 0) // Start invisible
4706
- .attr('stroke', 'rgba(255,255,255,0.3)')
4707
- .attr('stroke-width', 1)
4708
- .style('filter', 'drop-shadow(0 2px 8px rgba(155, 89, 182, 0.3))');
4709
- // Animate the bar
4710
- rect.transition()
4711
- .duration(800)
4712
- .delay(Math.random() * 200) // Stagger the animations
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('width', Math.max(0, xScale(wakeHour) - xScale(sleepHour)))
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
- const sleepDot = sleepGroup.append('circle')
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) // Start with 0 radius
4723
- .attr('fill', '#9B59B6')
4724
- .attr('stroke', '#ffffff')
4725
- .attr('stroke-width', 2)
4726
- .style('filter', 'drop-shadow(0 3px 6px rgba(155, 89, 182, 0.4))')
4727
- .style('transition', 'all 0.3s ease');
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
- const wakeDot = sleepGroup.append('circle')
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) // Start with 0 radius
4741
- .attr('fill', '#3498DB')
4742
- .attr('stroke', '#ffffff')
4743
- .attr('stroke-width', 2)
4744
- .style('filter', 'drop-shadow(0 3px 6px rgba(52, 152, 219, 0.4))')
4745
- .style('transition', 'all 0.3s ease');
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
- // Highlight the bar
4757
- d3.select(this).select('rect')
4758
- .transition()
4759
- .duration(200)
4760
- .attr('opacity', 1)
4761
- .style('filter', 'drop-shadow(0 4px 12px rgba(155, 89, 182, 0.5)) brightness(1.1)');
4762
- // Scale up the dots
4763
- d3.select(this).selectAll('circle')
4764
- .transition()
4765
- .duration(200)
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
- // Reset bar appearance
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
- // Update tooltip position
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
- // Create gradient definition
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 === 24 ? '12 AM' : hour === 36 ? '12 PM' :
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.append('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.axisBottom(xScale)
4836
- .tickValues(xAxisTicks.map(t => t.value))
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
- .tickSizeOuter(0));
4842
- // Style axis ticks
4843
- xAxis.selectAll('text')
4844
- .style('font-weight', d => {
4845
- const hour = d % 24;
4846
- return hour === 0 || hour === 12 ? '600' : '400';
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.axisLeft(yScale)
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).toString().padStart(2, '0')}/${date.getDate().toString().padStart(2, '0')}`;
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("div", { className: styles$6.header, children: [jsx("h3", { className: styles$6.title, children: "Sleep Pattern" }), jsxs("div", { className: styles$6.legend, children: [jsxs("div", { className: styles$6.legendItem, children: [jsx("span", { className: styles$6.sleepDot }), jsx("span", { children: "Sleep Time" })] }), jsxs("div", { className: styles$6.legendItem, children: [jsx("span", { className: styles$6.wakeDot }), jsx("span", { children: "Wake Time" })] })] })] }), jsx("svg", { ref: svgRef, width: width, height: height, className: styles$6.chart }), tooltipData && (jsxs("div", { className: `${styles$6.tooltip} ${tooltipData ? styles$6.visible : ''}`, style: {
4859
- left: `${tooltipData.x}px`,
4860
- top: `${tooltipData.y}px`
4861
- }, children: [jsxs("div", { className: styles$6.tooltipHeader, children: [jsx("span", { className: styles$6.tooltipEmoji, children: "\uD83D\uDE34" }), jsx("span", { children: new Date(tooltipData.date).toLocaleDateString('en-US', {
4862
- weekday: 'short',
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"};