{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "maximize-005",
  "type": "registry:block",
  "title": "Maximize 005",
  "author": "Kenney <https://kenney.nl>",
  "description": "A pronounced, ascending sound with a clear finish, suitable for impactful maximization events or significant section expansions.",
  "files": [
    {
      "path": "registry/soundcn/sounds/maximize-005/maximize-005.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const maximize005Sound: SoundAsset = {\n  name: \"maximize-005\",\n  dataUri: \"data:audio/mpeg;base64,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uphU+Sog8sZNbVMCQAy4ngiIBkOqxksssMwb0e/1hExejdLG5/n/oyK5//sIjg0OCn////MZQEHsd///+1LEHwAKDRNz5jyyUUuq7fyWllL//KpUAwRDwEFCC/////rCQkJBETM1VSCoAyFH+3lZLbhY0PEBHIgEpdhPYUv9SYwoLIgFwTk1Nf///6lEQ4Ji//9eip7oI1KUxTnf////M6HIc5z4EAczfIQhCMpyGZ0HlAYGAVUIgIiZmUE0GQC+rf1M3B0cUyCgOhmBuK9WsdoXUdAUwKQpoP0KqtBTf+z1F4kiEPNlv92azfZXeb5nhgMDdlf///9HUpAIKFFkCf/5YeZAgBM1VXcuV//7UsQrAAntJWfhtFNRRycuPNEbK+Iwh5gg1JxwDAOcHoSZOGFGKJULQZbHEU9n+sdwawkBQT+yKmZiaIsyOpE+oUSBCCN0J////KAiQQNyMT////5ZEFAIEFgAsAECCqoImamZiGQtAJAmTtwwKpmWgMgHeJQ8B4ReaKy7/ZfMyXrr4r3T2iSQcgjr/kkVFv0RqJN/9hIPBYCChz/////1KVyuQjf////NModGCYwUAx7TM1Ey7sAwBiHbKMJcbqgnaltMrqOT4mMU0WOKkITS//tSxDgACh1DaeYssplVK+388x3KhRrsqs3+ccEwkNPHG/////x4alB8me//ztv5jZ7XPG3Vna3/////ONY5UNPPPBwaXRv/8RIM1WmYqpqHfBVgIilDhsz2klsey26vVDouFRolXVXqzoTBKTwzIv+pIQgvBh2//7WLWJb4f/914iHQkExc5P/////lKIsPFFD///h0FRKFQYBAMhETERDqsArAIH6zVNjCNEbEi6IgRidAOIDESd3hELd3ebf//2KAVBeff/6Oh4440qLJR///+1LEQoAKHQtt5iCxUUiuLbyUFir/8RDomBBMPn//////6FRXt/////+YzmcccEJH/5qKu7u5l2wAAbZiz8FkwYYK9IUO4CCh6iiYGOA6F9jPckGz5ozesGnGgr8BAIUVF3us2ZLf8ogHz///////6HJMAb///xKCoZCwIO//+MBocaBxz3vMzMxDu1gdIBEaRshYKlg6AUCwyLBZEVFNkTLLMEpETTVsczarM7as/8WJAX2/uT/1OhCkJnOd//+qAMHmFg4wg///6zID/rHf/f/7UsRPAAp0yXnsGLCRRZnuPJQWWkDR4GSAfhh5mrqpmY4EAIRrhjaEOYYkMIcPpzbniTdKGPAhDAehtJLy9ur1M//qIo0G5ALnGv//////9UGw2HxYI5MaHP//id4RNERGAhC3///KgqFTIDRvvvrr+AAAQbVXlR0/SEiqxZCvXn/zQ/+6+9qLA8LZUEh07QgIDAlif/OIhAgKCwIgs////////SQkwvFgLsWyMflzii4Ph8TiAmZMCox//4ReUd///Kqru7uqiI9aATaVuTtA//tSxFqACiTbdeeY7pFaHS30wCrCAAfY9fKvA7ZdgYuFyoGFzadPhY4qZyysMvrxRyX3wqRiVvxSXH/l92nt3ZRqQ/+9E4HKF8GwSA9Gf//////uc/6h536mhFJKCQpAwwFAIVNFV///4lOhIWDF9VU1dzENtDIkASyceAUDts3MBaYtkodBKKqVUh9DajbOxvRzjLGscllU1vTv8eBcDsAQSCf+x57vnjcgpMoQPKFR4eKkBspFB7//84eBcCRGEANlAwYUyqqaq4l3f+AugEn/+1LEZIAM7PWD7DU3EVygMPzDpnopBxMCdoqGX1VHgjQjCSX15TKGPQYIKOhQGu9IqDVmqhwfKc/vxEv1YkEQ6N3b/+h1v/9DndTd0qyW3bqaaOkiJcaAg7////HKiZmoiHVd2AhQpy0HrCoESAaIT1DkqPefR0efnMpm7e/pDhOfmZ8FtLkZJlDdM4uds19rWtiv85BGB8AcGRu//////////msPOIo0G5Ubj4q7qph3W7sUGDGnzUwK4VjkJBAJofiQTxwVoj4SHh0gDB5xEv/7UsRjAEphBYPnjO9RPCJvPMeey5jVKyGLYyp0bRcs3/RRQSDwGET//Sj9P//////6mdhINFRchAOHn8/TcpoSTBXFQABgAAAoX+Zf+7ff+6aa0dH63Jw0UkkovfIwPkAwGHAMMD4DbzzAwSHCBHRaAMDhYAUFBZP+FrIsZJm6zNMLSZiXUn/0NjyRueZSSXWij/zYbSYsQFRmBpy+gbpeAGBg6KmKKR0xICeHPAwIGQAAeFkAbEpL/9R4xRdC6a1IKUZf////KY+gsbAxcaf///tSxHAACmkjefTCgBpHOyRXC1AA//1zos1MQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr/+1LEW4PAAAGkHAAAIAAANIAAAASqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==\",\n  duration: 0.526,\n  format: \"mp3\",\n  license: \"CC0\",\n  author: \"Kenney\",\n};\n",
      "type": "registry:lib"
    },
    {
      "path": "registry/soundcn/lib/sound-types.ts",
      "content": "export interface SoundAsset {\r\n  /** Unique identifier for the sound */\r\n  name: string;\r\n  /** Base64-encoded data URI (data:audio/mpeg;base64,...) */\r\n  dataUri: string;\r\n  /** Duration in seconds */\r\n  duration: number;\r\n  /** Audio format */\r\n  format: \"mp3\" | \"wav\" | \"ogg\";\r\n  /** License identifier */\r\n  license: \"CC0\" | \"OGA-BY\" | \"MIT\";\r\n  /** Original author/creator */\r\n  author: string;\r\n}\r\n\r\nexport interface UseSoundOptions {\r\n  /** Volume level from 0 to 1. Default: 1 */\r\n  volume?: number;\r\n  /** Playback speed multiplier. Default: 1 */\r\n  playbackRate?: number;\r\n  /** If true, calling play() stops current playback first. Default: false */\r\n  interrupt?: boolean;\r\n  /** If false, play() does nothing. Useful for user preferences. Default: true */\r\n  soundEnabled?: boolean;\r\n  /** Called when playback starts */\r\n  onPlay?: () => void;\r\n  /** Called when playback ends naturally */\r\n  onEnd?: () => void;\r\n  /** Called when pause() is called */\r\n  onPause?: () => void;\r\n  /** Called when stop() is called */\r\n  onStop?: () => void;\r\n}\r\n\r\nexport type PlayFunction = (overrides?: {\r\n  volume?: number;\r\n  playbackRate?: number;\r\n}) => void;\r\n\r\nexport interface SoundControls {\r\n  stop: () => void;\r\n  pause: () => void;\r\n  isPlaying: boolean;\r\n  duration: number | null;\r\n  sound: SoundAsset;\r\n}\r\n\r\nexport type UseSoundReturn = readonly [PlayFunction, SoundControls];\r\n",
      "type": "registry:lib"
    },
    {
      "path": "registry/soundcn/lib/sound-engine.ts",
      "content": "let audioContext: AudioContext | null = null;\nconst bufferCache = new Map<string, AudioBuffer>();\n\nexport function getAudioContext(): AudioContext {\n  if (!audioContext) {\n    audioContext = new AudioContext();\n  }\n  return audioContext;\n}\n\nexport async function decodeAudioData(dataUri: string): Promise<AudioBuffer> {\n  const cached = bufferCache.get(dataUri);\n  if (cached) return cached;\n\n  const ctx = getAudioContext();\n  const base64 = dataUri.split(\",\")[1];\n  const binaryString = atob(base64);\n  const bytes = new Uint8Array(binaryString.length);\n  for (let i = 0; i < binaryString.length; i++) {\n    bytes[i] = binaryString.charCodeAt(i);\n  }\n\n  const audioBuffer = await ctx.decodeAudioData(bytes.buffer.slice(0));\n  bufferCache.set(dataUri, audioBuffer);\n  return audioBuffer;\n}\n\nexport interface PlaySoundOptions {\n  volume?: number;\n  playbackRate?: number;\n  onEnd?: () => void;\n}\n\nexport interface SoundPlayback {\n  stop: () => void;\n}\n\nexport async function playSound(\n  dataUri: string,\n  options: PlaySoundOptions = {}\n): Promise<SoundPlayback> {\n  const { volume = 1, playbackRate = 1, onEnd } = options;\n  const ctx = getAudioContext();\n  if (ctx.state === \"suspended\") {\n    await ctx.resume();\n  }\n\n  const buffer = await decodeAudioData(dataUri);\n  const source = ctx.createBufferSource();\n  const gain = ctx.createGain();\n\n  source.buffer = buffer;\n  source.playbackRate.value = playbackRate;\n  gain.gain.value = volume;\n\n  source.connect(gain);\n  gain.connect(ctx.destination);\n\n  source.onended = () => {\n    onEnd?.();\n  };\n\n  source.start(0);\n\n  return {\n    stop: () => {\n      try {\n        source.stop();\n      } catch {\n        // No-op if already stopped.\n      }\n    },\n  };\n}\n",
      "type": "registry:lib"
    }
  ],
  "meta": {
    "duration": 0.526,
    "format": "mp3",
    "sizeKb": 5,
    "license": "CC0",
    "tags": [
      "maximize",
      "005"
    ],
    "keywords": [
      "maximize",
      "pronounced",
      "ascending",
      "impactful",
      "section expand",
      "window",
      "ui effect",
      "transition",
      "positive",
      "clear finish",
      "digital",
      "interface",
      "open",
      "show",
      "grow",
      "significant",
      "longer",
      "reveal",
      "modal"
    ]
  },
  "categories": [
    "maximize"
  ]
}