@mova-ui/react 0.4.5 → 0.4.7
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/catalog/components/dither-charts/DitherChartsGrid.js +3 -3
- package/dist/catalog/components/simple-comp/DitherChartsGrid.js +3 -3
- package/dist/catalog/data/ditherCharts.js +3 -3
- package/dist/catalog/data/formElements.js +2 -2
- package/dist/catalog/data/installCommand.js +2 -2
- package/dist/catalog/data/metrics.js +2 -2
- package/dist/catalog/data/supportedRegistryIds.js +1 -1
- package/dist/catalog/data/textAnimations.js +2 -2
- package/dist/catalog/data/toggles.js +2 -2
- package/dist/catalog/data/transitions.js +2 -2
- package/dist/catalog-chunks/{chunk-VMGI6CMO.js → chunk-6NP66VN5.js} +1 -1
- package/dist/catalog-chunks/{chunk-OWYADZUR.js → chunk-WKFJSUM3.js} +1 -1
- package/dist/catalog-chunks/{chunk-FXF53HPE.js → chunk-YPZZOKH4.js} +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +1278 -689
- package/dist/ui/cards/balance-bar-chart-card.d.ts +25 -0
- package/dist/ui/cards/calendar-day-card.d.ts +26 -0
- package/dist/ui/cards/day-trading-order-ticket.d.ts +22 -0
- package/dist/ui/cards/imessage-chat.d.ts +19 -0
- package/dist/ui/cards/liquid-glass-sheet.d.ts +17 -0
- package/dist/ui/cards/voice-assistant-card.d.ts +19 -0
- package/package.json +1 -1
- package/registry/1.json +1 -1
- package/registry/10.json +1 -1
- package/registry/11.json +1 -1
- package/registry/12.json +1 -1
- package/registry/13.json +1 -1
- package/registry/14.json +1 -1
- package/registry/15.json +1 -1
- package/registry/16.json +1 -1
- package/registry/17.json +1 -1
- package/registry/18.json +1 -1
- package/registry/19.json +1 -1
- package/registry/2.json +1 -1
- package/registry/20.json +1 -1
- package/registry/21.json +1 -1
- package/registry/22.json +1 -1
- package/registry/23.json +1 -1
- package/registry/24.json +1 -1
- package/registry/25.json +1 -1
- package/registry/26.json +1 -1
- package/registry/27.json +1 -1
- package/registry/28.json +1 -1
- package/registry/29.json +1 -1
- package/registry/3.json +1 -1
- package/registry/30.json +1 -1
- package/registry/31.json +1 -1
- package/registry/32.json +1 -1
- package/registry/33.json +1 -1
- package/registry/34.json +1 -1
- package/registry/35.json +1 -1
- package/registry/36.json +1 -1
- package/registry/37.json +1 -1
- package/registry/4.json +1 -1
- package/registry/5.json +1 -1
- package/registry/6.json +1 -1
- package/registry/7.json +1 -1
- package/registry/8.json +1 -1
- package/registry/9.json +1 -1
- package/registry/ab-segmented-tabs.json +1 -1
- package/registry/accordion-blind.json +1 -1
- package/registry/accordion-loader.json +1 -1
- package/registry/ai-approval-card.json +1 -1
- package/registry/ai-code-block.json +1 -1
- package/registry/ai-context-meter.json +1 -1
- package/registry/ai-fine-tune-card.json +1 -1
- package/registry/ai-prompt-bar.json +1 -1
- package/registry/ai-sidebar-nav.json +1 -1
- package/registry/ai-sources.json +1 -1
- package/registry/ai-suggestions.json +1 -1
- package/registry/ai-task-list.json +1 -1
- package/registry/ai-tool-call.json +1 -1
- package/registry/analyzing-image.json +1 -1
- package/registry/animated-sidebar.json +1 -1
- package/registry/animated-tags.json +1 -1
- package/registry/app-icon-load.json +1 -1
- package/registry/apple-breathe.json +1 -1
- package/registry/apple-equalizer.json +1 -1
- package/registry/apple-icon-morph.json +1 -1
- package/registry/apple-pulse-dots.json +1 -1
- package/registry/apple-scale-pulse.json +1 -1
- package/registry/apple-sound-wave.json +1 -1
- package/registry/apple-text-reveal.json +1 -1
- package/registry/apple-unlock.json +1 -1
- package/registry/arc-tracer.json +1 -1
- package/registry/balance-bar-chart-card.json +20 -0
- package/registry/bar-cascade.json +1 -1
- package/registry/bar-sweep.json +1 -1
- package/registry/blur-text.json +1 -1
- package/registry/blur-up-char.json +1 -1
- package/registry/blur-up-word.json +1 -1
- package/registry/bobbing-dots.json +1 -1
- package/registry/bookmark-corner-peel.json +1 -1
- package/registry/bookmark-save-pill.json +1 -1
- package/registry/bookmark-toggle.json +1 -1
- package/registry/border-trail-loading.json +1 -1
- package/registry/bounce-dots.json +1 -1
- package/registry/bounce-in-char.json +1 -1
- package/registry/bouncing-bars.json +1 -1
- package/registry/bouncing-dots.json +1 -1
- package/registry/bouncing-lines.json +1 -1
- package/registry/bouncing-square.json +1 -1
- package/registry/breathe-ring.json +1 -1
- package/registry/breathing-glow.json +1 -1
- package/registry/breathing-square.json +1 -1
- package/registry/btn-1.json +1 -1
- package/registry/btn-10.json +1 -1
- package/registry/btn-11.json +1 -1
- package/registry/btn-12.json +1 -1
- package/registry/btn-13.json +1 -1
- package/registry/btn-14.json +1 -1
- package/registry/btn-15.json +1 -1
- package/registry/btn-16.json +1 -1
- package/registry/btn-17.json +1 -1
- package/registry/btn-18.json +1 -1
- package/registry/btn-19.json +1 -1
- package/registry/btn-2.json +1 -1
- package/registry/btn-20.json +1 -1
- package/registry/btn-21.json +1 -1
- package/registry/btn-22.json +1 -1
- package/registry/btn-23.json +1 -1
- package/registry/btn-24.json +1 -1
- package/registry/btn-25.json +1 -1
- package/registry/btn-26.json +1 -1
- package/registry/btn-27.json +1 -1
- package/registry/btn-28.json +1 -1
- package/registry/btn-29.json +1 -1
- package/registry/btn-3.json +1 -1
- package/registry/btn-30.json +1 -1
- package/registry/btn-31.json +1 -1
- package/registry/btn-32.json +1 -1
- package/registry/btn-33.json +1 -1
- package/registry/btn-34.json +1 -1
- package/registry/btn-35.json +1 -1
- package/registry/btn-36.json +1 -1
- package/registry/btn-37.json +1 -1
- package/registry/btn-4.json +1 -1
- package/registry/btn-5.json +1 -1
- package/registry/btn-6.json +1 -1
- package/registry/btn-7.json +1 -1
- package/registry/btn-8.json +1 -1
- package/registry/btn-9.json +1 -1
- package/registry/button-slide-arrow.json +1 -1
- package/registry/cacheable-bandwidth-cost.json +1 -1
- package/registry/calendar-day-card.json +20 -0
- package/registry/card-arc-5.json +1 -1
- package/registry/card-arc-7.json +1 -1
- package/registry/card-carousel-mono.json +1 -1
- package/registry/card-carousel.json +1 -1
- package/registry/card-cascade-stagger.json +1 -1
- package/registry/card-corner-fan.json +1 -1
- package/registry/card-cover-flow-mono.json +1 -1
- package/registry/card-cover-flow.json +1 -1
- package/registry/card-deck-cascade.json +1 -1
- package/registry/card-glance-preview.json +1 -1
- package/registry/card-hover.json +1 -1
- package/registry/card-linear-spread.json +1 -1
- package/registry/card-long-arc-5.json +1 -1
- package/registry/card-scatter-spread.json +1 -1
- package/registry/card-stack-peel.json +1 -1
- package/registry/card-stamp-arc.json +1 -1
- package/registry/card-time-machine-mono.json +1 -1
- package/registry/card-time-machine.json +1 -1
- package/registry/card-wheel-fan.json +1 -1
- package/registry/category-select.json +1 -1
- package/registry/character-stagger.json +1 -1
- package/registry/checkbox-draw.json +1 -1
- package/registry/checkmark-draw.json +1 -1
- package/registry/circle-toggle.json +1 -1
- package/registry/circuit-trace-draw.json +1 -1
- package/registry/circular-bars.json +1 -1
- package/registry/circular-create-button.json +1 -1
- package/registry/classic-spinner.json +1 -1
- package/registry/classic-toggle.json +1 -1
- package/registry/clock-spinner.json +1 -1
- package/registry/comet-spinner.json +1 -1
- package/registry/compass-needle-deflect.json +1 -1
- package/registry/concentric-pulse.json +1 -1
- package/registry/concentric-ring.json +1 -1
- package/registry/concentric-squares.json +1 -1
- package/registry/context-menu.json +1 -1
- package/registry/conveyor-loop.json +1 -1
- package/registry/credit-score-barcode-meter.json +1 -1
- package/registry/cross-spinner.json +1 -1
- package/registry/cube-flip-spring.json +1 -1
- package/registry/cursor-trail.json +1 -1
- package/registry/dash-ring.json +1 -1
- package/registry/dashed-spiral.json +1 -1
- package/registry/date-position-selector.json +1 -1
- package/registry/day-trading-order-ticket.json +19 -0
- package/registry/dia-text-reveal.json +1 -1
- package/registry/diamond-grid.json +1 -1
- package/registry/diamond-rotate-spring.json +1 -1
- package/registry/dislike-toggle.json +1 -1
- package/registry/dither-book.json +1 -1
- package/registry/domino-cascade.json +1 -1
- package/registry/dot-spinner.json +1 -1
- package/registry/dots-ring.json +1 -1
- package/registry/double-bounce-toggle.json +1 -1
- package/registry/double-ring.json +1 -1
- package/registry/download-icons.json +1 -1
- package/registry/drop-dot.json +1 -1
- package/registry/drop-in-char.json +1 -1
- package/registry/droplet-squish.json +1 -1
- package/registry/dual-arc.json +1 -1
- package/registry/dual-magnet-dipole.json +1 -1
- package/registry/dynamic-island.json +1 -1
- package/registry/elastic-bars.json +1 -1
- package/registry/elastic-square.json +1 -1
- package/registry/elastic-tag-snap.json +1 -1
- package/registry/error-shake.json +1 -1
- package/registry/expanding-cross.json +1 -1
- package/registry/expanding-icon-tabs.json +1 -1
- package/registry/face-id-scan.json +1 -1
- package/registry/fade-arc.json +1 -1
- package/registry/fade-dots.json +1 -1
- package/registry/fade-down.json +1 -1
- package/registry/fade-in-char.json +1 -1
- package/registry/fade-in-text.json +1 -1
- package/registry/fade-in-word.json +1 -1
- package/registry/fade-in.json +1 -1
- package/registry/fade-up.json +1 -1
- package/registry/file-upload-dropzone.json +1 -1
- package/registry/filter-tag-pill.json +1 -1
- package/registry/flip-square.json +1 -1
- package/registry/flip-x-char.json +1 -1
- package/registry/flip-y-char.json +1 -1
- package/registry/float-char.json +1 -1
- package/registry/float-word.json +1 -1
- package/registry/floating-diamonds.json +1 -1
- package/registry/floating-label-input.json +1 -1
- package/registry/fluid-bars.json +1 -1
- package/registry/fluid-diamond.json +1 -1
- package/registry/fluid-dot-orbit.json +1 -1
- package/registry/fluid-skeleton.json +1 -1
- package/registry/focus-blur.json +1 -1
- package/registry/form-submit-button.json +1 -1
- package/registry/french-doors-3d.json +1 -1
- package/registry/gear-tooth-step.json +1 -1
- package/registry/gears.json +1 -1
- package/registry/gelatin-wobble.json +1 -1
- package/registry/geometric-iris-shutter.json +1 -1
- package/registry/glassmorphic-card.json +1 -1
- package/registry/glow-button.json +1 -1
- package/registry/glow-text.json +1 -1
- package/registry/gooey-popover.json +1 -1
- package/registry/gradient-arc.json +1 -1
- package/registry/gradient-shimmer.json +1 -1
- package/registry/grid-dots.json +1 -1
- package/registry/haptic-ring.json +1 -1
- package/registry/heartbeat.json +1 -1
- package/registry/hex-lattice-draw.json +1 -1
- package/registry/hexagon-spinner.json +1 -1
- package/registry/hourglass.json +1 -1
- package/registry/hover-lift-char.json +1 -1
- package/registry/hover-lift-word.json +1 -1
- package/registry/hover-link-card.json +1 -1
- package/registry/hover-scale-char.json +1 -1
- package/registry/hover-scale-word.json +1 -1
- package/registry/imessage-chat.json +19 -0
- package/registry/inertia-skid-stop.json +1 -1
- package/registry/infinity-path.json +1 -1
- package/registry/input-focus-glow.json +1 -1
- package/registry/inset-action-button.json +1 -1
- package/registry/inset-button.json +1 -1
- package/registry/intersecting-rings.json +1 -1
- package/registry/ios-spinner.json +1 -1
- package/registry/kinetic-metronome-tick.json +1 -1
- package/registry/kinetic-tension-capsule.json +1 -1
- package/registry/light-dark-morph.json +1 -1
- package/registry/like-toggle.json +1 -1
- package/registry/line-spinner.json +1 -1
- package/registry/liquid-dots.json +1 -1
- package/registry/liquid-glass-sheet.json +18 -0
- package/registry/mac-terminal.json +1 -1
- package/registry/magnetic-button.json +1 -1
- package/registry/magnetic-disks.json +1 -1
- package/registry/magnetic-dots.json +1 -1
- package/registry/magnetic-slide-btn.json +1 -1
- package/registry/manifest.json +758 -643
- package/registry/matrix-grid-loader.json +1 -1
- package/registry/minimal-triangle.json +1 -1
- package/registry/modular-tile-snap.json +1 -1
- package/registry/mono-activity-blue.json +1 -1
- package/registry/mono-activity-green.json +1 -1
- package/registry/mono-activity-purple.json +1 -1
- package/registry/mono-heatmap.json +1 -1
- package/registry/mono-rounded-area.json +1 -1
- package/registry/mono-rounded-bar.json +1 -1
- package/registry/mono-rounded-bubble.json +1 -1
- package/registry/mono-rounded-bullet.json +1 -1
- package/registry/mono-rounded-candlestick.json +1 -1
- package/registry/mono-rounded-composed.json +1 -1
- package/registry/mono-rounded-donut.json +1 -1
- package/registry/mono-rounded-funnel.json +1 -1
- package/registry/mono-rounded-gauge-arc.json +1 -1
- package/registry/mono-rounded-heatmap.json +1 -1
- package/registry/mono-rounded-kpi.json +1 -1
- package/registry/mono-rounded-line.json +1 -1
- package/registry/mono-rounded-meter.json +1 -1
- package/registry/mono-rounded-polar.json +1 -1
- package/registry/mono-rounded-pyramid.json +1 -1
- package/registry/mono-rounded-radar.json +1 -1
- package/registry/mono-rounded-radial-gauge.json +1 -1
- package/registry/mono-rounded-radial-group.json +1 -1
- package/registry/mono-rounded-range.json +1 -1
- package/registry/mono-rounded-sankey.json +1 -1
- package/registry/mono-rounded-scatter.json +1 -1
- package/registry/mono-rounded-sparkline.json +1 -1
- package/registry/mono-rounded-stacked-bar.json +1 -1
- package/registry/mono-rounded-step.json +1 -1
- package/registry/mono-rounded-stream.json +1 -1
- package/registry/mono-rounded-treemap.json +1 -1
- package/registry/mono-rounded-waterfall.json +1 -1
- package/registry/mono-stock.json +1 -1
- package/registry/morph-action-pill.json +1 -1
- package/registry/morph-dot-ring.json +1 -1
- package/registry/morph-loader.json +1 -1
- package/registry/morph-toggle.json +1 -1
- package/registry/morphing-bars.json +1 -1
- package/registry/morphing-infinity.json +1 -1
- package/registry/morphing-ring.json +1 -1
- package/registry/morphing-shape.json +1 -1
- package/registry/mouse-follow.json +1 -1
- package/registry/multi-select-chips.json +1 -1
- package/registry/multi-tab-bar.json +1 -1
- package/registry/neon-sign-draw.json +1 -1
- package/registry/nested-orbital-gimbal.json +1 -1
- package/registry/network-telemetry-matrix.json +1 -1
- package/registry/newtons-cradle.json +1 -1
- package/registry/noise-decibel-level.json +1 -1
- package/registry/obsidian-liquid-wave.json +1 -1
- package/registry/offset-rings.json +1 -1
- package/registry/orbiting-circles.json +1 -1
- package/registry/orbiting-dot.json +1 -1
- package/registry/origami-envelope-unfold.json +1 -1
- package/registry/origami-shape.json +1 -1
- package/registry/otp-input.json +1 -1
- package/registry/overview-bar-scrubber-card.json +1 -1
- package/registry/page-transition.json +1 -1
- package/registry/page-turn-curl.json +1 -1
- package/registry/password-toggle.json +1 -1
- package/registry/pendulum-bubble-level.json +1 -1
- package/registry/pendulum.json +1 -1
- package/registry/perspective-flip-stage.json +1 -1
- package/registry/perspective-flip.json +1 -1
- package/registry/perspective-layout-switcher.json +1 -1
- package/registry/physics-dock.json +1 -1
- package/registry/pill-tabs.json +1 -1
- package/registry/plus-minus-toggle.json +1 -1
- package/registry/presets.json +1 -1
- package/registry/prism-block-stack.json +1 -1
- package/registry/progress-indicator-piano.json +1 -1
- package/registry/progress-indicator.json +1 -1
- package/registry/progress-stepper.json +1 -1
- package/registry/pulsating-dots.json +1 -1
- package/registry/pulse-char.json +1 -1
- package/registry/pulse-dot.json +1 -1
- package/registry/pulse-dots.json +1 -1
- package/registry/pulse-square.json +1 -1
- package/registry/pulse-word.json +1 -1
- package/registry/pulse.json +1 -1
- package/registry/pumping-heart.json +1 -1
- package/registry/pyramid-block-build.json +1 -1
- package/registry/radar-sweep.json +1 -1
- package/registry/radial-iris-mask.json +1 -1
- package/registry/radial-spinner.json +1 -1
- package/registry/radio-scale.json +1 -1
- package/registry/range-slider.json +1 -1
- package/registry/receipt-tape-print.json +1 -1
- package/registry/rectangle-toggle.json +1 -1
- package/registry/repost-toggle.json +1 -1
- package/registry/reveal-text.json +1 -1
- package/registry/ribbon-banner-slide.json +1 -1
- package/registry/ring-sweep.json +1 -1
- package/registry/ripple-effect.json +1 -1
- package/registry/rise-up-word.json +1 -1
- package/registry/roller-blind-drop.json +1 -1
- package/registry/rolling-tumble.json +1 -1
- package/registry/rotate-in-char.json +1 -1
- package/registry/rotating-cross.json +1 -1
- package/registry/rotating-louvers.json +1 -1
- package/registry/rotating-triangle.json +1 -1
- package/registry/rudder-issue-board.json +2 -2
- package/registry/sales-analytics-dual-bars.json +1 -1
- package/registry/sales-overview-radial-dashboard.json +1 -1
- package/registry/sales-target-segmented-arc.json +1 -1
- package/registry/scale-in-char.json +1 -1
- package/registry/scale-in-text.json +1 -1
- package/registry/scale-in-word.json +1 -1
- package/registry/scale-in.json +1 -1
- package/registry/scramble-text.json +1 -1
- package/registry/scroll-canvas-unroll.json +1 -1
- package/registry/scroll-reveal.json +1 -1
- package/registry/search-expand.json +1 -1
- package/registry/segmented-arc-meter.json +1 -1
- package/registry/segmented-link-stretch.json +1 -1
- package/registry/segmented-step-bar.json +1 -1
- package/registry/segmented-stepper-dots.json +1 -1
- package/registry/select-dropdown.json +1 -1
- package/registry/server-performance-step-bars.json +1 -1
- package/registry/shape-shift-grid.json +1 -1
- package/registry/shimmer-line.json +1 -1
- package/registry/shimmer-text.json +1 -1
- package/registry/shutter-slide.json +1 -1
- package/registry/shutter-step-slices.json +1 -1
- package/registry/siri-wave.json +1 -1
- package/registry/skeleton-loader.json +1 -1
- package/registry/skeleton.json +1 -1
- package/registry/skew-x-char.json +1 -1
- package/registry/slide-down-char.json +1 -1
- package/registry/slide-down-word.json +1 -1
- package/registry/slide-left-char.json +1 -1
- package/registry/slide-left.json +1 -1
- package/registry/slide-right-char.json +1 -1
- package/registry/slide-right.json +1 -1
- package/registry/slide-up-char.json +1 -1
- package/registry/slide-up-text.json +1 -1
- package/registry/slide-up-word.json +1 -1
- package/registry/sliding-bars.json +1 -1
- package/registry/slinky-coil.json +1 -1
- package/registry/smart-card-dispenser.json +1 -1
- package/registry/smooth-dot-shift.json +1 -1
- package/registry/smooth-ring.json +1 -1
- package/registry/smooth-rounded-square.json +1 -1
- package/registry/solid-switch.json +1 -1
- package/registry/spatial-door-portal.json +1 -1
- package/registry/spinning-squares.json +1 -1
- package/registry/spiral-spinner.json +1 -1
- package/registry/split-gate-reveal.json +1 -1
- package/registry/spotlight.json +1 -1
- package/registry/spring-bars.json +1 -1
- package/registry/spring-dot-matrix.json +1 -1
- package/registry/spring-hexagon.json +1 -1
- package/registry/spring-ring-expand.json +1 -1
- package/registry/spring-text-pop.json +1 -1
- package/registry/spring-text.json +1 -1
- package/registry/square-accordion.json +1 -1
- package/registry/square-grid.json +1 -1
- package/registry/square-snake.json +1 -1
- package/registry/square-spinner.json +1 -1
- package/registry/squash-sphere.json +1 -1
- package/registry/stacked-bar-pulse.json +1 -1
- package/registry/stagger-text.json +1 -1
- package/registry/staggered-glass-curtain.json +1 -1
- package/registry/sticky-note-peel.json +1 -1
- package/registry/sticky-reveal.json +1 -1
- package/registry/stretch-x-char.json +1 -1
- package/registry/stretch-y-char.json +1 -1
- package/registry/stroke-waveform.json +1 -1
- package/registry/submenu-flyout.json +1 -1
- package/registry/success-check.json +1 -1
- package/registry/sudden-brake.json +1 -1
- package/registry/swapping-dots.json +1 -1
- package/registry/swing-word.json +1 -1
- package/registry/swirling-spinner.json +1 -1
- package/registry/symmetric-wave.json +1 -1
- package/registry/terminal-loader.json +1 -1
- package/registry/text-blink.json +1 -1
- package/registry/text-dots.json +1 -1
- package/registry/text-morph.json +1 -1
- package/registry/text-reveal.json +1 -1
- package/registry/text-shimmer-wave.json +1 -1
- package/registry/text-shimmer.json +1 -1
- package/registry/textarea-auto-grow.json +1 -1
- package/registry/theme-toggle.json +1 -1
- package/registry/tilt-card.json +1 -1
- package/registry/timer-preparation-segmented.json +1 -1
- package/registry/tracking-in-text.json +1 -1
- package/registry/tracking-out-text.json +1 -1
- package/registry/trailing-dots.json +1 -1
- package/registry/triple-dot-spinner.json +1 -1
- package/registry/twin-orbit.json +1 -1
- package/registry/typewriter-text.json +1 -1
- package/registry/typing-indicator.json +1 -1
- package/registry/typing.json +1 -1
- package/registry/use-mouse-position.json +1 -1
- package/registry/use-reduced-motion.json +1 -1
- package/registry/use-scroll-progress.json +1 -1
- package/registry/use-stagger.json +1 -1
- package/registry/use-web-haptics.json +1 -1
- package/registry/users-growth-pill-progress.json +1 -1
- package/registry/utils.json +1 -1
- package/registry/vertical-wheel-counter.json +1 -1
- package/registry/views-hourly-wave-chart.json +1 -1
- package/registry/voice-assistant-card.json +19 -0
- package/registry/wandering-cube.json +1 -1
- package/registry/wandering-eyes.json +1 -1
- package/registry/watch-spinner.json +1 -1
- package/registry/wave-dots.json +1 -1
- package/registry/wave-physics-loader.json +1 -1
- package/registry/wave-reveal.json +1 -1
- package/registry/waveform-loader.json +1 -1
- package/registry/word-reveal.json +1 -1
- package/registry/zig-zag-pulse.json +1 -1
- package/registry/zoom-in-text.json +1 -1
- package/registry/zoom-in.json +1 -1
- package/registry/zoom-out-text.json +1 -1
package/registry/utils.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "vertical-wheel-counter",
|
|
3
3
|
"tier": "free",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.7",
|
|
5
5
|
"file": "vertical-wheel-counter.tsx",
|
|
6
6
|
"sourcePath": "components/css-animations/yui-components/RedesignedUiTrios.tsx",
|
|
7
7
|
"registryFile": "vertical-wheel-counter.json",
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "voice-assistant-card",
|
|
3
|
+
"tier": "free",
|
|
4
|
+
"version": "0.4.7",
|
|
5
|
+
"file": "voice-assistant-card.tsx",
|
|
6
|
+
"sourcePath": "ui/cards/voice-assistant-card.tsx",
|
|
7
|
+
"registryFile": "voice-assistant-card.json",
|
|
8
|
+
"exports": [
|
|
9
|
+
"VoiceAssistantCard",
|
|
10
|
+
"VoiceAssistantCardProps",
|
|
11
|
+
"VoiceAssistantChat"
|
|
12
|
+
],
|
|
13
|
+
"dependencies": [
|
|
14
|
+
"lucide-react"
|
|
15
|
+
],
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"previewMode": "client",
|
|
18
|
+
"content": "\"use client\";\n\"use client\";\n\n/** Original Mova implementation. Voice is a local simulation and never requests microphone access. */\nimport * as React from \"react\";\nimport { ArrowUp, ImagePlus, Menu, Plus, X } from \"lucide-react\";\n\nexport interface VoiceAssistantChat { id: string; title: string; preview: string; time?: string }\nexport interface VoiceAssistantCardProps {\n name?: string; chats?: VoiceAssistantChat[]; simulatedTranscript?: string;\n onSend?: (message: string, image?: File) => void | Promise<void>; onChatChange?: (chat: VoiceAssistantChat) => void;\n theme?: \"light\" | \"dark\"; className?: string; style?: React.CSSProperties;\n}\nconst recentChats: VoiceAssistantChat[] = [{ id: \"cafe\", title: \"Quiet café nearby\", preview: \"A little room to think\", time: \"Now\" }, { id: \"trip\", title: \"A weekend away\", preview: \"Plan a slow Sunday\", time: \"Yesterday\" }, { id: \"ideas\", title: \"Ideas for the studio\", preview: \"A fresh perspective\", time: \"Monday\" }];\nexport function VoiceAssistantCard({ name = \"Aria\", chats = recentChats, simulatedTranscript = \"Find me a quiet café nearby with good wifi for this afternoon\", onSend, onChatChange, theme = \"light\", className = \"\", style }: VoiceAssistantCardProps = {}) {\n const [list, setList] = React.useState(false);\n const [chatId, setChatId] = React.useState<string | undefined>(chats[0]?.id);\n const [draft, setDraft] = React.useState(\"\");\n const [transcript, setTranscript] = React.useState(\"\");\n const [phase, setPhase] = React.useState<\"idle\" | \"listening\" | \"sending\" | \"sent\" | \"error\">(\"idle\");\n const [attachment, setAttachment] = React.useState<File | undefined>();\n const [imageUrl, setImageUrl] = React.useState(\"\");\n const fileInput = React.useRef<HTMLInputElement>(null);\n const input = React.useRef<HTMLInputElement>(null);\n const generation = React.useRef(0);\n const sending = React.useRef(false);\n const menu = React.useRef<HTMLButtonElement>(null);\n const listRef = React.useRef<HTMLDivElement>(null);\n const pendingFocus = React.useRef(false);\n const currentChat = chats.find(chat => chat.id === chatId);\n React.useEffect(() => { if (!attachment) { setImageUrl(\"\"); return; } const url = URL.createObjectURL(attachment); setImageUrl(url); return () => URL.revokeObjectURL(url); }, [attachment]);\n React.useEffect(() => () => { generation.current++; }, []);\n React.useEffect(() => {\n if (phase !== \"listening\") return;\n let index = 0;\n const words = simulatedTranscript.split(/\\s+/).filter(Boolean);\n const timer = window.setInterval(() => { index++; setTranscript(words.slice(0, index).join(\" \")); if (index >= words.length) { window.clearInterval(timer); setDraft(simulatedTranscript); setPhase(\"idle\"); } }, 160);\n return () => window.clearInterval(timer);\n }, [phase, simulatedTranscript]);\n React.useEffect(() => { if (list) listRef.current?.querySelector<HTMLButtonElement>(\"button\")?.focus(); else if (pendingFocus.current) { input.current?.focus(); pendingFocus.current = false; } }, [list]);\n async function send(event?: React.FormEvent) {\n event?.preventDefault();\n if ((!draft.trim() && !attachment) || sending.current) return;\n const text = draft.trim();\n const run = ++generation.current;\n sending.current = true; setTranscript(text); setPhase(\"sending\");\n try { await onSend?.(text, attachment); if (generation.current === run) { setDraft(\"\"); setPhase(\"sent\"); } }\n catch { if (generation.current === run) setPhase(\"error\"); }\n finally { sending.current = false; }\n }\n function reset() { pendingFocus.current = true; setChatId(undefined); generation.current++; setDraft(\"\"); setTranscript(\"\"); setAttachment(undefined); setPhase(\"idle\"); setList(false); }\n const caption = { idle: \"Type, or try the voice preview\", listening: \"Voice preview · listening…\", sending: \"Sending…\", sent: onSend ? \"Message sent\" : \"Message preview ready\", error: \"Could not send. Please try again.\" }[phase];\n return <section className={`mova-voice ${className}`} data-theme={theme} data-listening={phase === \"listening\"} style={style} aria-label={`${name} voice assistant`}>\n <style>{css}</style><header><button ref={menu} type=\"button\" aria-label={list ? \"Close conversations\" : \"Open conversations\"} aria-expanded={list} disabled={phase === \"sending\"} onClick={() => { setList(!list); if (phase === \"listening\") setPhase(\"idle\"); }}>{list ? <X size={17} /> : <Menu size={17} />}</button><div><strong>{name}</strong><small>{list ? \"Your conversations\" : currentChat?.title ?? \"New conversation\"}</small></div></header>\n {list ? <div className=\"mvc-list\" ref={listRef} onKeyDown={event => { if (event.key === \"Escape\") { setList(false); menu.current?.focus(); } }}><button type=\"button\" className=\"mvc-new\" onClick={reset}><Plus size={16} />New conversation</button>{chats.map(chat => <button type=\"button\" key={chat.id} className=\"mvc-chat\" onClick={() => { reset(); setChatId(chat.id); onChatChange?.(chat); }}><span><strong>{chat.title}</strong><small>{chat.preview}</small></span><small>{chat.time}</small></button>)}</div> : <><div className=\"mvc-body\"><p className=\"mvc-greeting\">How can I help you today?</p><div className=\"mvc-transcript\" role=\"status\" aria-live={phase === \"listening\" ? \"off\" : \"polite\"}>{imageUrl && <img src={imageUrl} alt=\"Attached image preview\" />}{transcript && <p>{transcript}</p>}</div></div><footer><div className=\"mvc-caption\" role=\"status\">{caption}</div><form onSubmit={event => void send(event)}><button type=\"button\" aria-label={attachment ? \"Remove image\" : \"Attach image\"} disabled={phase === \"sending\"} onClick={() => attachment ? setAttachment(undefined) : fileInput.current?.click()}>{attachment ? <X size={16} /> : <ImagePlus size={16} />}</button><input ref={fileInput} hidden type=\"file\" accept=\"image/*\" onChange={event => { const file = event.target.files?.[0]; if (file?.type.startsWith(\"image/\") && file.size <= 10 * 1024 * 1024) setAttachment(file); event.target.value = \"\"; }} /><input ref={input} type=\"text\" aria-label={`Message ${name}`} placeholder={`Ask ${name} anything`} value={draft} disabled={phase === \"listening\" || phase === \"sending\"} maxLength={2000} onChange={event => setDraft(event.target.value)} />{draft.trim() || attachment ? <button type=\"submit\" className=\"mvc-action\" aria-label=\"Send message\" disabled={phase === \"sending\"}><ArrowUp size={17} /></button> : <button type=\"button\" className=\"mvc-action\" aria-label={phase === \"listening\" ? \"Stop voice preview\" : \"Start voice preview\"} aria-pressed={phase === \"listening\"} onClick={() => { if (phase === \"listening\") { setDraft(transcript); setPhase(\"idle\"); } else { setTranscript(\"\"); setPhase(\"listening\"); } }}><span className=\"mvc-wave\" aria-hidden=\"true\">{[8, 13, 19, 11, 6].map((height, index) => <i key={index} style={{ height, animationDelay: `${index * 90}ms` }} />)}</span></button>}</form></footer></>}\n </section>;\n}\nconst css = `\n.mova-voice{--mvc-bg:#fff;--mvc-fg:#252525;--mvc-muted:#777;--mvc-chip:#f0f0f0;position:relative;box-sizing:border-box;width:360px;max-width:100%;height:340px;border-radius:24px;border:1px solid #8888881a;background:var(--mvc-bg);color:var(--mvc-fg);font:400 13px/20px -apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;display:flex;flex-direction:column;box-shadow:0 8px 32px -4px #0000000c;isolation:isolate}.mova-voice[data-theme=dark]{--mvc-bg:#1d1d1d;--mvc-fg:#f2f2f2;--mvc-muted:#999;--mvc-chip:#303030;color-scheme:dark}.mova-voice:after{content:\"\";position:absolute;z-index:-1;bottom:-1px;left:18%;right:18%;height:2px;background:linear-gradient(90deg,transparent,#b9dbbc,#b294ce,#efaf84,transparent);filter:blur(5px);opacity:.7;transition:opacity 250ms,filter 250ms}.mova-voice[data-listening=true]:after{opacity:1;filter:blur(7px);height:6px}.mova-voice *{box-sizing:border-box}.mova-voice button,.mova-voice input{font:inherit;color:inherit}.mova-voice button{border:0;background:none;cursor:pointer}.mova-voice button:disabled{opacity:.5;cursor:default}.mova-voice :focus-visible{outline:2px solid #7898e8;outline-offset:2px}.mova-voice header{padding:12px;display:flex;gap:8px;align-items:center;border-bottom:1px solid #88888818;flex:none}.mova-voice header>button{width:30px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none}.mova-voice header>div{min-width:0}.mova-voice header strong{display:block;font-size:16px;line-height:22px;font-weight:500}.mova-voice header small{display:block;font-size:12px;line-height:16px;color:var(--mvc-muted);overflow-wrap:anywhere}.mvc-body{flex:1;min-height:0;overflow:auto;padding:20px 24px}.mvc-greeting{margin:0;padding:8px 12px;background:var(--mvc-chip);border-radius:18px 18px 18px 4px;display:inline-block}.mvc-transcript{margin-top:16px}.mvc-transcript p{margin:0;overflow-wrap:anywhere;animation:mvc-in 200ms ease-out}.mvc-transcript img{width:40px;height:40px;object-fit:cover;border-radius:8px;margin-bottom:8px}.mova-voice footer{padding:0 12px 12px}.mvc-caption{text-align:center;min-height:20px;font-size:11px;color:var(--mvc-muted);margin-bottom:6px}.mova-voice form{display:flex;align-items:center;gap:6px;padding:4px;border:1px solid #88888830;border-radius:24px}.mova-voice form>button{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center}.mova-voice button:hover{background:var(--mvc-chip)}.mova-voice form>input[type=text]{min-width:0;width:100%;border:0;background:none;outline:none;padding:4px 2px;font-size:12px}.mova-voice form:focus-within{outline:2px solid #7898e8;outline-offset:2px}.mova-voice .mvc-action{background:var(--mvc-chip)}.mvc-wave{height:20px;display:flex;align-items:center;gap:2px}.mvc-wave i{display:block;width:2px;background:currentColor;border-radius:2px}.mova-voice[data-listening=true] .mvc-wave i{animation:mvc-wave 700ms ease-in-out infinite alternate}.mvc-list{padding:12px;overflow:auto;flex:1}.mvc-new{display:flex;gap:8px;align-items:center;width:100%;padding:10px;border-radius:10px}.mvc-chat{display:flex;align-items:center;gap:8px;text-align:left;width:100%;padding:12px 10px;border-radius:12px}.mvc-chat>span{flex:1;min-width:0}.mvc-chat strong{display:block;font-size:13px;font-weight:500;overflow-wrap:anywhere}.mvc-chat small{display:block;color:var(--mvc-muted);font-size:11px}.mvc-chat>small{flex:none;font-size:10px}@keyframes mvc-wave{to{transform:scaleY(.35)}}@keyframes mvc-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.mova-voice *,.mova-voice:after{animation:none!important;transition:none!important}}\n`;\n"
|
|
19
|
+
}
|
package/registry/wave-dots.json
CHANGED
package/registry/zoom-in.json
CHANGED