smoke usage examples

```
<v-btn id="pneis" @click="addSmoke">smoke me</v-btn>

import smoke from "#src/lib/eggs/smoke"

const smokeEffect = ref(null)

const addSmoke = (e) => {
  const element = document.querySelector("#pneis")

  if (smokeEffect.value === null) {
    smokeEffect.value = smoke(element, {
      // Emission pattern control
      emissionWidth: 0.8, // Use 80% of element width for emission
      emissionPattern: "gaussian", // 'uniform', 'gaussian', or 'centered'

      // Dispersion control
      disperseAngle: 45, // 45 degree spread angle
      turbulence: 0.1, // Add random movement
      swayFrequency: 0.003, // How often the smoke sways
      swayAmplitude: 0.1, // How far the smoke sways

      // Basic appearance
      color: [50, 50, 50],
      baseOpacity: 1,
      particlesPerEmission: 2,
    })
    smokeEffect.value.start()
    // smokeEffect.value.addSmoke(0, 0, 2)
  } else {
    smokeEffect.value.stop()
    smokeEffect.value.destroy()
    smokeEffect.value = null
  }
}
```

```
// Create a smoke effect for an element
const element = document.getElementById('myElement');
const smokeEffect = createSmokeEffect(element, {
  // Emission pattern control
  emissionWidth: 0.8,          // Use 80% of element width for emission
  emissionPattern: 'gaussian', // 'uniform', 'gaussian', or 'centered'

  // Dispersion control
  disperseAngle: 45,          // 45 degree spread angle
  turbulence: 0.4,           // Add random movement
  swayFrequency: 0.003,      // How often the smoke sways
  swayAmplitude: 0.6,        // How far the smoke sways

  // Basic appearance
  color: [50, 50, 50],
  baseOpacity: 0.2,
  particlesPerEmission: 2
});

// Start the effect
smokeEffect.start();


// Stop the effect
smokeEffect.stop();

// Update configuration on the fly
smokeEffect.updateConfig({
  color: [50, 50, 50],
  windForce: 0.08
});

// Clean up when done
smokeEffect.destroy();
```
