{"$schema":"https://ui.shadcn.com/schema/registry.json","name":"geturui","homepage":"https://geturui.com","items":[{"name":"theme","type":"registry:file","title":"GetUrUI theme","description":"Design tokens"},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/button"],"name":"alert","title":"Alert","description":"Inline alert that stays in the page flow in six tones, as a floating card or full-width banner; it unrolls with a spring, each tone icon moves once, and dismissing folds it away.","files":[{"path":"registry/geturui/ui/alert.tsx","type":"registry:ui","target":"components/ui/alert.tsx"}]},{"type":"registry:ui","dependencies":["lucide-react"],"registryDependencies":[],"name":"badge","title":"Animated Badge","description":"Small uppercase status label in nine tones, with an optional pulsing dot for live states and a lock glyph on Pro.","files":[{"path":"registry/geturui/ui/badge.tsx","type":"registry:ui","target":"components/ui/badge.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"context-menu","title":"Animated Context Menu","description":"Right-click or long-press menu that opens at the pointer: it scales from the nearest corner, items stagger in, a highlight glides between rows and submenus slide in beside their item.","files":[{"path":"registry/geturui/ui/context-menu.tsx","type":"registry:ui","target":"components/ui/context-menu.tsx"},{"path":"registry/geturui/ui/menu-core.tsx","type":"registry:ui","target":"components/ui/menu-core.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"avatar","title":"Avatar","description":"Avatar in six sizes with an image to initials to icon fallback chain, presence, verified and logo corners, plus a stack that fans out on hover; photos blur up into focus.","files":[{"path":"registry/geturui/ui/avatar.tsx","type":"registry:ui","target":"components/ui/avatar.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"blog-cards","title":"Blog cards","description":"Four ways to present a post — editorial cover, compact list, featured series and author-led quote — each with its own motion moment, from layered parallax to a gliding row highlight.","files":[{"path":"registry/geturui/examples/blog-cards/editorial.tsx","type":"registry:component","target":"components/examples/blog-cards/editorial.tsx"},{"path":"registry/geturui/examples/blog-cards/compact-list.tsx","type":"registry:component","target":"components/examples/blog-cards/compact-list.tsx"},{"path":"registry/geturui/examples/blog-cards/featured-split.tsx","type":"registry:component","target":"components/examples/blog-cards/featured-split.tsx"},{"path":"registry/geturui/examples/blog-cards/author.tsx","type":"registry:component","target":"components/examples/blog-cards/author.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"blog-cards-editorial","title":"Blog cards · Editorial","description":"Cover card with a drawn type specimen whose layers drift under the pointer, plus category, excerpt and byline.","files":[{"path":"registry/geturui/examples/blog-cards/editorial.tsx","type":"registry:component","target":"components/examples/blog-cards/editorial.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"blog-cards-compact-list","title":"Blog cards · Compact list","description":"List of posts with reading-progress rings, a highlight that glides between rows and arrow-key navigation.","files":[{"path":"registry/geturui/examples/blog-cards/compact-list.tsx","type":"registry:component","target":"components/examples/blog-cards/compact-list.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"blog-cards-featured-split","title":"Blog cards · Featured series","description":"Split card for a multi-part series: step through parts while the art and copy crossfade in the direction of travel.","files":[{"path":"registry/geturui/examples/blog-cards/featured-split.tsx","type":"registry:component","target":"components/examples/blog-cards/featured-split.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"blog-cards-author","title":"Blog cards · Author-led","description":"Byline-first card with a pull quote, a bookmark that pops and ticks its count, and a copy-link action.","files":[{"path":"registry/geturui/examples/blog-cards/author.tsx","type":"registry:component","target":"components/examples/blog-cards/author.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":[],"name":"bottom-sheet","title":"Bottom Sheet","description":"Draggable glass sheet with snap points; release velocity is projected forward to pick the detent and the scrim fades with the sheet's height.","files":[{"path":"registry/geturui/ui/bottom-sheet.tsx","type":"registry:ui","target":"components/ui/bottom-sheet.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"accordion","title":"Bouncy Accordion","description":"Single-open accordion whose panels open on a weighted height spring while the body rises out of a blur and the plus turns into a cross.","files":[{"path":"registry/geturui/ui/accordion.tsx","type":"registry:ui","target":"components/ui/accordion.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/popover"],"name":"breadcrumbs","title":"Breadcrumbs","description":"Location trail with chevron, slash or dot separators, a home crumb and long middles collapsed into a menu; in button style a hover pill glides between crumbs.","files":[{"path":"registry/geturui/ui/breadcrumbs.tsx","type":"registry:ui","target":"components/ui/breadcrumbs.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/spinner"],"name":"button","title":"Button","description":"Pill button in twelve styles and five sizes with a spring press, leading and trailing icons, inline links whose underline draws in, a Spinner loading state, an async state machine and a magnetic hover.","files":[{"path":"registry/geturui/ui/button.tsx","type":"registry:ui","target":"components/ui/button.tsx"},{"path":"registry/geturui/ui/button-classes.ts","type":"registry:ui","target":"components/ui/button-classes.ts"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"calendar","title":"Calendar","description":"Month grid for a single date or a range, one or two months wide; months slide in with a blur in the direction of travel and the range band sweeps out from the start day.","files":[{"path":"registry/geturui/ui/calendar.tsx","type":"registry:ui","target":"components/ui/calendar.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/field"],"name":"card-input","title":"Card Input","description":"Card number, expiry and CVC in one well: digits group as you type, the brand is detected from the prefix and its mark flips in, focus advances field to field, and it stacks to two rows when narrow.","files":[{"path":"registry/geturui/ui/card-input.tsx","type":"registry:ui","target":"components/ui/card-input.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"chat-bubbles","title":"Chat bubbles","description":"Four message threads — support with typing indicator, group chat with reactions, file and voice attachments, and delivery receipts — where every new message springs in.","files":[{"path":"registry/geturui/examples/chat-bubbles/support-thread.tsx","type":"registry:component","target":"components/examples/chat-bubbles/support-thread.tsx"},{"path":"registry/geturui/examples/chat-bubbles/group-reactions.tsx","type":"registry:component","target":"components/examples/chat-bubbles/group-reactions.tsx"},{"path":"registry/geturui/examples/chat-bubbles/attachments.tsx","type":"registry:component","target":"components/examples/chat-bubbles/attachments.tsx"},{"path":"registry/geturui/examples/chat-bubbles/delivery-states.tsx","type":"registry:component","target":"components/examples/chat-bubbles/delivery-states.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"chat-bubbles-support-thread","title":"Chat bubbles · Support thread","description":"Support conversation with grouped bubbles, quick-reply chips and a typing indicator before each answer.","files":[{"path":"registry/geturui/examples/chat-bubbles/support-thread.tsx","type":"registry:component","target":"components/examples/chat-bubbles/support-thread.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"chat-bubbles-group-reactions","title":"Chat bubbles · Group reactions","description":"Group chat with grouped senders, toggleable reaction pills whose counts roll and an inline reaction picker.","files":[{"path":"registry/geturui/examples/chat-bubbles/group-reactions.tsx","type":"registry:component","target":"components/examples/chat-bubbles/group-reactions.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"chat-bubbles-attachments","title":"Chat bubbles · Attachments","description":"File message with a ring-progress download and a voice note with a seekable waveform and speed control.","files":[{"path":"registry/geturui/examples/chat-bubbles/attachments.tsx","type":"registry:component","target":"components/examples/chat-bubbles/attachments.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"chat-bubbles-delivery-states","title":"Chat bubbles · Delivery states","description":"Direct-message thread where sent messages animate through sending, sent, delivered and read, with retry on failure.","files":[{"path":"registry/geturui/examples/chat-bubbles/delivery-states.tsx","type":"registry:component","target":"components/examples/chat-bubbles/delivery-states.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":[],"name":"checkbox","title":"Checkbox","description":"Native checkbox whose tick draws itself with a spring, morphs to a dash when indeterminate, and groups under a select-all parent.","files":[{"path":"registry/geturui/ui/checkbox.tsx","type":"registry:ui","target":"components/ui/checkbox.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"citations","title":"Citations","description":"Inline numbered citation chips that open a source card with a spring on hover or focus, plus a sources list that highlights the cited item.","files":[{"path":"registry/geturui/ai/citations.tsx","type":"registry:component","target":"components/ai/citations.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/copy-button"],"name":"code-block","title":"Code Block","description":"AI-style code block with filename header, copy button, line numbers, line highlights and a tiny highlighter; long code collapses behind a height spring.","files":[{"path":"registry/geturui/ai/code-block.tsx","type":"registry:component","target":"components/ai/code-block.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/field","@geturui/spinner"],"name":"combobox","title":"Combobox","description":"Type-to-filter combobox: matched text lights up in volt, a create row offers what you typed, async results load behind a spinner, and an empty state wobbles in when nothing matches.","files":[{"path":"registry/geturui/ui/combobox.tsx","type":"registry:ui","target":"components/ui/combobox.tsx"},{"path":"registry/geturui/ui/listbox.tsx","type":"registry:ui","target":"components/ui/listbox.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"command-palette","title":"Command Palette","description":"A ⌘K palette on frosted glass with fuzzy search and grouped results; a spring highlight glides to the active row as you arrow through.","files":[{"path":"registry/geturui/ui/command-palette.tsx","type":"registry:ui","target":"components/ui/command-palette.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"copy-button","title":"Copy Button","description":"Icon button that copies a value to the clipboard and morphs its glyph into a check with a scale-and-blur swap.","files":[{"path":"registry/geturui/ui/copy-button.tsx","type":"registry:ui","target":"components/ui/copy-button.tsx"}]},{"type":"registry:block","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/badge","@geturui/button"],"name":"cta-banner","title":"CTA Banner","description":"Large rounded call-to-action panel on a faded dot grid with a headline, two buttons and a soft volt spotlight that trails the cursor.","files":[{"path":"registry/geturui/blocks/cta-banner.tsx","type":"registry:block","target":"components/blocks/cta-banner.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/calendar","@geturui/field","@geturui/popover","@geturui/button"],"name":"date-picker","title":"Date picker","description":"Date and range pickers on a sunken trigger: a popover holds the calendar, presets like Last 7 days and Apply/Cancel, plus a segmented date field whose digits roll as you step them.","files":[{"path":"registry/geturui/ui/date-picker.tsx","type":"registry:ui","target":"components/ui/date-picker.tsx"},{"path":"registry/geturui/ui/date-field.tsx","type":"registry:ui","target":"components/ui/date-field.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"dialog","title":"Dialog","description":"Accessible base modal with a featured icon, four widths and stacked phone actions; it springs in over a blurred scrim and turns into a drag-to-dismiss bottom sheet below 640px.","files":[{"path":"registry/geturui/ui/dialog.tsx","type":"registry:ui","target":"components/ui/dialog.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":[],"name":"dock","title":"Dock","description":"A macOS-style dock whose icons swell on springs as the cursor nears; labels rise above and the active dot glides between apps.","files":[{"path":"registry/geturui/ui/dock.tsx","type":"registry:ui","target":"components/ui/dock.tsx"}]},{"type":"registry:component","dependencies":["motion"],"registryDependencies":["@geturui/number-ticker"],"name":"donut-chart","title":"Donut Chart","description":"Donut whose arcs sweep in on springs; hovering a segment or legend row expands it and swaps the rolling centre total for that segment's share.","files":[{"path":"registry/geturui/charts/donut-chart.tsx","type":"registry:component","target":"components/charts/donut-chart.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"drawer","title":"Drawer","description":"A side panel that springs in from the left or right over a blurred scrim; drag it toward its edge, press Escape or click outside to dismiss.","files":[{"path":"registry/geturui/ui/drawer.tsx","type":"registry:ui","target":"components/ui/drawer.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/button"],"name":"dropdown","title":"Dropdown Menu","description":"Menu button with button, icon, avatar or account-card triggers, an account header or filtering search, sections, checkbox and radio rows and submenus; it springs open from the trigger and a highlight glides between rows.","files":[{"path":"registry/geturui/ui/dropdown.tsx","type":"registry:ui","target":"components/ui/dropdown.tsx"},{"path":"registry/geturui/ui/menu-core.tsx","type":"registry:ui","target":"components/ui/menu-core.tsx"}]},{"type":"registry:block","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/accordion","@geturui/button"],"name":"faq-section","title":"FAQ","description":"FAQ section with a heading, a spring accordion of questions and a \"still have questions\" contact card whose avatar stack pops in.","files":[{"path":"registry/geturui/blocks/faq-section.tsx","type":"registry:block","target":"components/blocks/faq-section.tsx"}]},{"type":"registry:block","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/number-ticker","@geturui/switch"],"name":"feature-grid","title":"Feature Grid","description":"Bento grid of six features where each tile runs a small live micro-animation — a typing command, a theme toggle, a moving focus ring, a rolling counter, springy bars and a clicking cursor — and lifts on hover.","files":[{"path":"registry/geturui/blocks/feature-grid.tsx","type":"registry:block","target":"components/blocks/feature-grid.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"field","title":"Field","description":"Label, control and hint line with ids wired for screen readers; errors shake the control once and blur in under it.","files":[{"path":"registry/geturui/ui/field.tsx","type":"registry:ui","target":"components/ui/field.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"file-tree","title":"File Tree","description":"Collapsible file tree where folders spring open, chevrons rotate, indent guides light up for the active folder and a selection pill glides between rows.","files":[{"path":"registry/geturui/ui/file-tree.tsx","type":"registry:ui","target":"components/ui/file-tree.tsx"}]},{"type":"registry:block","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/badge","@geturui/input"],"name":"footer-block","title":"Footer","description":"Site footer with a brand blurb, four link columns, a newsletter field that swaps to an inline success state, and a base row with legal links and a pulsing status dot.","files":[{"path":"registry/geturui/blocks/footer-block.tsx","type":"registry:block","target":"components/blocks/footer-block.tsx"}]},{"type":"registry:component","dependencies":["motion"],"registryDependencies":[],"name":"funnel-chart","title":"Funnel Chart","description":"Horizontal funnel whose centred bars grow in stage by stage, with conversion from the top and drop-off labelled between stages.","files":[{"path":"registry/geturui/charts/funnel-chart.tsx","type":"registry:component","target":"components/charts/funnel-chart.tsx"}]},{"type":"registry:block","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/badge","@geturui/button","@geturui/copy-button","@geturui/number-ticker","@geturui/text-animation"],"name":"hero-section","title":"Hero","description":"Marketing hero with a pulsing announcement pill, a word-by-word headline with a volt-marked word, two CTAs, a copyable install command and a floating product shot of animated UI cards.","files":[{"path":"registry/geturui/blocks/hero-section.tsx","type":"registry:block","target":"components/blocks/hero-section.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/field","@geturui/tooltip"],"name":"input","title":"Input","description":"Text field on a sunken well in three sizes with a volt focus halo, leading icon, joined text, select and button add-ons, a help tooltip, a clear button and a single shake when an error appears.","files":[{"path":"registry/geturui/ui/input.tsx","type":"registry:ui","target":"components/ui/input.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"integration-cards","title":"Integration cards","description":"App connect grid, single-integration consent and sync health cards — optimistic connect, spring permission switches and a failed sync that heals on retry.","files":[{"path":"registry/geturui/examples/integration-cards/connect-grid.tsx","type":"registry:component","target":"components/examples/integration-cards/connect-grid.tsx"},{"path":"registry/geturui/examples/integration-cards/detail.tsx","type":"registry:component","target":"components/examples/integration-cards/detail.tsx"},{"path":"registry/geturui/examples/integration-cards/sync-status.tsx","type":"registry:component","target":"components/examples/integration-cards/sync-status.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"integration-cards-connect-grid","title":"Integration cards · Connect grid","description":"Grid of apps with All and Connected filters, a connect flow that spins then springs to Connected, and layout-animated filtering.","files":[{"path":"registry/geturui/examples/integration-cards/connect-grid.tsx","type":"registry:component","target":"components/examples/integration-cards/connect-grid.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"integration-cards-detail","title":"Integration cards · Integration consent","description":"Two linked marks, a permissions list with spring switches and locked required scopes, and an authorize flow that ends in a drawn check.","files":[{"path":"registry/geturui/examples/integration-cards/detail.tsx","type":"registry:component","target":"components/examples/integration-cards/detail.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"integration-cards-sync-status","title":"Integration cards · Sync status","description":"Sync health with run-history bars, a failure notice that collapses on retry, a live record counter and an auto-sync switch.","files":[{"path":"registry/geturui/examples/integration-cards/sync-status.tsx","type":"registry:component","target":"components/examples/integration-cards/sync-status.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"line-charts","title":"Line charts","description":"Four hand-drawn SVG line charts — multi-series, single metric, period comparison and annotated steps — that reveal left to right, morph with springs and read out values on hover or arrow keys.","files":[{"path":"registry/geturui/examples/line-charts/multi-series.tsx","type":"registry:component","target":"components/examples/line-charts/multi-series.tsx"},{"path":"registry/geturui/examples/line-charts/gradient-metric.tsx","type":"registry:component","target":"components/examples/line-charts/gradient-metric.tsx"},{"path":"registry/geturui/examples/line-charts/period-comparison.tsx","type":"registry:component","target":"components/examples/line-charts/period-comparison.tsx"},{"path":"registry/geturui/examples/line-charts/step-annotations.tsx","type":"registry:component","target":"components/examples/line-charts/step-annotations.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"line-charts-multi-series","title":"Line charts · Multi-series","description":"Up to four series, volt first and the rest neutral or dashed; legend toggles rescale the axis with a spring morph and the crosshair reads every visible line.","files":[{"path":"registry/geturui/examples/line-charts/multi-series.tsx","type":"registry:component","target":"components/examples/line-charts/multi-series.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"line-charts-gradient-metric","title":"Line charts · Gradient metric","description":"One metric under a volt gradient with labelled peak and low markers, an average guide, a glowing latest point and a headline that follows the crosshair.","files":[{"path":"registry/geturui/examples/line-charts/gradient-metric.tsx","type":"registry:component","target":"components/examples/line-charts/gradient-metric.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"line-charts-period-comparison","title":"Line charts · Period comparison","description":"This period in solid volt against the last in dashed neutral, the gap shaded, with week, month and quarter tabs that morph both lines together.","files":[{"path":"registry/geturui/examples/line-charts/period-comparison.tsx","type":"registry:component","target":"components/examples/line-charts/period-comparison.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"line-charts-step-annotations","title":"Line charts · Step with annotations","description":"A step line for values that change in jumps, a dashed plan limit and numbered notes that pop a callout on hover or focus and step with arrow keys.","files":[{"path":"registry/geturui/examples/line-charts/step-annotations.tsx","type":"registry:component","target":"components/examples/line-charts/step-annotations.tsx"}]},{"type":"registry:block","dependencies":[],"registryDependencies":["@geturui/marquee"],"name":"logo-cloud","title":"Logo Cloud","description":"Customer logo strip of text wordmarks in varied weights and spacing, as an endless marquee or a bordered grid where each logo lifts to reveal a caption on hover.","files":[{"path":"registry/geturui/blocks/logo-cloud.tsx","type":"registry:block","target":"components/blocks/logo-cloud.tsx"}]},{"type":"registry:ui","dependencies":[],"registryDependencies":[],"name":"marquee","title":"Marquee","description":"Infinite horizontal scroller with faded edges that loops any content, runs in either direction and pauses on hover.","files":[{"path":"registry/geturui/ui/marquee.tsx","type":"registry:ui","target":"components/ui/marquee.tsx"}]},{"type":"registry:block","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"masonry-gallery","title":"Masonry Gallery","description":"Masonry wall of tiles with mixed aspect ratios that keeps source order left to right, with category chips that filter the wall and tiles that glide into their new places.","files":[{"path":"registry/geturui/blocks/masonry-gallery.tsx","type":"registry:block","target":"components/blocks/masonry-gallery.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/copy-button"],"name":"message-bubble","title":"Message Bubble","description":"User and assistant chat bubbles that spring in, group consecutive messages and reveal copy, retry and feedback actions on hover or focus.","files":[{"path":"registry/geturui/ai/message-bubble.tsx","type":"registry:component","target":"components/ai/message-bubble.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/button"],"name":"morph-label","title":"Morph Label","description":"A button that confirms in place: its label and icon morph through pending, done or error (Add to cart → Added → back) while the width springs to fit, plus a SwapSlot for any value that changes.","files":[{"path":"registry/geturui/ui/morph-label.tsx","type":"registry:ui","target":"components/ui/morph-label.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/field"],"name":"number-input","title":"Number Input","description":"Number field with steppers on both sides or stacked on the right, min/max/step, full keyboard control and press-and-hold that speeds up; digits roll to each new value on a spring.","files":[{"path":"registry/geturui/ui/number-input.tsx","type":"registry:ui","target":"components/ui/number-input.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":[],"name":"number-ticker","title":"Odometer Number","description":"Number that rolls each digit on its own spring reel, staggered left to right, when it scrolls into view or the value changes.","files":[{"path":"registry/geturui/ui/number-ticker.tsx","type":"registry:ui","target":"components/ui/number-ticker.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"morphing-modal","title":"Origin Modal","description":"A multi-view modal that opens from the button that launched it and returns there on close; the panel height springs between views and content crossfades through a blur.","files":[{"path":"registry/geturui/ui/morphing-modal.tsx","type":"registry:ui","target":"components/ui/morphing-modal.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":[],"name":"otp-input","title":"OTP Input","description":"A one-time-code field where a focus ring glides between slots and digits roll in; wrong codes shake, right ones draw a check.","files":[{"path":"registry/geturui/ui/otp-input.tsx","type":"registry:ui","target":"components/ui/otp-input.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"pagination","title":"Pagination","description":"Pure page-window engine plus numbered, compact, card-footer and carousel-dot paginators; the volt marker glides to the active page and numbers slide as the window shifts.","files":[{"path":"registry/geturui/ui/pagination.tsx","type":"registry:ui","target":"components/ui/pagination.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/input"],"name":"password-input","title":"Password Input","description":"Password field with an eye toggle that blinks and draws its slash, a four-segment strength meter that springs in, and an optional requirements checklist.","files":[{"path":"registry/geturui/ui/password-input.tsx","type":"registry:ui","target":"components/ui/password-input.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":[],"name":"popover","title":"Popover","description":"Click-to-open panel anchored to its trigger that scales from the trigger edge with a spring and flips above or below to stay in the viewport.","files":[{"path":"registry/geturui/ui/popover.tsx","type":"registry:ui","target":"components/ui/popover.tsx"}]},{"type":"registry:block","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/badge","@geturui/button","@geturui/number-ticker","@geturui/range-slider","@geturui/tabs"],"name":"pricing-section","title":"Pricing","description":"Pricing table with a volt billing toggle, a seat slider with volume-discount tiers and plan prices that roll digit by digit whenever billing or seats change; the featured plan glows.","files":[{"path":"registry/geturui/blocks/pricing-section.tsx","type":"registry:block","target":"components/blocks/pricing-section.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"prompt-input","title":"Prompt Input","description":"Chat composer with an auto-growing textarea, model picker and attachment chips; the send button morphs into a stop button while a reply streams.","files":[{"path":"registry/geturui/ai/prompt-input.tsx","type":"registry:component","target":"components/ai/prompt-input.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"radio-group","title":"Radio group","description":"Single-choice group with roving focus and a selected dot that glides between options on a spring; card mode turns options into tiles a volt ring slides across.","files":[{"path":"registry/geturui/ui/radio-group.tsx","type":"registry:ui","target":"components/ui/radio-group.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":[],"name":"range-slider","title":"Range Slider","description":"Slider with a volt fill, step ticks and a bar-shaped thumb that springs to each step and stretches while you drag.","files":[{"path":"registry/geturui/ui/range-slider.tsx","type":"registry:ui","target":"components/ui/range-slider.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"review-cards","title":"Review cards","description":"Five review cards — rating summary, standout quote, review composer, compact list and photo review — with count-ups, star pops, rolling vote counts and a shared-element photo viewer.","files":[{"path":"registry/geturui/examples/review-cards/summary.tsx","type":"registry:component","target":"components/examples/review-cards/summary.tsx"},{"path":"registry/geturui/examples/review-cards/quote.tsx","type":"registry:component","target":"components/examples/review-cards/quote.tsx"},{"path":"registry/geturui/examples/review-cards/write.tsx","type":"registry:component","target":"components/examples/review-cards/write.tsx"},{"path":"registry/geturui/examples/review-cards/compact.tsx","type":"registry:component","target":"components/examples/review-cards/compact.tsx"},{"path":"registry/geturui/examples/review-cards/photos.tsx","type":"registry:component","target":"components/examples/review-cards/photos.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"review-cards-summary","title":"Review cards · Rating summary","description":"Average that counts up over a star histogram whose bars grow in and filter the list.","files":[{"path":"registry/geturui/examples/review-cards/summary.tsx","type":"registry:component","target":"components/examples/review-cards/summary.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"review-cards-quote","title":"Review cards · Standout quote","description":"Single verified review with popping stars, a body that springs open with Read more, and a helpful toggle.","files":[{"path":"registry/geturui/examples/review-cards/quote.tsx","type":"registry:component","target":"components/examples/review-cards/quote.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"review-cards-write","title":"Review cards · Write a review","description":"Star radio group with hover preview and spring pop, quick tags, counted text box and a thank-you crossfade.","files":[{"path":"registry/geturui/examples/review-cards/write.tsx","type":"registry:component","target":"components/examples/review-cards/write.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"review-cards-compact","title":"Review cards · Compact list","description":"Dense rows with star lines and optimistic helpful votes whose counts roll.","files":[{"path":"registry/geturui/examples/review-cards/compact.tsx","type":"registry:component","target":"components/examples/review-cards/compact.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"review-cards-photos","title":"Review cards · Photo review","description":"Review with a drawn photo strip; a thumbnail grows into an in-card viewer with arrow keys and Escape.","files":[{"path":"registry/geturui/examples/review-cards/photos.tsx","type":"registry:component","target":"components/examples/review-cards/photos.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/field"],"name":"select","title":"Select","description":"Single-choice select on the field well with avatars, status dots, icons, groups and an optional search box; a volt highlight glides between options and the panel springs open, flipping above near the viewport edge.","files":[{"path":"registry/geturui/ui/select.tsx","type":"registry:ui","target":"components/ui/select.tsx"},{"path":"registry/geturui/ui/listbox.tsx","type":"registry:ui","target":"components/ui/listbox.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/tabs"],"name":"composition-chart","title":"Share of Total Chart","description":"100% stacked bars or areas showing each series' share per period; toggling between them re-stacks with springs, with a period tooltip and a legend that hides series.","files":[{"path":"registry/geturui/charts/composition-chart.tsx","type":"registry:component","target":"components/charts/composition-chart.tsx"}]},{"type":"registry:block","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/button","@geturui/input"],"name":"sign-up-form","title":"Sign Up Form","description":"Sign-up card with a GitHub button, an email field that validates and shakes, an animated password-strength meter, a stateful submit and a success state that morphs in with a drawn check.","files":[{"path":"registry/geturui/blocks/sign-up-form.tsx","type":"registry:block","target":"components/blocks/sign-up-form.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"social-posts","title":"Social posts","description":"Four feed posts — text, photo grid, poll and link preview — with optimistic toggles, rolling counts, a shared-layout photo viewer and results that count up.","files":[{"path":"registry/geturui/examples/social-posts/text-post.tsx","type":"registry:component","target":"components/examples/social-posts/text-post.tsx"},{"path":"registry/geturui/examples/social-posts/image-grid.tsx","type":"registry:component","target":"components/examples/social-posts/image-grid.tsx"},{"path":"registry/geturui/examples/social-posts/poll.tsx","type":"registry:component","target":"components/examples/social-posts/poll.tsx"},{"path":"registry/geturui/examples/social-posts/link-preview.tsx","type":"registry:component","target":"components/examples/social-posts/link-preview.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"social-posts-text-post","title":"Social posts · Text post","description":"Text post with optimistic like, repost and bookmark: icons pop, the like bursts and counts roll.","files":[{"path":"registry/geturui/examples/social-posts/text-post.tsx","type":"registry:component","target":"components/examples/social-posts/text-post.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"social-posts-image-grid","title":"Social posts · Photo grid","description":"Photo post whose drawn grid tiles expand into a viewer with a shared-layout morph, arrow paging and Escape to close.","files":[{"path":"registry/geturui/examples/social-posts/image-grid.tsx","type":"registry:component","target":"components/examples/social-posts/image-grid.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"social-posts-poll","title":"Social posts · Poll","description":"Poll post where voting grows the result bars and counts percentages up, with your choice marked and undo.","files":[{"path":"registry/geturui/examples/social-posts/poll.tsx","type":"registry:component","target":"components/examples/social-posts/poll.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"social-posts-link-preview","title":"Social posts · Link preview","description":"Post with an expandable body and a rich link preview whose drawn image drifts on hover, plus like and copy link.","files":[{"path":"registry/geturui/examples/social-posts/link-preview.tsx","type":"registry:component","target":"components/examples/social-posts/link-preview.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/number-ticker"],"name":"sparkline-stats","title":"Sparkline Stats","description":"KPI cards with rolling numbers, an up/down delta badge and a sparkline that draws in, with a crosshair on hover or arrow keys.","files":[{"path":"registry/geturui/charts/sparkline-stats.tsx","type":"registry:component","target":"components/charts/sparkline-stats.tsx"}]},{"type":"registry:ui","dependencies":[],"registryDependencies":[],"name":"spinner","title":"Spinner","description":"Loading indicator as a ring, dots or equaliser bars in five sizes; it announces itself as a status and slows to a pulse for reduced motion.","files":[{"path":"registry/geturui/ui/spinner.tsx","type":"registry:ui","target":"components/ui/spinner.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"stat-cards","title":"Stat cards","description":"Four metric cards — headline KPI, scrubbable sparkline, goal ring and two-period comparison — with count-ups, redrawn lines, springing arcs and bars.","files":[{"path":"registry/geturui/examples/stat-cards/kpi.tsx","type":"registry:component","target":"components/examples/stat-cards/kpi.tsx"},{"path":"registry/geturui/examples/stat-cards/sparkline.tsx","type":"registry:component","target":"components/examples/stat-cards/sparkline.tsx"},{"path":"registry/geturui/examples/stat-cards/goal.tsx","type":"registry:component","target":"components/examples/stat-cards/goal.tsx"},{"path":"registry/geturui/examples/stat-cards/comparison.tsx","type":"registry:component","target":"components/examples/stat-cards/comparison.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"stat-cards-kpi","title":"Stat cards · KPI","description":"Headline figure that counts up with its delta, and a breakdown that springs open into a stacked bar.","files":[{"path":"registry/geturui/examples/stat-cards/kpi.tsx","type":"registry:component","target":"components/examples/stat-cards/kpi.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"stat-cards-sparkline","title":"Stat cards · Sparkline","description":"Period tabs redraw the line; pointer or arrow keys scrub to any point and the figure crossfades.","files":[{"path":"registry/geturui/examples/stat-cards/sparkline.tsx","type":"registry:component","target":"components/examples/stat-cards/sparkline.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"stat-cards-goal","title":"Stat cards · Goal ring","description":"Progress ring and percentage spring to each logged step; milestones tick and the goal swaps to a done state.","files":[{"path":"registry/geturui/examples/stat-cards/goal.tsx","type":"registry:component","target":"components/examples/stat-cards/goal.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"stat-cards-comparison","title":"Stat cards · Comparison","description":"Metric tabs swap two period bars that spring to new lengths while the delta crossfades.","files":[{"path":"registry/geturui/examples/stat-cards/comparison.tsx","type":"registry:component","target":"components/examples/stat-cards/comparison.tsx"}]},{"type":"registry:block","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/number-ticker"],"name":"stats-section","title":"Stats","description":"Four headline numbers that roll in digit by digit, each with a sparkline that draws itself, fills its area and drops an end dot when scrolled into view.","files":[{"path":"registry/geturui/blocks/stats-section.tsx","type":"registry:block","target":"components/blocks/stats-section.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"stepper","title":"Stepper","description":"Progress steps, horizontal or vertical, with number, icon, dot or bar markers; connectors fill with a spring, numbers morph into drawn checks and the current step breathes.","files":[{"path":"registry/geturui/ui/stepper.tsx","type":"registry:ui","target":"components/ui/stepper.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":[],"name":"switch","title":"Switch","description":"Toggle switch whose thumb slides on a stiff spring and stretches while pressed.","files":[{"path":"registry/geturui/ui/switch.tsx","type":"registry:ui","target":"components/ui/switch.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"switch-cards","title":"Switch cards","description":"Three settings cards built on a springy switch — notification preferences with a saved cue, plan features with dependent options and a save bar, and privacy toggles that ask before turning protection off.","files":[{"path":"registry/geturui/examples/switch-cards/notifications.tsx","type":"registry:component","target":"components/examples/switch-cards/notifications.tsx"},{"path":"registry/geturui/examples/switch-cards/plan-features.tsx","type":"registry:component","target":"components/examples/switch-cards/plan-features.tsx"},{"path":"registry/geturui/examples/switch-cards/privacy.tsx","type":"registry:component","target":"components/examples/switch-cards/privacy.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"switch-cards-notifications","title":"Switch cards · Notifications","description":"Email and push preferences in labelled groups; the thumb stretches on press and a Saved chip blurs in after each change.","files":[{"path":"registry/geturui/examples/switch-cards/notifications.tsx","type":"registry:component","target":"components/examples/switch-cards/notifications.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"switch-cards-plan-features","title":"Switch cards · Plan features","description":"Workspace feature toggles where child options unlock with their parent, a locked row names its plan, and a save bar springs in once anything changes.","files":[{"path":"registry/geturui/examples/switch-cards/plan-features.tsx","type":"registry:component","target":"components/examples/switch-cards/plan-features.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"switch-cards-privacy","title":"Switch cards · Privacy","description":"Privacy and security switches with a Protected or At risk badge; turning off a sensitive one opens an inline confirmation first.","files":[{"path":"registry/geturui/examples/switch-cards/privacy.tsx","type":"registry:component","target":"components/examples/switch-cards/privacy.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":[],"name":"tabs","title":"Tabs","description":"Segmented tabs in pill, volt and underline styles; a shared spring indicator glides to the active tab and resizes to fit it.","files":[{"path":"registry/geturui/ui/tabs.tsx","type":"registry:ui","target":"components/ui/tabs.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"tag-group","title":"Tag group","description":"Chips with dots, avatars, flags, icons, counts and remove buttons, selectable singly or in sets; a removed chip blurs out while its neighbours slide closed.","files":[{"path":"registry/geturui/ui/tag-group.tsx","type":"registry:ui","target":"components/ui/tag-group.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":["@geturui/field","@geturui/tag-group"],"name":"tag-input","title":"Tag input","description":"Text field that turns entries into chips on Enter, comma or paste, validates each one, and springs new chips in while removed ones slide out.","files":[{"path":"registry/geturui/ui/tag-input.tsx","type":"registry:ui","target":"components/ui/tag-input.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/field","@geturui/button"],"name":"tag-select","title":"Tag select","description":"Multi-select whose picks become chips in the field: chips pop in with a spring and fold into “+N”, options tick a drawn checkbox, arrows walk the chips and Backspace removes them, with Reset and Select all in the footer.","files":[{"path":"registry/geturui/ui/tag-select.tsx","type":"registry:ui","target":"components/ui/tag-select.tsx"},{"path":"registry/geturui/ui/listbox.tsx","type":"registry:ui","target":"components/ui/listbox.tsx"}]},{"type":"registry:block","dependencies":["motion","lucide-react"],"registryDependencies":["@geturui/marquee"],"name":"testimonials-wall","title":"Testimonials","description":"Wall of quote cards with initials avatars: two marquee rows drifting in opposite directions, or a masonry layout whose cards blur up into view.","files":[{"path":"registry/geturui/blocks/testimonials-wall.tsx","type":"registry:block","target":"components/blocks/testimonials-wall.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":[],"name":"text-animation","title":"Text Animation","description":"Four text effects: a word-by-word blur reveal with a volt underline, a shimmer sweep, a glyph scramble and a rotating word swap.","files":[{"path":"registry/geturui/ui/text-animation.tsx","type":"registry:ui","target":"components/ui/text-animation.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":["@geturui/field"],"name":"textarea","title":"Textarea","description":"Multi-line field on the sunken well that grows with a spring between min and max rows, with a ring-gauge character counter, a resize handle and a toolbar slot.","files":[{"path":"registry/geturui/ui/textarea.tsx","type":"registry:ui","target":"components/ui/textarea.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"theme-switchers","title":"Theme switchers","description":"Three appearance controls — a light/dark/system segmented switch with a sliding thumb, an appearance card with live mini previews, and an accent and density picker — that report changes without touching your site.","files":[{"path":"registry/geturui/examples/theme-switchers/segmented.tsx","type":"registry:component","target":"components/examples/theme-switchers/segmented.tsx"},{"path":"registry/geturui/examples/theme-switchers/appearance-card.tsx","type":"registry:component","target":"components/examples/theme-switchers/appearance-card.tsx"},{"path":"registry/geturui/examples/theme-switchers/accent-density.tsx","type":"registry:component","target":"components/examples/theme-switchers/accent-density.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"theme-switchers-segmented","title":"Theme switchers · Segmented","description":"Light, dark and system options with a thumb that slides between them and an icon that turns as it lands; text or icon-only.","files":[{"path":"registry/geturui/examples/theme-switchers/segmented.tsx","type":"registry:component","target":"components/examples/theme-switchers/segmented.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"theme-switchers-appearance-card","title":"Theme switchers · Appearance card","description":"Theme cards with tiny app windows drawn in each theme's real tokens, a check that pops onto the chosen one and a stepped text-size slider.","files":[{"path":"registry/geturui/examples/theme-switchers/appearance-card.tsx","type":"registry:component","target":"components/examples/theme-switchers/appearance-card.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"theme-switchers-accent-density","title":"Theme switchers · Accent and density","description":"Accent swatches and a density control beside a live preview whose rows re-space with a layout spring and repaint in the chosen accent.","files":[{"path":"registry/geturui/examples/theme-switchers/accent-density.tsx","type":"registry:component","target":"components/examples/theme-switchers/accent-density.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"theme-toggle","title":"Theme Toggle","description":"A sun/moon button that flips the whole page between dark and light with a View Transition reveal from the button, as a circle or staggered slats.","files":[{"path":"registry/geturui/ui/theme-toggle.tsx","type":"registry:ui","target":"components/ui/theme-toggle.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":[],"name":"tilt-card","title":"Tilt Card","description":"A card that tilts in 3D toward the pointer on a spring, with a glare that tracks the cursor and layers that float at different depths.","files":[{"path":"registry/geturui/ui/tilt-card.tsx","type":"registry:ui","target":"components/ui/tilt-card.tsx"}]},{"type":"registry:ui","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"toast","title":"Toasts","description":"Imperative toasts that stack in the corner, fan out on hover, update in place from loading to done, and blur away on dismiss.","files":[{"path":"registry/geturui/ui/toast.tsx","type":"registry:ui","target":"components/ui/toast.tsx"}]},{"type":"registry:component","dependencies":["motion"],"registryDependencies":[],"name":"streaming-response","title":"Token Stream","description":"Renders an AI reply token by token from a string or async stream, fading each chunk in behind a blinking caret, with safe markdown.","files":[{"path":"registry/geturui/ai/streaming-response.tsx","type":"registry:component","target":"components/ai/streaming-response.tsx"}]},{"type":"registry:ui","dependencies":["motion"],"registryDependencies":[],"name":"tooltip","title":"Tooltip","description":"Hover and focus label rendered in a portal: it scales in from its trigger on a soft spring, flips to the side with room, carries a title, description, arrow and shortcut, and hands off instantly between neighbours.","files":[{"path":"registry/geturui/ui/tooltip.tsx","type":"registry:ui","target":"components/ui/tooltip.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"user-menus","title":"User menus","description":"Three account menus — an avatar dropdown with workspace switcher and theme row, a sidebar footer menu that opens upward, and a searchable command-style profile menu — each springing from its trigger.","files":[{"path":"registry/geturui/examples/user-menus/avatar-dropdown.tsx","type":"registry:component","target":"components/examples/user-menus/avatar-dropdown.tsx"},{"path":"registry/geturui/examples/user-menus/sidebar-footer.tsx","type":"registry:component","target":"components/examples/user-menus/sidebar-footer.tsx"},{"path":"registry/geturui/examples/user-menus/command-profile.tsx","type":"registry:component","target":"components/examples/user-menus/command-profile.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"user-menus-avatar-dropdown","title":"User menus · Avatar dropdown","description":"Top-bar avatar menu with a workspace switcher whose check glides between rows, a light/dark/system row and shortcut hints.","files":[{"path":"registry/geturui/examples/user-menus/avatar-dropdown.tsx","type":"registry:component","target":"components/examples/user-menus/avatar-dropdown.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"user-menus-sidebar-footer","title":"User menus · Sidebar footer","description":"User button for the bottom of a sidebar; the menu opens upward with a seat meter, and ArrowUp opens it on the last item.","files":[{"path":"registry/geturui/examples/user-menus/sidebar-footer.tsx","type":"registry:component","target":"components/examples/user-menus/sidebar-footer.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"user-menus-command-profile","title":"User menus · Command profile","description":"Profile menu with a search field: type to filter grouped actions, a highlight slides between rows and every action shows its shortcut.","files":[{"path":"registry/geturui/examples/user-menus/command-profile.tsx","type":"registry:component","target":"components/examples/user-menus/command-profile.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"welcome-cards","title":"Welcome cards","description":"Three dashboard welcome cards — today at a glance, onboarding checklist and what’s new — with staggered count-ups, one-at-a-time steps and a swipeable release carousel.","files":[{"path":"registry/geturui/examples/welcome-cards/today.tsx","type":"registry:component","target":"components/examples/welcome-cards/today.tsx"},{"path":"registry/geturui/examples/welcome-cards/onboarding.tsx","type":"registry:component","target":"components/examples/welcome-cards/onboarding.tsx"},{"path":"registry/geturui/examples/welcome-cards/whats-new.tsx","type":"registry:component","target":"components/examples/welcome-cards/whats-new.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"welcome-cards-today","title":"Welcome cards · Today","description":"Time-aware greeting, today’s numbers counting up in a stagger and an up-next strip you can step through.","files":[{"path":"registry/geturui/examples/welcome-cards/today.tsx","type":"registry:component","target":"components/examples/welcome-cards/today.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"welcome-cards-onboarding","title":"Welcome cards · Onboarding checklist","description":"One step open at a time; completing a step ticks, fills its segment and advances, then the card celebrates.","files":[{"path":"registry/geturui/examples/welcome-cards/onboarding.tsx","type":"registry:component","target":"components/examples/welcome-cards/onboarding.tsx"}]},{"type":"registry:component","dependencies":["motion","lucide-react"],"registryDependencies":[],"name":"welcome-cards-whats-new","title":"Welcome cards · What’s new","description":"Swipeable release carousel with drawn art; a Pro feature turns the button into an ember upgrade.","files":[{"path":"registry/geturui/examples/welcome-cards/whats-new.tsx","type":"registry:component","target":"components/examples/welcome-cards/whats-new.tsx"}]},{"name":"recipe-saas-landing-lite","type":"registry:block","title":"SaaS landing (lite)","description":"A complete SaaS landing page from free GetUrUI blocks: header, hero, logos, features, numbers, pricing, FAQ, call to action and footer.","dependencies":["lucide-react"],"registryDependencies":["@geturui/hero-section","@geturui/logo-cloud","@geturui/feature-grid","@geturui/stats-section","@geturui/pricing-section","@geturui/testimonials-wall","@geturui/faq-section","@geturui/cta-banner","@geturui/footer-block"],"files":[{"path":"registry/recipes/saas-landing-lite/page.tsx","type":"registry:block","target":"components/recipes/saas-landing-lite.tsx"}]}]}