{"name":"shoogle","homepage":"https://shoogle.dev","query":"use-region-ping","pagination":{"hasMore":false,"limit":100,"offset":0,"total":100},"items":[{"addCommandArgument":"@shadcncraft/use-mobile","name":"shadcncraft/use-mobile","registry":"@shadcncraft","type":"registry:hook"},{"addCommandArgument":"@shadcncraft/use-carousel","name":"shadcncraft/use-carousel","registry":"@shadcncraft","type":"registry:hook"},{"addCommandArgument":"@shadcncraft/use-click-outside","name":"shadcncraft/use-click-outside","registry":"@shadcncraft","type":"registry:hook"},{"addCommandArgument":"@neon-ui/use-region-ping","description":"Measures browser round-trip latency to per-region endpoints via opaque no-cors requests.","name":"neon-ui/use-region-ping","registry":"@neon-ui","type":"registry:hook"},{"addCommandArgument":"@neon-ui/region-globe","description":"Tilted 3D globe (globe.gl) with a monochrome relief surface, clickable region markers, and arc travel effects between regions.","name":"neon-ui/region-globe","registry":"@neon-ui","type":"registry:component"},{"addCommandArgument":"@neon-ui/region-select","description":"Server location picker: an interactive dot-matrix world map synced with an accessible select.","name":"neon-ui/region-select","registry":"@neon-ui","type":"registry:component"},{"addCommandArgument":"@neon-ui/region-card","description":"Floating server-info chip: region name, mono id, and a color-coded ping line.","name":"neon-ui/region-card","registry":"@neon-ui","type":"registry:component"},{"addCommandArgument":"@coss/use-render","name":"coss/use-render","registry":"@coss","type":"registry:lib"},{"addCommandArgument":"@cnippet/use-render","name":"cnippet/use-render","registry":"@cnippet","type":"registry:lib"},{"addCommandArgument":"@kaui/use-debounce","description":"A debounce hook that returns a stable { execute, cancel } object — safe to call without wrapping in useCallback","name":"kaui/use-debounce","registry":"@kaui","type":"registry:hook"},{"addCommandArgument":"@kaui/use-async","description":"A hook that owns the async action lifecycle — loading state, success, error, and settled callbacks","name":"kaui/use-async","registry":"@kaui","type":"registry:hook"},{"addCommandArgument":"@whiskeyjack/use-theme","description":"The theme engine: light, dark, system, and OLED, with persistence and theme-color meta kept in sync.","name":"whiskeyjack/use-theme","registry":"@whiskeyjack","type":"registry:hook"},{"addCommandArgument":"@seamui/use-copy","description":"Copy-to-clipboard hook with a self-resetting \"copied\" flag, shared by every seamui copy affordance.","name":"seamui/use-copy","registry":"@seamui","type":"registry:lib"},{"addCommandArgument":"@retab/use-mobile","description":"A media query hook for mobile responsive UI.","name":"retab/use-mobile","registry":"@retab","type":"registry:hook"},{"addCommandArgument":"@spectrumui/use-toast","description":"component for the Use Toast","name":"spectrumui/use-toast","registry":"@spectrumui","type":"registry:component"},{"addCommandArgument":"@termcn/use-notifications","description":"Notifications state and context helpers.","name":"termcn/use-notifications","registry":"@termcn","type":"registry:hook"},{"addCommandArgument":"@termcn/use-interval","description":"React-safe interval helper.","name":"termcn/use-interval","registry":"@termcn","type":"registry:hook"},{"addCommandArgument":"@termcn/use-input","description":"Keyboard input hook wrapping Ink's useInput.","name":"termcn/use-input","registry":"@termcn","type":"registry:hook"},{"addCommandArgument":"@termcn/use-focus","description":"Focus helper wrapping Ink's useFocus.","name":"termcn/use-focus","registry":"@termcn","type":"registry:hook"},{"addCommandArgument":"@termcn/use-clipboard","description":"Clipboard hook with browser and terminal fallbacks.","name":"termcn/use-clipboard","registry":"@termcn","type":"registry:hook"},{"addCommandArgument":"@termcn/use-animation","description":"Frame-based animation helper for terminal UI components.","name":"termcn/use-animation","registry":"@termcn","type":"registry:hook"},{"addCommandArgument":"@extend/use-mobile","description":"A media query hook for mobile responsive UI.","name":"extend/use-mobile","registry":"@extend","type":"registry:hook"},{"addCommandArgument":"@elements/use-sound","description":"React hook for playing sound assets via Web Audio API","name":"elements/use-sound","registry":"@elements","type":"registry:hook"},{"addCommandArgument":"@limeplay/use-idle","name":"limeplay/use-idle","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@limeplay/use-playback","name":"limeplay/use-playback","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@limeplay/use-playlist","name":"limeplay/use-playlist","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@limeplay/use-seek","name":"limeplay/use-seek","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@limeplay/use-captions","name":"limeplay/use-captions","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@limeplay/use-interval","name":"limeplay/use-interval","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@limeplay/use-asset","name":"limeplay/use-asset","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@limeplay/use-player","name":"limeplay/use-player","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@limeplay/use-timeline","name":"limeplay/use-timeline","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@limeplay/use-volume","name":"limeplay/use-volume","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@limeplay/use-media","name":"limeplay/use-media","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@wigggle-ui/use-weather","name":"wigggle-ui/use-weather","registry":"@wigggle-ui","type":"registry:hook"},{"addCommandArgument":"@wigggle-ui/use-location","name":"wigggle-ui/use-location","registry":"@wigggle-ui","type":"registry:hook"},{"addCommandArgument":"@jolyui/use-mobile","name":"jolyui/use-mobile","registry":"@jolyui","type":"registry:hook"},{"addCommandArgument":"@intentui/use-mobile","description":"use-mobile","name":"intentui/use-mobile","registry":"@intentui","type":"registry:hook"},{"addCommandArgument":"@intentui/use-clipboard","description":"use-clipboard","name":"intentui/use-clipboard","registry":"@intentui","type":"registry:hook"},{"addCommandArgument":"@ncdai/use-sound","description":"Hook for playing sound effects with volume, playback rate, and interrupt controls.","name":"ncdai/use-sound","registry":"@ncdai","type":"registry:hook"},{"addCommandArgument":"@diceui/use-mobile","name":"diceui/use-mobile","registry":"@diceui","type":"registry:hook"},{"addCommandArgument":"@soundcn/use-sound","description":"A lightweight React hook for playing sound effects using the Web Audio API. Zero dependencies.","name":"soundcn/use-sound","registry":"@soundcn","type":"registry:hook"},{"addCommandArgument":"@delta/use-mobile","name":"delta/use-mobile","registry":"@delta","type":"registry:hook"},{"addCommandArgument":"@elevenlabs-ui/use-scribe","name":"elevenlabs-ui/use-scribe","registry":"@elevenlabs-ui","type":"registry:hook"},{"addCommandArgument":"@elevenlabs-ui/use-mobile","name":"elevenlabs-ui/use-mobile","registry":"@elevenlabs-ui","type":"registry:hook"},{"addCommandArgument":"@efferd/use-keypress","description":"Use keypress hook.","name":"efferd/use-keypress","registry":"@efferd","type":"registry:hook"},{"addCommandArgument":"@efferd/use-scroll","description":"Use scroll hook.","name":"efferd/use-scroll","registry":"@efferd","type":"registry:hook"},{"addCommandArgument":"@shadcn-ui-blocks/marketing-pro-banners-region-banner","description":"A bordered card row pairing a globe icon and detected location lead with a primary switch button beside a quiet stay option.","name":"shadcn-ui-blocks/marketing-pro-banners-region-banner","registry":"@shadcn-ui-blocks","type":"registry:block"},{"addCommandArgument":"@shadcnblocks/select-select-region-with-latency","description":"Deploy region picker with flag, label, and latency badge per option.","name":"shadcnblocks/select-select-region-with-latency","registry":"@shadcnblocks","type":"registry:block"},{"addCommandArgument":"@shadcn-ui-blocks/application-pro-maps-location-region-selector","description":"Data-residency region picker with latency indicators, compliance notes per region, and a footer stating region is set once at workspace creation.","name":"shadcn-ui-blocks/application-pro-maps-location-region-selector","registry":"@shadcn-ui-blocks","type":"registry:block"},{"addCommandArgument":"@shadcn-ui-blocks/application-pro-accessibility-live-region-log","description":"ARIA live region event log with timestamps, politeness badges, source selectors, and flags for duplicate, chatty, and empty announcements.","name":"shadcn-ui-blocks/application-pro-accessibility-live-region-log","registry":"@shadcn-ui-blocks","type":"registry:block"},{"addCommandArgument":"@coss/use-media-query","name":"coss/use-media-query","registry":"@coss","type":"registry:hook"},{"addCommandArgument":"@liquefy-ui/use-liquid-glass","description":"The hook that wires an element to the WebGL renderer and the motion springs.","name":"liquefy-ui/use-liquid-glass","registry":"@liquefy-ui","type":"registry:hook"},{"addCommandArgument":"@cubby-ui/use-list-virtualizer","description":"A custom React hook for list virtualizer.","name":"cubby-ui/use-list-virtualizer","registry":"@cubby-ui","type":"registry:hook"},{"addCommandArgument":"@cubby-ui/use-fuzzy-filter","description":"A custom React hook for fuzzy filter.","name":"cubby-ui/use-fuzzy-filter","registry":"@cubby-ui","type":"registry:hook"},{"addCommandArgument":"@cubby-ui/use-controllable-state","description":"A custom React hook for controllable state.","name":"cubby-ui/use-controllable-state","registry":"@cubby-ui","type":"registry:hook"},{"addCommandArgument":"@cubby-ui/use-animated-height","description":"A custom React hook for animated height.","name":"cubby-ui/use-animated-height","registry":"@cubby-ui","type":"registry:hook"},{"addCommandArgument":"@channel3/use-product-search","description":"Query + filter state, debounced auto-search, and infinite-scroll pagination via an injected search fetcher.","name":"channel3/use-product-search","registry":"@channel3","type":"registry:hook"},{"addCommandArgument":"@channel3/use-infinite-scroll","description":"Headless infinite-scroll pagination over a token-paged list: seeds an initial page, appends subsequent pages via an injected fetcher, and exposes a sentinel ref.","name":"channel3/use-infinite-scroll","registry":"@channel3","type":"registry:hook"},{"addCommandArgument":"@channel3/use-async-options","description":"Debounced typeahead loader for brand/category suggestions, delegating to an injected server-side fetcher.","name":"channel3/use-async-options","registry":"@channel3","type":"registry:hook"},{"addCommandArgument":"@channel3/use-product-recommendations","description":"Lazily fetches similar products when the section scrolls into view, via an injected fetcher, so it never blocks the PDP.","name":"channel3/use-product-recommendations","registry":"@channel3","type":"registry:hook"},{"addCommandArgument":"@channel3/use-variant-selection","description":"Manages variant selection and server-side re-resolution via an injected resolver, keeping the API key on your server.","name":"channel3/use-variant-selection","registry":"@channel3","type":"registry:hook"},{"addCommandArgument":"@channel3/use-in-viewport","description":"Fires a callback when an element enters the viewport via IntersectionObserver, with one-shot and repeating modes for lazy sections and infinite-scroll sentinels.","name":"channel3/use-in-viewport","registry":"@channel3","type":"registry:hook"},{"addCommandArgument":"@channel3/use-latest-request","description":"Latest-wins guard for overlapping async work: tracks the most recent request and drops stale responses from superseded ones.","name":"channel3/use-latest-request","registry":"@channel3","type":"registry:hook"},{"addCommandArgument":"@cnippet/use-media-query","name":"cnippet/use-media-query","registry":"@cnippet","type":"registry:hook"},{"addCommandArgument":"@kaui/use-controlled-state","description":"Uncontrolled/controlled state bridge — use like useState but accepts optional value and onChange props for full controlled mode support","name":"kaui/use-controlled-state","registry":"@kaui","type":"registry:hook"},{"addCommandArgument":"@whiskeyjack/use-swipe-navigation","description":"Swipe between tabs with an axis-locked touch gesture that flips direction under RTL.","name":"whiskeyjack/use-swipe-navigation","registry":"@whiskeyjack","type":"registry:hook"},{"addCommandArgument":"@whiskeyjack/use-scroll-indicator","description":"Scroll metrics (thumb size, position, visibility) that drive ScrollIndicator.","name":"whiskeyjack/use-scroll-indicator","registry":"@whiskeyjack","type":"registry:hook"},{"addCommandArgument":"@whiskeyjack/use-scroll-fade","description":"Vertical edge-fade masks for a height-capped scrollable panel; returns the CSS class to apply.","name":"whiskeyjack/use-scroll-fade","registry":"@whiskeyjack","type":"registry:hook"},{"addCommandArgument":"@whiskeyjack/use-route-focus","description":"Move focus to the main content on route change, so keyboard and screen-reader users land in the new page.","name":"whiskeyjack/use-route-focus","registry":"@whiskeyjack","type":"registry:hook"},{"addCommandArgument":"@whiskeyjack/use-reduced-motion","description":"Respect the user's reduced-motion preference in JS-driven motion.","name":"whiskeyjack/use-reduced-motion","registry":"@whiskeyjack","type":"registry:hook"},{"addCommandArgument":"@whiskeyjack/use-layout-gate","description":"Read the wide / xlwide layout gates in JS, for a decision CSS cannot express.","name":"whiskeyjack/use-layout-gate","registry":"@whiskeyjack","type":"registry:hook"},{"addCommandArgument":"@whiskeyjack/use-input-type","description":"Detect touch versus mouse input, for controls that phrase or size themselves differently.","name":"whiskeyjack/use-input-type","registry":"@whiskeyjack","type":"registry:hook"},{"addCommandArgument":"@whiskeyjack/use-focus-trap","description":"Trap focus inside an overlay while it is open, and restore it to the trigger on close.","name":"whiskeyjack/use-focus-trap","registry":"@whiskeyjack","type":"registry:hook"},{"addCommandArgument":"@whiskeyjack/use-drag-reorder","description":"Drag-to-reorder list logic with an accessible keyboard path, behind ReorderList.","name":"whiskeyjack/use-drag-reorder","registry":"@whiskeyjack","type":"registry:hook"},{"addCommandArgument":"@retab/use-segment-interaction","description":"Client hook that coordinates hover, focus, and persistent selection across Segment[] surfaces.","name":"retab/use-segment-interaction","registry":"@retab","type":"registry:ui"},{"addCommandArgument":"@retab/use-mount-effect","description":"A mount-only effect hook for explicit lifecycle escape hatches.","name":"retab/use-mount-effect","registry":"@retab","type":"registry:hook"},{"addCommandArgument":"@tailark/core-use-media","description":"Tailark core use media hook","name":"tailark/core-use-media","registry":"@tailark","type":"registry:hook"},{"addCommandArgument":"@neon-ui/use-consumption-history","description":"Fetches consumption history through your own proxy route and shapes it into buckets and totals.","name":"neon-ui/use-consumption-history","registry":"@neon-ui","type":"registry:hook"},{"addCommandArgument":"@neon-ui/use-gateway-models","description":"Fetches a gateway model catalog and keeps the selection valid against it: explicit pick, then preferred default, then first available.","name":"neon-ui/use-gateway-models","registry":"@neon-ui","type":"registry:hook"},{"addCommandArgument":"@reui/use-slider-input","name":"reui/use-slider-input","registry":"@reui","type":"registry:hook"},{"addCommandArgument":"@reui/use-scroll-position","name":"reui/use-scroll-position","registry":"@reui","type":"registry:hook"},{"addCommandArgument":"@reui/use-file-upload","name":"reui/use-file-upload","registry":"@reui","type":"registry:hook"},{"addCommandArgument":"@ericts/use-scroll-anchor","description":"A client-safe React hook that parks a selected item at a fixed anchor point in a scroll container, with a configurable easing and duration — the click-to-scroll behavior for navigation panels, command palettes, and step lists.","name":"ericts/use-scroll-anchor","registry":"@ericts","type":"registry:hook"},{"addCommandArgument":"@ericts/use-element-height","description":"A client-safe React hook that measures an element's height with ResizeObserver so a container can animate between content heights.","name":"ericts/use-element-height","registry":"@ericts","type":"registry:hook"},{"addCommandArgument":"@ericts/use-reduced-motion","description":"A client-safe React hook for reading prefers-reduced-motion and reacting to preference changes.","name":"ericts/use-reduced-motion","registry":"@ericts","type":"registry:hook"},{"addCommandArgument":"@fluid/use-merge-split","description":"React hook + renderer for the selected-background merge/split animation. When one row bridges or splits two contiguous selected runs, their inner edges glide together (or apart) and swap to a single block, instead of one block spring-growing over the union.","name":"fluid/use-merge-split","registry":"@fluid","type":"registry:hook"},{"addCommandArgument":"@fluid/use-touch-primary","description":"Detects touch-primary devices (coarse pointer + touch points), updating live on pointer-mode and media-query changes. Adapted from Lina (https://lina.sameer.sh).","name":"fluid/use-touch-primary","registry":"@fluid","type":"registry:hook"},{"addCommandArgument":"@fluid/use-proximity-hover","description":"React hook for proximity-based hover detection. Tracks the closest item to the mouse cursor within a container, enabling smooth animated background indicators.","name":"fluid/use-proximity-hover","registry":"@fluid","type":"registry:hook"},{"addCommandArgument":"@elements/use-ai-avatar","description":"React hook for generating AI avatars from photos with multiple style options","name":"elements/use-ai-avatar","registry":"@elements","type":"registry:ui"},{"addCommandArgument":"@elements/browser-use-logo","description":"Browser Use logo with icon variant and dark/light modes","name":"elements/browser-use-logo","registry":"@elements","type":"registry:block"},{"addCommandArgument":"@limeplay/use-playback-rate","name":"limeplay/use-playback-rate","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@limeplay/use-track-events","name":"limeplay/use-track-events","registry":"@limeplay","type":"registry:hook"},{"addCommandArgument":"@formcn/use-file-upload","description":"state management hook for file upload component","name":"formcn/use-file-upload","registry":"@formcn","type":"registry:hook"},{"addCommandArgument":"@intentui/use-media-query","description":"use-media-query","name":"intentui/use-media-query","registry":"@intentui","type":"registry:hook"},{"addCommandArgument":"@ncdai/use-controllable-state","name":"ncdai/use-controllable-state","registry":"@ncdai","type":"registry:hook"},{"addCommandArgument":"@diceui/use-lazy-ref","name":"diceui/use-lazy-ref","registry":"@diceui","type":"registry:hook"},{"addCommandArgument":"@diceui/use-as-ref","name":"diceui/use-as-ref","registry":"@diceui","type":"registry:hook"},{"addCommandArgument":"@openstatus/use-media-query","description":"React hook for responsive media query detection","name":"openstatus/use-media-query","registry":"@openstatus","type":"registry:hook"},{"addCommandArgument":"@elevenlabs-ui/use-transcript-viewer","name":"elevenlabs-ui/use-transcript-viewer","registry":"@elevenlabs-ui","type":"registry:hook"}],"totalResults":100,"timestamp":"2026-08-04T09:18:40.209Z"}