space-game/src/components/editor/Vector3Input.svelte
Michael Mainguy 21a6d7c9ec Update rendering and add level editor components
- Enable renderingGroupId=3 for missionBrief and statusScreen (always on top)
- Adjust background stars: increase count to 4500, radius to 50000
- Add level editor Svelte components (AsteroidList, BaseConfig, LevelConfig,
  PlanetList, ShipConfig, Vector3Input editors)
- Add LEVEL_TRANSITION.md documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 12:50:12 -06:00

66 lines
1.4 KiB
Svelte

<script lang="ts">
export let label: string = '';
export let value: [number, number, number] = [0, 0, 0];
export let step: number = 1;
// Ensure value is always a valid array
$: if (!value || value.length !== 3) {
value = [0, 0, 0];
}
</script>
<div class="vector3-input">
{#if label}
<label class="vector3-label">{label}</label>
{/if}
<div class="vector3-fields">
<div class="vector3-field">
<span class="axis-label">X</span>
<input type="number" bind:value={value[0]} {step} class="settings-input" />
</div>
<div class="vector3-field">
<span class="axis-label">Y</span>
<input type="number" bind:value={value[1]} {step} class="settings-input" />
</div>
<div class="vector3-field">
<span class="axis-label">Z</span>
<input type="number" bind:value={value[2]} {step} class="settings-input" />
</div>
</div>
</div>
<style>
.vector3-input {
margin-bottom: 1rem;
}
.vector3-label {
display: block;
margin-bottom: 0.5rem;
font-weight: 500;
color: var(--color-text-primary, #fff);
}
.vector3-fields {
display: flex;
gap: 0.5rem;
}
.vector3-field {
flex: 1;
display: flex;
align-items: center;
gap: 0.25rem;
}
.axis-label {
font-size: 0.8rem;
color: var(--color-text-secondary, #aaa);
min-width: 1rem;
}
.vector3-field input {
width: 100%;
}
</style>