Keys on a non-Latin layout map to their physical US position, so j, k, gg and / work on the Russian layout. Lists get z z, z t, z b, and the first row scrolls the page to the top. The editor drops Alt chords for Esc then a letter, reorder in groups, piggy banks and subscriptions moves to J and K.
36 lines
871 B
Svelte
36 lines
871 B
Svelte
<script lang="ts" module>
|
|
export const ROW = Symbol("report-row");
|
|
</script>
|
|
|
|
<script lang="ts">
|
|
import { type Snippet, setContext } from "svelte";
|
|
import { SvelteSet } from "svelte/reactivity";
|
|
import { useReport } from "#lib/reports/report.svelte.js";
|
|
import DrillPanel from "./DrillPanel.svelte";
|
|
|
|
let {
|
|
children,
|
|
class: className = "",
|
|
}: { children: Snippet; class?: string } = $props();
|
|
|
|
const boxes = new SvelteSet<string>();
|
|
setContext(ROW, boxes);
|
|
|
|
const report = useReport();
|
|
const drill = $derived(
|
|
report.drill && boxes.has(report.drill.box) ? report.drill : null
|
|
);
|
|
</script>
|
|
|
|
<div class="grid gap-4 {className}">
|
|
{@render children()}
|
|
</div>
|
|
{#if drill}
|
|
<div
|
|
class="cladd-surface cladd-outline scroll-mt-12 overflow-hidden rounded-cladd-lg"
|
|
id="drill-{drill.box}"
|
|
>
|
|
<DrillPanel {drill} />
|
|
</div>
|
|
{/if}
|