@fluencypassdevs/cycle 1.15.0 → 1.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-YINJ5YZ5.js → chunk-2NMEKWO5.js} +2 -2
- package/dist/{chunk-YINJ5YZ5.js.map → chunk-2NMEKWO5.js.map} +1 -1
- package/dist/{chunk-5I4PGGLN.js → chunk-3TSOMZJO.js} +4 -4
- package/dist/{chunk-5I4PGGLN.js.map → chunk-3TSOMZJO.js.map} +1 -1
- package/dist/{chunk-L32AMI4K.js → chunk-3VAYZAEF.js} +8 -8
- package/dist/{chunk-L32AMI4K.js.map → chunk-3VAYZAEF.js.map} +1 -1
- package/dist/{chunk-EF6FQT4Y.js → chunk-46SWH3RS.js} +4 -4
- package/dist/{chunk-EF6FQT4Y.js.map → chunk-46SWH3RS.js.map} +1 -1
- package/dist/{chunk-YJ4U7ISM.js → chunk-5Z3ZM7PS.js} +4 -4
- package/dist/{chunk-YJ4U7ISM.js.map → chunk-5Z3ZM7PS.js.map} +1 -1
- package/dist/{chunk-5BNTQSCS.js → chunk-6ANVMIR5.js} +4 -4
- package/dist/{chunk-5BNTQSCS.js.map → chunk-6ANVMIR5.js.map} +1 -1
- package/dist/{chunk-QZVQPUVT.js → chunk-6RHG4VOA.js} +4 -4
- package/dist/{chunk-QZVQPUVT.js.map → chunk-6RHG4VOA.js.map} +1 -1
- package/dist/{chunk-JMNMW54C.js → chunk-7AACZB3Q.js} +4 -4
- package/dist/{chunk-JMNMW54C.js.map → chunk-7AACZB3Q.js.map} +1 -1
- package/dist/{chunk-JGUDRAWA.js → chunk-AIBZJWUG.js} +8 -8
- package/dist/{chunk-JGUDRAWA.js.map → chunk-AIBZJWUG.js.map} +1 -1
- package/dist/{chunk-MTKKVYNS.js → chunk-AUCSNGST.js} +4 -4
- package/dist/{chunk-MTKKVYNS.js.map → chunk-AUCSNGST.js.map} +1 -1
- package/dist/{chunk-SZUWVHP4.js → chunk-C2P3ZSEY.js} +4 -4
- package/dist/{chunk-SZUWVHP4.js.map → chunk-C2P3ZSEY.js.map} +1 -1
- package/dist/{chunk-NOMLQHZS.js → chunk-C5JGLWV6.js} +4 -4
- package/dist/{chunk-NOMLQHZS.js.map → chunk-C5JGLWV6.js.map} +1 -1
- package/dist/{chunk-HZJRM5EK.js → chunk-C6YZNBOO.js} +5 -5
- package/dist/{chunk-HZJRM5EK.js.map → chunk-C6YZNBOO.js.map} +1 -1
- package/dist/{chunk-3EFI7PYC.js → chunk-CBBCTX3A.js} +5 -5
- package/dist/{chunk-3EFI7PYC.js.map → chunk-CBBCTX3A.js.map} +1 -1
- package/dist/{chunk-7NFHHOAE.js → chunk-CMOTOQK7.js} +4 -4
- package/dist/{chunk-7NFHHOAE.js.map → chunk-CMOTOQK7.js.map} +1 -1
- package/dist/{chunk-UJ6OER6O.js → chunk-DO4M3OVV.js} +6 -6
- package/dist/{chunk-UJ6OER6O.js.map → chunk-DO4M3OVV.js.map} +1 -1
- package/dist/{chunk-DCNZ2DRR.js → chunk-E3E64CT4.js} +6 -6
- package/dist/{chunk-DCNZ2DRR.js.map → chunk-E3E64CT4.js.map} +1 -1
- package/dist/{chunk-MSLQRGSP.js → chunk-E6WZOLWX.js} +4 -4
- package/dist/{chunk-MSLQRGSP.js.map → chunk-E6WZOLWX.js.map} +1 -1
- package/dist/{chunk-C6BQAAHX.js → chunk-EFT7BHN7.js} +3 -3
- package/dist/{chunk-C6BQAAHX.js.map → chunk-EFT7BHN7.js.map} +1 -1
- package/dist/{chunk-CIM6KJH5.js → chunk-EMX27A3U.js} +4 -4
- package/dist/{chunk-CIM6KJH5.js.map → chunk-EMX27A3U.js.map} +1 -1
- package/dist/{chunk-ELZCZ6ZH.js → chunk-EZVWNHDF.js} +5 -5
- package/dist/{chunk-ELZCZ6ZH.js.map → chunk-EZVWNHDF.js.map} +1 -1
- package/dist/{chunk-XHKFKLHD.js → chunk-FTR4NEFA.js} +4 -4
- package/dist/{chunk-XHKFKLHD.js.map → chunk-FTR4NEFA.js.map} +1 -1
- package/dist/{chunk-6JH4YWWX.js → chunk-GR65GV2N.js} +4 -4
- package/dist/{chunk-6JH4YWWX.js.map → chunk-GR65GV2N.js.map} +1 -1
- package/dist/{chunk-I5A3CME4.js → chunk-H6VG367Y.js} +4 -4
- package/dist/{chunk-I5A3CME4.js.map → chunk-H6VG367Y.js.map} +1 -1
- package/dist/{chunk-A3Z5GGAI.js → chunk-HBFS7W6V.js} +4 -4
- package/dist/{chunk-A3Z5GGAI.js.map → chunk-HBFS7W6V.js.map} +1 -1
- package/dist/{chunk-5NKTYXWQ.js → chunk-HCSVANPX.js} +5 -5
- package/dist/{chunk-5NKTYXWQ.js.map → chunk-HCSVANPX.js.map} +1 -1
- package/dist/{chunk-QANROH2K.js → chunk-HIAYFCBX.js} +4 -4
- package/dist/{chunk-QANROH2K.js.map → chunk-HIAYFCBX.js.map} +1 -1
- package/dist/{chunk-5HPZCREI.js → chunk-HXFGULDU.js} +4 -4
- package/dist/{chunk-5HPZCREI.js.map → chunk-HXFGULDU.js.map} +1 -1
- package/dist/{chunk-726XFHED.js → chunk-HZOLDTOT.js} +4 -4
- package/dist/{chunk-726XFHED.js.map → chunk-HZOLDTOT.js.map} +1 -1
- package/dist/{chunk-74WKJRW7.js → chunk-I4DM7SVV.js} +4 -4
- package/dist/{chunk-74WKJRW7.js.map → chunk-I4DM7SVV.js.map} +1 -1
- package/dist/{chunk-V7M2NHUO.js → chunk-IGFCIAF3.js} +3 -3
- package/dist/{chunk-V7M2NHUO.js.map → chunk-IGFCIAF3.js.map} +1 -1
- package/dist/{chunk-NYJMA2T7.js → chunk-ILYZQBBN.js} +4 -4
- package/dist/{chunk-NYJMA2T7.js.map → chunk-ILYZQBBN.js.map} +1 -1
- package/dist/{chunk-X4IBONFB.js → chunk-J3DGYZGK.js} +4 -4
- package/dist/{chunk-X4IBONFB.js.map → chunk-J3DGYZGK.js.map} +1 -1
- package/dist/{chunk-6OYSTCGP.js → chunk-JDGM46MB.js} +4 -4
- package/dist/{chunk-6OYSTCGP.js.map → chunk-JDGM46MB.js.map} +1 -1
- package/dist/{chunk-66CU7J2I.js → chunk-JDPJQSZV.js} +4 -4
- package/dist/{chunk-66CU7J2I.js.map → chunk-JDPJQSZV.js.map} +1 -1
- package/dist/{chunk-CWMXYPWK.js → chunk-JGZGZIGR.js} +4 -4
- package/dist/{chunk-CWMXYPWK.js.map → chunk-JGZGZIGR.js.map} +1 -1
- package/dist/{chunk-JRJBKPXW.js → chunk-JUVL7GN2.js} +4 -4
- package/dist/{chunk-JRJBKPXW.js.map → chunk-JUVL7GN2.js.map} +1 -1
- package/dist/{chunk-VXWMC2NK.js → chunk-K2XIXOMO.js} +4 -4
- package/dist/{chunk-VXWMC2NK.js.map → chunk-K2XIXOMO.js.map} +1 -1
- package/dist/{chunk-2MXR6RRJ.js → chunk-KCEFPJZT.js} +4 -4
- package/dist/{chunk-2MXR6RRJ.js.map → chunk-KCEFPJZT.js.map} +1 -1
- package/dist/{chunk-L2DJS6PG.js → chunk-KRENXLKC.js} +6 -6
- package/dist/{chunk-L2DJS6PG.js.map → chunk-KRENXLKC.js.map} +1 -1
- package/dist/{chunk-2EKU7RP4.js → chunk-KSALAAWD.js} +4 -4
- package/dist/{chunk-2EKU7RP4.js.map → chunk-KSALAAWD.js.map} +1 -1
- package/dist/{chunk-JJETOZMI.js → chunk-LBMPZDD5.js} +4 -4
- package/dist/{chunk-JJETOZMI.js.map → chunk-LBMPZDD5.js.map} +1 -1
- package/dist/{chunk-W4GSXVJ2.js → chunk-LC55JPI4.js} +4 -4
- package/dist/{chunk-W4GSXVJ2.js.map → chunk-LC55JPI4.js.map} +1 -1
- package/dist/{chunk-CG7NXMBC.js → chunk-M3U2TKWS.js} +8 -8
- package/dist/{chunk-CG7NXMBC.js.map → chunk-M3U2TKWS.js.map} +1 -1
- package/dist/{chunk-UEJLA7Q6.js → chunk-M56K3ZKY.js} +4 -4
- package/dist/{chunk-UEJLA7Q6.js.map → chunk-M56K3ZKY.js.map} +1 -1
- package/dist/{chunk-D4UH2HJQ.js → chunk-MJKZELI3.js} +7 -7
- package/dist/{chunk-D4UH2HJQ.js.map → chunk-MJKZELI3.js.map} +1 -1
- package/dist/{chunk-5XNYJECW.js → chunk-NE5CT5LH.js} +5 -5
- package/dist/{chunk-5XNYJECW.js.map → chunk-NE5CT5LH.js.map} +1 -1
- package/dist/{chunk-XQUQDZVA.js → chunk-OHRYR7PN.js} +3 -2
- package/dist/chunk-OHRYR7PN.js.map +1 -0
- package/dist/{chunk-NVA4ZJOS.js → chunk-QM54AVC7.js} +4 -4
- package/dist/{chunk-NVA4ZJOS.js.map → chunk-QM54AVC7.js.map} +1 -1
- package/dist/{chunk-TYCPXAXF.js → chunk-QTH4LSO6.js} +3 -2
- package/dist/chunk-QTH4LSO6.js.map +1 -0
- package/dist/{chunk-ZTANTDKS.js → chunk-RXCQLSWL.js} +4 -4
- package/dist/{chunk-ZTANTDKS.js.map → chunk-RXCQLSWL.js.map} +1 -1
- package/dist/{chunk-IGMII4BK.js → chunk-SCZXIVL5.js} +4 -4
- package/dist/{chunk-IGMII4BK.js.map → chunk-SCZXIVL5.js.map} +1 -1
- package/dist/{chunk-NW56QDQM.js → chunk-SDPIL7HA.js} +3 -2
- package/dist/chunk-SDPIL7HA.js.map +1 -0
- package/dist/{chunk-EACBYVLK.js → chunk-SIEPZ5LD.js} +4 -4
- package/dist/{chunk-EACBYVLK.js.map → chunk-SIEPZ5LD.js.map} +1 -1
- package/dist/{chunk-V3CBOIGK.js → chunk-SXCNJQ7S.js} +6 -6
- package/dist/{chunk-V3CBOIGK.js.map → chunk-SXCNJQ7S.js.map} +1 -1
- package/dist/{chunk-7ZXAU2CD.js → chunk-T5AHJXEY.js} +5 -5
- package/dist/{chunk-7ZXAU2CD.js.map → chunk-T5AHJXEY.js.map} +1 -1
- package/dist/{chunk-K2NUBNSA.js → chunk-T7EIAVSF.js} +3 -2
- package/dist/chunk-T7EIAVSF.js.map +1 -0
- package/dist/{chunk-F2Q3E2ZM.js → chunk-TBLO2A4C.js} +4 -4
- package/dist/{chunk-F2Q3E2ZM.js.map → chunk-TBLO2A4C.js.map} +1 -1
- package/dist/{chunk-HDCU6QSG.js → chunk-U27GHP5Z.js} +4 -4
- package/dist/{chunk-HDCU6QSG.js.map → chunk-U27GHP5Z.js.map} +1 -1
- package/dist/{chunk-VYHRNO77.js → chunk-U2SCIVKI.js} +4 -4
- package/dist/{chunk-VYHRNO77.js.map → chunk-U2SCIVKI.js.map} +1 -1
- package/dist/{chunk-AL2ALTBH.js → chunk-WL6J5ZVH.js} +4 -4
- package/dist/{chunk-AL2ALTBH.js.map → chunk-WL6J5ZVH.js.map} +1 -1
- package/dist/{chunk-5LZHXNBV.js → chunk-WMOGNJWP.js} +3 -3
- package/dist/{chunk-5LZHXNBV.js.map → chunk-WMOGNJWP.js.map} +1 -1
- package/dist/{chunk-TPRZMMT6.js → chunk-WUK6APAX.js} +6 -6
- package/dist/{chunk-TPRZMMT6.js.map → chunk-WUK6APAX.js.map} +1 -1
- package/dist/{chunk-NZXP7BAH.js → chunk-XDJ2E6KQ.js} +4 -4
- package/dist/{chunk-NZXP7BAH.js.map → chunk-XDJ2E6KQ.js.map} +1 -1
- package/dist/{chunk-F2XA2Z75.js → chunk-XMZVSCCY.js} +7 -7
- package/dist/{chunk-F2XA2Z75.js.map → chunk-XMZVSCCY.js.map} +1 -1
- package/dist/{chunk-7LH7PSQS.js → chunk-XXTQV27H.js} +6 -6
- package/dist/{chunk-7LH7PSQS.js.map → chunk-XXTQV27H.js.map} +1 -1
- package/dist/{chunk-3LXU5C35.js → chunk-Y33BGBHR.js} +4 -4
- package/dist/{chunk-3LXU5C35.js.map → chunk-Y33BGBHR.js.map} +1 -1
- package/dist/{chunk-JPEDYOV7.js → chunk-YW7VSQJE.js} +4 -4
- package/dist/{chunk-JPEDYOV7.js.map → chunk-YW7VSQJE.js.map} +1 -1
- package/dist/{chunk-PY2BIZNB.js → chunk-ZJRXBOM2.js} +4 -4
- package/dist/{chunk-PY2BIZNB.js.map → chunk-ZJRXBOM2.js.map} +1 -1
- package/dist/composites/chat-thread.js +14 -13
- package/dist/hooks/use-intersection.js +3 -2
- package/dist/hooks/use-reduced-motion.js +3 -2
- package/dist/icons/index.js +4 -3
- package/dist/icons/lucide.js +1 -0
- package/dist/index.js +56 -55
- package/dist/layout/container.js +4 -3
- package/dist/layout/grid.js +4 -3
- package/dist/layout/stack.js +4 -3
- package/dist/lib/utils.js +3 -2
- package/dist/logos/fluencypass.js +4 -3
- package/dist/logos/product.js +5 -4
- package/dist/marketing/effects/card-dark-glow.js +4 -3
- package/dist/marketing/effects/circle-glow.js +4 -3
- package/dist/marketing/effects/index.js +6 -5
- package/dist/marketing/effects/marquee.js +4 -3
- package/dist/marketing/layout/index.js +4 -3
- package/dist/marketing/layout/section.js +4 -3
- package/dist/marketing/motion/animated-number.js +6 -5
- package/dist/marketing/motion/index.js +9 -8
- package/dist/marketing/motion/reveal-on-scroll.js +6 -5
- package/dist/marketing/motion/smooth-anchor.js +3 -2
- package/dist/marketing/motion/stagger-reveal.js +6 -5
- package/dist/marketing/typography/hero-heading.js +4 -3
- package/dist/marketing/typography/index.js +7 -6
- package/dist/marketing/typography/section-eyebrow.js +4 -3
- package/dist/marketing/typography/section-heading.js +4 -3
- package/dist/marketing/typography/section-subtitle.js +4 -3
- package/dist/ui/accordion.js +4 -3
- package/dist/ui/alert-dialog.js +5 -4
- package/dist/ui/alert.js +6 -5
- package/dist/ui/audio-player.js +7 -6
- package/dist/ui/avatar.js +4 -3
- package/dist/ui/badge.js +4 -3
- package/dist/ui/button.js +4 -3
- package/dist/ui/chat-bubble.js +5 -4
- package/dist/ui/chat-message.js +10 -9
- package/dist/ui/chat-panel.js +9 -8
- package/dist/ui/checkbox.js +4 -3
- package/dist/ui/circular-progress.js +4 -3
- package/dist/ui/dialog.js +5 -4
- package/dist/ui/drawer.js +4 -3
- package/dist/ui/dropdown-menu.js +4 -3
- package/dist/ui/editor.js +8 -7
- package/dist/ui/empty.js +4 -3
- package/dist/ui/fab.js +4 -3
- package/dist/ui/file-card.js +4 -3
- package/dist/ui/input.js +4 -3
- package/dist/ui/label.js +4 -3
- package/dist/ui/like-dislike.js +8 -7
- package/dist/ui/live-waiting.js +7 -6
- package/dist/ui/message-bar.js +4 -3
- package/dist/ui/message-rating.js +4 -3
- package/dist/ui/player-i18n.js +3 -2
- package/dist/ui/popover.js +4 -3
- package/dist/ui/progress-dot.js +4 -3
- package/dist/ui/progress-stage.js +4 -3
- package/dist/ui/progress.js +4 -3
- package/dist/ui/radio-group.js +4 -3
- package/dist/ui/resizable.js +4 -3
- package/dist/ui/scroll-area.js +4 -3
- package/dist/ui/select.js +4 -3
- package/dist/ui/sheet.js +4 -3
- package/dist/ui/skeleton.js +4 -3
- package/dist/ui/slider.js +4 -3
- package/dist/ui/sonner.js +6 -5
- package/dist/ui/spinner.js +6 -5
- package/dist/ui/switch.js +4 -3
- package/dist/ui/tabs.js +4 -3
- package/dist/ui/textarea.js +4 -3
- package/dist/ui/toggle.js +4 -3
- package/dist/ui/tooltip.js +4 -3
- package/dist/ui/video-player.js +7 -6
- package/package.json +2 -2
- package/dist/chunk-K2NUBNSA.js.map +0 -1
- package/dist/chunk-NW56QDQM.js.map +0 -1
- package/dist/chunk-TYCPXAXF.js.map +0 -1
- package/dist/chunk-XQUQDZVA.js.map +0 -1
package/dist/ui/popover.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from '../chunk-46SWH3RS.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=popover.js.map
|
|
5
6
|
//# sourceMappingURL=popover.js.map
|
package/dist/ui/progress-dot.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { ProgressDot, dotVariants, progressDotVariants } from '../chunk-RXCQLSWL.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=progress-dot.js.map
|
|
5
6
|
//# sourceMappingURL=progress-dot.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { ProgressStage } from '../chunk-ILYZQBBN.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=progress-stage.js.map
|
|
5
6
|
//# sourceMappingURL=progress-stage.js.map
|
package/dist/ui/progress.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Progress, indicatorVariants, progressVariants } from '../chunk-AUCSNGST.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=progress.js.map
|
|
5
6
|
//# sourceMappingURL=progress.js.map
|
package/dist/ui/radio-group.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { RadioGroup, RadioGroupItem, radioVariants } from '../chunk-J3DGYZGK.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=radio-group.js.map
|
|
5
6
|
//# sourceMappingURL=radio-group.js.map
|
package/dist/ui/resizable.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { ResizableHandle, ResizablePanel, ResizablePanelGroup } from '../chunk-ZJRXBOM2.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=resizable.js.map
|
|
5
6
|
//# sourceMappingURL=resizable.js.map
|
package/dist/ui/scroll-area.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { ScrollArea, ScrollBar } from '../chunk-Y33BGBHR.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=scroll-area.js.map
|
|
5
6
|
//# sourceMappingURL=scroll-area.js.map
|
package/dist/ui/select.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from '../chunk-C2P3ZSEY.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=select.js.map
|
|
5
6
|
//# sourceMappingURL=select.js.map
|
package/dist/ui/sheet.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from '../chunk-6RHG4VOA.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=sheet.js.map
|
|
5
6
|
//# sourceMappingURL=sheet.js.map
|
package/dist/ui/skeleton.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Skeleton } from '../chunk-KSALAAWD.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=skeleton.js.map
|
|
5
6
|
//# sourceMappingURL=skeleton.js.map
|
package/dist/ui/slider.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Slider, sliderVariants } from '../chunk-WL6J5ZVH.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=slider.js.map
|
|
5
6
|
//# sourceMappingURL=slider.js.map
|
package/dist/ui/sonner.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Toaster, cycleToast } from '../chunk-EZVWNHDF.js';
|
|
3
|
+
import '../chunk-YW7VSQJE.js';
|
|
4
|
+
import '../chunk-IGFCIAF3.js';
|
|
5
|
+
import '../chunk-QTH4LSO6.js';
|
|
6
|
+
import '../chunk-2NMEKWO5.js';
|
|
6
7
|
//# sourceMappingURL=sonner.js.map
|
|
7
8
|
//# sourceMappingURL=sonner.js.map
|
package/dist/ui/spinner.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Spinner } from '../chunk-NE5CT5LH.js';
|
|
3
|
+
import '../chunk-YW7VSQJE.js';
|
|
4
|
+
import '../chunk-IGFCIAF3.js';
|
|
5
|
+
import '../chunk-QTH4LSO6.js';
|
|
6
|
+
import '../chunk-2NMEKWO5.js';
|
|
6
7
|
//# sourceMappingURL=spinner.js.map
|
|
7
8
|
//# sourceMappingURL=spinner.js.map
|
package/dist/ui/switch.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Switch, switchVariants } from '../chunk-QM54AVC7.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=switch.js.map
|
|
5
6
|
//# sourceMappingURL=switch.js.map
|
package/dist/ui/tabs.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants } from '../chunk-KCEFPJZT.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=tabs.js.map
|
|
5
6
|
//# sourceMappingURL=tabs.js.map
|
package/dist/ui/textarea.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Textarea } from '../chunk-LBMPZDD5.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=textarea.js.map
|
|
5
6
|
//# sourceMappingURL=textarea.js.map
|
package/dist/ui/toggle.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Toggle, toggleVariants } from '../chunk-EMX27A3U.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=toggle.js.map
|
|
5
6
|
//# sourceMappingURL=toggle.js.map
|
package/dist/ui/tooltip.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../chunk-SCZXIVL5.js';
|
|
3
|
+
import '../chunk-QTH4LSO6.js';
|
|
4
|
+
import '../chunk-2NMEKWO5.js';
|
|
4
5
|
//# sourceMappingURL=tooltip.js.map
|
|
5
6
|
//# sourceMappingURL=tooltip.js.map
|
package/dist/ui/video-player.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
1
|
+
"use client";
|
|
2
|
+
export { VideoPlayer } from '../chunk-SXCNJQ7S.js';
|
|
3
|
+
import '../chunk-EFT7BHN7.js';
|
|
4
|
+
import '../chunk-YW7VSQJE.js';
|
|
5
|
+
import '../chunk-IGFCIAF3.js';
|
|
6
|
+
import '../chunk-QTH4LSO6.js';
|
|
7
|
+
import '../chunk-2NMEKWO5.js';
|
|
7
8
|
//# sourceMappingURL=video-player.js.map
|
|
8
9
|
//# sourceMappingURL=video-player.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluencypassdevs/cycle",
|
|
3
|
-
"version": "1.15.
|
|
3
|
+
"version": "1.15.1",
|
|
4
4
|
"description": "Cycle Design System — UI component library by Fluencypass",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"scripts": {
|
|
100
100
|
"dev": "next dev",
|
|
101
101
|
"build": "next build",
|
|
102
|
-
"build:lib": "tsup && mkdir -p dist/styles && cp src/styles/tokens.css dist/styles/tokens.css",
|
|
102
|
+
"build:lib": "tsup && mkdir -p dist/styles && cp src/styles/tokens.css dist/styles/tokens.css && node scripts/add-use-client-prefix.mjs",
|
|
103
103
|
"start": "next start",
|
|
104
104
|
"lint": "eslint",
|
|
105
105
|
"registry:build": "tsx scripts/build-registry.ts",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/use-reduced-motion.ts"],"names":[],"mappings":";;AAYO,SAAS,gBAAA,GAA4B;AAC1C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA;AAE5C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,UAAA,CAAW,kCAAkC,CAAA;AAClE,IAAA,UAAA,CAAW,MAAM,OAAO,CAAA;AAExB,IAAA,MAAM,OAAA,GAAU,CAAC,KAAA,KAA+B,UAAA,CAAW,MAAM,OAAO,CAAA;AACxE,IAAA,KAAA,CAAM,gBAAA,CAAiB,UAAU,OAAO,CAAA;AACxC,IAAA,OAAO,MAAM,KAAA,CAAM,mBAAA,CAAoB,QAAA,EAAU,OAAO,CAAA;AAAA,EAC1D,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,OAAA;AACT","file":"chunk-K2NUBNSA.js","sourcesContent":["\"use client\"\n\nimport { useEffect, useState } from \"react\"\n\n/**\n * Returns `true` quando o usuario habilitou \"prefers-reduced-motion\" no SO.\n * Componentes do `marketing/motion/*` consultam esse hook pra desligar animacoes\n * (resolver para o estado final direto) — requisito WCAG 2.3.3.\n *\n * SSR-safe: comeca em `false` no server e atualiza no client apos mount.\n * Reage a mudancas dinamicas (usuario toggla a preferencia com a aba aberta).\n */\nexport function useReducedMotion(): boolean {\n const [reduced, setReduced] = useState(false)\n\n useEffect(() => {\n const media = window.matchMedia(\"(prefers-reduced-motion: reduce)\")\n setReduced(media.matches)\n\n const handler = (event: MediaQueryListEvent) => setReduced(event.matches)\n media.addEventListener(\"change\", handler)\n return () => media.removeEventListener(\"change\", handler)\n }, [])\n\n return reduced\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/marketing/motion/smooth-anchor.tsx"],"names":[],"mappings":"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","file":"chunk-NW56QDQM.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nexport interface SmoothAnchorProps {\n /** Offset em px pra compensar header sticky. Default `96`. */\n headerOffset?: number\n /** Duracao do scroll em ms. Default `900`. */\n duration?: number\n}\n\n/**\n * Intercepta cliques em links de hash (`<a href=\"#algo\">`) e faz scroll suave\n * com easing `easeInOutCubic` em vez do `scroll-behavior: smooth` nativo\n * (que tem duracao curta e easing fixo).\n *\n * Renderiza `null` (so registra listener global). Monte UMA VEZ por app,\n * tipicamente no `<RootLayout>` ou na pagina raiz da landing.\n *\n * Comportamento:\n * - Ignora clicks com modificadores (cmd/ctrl/middle-button).\n * - Atualiza URL via `history.replaceState` sem disparar scroll nativo.\n * - Adiciona classe `anchor-target-pulse` no destino apos chegar (animacao\n * visual opcional, definida em `globals.css`).\n * - Respeita `prefers-reduced-motion` (scroll instantaneo, sem easing).\n *\n * @example\n * // app/layout.tsx\n * <body>\n * <SmoothAnchor headerOffset={64} />\n * {children}\n * </body>\n */\nfunction SmoothAnchor({ headerOffset = 96, duration = 900 }: SmoothAnchorProps) {\n React.useEffect(() => {\n if (typeof window === \"undefined\") return\n\n // Se a pagina abre ja com hash, pulsa o destino apos o scroll inicial.\n if (window.location.hash) {\n const id = window.location.hash.slice(1)\n const el = document.getElementById(id)\n if (el) {\n requestAnimationFrame(() => el.classList.add(\"anchor-target-pulse\"))\n }\n }\n\n function onClick(e: MouseEvent) {\n if (e.defaultPrevented || e.button !== 0 || e.metaKey || e.ctrlKey) return\n const target = e.target as HTMLElement | null\n const anchor = target?.closest('a[href^=\"#\"]') as HTMLAnchorElement | null\n if (!anchor) return\n const href = anchor.getAttribute(\"href\")\n if (!href || href === \"#\") return\n const id = href.slice(1)\n const el = document.getElementById(id)\n if (!el) return\n\n e.preventDefault()\n const prefersReduced = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n ).matches\n\n const rect = el.getBoundingClientRect()\n const targetY = window.scrollY + rect.top - headerOffset\n\n if (prefersReduced) {\n window.scrollTo(0, targetY)\n } else {\n smoothScrollTo(targetY, duration)\n }\n\n history.replaceState(null, \"\", href)\n // Reativa pulse mesmo se a URL ja for a mesma\n el.classList.remove(\"anchor-target-pulse\")\n void el.offsetWidth\n el.classList.add(\"anchor-target-pulse\")\n }\n\n document.addEventListener(\"click\", onClick)\n return () => document.removeEventListener(\"click\", onClick)\n }, [headerOffset, duration])\n\n return null\n}\n\nfunction smoothScrollTo(targetY: number, duration: number) {\n const startY = window.scrollY\n const distance = targetY - startY\n if (Math.abs(distance) < 2) return\n const startTime = performance.now()\n\n function step(now: number) {\n const elapsed = now - startTime\n const t = Math.min(elapsed / duration, 1)\n const eased = easeInOutCubic(t)\n window.scrollTo(0, startY + distance * eased)\n if (t < 1) requestAnimationFrame(step)\n }\n\n requestAnimationFrame(step)\n}\n\nfunction easeInOutCubic(t: number): number {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2\n}\n\nexport { SmoothAnchor }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts"],"names":[],"mappings":";;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B","file":"chunk-TYCPXAXF.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/use-intersection.ts"],"names":[],"mappings":";;AAiCO,SAAS,eAAA,CACd,OAAA,GAAkC,EAAC,EACqB;AACxD,EAAA,MAAM;AAAA,IACJ,SAAA,GAAY,IAAA;AAAA,IACZ,UAAA,GAAa,kBAAA;AAAA,IACb,IAAA,GAAO,IAAA;AAAA,IACP,IAAA,GAAO,IAAA;AAAA,IACP,YAAA,GAAe;AAAA,GACjB,GAAI,OAAA;AAEJ,EAAA,MAAM,GAAA,GAAM,OAAiB,IAAI,CAAA;AACjC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,YAAY,CAAA;AAEvD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,YAAA,EAAc;AAClB,IAAA,MAAM,KAAK,GAAA,CAAI,OAAA;AACf,IAAA,IAAI,CAAC,EAAA,EAAI;AAET,IAAA,MAAM,WAAW,IAAI,oBAAA;AAAA,MACnB,CAAC,CAAC,KAAK,CAAA,KAAM;AACX,QAAA,IAAI,+BAAO,cAAA,EAAgB;AACzB,UAAA,YAAA,CAAa,IAAI,CAAA;AACjB,UAAA,IAAI,IAAA,WAAe,UAAA,EAAW;AAAA,QAChC,CAAA,MAAA,IAAW,CAAC,IAAA,EAAM;AAChB,UAAA,YAAA,CAAa,KAAK,CAAA;AAAA,QACpB;AAAA,MACF,CAAA;AAAA,MACA,EAAE,SAAA,EAAW,UAAA,EAAY,IAAA;AAAK,KAChC;AAEA,IAAA,QAAA,CAAS,QAAQ,EAAE,CAAA;AACnB,IAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,EACnC,GAAG,CAAC,SAAA,EAAW,YAAY,IAAA,EAAM,IAAA,EAAM,YAAY,CAAC,CAAA;AAEpD,EAAA,OAAO,EAAE,KAAK,SAAA,EAAU;AAC1B","file":"chunk-XQUQDZVA.js","sourcesContent":["\"use client\"\n\nimport { useEffect, useRef, useState } from \"react\"\n\nexport interface UseIntersectionOptions {\n /** Quanto do elemento precisa estar visivel pra disparar (0-1). Default `0.15`. */\n threshold?: number\n /** Margin do viewport (CSS shorthand). Default `\"0px 0px -10% 0px\"`. */\n rootMargin?: string\n /** Container alternativo (default: viewport). */\n root?: Element | null\n /** Quando `true`, desliga o observer apos a primeira intersecao. Default `true`. */\n once?: boolean\n /**\n * Quando `true`, comeca como visivel (sem aguardar observer). Util quando\n * `useReducedMotion()` e true e queremos pular a animacao de entrada.\n */\n startVisible?: boolean\n}\n\n/**\n * Observa um elemento e retorna `{ ref, isVisible }`. Reusado por\n * `RevealOnScroll`, `StaggerReveal` e `AnimatedNumber`.\n *\n * Comportamento:\n * - SSR-safe (so monta IntersectionObserver no client).\n * - `once=true` (default) desconecta o observer apos a primeira intersecao.\n * - `startVisible=true` ja entrega `isVisible: true` no primeiro render.\n *\n * @example\n * const { ref, isVisible } = useIntersection({ threshold: 0.4 })\n * return <div ref={ref}>{isVisible ? \"visible\" : \"hidden\"}</div>\n */\nexport function useIntersection<T extends HTMLElement = HTMLDivElement>(\n options: UseIntersectionOptions = {}\n): { ref: React.RefObject<T | null>; isVisible: boolean } {\n const {\n threshold = 0.15,\n rootMargin = \"0px 0px -10% 0px\",\n root = null,\n once = true,\n startVisible = false,\n } = options\n\n const ref = useRef<T | null>(null)\n const [isVisible, setIsVisible] = useState(startVisible)\n\n useEffect(() => {\n if (startVisible) return\n const el = ref.current\n if (!el) return\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry?.isIntersecting) {\n setIsVisible(true)\n if (once) observer.disconnect()\n } else if (!once) {\n setIsVisible(false)\n }\n },\n { threshold, rootMargin, root }\n )\n\n observer.observe(el)\n return () => observer.disconnect()\n }, [threshold, rootMargin, root, once, startVisible])\n\n return { ref, isVisible }\n}\n"]}
|