mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-07 17:18:13 -07:00
45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
import { CUBE_FACE_SPECS, createCubeFace } from "../../../cube/faces.js";
|
|
|
|
/**
|
|
* @param {number} [fill]
|
|
*/
|
|
export function createCubeButton(fill = 1) {
|
|
const element = document.createElement("button");
|
|
|
|
element.type = "button";
|
|
|
|
return { element, ...populateCube(element, fill) };
|
|
}
|
|
|
|
/**
|
|
* @param {number} [fill]
|
|
*/
|
|
export function createCubeDiv(fill = 1) {
|
|
const element = document.createElement("div");
|
|
|
|
return { element, ...populateCube(element, fill) };
|
|
}
|
|
|
|
/**
|
|
* @param {HTMLElement} element
|
|
* @param {number} fill
|
|
*/
|
|
function populateCube(element, fill) {
|
|
const topFace = createCubeFace("div", "text", "top");
|
|
const rightFace = createCubeFace("div", "text", "right");
|
|
const leftFace = createCubeFace("div", "text", "left");
|
|
|
|
element.dataset.cube = "block";
|
|
element.style.setProperty("--fill", String(fill));
|
|
element.append(
|
|
...CUBE_FACE_SPECS.map(([role, side]) =>
|
|
createCubeFace("div", role, side),
|
|
),
|
|
rightFace,
|
|
leftFace,
|
|
topFace,
|
|
);
|
|
|
|
return { topFace, rightFace, leftFace };
|
|
}
|