@stfrigerio/sito-template 0.1.95 → 0.1.96

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 (197) hide show
  1. package/dist/components/molecules/RecurrencePicker/RecurrencePicker.d.ts +13 -0
  2. package/dist/components/molecules/RecurrencePicker/RecurrencePicker.d.ts.map +1 -0
  3. package/dist/components/molecules/RecurrencePicker/RecurrencePicker.stories.d.ts +12 -0
  4. package/dist/components/molecules/RecurrencePicker/RecurrencePicker.stories.d.ts.map +1 -0
  5. package/dist/components/molecules/RecurrencePicker/index.d.ts +3 -0
  6. package/dist/components/molecules/RecurrencePicker/index.d.ts.map +1 -0
  7. package/dist/components/molecules/index.d.ts +2 -0
  8. package/dist/components/molecules/index.d.ts.map +1 -1
  9. package/dist/index.esm.js +340 -182
  10. package/dist/index.esm.js.map +1 -1
  11. package/dist/index.js +343 -184
  12. package/dist/index.js.map +1 -1
  13. package/dist/styles.css +1 -1
  14. package/dist/styles.css.map +1 -1
  15. package/dist/themes/lossito.css +243 -49
  16. package/package.json +2 -1
  17. package/storybook-static/assets/{ASCIIText.stories-DFJdLu85.js → ASCIIText.stories-BNQcc9gv.js} +1 -1
  18. package/storybook-static/assets/{AllAtoms.stories-exRxVmzu.js → AllAtoms.stories-DBpk-rB8.js} +1 -1
  19. package/storybook-static/assets/{AnimatedContent.stories-A1SzIOe2.js → AnimatedContent.stories-CCnlHD5Y.js} +1 -1
  20. package/storybook-static/assets/{AnimatedList.stories-D2Q-T7WK.js → AnimatedList.stories-DNI1W5-A.js} +1 -1
  21. package/storybook-static/assets/{Antigravity.stories-CB3_2V40.js → Antigravity.stories-BQw1Zvk9.js} +1 -1
  22. package/storybook-static/assets/{ArrayInput.stories-pogP4q4b.js → ArrayInput.stories-HQd6ODME.js} +1 -1
  23. package/storybook-static/assets/{Aurora.stories-Cu440k5S.js → Aurora.stories-xI4i4wH4.js} +1 -1
  24. package/storybook-static/assets/{Beams.stories-CzUpFwoS.js → Beams.stories-DxSqefhF.js} +1 -1
  25. package/storybook-static/assets/{BlobCursor.stories-IsVKCCEO.js → BlobCursor.stories-DNk0BeNz.js} +1 -1
  26. package/storybook-static/assets/{BlurText.stories-BVGu0aqN.js → BlurText.stories-DBsRktVj.js} +1 -1
  27. package/storybook-static/assets/{BooleansHeatmap.stories-BthQ5ehB.js → BooleansHeatmap.stories-dsUQfyWg.js} +1 -1
  28. package/storybook-static/assets/{BorderGlow.stories-BNwBLObC.js → BorderGlow.stories-lgvEGRVA.js} +1 -1
  29. package/storybook-static/assets/{BubbleMenu.stories-7__gkj8R.js → BubbleMenu.stories-CXvB9JdY.js} +1 -1
  30. package/storybook-static/assets/{Button-CwSLfSSb.js → Button-6nmyMGc3.js} +1 -1
  31. package/storybook-static/assets/{Button.stories-DXdSC8Ub.js → Button.stories-DD3HQBXg.js} +1 -1
  32. package/storybook-static/assets/{Calendar.stories-HJNrPTKA.js → Calendar.stories-_ZDa4YfS.js} +1 -1
  33. package/storybook-static/assets/{Card-CMuvydSk.js → Card-B7F8cu_z.js} +1 -1
  34. package/storybook-static/assets/{Card.stories-C6r4Lfy1.js → Card.stories-BLbuUq_5.js} +1 -1
  35. package/storybook-static/assets/{CardNav.stories-WDha-__w.js → CardNav.stories-CiJ_bFt8.js} +1 -1
  36. package/storybook-static/assets/{Carousel.stories-C73W8Cj0.js → Carousel.stories-BYGW6P4X.js} +1 -1
  37. package/storybook-static/assets/{Checkbox-DXDBhCOJ.js → Checkbox-xrie0yDX.js} +1 -1
  38. package/storybook-static/assets/{Checkbox.stories-BdYI4nAD.js → Checkbox.stories-D-NYqhCG.js} +1 -1
  39. package/storybook-static/assets/{ChromaGrid.stories-DWa4kR3d.js → ChromaGrid.stories-yYkbcq2a.js} +1 -1
  40. package/storybook-static/assets/{CircularGallery.stories-DtM7FALz.js → CircularGallery.stories-Ci3GTUgX.js} +1 -1
  41. package/storybook-static/assets/{CircularText.stories-BaJvxGQF.js → CircularText.stories-7QMPmTLn.js} +1 -1
  42. package/storybook-static/assets/{ClickSpark.stories--IchxFvN.js → ClickSpark.stories-Dz9M-gEC.js} +1 -1
  43. package/storybook-static/assets/{ColorBends.stories-0cTr18l9.js → ColorBends.stories-Dfa0YMsf.js} +1 -1
  44. package/storybook-static/assets/{CountUp.stories-Cf4NC-XR.js → CountUp.stories-DrdYM8-J.js} +1 -1
  45. package/storybook-static/assets/{Counter.stories-CyhbcvKm.js → Counter.stories-3m6ldyes.js} +1 -1
  46. package/storybook-static/assets/{Crosshair.stories-ZZ5g9eO6.js → Crosshair.stories-DfRqBfZC.js} +1 -1
  47. package/storybook-static/assets/{Cubes.stories-CrYhlnje.js → Cubes.stories-D1sZRgvG.js} +1 -1
  48. package/storybook-static/assets/{CurvedLoop.stories-DyK7Wlt6.js → CurvedLoop.stories-D6jowEDF.js} +1 -1
  49. package/storybook-static/assets/{DarkVeil.stories-BEf6V85c.js → DarkVeil.stories-DLCrll-I.js} +1 -1
  50. package/storybook-static/assets/{DateInput-8onWa3KI.js → DateInput-D4MHyeLk.js} +1 -1
  51. package/storybook-static/assets/{DateInput.stories-BUDpdFa5.js → DateInput.stories-BRfVBcf6.js} +1 -1
  52. package/storybook-static/assets/{DecayCard.stories-DG0lwrmk.js → DecayCard.stories-DX1ak6pd.js} +1 -1
  53. package/storybook-static/assets/{DecryptedText.stories-BAy5in1k.js → DecryptedText.stories-BcCQ2Tby.js} +1 -1
  54. package/storybook-static/assets/{Dither.stories-B0Asjgfz.js → Dither.stories-BPqBpmFI.js} +1 -1
  55. package/storybook-static/assets/{Dock.stories-BrZSOCw5.js → Dock.stories-CKD_TOGP.js} +1 -1
  56. package/storybook-static/assets/{EditFAB.stories-Cur6BXdD.js → EditFAB.stories-DGVMpMOL.js} +1 -1
  57. package/storybook-static/assets/{EvilEye.stories-C6fVeJGL.js → EvilEye.stories-DNoB6FG0.js} +1 -1
  58. package/storybook-static/assets/{FadeContent.stories-Ckl198gp.js → FadeContent.stories-C8ppDaXi.js} +1 -1
  59. package/storybook-static/assets/{FaultyTerminal.stories-CRQCWCv-.js → FaultyTerminal.stories-Y8ME_yze.js} +1 -1
  60. package/storybook-static/assets/{Fbo-DIZ3Y1HH.js → Fbo-Bkb1mqiu.js} +1 -1
  61. package/storybook-static/assets/{FloatingLines.stories-BqgEOEZS.js → FloatingLines.stories-ZByyesqH.js} +1 -1
  62. package/storybook-static/assets/{FlowingMenu.stories-BnPI8poB.js → FlowingMenu.stories-CTWLtqhL.js} +1 -1
  63. package/storybook-static/assets/{FluidGlass.stories-CHAlMw3S.js → FluidGlass.stories--PsLBBhn.js} +1 -1
  64. package/storybook-static/assets/{Folder.stories-Dk5JAIQD.js → Folder.stories-JNXotEML.js} +1 -1
  65. package/storybook-static/assets/{FuzzyText.stories-BtDnau8f.js → FuzzyText.stories-o6wySpRq.js} +1 -1
  66. package/storybook-static/assets/{Galaxy.stories-BzhW3GF9.js → Galaxy.stories-DTZantrp.js} +1 -1
  67. package/storybook-static/assets/{GhostCursor.stories-DieHFjxw.js → GhostCursor.stories-DXF-m9YM.js} +1 -1
  68. package/storybook-static/assets/{GlareHover.stories-BHoXBn9o.js → GlareHover.stories-Bb4_dcLV.js} +1 -1
  69. package/storybook-static/assets/{GlassSurface.stories-DREe1ppH.js → GlassSurface.stories-yZ4K521K.js} +1 -1
  70. package/storybook-static/assets/{GlitchText.stories-ByEeawKD.js → GlitchText.stories-B4Eqkyri.js} +1 -1
  71. package/storybook-static/assets/{GooeyNav.stories-BwwWfgQg.js → GooeyNav.stories-CqUOrJR-.js} +1 -1
  72. package/storybook-static/assets/{GradientBlinds.stories-ZaBq37aP.js → GradientBlinds.stories-DZ6bTCGp.js} +1 -1
  73. package/storybook-static/assets/{GradientText.stories-OlD8JIJh.js → GradientText.stories-DyDht-TI.js} +1 -1
  74. package/storybook-static/assets/{Grainient.stories-CfHG2dG3.js → Grainient.stories-C1PtR90_.js} +1 -1
  75. package/storybook-static/assets/{GridMotion.stories-BsWVs4IR.js → GridMotion.stories-BRbD6MZr.js} +1 -1
  76. package/storybook-static/assets/{HabitTimeOfDayChart.stories-DfBLc8St.js → HabitTimeOfDayChart.stories-D3gqeKpl.js} +1 -1
  77. package/storybook-static/assets/{ImageSlideshow.stories-Cpb9fisd.js → ImageSlideshow.stories-BileVQYy.js} +1 -1
  78. package/storybook-static/assets/{Iridescence.stories-Ch3ilnYv.js → Iridescence.stories-BIhFVHOn.js} +1 -1
  79. package/storybook-static/assets/{LaserFlow.stories-DenbpERy.js → LaserFlow.stories-BSnwH5Mv.js} +1 -1
  80. package/storybook-static/assets/{LetterGlitch.stories-D1DfeFIa.js → LetterGlitch.stories-CfGaNSmi.js} +1 -1
  81. package/storybook-static/assets/{LightPillar.stories-CVxcYtjt.js → LightPillar.stories-CNtpoF6N.js} +1 -1
  82. package/storybook-static/assets/{LightRays.stories-F5idlq2b.js → LightRays.stories-DRKVWqXb.js} +1 -1
  83. package/storybook-static/assets/{Lightning.stories-Diu1zWyT.js → Lightning.stories-DJOW6kK7.js} +1 -1
  84. package/storybook-static/assets/{LineWaves.stories-CmEm2I-A.js → LineWaves.stories-17nqJpH2.js} +1 -1
  85. package/storybook-static/assets/{LiquidChrome.stories-CHP_FcPv.js → LiquidChrome.stories-CgmsyPLg.js} +1 -1
  86. package/storybook-static/assets/{LiquidEther.stories-Iraa-nLM.js → LiquidEther.stories-CKvaP6zm.js} +1 -1
  87. package/storybook-static/assets/{LoadingSpinner-DlrNT1AA.js → LoadingSpinner-LXRJXAO4.js} +1 -1
  88. package/storybook-static/assets/{LoadingSpinner.stories-CnE24Tsx.js → LoadingSpinner.stories-C0tbgfV3.js} +1 -1
  89. package/storybook-static/assets/{MagicRings.stories-BqJypRLP.js → MagicRings.stories-qzHi78-J.js} +1 -1
  90. package/storybook-static/assets/{Magnet.stories-DL0Go3qR.js → Magnet.stories-QWTKtI1e.js} +1 -1
  91. package/storybook-static/assets/{MagnetLines.stories-CxpAiInh.js → MagnetLines.stories-BOaR4PZi.js} +1 -1
  92. package/storybook-static/assets/{Masonry.stories-flII8LRK.js → Masonry.stories-DLz9dA8U.js} +1 -1
  93. package/storybook-static/assets/{MetaBalls.stories-Bs_-0CGV.js → MetaBalls.stories-DcleGPI8.js} +1 -1
  94. package/storybook-static/assets/{MetallicPaint.stories-DiyJoRNq.js → MetallicPaint.stories-Dqit7nFj.js} +1 -1
  95. package/storybook-static/assets/{MoodChart.stories-CJ2A0E0j.js → MoodChart.stories-1otFXWFu.js} +1 -1
  96. package/storybook-static/assets/{MotionConfigContext-Dyabqz-b.js → MotionConfigContext-HXxMOMJo.js} +1 -1
  97. package/storybook-static/assets/{Navbar.stories-B--ABN9C.js → Navbar.stories-BPE4RMdc.js} +1 -1
  98. package/storybook-static/assets/{Noise.stories-BpKTpxeE.js → Noise.stories-BktPkK5a.js} +1 -1
  99. package/storybook-static/assets/{NumberStepper-EhG-KGNo.js → NumberStepper-D1to6bpi.js} +1 -1
  100. package/storybook-static/assets/{NumberStepper.stories-Ba1aWk0g.js → NumberStepper.stories-WnrisOam.js} +1 -1
  101. package/storybook-static/assets/{Orb.stories-D8od8KSg.js → Orb.stories-BtZmx5Sy.js} +1 -1
  102. package/storybook-static/assets/{OrbitImages.stories-Dxj-5r4i.js → OrbitImages.stories-DSTSVc16.js} +1 -1
  103. package/storybook-static/assets/{PieChart.stories-DWw4EGwt.js → PieChart.stories-L1NRhd_j.js} +1 -1
  104. package/storybook-static/assets/{PixelBlast.stories-C3u9ldzB.js → PixelBlast.stories-CfT09XYZ.js} +1 -1
  105. package/storybook-static/assets/{PixelCard.stories-BtQ8LfFf.js → PixelCard.stories-B2LTanjI.js} +1 -1
  106. package/storybook-static/assets/{PixelSnow.stories-KpmT5jBn.js → PixelSnow.stories-Kg0VE4Bc.js} +1 -1
  107. package/storybook-static/assets/{PixelTransition.stories-CJs0eV-2.js → PixelTransition.stories-CeanWE2-.js} +1 -1
  108. package/storybook-static/assets/{Plasma.stories-CivG0ZTB.js → Plasma.stories-DujATB5Q.js} +1 -1
  109. package/storybook-static/assets/{Prism.stories--tExtMti.js → Prism.stories-Dxke5JPk.js} +1 -1
  110. package/storybook-static/assets/{PrismaticBurst.stories-BEHRmqtH.js → PrismaticBurst.stories-xc5NSeNp.js} +1 -1
  111. package/storybook-static/assets/{ProfileCard.stories-Bfv1Qk_A.js → ProfileCard.stories-Cnb3pxki.js} +1 -1
  112. package/storybook-static/assets/{QuantifiableHabitsChart.stories-WPetwjBc.js → QuantifiableHabitsChart.stories-BMxWoQO4.js} +1 -1
  113. package/storybook-static/assets/{Radar.stories-CWQNMWx2.js → Radar.stories-CrJcMxjq.js} +1 -1
  114. package/storybook-static/assets/RecurrencePicker-Bjafom-j.css +1 -0
  115. package/storybook-static/assets/RecurrencePicker.stories-vkallG9D.js +19 -0
  116. package/storybook-static/assets/{Ribbons.stories-B3X4I9Cz.js → Ribbons.stories-LT5RgvPo.js} +1 -1
  117. package/storybook-static/assets/{RippleGrid.stories-O3VVcQWl.js → RippleGrid.stories-Bwsl-Ueq.js} +1 -1
  118. package/storybook-static/assets/{RotatingText.stories-Cs-vTbFZ.js → RotatingText.stories-CNDJn3v6.js} +1 -1
  119. package/storybook-static/assets/{ScrollFloat.stories-BMoNuRtU.js → ScrollFloat.stories-B0qUJggd.js} +1 -1
  120. package/storybook-static/assets/{ScrollReveal.stories-C5dVXxt1.js → ScrollReveal.stories-BBVRW0fh.js} +1 -1
  121. package/storybook-static/assets/{ScrollVelocity.stories-CJKSvAY4.js → ScrollVelocity.stories-DfKnOsGa.js} +1 -1
  122. package/storybook-static/assets/{SearchBar.stories-Dtm9l67y.js → SearchBar.stories-Coshf_t6.js} +1 -1
  123. package/storybook-static/assets/{SearchableDropdown-Dqzi4LKk.js → SearchableDropdown-CC1-QlKh.js} +1 -1
  124. package/storybook-static/assets/{SearchableDropdown.stories-BG3ESCwq.js → SearchableDropdown.stories-DydVUjWf.js} +1 -1
  125. package/storybook-static/assets/{SelectInput-BUDt34Ej.js → SelectInput-BqVWIQmb.js} +1 -1
  126. package/storybook-static/assets/{SelectInput.stories-Dxe4mL9o.js → SelectInput.stories-I0azAt7k.js} +1 -1
  127. package/storybook-static/assets/{ShapeBlur.stories-C2sk-BXL.js → ShapeBlur.stories-BWBp8nEd.js} +1 -1
  128. package/storybook-static/assets/{ShapeGrid.stories-ihKrWukc.js → ShapeGrid.stories-DJmnW7fN.js} +1 -1
  129. package/storybook-static/assets/{ShinyText.stories-DwNgYe9N.js → ShinyText.stories-7vHIqa03.js} +1 -1
  130. package/storybook-static/assets/{Silk.stories-CzFSFGhP.js → Silk.stories-CXiaINFD.js} +1 -1
  131. package/storybook-static/assets/{SleepChart.stories-CZufs6Gb.js → SleepChart.stories-BmAtNTJP.js} +1 -1
  132. package/storybook-static/assets/{Slider-BRAq3fxE.js → Slider-BmG0iCoC.js} +1 -1
  133. package/storybook-static/assets/{Slider.stories-CK522MN_.js → Slider.stories-DZciYzwU.js} +1 -1
  134. package/storybook-static/assets/{SoftAurora.stories-DqOpOzFw.js → SoftAurora.stories-BubrO6U4.js} +1 -1
  135. package/storybook-static/assets/{SoundDemo.stories-BkFbK-1Y.js → SoundDemo.stories-CDXr3mFW.js} +1 -1
  136. package/storybook-static/assets/{SplashCursor.stories-ClGNxcw4.js → SplashCursor.stories-DgMm9xv3.js} +1 -1
  137. package/storybook-static/assets/{SpotlightCard.stories-B-Hpffrl.js → SpotlightCard.stories-ChPn0jeh.js} +1 -1
  138. package/storybook-static/assets/{Stack.stories-DLN47Bj-.js → Stack.stories-DzzqOEhy.js} +1 -1
  139. package/storybook-static/assets/{StaggeredMenu.stories-DL6I7cbu.js → StaggeredMenu.stories-BNHc0PM6.js} +1 -1
  140. package/storybook-static/assets/{StarBorder.stories-BIP0gskB.js → StarBorder.stories-DBGelRYw.js} +1 -1
  141. package/storybook-static/assets/{SunburstChart.stories-Bb0VKYC3.js → SunburstChart.stories-KPCIjiOk.js} +1 -1
  142. package/storybook-static/assets/{Table.stories-DeMvjpqQ.js → Table.stories-Bz2NsPvR.js} +1 -1
  143. package/storybook-static/assets/{Tabs.stories-qZulSRrO.js → Tabs.stories-DH8uIATQ.js} +1 -1
  144. package/storybook-static/assets/{TargetCursor.stories-4pSN2J9r.js → TargetCursor.stories-BUrQiofc.js} +1 -1
  145. package/storybook-static/assets/{TextArea-CvRZ3TaY.js → TextArea-DVqzGhY3.js} +1 -1
  146. package/storybook-static/assets/{TextArea.stories-teCx-H2z.js → TextArea.stories-A0YRdcwk.js} +1 -1
  147. package/storybook-static/assets/{TextCursor.stories-pry7pdoW.js → TextCursor.stories-B_UinRXa.js} +1 -1
  148. package/storybook-static/assets/{TextInput-BPdFcHbk.js → TextInput-46C4j_hq.js} +1 -1
  149. package/storybook-static/assets/{TextInput.stories-B-HTRiwl.js → TextInput.stories-C7ZC_8wE.js} +1 -1
  150. package/storybook-static/assets/{TextPressure.stories-BdtIOM1Y.js → TextPressure.stories-Wwlb-VgV.js} +1 -1
  151. package/storybook-static/assets/{TextType.stories-Bq-Vo4qL.js → TextType.stories-DYLMktJi.js} +1 -1
  152. package/storybook-static/assets/{ThemeSwitcher.stories-SgJg0LCK.js → ThemeSwitcher.stories-8FTV9MJW.js} +1 -1
  153. package/storybook-static/assets/{Threads.stories-hqtYUEu-.js → Threads.stories-BDwauY1I.js} +1 -1
  154. package/storybook-static/assets/{TimeInput.stories-CPOqj_Se.js → TimeInput.stories-Bk2lwEyd.js} +1 -1
  155. package/storybook-static/assets/{Toggle-CAPcFsLF.js → Toggle-BbWuVStR.js} +1 -1
  156. package/storybook-static/assets/{Toggle.stories-O2_0c-1s.js → Toggle.stories-Bb7-wtRn.js} +1 -1
  157. package/storybook-static/assets/{ToggleButton-BZOAtsmB.js → ToggleButton-BaLN5DsF.js} +1 -1
  158. package/storybook-static/assets/{ToggleButton.stories-JG_Pazh7.js → ToggleButton.stories-Cdx8eTPI.js} +1 -1
  159. package/storybook-static/assets/{TrueFocus.stories-rLnKDbsk.js → TrueFocus.stories-B_pN3J3c.js} +1 -1
  160. package/storybook-static/assets/{VariableProximity.stories-RaopvofU.js → VariableProximity.stories-BTLVRXWD.js} +1 -1
  161. package/storybook-static/assets/{Waves.stories-oO9FrJAS.js → Waves.stories-_NtAqm6K.js} +1 -1
  162. package/storybook-static/assets/{calendar-JsvgBBDH.js → calendar-jGMMZsgE.js} +1 -1
  163. package/storybook-static/assets/{chart-column-mrC32qXf.js → chart-column-jT4jlZWv.js} +1 -1
  164. package/storybook-static/assets/{check-CvrIUYEl.js → check-D_NpTUYB.js} +1 -1
  165. package/storybook-static/assets/{chevron-down-BUZZ9BTx.js → chevron-down-C40D1TRM.js} +1 -1
  166. package/storybook-static/assets/{chevron-right-SVhPWVWz.js → chevron-right-pJjQoHt-.js} +1 -1
  167. package/storybook-static/assets/client-BAyDOFGI.js +1 -0
  168. package/storybook-static/assets/{createLucideIcon-D1rlWUhC.js → createLucideIcon-DhNY7W9i.js} +1 -1
  169. package/storybook-static/assets/{download-Bmqc20p3.js → download-DDadr76l.js} +1 -1
  170. package/storybook-static/assets/{folder-BCJqv57N.js → folder-Dt06LOrp.js} +1 -1
  171. package/storybook-static/assets/{iconBase-Bvu3HEFH.js → iconBase-HFPlWF3A.js} +1 -1
  172. package/storybook-static/assets/iframe-1P7UMs1C.css +1 -0
  173. package/storybook-static/assets/{iframe-D7y7FUTK.js → iframe-rPhsLpUF.js} +3 -3
  174. package/storybook-static/assets/{index-C_G3JJLn.js → index-B9UM6a_o.js} +1 -1
  175. package/storybook-static/assets/{index-um02zCcj.js → index-Ctb6PtgV.js} +1 -1
  176. package/storybook-static/assets/{index-BCGRwJ5q.js → index-DVywRwbF.js} +1 -1
  177. package/storybook-static/assets/{proxy-Ce-uTDDv.js → proxy-uJ8evSzT.js} +1 -1
  178. package/storybook-static/assets/{react-18-DlLnXErP.js → react-18-CYoR46z3.js} +1 -1
  179. package/storybook-static/assets/{react-three-fiber.esm-ssg-DJvA.js → react-three-fiber.esm-A61ChP7H.js} +1 -1
  180. package/storybook-static/assets/{search-BpBodH3r.js → search-CIAI1CyG.js} +1 -1
  181. package/storybook-static/assets/{settings-D8D67Id0.js → settings-en9EIxHx.js} +1 -1
  182. package/storybook-static/assets/{sun-BQcJSsaQ.js → sun-D_CSzOJ1.js} +1 -1
  183. package/storybook-static/assets/{trash-2-D6WRmoL3.js → trash-2-C2s-nRjQ.js} +1 -1
  184. package/storybook-static/assets/{use-animation-frame-CO9S19qn.js → use-animation-frame-B62vi9Ct.js} +1 -1
  185. package/storybook-static/assets/{use-in-view-DZc-byXh.js → use-in-view-BHudJAGG.js} +1 -1
  186. package/storybook-static/assets/{use-motion-value-mO9NrpTN.js → use-motion-value-jBEsDEvG.js} +1 -1
  187. package/storybook-static/assets/{use-spring-CdsbAGfL.js → use-spring-Bf02nu3H.js} +1 -1
  188. package/storybook-static/assets/{use-transform-DcYgqXpl.js → use-transform-Cfp6qWZw.js} +1 -1
  189. package/storybook-static/assets/{useSound-Ape9PZyo.js → useSound-CISJumm6.js} +1 -1
  190. package/storybook-static/assets/{users-BQ1OQC3n.js → users-Bm-CUW6N.js} +1 -1
  191. package/storybook-static/assets/{x-Cq6n8SKu.js → x-Bb1g_3HM.js} +1 -1
  192. package/storybook-static/iframe.html +2 -2
  193. package/storybook-static/index.json +1 -1
  194. package/storybook-static/project.json +1 -1
  195. package/storybook-static/sb-addons/storybook-2/manager-bundle.js +1 -1
  196. package/storybook-static/assets/client-7pDjGlit.js +0 -1
  197. package/storybook-static/assets/iframe-CU5nRRrn.css +0 -1
package/dist/index.js CHANGED
@@ -9,7 +9,8 @@ var dayjs = require('dayjs');
9
9
  var MobileTimePicker = require('@mui/x-date-pickers/MobileTimePicker');
10
10
  var LocalizationProvider = require('@mui/x-date-pickers/LocalizationProvider');
11
11
  var AdapterDayjs = require('@mui/x-date-pickers/AdapterDayjs');
12
- var styles$C = require('@mui/material/styles');
12
+ var styles$D = require('@mui/material/styles');
13
+ var rrule = require('rrule');
13
14
  var d3 = require('d3');
14
15
 
15
16
  function _interopNamespaceDefault(e) {
@@ -31,7 +32,7 @@ function _interopNamespaceDefault(e) {
31
32
 
32
33
  var d3__namespace = /*#__PURE__*/_interopNamespaceDefault(d3);
33
34
 
34
- var styles$B = {"button":"Button-module_button__c6nkW","primary":"Button-module_primary__pMqAs","secondary":"Button-module_secondary__mBWx9","outline":"Button-module_outline__NGGGN","ghost":"Button-module_ghost__u2QBF","danger":"Button-module_danger__2ewhr","icon":"Button-module_icon__JNzlJ","iconLeft":"Button-module_iconLeft__Fpz-y","iconRight":"Button-module_iconRight__kTfjS","small":"Button-module_small__ZI9RX","medium":"Button-module_medium__Wnf9t","large":"Button-module_large__cQCpA","fullWidth":"Button-module_fullWidth__N8vYg","loading":"Button-module_loading__hcSI4","spinner":"Button-module_spinner__HtM96","spin":"Button-module_spin__jblrj"};
35
+ var styles$C = {"button":"Button-module_button__c6nkW","primary":"Button-module_primary__pMqAs","secondary":"Button-module_secondary__mBWx9","outline":"Button-module_outline__NGGGN","ghost":"Button-module_ghost__u2QBF","danger":"Button-module_danger__2ewhr","icon":"Button-module_icon__JNzlJ","iconLeft":"Button-module_iconLeft__Fpz-y","iconRight":"Button-module_iconRight__kTfjS","small":"Button-module_small__ZI9RX","medium":"Button-module_medium__Wnf9t","large":"Button-module_large__cQCpA","fullWidth":"Button-module_fullWidth__N8vYg","loading":"Button-module_loading__hcSI4","spinner":"Button-module_spinner__HtM96","spin":"Button-module_spin__jblrj"};
35
36
 
36
37
  const SOUND_PACKS = {
37
38
  digital: {
@@ -597,11 +598,11 @@ const Button = ({ variant = 'primary', size = 'medium', fullWidth = false, loadi
597
598
  const { handlers } = useComponentSound(soundConfig);
598
599
  const isIcon = variant === 'icon';
599
600
  const buttonClasses = [
600
- styles$B.button,
601
- styles$B[variant],
602
- !isIcon && styles$B[size],
603
- fullWidth && styles$B.fullWidth,
604
- loading && styles$B.loading,
601
+ styles$C.button,
602
+ styles$C[variant],
603
+ !isIcon && styles$C[size],
604
+ fullWidth && styles$C.fullWidth,
605
+ loading && styles$C.loading,
605
606
  className
606
607
  ].filter(Boolean).join(' ');
607
608
  const handleClick = (e) => {
@@ -612,10 +613,10 @@ const Button = ({ variant = 'primary', size = 'medium', fullWidth = false, loadi
612
613
  handlers.onMouseEnter?.();
613
614
  onMouseEnter?.(e);
614
615
  };
615
- return (jsxRuntime.jsxs(framerMotion.motion.button, { className: buttonClasses, disabled: disabled || loading, whileHover: isIcon ? undefined : { scale: disabled || loading ? 1 : 1.02 }, whileTap: { scale: disabled || loading ? 1 : (isIcon ? 0.9 : 0.98) }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: handleClick, onMouseEnter: handleMouseEnter, onFocus: onFocus, ...motionProps, ...rest, children: [loading && jsxRuntime.jsx("span", { className: styles$B.spinner }), iconLeft && jsxRuntime.jsx("span", { className: styles$B.iconLeft, children: iconLeft }), children, iconRight && jsxRuntime.jsx("span", { className: styles$B.iconRight, children: iconRight })] }));
616
+ return (jsxRuntime.jsxs(framerMotion.motion.button, { className: buttonClasses, disabled: disabled || loading, whileHover: isIcon ? undefined : { scale: disabled || loading ? 1 : 1.02 }, whileTap: { scale: disabled || loading ? 1 : (isIcon ? 0.9 : 0.98) }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: handleClick, onMouseEnter: handleMouseEnter, onFocus: onFocus, ...motionProps, ...rest, children: [loading && jsxRuntime.jsx("span", { className: styles$C.spinner }), iconLeft && jsxRuntime.jsx("span", { className: styles$C.iconLeft, children: iconLeft }), children, iconRight && jsxRuntime.jsx("span", { className: styles$C.iconRight, children: iconRight })] }));
616
617
  };
617
618
 
618
- var styles$A = {"card":"Card-module_card__r2DB2","hoverable":"Card-module_hoverable__X3OpS","elevated":"Card-module_elevated__hGV6-","outlined":"Card-module_outlined__ngRag","flat":"Card-module_flat__xy-xt","glass":"Card-module_glass__Sv-Vs","imageContainer":"Card-module_imageContainer__L4ma6","image":"Card-module_image__bQBt6","header":"Card-module_header__0dtj3","headerContent":"Card-module_headerContent__W7-jD","expandButton":"Card-module_expandButton__I7f49","expandIcon":"Card-module_expandIcon__Lu-OY","expandableContent":"Card-module_expandableContent__BFgO5","expandable":"Card-module_expandable__GMXzo","body":"Card-module_body__K7eL3","footer":"Card-module_footer__L5wO-","title":"Card-module_title__pW9g8","subtitle":"Card-module_subtitle__gejH4","clickable":"Card-module_clickable__Y6fm8","padding":"Card-module_padding__wtyDo","noPadding":"Card-module_noPadding__r5Qq0","loading":"Card-module_loading__S4Wng","loadingShimmer":"Card-module_loadingShimmer__Q1Osr","loadingPulse":"Card-module_loadingPulse__bXQmC"};
619
+ var styles$B = {"card":"Card-module_card__r2DB2","hoverable":"Card-module_hoverable__X3OpS","elevated":"Card-module_elevated__hGV6-","outlined":"Card-module_outlined__ngRag","flat":"Card-module_flat__xy-xt","glass":"Card-module_glass__Sv-Vs","imageContainer":"Card-module_imageContainer__L4ma6","image":"Card-module_image__bQBt6","header":"Card-module_header__0dtj3","headerContent":"Card-module_headerContent__W7-jD","expandButton":"Card-module_expandButton__I7f49","expandIcon":"Card-module_expandIcon__Lu-OY","expandableContent":"Card-module_expandableContent__BFgO5","expandable":"Card-module_expandable__GMXzo","body":"Card-module_body__K7eL3","footer":"Card-module_footer__L5wO-","title":"Card-module_title__pW9g8","subtitle":"Card-module_subtitle__gejH4","clickable":"Card-module_clickable__Y6fm8","padding":"Card-module_padding__wtyDo","noPadding":"Card-module_noPadding__r5Qq0","loading":"Card-module_loading__S4Wng","loadingShimmer":"Card-module_loadingShimmer__Q1Osr","loadingPulse":"Card-module_loadingPulse__bXQmC"};
619
620
 
620
621
  /**
621
622
  * Card Component
@@ -680,28 +681,28 @@ const Card = ({ variant = 'elevated', hoverable = false, clickable = false, padd
680
681
  onExpandChange?.(newExpanded);
681
682
  };
682
683
  const cardClasses = [
683
- styles$A.card,
684
- styles$A[variant],
685
- hoverable && styles$A.hoverable,
686
- clickable && styles$A.clickable,
687
- !padding && styles$A.noPadding,
688
- expandable && styles$A.expandable,
684
+ styles$B.card,
685
+ styles$B[variant],
686
+ hoverable && styles$B.hoverable,
687
+ clickable && styles$B.clickable,
688
+ !padding && styles$B.noPadding,
689
+ expandable && styles$B.expandable,
689
690
  className
690
691
  ].filter(Boolean).join(' ');
691
692
  const renderHeader = () => {
692
693
  if (header) {
693
- return (jsxRuntime.jsxs("div", { className: styles$A.header, children: [jsxRuntime.jsx("div", { className: styles$A.headerContent, children: header }), expandable && (jsxRuntime.jsx("button", { className: styles$A.expandButton, onClick: handleToggleExpand, "aria-label": isExpanded ? 'Collapse card' : 'Expand card', children: jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: styles$A.expandIcon, style: { transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)' }, children: jsxRuntime.jsx("path", { d: "M6 9l6 6 6-6" }) }) }))] }));
694
+ return (jsxRuntime.jsxs("div", { className: styles$B.header, children: [jsxRuntime.jsx("div", { className: styles$B.headerContent, children: header }), expandable && (jsxRuntime.jsx("button", { className: styles$B.expandButton, onClick: handleToggleExpand, "aria-label": isExpanded ? 'Collapse card' : 'Expand card', children: jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: styles$B.expandIcon, style: { transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)' }, children: jsxRuntime.jsx("path", { d: "M6 9l6 6 6-6" }) }) }))] }));
694
695
  }
695
696
  if (title || subtitle) {
696
- return (jsxRuntime.jsxs("div", { className: styles$A.header, children: [jsxRuntime.jsxs("div", { className: styles$A.headerContent, children: [title && jsxRuntime.jsx("h3", { className: styles$A.title, children: title }), subtitle && jsxRuntime.jsx("p", { className: styles$A.subtitle, children: subtitle })] }), expandable && (jsxRuntime.jsx("button", { className: styles$A.expandButton, onClick: handleToggleExpand, "aria-label": isExpanded ? 'Collapse card' : 'Expand card', children: jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: styles$A.expandIcon, style: { transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)' }, children: jsxRuntime.jsx("path", { d: "M6 9l6 6 6-6" }) }) }))] }));
697
+ return (jsxRuntime.jsxs("div", { className: styles$B.header, children: [jsxRuntime.jsxs("div", { className: styles$B.headerContent, children: [title && jsxRuntime.jsx("h3", { className: styles$B.title, children: title }), subtitle && jsxRuntime.jsx("p", { className: styles$B.subtitle, children: subtitle })] }), expandable && (jsxRuntime.jsx("button", { className: styles$B.expandButton, onClick: handleToggleExpand, "aria-label": isExpanded ? 'Collapse card' : 'Expand card', children: jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: styles$B.expandIcon, style: { transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)' }, children: jsxRuntime.jsx("path", { d: "M6 9l6 6 6-6" }) }) }))] }));
697
698
  }
698
699
  return null;
699
700
  };
700
- const cardContent = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [image && (jsxRuntime.jsx("div", { className: styles$A.imageContainer, children: jsxRuntime.jsx("img", { src: image, alt: imageAlt, className: styles$A.image }) })), renderHeader(), jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, children: (!expandable || isExpanded) && (jsxRuntime.jsxs(framerMotion.motion.div, { initial: expandable ? { height: 0, opacity: 0 } : undefined, animate: expandable ? { height: 'auto', opacity: 1 } : undefined, exit: expandable ? { height: 0, opacity: 0 } : undefined, transition: { duration: 0.3, ease: "easeInOut" }, className: styles$A.expandableContent, children: [children && (jsxRuntime.jsx("div", { className: padding ? styles$A.body : undefined, children: children })), footer && jsxRuntime.jsx("div", { className: styles$A.footer, children: footer })] }, "content")) })] }));
701
+ const cardContent = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [image && (jsxRuntime.jsx("div", { className: styles$B.imageContainer, children: jsxRuntime.jsx("img", { src: image, alt: imageAlt, className: styles$B.image }) })), renderHeader(), jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, children: (!expandable || isExpanded) && (jsxRuntime.jsxs(framerMotion.motion.div, { initial: expandable ? { height: 0, opacity: 0 } : undefined, animate: expandable ? { height: 'auto', opacity: 1 } : undefined, exit: expandable ? { height: 0, opacity: 0 } : undefined, transition: { duration: 0.3, ease: "easeInOut" }, className: styles$B.expandableContent, children: [children && (jsxRuntime.jsx("div", { className: padding ? styles$B.body : undefined, children: children })), footer && jsxRuntime.jsx("div", { className: styles$B.footer, children: footer })] }, "content")) })] }));
701
702
  return (jsxRuntime.jsx(framerMotion.motion.div, { className: cardClasses, onClick: clickable ? onClick : undefined, whileHover: hoverable ? { y: -4 } : undefined, transition: { type: "spring", stiffness: 400, damping: 17 }, ...motionProps, ...rest, children: cardContent }));
702
703
  };
703
704
 
704
- var styles$z = {"wrapper":"EmptyState-module_wrapper__h3Y2E","compact":"EmptyState-module_compact__HdYu1","default":"EmptyState-module_default__ACAbn","large":"EmptyState-module_large__H3ELo","icon":"EmptyState-module_icon__i7-3M","title":"EmptyState-module_title__xCyfH","message":"EmptyState-module_message__Bc5xK","action":"EmptyState-module_action__UpnvZ"};
705
+ var styles$A = {"wrapper":"EmptyState-module_wrapper__h3Y2E","compact":"EmptyState-module_compact__HdYu1","default":"EmptyState-module_default__ACAbn","large":"EmptyState-module_large__H3ELo","icon":"EmptyState-module_icon__i7-3M","title":"EmptyState-module_title__xCyfH","message":"EmptyState-module_message__Bc5xK","action":"EmptyState-module_action__UpnvZ"};
705
706
 
706
707
  /**
707
708
  * EmptyState Component
@@ -738,11 +739,11 @@ var styles$z = {"wrapper":"EmptyState-module_wrapper__h3Y2E","compact":"EmptySta
738
739
  * @returns {JSX.Element} The rendered EmptyState component
739
740
  */
740
741
  const EmptyState = ({ icon, title, message, action, size = 'default', }) => {
741
- const wrapperClass = [styles$z.wrapper, styles$z[size]].filter(Boolean).join(' ');
742
- return (jsxRuntime.jsxs("div", { className: wrapperClass, children: [icon && jsxRuntime.jsx("div", { className: styles$z.icon, children: icon }), title && jsxRuntime.jsx("h3", { className: styles$z.title, children: title }), jsxRuntime.jsx("p", { className: styles$z.message, children: message }), action && jsxRuntime.jsx("div", { className: styles$z.action, children: action })] }));
742
+ const wrapperClass = [styles$A.wrapper, styles$A[size]].filter(Boolean).join(' ');
743
+ return (jsxRuntime.jsxs("div", { className: wrapperClass, children: [icon && jsxRuntime.jsx("div", { className: styles$A.icon, children: icon }), title && jsxRuntime.jsx("h3", { className: styles$A.title, children: title }), jsxRuntime.jsx("p", { className: styles$A.message, children: message }), action && jsxRuntime.jsx("div", { className: styles$A.action, children: action })] }));
743
744
  };
744
745
 
745
- var styles$y = {"backdrop":"Modal-module_backdrop__yOx-a","dialog":"Modal-module_dialog__yEXTq","dialogCompact":"Modal-module_dialogCompact__z1Wxp","dialogWide":"Modal-module_dialogWide__9PTXK","header":"Modal-module_header__NHHKd","title":"Modal-module_title__i3R0x","headerActions":"Modal-module_headerActions__g28UN","closeButton":"Modal-module_closeButton__siC-1","body":"Modal-module_body__U7jvM","bodyFlush":"Modal-module_bodyFlush__wtk3q","backdropSheet":"Modal-module_backdropSheet__o9kW3","dialogSheet":"Modal-module_dialogSheet__EjpwP","grabBar":"Modal-module_grabBar__qhl9f"};
746
+ var styles$z = {"backdrop":"Modal-module_backdrop__yOx-a","dialog":"Modal-module_dialog__yEXTq","dialogCompact":"Modal-module_dialogCompact__z1Wxp","dialogWide":"Modal-module_dialogWide__9PTXK","header":"Modal-module_header__NHHKd","title":"Modal-module_title__i3R0x","headerActions":"Modal-module_headerActions__g28UN","closeButton":"Modal-module_closeButton__siC-1","body":"Modal-module_body__U7jvM","bodyFlush":"Modal-module_bodyFlush__wtk3q","backdropSheet":"Modal-module_backdropSheet__o9kW3","dialogSheet":"Modal-module_dialogSheet__EjpwP","grabBar":"Modal-module_grabBar__qhl9f"};
746
747
 
747
748
  const MOBILE_BREAKPOINT = '(max-width: 640px)';
748
749
  const useIsMobile = () => {
@@ -779,14 +780,14 @@ const Modal = ({ open, title, onClose, children, size = 'default', actions, padd
779
780
  return null;
780
781
  const isSheet = mobileVariant === 'sheet' && isMobile;
781
782
  const isDraggable = isSheet && draggable;
782
- const backdropClass = [styles$y.backdrop, isSheet && styles$y.backdropSheet]
783
+ const backdropClass = [styles$z.backdrop, isSheet && styles$z.backdropSheet]
783
784
  .filter(Boolean)
784
785
  .join(' ');
785
786
  const dialogClass = [
786
- styles$y.dialog,
787
- size === 'compact' && styles$y.dialogCompact,
788
- size === 'wide' && styles$y.dialogWide,
789
- isSheet && styles$y.dialogSheet,
787
+ styles$z.dialog,
788
+ size === 'compact' && styles$z.dialogCompact,
789
+ size === 'wide' && styles$z.dialogWide,
790
+ isSheet && styles$z.dialogSheet,
790
791
  ]
791
792
  .filter(Boolean)
792
793
  .join(' ');
@@ -802,16 +803,16 @@ const Modal = ({ open, title, onClose, children, size = 'default', actions, padd
802
803
  : { duration: 0.15, ease: 'easeOut' }, onClick: (e) => e.stopPropagation(), drag: isDraggable ? 'y' : false, dragControls: isDraggable ? dragControls : undefined, dragConstraints: { top: 0 }, dragElastic: { top: 0, bottom: 0.3 }, dragListener: false, onDragEnd: (_, info) => {
803
804
  if (info.offset.y > 80)
804
805
  onClose();
805
- }, children: [isSheet && jsxRuntime.jsx("div", { className: styles$y.grabBar }), jsxRuntime.jsxs("div", { ref: headerRef, className: styles$y.header, onPointerDown: (e) => {
806
+ }, children: [isSheet && jsxRuntime.jsx("div", { className: styles$z.grabBar }), jsxRuntime.jsxs("div", { ref: headerRef, className: styles$z.header, onPointerDown: (e) => {
806
807
  if (!isDraggable)
807
808
  return;
808
809
  if (e.target.closest('button'))
809
810
  return;
810
811
  dragControls.start(e);
811
- }, children: [jsxRuntime.jsx("span", { className: styles$y.title, children: title }), actions && jsxRuntime.jsx("div", { className: styles$y.headerActions, children: actions }), jsxRuntime.jsx("button", { className: styles$y.closeButton, onClick: onClose, "aria-label": "Close modal", type: "button", children: jsxRuntime.jsx(lucideReact.X, { size: 16 }) })] }), jsxRuntime.jsx("div", { className: padding ? styles$y.body : styles$y.bodyFlush, children: children })] }) })) }), document.body);
812
+ }, children: [jsxRuntime.jsx("span", { className: styles$z.title, children: title }), actions && jsxRuntime.jsx("div", { className: styles$z.headerActions, children: actions }), jsxRuntime.jsx("button", { className: styles$z.closeButton, onClick: onClose, "aria-label": "Close modal", type: "button", children: jsxRuntime.jsx(lucideReact.X, { size: 16 }) })] }), jsxRuntime.jsx("div", { className: padding ? styles$z.body : styles$z.bodyFlush, children: children })] }) })) }), document.body);
812
813
  };
813
814
 
814
- var styles$x = {"checkboxLabel":"Checkbox-module_checkboxLabel__4tBVg","checkbox":"Checkbox-module_checkbox__BbJul","checkboxText":"Checkbox-module_checkboxText__oJsc9"};
815
+ var styles$y = {"checkboxLabel":"Checkbox-module_checkboxLabel__4tBVg","checkbox":"Checkbox-module_checkbox__BbJul","checkboxText":"Checkbox-module_checkboxText__oJsc9"};
815
816
 
816
817
  /**
817
818
  * Checkbox component - Modern interactive checkbox with animations
@@ -856,13 +857,13 @@ const Checkbox = ({ checked, onChange, label, disabled = false, indeterminate =
856
857
  checkboxRef.current.indeterminate = indeterminate;
857
858
  }
858
859
  }, [indeterminate]);
859
- return (jsxRuntime.jsxs("label", { className: styles$x.checkboxLabel, children: [jsxRuntime.jsx("input", { ref: checkboxRef, type: "checkbox", checked: checked, onChange: (e) => {
860
+ return (jsxRuntime.jsxs("label", { className: styles$y.checkboxLabel, children: [jsxRuntime.jsx("input", { ref: checkboxRef, type: "checkbox", checked: checked, onChange: (e) => {
860
861
  const isChecked = e.target.checked;
861
862
  onChange(isChecked);
862
863
  if (soundConfig?.onClick !== false) {
863
864
  playSound('toggle');
864
865
  }
865
- }, className: styles$x.checkbox, disabled: disabled, id: id, name: name, value: value, "aria-checked": indeterminate ? 'mixed' : checked }), label && jsxRuntime.jsx("span", { className: styles$x.checkboxText, children: label })] }));
866
+ }, className: styles$y.checkbox, disabled: disabled, id: id, name: name, value: value, "aria-checked": indeterminate ? 'mixed' : checked }), label && jsxRuntime.jsx("span", { className: styles$y.checkboxText, children: label })] }));
866
867
  };
867
868
 
868
869
  const formatDateToEuropean = (date) => {
@@ -893,7 +894,7 @@ const parseEuropeanDate = (dateString) => {
893
894
  return '';
894
895
  };
895
896
 
896
- var styles$w = {"dateInput":"DateInput-module_dateInput__54VPD","label":"DateInput-module_label__yDdUw","inputWrapper":"DateInput-module_inputWrapper__x-r1d","textInput":"DateInput-module_textInput__ToOSX","calendarButton":"DateInput-module_calendarButton__JzDGD","nativeDateInput":"DateInput-module_nativeDateInput__tbi68","error":"DateInput-module_error__ieuPO","success":"DateInput-module_success__rPA93","loading":"DateInput-module_loading__1DAmD"};
897
+ var styles$x = {"dateInput":"DateInput-module_dateInput__54VPD","label":"DateInput-module_label__yDdUw","inputWrapper":"DateInput-module_inputWrapper__x-r1d","textInput":"DateInput-module_textInput__ToOSX","calendarButton":"DateInput-module_calendarButton__JzDGD","nativeDateInput":"DateInput-module_nativeDateInput__tbi68","error":"DateInput-module_error__ieuPO","success":"DateInput-module_success__rPA93","loading":"DateInput-module_loading__1DAmD"};
897
898
 
898
899
  /**
899
900
  * DateInput component - European format date picker with manual input support
@@ -953,21 +954,21 @@ function DateInput({ label, value, onChange, placeholder = "25/12/2024", onFocus
953
954
  }
954
955
  };
955
956
  const getClassName = () => {
956
- const classes = [styles$w.dateInput];
957
+ const classes = [styles$x.dateInput];
957
958
  if (error)
958
- classes.push(styles$w.error);
959
+ classes.push(styles$x.error);
959
960
  if (success)
960
- classes.push(styles$w.success);
961
+ classes.push(styles$x.success);
961
962
  if (loading)
962
- classes.push(styles$w.loading);
963
+ classes.push(styles$x.loading);
963
964
  return classes.join(' ');
964
965
  };
965
966
  // Current ISO value for the native date input (or '' if empty/unparseable)
966
967
  const isoValue = value.includes('-') ? value : (parseEuropeanDate(value) || '');
967
- return (jsxRuntime.jsxs("div", { className: getClassName(), children: [jsxRuntime.jsx("label", { className: styles$w.label, children: label }), jsxRuntime.jsxs("div", { className: styles$w.inputWrapper, children: [jsxRuntime.jsx("input", { type: "text", value: value.includes('-') ? formatDateToEuropean(value) : value, onChange: (e) => handleTextChange(e.target.value), onFocus: onFocus, onBlur: onBlur, placeholder: placeholder, className: styles$w.textInput, disabled: disabled || loading, ...handlers }), jsxRuntime.jsxs("span", { className: styles$w.calendarButton, "aria-hidden": "true", children: [jsxRuntime.jsx(lucideReact.Calendar, {}), jsxRuntime.jsx("input", { type: "date", value: isoValue, onChange: handleCalendarChange, className: styles$w.nativeDateInput, title: "Select date from calendar", "aria-label": label ? `${label} calendar picker` : 'Calendar picker', disabled: disabled || loading })] })] })] }));
968
+ return (jsxRuntime.jsxs("div", { className: getClassName(), children: [jsxRuntime.jsx("label", { className: styles$x.label, children: label }), jsxRuntime.jsxs("div", { className: styles$x.inputWrapper, children: [jsxRuntime.jsx("input", { type: "text", value: value.includes('-') ? formatDateToEuropean(value) : value, onChange: (e) => handleTextChange(e.target.value), onFocus: onFocus, onBlur: onBlur, placeholder: placeholder, className: styles$x.textInput, disabled: disabled || loading, ...handlers }), jsxRuntime.jsxs("span", { className: styles$x.calendarButton, "aria-hidden": "true", children: [jsxRuntime.jsx(lucideReact.Calendar, {}), jsxRuntime.jsx("input", { type: "date", value: isoValue, onChange: handleCalendarChange, className: styles$x.nativeDateInput, title: "Select date from calendar", "aria-label": label ? `${label} calendar picker` : 'Calendar picker', disabled: disabled || loading })] })] })] }));
968
969
  }
969
970
 
970
- var styles$v = {"searchableDropdown":"SearchableDropdown-module_searchableDropdown__S2Nh5","dropdownTrigger":"SearchableDropdown-module_dropdownTrigger__dihdr","open":"SearchableDropdown-module_open__P7mRt","dropdownValue":"SearchableDropdown-module_dropdownValue__ydrc2","placeholder":"SearchableDropdown-module_placeholder__BwM2W","dropdownArrow":"SearchableDropdown-module_dropdownArrow__yd5fp","dropdownMenu":"SearchableDropdown-module_dropdownMenu__2Z5cc","dropdownSearch":"SearchableDropdown-module_dropdownSearch__NRk7j","searchInput":"SearchableDropdown-module_searchInput__VS2Hw","searchIcon":"SearchableDropdown-module_searchIcon__2vKFF","dropdownOptions":"SearchableDropdown-module_dropdownOptions__6YXqF","dropdownOption":"SearchableDropdown-module_dropdownOption__YwDr-","selected":"SearchableDropdown-module_selected__31JeB","highlighted":"SearchableDropdown-module_highlighted__P0bBq","checkIcon":"SearchableDropdown-module_checkIcon__YxowK","dropdownNoResults":"SearchableDropdown-module_dropdownNoResults__WW-Da","loading":"SearchableDropdown-module_loading__xlYf0"};
971
+ var styles$w = {"searchableDropdown":"SearchableDropdown-module_searchableDropdown__S2Nh5","dropdownTrigger":"SearchableDropdown-module_dropdownTrigger__dihdr","open":"SearchableDropdown-module_open__P7mRt","dropdownValue":"SearchableDropdown-module_dropdownValue__ydrc2","placeholder":"SearchableDropdown-module_placeholder__BwM2W","dropdownArrow":"SearchableDropdown-module_dropdownArrow__yd5fp","dropdownMenu":"SearchableDropdown-module_dropdownMenu__2Z5cc","dropdownSearch":"SearchableDropdown-module_dropdownSearch__NRk7j","searchInput":"SearchableDropdown-module_searchInput__VS2Hw","searchIcon":"SearchableDropdown-module_searchIcon__2vKFF","dropdownOptions":"SearchableDropdown-module_dropdownOptions__6YXqF","dropdownOption":"SearchableDropdown-module_dropdownOption__YwDr-","selected":"SearchableDropdown-module_selected__31JeB","highlighted":"SearchableDropdown-module_highlighted__P0bBq","checkIcon":"SearchableDropdown-module_checkIcon__YxowK","dropdownNoResults":"SearchableDropdown-module_dropdownNoResults__WW-Da","loading":"SearchableDropdown-module_loading__xlYf0"};
971
972
 
972
973
  /**
973
974
  * SearchableDropdown component - Modern filterable dropdown with animations
@@ -1072,23 +1073,23 @@ function SearchableDropdown({ label, value, onChange, options, placeholder = "Se
1072
1073
  }
1073
1074
  };
1074
1075
  const getTriggerClassName = () => {
1075
- const classes = [styles$v.dropdownTrigger];
1076
+ const classes = [styles$w.dropdownTrigger];
1076
1077
  if (isOpen)
1077
- classes.push(styles$v.open);
1078
+ classes.push(styles$w.open);
1078
1079
  if (loading)
1079
- classes.push(styles$v.loading);
1080
+ classes.push(styles$w.loading);
1080
1081
  if (error)
1081
- classes.push(styles$v.error);
1082
+ classes.push(styles$w.error);
1082
1083
  return classes.join(' ');
1083
1084
  };
1084
- return (jsxRuntime.jsxs("div", { className: styles$v.searchableDropdown, ref: dropdownRef, onKeyDown: handleKeyDown, children: [jsxRuntime.jsx("label", { children: label }), jsxRuntime.jsxs(framerMotion.motion.button, { type: "button", className: getTriggerClassName(), onClick: () => !disabled && !loading && setIsOpen(!isOpen), whileTap: { scale: disabled ? 1 : 0.98 }, style: { willChange: 'transform' }, disabled: disabled, children: [jsxRuntime.jsx("span", { className: `${styles$v.dropdownValue} ${!displayValue ? styles$v.placeholder : ''}`, children: displayValue || placeholder }), jsxRuntime.jsx(lucideReact.ChevronDown, { className: styles$v.dropdownArrow })] }), jsxRuntime.jsx(framerMotion.AnimatePresence, { children: isOpen && (jsxRuntime.jsxs(framerMotion.motion.div, { className: styles$v.dropdownMenu, initial: { opacity: 0, y: -10, scale: 0.95 }, animate: { opacity: 1, y: 0, scale: 1 }, exit: { opacity: 0, y: -10, scale: 0.95 }, transition: { duration: 0.2, ease: "easeOut" }, children: [jsxRuntime.jsxs("div", { className: styles$v.dropdownSearch, children: [jsxRuntime.jsx(lucideReact.Search, { className: styles$v.searchIcon }), jsxRuntime.jsx("input", { ref: inputRef, type: "text", className: styles$v.searchInput, placeholder: "Cerca...", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), onClick: (e) => e.stopPropagation() })] }), jsxRuntime.jsxs("div", { className: styles$v.dropdownOptions, children: [allOptions.map((opt, index) => {
1085
+ return (jsxRuntime.jsxs("div", { className: styles$w.searchableDropdown, ref: dropdownRef, onKeyDown: handleKeyDown, children: [jsxRuntime.jsx("label", { children: label }), jsxRuntime.jsxs(framerMotion.motion.button, { type: "button", className: getTriggerClassName(), onClick: () => !disabled && !loading && setIsOpen(!isOpen), whileTap: { scale: disabled ? 1 : 0.98 }, style: { willChange: 'transform' }, disabled: disabled, children: [jsxRuntime.jsx("span", { className: `${styles$w.dropdownValue} ${!displayValue ? styles$w.placeholder : ''}`, children: displayValue || placeholder }), jsxRuntime.jsx(lucideReact.ChevronDown, { className: styles$w.dropdownArrow })] }), jsxRuntime.jsx(framerMotion.AnimatePresence, { children: isOpen && (jsxRuntime.jsxs(framerMotion.motion.div, { className: styles$w.dropdownMenu, initial: { opacity: 0, y: -10, scale: 0.95 }, animate: { opacity: 1, y: 0, scale: 1 }, exit: { opacity: 0, y: -10, scale: 0.95 }, transition: { duration: 0.2, ease: "easeOut" }, children: [jsxRuntime.jsxs("div", { className: styles$w.dropdownSearch, children: [jsxRuntime.jsx(lucideReact.Search, { className: styles$w.searchIcon }), jsxRuntime.jsx("input", { ref: inputRef, type: "text", className: styles$w.searchInput, placeholder: "Cerca...", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), onClick: (e) => e.stopPropagation() })] }), jsxRuntime.jsxs("div", { className: styles$w.dropdownOptions, children: [allOptions.map((opt, index) => {
1085
1086
  const isSelected = value === opt.value;
1086
1087
  const isHighlighted = highlightedIndex === index;
1087
- return (jsxRuntime.jsxs(framerMotion.motion.button, { type: "button", className: `${styles$v.dropdownOption} ${isSelected ? styles$v.selected : ''} ${isHighlighted ? styles$v.highlighted : ''}`, onClick: () => handleSelect(opt.value), onMouseEnter: () => setHighlightedIndex(index), initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { delay: index * 0.02 }, whileTap: { scale: 0.98 }, style: { willChange: 'transform' }, children: [jsxRuntime.jsx("span", { children: opt.label }), isSelected && jsxRuntime.jsx(lucideReact.Check, { className: styles$v.checkIcon })] }, `${opt.value}-${index}`));
1088
- }), allOptions.length === 0 && (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$v.dropdownNoResults, initial: { opacity: 0 }, animate: { opacity: 1 }, children: "No results found" }))] })] })) })] }));
1088
+ return (jsxRuntime.jsxs(framerMotion.motion.button, { type: "button", className: `${styles$w.dropdownOption} ${isSelected ? styles$w.selected : ''} ${isHighlighted ? styles$w.highlighted : ''}`, onClick: () => handleSelect(opt.value), onMouseEnter: () => setHighlightedIndex(index), initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { delay: index * 0.02 }, whileTap: { scale: 0.98 }, style: { willChange: 'transform' }, children: [jsxRuntime.jsx("span", { children: opt.label }), isSelected && jsxRuntime.jsx(lucideReact.Check, { className: styles$w.checkIcon })] }, `${opt.value}-${index}`));
1089
+ }), allOptions.length === 0 && (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$w.dropdownNoResults, initial: { opacity: 0 }, animate: { opacity: 1 }, children: "No results found" }))] })] })) })] }));
1089
1090
  }
1090
1091
 
1091
- var styles$u = {"selectInput":"SelectInput-module_selectInput__s6zEg","selectWrapper":"SelectInput-module_selectWrapper__Qr4pl","selectIcon":"SelectInput-module_selectIcon__9pjhf","error":"SelectInput-module_error__3WNJc","success":"SelectInput-module_success__WJ5ga","loading":"SelectInput-module_loading__n35N9"};
1092
+ var styles$v = {"selectInput":"SelectInput-module_selectInput__s6zEg","selectWrapper":"SelectInput-module_selectWrapper__Qr4pl","selectIcon":"SelectInput-module_selectIcon__9pjhf","error":"SelectInput-module_error__3WNJc","success":"SelectInput-module_success__WJ5ga","loading":"SelectInput-module_loading__n35N9"};
1092
1093
 
1093
1094
  /**
1094
1095
  * SelectInput component - Styled dropdown selector with flexible option format
@@ -1126,26 +1127,26 @@ var styles$u = {"selectInput":"SelectInput-module_selectInput__s6zEg","selectWra
1126
1127
  function SelectInput({ label, value, onChange, options, placeholder = "Select...", disabled = false, error = false, success = false, loading = false, required = false, soundConfig, className }) {
1127
1128
  const { handlers, playSound } = useComponentSound(soundConfig);
1128
1129
  const getClassName = () => {
1129
- const classes = [styles$u.selectInput];
1130
+ const classes = [styles$v.selectInput];
1130
1131
  if (error)
1131
- classes.push(styles$u.error);
1132
+ classes.push(styles$v.error);
1132
1133
  if (success)
1133
- classes.push(styles$u.success);
1134
+ classes.push(styles$v.success);
1134
1135
  if (loading)
1135
- classes.push(styles$u.loading);
1136
+ classes.push(styles$v.loading);
1136
1137
  return classes.join(' ');
1137
1138
  };
1138
- return (jsxRuntime.jsxs("div", { className: `${getClassName()}${className ? ` ${className}` : ''}`, children: [jsxRuntime.jsxs("label", { children: [label, required && jsxRuntime.jsx("span", { style: { color: 'var(--color-error)' }, children: " *" })] }), jsxRuntime.jsxs("div", { className: styles$u.selectWrapper, children: [jsxRuntime.jsxs("select", { value: value, onChange: e => {
1139
+ return (jsxRuntime.jsxs("div", { className: `${getClassName()}${className ? ` ${className}` : ''}`, children: [jsxRuntime.jsxs("label", { children: [label, required && jsxRuntime.jsx("span", { style: { color: 'var(--color-error)' }, children: " *" })] }), jsxRuntime.jsxs("div", { className: styles$v.selectWrapper, children: [jsxRuntime.jsxs("select", { value: value, onChange: e => {
1139
1140
  playSound('click');
1140
1141
  onChange(e.target.value);
1141
1142
  }, disabled: disabled || loading, required: required, ...handlers, children: [jsxRuntime.jsx("option", { value: "", children: placeholder }), options.map(opt => {
1142
1143
  const optionValue = typeof opt === 'string' ? opt : opt.value;
1143
1144
  const optionLabel = typeof opt === 'string' ? opt : opt.label;
1144
1145
  return (jsxRuntime.jsx("option", { value: optionValue, children: optionLabel }, optionValue));
1145
- })] }), jsxRuntime.jsx(lucideReact.ChevronDown, { className: styles$u.selectIcon })] })] }));
1146
+ })] }), jsxRuntime.jsx(lucideReact.ChevronDown, { className: styles$v.selectIcon })] })] }));
1146
1147
  }
1147
1148
 
1148
- var styles$t = {"textareaContainer":"TextArea-module_textareaContainer__AquFj","compact":"TextArea-module_compact__U5lPn","textareaLabel":"TextArea-module_textareaLabel__7Vmyx","requiredIndicator":"TextArea-module_requiredIndicator__3Fxyy","textareaInput":"TextArea-module_textareaInput__VCDZA","characterCount":"TextArea-module_characterCount__9FO5N","nearLimit":"TextArea-module_nearLimit__cUdnw","atLimit":"TextArea-module_atLimit__GoWCC","error":"TextArea-module_error__ciHgb","success":"TextArea-module_success__a0-xD","loading":"TextArea-module_loading__CSFBR","focusMode":"TextArea-module_focusMode__9A8U-"};
1149
+ var styles$u = {"textareaContainer":"TextArea-module_textareaContainer__AquFj","compact":"TextArea-module_compact__U5lPn","textareaLabel":"TextArea-module_textareaLabel__7Vmyx","requiredIndicator":"TextArea-module_requiredIndicator__3Fxyy","textareaInput":"TextArea-module_textareaInput__VCDZA","characterCount":"TextArea-module_characterCount__9FO5N","nearLimit":"TextArea-module_nearLimit__cUdnw","atLimit":"TextArea-module_atLimit__GoWCC","error":"TextArea-module_error__ciHgb","success":"TextArea-module_success__a0-xD","loading":"TextArea-module_loading__CSFBR","focusMode":"TextArea-module_focusMode__9A8U-"};
1149
1150
 
1150
1151
  /**
1151
1152
  * TextArea component - Multi-line text input with character counting
@@ -1180,38 +1181,38 @@ var styles$t = {"textareaContainer":"TextArea-module_textareaContainer__AquFj","
1180
1181
  function TextArea({ label, value, onChange, rows = 5, placeholder = "", required = false, maxLength, disabled = false, error = false, success = false, loading = false, focusMode = false, compact = false, className = "" }) {
1181
1182
  const textareaId = `textarea-${Math.random().toString(36).substr(2, 9)}`;
1182
1183
  const getContainerClassName = () => {
1183
- const classes = [styles$t.textareaContainer];
1184
+ const classes = [styles$u.textareaContainer];
1184
1185
  if (error)
1185
- classes.push(styles$t.error);
1186
+ classes.push(styles$u.error);
1186
1187
  if (success)
1187
- classes.push(styles$t.success);
1188
+ classes.push(styles$u.success);
1188
1189
  if (loading)
1189
- classes.push(styles$t.loading);
1190
+ classes.push(styles$u.loading);
1190
1191
  if (focusMode)
1191
- classes.push(styles$t.focusMode);
1192
+ classes.push(styles$u.focusMode);
1192
1193
  if (compact)
1193
- classes.push(styles$t.compact);
1194
+ classes.push(styles$u.compact);
1194
1195
  if (className)
1195
1196
  classes.push(className);
1196
1197
  return classes.join(' ');
1197
1198
  };
1198
1199
  const getCharCountClassName = () => {
1199
1200
  if (!maxLength)
1200
- return styles$t.characterCount;
1201
- const classes = [styles$t.characterCount];
1201
+ return styles$u.characterCount;
1202
+ const classes = [styles$u.characterCount];
1202
1203
  const percentage = (value.length / maxLength) * 100;
1203
1204
  if (percentage >= 100) {
1204
- classes.push(styles$t.atLimit);
1205
+ classes.push(styles$u.atLimit);
1205
1206
  }
1206
1207
  else if (percentage >= 80) {
1207
- classes.push(styles$t.nearLimit);
1208
+ classes.push(styles$u.nearLimit);
1208
1209
  }
1209
1210
  return classes.join(' ');
1210
1211
  };
1211
- return (jsxRuntime.jsxs("div", { className: getContainerClassName(), children: [label && (jsxRuntime.jsxs("label", { htmlFor: textareaId, className: styles$t.textareaLabel, children: [label, required && jsxRuntime.jsx("span", { className: styles$t.requiredIndicator, children: "*" })] })), jsxRuntime.jsx("textarea", { id: textareaId, value: value, onChange: (e) => onChange(e.target.value), rows: rows, placeholder: placeholder, maxLength: maxLength, className: styles$t.textareaInput, "aria-required": required, disabled: disabled || loading, "aria-invalid": error }), maxLength && (jsxRuntime.jsxs("div", { className: getCharCountClassName(), children: [jsxRuntime.jsx("span", { children: value.length }), jsxRuntime.jsx("span", { style: { opacity: 0.7 }, children: " / " }), jsxRuntime.jsx("span", { children: maxLength })] }))] }));
1212
+ return (jsxRuntime.jsxs("div", { className: getContainerClassName(), children: [label && (jsxRuntime.jsxs("label", { htmlFor: textareaId, className: styles$u.textareaLabel, children: [label, required && jsxRuntime.jsx("span", { className: styles$u.requiredIndicator, children: "*" })] })), jsxRuntime.jsx("textarea", { id: textareaId, value: value, onChange: (e) => onChange(e.target.value), rows: rows, placeholder: placeholder, maxLength: maxLength, className: styles$u.textareaInput, "aria-required": required, disabled: disabled || loading, "aria-invalid": error }), maxLength && (jsxRuntime.jsxs("div", { className: getCharCountClassName(), children: [jsxRuntime.jsx("span", { children: value.length }), jsxRuntime.jsx("span", { style: { opacity: 0.7 }, children: " / " }), jsxRuntime.jsx("span", { children: maxLength })] }))] }));
1212
1213
  }
1213
1214
 
1214
- var styles$s = {"textInput":"TextInput-module_textInput__b2LVM","required":"TextInput-module_required__7uLiM","inputError":"TextInput-module_inputError__QD0a-","errorMessage":"TextInput-module_errorMessage__nIDoQ","success":"TextInput-module_success__KbSS3","loading":"TextInput-module_loading__qXaca","withIcon":"TextInput-module_withIcon__-8swm","inputIcon":"TextInput-module_inputIcon__B4czN","withAction":"TextInput-module_withAction__JD3ku","actionButton":"TextInput-module_actionButton__zFJel"};
1215
+ var styles$t = {"textInput":"TextInput-module_textInput__b2LVM","required":"TextInput-module_required__7uLiM","inputError":"TextInput-module_inputError__QD0a-","errorMessage":"TextInput-module_errorMessage__nIDoQ","success":"TextInput-module_success__KbSS3","loading":"TextInput-module_loading__qXaca","withIcon":"TextInput-module_withIcon__-8swm","inputIcon":"TextInput-module_inputIcon__B4czN","withAction":"TextInput-module_withAction__JD3ku","actionButton":"TextInput-module_actionButton__zFJel"};
1215
1216
 
1216
1217
  /**
1217
1218
  * TextInput component - A versatile text input field with label and error handling
@@ -1248,21 +1249,21 @@ function TextInput({ label, value, onChange, type = "text", onBlur, placeholder,
1248
1249
  const { handlers, playSound } = useComponentSound(soundConfig);
1249
1250
  const prevValueRef = React.useRef(value);
1250
1251
  const getContainerClassName = () => {
1251
- const classes = [styles$s.textInput];
1252
+ const classes = [styles$t.textInput];
1252
1253
  if (success)
1253
- classes.push(styles$s.success);
1254
+ classes.push(styles$t.success);
1254
1255
  if (loading)
1255
- classes.push(styles$s.loading);
1256
+ classes.push(styles$t.loading);
1256
1257
  if (icon)
1257
- classes.push(styles$s.withIcon);
1258
+ classes.push(styles$t.withIcon);
1258
1259
  if (actionButton)
1259
- classes.push(styles$s.withAction);
1260
+ classes.push(styles$t.withAction);
1260
1261
  return classes.join(' ');
1261
1262
  };
1262
1263
  React.useEffect(() => {
1263
1264
  prevValueRef.current = value;
1264
1265
  }, [value]);
1265
- return (jsxRuntime.jsxs("div", { className: getContainerClassName(), children: [jsxRuntime.jsxs("label", { htmlFor: inputId, children: [label, required && jsxRuntime.jsx("span", { className: styles$s.required, children: "*" })] }), jsxRuntime.jsxs("div", { style: { position: 'relative' }, children: [icon && jsxRuntime.jsx("div", { className: styles$s.inputIcon, children: icon }), jsxRuntime.jsx("input", { id: inputId, type: type, value: value, onChange: (e) => {
1266
+ return (jsxRuntime.jsxs("div", { className: getContainerClassName(), children: [jsxRuntime.jsxs("label", { htmlFor: inputId, children: [label, required && jsxRuntime.jsx("span", { className: styles$t.required, children: "*" })] }), jsxRuntime.jsxs("div", { style: { position: 'relative' }, children: [icon && jsxRuntime.jsx("div", { className: styles$t.inputIcon, children: icon }), jsxRuntime.jsx("input", { id: inputId, type: type, value: value, onChange: (e) => {
1266
1267
  const newValue = e.target.value;
1267
1268
  const oldValue = prevValueRef.current;
1268
1269
  onChange(newValue);
@@ -1278,13 +1279,13 @@ function TextInput({ label, value, onChange, type = "text", onBlur, placeholder,
1278
1279
  if (error && soundConfig?.onError) {
1279
1280
  playSound(typeof soundConfig.onError === 'string' ? soundConfig.onError : 'error');
1280
1281
  }
1281
- }, onBlur: onBlur, placeholder: placeholder, className: error ? styles$s.inputError : '', "aria-invalid": !!error, "aria-describedby": error ? `${inputId}-error` : undefined, disabled: disabled || loading, maxLength: maxLength, autoComplete: autoComplete }), actionButton && (jsxRuntime.jsx("button", { type: "button", className: styles$s.actionButton, onClick: () => {
1282
+ }, onBlur: onBlur, placeholder: placeholder, className: error ? styles$t.inputError : '', "aria-invalid": !!error, "aria-describedby": error ? `${inputId}-error` : undefined, disabled: disabled || loading, maxLength: maxLength, autoComplete: autoComplete }), actionButton && (jsxRuntime.jsx("button", { type: "button", className: styles$t.actionButton, onClick: () => {
1282
1283
  handlers.onClick?.();
1283
1284
  actionButton.onClick();
1284
- }, disabled: disabled || loading, children: actionButton.label }))] }), error && (jsxRuntime.jsx("span", { id: `${inputId}-error`, className: styles$s.errorMessage, children: error }))] }));
1285
+ }, disabled: disabled || loading, children: actionButton.label }))] }), error && (jsxRuntime.jsx("span", { id: `${inputId}-error`, className: styles$t.errorMessage, children: error }))] }));
1285
1286
  }
1286
1287
 
1287
- var styles$r = {"toggleContainer":"Toggle-module_toggleContainer__QxqQb","toggleButton":"Toggle-module_toggleButton__WUUf-","active":"Toggle-module_active__fX6Io"};
1288
+ var styles$s = {"toggleContainer":"Toggle-module_toggleContainer__QxqQb","toggleButton":"Toggle-module_toggleButton__WUUf-","active":"Toggle-module_active__fX6Io"};
1288
1289
 
1289
1290
  /**
1290
1291
  * Toggle Component
@@ -1345,7 +1346,7 @@ function Toggle(props) {
1345
1346
  justifyContent: 'center',
1346
1347
  ...style
1347
1348
  };
1348
- return (jsxRuntime.jsxs("div", { className: `${styles$r.toggleContainer} ${className || ''}`, children: [jsxRuntime.jsxs(framerMotion.motion.button, { ref: leftButtonRef, className: `${styles$r.toggleButton} ${!isOn ? styles$r.active : ''}`, whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: () => {
1349
+ return (jsxRuntime.jsxs("div", { className: `${styles$s.toggleContainer} ${className || ''}`, children: [jsxRuntime.jsxs(framerMotion.motion.button, { ref: leftButtonRef, className: `${styles$s.toggleButton} ${!isOn ? styles$s.active : ''}`, whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: () => {
1349
1350
  if (!isOn) {
1350
1351
  // Already on left
1351
1352
  if (enableCelebration) {
@@ -1360,7 +1361,7 @@ function Toggle(props) {
1360
1361
  playSound('toggle');
1361
1362
  }
1362
1363
  onToggle(false);
1363
- }, onMouseEnter: () => handlers.onMouseEnter?.(), style: buttonStyle, children: [jsxRuntime.jsx(framerMotion.motion.div, { animate: { scale: !isOn ? 1.1 : 1, rotate: !isOn ? [0, -5, 5, 0] : 0 }, transition: { duration: 0.3 }, children: leftIcon }), leftLabel] }), jsxRuntime.jsxs(framerMotion.motion.button, { ref: rightButtonRef, className: `${styles$r.toggleButton} ${isOn ? styles$r.active : ''}`, whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: () => {
1364
+ }, onMouseEnter: () => handlers.onMouseEnter?.(), style: buttonStyle, children: [jsxRuntime.jsx(framerMotion.motion.div, { animate: { scale: !isOn ? 1.1 : 1, rotate: !isOn ? [0, -5, 5, 0] : 0 }, transition: { duration: 0.3 }, children: leftIcon }), leftLabel] }), jsxRuntime.jsxs(framerMotion.motion.button, { ref: rightButtonRef, className: `${styles$s.toggleButton} ${isOn ? styles$s.active : ''}`, whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: () => {
1364
1365
  if (isOn) {
1365
1366
  // Already on right
1366
1367
  if (enableCelebration) {
@@ -1378,7 +1379,7 @@ function Toggle(props) {
1378
1379
  }, onMouseEnter: () => handlers.onMouseEnter?.(), style: buttonStyle, children: [jsxRuntime.jsx(framerMotion.motion.div, { animate: { scale: isOn ? 1.1 : 1, rotate: isOn ? [0, 5, -5, 0] : 0 }, transition: { duration: 0.3 }, children: rightIcon }), rightLabel] })] }));
1379
1380
  }
1380
1381
 
1381
- var styles$q = {"container":"NumberStepper-module_container__WSGlU","header":"NumberStepper-module_header__qXI1Y","icon":"NumberStepper-module_icon__vHgsw","label":"NumberStepper-module_label__AYr3g","stepper":"NumberStepper-module_stepper__oQhTp","disabled":"NumberStepper-module_disabled__kGB-g","button":"NumberStepper-module_button__YcjRt","buttonIcon":"NumberStepper-module_buttonIcon__odXec","valueContainer":"NumberStepper-module_valueContainer__87w2D","valueWrapper":"NumberStepper-module_valueWrapper__TH65N","value":"NumberStepper-module_value__BxJeD","limits":"NumberStepper-module_limits__-UrRE","limit":"NumberStepper-module_limit__7nbIP","small":"NumberStepper-module_small__P-k96","large":"NumberStepper-module_large__Lz6lk","outlined":"NumberStepper-module_outlined__CIXv7","filled":"NumberStepper-module_filled__IxOg-","minimal":"NumberStepper-module_minimal__y47-W","custom":"NumberStepper-module_custom__XGSVg","vertical":"NumberStepper-module_vertical__nBcL7","tally":"NumberStepper-module_tally__aO2zq","tallyRow":"NumberStepper-module_tallyRow__wcrtj","tallyButton":"NumberStepper-module_tallyButton__EUTXY","tallyButtonIcon":"NumberStepper-module_tallyButtonIcon__A3fDQ","tallyIcon":"NumberStepper-module_tallyIcon__ynB4C","tallyLabel":"NumberStepper-module_tallyLabel__kjXos","tallyBody":"NumberStepper-module_tallyBody__wDBsU","tallyMarks":"NumberStepper-module_tallyMarks__RU5qJ","tallyGroup":"NumberStepper-module_tallyGroup__0qUNo","tallyHint":"NumberStepper-module_tallyHint__zi-GM","tallyValue":"NumberStepper-module_tallyValue__CFJDk","pulse":"NumberStepper-module_pulse__51oUo"};
1382
+ var styles$r = {"container":"NumberStepper-module_container__WSGlU","header":"NumberStepper-module_header__qXI1Y","icon":"NumberStepper-module_icon__vHgsw","label":"NumberStepper-module_label__AYr3g","stepper":"NumberStepper-module_stepper__oQhTp","disabled":"NumberStepper-module_disabled__kGB-g","button":"NumberStepper-module_button__YcjRt","buttonIcon":"NumberStepper-module_buttonIcon__odXec","valueContainer":"NumberStepper-module_valueContainer__87w2D","valueWrapper":"NumberStepper-module_valueWrapper__TH65N","value":"NumberStepper-module_value__BxJeD","limits":"NumberStepper-module_limits__-UrRE","limit":"NumberStepper-module_limit__7nbIP","small":"NumberStepper-module_small__P-k96","large":"NumberStepper-module_large__Lz6lk","outlined":"NumberStepper-module_outlined__CIXv7","filled":"NumberStepper-module_filled__IxOg-","minimal":"NumberStepper-module_minimal__y47-W","custom":"NumberStepper-module_custom__XGSVg","vertical":"NumberStepper-module_vertical__nBcL7","tally":"NumberStepper-module_tally__aO2zq","tallyRow":"NumberStepper-module_tallyRow__wcrtj","tallyButton":"NumberStepper-module_tallyButton__EUTXY","tallyButtonIcon":"NumberStepper-module_tallyButtonIcon__A3fDQ","tallyIcon":"NumberStepper-module_tallyIcon__ynB4C","tallyLabel":"NumberStepper-module_tallyLabel__kjXos","tallyBody":"NumberStepper-module_tallyBody__wDBsU","tallyMarks":"NumberStepper-module_tallyMarks__RU5qJ","tallyGroup":"NumberStepper-module_tallyGroup__0qUNo","tallyHint":"NumberStepper-module_tallyHint__zi-GM","tallyValue":"NumberStepper-module_tallyValue__CFJDk","pulse":"NumberStepper-module_pulse__51oUo"};
1382
1383
 
1383
1384
  /**
1384
1385
  * NumberStepper Component
@@ -1565,33 +1566,33 @@ const NumberStepper = ({ value, onChange, min = -Infinity, max = Infinity, step
1565
1566
  setDisplayValue(finalValue);
1566
1567
  }, [displayValue, min, max, step, onChange]);
1567
1568
  const containerClasses = [
1568
- styles$q.container,
1569
- styles$q[size],
1570
- styles$q[variant],
1571
- layout === 'vertical' && styles$q.vertical,
1572
- disabled && styles$q.disabled,
1569
+ styles$r.container,
1570
+ styles$r[size],
1571
+ styles$r[variant],
1572
+ layout === 'vertical' && styles$r.vertical,
1573
+ disabled && styles$r.disabled,
1573
1574
  className
1574
1575
  ].filter(Boolean).join(' ');
1575
1576
  // Merge custom styles with hover states
1576
1577
  const [isButtonHovered, setIsButtonHovered] = React.useState(null);
1577
1578
  const isDecrementDisabled = disabled || value <= min;
1578
1579
  const isIncrementDisabled = disabled || value >= max;
1579
- const stepperContent = (jsxRuntime.jsxs("div", { className: styles$q.stepper, style: customStyles.stepper, onKeyDown: handleKeyDown, tabIndex: disabled ? -1 : 0, ...handlers, children: [jsxRuntime.jsx(framerMotion.motion.button, { className: styles$q.button, style: {
1580
+ const stepperContent = (jsxRuntime.jsxs("div", { className: styles$r.stepper, style: customStyles.stepper, onKeyDown: handleKeyDown, tabIndex: disabled ? -1 : 0, ...handlers, children: [jsxRuntime.jsx(framerMotion.motion.button, { className: styles$r.button, style: {
1580
1581
  ...customStyles.button,
1581
1582
  ...(isButtonHovered === 'decrement' && customStyles.buttonHover)
1582
- }, onMouseEnter: () => setIsButtonHovered('decrement'), onMouseLeave: () => setIsButtonHovered(null), onClick: handleDecrement, disabled: isDecrementDisabled, whileTap: !isDecrementDisabled ? { scale: 0.9 } : undefined, animate: isDecrementing ? { scale: [1, 1.2, 1] } : undefined, transition: { duration: 0.2 }, "aria-label": "Decrease value", children: customButtons.decrement || (showPlusMinus ? (jsxRuntime.jsx("span", { className: styles$q.buttonIcon, style: customStyles.buttonIcon, children: "\u2212" })) : (jsxRuntime.jsx("svg", { className: styles$q.buttonIcon, style: customStyles.buttonIcon, viewBox: "0 0 24 24", fill: "none", children: jsxRuntime.jsx("path", { d: "M15 18L9 12L15 6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }))) }), jsxRuntime.jsx("div", { className: styles$q.valueContainer, style: customStyles.valueContainer, children: jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: jsxRuntime.jsx(framerMotion.motion.div, { initial: { y: isIncrementing ? 10 : isDecrementing ? -10 : 0, opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: isIncrementing ? -10 : isDecrementing ? 10 : 0, opacity: 0 }, transition: { duration: 0.15 }, className: styles$q.valueWrapper, children: jsxRuntime.jsx("input", { type: "text", className: styles$q.value, style: customStyles.value, value: displayValue, onChange: handleInputChange, onBlur: handleInputBlur, disabled: disabled, "aria-label": label || "Number input", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value }) }, value) }) }), jsxRuntime.jsx(framerMotion.motion.button, { className: styles$q.button, style: {
1583
+ }, onMouseEnter: () => setIsButtonHovered('decrement'), onMouseLeave: () => setIsButtonHovered(null), onClick: handleDecrement, disabled: isDecrementDisabled, whileTap: !isDecrementDisabled ? { scale: 0.9 } : undefined, animate: isDecrementing ? { scale: [1, 1.2, 1] } : undefined, transition: { duration: 0.2 }, "aria-label": "Decrease value", children: customButtons.decrement || (showPlusMinus ? (jsxRuntime.jsx("span", { className: styles$r.buttonIcon, style: customStyles.buttonIcon, children: "\u2212" })) : (jsxRuntime.jsx("svg", { className: styles$r.buttonIcon, style: customStyles.buttonIcon, viewBox: "0 0 24 24", fill: "none", children: jsxRuntime.jsx("path", { d: "M15 18L9 12L15 6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }))) }), jsxRuntime.jsx("div", { className: styles$r.valueContainer, style: customStyles.valueContainer, children: jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: jsxRuntime.jsx(framerMotion.motion.div, { initial: { y: isIncrementing ? 10 : isDecrementing ? -10 : 0, opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: isIncrementing ? -10 : isDecrementing ? 10 : 0, opacity: 0 }, transition: { duration: 0.15 }, className: styles$r.valueWrapper, children: jsxRuntime.jsx("input", { type: "text", className: styles$r.value, style: customStyles.value, value: displayValue, onChange: handleInputChange, onBlur: handleInputBlur, disabled: disabled, "aria-label": label || "Number input", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value }) }, value) }) }), jsxRuntime.jsx(framerMotion.motion.button, { className: styles$r.button, style: {
1583
1584
  ...customStyles.button,
1584
1585
  ...(isButtonHovered === 'increment' && customStyles.buttonHover)
1585
- }, onMouseEnter: () => setIsButtonHovered('increment'), onMouseLeave: () => setIsButtonHovered(null), onClick: handleIncrement, disabled: isIncrementDisabled, whileTap: !isIncrementDisabled ? { scale: 0.9 } : undefined, animate: isIncrementing ? { scale: [1, 1.2, 1] } : undefined, transition: { duration: 0.2 }, "aria-label": "Increase value", children: customButtons.increment || (showPlusMinus ? (jsxRuntime.jsx("span", { className: styles$q.buttonIcon, style: customStyles.buttonIcon, children: "+" })) : (jsxRuntime.jsx("svg", { className: styles$q.buttonIcon, style: customStyles.buttonIcon, viewBox: "0 0 24 24", fill: "none", children: jsxRuntime.jsx("path", { d: "M9 18L15 12L9 6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }))) })] }));
1586
+ }, onMouseEnter: () => setIsButtonHovered('increment'), onMouseLeave: () => setIsButtonHovered(null), onClick: handleIncrement, disabled: isIncrementDisabled, whileTap: !isIncrementDisabled ? { scale: 0.9 } : undefined, animate: isIncrementing ? { scale: [1, 1.2, 1] } : undefined, transition: { duration: 0.2 }, "aria-label": "Increase value", children: customButtons.increment || (showPlusMinus ? (jsxRuntime.jsx("span", { className: styles$r.buttonIcon, style: customStyles.buttonIcon, children: "+" })) : (jsxRuntime.jsx("svg", { className: styles$r.buttonIcon, style: customStyles.buttonIcon, viewBox: "0 0 24 24", fill: "none", children: jsxRuntime.jsx("path", { d: "M9 18L15 12L9 6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }))) })] }));
1586
1587
  // ── Tally variant: pen-stroke counter with explicit +/- buttons.
1587
1588
  if (variant === 'tally') {
1588
1589
  return (jsxRuntime.jsx(TallyRow, { value: value, label: label, icon: icon, color: color, disabled: disabled, emptyHint: tallyEmptyHint, className: containerClasses, customStyles: customStyles, onIncrement: handleIncrement, onDecrement: handleDecrement, ariaLabel: label || 'Tally counter', isDecrementDisabled: isDecrementDisabled, isIncrementDisabled: isIncrementDisabled }));
1589
1590
  }
1590
1591
  // For custom variant with horizontal layout, render differently
1591
1592
  if (variant === 'custom' && (label || icon)) {
1592
- return (jsxRuntime.jsxs("div", { className: containerClasses, style: { ...customStyles.container, display: 'flex', alignItems: 'center' }, children: [jsxRuntime.jsxs("div", { className: styles$q.header, style: { ...customStyles.header, flex: 1, marginBottom: 0 }, children: [icon && jsxRuntime.jsx("span", { className: styles$q.icon, style: customStyles.icon, children: icon }), label && jsxRuntime.jsx("label", { className: styles$q.label, style: customStyles.label, children: label })] }), stepperContent, !hideLimits && (min !== -Infinity || max !== Infinity) && (jsxRuntime.jsxs("div", { className: styles$q.limits, style: customStyles.limits, children: [jsxRuntime.jsx("span", { className: styles$q.limit, children: min !== -Infinity && `Min: ${min}` }), jsxRuntime.jsx("span", { className: styles$q.limit, children: max !== Infinity && `Max: ${max}` })] }))] }));
1593
+ return (jsxRuntime.jsxs("div", { className: containerClasses, style: { ...customStyles.container, display: 'flex', alignItems: 'center' }, children: [jsxRuntime.jsxs("div", { className: styles$r.header, style: { ...customStyles.header, flex: 1, marginBottom: 0 }, children: [icon && jsxRuntime.jsx("span", { className: styles$r.icon, style: customStyles.icon, children: icon }), label && jsxRuntime.jsx("label", { className: styles$r.label, style: customStyles.label, children: label })] }), stepperContent, !hideLimits && (min !== -Infinity || max !== Infinity) && (jsxRuntime.jsxs("div", { className: styles$r.limits, style: customStyles.limits, children: [jsxRuntime.jsx("span", { className: styles$r.limit, children: min !== -Infinity && `Min: ${min}` }), jsxRuntime.jsx("span", { className: styles$r.limit, children: max !== Infinity && `Max: ${max}` })] }))] }));
1593
1594
  }
1594
- return (jsxRuntime.jsxs("div", { className: containerClasses, style: customStyles.container, children: [(label || icon) && (jsxRuntime.jsxs("div", { className: styles$q.header, style: customStyles.header, children: [icon && jsxRuntime.jsx("span", { className: styles$q.icon, style: customStyles.icon, children: icon }), label && jsxRuntime.jsx("label", { className: styles$q.label, style: customStyles.label, children: label })] })), stepperContent, !hideLimits && (min !== -Infinity || max !== Infinity) && (jsxRuntime.jsxs("div", { className: styles$q.limits, style: customStyles.limits, children: [jsxRuntime.jsx("span", { className: styles$q.limit, children: min !== -Infinity && `Min: ${min}` }), jsxRuntime.jsx("span", { className: styles$q.limit, children: max !== Infinity && `Max: ${max}` })] }))] }));
1595
+ return (jsxRuntime.jsxs("div", { className: containerClasses, style: customStyles.container, children: [(label || icon) && (jsxRuntime.jsxs("div", { className: styles$r.header, style: customStyles.header, children: [icon && jsxRuntime.jsx("span", { className: styles$r.icon, style: customStyles.icon, children: icon }), label && jsxRuntime.jsx("label", { className: styles$r.label, style: customStyles.label, children: label })] })), stepperContent, !hideLimits && (min !== -Infinity || max !== Infinity) && (jsxRuntime.jsxs("div", { className: styles$r.limits, style: customStyles.limits, children: [jsxRuntime.jsx("span", { className: styles$r.limit, children: min !== -Infinity && `Min: ${min}` }), jsxRuntime.jsx("span", { className: styles$r.limit, children: max !== Infinity && `Max: ${max}` })] }))] }));
1595
1596
  };
1596
1597
  const TallyMarks = ({ count, color }) => {
1597
1598
  const groups = [];
@@ -1601,14 +1602,14 @@ const TallyMarks = ({ count, color }) => {
1601
1602
  groups.push(n);
1602
1603
  left -= n;
1603
1604
  }
1604
- return (jsxRuntime.jsx("div", { className: styles$q.tallyMarks, "aria-hidden": "true", children: groups.map((n, i) => (jsxRuntime.jsxs("svg", { className: styles$q.tallyGroup, width: "38", height: "22", viewBox: "0 0 38 22", children: [[0, 1, 2, 3].slice(0, Math.min(4, n)).map((j) => (jsxRuntime.jsx("line", { x1: 4 + j * 6, y1: "2", x2: 4 + j * 6, y2: "20", stroke: color, strokeWidth: "2", strokeLinecap: "round" }, j))), n === 5 && (jsxRuntime.jsx("line", { x1: "1", y1: "18", x2: "27", y2: "4", stroke: color, strokeWidth: "2", strokeLinecap: "round" }))] }, i))) }));
1605
+ return (jsxRuntime.jsx("div", { className: styles$r.tallyMarks, "aria-hidden": "true", children: groups.map((n, i) => (jsxRuntime.jsxs("svg", { className: styles$r.tallyGroup, width: "38", height: "22", viewBox: "0 0 38 22", children: [[0, 1, 2, 3].slice(0, Math.min(4, n)).map((j) => (jsxRuntime.jsx("line", { x1: 4 + j * 6, y1: "2", x2: 4 + j * 6, y2: "20", stroke: color, strokeWidth: "2", strokeLinecap: "round" }, j))), n === 5 && (jsxRuntime.jsx("line", { x1: "1", y1: "18", x2: "27", y2: "4", stroke: color, strokeWidth: "2", strokeLinecap: "round" }))] }, i))) }));
1605
1606
  };
1606
1607
  const TallyRow = ({ value, label, icon, color, disabled, emptyHint, className, customStyles, onIncrement, onDecrement, ariaLabel, isDecrementDisabled, isIncrementDisabled }) => {
1607
1608
  const resolvedColor = color || 'currentColor';
1608
- return (jsxRuntime.jsxs("div", { "aria-label": ariaLabel, "aria-disabled": disabled || undefined, className: `${className} ${styles$q.tallyRow}`, style: customStyles.container, children: [icon && (jsxRuntime.jsx("span", { className: styles$q.tallyIcon, style: { color: resolvedColor, ...customStyles.icon }, children: icon })), label && (jsxRuntime.jsx("span", { className: styles$q.tallyLabel, style: customStyles.label, children: label })), jsxRuntime.jsx("div", { className: styles$q.tallyBody, children: value <= 0 ? (jsxRuntime.jsx("span", { className: styles$q.tallyHint, children: emptyHint })) : (jsxRuntime.jsx(TallyMarks, { count: value, color: resolvedColor })) }), jsxRuntime.jsx("button", { type: "button", className: styles$q.tallyButton, onClick: onDecrement, disabled: isDecrementDisabled, "aria-label": `Decrease ${label || 'value'}`, children: jsxRuntime.jsx("span", { className: styles$q.tallyButtonIcon, children: "\u2212" }) }), jsxRuntime.jsx("span", { className: styles$q.tallyValue, style: { color: resolvedColor, ...customStyles.value }, "aria-hidden": "true", children: value }), jsxRuntime.jsx("button", { type: "button", className: styles$q.tallyButton, onClick: onIncrement, disabled: isIncrementDisabled, "aria-label": `Increase ${label || 'value'}`, children: jsxRuntime.jsx("span", { className: styles$q.tallyButtonIcon, children: "+" }) })] }));
1609
+ return (jsxRuntime.jsxs("div", { "aria-label": ariaLabel, "aria-disabled": disabled || undefined, className: `${className} ${styles$r.tallyRow}`, style: customStyles.container, children: [icon && (jsxRuntime.jsx("span", { className: styles$r.tallyIcon, style: { color: resolvedColor, ...customStyles.icon }, children: icon })), label && (jsxRuntime.jsx("span", { className: styles$r.tallyLabel, style: customStyles.label, children: label })), jsxRuntime.jsx("div", { className: styles$r.tallyBody, children: value <= 0 ? (jsxRuntime.jsx("span", { className: styles$r.tallyHint, children: emptyHint })) : (jsxRuntime.jsx(TallyMarks, { count: value, color: resolvedColor })) }), jsxRuntime.jsx("button", { type: "button", className: styles$r.tallyButton, onClick: onDecrement, disabled: isDecrementDisabled, "aria-label": `Decrease ${label || 'value'}`, children: jsxRuntime.jsx("span", { className: styles$r.tallyButtonIcon, children: "\u2212" }) }), jsxRuntime.jsx("span", { className: styles$r.tallyValue, style: { color: resolvedColor, ...customStyles.value }, "aria-hidden": "true", children: value }), jsxRuntime.jsx("button", { type: "button", className: styles$r.tallyButton, onClick: onIncrement, disabled: isIncrementDisabled, "aria-label": `Increase ${label || 'value'}`, children: jsxRuntime.jsx("span", { className: styles$r.tallyButtonIcon, children: "+" }) })] }));
1609
1610
  };
1610
1611
 
1611
- 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"};
1612
+ var styles$q = {"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"};
1612
1613
 
1613
1614
  /**
1614
1615
  * ToggleButton Component
@@ -1647,18 +1648,18 @@ var styles$p = {"button":"ToggleButton-module_button__DTuyY","background":"Toggl
1647
1648
  const ToggleButton = ({ active, onClick, icon, label, disabled = false, size = 'medium', variant = 'default', activeColor = 'primary', showCheckmark = false, animation = 'scale', className = '', style = {}, color, tooltip, hideLabelOnMobile = false, soundConfig }) => {
1648
1649
  const { handlers, playSound } = useComponentSound(soundConfig);
1649
1650
  const buttonClasses = [
1650
- styles$p.button,
1651
- styles$p[size],
1652
- styles$p[variant],
1653
- active && styles$p.active,
1654
- active && styles$p[`active-${activeColor}`],
1655
- disabled && styles$p.disabled,
1656
- animation !== 'none' && styles$p[`animation-${animation}`],
1651
+ styles$q.button,
1652
+ styles$q[size],
1653
+ styles$q[variant],
1654
+ active && styles$q.active,
1655
+ active && styles$q[`active-${activeColor}`],
1656
+ disabled && styles$q.disabled,
1657
+ animation !== 'none' && styles$q[`animation-${animation}`],
1657
1658
  className
1658
1659
  ].filter(Boolean).join(' ');
1659
1660
  const labelClasses = [
1660
- styles$p.label,
1661
- hideLabelOnMobile && styles$p.hideMobile
1661
+ styles$q.label,
1662
+ hideLabelOnMobile && styles$q.hideMobile
1662
1663
  ].filter(Boolean).join(' ');
1663
1664
  const iconVariants = {
1664
1665
  scale: {
@@ -1722,10 +1723,10 @@ const ToggleButton = ({ active, onClick, icon, label, disabled = false, size = '
1722
1723
  return (jsxRuntime.jsxs(framerMotion.motion.button, { className: buttonClasses, style: dynamicStyle, onClick: () => {
1723
1724
  playSound('toggle');
1724
1725
  onClick();
1725
- }, disabled: disabled, whileHover: !disabled ? { scale: 1.05 } : undefined, whileTap: !disabled ? { scale: 0.95 } : undefined, title: tooltip, "aria-pressed": active, "aria-label": label, ...handlers, children: [jsxRuntime.jsx(framerMotion.motion.div, { className: styles$p.background, variants: backgroundVariants, initial: "inactive", animate: active ? "active" : "inactive" }), jsxRuntime.jsxs("div", { className: styles$p.content, children: [icon && (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$p.iconWrapper, variants: iconVariants[animation], initial: "inactive", animate: active ? "active" : "inactive", transition: { duration: 0.3 }, children: typeof icon === 'string' ? (jsxRuntime.jsx("span", { className: styles$p.icon, children: icon })) : (jsxRuntime.jsx("div", { className: styles$p.icon, children: icon })) })), label && jsxRuntime.jsx("span", { className: labelClasses, children: label }), jsxRuntime.jsx(framerMotion.AnimatePresence, { children: showCheckmark && active && (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$p.checkmark, variants: checkmarkVariants, initial: "hidden", animate: "visible", exit: "hidden", children: jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", children: jsxRuntime.jsx("path", { d: "M20 6L9 17L4 12", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round" }) }) })) })] }), jsxRuntime.jsx(framerMotion.AnimatePresence, { children: active && (jsxRuntime.jsx(framerMotion.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 } })) })] }));
1726
+ }, disabled: disabled, whileHover: !disabled ? { scale: 1.05 } : undefined, whileTap: !disabled ? { scale: 0.95 } : undefined, title: tooltip, "aria-pressed": active, "aria-label": label, ...handlers, children: [jsxRuntime.jsx(framerMotion.motion.div, { className: styles$q.background, variants: backgroundVariants, initial: "inactive", animate: active ? "active" : "inactive" }), jsxRuntime.jsxs("div", { className: styles$q.content, children: [icon && (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$q.iconWrapper, variants: iconVariants[animation], initial: "inactive", animate: active ? "active" : "inactive", transition: { duration: 0.3 }, children: typeof icon === 'string' ? (jsxRuntime.jsx("span", { className: styles$q.icon, children: icon })) : (jsxRuntime.jsx("div", { className: styles$q.icon, children: icon })) })), label && jsxRuntime.jsx("span", { className: labelClasses, children: label }), jsxRuntime.jsx(framerMotion.AnimatePresence, { children: showCheckmark && active && (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$q.checkmark, variants: checkmarkVariants, initial: "hidden", animate: "visible", exit: "hidden", children: jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", children: jsxRuntime.jsx("path", { d: "M20 6L9 17L4 12", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round" }) }) })) })] }), jsxRuntime.jsx(framerMotion.AnimatePresence, { children: active && (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$q.ripple, initial: { scale: 0, opacity: 0.5 }, animate: { scale: 2, opacity: 0 }, exit: { scale: 0, opacity: 0 }, transition: { duration: 0.6 } })) })] }));
1726
1727
  };
1727
1728
 
1728
- 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"};
1729
+ var styles$p = {"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"};
1729
1730
 
1730
1731
  /**
1731
1732
  * Slider component — responsive, accessible range input with a styled track, fill, and thumb.
@@ -1764,11 +1765,11 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
1764
1765
  };
1765
1766
  const endDrag = () => setIsDragging(false);
1766
1767
  const dynamicColor = getDynamicColor();
1767
- const sizeClass = styles$o[`size-${size}`];
1768
- const stateClass = disabled ? styles$o.disabled : '';
1769
- const dragClass = isDragging ? styles$o.dragging : '';
1768
+ const sizeClass = styles$p[`size-${size}`];
1769
+ const stateClass = disabled ? styles$p.disabled : '';
1770
+ const dragClass = isDragging ? styles$p.dragging : '';
1770
1771
  if (loading) {
1771
- return (jsxRuntime.jsxs("div", { className: `${styles$o.slider} ${sizeClass} ${styles$o.loading} ${className}`, style: style, children: [label && jsxRuntime.jsx("label", { className: styles$o.label, children: label }), jsxRuntime.jsx("div", { className: styles$o.loadingTrack, children: jsxRuntime.jsx(framerMotion.motion.div, { className: styles$o.loadingIndicator, animate: { x: ['-100%', '200%'] }, transition: { repeat: Infinity, duration: 1.5, ease: 'easeInOut' } }) })] }));
1772
+ return (jsxRuntime.jsxs("div", { className: `${styles$p.slider} ${sizeClass} ${styles$p.loading} ${className}`, style: style, children: [label && jsxRuntime.jsx("label", { className: styles$p.label, children: label }), jsxRuntime.jsx("div", { className: styles$p.loadingTrack, children: jsxRuntime.jsx(framerMotion.motion.div, { className: styles$p.loadingIndicator, animate: { x: ['-100%', '200%'] }, transition: { repeat: Infinity, duration: 1.5, ease: 'easeInOut' } }) })] }));
1772
1773
  }
1773
1774
  if (variant === 'dots') {
1774
1775
  const dotCount = Math.max(0, Math.floor((max - min) / step));
@@ -1780,9 +1781,9 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
1780
1781
  const next = value === dotValue ? dotValue - step : dotValue;
1781
1782
  onChange(Math.max(min, next));
1782
1783
  };
1783
- return (jsxRuntime.jsxs("div", { className: `${styles$o.slider} ${sizeClass} ${stateClass} ${className}`, style: style, ...handlers, children: [label && jsxRuntime.jsx("label", { className: styles$o.label, children: label }), jsxRuntime.jsx("div", { className: styles$o.dotsContainer, role: "slider", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value, "aria-label": label, children: dotValues.map((dotValue) => {
1784
+ return (jsxRuntime.jsxs("div", { className: `${styles$p.slider} ${sizeClass} ${stateClass} ${className}`, style: style, ...handlers, children: [label && jsxRuntime.jsx("label", { className: styles$p.label, children: label }), jsxRuntime.jsx("div", { className: styles$p.dotsContainer, role: "slider", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value, "aria-label": label, children: dotValues.map((dotValue) => {
1784
1785
  const filled = dotValue <= value;
1785
- return (jsxRuntime.jsx("button", { type: "button", className: `${styles$o.dot} ${filled ? styles$o.dotFilled : ''}`, style: filled
1786
+ return (jsxRuntime.jsx("button", { type: "button", className: `${styles$p.dot} ${filled ? styles$p.dotFilled : ''}`, style: filled
1786
1787
  ? {
1787
1788
  backgroundColor: dynamicColor,
1788
1789
  borderColor: dynamicColor,
@@ -1790,7 +1791,7 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
1790
1791
  : undefined, onClick: () => handleDotClick(dotValue), disabled: disabled, "aria-label": valueFormatter
1791
1792
  ? valueFormatter(dotValue)
1792
1793
  : `Set to ${dotValue}` }, dotValue));
1793
- }) }), showValue && (jsxRuntime.jsx("div", { className: styles$o.valueDisplay, style: { color: dynamicColor }, children: formatValue(value) }))] }));
1794
+ }) }), showValue && (jsxRuntime.jsx("div", { className: styles$p.valueDisplay, style: { color: dynamicColor }, children: formatValue(value) }))] }));
1794
1795
  }
1795
1796
  // Inset the thumb so its bounding box stays inside the track at 0/100%.
1796
1797
  // At percentage=0: marginLeft=0 → thumb flush-left. At 100%: marginLeft=-thumbSize → flush-right.
@@ -1798,11 +1799,11 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
1798
1799
  left: `${percentage}%`,
1799
1800
  marginLeft: `calc(var(--slider-thumb-size) * ${-percentage / 100})`,
1800
1801
  };
1801
- return (jsxRuntime.jsxs("div", { className: `${styles$o.slider} ${sizeClass} ${stateClass} ${dragClass} ${className}`, style: style, children: [label && jsxRuntime.jsx("label", { className: styles$o.label, children: label }), jsxRuntime.jsxs("div", { className: styles$o.sliderContainer, children: [jsxRuntime.jsx("div", { className: styles$o.track, children: jsxRuntime.jsx("div", { className: styles$o.fill, style: { width: `${percentage}%`, backgroundColor: dynamicColor } }) }), jsxRuntime.jsx("input", { type: "range", min: min, max: max, step: step, value: value, onChange: handleChange, onPointerDown: startDrag, onPointerUp: endDrag, onPointerCancel: endDrag, onBlur: endDrag, ...handlers, className: styles$o.input, disabled: disabled, "aria-label": label }), jsxRuntime.jsx("div", { className: styles$o.thumb, style: {
1802
+ return (jsxRuntime.jsxs("div", { className: `${styles$p.slider} ${sizeClass} ${stateClass} ${dragClass} ${className}`, style: style, children: [label && jsxRuntime.jsx("label", { className: styles$p.label, children: label }), jsxRuntime.jsxs("div", { className: styles$p.sliderContainer, children: [jsxRuntime.jsx("div", { className: styles$p.track, children: jsxRuntime.jsx("div", { className: styles$p.fill, style: { width: `${percentage}%`, backgroundColor: dynamicColor } }) }), jsxRuntime.jsx("input", { type: "range", min: min, max: max, step: step, value: value, onChange: handleChange, onPointerDown: startDrag, onPointerUp: endDrag, onPointerCancel: endDrag, onBlur: endDrag, ...handlers, className: styles$p.input, disabled: disabled, "aria-label": label }), jsxRuntime.jsx("div", { className: styles$p.thumb, style: {
1802
1803
  ...insetStyle,
1803
1804
  backgroundColor: dynamicColor,
1804
1805
  borderColor: colors.thumb || dynamicColor,
1805
- } }), jsxRuntime.jsx(framerMotion.AnimatePresence, { children: showTooltip && isDragging && !disabled && (jsxRuntime.jsxs(framerMotion.motion.div, { className: styles$o.tooltip, style: { ...insetStyle, backgroundColor: dynamicColor }, initial: { opacity: 0, y: 6, scale: 0.9 }, animate: { opacity: 1, y: 0, scale: 1 }, exit: { opacity: 0, y: 6, scale: 0.9 }, transition: { duration: 0.15 }, children: [tooltipContent ? tooltipContent(value) : formatValue(value), jsxRuntime.jsx("div", { className: styles$o.tooltipArrow, style: { borderTopColor: dynamicColor } })] })) })] }), showValue && (jsxRuntime.jsx("div", { className: styles$o.valueDisplay, style: { color: dynamicColor }, children: formatValue(value) })), labels.length > 0 && (jsxRuntime.jsx("div", { className: styles$o.labelsContainer, children: labels.map((labelConfig, index) => {
1806
+ } }), jsxRuntime.jsx(framerMotion.AnimatePresence, { children: showTooltip && isDragging && !disabled && (jsxRuntime.jsxs(framerMotion.motion.div, { className: styles$p.tooltip, style: { ...insetStyle, backgroundColor: dynamicColor }, initial: { opacity: 0, y: 6, scale: 0.9 }, animate: { opacity: 1, y: 0, scale: 1 }, exit: { opacity: 0, y: 6, scale: 0.9 }, transition: { duration: 0.15 }, children: [tooltipContent ? tooltipContent(value) : formatValue(value), jsxRuntime.jsx("div", { className: styles$p.tooltipArrow, style: { borderTopColor: dynamicColor } })] })) })] }), showValue && (jsxRuntime.jsx("div", { className: styles$p.valueDisplay, style: { color: dynamicColor }, children: formatValue(value) })), labels.length > 0 && (jsxRuntime.jsx("div", { className: styles$p.labelsContainer, children: labels.map((labelConfig, index) => {
1806
1807
  let position = 0;
1807
1808
  if (labelConfig.position === 'start')
1808
1809
  position = 0;
@@ -1810,11 +1811,11 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
1810
1811
  position = 100;
1811
1812
  else if (typeof labelConfig.position === 'number')
1812
1813
  position = labelConfig.position;
1813
- return (jsxRuntime.jsx("div", { className: styles$o.labelItem, style: { left: `${position}%`, color: labelConfig.color }, children: labelConfig.label }, index));
1814
+ return (jsxRuntime.jsx("div", { className: styles$p.labelItem, style: { left: `${position}%`, color: labelConfig.color }, children: labelConfig.label }, index));
1814
1815
  }) }))] }));
1815
1816
  }
1816
1817
 
1817
- var styles$n = {"loadingContainer":"LoadingSpinner-module_loadingContainer__m5u51","fullScreen":"LoadingSpinner-module_fullScreen__TuAem","overlay":"LoadingSpinner-module_overlay__X7FTa","shimmer":"LoadingSpinner-module_shimmer__xw4AH","small":"LoadingSpinner-module_small__nq8A3","loadingText":"LoadingSpinner-module_loadingText__wWwna","medium":"LoadingSpinner-module_medium__3JC1S","large":"LoadingSpinner-module_large__4MvAc","dotsSpinner":"LoadingSpinner-module_dotsSpinner__PXtfs","dot1":"LoadingSpinner-module_dot1__5YKSi","dot2":"LoadingSpinner-module_dot2__l6Rbu","dot3":"LoadingSpinner-module_dot3__b9YPW","circleSpinner":"LoadingSpinner-module_circleSpinner__ZmmWs","pulseSpinner":"LoadingSpinner-module_pulseSpinner__wTtDJ","textGradient":"LoadingSpinner-module_textGradient__QDrTY","sparkleContainer":"LoadingSpinner-module_sparkleContainer__9XLJG","sparkle":"LoadingSpinner-module_sparkle__LtFFf"};
1818
+ var styles$o = {"loadingContainer":"LoadingSpinner-module_loadingContainer__m5u51","fullScreen":"LoadingSpinner-module_fullScreen__TuAem","overlay":"LoadingSpinner-module_overlay__X7FTa","shimmer":"LoadingSpinner-module_shimmer__xw4AH","small":"LoadingSpinner-module_small__nq8A3","loadingText":"LoadingSpinner-module_loadingText__wWwna","medium":"LoadingSpinner-module_medium__3JC1S","large":"LoadingSpinner-module_large__4MvAc","dotsSpinner":"LoadingSpinner-module_dotsSpinner__PXtfs","dot1":"LoadingSpinner-module_dot1__5YKSi","dot2":"LoadingSpinner-module_dot2__l6Rbu","dot3":"LoadingSpinner-module_dot3__b9YPW","circleSpinner":"LoadingSpinner-module_circleSpinner__ZmmWs","pulseSpinner":"LoadingSpinner-module_pulseSpinner__wTtDJ","textGradient":"LoadingSpinner-module_textGradient__QDrTY","sparkleContainer":"LoadingSpinner-module_sparkleContainer__9XLJG","sparkle":"LoadingSpinner-module_sparkle__LtFFf"};
1818
1819
 
1819
1820
  const defaultMessages = [
1820
1821
  'Loading your content...',
@@ -1898,22 +1899,22 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
1898
1899
  }
1899
1900
  }, [currentMessageIndex, message, messagesToUse, showMessage]);
1900
1901
  const containerClasses = [
1901
- styles$n.loadingContainer,
1902
- styles$n[size],
1903
- styles$n[variant],
1904
- fullScreen && styles$n.fullScreen,
1905
- overlay && styles$n.overlay,
1902
+ styles$o.loadingContainer,
1903
+ styles$o[size],
1904
+ styles$o[variant],
1905
+ fullScreen && styles$o.fullScreen,
1906
+ overlay && styles$o.overlay,
1906
1907
  className
1907
1908
  ].filter(Boolean).join(' ');
1908
1909
  const customStyle = {
1909
1910
  ...(color && { '--spinner-color': color }),
1910
1911
  ...(backgroundColor && { '--spinner-background': backgroundColor }),
1911
1912
  };
1912
- const renderDots = () => (jsxRuntime.jsxs(framerMotion.motion.div, { className: styles$n.dotsSpinner, animate: { rotate: 360 }, transition: {
1913
+ const renderDots = () => (jsxRuntime.jsxs(framerMotion.motion.div, { className: styles$o.dotsSpinner, animate: { rotate: 360 }, transition: {
1913
1914
  duration: 2,
1914
1915
  repeat: Infinity,
1915
1916
  ease: 'linear'
1916
- }, children: [jsxRuntime.jsx(framerMotion.motion.div, { className: styles$n.dot1, animate: {
1917
+ }, children: [jsxRuntime.jsx(framerMotion.motion.div, { className: styles$o.dot1, animate: {
1917
1918
  scale: [1, 1.3, 1],
1918
1919
  y: [0, -6, 0]
1919
1920
  }, transition: {
@@ -1921,7 +1922,7 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
1921
1922
  repeat: Infinity,
1922
1923
  ease: 'easeInOut',
1923
1924
  delay: 0
1924
- } }), jsxRuntime.jsx(framerMotion.motion.div, { className: styles$n.dot2, animate: {
1925
+ } }), jsxRuntime.jsx(framerMotion.motion.div, { className: styles$o.dot2, animate: {
1925
1926
  scale: [1, 1.3, 1],
1926
1927
  y: [0, -6, 0]
1927
1928
  }, transition: {
@@ -1929,7 +1930,7 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
1929
1930
  repeat: Infinity,
1930
1931
  ease: 'easeInOut',
1931
1932
  delay: 0.5
1932
- } }), jsxRuntime.jsx(framerMotion.motion.div, { className: styles$n.dot3, animate: {
1933
+ } }), jsxRuntime.jsx(framerMotion.motion.div, { className: styles$o.dot3, animate: {
1933
1934
  scale: [1, 1.3, 1],
1934
1935
  y: [0, -6, 0]
1935
1936
  }, transition: {
@@ -1938,12 +1939,12 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
1938
1939
  ease: 'easeInOut',
1939
1940
  delay: 1
1940
1941
  } })] }));
1941
- const renderSpinner = () => (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$n.circleSpinner, animate: { rotate: 360 }, transition: {
1942
+ const renderSpinner = () => (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$o.circleSpinner, animate: { rotate: 360 }, transition: {
1942
1943
  duration: 1,
1943
1944
  repeat: Infinity,
1944
1945
  ease: 'linear'
1945
1946
  } }));
1946
- const renderPulse = () => (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$n.pulseSpinner, animate: {
1947
+ const renderPulse = () => (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$o.pulseSpinner, animate: {
1947
1948
  scale: [1, 1.2, 1],
1948
1949
  opacity: [1, 0.7, 1]
1949
1950
  }, transition: {
@@ -1962,10 +1963,10 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
1962
1963
  return renderDots();
1963
1964
  }
1964
1965
  };
1965
- return (jsxRuntime.jsxs("div", { className: containerClasses, style: customStyle, children: [renderSpinnerVariant(), showMessage && (jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: jsxRuntime.jsx(framerMotion.motion.p, { className: styles$n.loadingText, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -10 }, transition: {
1966
+ return (jsxRuntime.jsxs("div", { className: containerClasses, style: customStyle, children: [renderSpinnerVariant(), showMessage && (jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: jsxRuntime.jsx(framerMotion.motion.p, { className: styles$o.loadingText, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -10 }, transition: {
1966
1967
  duration: 0.4,
1967
1968
  ease: 'easeOut'
1968
- }, children: currentMessage }, currentMessage) })), showSparkles && (jsxRuntime.jsx("div", { className: styles$n.sparkleContainer, children: [...Array(4)].map((_, i) => (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$n.sparkle, animate: {
1969
+ }, children: currentMessage }, currentMessage) })), showSparkles && (jsxRuntime.jsx("div", { className: styles$o.sparkleContainer, children: [...Array(4)].map((_, i) => (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$o.sparkle, animate: {
1969
1970
  opacity: [0, 1, 0],
1970
1971
  scale: [0.5, 1, 0.5],
1971
1972
  rotate: [0, 180, 360]
@@ -1980,7 +1981,7 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
1980
1981
  } }, i))) }))] }));
1981
1982
  };
1982
1983
 
1983
- var styles$m = {"wrapper":"DecryptedText-module_wrapper__tuLvf","srOnly":"DecryptedText-module_srOnly__A-K2T"};
1984
+ var styles$n = {"wrapper":"DecryptedText-module_wrapper__tuLvf","srOnly":"DecryptedText-module_srOnly__A-K2T"};
1984
1985
 
1985
1986
  /**
1986
1987
  * DecryptedText Component
@@ -2164,13 +2165,13 @@ const DecryptedText = ({ text, speed = 50, maxIterations = 10, sequential = fals
2164
2165
  onMouseLeave: () => setIsHovering(false),
2165
2166
  }
2166
2167
  : {};
2167
- return (jsxRuntime.jsxs(framerMotion.motion.span, { className: `${styles$m.wrapper} ${parentClassName}`, ref: containerRef, ...hoverProps, ...props, children: [jsxRuntime.jsx("span", { className: styles$m.srOnly, children: displayText }), jsxRuntime.jsx("span", { "aria-hidden": "true", children: displayText.split('').map((char, index) => {
2168
+ return (jsxRuntime.jsxs(framerMotion.motion.span, { className: `${styles$n.wrapper} ${parentClassName}`, ref: containerRef, ...hoverProps, ...props, children: [jsxRuntime.jsx("span", { className: styles$n.srOnly, children: displayText }), jsxRuntime.jsx("span", { "aria-hidden": "true", children: displayText.split('').map((char, index) => {
2168
2169
  const isRevealedOrDone = revealedIndices.has(index) || !isScrambling || !isHovering;
2169
2170
  return (jsxRuntime.jsx("span", { className: isRevealedOrDone ? className : encryptedClassName, children: char }, index));
2170
2171
  }) })] }));
2171
2172
  };
2172
2173
 
2173
- var styles$l = {"arrayInput":"ArrayInput-module_arrayInput__q1x7A","arrayInputLabel":"ArrayInput-module_arrayInputLabel__HyUC7","arrayInputItem":"ArrayInput-module_arrayInputItem__bFtgl","inputWrapper":"ArrayInput-module_inputWrapper__ajhbW","input":"ArrayInput-module_input__1uywi","complexItem":"ArrayInput-module_complexItem__zr-Q-","fieldsWrapper":"ArrayInput-module_fieldsWrapper__7BVPa","removeButton":"ArrayInput-module_removeButton__gYf8Y","addButton":"ArrayInput-module_addButton__mia29"};
2174
+ var styles$m = {"arrayInput":"ArrayInput-module_arrayInput__q1x7A","arrayInputLabel":"ArrayInput-module_arrayInputLabel__HyUC7","arrayInputItem":"ArrayInput-module_arrayInputItem__bFtgl","inputWrapper":"ArrayInput-module_inputWrapper__ajhbW","input":"ArrayInput-module_input__1uywi","complexItem":"ArrayInput-module_complexItem__zr-Q-","fieldsWrapper":"ArrayInput-module_fieldsWrapper__7BVPa","removeButton":"ArrayInput-module_removeButton__gYf8Y","addButton":"ArrayInput-module_addButton__mia29"};
2174
2175
 
2175
2176
  /**
2176
2177
  * ArrayInput component - Versatile dynamic list manager
@@ -2237,11 +2238,11 @@ function SimpleArrayInput({ label, values, onChange, placeholder, itemStyle, inp
2237
2238
  itemIdsRef.current.splice(index, 1);
2238
2239
  onChange(newValues);
2239
2240
  };
2240
- return (jsxRuntime.jsxs("div", { className: styles$l.arrayInput, children: [jsxRuntime.jsx("h3", { className: styles$l.arrayInputLabel, children: label }), jsxRuntime.jsx("div", { children: jsxRuntime.jsx(framerMotion.AnimatePresence, { children: values.map((value, index) => (jsxRuntime.jsxs(framerMotion.motion.div, { className: styles$l.arrayInputItem, style: itemStyle, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0 }, transition: {
2241
+ return (jsxRuntime.jsxs("div", { className: styles$m.arrayInput, children: [jsxRuntime.jsx("h3", { className: styles$m.arrayInputLabel, children: label }), jsxRuntime.jsx("div", { children: jsxRuntime.jsx(framerMotion.AnimatePresence, { children: values.map((value, index) => (jsxRuntime.jsxs(framerMotion.motion.div, { className: styles$m.arrayInputItem, style: itemStyle, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0 }, transition: {
2241
2242
  duration: 0.3,
2242
2243
  ease: "easeInOut",
2243
2244
  layout: { duration: 0.2 }
2244
- }, children: [jsxRuntime.jsx("div", { className: styles$l.inputWrapper, children: multiline ? (jsxRuntime.jsx("div", { style: inputStyle, children: jsxRuntime.jsx(TextArea, { label: "", value: value, onChange: (newValue) => handleChange(index, newValue), placeholder: placeholder, rows: rows, compact: true }) })) : (jsxRuntime.jsx("input", { type: "text", value: value, onChange: (e) => handleChange(index, e.target.value), placeholder: placeholder, className: styles$l.input, style: inputStyle })) }), jsxRuntime.jsx(Button, { variant: "ghost", size: "small", onClick: () => handleRemove(index), "aria-label": "Remove item", className: styles$l.removeButton, children: jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsxRuntime.jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) })] }, itemIdsRef.current[index]))) }) }), jsxRuntime.jsx(Button, { variant: buttonVariant, size: "small", onClick: handleAdd, className: styles$l.addButton, children: label })] }));
2245
+ }, children: [jsxRuntime.jsx("div", { className: styles$m.inputWrapper, children: multiline ? (jsxRuntime.jsx("div", { style: inputStyle, children: jsxRuntime.jsx(TextArea, { label: "", value: value, onChange: (newValue) => handleChange(index, newValue), placeholder: placeholder, rows: rows, compact: true }) })) : (jsxRuntime.jsx("input", { type: "text", value: value, onChange: (e) => handleChange(index, e.target.value), placeholder: placeholder, className: styles$m.input, style: inputStyle })) }), jsxRuntime.jsx(Button, { variant: "ghost", size: "small", onClick: () => handleRemove(index), "aria-label": "Remove item", className: styles$m.removeButton, children: jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsxRuntime.jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) })] }, itemIdsRef.current[index]))) }) }), jsxRuntime.jsx(Button, { variant: buttonVariant, size: "small", onClick: handleAdd, className: styles$m.addButton, children: label })] }));
2245
2246
  }
2246
2247
  // Complex object array implementation
2247
2248
  function ComplexArrayInput({ label, values, onChange, fields, getKey, itemStyle, inputStyle, buttonVariant = 'primary' }) {
@@ -2266,14 +2267,14 @@ function ComplexArrayInput({ label, values, onChange, fields, getKey, itemStyle,
2266
2267
  // Generate key from all field values
2267
2268
  return fields.map(f => item[f.name] || '').join('-') + `-${index}`;
2268
2269
  };
2269
- return (jsxRuntime.jsxs("div", { className: styles$l.arrayInput, children: [jsxRuntime.jsx("h3", { className: styles$l.arrayInputLabel, children: label }), jsxRuntime.jsx("div", { children: jsxRuntime.jsx(framerMotion.AnimatePresence, { children: values.map((value, index) => (jsxRuntime.jsxs(framerMotion.motion.div, { className: `${styles$l.arrayInputItem} ${fields.length > 1 ? styles$l.complexItem : ''}`, style: itemStyle, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0 }, transition: {
2270
+ return (jsxRuntime.jsxs("div", { className: styles$m.arrayInput, children: [jsxRuntime.jsx("h3", { className: styles$m.arrayInputLabel, children: label }), jsxRuntime.jsx("div", { children: jsxRuntime.jsx(framerMotion.AnimatePresence, { children: values.map((value, index) => (jsxRuntime.jsxs(framerMotion.motion.div, { className: `${styles$m.arrayInputItem} ${fields.length > 1 ? styles$m.complexItem : ''}`, style: itemStyle, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0 }, transition: {
2270
2271
  duration: 0.3,
2271
2272
  ease: "easeInOut",
2272
2273
  layout: { duration: 0.2 }
2273
- }, children: [jsxRuntime.jsx("div", { className: styles$l.fieldsWrapper, children: fields.map((field) => (jsxRuntime.jsx("div", { style: inputStyle, children: field.multiline ? (jsxRuntime.jsx(TextArea, { value: value[field.name] || '', onChange: (newValue) => handleChange(index, field.name, newValue), label: field.label, placeholder: field.placeholder, rows: field.rows, compact: true })) : (jsxRuntime.jsx(TextInput, { value: value[field.name] || '', onChange: (newValue) => handleChange(index, field.name, newValue), label: field.label, type: field.type, placeholder: field.placeholder })) }, field.name))) }), jsxRuntime.jsx(Button, { variant: "ghost", size: "small", onClick: () => handleRemove(index), "aria-label": "Remove item", className: styles$l.removeButton, children: jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsxRuntime.jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) })] }, generateKey(value, index)))) }) }), jsxRuntime.jsxs(Button, { variant: buttonVariant, size: "small", onClick: handleAdd, className: styles$l.addButton, children: ["Add ", label] })] }));
2274
+ }, children: [jsxRuntime.jsx("div", { className: styles$m.fieldsWrapper, children: fields.map((field) => (jsxRuntime.jsx("div", { style: inputStyle, children: field.multiline ? (jsxRuntime.jsx(TextArea, { value: value[field.name] || '', onChange: (newValue) => handleChange(index, field.name, newValue), label: field.label, placeholder: field.placeholder, rows: field.rows, compact: true })) : (jsxRuntime.jsx(TextInput, { value: value[field.name] || '', onChange: (newValue) => handleChange(index, field.name, newValue), label: field.label, type: field.type, placeholder: field.placeholder })) }, field.name))) }), jsxRuntime.jsx(Button, { variant: "ghost", size: "small", onClick: () => handleRemove(index), "aria-label": "Remove item", className: styles$m.removeButton, children: jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsxRuntime.jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) })] }, generateKey(value, index)))) }) }), jsxRuntime.jsxs(Button, { variant: buttonVariant, size: "small", onClick: handleAdd, className: styles$m.addButton, children: ["Add ", label] })] }));
2274
2275
  }
2275
2276
 
2276
- var styles$k = {"fab":"EditFAB-module_fab__nSrTJ","primary":"EditFAB-module_primary__zbA9n","secondary":"EditFAB-module_secondary__BnXs0","success":"EditFAB-module_success__kcLg3","loader":"EditFAB-module_loader__TaJOm","draggable":"EditFAB-module_draggable__eE2vE","dragging":"EditFAB-module_dragging__btRJe"};
2277
+ var styles$l = {"fab":"EditFAB-module_fab__nSrTJ","primary":"EditFAB-module_primary__zbA9n","secondary":"EditFAB-module_secondary__BnXs0","success":"EditFAB-module_success__kcLg3","loader":"EditFAB-module_loader__TaJOm","draggable":"EditFAB-module_draggable__eE2vE","dragging":"EditFAB-module_dragging__btRJe"};
2277
2278
 
2278
2279
  const EditFAB = ({ canEdit, isEditMode, hasUnsavedChanges = false, isSaving = false, onEnterEditMode, onExitEditMode, position = { bottom: 32, right: 32 } }) => {
2279
2280
  const [isMobile, setIsMobile] = React.useState(false);
@@ -2358,15 +2359,15 @@ const EditFAB = ({ canEdit, isEditMode, hasUnsavedChanges = false, isSaving = fa
2358
2359
  };
2359
2360
  const getVariantClass = () => {
2360
2361
  if (isSaving)
2361
- return styles$k.primary;
2362
+ return styles$l.primary;
2362
2363
  if (isEditMode) {
2363
- return hasUnsavedChanges ? styles$k.success : styles$k.secondary;
2364
+ return hasUnsavedChanges ? styles$l.success : styles$l.secondary;
2364
2365
  }
2365
- return styles$k.primary;
2366
+ return styles$l.primary;
2366
2367
  };
2367
2368
  const getIcon = () => {
2368
2369
  if (isSaving) {
2369
- return jsxRuntime.jsx("div", { className: styles$k.loader });
2370
+ return jsxRuntime.jsx("div", { className: styles$l.loader });
2370
2371
  }
2371
2372
  if (isEditMode) {
2372
2373
  return hasUnsavedChanges ? jsxRuntime.jsx(lucideReact.Check, { size: 24 }) : jsxRuntime.jsx(lucideReact.X, { size: 24 });
@@ -2381,14 +2382,14 @@ const EditFAB = ({ canEdit, isEditMode, hasUnsavedChanges = false, isSaving = fa
2381
2382
  }
2382
2383
  return "Enter edit mode";
2383
2384
  };
2384
- return (jsxRuntime.jsx(framerMotion.motion.button, { ref: fabRef, className: `${styles$k.fab} ${getVariantClass()} ${isMobile ? styles$k.draggable : ''} ${isDragging ? styles$k.dragging : ''}`, style: getPositionStyles(), onClick: handleClick, onTouchStart: handleTouchStart, onTouchMove: handleTouchMove, onTouchEnd: handleTouchEnd, disabled: isSaving, "aria-label": getAriaLabel(), initial: { scale: 0, opacity: 0 }, animate: { scale: 1, opacity: 1 }, exit: { scale: 0, opacity: 0 }, whileHover: !isSaving && !isDragging ? { scale: 1.1 } : {}, whileTap: !isSaving && !isDragging ? { scale: 0.9 } : {}, transition: {
2385
+ return (jsxRuntime.jsx(framerMotion.motion.button, { ref: fabRef, className: `${styles$l.fab} ${getVariantClass()} ${isMobile ? styles$l.draggable : ''} ${isDragging ? styles$l.dragging : ''}`, style: getPositionStyles(), onClick: handleClick, onTouchStart: handleTouchStart, onTouchMove: handleTouchMove, onTouchEnd: handleTouchEnd, disabled: isSaving, "aria-label": getAriaLabel(), initial: { scale: 0, opacity: 0 }, animate: { scale: 1, opacity: 1 }, exit: { scale: 0, opacity: 0 }, whileHover: !isSaving && !isDragging ? { scale: 1.1 } : {}, whileTap: !isSaving && !isDragging ? { scale: 0.9 } : {}, transition: {
2385
2386
  type: "spring",
2386
2387
  stiffness: 260,
2387
2388
  damping: 20
2388
2389
  }, children: getIcon() }));
2389
2390
  };
2390
2391
 
2391
- var styles$j = {"searchContainer":"SearchBar-module_searchContainer__TdM1w","searchInputWrapper":"SearchBar-module_searchInputWrapper__kCZLU","searchIcon":"SearchBar-module_searchIcon__IIxEu","searchInput":"SearchBar-module_searchInput__V4gkE","clearButton":"SearchBar-module_clearButton__7fNIY","filterSelect":"SearchBar-module_filterSelect__xIVE4","resultsDropdown":"SearchBar-module_resultsDropdown__yh6NF","loadingState":"SearchBar-module_loadingState__4gidK","emptyState":"SearchBar-module_emptyState__RbI4s","spinner":"SearchBar-module_spinner__PMc6-","resultsGroups":"SearchBar-module_resultsGroups__U24DC","resultGroup":"SearchBar-module_resultGroup__SoTQH","groupHeader":"SearchBar-module_groupHeader__bFRHA","groupIcon":"SearchBar-module_groupIcon__9ENM-","groupTitle":"SearchBar-module_groupTitle__ZekZs","groupCount":"SearchBar-module_groupCount__PQIqw","groupResults":"SearchBar-module_groupResults__xTF52","resultItem":"SearchBar-module_resultItem__VaKKy","highlighted":"SearchBar-module_highlighted__Q-3sH","resultTitle":"SearchBar-module_resultTitle__i1uqL","resultSubtitle":"SearchBar-module_resultSubtitle__LQOJ1","resultMeta":"SearchBar-module_resultMeta__Kmkrn","resultContent":"SearchBar-module_resultContent__TzVzL","highlight":"SearchBar-module_highlight__Q3PSP"};
2392
+ var styles$k = {"searchContainer":"SearchBar-module_searchContainer__TdM1w","searchInputWrapper":"SearchBar-module_searchInputWrapper__kCZLU","searchIcon":"SearchBar-module_searchIcon__IIxEu","searchInput":"SearchBar-module_searchInput__V4gkE","clearButton":"SearchBar-module_clearButton__7fNIY","filterSelect":"SearchBar-module_filterSelect__xIVE4","resultsDropdown":"SearchBar-module_resultsDropdown__yh6NF","loadingState":"SearchBar-module_loadingState__4gidK","emptyState":"SearchBar-module_emptyState__RbI4s","spinner":"SearchBar-module_spinner__PMc6-","resultsGroups":"SearchBar-module_resultsGroups__U24DC","resultGroup":"SearchBar-module_resultGroup__SoTQH","groupHeader":"SearchBar-module_groupHeader__bFRHA","groupIcon":"SearchBar-module_groupIcon__9ENM-","groupTitle":"SearchBar-module_groupTitle__ZekZs","groupCount":"SearchBar-module_groupCount__PQIqw","groupResults":"SearchBar-module_groupResults__xTF52","resultItem":"SearchBar-module_resultItem__VaKKy","highlighted":"SearchBar-module_highlighted__Q-3sH","resultTitle":"SearchBar-module_resultTitle__i1uqL","resultSubtitle":"SearchBar-module_resultSubtitle__LQOJ1","resultMeta":"SearchBar-module_resultMeta__Kmkrn","resultContent":"SearchBar-module_resultContent__TzVzL","highlight":"SearchBar-module_highlight__Q3PSP"};
2392
2393
 
2393
2394
  // Default filter options for backwards compatibility
2394
2395
  const defaultFilterOptions = [
@@ -2581,20 +2582,20 @@ const SearchBar = ({ className, placeholder = "Search (Ctrl+Space)...", onSearch
2581
2582
  return text || '';
2582
2583
  const regex = new RegExp(`(${highlight.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')})`, 'gi');
2583
2584
  const parts = text.split(regex);
2584
- return parts.map((part, index) => regex.test(part) ? (jsxRuntime.jsx("mark", { className: styles$j.highlight, children: part }, index)) : (part));
2585
+ return parts.map((part, index) => regex.test(part) ? (jsxRuntime.jsx("mark", { className: styles$k.highlight, children: part }, index)) : (part));
2585
2586
  };
2586
- return (jsxRuntime.jsxs("div", { ref: searchRef, className: `${styles$j.searchContainer} ${className || ''}`, children: [jsxRuntime.jsxs("div", { className: styles$j.searchInputWrapper, children: [jsxRuntime.jsx(lucideReact.Search, { className: styles$j.searchIcon }), jsxRuntime.jsx("input", { ref: inputRef, type: "text", value: query, onChange: (e) => setQuery(e.target.value), onKeyDown: handleKeyDown, onFocus: () => query.trim() && results.length > 0 && setIsDropdownOpen(true), placeholder: placeholder, className: styles$j.searchInput, "aria-label": "Search", "aria-expanded": isDropdownOpen, "aria-controls": "search-results", "aria-autocomplete": "list" }), query && (jsxRuntime.jsx(framerMotion.motion.button, { className: styles$j.clearButton, onClick: handleClear, whileHover: { scale: 1.1 }, whileTap: { scale: 0.9 }, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, children: jsxRuntime.jsx(lucideReact.X, {}) })), showFilter && (jsxRuntime.jsx("select", { value: filter, onChange: (e) => setFilter(e.target.value), className: styles$j.filterSelect, "aria-label": "Filter search results", children: filterOptions.map(option => (jsxRuntime.jsx("option", { value: option.value, children: option.label }, option.value))) }))] }), jsxRuntime.jsx(framerMotion.AnimatePresence, { children: isDropdownOpen && (jsxRuntime.jsx(framerMotion.motion.div, { ref: resultsRef, id: "search-results", className: styles$j.resultsDropdown, initial: { opacity: 0, y: -10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -10 }, transition: { duration: 0.2 }, children: isLoading ? (jsxRuntime.jsxs("div", { className: styles$j.loadingState, children: [jsxRuntime.jsx("div", { className: styles$j.spinner }), jsxRuntime.jsx("span", { children: "Searching..." })] })) : results.length === 0 ? (jsxRuntime.jsxs("div", { className: styles$j.emptyState, children: ["No results found for \"", query, "\""] })) : (jsxRuntime.jsx("div", { className: styles$j.resultsGroups, children: Object.entries(groupedResults).map(([type, groupResults]) => {
2587
+ return (jsxRuntime.jsxs("div", { ref: searchRef, className: `${styles$k.searchContainer} ${className || ''}`, children: [jsxRuntime.jsxs("div", { className: styles$k.searchInputWrapper, children: [jsxRuntime.jsx(lucideReact.Search, { className: styles$k.searchIcon }), jsxRuntime.jsx("input", { ref: inputRef, type: "text", value: query, onChange: (e) => setQuery(e.target.value), onKeyDown: handleKeyDown, onFocus: () => query.trim() && results.length > 0 && setIsDropdownOpen(true), placeholder: placeholder, className: styles$k.searchInput, "aria-label": "Search", "aria-expanded": isDropdownOpen, "aria-controls": "search-results", "aria-autocomplete": "list" }), query && (jsxRuntime.jsx(framerMotion.motion.button, { className: styles$k.clearButton, onClick: handleClear, whileHover: { scale: 1.1 }, whileTap: { scale: 0.9 }, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, children: jsxRuntime.jsx(lucideReact.X, {}) })), showFilter && (jsxRuntime.jsx("select", { value: filter, onChange: (e) => setFilter(e.target.value), className: styles$k.filterSelect, "aria-label": "Filter search results", children: filterOptions.map(option => (jsxRuntime.jsx("option", { value: option.value, children: option.label }, option.value))) }))] }), jsxRuntime.jsx(framerMotion.AnimatePresence, { children: isDropdownOpen && (jsxRuntime.jsx(framerMotion.motion.div, { ref: resultsRef, id: "search-results", className: styles$k.resultsDropdown, initial: { opacity: 0, y: -10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -10 }, transition: { duration: 0.2 }, children: isLoading ? (jsxRuntime.jsxs("div", { className: styles$k.loadingState, children: [jsxRuntime.jsx("div", { className: styles$k.spinner }), jsxRuntime.jsx("span", { children: "Searching..." })] })) : results.length === 0 ? (jsxRuntime.jsxs("div", { className: styles$k.emptyState, children: ["No results found for \"", query, "\""] })) : (jsxRuntime.jsx("div", { className: styles$k.resultsGroups, children: Object.entries(groupedResults).map(([type, groupResults]) => {
2587
2588
  const Icon = entityIcons[type];
2588
- return (jsxRuntime.jsxs("div", { className: styles$j.resultGroup, children: [jsxRuntime.jsxs("div", { className: styles$j.groupHeader, children: [Icon && jsxRuntime.jsx(Icon, { className: styles$j.groupIcon }), jsxRuntime.jsx("span", { className: styles$j.groupTitle, children: type.charAt(0).toUpperCase() + type.slice(1) }), jsxRuntime.jsx("span", { className: styles$j.groupCount, children: groupResults.length })] }), jsxRuntime.jsx("div", { className: styles$j.groupResults, children: groupResults.map((result) => {
2589
+ return (jsxRuntime.jsxs("div", { className: styles$k.resultGroup, children: [jsxRuntime.jsxs("div", { className: styles$k.groupHeader, children: [Icon && jsxRuntime.jsx(Icon, { className: styles$k.groupIcon }), jsxRuntime.jsx("span", { className: styles$k.groupTitle, children: type.charAt(0).toUpperCase() + type.slice(1) }), jsxRuntime.jsx("span", { className: styles$k.groupCount, children: groupResults.length })] }), jsxRuntime.jsx("div", { className: styles$k.groupResults, children: groupResults.map((result) => {
2589
2590
  const globalIndex = results.indexOf(result);
2590
- return (jsxRuntime.jsxs(framerMotion.motion.button, { "data-result-index": globalIndex, className: `${styles$j.resultItem} ${highlightedIndex === globalIndex ? styles$j.highlighted : ''}`, onClick: () => handleResultClick(result), whileHover: { x: 4 }, onMouseEnter: () => setHighlightedIndex(globalIndex), children: [jsxRuntime.jsxs("div", { className: styles$j.resultContent, children: [jsxRuntime.jsx("div", { className: styles$j.resultTitle, children: highlightMatch(result.title || 'Untitled', query) }), result.subtitle && (jsxRuntime.jsx("div", { className: styles$j.resultSubtitle, children: highlightMatch(result.subtitle, query) }))] }), result.meta && (jsxRuntime.jsx("div", { className: styles$j.resultMeta, children: result.meta }))] }, `${result.type}-${result.id}`));
2591
+ return (jsxRuntime.jsxs(framerMotion.motion.button, { "data-result-index": globalIndex, className: `${styles$k.resultItem} ${highlightedIndex === globalIndex ? styles$k.highlighted : ''}`, onClick: () => handleResultClick(result), whileHover: { x: 4 }, onMouseEnter: () => setHighlightedIndex(globalIndex), children: [jsxRuntime.jsxs("div", { className: styles$k.resultContent, children: [jsxRuntime.jsx("div", { className: styles$k.resultTitle, children: highlightMatch(result.title || 'Untitled', query) }), result.subtitle && (jsxRuntime.jsx("div", { className: styles$k.resultSubtitle, children: highlightMatch(result.subtitle, query) }))] }), result.meta && (jsxRuntime.jsx("div", { className: styles$k.resultMeta, children: result.meta }))] }, `${result.type}-${result.id}`));
2591
2592
  }) })] }, type));
2592
2593
  }) })) })) })] }));
2593
2594
  };
2594
2595
 
2595
- var styles$i = {"timeInput":"TimeInput-module_timeInput__h1DpT","label":"TimeInput-module_label__d4rZw","required":"TimeInput-module_required__rc1vq","picker":"TimeInput-module_picker__9c6EI","error":"TimeInput-module_error__gJnpk","disabled":"TimeInput-module_disabled__wxiZ-"};
2596
+ var styles$j = {"timeInput":"TimeInput-module_timeInput__h1DpT","label":"TimeInput-module_label__d4rZw","required":"TimeInput-module_required__rc1vq","picker":"TimeInput-module_picker__9c6EI","error":"TimeInput-module_error__gJnpk","disabled":"TimeInput-module_disabled__wxiZ-"};
2596
2597
 
2597
- const lightTheme = styles$C.createTheme({
2598
+ const lightTheme = styles$D.createTheme({
2598
2599
  palette: {
2599
2600
  mode: 'light',
2600
2601
  primary: { main: '#3b82f6' },
@@ -2608,7 +2609,7 @@ const lightTheme = styles$C.createTheme({
2608
2609
  },
2609
2610
  },
2610
2611
  });
2611
- const darkTheme = styles$C.createTheme({
2612
+ const darkTheme = styles$D.createTheme({
2612
2613
  palette: {
2613
2614
  mode: 'dark',
2614
2615
  primary: { main: '#f5b829' },
@@ -2628,26 +2629,26 @@ function TimeInput({ label, value, onChange, error = false, success = false, loa
2628
2629
  !!document.documentElement.getAttribute('data-theme')?.includes('dark');
2629
2630
  const muiTheme = React.useMemo(() => (isDark ? darkTheme : lightTheme), [isDark]);
2630
2631
  const getContainerClassName = () => {
2631
- const classes = [styles$i.timeInput];
2632
+ const classes = [styles$j.timeInput];
2632
2633
  if (error)
2633
- classes.push(styles$i.error);
2634
+ classes.push(styles$j.error);
2634
2635
  if (success)
2635
- classes.push(styles$i.success);
2636
+ classes.push(styles$j.success);
2636
2637
  if (loading)
2637
- classes.push(styles$i.loading);
2638
+ classes.push(styles$j.loading);
2638
2639
  if (disabled)
2639
- classes.push(styles$i.disabled);
2640
+ classes.push(styles$j.disabled);
2640
2641
  if (className)
2641
2642
  classes.push(className);
2642
2643
  return classes.join(' ');
2643
2644
  };
2644
- return (jsxRuntime.jsxs("div", { className: getContainerClassName(), children: [label && (jsxRuntime.jsxs("label", { className: styles$i.label, children: [label, required && jsxRuntime.jsx("span", { className: styles$i.required, children: "*" })] })), jsxRuntime.jsx(styles$C.ThemeProvider, { theme: muiTheme, children: jsxRuntime.jsx(LocalizationProvider.LocalizationProvider, { dateAdapter: AdapterDayjs.AdapterDayjs, children: jsxRuntime.jsx(MobileTimePicker.MobileTimePicker, { value: dayjsValue, onChange: (newValue) => {
2645
+ return (jsxRuntime.jsxs("div", { className: getContainerClassName(), children: [label && (jsxRuntime.jsxs("label", { className: styles$j.label, children: [label, required && jsxRuntime.jsx("span", { className: styles$j.required, children: "*" })] })), jsxRuntime.jsx(styles$D.ThemeProvider, { theme: muiTheme, children: jsxRuntime.jsx(LocalizationProvider.LocalizationProvider, { dateAdapter: AdapterDayjs.AdapterDayjs, children: jsxRuntime.jsx(MobileTimePicker.MobileTimePicker, { value: dayjsValue, onChange: (newValue) => {
2645
2646
  onChange(newValue ? newValue.format('HH:mm') : '');
2646
2647
  }, ampm: false, views: ['hours', 'minutes'], disabled: disabled || loading, slotProps: {
2647
2648
  textField: {
2648
2649
  size: 'small',
2649
2650
  fullWidth: true,
2650
- className: styles$i.picker,
2651
+ className: styles$j.picker,
2651
2652
  sx: {
2652
2653
  '& .MuiPickersOutlinedInput-root': {
2653
2654
  fontFamily: "'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, monospace",
@@ -2735,7 +2736,7 @@ const ThemeProvider = ({ children, defaultTheme = 'light', storageKey = 'app-the
2735
2736
  return (jsxRuntime.jsx(ThemeContext.Provider, { value: { theme, setTheme, toggleTheme }, children: children }));
2736
2737
  };
2737
2738
 
2738
- var styles$h = {"button":"ThemeSwitcher-module_button__VfRjU","iconButton":"ThemeSwitcher-module_iconButton__NKYBc","iconWrapper":"ThemeSwitcher-module_iconWrapper__FpHo8","label":"ThemeSwitcher-module_label__2Hfkp","toggle":"ThemeSwitcher-module_toggle__ATXx4","toggleTrack":"ThemeSwitcher-module_toggleTrack__x28Rv","toggleThumb":"ThemeSwitcher-module_toggleThumb__V8QeN","dropdown":"ThemeSwitcher-module_dropdown__3qLdt","dropdownTrigger":"ThemeSwitcher-module_dropdownTrigger__UzYV5","dropdownMenu":"ThemeSwitcher-module_dropdownMenu__3L5hT","dropdownItem":"ThemeSwitcher-module_dropdownItem__inw-K","active":"ThemeSwitcher-module_active__OHP19","icon":"ThemeSwitcher-module_icon__iRZiJ","text":"ThemeSwitcher-module_text__OCOoA"};
2739
+ var styles$i = {"button":"ThemeSwitcher-module_button__VfRjU","iconButton":"ThemeSwitcher-module_iconButton__NKYBc","iconWrapper":"ThemeSwitcher-module_iconWrapper__FpHo8","label":"ThemeSwitcher-module_label__2Hfkp","toggle":"ThemeSwitcher-module_toggle__ATXx4","toggleTrack":"ThemeSwitcher-module_toggleTrack__x28Rv","toggleThumb":"ThemeSwitcher-module_toggleThumb__V8QeN","dropdown":"ThemeSwitcher-module_dropdown__3qLdt","dropdownTrigger":"ThemeSwitcher-module_dropdownTrigger__UzYV5","dropdownMenu":"ThemeSwitcher-module_dropdownMenu__3L5hT","dropdownItem":"ThemeSwitcher-module_dropdownItem__inw-K","active":"ThemeSwitcher-module_active__OHP19","icon":"ThemeSwitcher-module_icon__iRZiJ","text":"ThemeSwitcher-module_text__OCOoA"};
2739
2740
 
2740
2741
  const ThemeSwitcher = ({ variant = 'button', showLabel = false, className = '', currentTheme, onThemeChange, themes: customThemes, }) => {
2741
2742
  // Use safe version that returns null when outside a ThemeProvider
@@ -2756,25 +2757,25 @@ const ThemeSwitcher = ({ variant = 'button', showLabel = false, className = '',
2756
2757
  if (variant === 'toggle') {
2757
2758
  // Simple toggle between light and dark
2758
2759
  const isDark = theme.includes('dark');
2759
- return (jsxRuntime.jsxs(framerMotion.motion.button, { className: `${styles$h.toggle} ${className}`, onClick: () => setTheme(isDark ? 'light' : 'dark'), whileTap: { scale: 0.95 }, "aria-label": "Toggle theme", children: [jsxRuntime.jsx(framerMotion.motion.div, { className: styles$h.toggleTrack, animate: { backgroundColor: isDark ? 'var(--color-primary)' : 'var(--color-border)' }, children: jsxRuntime.jsx(framerMotion.motion.div, { className: styles$h.toggleThumb, animate: { x: isDark ? 24 : 0 }, transition: { type: 'spring', stiffness: 500, damping: 30 }, children: isDark ? jsxRuntime.jsx(lucideReact.Moon, { size: 14 }) : jsxRuntime.jsx(lucideReact.Sun, { size: 14 }) }) }), showLabel && jsxRuntime.jsx("span", { className: styles$h.label, children: isDark ? 'Dark' : 'Light' })] }));
2760
+ return (jsxRuntime.jsxs(framerMotion.motion.button, { className: `${styles$i.toggle} ${className}`, onClick: () => setTheme(isDark ? 'light' : 'dark'), whileTap: { scale: 0.95 }, "aria-label": "Toggle theme", children: [jsxRuntime.jsx(framerMotion.motion.div, { className: styles$i.toggleTrack, animate: { backgroundColor: isDark ? 'var(--color-primary)' : 'var(--color-border)' }, children: jsxRuntime.jsx(framerMotion.motion.div, { className: styles$i.toggleThumb, animate: { x: isDark ? 24 : 0 }, transition: { type: 'spring', stiffness: 500, damping: 30 }, children: isDark ? jsxRuntime.jsx(lucideReact.Moon, { size: 14 }) : jsxRuntime.jsx(lucideReact.Sun, { size: 14 }) }) }), showLabel && jsxRuntime.jsx("span", { className: styles$i.label, children: isDark ? 'Dark' : 'Light' })] }));
2760
2761
  }
2761
2762
  if (variant === 'icon') {
2762
- return (jsxRuntime.jsxs("button", { type: "button", className: `${styles$h.iconButton} ${className}`, onClick: () => {
2763
+ return (jsxRuntime.jsxs("button", { type: "button", className: `${styles$i.iconButton} ${className}`, onClick: () => {
2763
2764
  const nextIndex = (currentThemeIndex + 1) % themes.length;
2764
2765
  setTheme(themes[nextIndex].value);
2765
- }, "aria-label": `Current theme: ${currentThemeData.label}. Click to change.`, title: currentThemeData.label, children: [currentThemeData.icon, showLabel && jsxRuntime.jsx("span", { className: styles$h.label, children: currentThemeData.label })] }));
2766
+ }, "aria-label": `Current theme: ${currentThemeData.label}. Click to change.`, title: currentThemeData.label, children: [currentThemeData.icon, showLabel && jsxRuntime.jsx("span", { className: styles$i.label, children: currentThemeData.label })] }));
2766
2767
  }
2767
2768
  if (variant === 'dropdown') {
2768
- return (jsxRuntime.jsxs("div", { className: `${styles$h.dropdown} ${className}`, children: [jsxRuntime.jsxs(framerMotion.motion.button, { className: styles$h.dropdownTrigger, whileTap: { scale: 0.98 }, children: [currentThemeData.icon, showLabel && jsxRuntime.jsx("span", { className: styles$h.label, children: currentThemeData.label })] }), jsxRuntime.jsx(framerMotion.motion.div, { className: styles$h.dropdownMenu, initial: { opacity: 0, y: -10 }, animate: { opacity: 1, y: 0 }, children: themes.map((t) => (jsxRuntime.jsxs(framerMotion.motion.button, { className: `${styles$h.dropdownItem} ${theme === t.value ? styles$h.active : ''}`, onClick: () => setTheme(t.value), whileHover: { x: 4 }, whileTap: { scale: 0.98 }, children: [jsxRuntime.jsx("span", { className: styles$h.icon, children: t.icon }), jsxRuntime.jsx("span", { className: styles$h.text, children: t.label })] }, t.value))) })] }));
2769
+ return (jsxRuntime.jsxs("div", { className: `${styles$i.dropdown} ${className}`, children: [jsxRuntime.jsxs(framerMotion.motion.button, { className: styles$i.dropdownTrigger, whileTap: { scale: 0.98 }, children: [currentThemeData.icon, showLabel && jsxRuntime.jsx("span", { className: styles$i.label, children: currentThemeData.label })] }), jsxRuntime.jsx(framerMotion.motion.div, { className: styles$i.dropdownMenu, initial: { opacity: 0, y: -10 }, animate: { opacity: 1, y: 0 }, children: themes.map((t) => (jsxRuntime.jsxs(framerMotion.motion.button, { className: `${styles$i.dropdownItem} ${theme === t.value ? styles$i.active : ''}`, onClick: () => setTheme(t.value), whileHover: { x: 4 }, whileTap: { scale: 0.98 }, children: [jsxRuntime.jsx("span", { className: styles$i.icon, children: t.icon }), jsxRuntime.jsx("span", { className: styles$i.text, children: t.label })] }, t.value))) })] }));
2769
2770
  }
2770
2771
  // Default button variant - cycles through themes
2771
- return (jsxRuntime.jsxs(framerMotion.motion.button, { className: `${styles$h.button} ${className}`, onClick: () => {
2772
+ return (jsxRuntime.jsxs(framerMotion.motion.button, { className: `${styles$i.button} ${className}`, onClick: () => {
2772
2773
  const nextIndex = (currentThemeIndex + 1) % themes.length;
2773
2774
  setTheme(themes[nextIndex].value);
2774
- }, whileTap: { scale: 0.95 }, whileHover: { scale: 1.05 }, "aria-label": `Current theme: ${currentThemeData.label}. Click to change.`, children: [jsxRuntime.jsx(framerMotion.motion.div, { initial: { rotate: -180, opacity: 0 }, animate: { rotate: 0, opacity: 1 }, exit: { rotate: 180, opacity: 0 }, transition: { duration: 0.3 }, className: styles$h.iconWrapper, children: currentThemeData.icon }, theme), showLabel && jsxRuntime.jsx("span", { className: styles$h.label, children: currentThemeData.label })] }));
2775
+ }, whileTap: { scale: 0.95 }, whileHover: { scale: 1.05 }, "aria-label": `Current theme: ${currentThemeData.label}. Click to change.`, children: [jsxRuntime.jsx(framerMotion.motion.div, { initial: { rotate: -180, opacity: 0 }, animate: { rotate: 0, opacity: 1 }, exit: { rotate: 180, opacity: 0 }, transition: { duration: 0.3 }, className: styles$i.iconWrapper, children: currentThemeData.icon }, theme), showLabel && jsxRuntime.jsx("span", { className: styles$i.label, children: currentThemeData.label })] }));
2775
2776
  };
2776
2777
 
2777
- var styles$g = {"tabs":"Tabs-module_tabs__Vlvn7","tab":"Tabs-module_tab__uQKim","tabIcon":"Tabs-module_tabIcon__AgN-O","fullWidth":"Tabs-module_fullWidth__X-GHP"};
2778
+ var styles$h = {"tabs":"Tabs-module_tabs__Vlvn7","tab":"Tabs-module_tab__uQKim","tabIcon":"Tabs-module_tabIcon__AgN-O","fullWidth":"Tabs-module_fullWidth__X-GHP"};
2778
2779
 
2779
2780
  // Default tabs for backwards compatibility
2780
2781
  const defaultTabs = [
@@ -2785,39 +2786,39 @@ const defaultTabs = [
2785
2786
  ];
2786
2787
  const Tabs = ({ activeTab, onTabChange, tabs: customTabs, className = '', fullWidth = false }) => {
2787
2788
  const tabs = customTabs ?? defaultTabs;
2788
- return (jsxRuntime.jsx("div", { className: `${styles$g.tabs} ${fullWidth ? styles$g.fullWidth : ''} ${className}`, children: tabs.map((tab) => {
2789
+ return (jsxRuntime.jsx("div", { className: `${styles$h.tabs} ${fullWidth ? styles$h.fullWidth : ''} ${className}`, children: tabs.map((tab) => {
2789
2790
  const isActive = activeTab === tab.id;
2790
- return (jsxRuntime.jsxs(framerMotion.motion.button, { className: styles$g.tab, "data-active": isActive, onClick: () => onTabChange(tab.id), style: { position: 'relative' }, children: [jsxRuntime.jsx(framerMotion.motion.div, { animate: {
2791
+ return (jsxRuntime.jsxs(framerMotion.motion.button, { className: styles$h.tab, "data-active": isActive, onClick: () => onTabChange(tab.id), style: { position: 'relative' }, children: [jsxRuntime.jsx(framerMotion.motion.div, { animate: {
2791
2792
  rotate: isActive ? [0, -10, 10, -5, 5, 0] : 0,
2792
2793
  }, transition: {
2793
2794
  rotate: {
2794
2795
  duration: 0.5,
2795
2796
  ease: 'easeInOut'
2796
2797
  }
2797
- }, children: tab.icon && (React.isValidElement(tab.icon) ? (jsxRuntime.jsx("span", { className: styles$g.tabIcon, children: tab.icon })) : (jsxRuntime.jsx("span", { className: styles$g.tabIcon, children: React.createElement(tab.icon) }))) }), jsxRuntime.jsx("span", { children: tab.label })] }, tab.id));
2798
+ }, children: tab.icon && (React.isValidElement(tab.icon) ? (jsxRuntime.jsx("span", { className: styles$h.tabIcon, children: tab.icon })) : (jsxRuntime.jsx("span", { className: styles$h.tabIcon, children: React.createElement(tab.icon) }))) }), jsxRuntime.jsx("span", { children: tab.label })] }, tab.id));
2798
2799
  }) }));
2799
2800
  };
2800
2801
 
2801
- var styles$f = {"toastContainer":"Toast-module_toastContainer__gp5C0","toast":"Toast-module_toast__eenNR","toastSuccess":"Toast-module_toastSuccess__e-cSx","toastError":"Toast-module_toastError__6JO9w","toastWarning":"Toast-module_toastWarning__pJoF1","toastInfo":"Toast-module_toastInfo__y33kR","icon":"Toast-module_icon__Z-D6i","iconSuccess":"Toast-module_iconSuccess__ehY27","iconError":"Toast-module_iconError__nXhZz","iconWarning":"Toast-module_iconWarning__Ie8oD","iconInfo":"Toast-module_iconInfo__8vOf5","content":"Toast-module_content__eBhK8","title":"Toast-module_title__EfUfZ","message":"Toast-module_message__l4pyr","closeButton":"Toast-module_closeButton__UWOVG","progressBar":"Toast-module_progressBar__fGwBU"};
2802
+ var styles$g = {"toastContainer":"Toast-module_toastContainer__gp5C0","toast":"Toast-module_toast__eenNR","toastSuccess":"Toast-module_toastSuccess__e-cSx","toastError":"Toast-module_toastError__6JO9w","toastWarning":"Toast-module_toastWarning__pJoF1","toastInfo":"Toast-module_toastInfo__y33kR","icon":"Toast-module_icon__Z-D6i","iconSuccess":"Toast-module_iconSuccess__ehY27","iconError":"Toast-module_iconError__nXhZz","iconWarning":"Toast-module_iconWarning__Ie8oD","iconInfo":"Toast-module_iconInfo__8vOf5","content":"Toast-module_content__eBhK8","title":"Toast-module_title__EfUfZ","message":"Toast-module_message__l4pyr","closeButton":"Toast-module_closeButton__UWOVG","progressBar":"Toast-module_progressBar__fGwBU"};
2802
2803
 
2803
2804
  const getIcon = (type) => {
2804
2805
  switch (type) {
2805
2806
  case 'success':
2806
- return (jsxRuntime.jsx("svg", { className: `${styles$f.icon} ${styles$f.iconSuccess}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }));
2807
+ return (jsxRuntime.jsx("svg", { className: `${styles$g.icon} ${styles$g.iconSuccess}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }));
2807
2808
  case 'error':
2808
- return (jsxRuntime.jsx("svg", { className: `${styles$f.icon} ${styles$f.iconError}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }));
2809
+ return (jsxRuntime.jsx("svg", { className: `${styles$g.icon} ${styles$g.iconError}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }));
2809
2810
  case 'warning':
2810
- return (jsxRuntime.jsx("svg", { className: `${styles$f.icon} ${styles$f.iconWarning}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }));
2811
+ return (jsxRuntime.jsx("svg", { className: `${styles$g.icon} ${styles$g.iconWarning}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }));
2811
2812
  case 'info':
2812
- return (jsxRuntime.jsx("svg", { className: `${styles$f.icon} ${styles$f.iconInfo}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }));
2813
+ return (jsxRuntime.jsx("svg", { className: `${styles$g.icon} ${styles$g.iconInfo}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }));
2813
2814
  }
2814
2815
  };
2815
2816
  const getToastStyle = (type) => {
2816
2817
  switch (type) {
2817
- case 'success': return styles$f.toastSuccess;
2818
- case 'error': return styles$f.toastError;
2819
- case 'warning': return styles$f.toastWarning;
2820
- case 'info': return styles$f.toastInfo;
2818
+ case 'success': return styles$g.toastSuccess;
2819
+ case 'error': return styles$g.toastError;
2820
+ case 'warning': return styles$g.toastWarning;
2821
+ case 'info': return styles$g.toastInfo;
2821
2822
  default: return '';
2822
2823
  }
2823
2824
  };
@@ -2839,7 +2840,7 @@ const ToastItem = ({ toast, removeToast, }) => {
2839
2840
  clearInterval(interval);
2840
2841
  };
2841
2842
  }, [toast.id, duration, removeToast]);
2842
- return (jsxRuntime.jsxs(framerMotion.motion.div, { className: `${styles$f.toast} ${getToastStyle(toast.type)}`, initial: { opacity: 0, x: 100, scale: 0.9 }, animate: { opacity: 1, x: 0, scale: 1 }, exit: { opacity: 0, x: 100, scale: 0.9 }, transition: { type: 'spring', stiffness: 500, damping: 40 }, layout: true, children: [getIcon(toast.type), jsxRuntime.jsxs("div", { className: styles$f.content, children: [toast.title && jsxRuntime.jsx("p", { className: styles$f.title, children: toast.title }), jsxRuntime.jsx("p", { className: styles$f.message, children: toast.message })] }), jsxRuntime.jsx("button", { className: styles$f.closeButton, onClick: () => removeToast(toast.id), "aria-label": "Close notification", children: jsxRuntime.jsx("svg", { width: "16", height: "16", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) }), jsxRuntime.jsx(framerMotion.motion.div, { className: styles$f.progressBar, initial: { width: '100%' }, animate: { width: `${progress}%` }, style: {
2843
+ return (jsxRuntime.jsxs(framerMotion.motion.div, { className: `${styles$g.toast} ${getToastStyle(toast.type)}`, initial: { opacity: 0, x: 100, scale: 0.9 }, animate: { opacity: 1, x: 0, scale: 1 }, exit: { opacity: 0, x: 100, scale: 0.9 }, transition: { type: 'spring', stiffness: 500, damping: 40 }, layout: true, children: [getIcon(toast.type), jsxRuntime.jsxs("div", { className: styles$g.content, children: [toast.title && jsxRuntime.jsx("p", { className: styles$g.title, children: toast.title }), jsxRuntime.jsx("p", { className: styles$g.message, children: toast.message })] }), jsxRuntime.jsx("button", { className: styles$g.closeButton, onClick: () => removeToast(toast.id), "aria-label": "Close notification", children: jsxRuntime.jsx("svg", { width: "16", height: "16", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) }), jsxRuntime.jsx(framerMotion.motion.div, { className: styles$g.progressBar, initial: { width: '100%' }, animate: { width: `${progress}%` }, style: {
2843
2844
  color: toast.type === 'success' ? '#10B981'
2844
2845
  : toast.type === 'error' ? '#EF4444'
2845
2846
  : toast.type === 'warning' ? '#F59E0B'
@@ -2849,10 +2850,10 @@ const ToastItem = ({ toast, removeToast, }) => {
2849
2850
  const ToastContainer = ({ toasts, removeToast }) => {
2850
2851
  if (typeof document === 'undefined')
2851
2852
  return null;
2852
- return reactDom.createPortal(jsxRuntime.jsx("div", { className: styles$f.toastContainer, children: jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "sync", children: toasts.map((toast) => (jsxRuntime.jsx(ToastItem, { toast: toast, removeToast: removeToast }, toast.id))) }) }), document.body);
2853
+ return reactDom.createPortal(jsxRuntime.jsx("div", { className: styles$g.toastContainer, children: jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "sync", children: toasts.map((toast) => (jsxRuntime.jsx(ToastItem, { toast: toast, removeToast: removeToast }, toast.id))) }) }), document.body);
2853
2854
  };
2854
2855
 
2855
- var styles$e = {"breadcrumb":"Breadcrumb-module_breadcrumb__pGabz","separator":"Breadcrumb-module_separator__UCmyy","item":"Breadcrumb-module_item__0cLOg","link":"Breadcrumb-module_link__udp8M","current":"Breadcrumb-module_current__3DpQc"};
2856
+ var styles$f = {"breadcrumb":"Breadcrumb-module_breadcrumb__pGabz","separator":"Breadcrumb-module_separator__UCmyy","item":"Breadcrumb-module_item__0cLOg","link":"Breadcrumb-module_link__udp8M","current":"Breadcrumb-module_current__3DpQc"};
2856
2857
 
2857
2858
  /**
2858
2859
  * Breadcrumb Component
@@ -2871,13 +2872,13 @@ var styles$e = {"breadcrumb":"Breadcrumb-module_breadcrumb__pGabz","separator":"
2871
2872
  * />
2872
2873
  */
2873
2874
  const Breadcrumb = ({ items, onNavigate, className = '' }) => {
2874
- return (jsxRuntime.jsx("nav", { className: `${styles$e.breadcrumb} ${className}`, "aria-label": "Breadcrumb", children: items.map((item, index) => {
2875
+ return (jsxRuntime.jsx("nav", { className: `${styles$f.breadcrumb} ${className}`, "aria-label": "Breadcrumb", children: items.map((item, index) => {
2875
2876
  const isLast = index === items.length - 1;
2876
- return (jsxRuntime.jsxs(React.Fragment, { children: [index > 0 && jsxRuntime.jsx(lucideReact.ChevronRight, { size: 14, className: styles$e.separator }), isLast || !item.href ? (jsxRuntime.jsx("span", { className: `${styles$e.item} ${isLast ? styles$e.current : ''}`, children: item.label })) : (jsxRuntime.jsx("button", { className: `${styles$e.item} ${styles$e.link}`, onClick: () => onNavigate?.(item.href), children: item.label }))] }, index));
2877
+ return (jsxRuntime.jsxs(React.Fragment, { children: [index > 0 && jsxRuntime.jsx(lucideReact.ChevronRight, { size: 14, className: styles$f.separator }), isLast || !item.href ? (jsxRuntime.jsx("span", { className: `${styles$f.item} ${isLast ? styles$f.current : ''}`, children: item.label })) : (jsxRuntime.jsx("button", { className: `${styles$f.item} ${styles$f.link}`, onClick: () => onNavigate?.(item.href), children: item.label }))] }, index));
2877
2878
  }) }));
2878
2879
  };
2879
2880
 
2880
- var styles$d = {"overlay":"LiquidButton-module_overlay__-P-xm","container":"LiquidButton-module_container__f1COS","actions":"LiquidButton-module_actions__XBz7p","actionButton":"LiquidButton-module_actionButton__PlEOk","actionLabel":"LiquidButton-module_actionLabel__tIGHE","button":"LiquidButton-module_button__znjyS"};
2881
+ var styles$e = {"overlay":"LiquidButton-module_overlay__-P-xm","container":"LiquidButton-module_container__f1COS","actions":"LiquidButton-module_actions__XBz7p","actionButton":"LiquidButton-module_actionButton__PlEOk","actionLabel":"LiquidButton-module_actionLabel__tIGHE","button":"LiquidButton-module_button__znjyS"};
2881
2882
 
2882
2883
  /**
2883
2884
  * LiquidButton Component
@@ -2903,10 +2904,167 @@ const LiquidButton = ({ actions, icon: Icon = lucideReact.Plus, className = '',
2903
2904
  setExpanded(false);
2904
2905
  action.onClick();
2905
2906
  }, []);
2906
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(framerMotion.AnimatePresence, { children: expanded && (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$d.overlay, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: handleToggle })) }), jsxRuntime.jsxs("div", { className: `${styles$d.container} ${className}`, children: [jsxRuntime.jsx(framerMotion.AnimatePresence, { children: expanded && (jsxRuntime.jsx("div", { className: styles$d.actions, children: actions.map((action, index) => (jsxRuntime.jsxs(framerMotion.motion.button, { type: "button", className: styles$d.actionButton, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, transition: {
2907
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(framerMotion.AnimatePresence, { children: expanded && (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$e.overlay, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: handleToggle })) }), jsxRuntime.jsxs("div", { className: `${styles$e.container} ${className}`, children: [jsxRuntime.jsx(framerMotion.AnimatePresence, { children: expanded && (jsxRuntime.jsx("div", { className: styles$e.actions, children: actions.map((action, index) => (jsxRuntime.jsxs(framerMotion.motion.button, { type: "button", className: styles$e.actionButton, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, transition: {
2907
2908
  duration: 0.15,
2908
2909
  delay: (actions.length - 1 - index) * 0.05,
2909
- }, onClick: () => handleAction(action), children: [jsxRuntime.jsx(action.icon, { size: 18, color: action.color }), jsxRuntime.jsx("span", { className: styles$d.actionLabel, children: action.label })] }, action.key))) })) }), jsxRuntime.jsx(framerMotion.motion.button, { type: "button", className: styles$d.button, onClick: handleToggle, animate: { rotate: expanded ? 45 : 0 }, transition: { duration: 0.2 }, "aria-label": expanded ? 'Close actions' : 'Open actions', children: jsxRuntime.jsx(Icon, { size: 24, strokeWidth: 2.5 }) })] })] }));
2910
+ }, onClick: () => handleAction(action), children: [jsxRuntime.jsx(action.icon, { size: 18, color: action.color }), jsxRuntime.jsx("span", { className: styles$e.actionLabel, children: action.label })] }, action.key))) })) }), jsxRuntime.jsx(framerMotion.motion.button, { type: "button", className: styles$e.button, onClick: handleToggle, animate: { rotate: expanded ? 45 : 0 }, transition: { duration: 0.2 }, "aria-label": expanded ? 'Close actions' : 'Open actions', children: jsxRuntime.jsx(Icon, { size: 24, strokeWidth: 2.5 }) })] })] }));
2911
+ };
2912
+
2913
+ var styles$d = {"container":"RecurrencePicker-module_container__2Ewc4","field":"RecurrencePicker-module_field__3rsnB","fieldCentered":"RecurrencePicker-module_fieldCentered__wP27Q","fieldLabel":"RecurrencePicker-module_fieldLabel__HCMBQ","fieldRow":"RecurrencePicker-module_fieldRow__AQ4k7","fieldUnit":"RecurrencePicker-module_fieldUnit__WHbVN","dayPicker":"RecurrencePicker-module_dayPicker__a5ue6","dayBtn":"RecurrencePicker-module_dayBtn__WIxNY","dayBtnActive":"RecurrencePicker-module_dayBtnActive__mX7FB","preview":"RecurrencePicker-module_preview__tfAQ-"};
2914
+
2915
+ const DEFAULT_STATE = {
2916
+ freq: 'WEEKLY',
2917
+ interval: 1,
2918
+ byDay: ['MO'],
2919
+ byMonthDay: 1,
2920
+ monthlyLast: false,
2921
+ byMonth: 1,
2922
+ yearDay: 1,
2923
+ };
2924
+ const WEEKDAYS = [
2925
+ { code: 'MO', label: 'M', rrule: rrule.RRule.MO },
2926
+ { code: 'TU', label: 'T', rrule: rrule.RRule.TU },
2927
+ { code: 'WE', label: 'W', rrule: rrule.RRule.WE },
2928
+ { code: 'TH', label: 'T', rrule: rrule.RRule.TH },
2929
+ { code: 'FR', label: 'F', rrule: rrule.RRule.FR },
2930
+ { code: 'SA', label: 'S', rrule: rrule.RRule.SA },
2931
+ { code: 'SU', label: 'S', rrule: rrule.RRule.SU },
2932
+ ];
2933
+ const MONTHS$1 = [
2934
+ 'January',
2935
+ 'February',
2936
+ 'March',
2937
+ 'April',
2938
+ 'May',
2939
+ 'June',
2940
+ 'July',
2941
+ 'August',
2942
+ 'September',
2943
+ 'October',
2944
+ 'November',
2945
+ 'December',
2946
+ ];
2947
+ const FREQ_MAP = {
2948
+ DAILY: rrule.RRule.DAILY,
2949
+ WEEKLY: rrule.RRule.WEEKLY,
2950
+ MONTHLY: rrule.RRule.MONTHLY,
2951
+ YEARLY: rrule.RRule.YEARLY,
2952
+ };
2953
+ const REVERSE_FREQ = {
2954
+ [rrule.RRule.DAILY]: 'DAILY',
2955
+ [rrule.RRule.WEEKLY]: 'WEEKLY',
2956
+ [rrule.RRule.MONTHLY]: 'MONTHLY',
2957
+ [rrule.RRule.YEARLY]: 'YEARLY',
2958
+ };
2959
+ const buildRule = (s) => {
2960
+ const opts = { freq: FREQ_MAP[s.freq] };
2961
+ if (s.interval > 1)
2962
+ opts.interval = s.interval;
2963
+ if (s.freq === 'WEEKLY' && s.byDay.length > 0) {
2964
+ opts.byweekday = s.byDay
2965
+ .map(c => WEEKDAYS.find(w => w.code === c)?.rrule)
2966
+ .filter((w) => !!w);
2967
+ }
2968
+ if (s.freq === 'MONTHLY') {
2969
+ opts.bymonthday = s.monthlyLast ? -1 : s.byMonthDay;
2970
+ }
2971
+ if (s.freq === 'YEARLY') {
2972
+ opts.bymonth = s.byMonth;
2973
+ opts.bymonthday = s.yearDay;
2974
+ }
2975
+ const rule = new rrule.RRule(opts);
2976
+ return rule.toString().replace(/^(?:DTSTART:[^\n]*\n)?RRULE:/, '');
2977
+ };
2978
+ const parseRule = (rule) => {
2979
+ try {
2980
+ const opts = rrule.RRule.parseString(rule);
2981
+ const freq = REVERSE_FREQ[opts.freq];
2982
+ if (!freq)
2983
+ return null;
2984
+ const byweekday = opts.byweekday ?? [];
2985
+ const byDay = byweekday
2986
+ .map(w => {
2987
+ const n = typeof w === 'number' ? w : w.weekday;
2988
+ return WEEKDAYS.find(d => d.rrule.weekday === n)?.code;
2989
+ })
2990
+ .filter((c) => !!c);
2991
+ const bmd = opts.bymonthday;
2992
+ const bymonthday = Array.isArray(bmd) ? bmd[0] : bmd;
2993
+ const bm = opts.bymonth;
2994
+ const bymonth = Array.isArray(bm) ? bm[0] : bm;
2995
+ return {
2996
+ freq,
2997
+ interval: opts.interval || 1,
2998
+ byDay: byDay.length > 0 ? byDay : ['MO'],
2999
+ byMonthDay: freq === 'MONTHLY' && bymonthday && bymonthday > 0 ? bymonthday : 1,
3000
+ monthlyLast: freq === 'MONTHLY' && bymonthday === -1,
3001
+ byMonth: freq === 'YEARLY' ? bymonth || 1 : 1,
3002
+ yearDay: freq === 'YEARLY' && bymonthday ? bymonthday : 1,
3003
+ };
3004
+ }
3005
+ catch {
3006
+ return null;
3007
+ }
3008
+ };
3009
+ const stateFromValue = (value) => {
3010
+ if (!value)
3011
+ return DEFAULT_STATE;
3012
+ return parseRule(value) ?? DEFAULT_STATE;
3013
+ };
3014
+ const RecurrencePicker = ({ value, onChange, className, }) => {
3015
+ const [state, setState] = React.useState(() => stateFromValue(value));
3016
+ const built = React.useMemo(() => buildRule(state), [state]);
3017
+ // Re-sync internal state if the parent passes a different rule than the one
3018
+ // we currently render. The `built === value` guard prevents the loop where
3019
+ // our own emit comes back through `value` and triggers a redundant resync.
3020
+ React.useEffect(() => {
3021
+ if (value && value !== built) {
3022
+ const parsed = parseRule(value);
3023
+ if (parsed)
3024
+ setState(parsed);
3025
+ }
3026
+ }, [value, built]);
3027
+ // On mount, if the parent didn't seed a rule, push our default up so its
3028
+ // state matches what we visually display. Runs once.
3029
+ React.useEffect(() => {
3030
+ if (!value)
3031
+ onChange(built);
3032
+ // eslint-disable-next-line react-hooks/exhaustive-deps
3033
+ }, []);
3034
+ const update = (patch) => {
3035
+ const next = { ...state, ...patch };
3036
+ setState(next);
3037
+ onChange(buildRule(next));
3038
+ };
3039
+ const toggleDay = (code) => {
3040
+ const byDay = state.byDay.includes(code)
3041
+ ? state.byDay.filter(c => c !== code)
3042
+ : [...state.byDay, code];
3043
+ update({ byDay });
3044
+ };
3045
+ const preview = React.useMemo(() => {
3046
+ try {
3047
+ return rrule.RRule.fromString(built).toText();
3048
+ }
3049
+ catch {
3050
+ return built;
3051
+ }
3052
+ }, [built]);
3053
+ const unitLabel = {
3054
+ DAILY: state.interval === 1 ? 'day' : 'days',
3055
+ WEEKLY: state.interval === 1 ? 'week' : 'weeks',
3056
+ MONTHLY: state.interval === 1 ? 'month' : 'months',
3057
+ YEARLY: state.interval === 1 ? 'year' : 'years',
3058
+ };
3059
+ return (jsxRuntime.jsxs("div", { className: `${styles$d.container}${className ? ` ${className}` : ''}`, children: [jsxRuntime.jsx("div", { className: styles$d.field, children: jsxRuntime.jsx(SelectInput, { label: "Frequency", value: state.freq, onChange: v => update({ freq: v }), options: [
3060
+ { value: 'DAILY', label: 'Daily' },
3061
+ { value: 'WEEKLY', label: 'Weekly' },
3062
+ { value: 'MONTHLY', label: 'Monthly' },
3063
+ { value: 'YEARLY', label: 'Yearly' },
3064
+ ] }) }), jsxRuntime.jsxs("div", { className: styles$d.field, children: [jsxRuntime.jsx("span", { className: styles$d.fieldLabel, children: "Every" }), jsxRuntime.jsxs("div", { className: styles$d.fieldRow, children: [jsxRuntime.jsx(NumberStepper, { value: state.interval, onChange: v => update({ interval: Math.max(1, v) }), min: 1, max: 99, hideLimits: true, size: "small" }), jsxRuntime.jsx("span", { className: styles$d.fieldUnit, children: unitLabel[state.freq] })] })] }), state.freq === 'WEEKLY' && (jsxRuntime.jsxs("div", { className: `${styles$d.field} ${styles$d.fieldCentered}`, children: [jsxRuntime.jsx("span", { className: styles$d.fieldLabel, children: "On" }), jsxRuntime.jsx("div", { className: styles$d.dayPicker, children: WEEKDAYS.map(d => (jsxRuntime.jsx("button", { type: "button", className: `${styles$d.dayBtn} ${state.byDay.includes(d.code) ? styles$d.dayBtnActive : ''}`, onClick: () => toggleDay(d.code), "aria-label": d.code, children: d.label }, d.code))) })] })), state.freq === 'MONTHLY' && (jsxRuntime.jsxs("div", { className: styles$d.field, children: [jsxRuntime.jsx("span", { className: styles$d.fieldLabel, children: "Day of month" }), jsxRuntime.jsxs("div", { className: styles$d.fieldRow, children: [jsxRuntime.jsx(NumberStepper, { value: state.byMonthDay, onChange: v => update({ byMonthDay: Math.min(31, Math.max(1, v)) }), min: 1, max: 31, disabled: state.monthlyLast, hideLimits: true, size: "small" }), jsxRuntime.jsx(Checkbox, { checked: state.monthlyLast, onChange: v => update({ monthlyLast: v }), label: "Last day" })] })] })), state.freq === 'YEARLY' && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: styles$d.field, children: jsxRuntime.jsx(SelectInput, { label: "Month", value: String(state.byMonth), onChange: v => update({ byMonth: Number(v) }), options: MONTHS$1.map((m, i) => ({
3065
+ value: String(i + 1),
3066
+ label: m,
3067
+ })) }) }), jsxRuntime.jsxs("div", { className: styles$d.field, children: [jsxRuntime.jsx("span", { className: styles$d.fieldLabel, children: "Day" }), jsxRuntime.jsx(NumberStepper, { value: state.yearDay, onChange: v => update({ yearDay: Math.min(31, Math.max(1, v)) }), min: 1, max: 31, hideLimits: true, size: "small" })] })] })), jsxRuntime.jsx("div", { className: styles$d.preview, children: preview })] }));
2910
3068
  };
2911
3069
 
2912
3070
  var styles$c = {"wrap":"StreamConsole-module_wrap__MnVWw","header":"StreamConsole-module_header__FjnRM","headerLeft":"StreamConsole-module_headerLeft__gNDyh","statusDot":"StreamConsole-module_statusDot__xQ254","spin":"StreamConsole-module_spin__OrOeL","label":"StreamConsole-module_label__rJIDm","statusText":"StreamConsole-module_statusText__oG-ej","dismiss":"StreamConsole-module_dismiss__WH3Kv","body":"StreamConsole-module_body__-HIK-","hint":"StreamConsole-module_hint__BA4SI","line":"StreamConsole-module_line__5hMY2","linePrefix":"StreamConsole-module_linePrefix__xR-Oj","lineText":"StreamConsole-module_lineText__IyRSF","lineLabel":"StreamConsole-module_lineLabel__z-qj4"};
@@ -5115,7 +5273,7 @@ const SunburstChart = ({ data, width = 500, height = 500, title = 'Sunburst Char
5115
5273
  }
5116
5274
  // Calculate new positions based on the original positions
5117
5275
  // ALWAYS scale to fill the full circle, no minimum size preservation
5118
- let newX0 = xScale(node.x0Original);
5276
+ const newX0 = xScale(node.x0Original);
5119
5277
  let newX1 = xScale(node.x1Original);
5120
5278
  // Ensure proper scaling even for very small segments
5121
5279
  // The clicked node's extent should always map to full circle
@@ -5216,7 +5374,7 @@ const SunburstChart = ({ data, width = 500, height = 500, title = 'Sunburst Char
5216
5374
  if (focusedNodeRef.current) {
5217
5375
  return;
5218
5376
  }
5219
- const hoveredElement = this;
5377
+ const hoveredElement = event.currentTarget;
5220
5378
  // Show tooltip for all nodes
5221
5379
  tooltip.transition().duration(200).style('opacity', 1);
5222
5380
  const value = d.value || 0;
@@ -6193,6 +6351,7 @@ exports.Navbar = Navbar;
6193
6351
  exports.NumberStepper = NumberStepper;
6194
6352
  exports.PieChart = PieChart;
6195
6353
  exports.QuantifiableHabitsChart = QuantifiableHabitsChart;
6354
+ exports.RecurrencePicker = RecurrencePicker;
6196
6355
  exports.SearchBar = SearchBar;
6197
6356
  exports.SearchableDropdown = SearchableDropdown;
6198
6357
  exports.SelectInput = SelectInput;