feat: add dimension tools for new flow

This commit is contained in:
2026-09-05 10:06:25 +05:00
parent 1e9b35406d
commit 2601aa5b5c
12 changed files with 325 additions and 45 deletions
@@ -0,0 +1,50 @@
<script lang="ts">
import type { Dimension, DimensionSpec } from "$lib/registry-schema";
import NumberField from "./NumberField.svelte";
interface Props {
label: string;
value: Dimension;
spec: DimensionSpec;
oninput?: (value: Dimension) => void;
}
let { label, value = $bindable(), spec, oninput }: Props = $props();
function setAxis(axis: "width" | "height", n: number) {
value = { ...value, [axis]: n };
oninput?.(value);
}
</script>
<div class="dimension-field">
<span class="dimension-label">{label}</span>
<NumberField
label="Width"
value={value.width}
min={spec.min}
max={spec.max}
oninput={(n) => setAxis("width", n)}
/>
<NumberField
label="Height"
value={value.height}
min={spec.min}
max={spec.max}
oninput={(n) => setAxis("height", n)}
/>
</div>
<style>
.dimension-field {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--space-m);
}
.dimension-label {
grid-column: 1 / -1;
color: var(--foreground);
font-size: 11px;
letter-spacing: 0.5px;
text-transform: uppercase;
}
</style>