JSFiddle - React, Tailwind, and code Playground

HTML

<script type="importmap">
  {
    "imports": {
      "three": "https://cdn.jsdelivr.net/npm/three@0.163.0/build/three.module.js",
      "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.163.0/examples/jsm/"
    }
  }
</script>

CSS

body {
  overflow: hidden;
  margin: 0;
}

JavaScript

import * as THREE from "three";
import { OrbitControls } from "three/addons/controls/OrbitControls.js";
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.set(2, 2, 4).setLength(40);
var renderer = new THREE.WebGLRenderer({
  antialias: true
});
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColor(0x101010);
document.body.appendChild(renderer.domElement);

var controls = new OrbitControls(camera, renderer.domElement);

scene.add(new THREE.AxesHelper(3));

var rawPoints = [
    {
        "x": -3.70695424079895,
        "y": -1.5,
        "z": -6.309837818145752
    },
    {
        "x": -3.70695424079895,
        "y": 1.637024998664856,
        "z": -6.309837818145752
    },
    {
        "x": 0.8760173916816711,
        "y": -1.5,
        "z": -8.244649887084961
    },
    {
        "x": 0.8760173916816711,
        "y": 1.637024998664856,
        "z": -8.244649887084961
    }
]

var points = [];
rawPoints.forEach(r => {
	points.push(new THREE.Vector3(r.x, r.y, r.z));
});

var tri = new THREE.Triangle(points[2], points[1], points[0]);
var normal = new THREE.Vector3();
tri.getNormal(normal);

var baseNormal = new THREE.Vector3(0, 0, 1);
var quaternion = new THREE.Quaternion().setFromUnitVectors(normal, baseNormal);
var quaternionBack = new THREE.Quaternion().setFromUnitVectors(baseNormal, normal);

var tempPoints = [];
points.forEach(p => {
  tempPoints.push(p.clone().applyQuaternion(quaternion));
})
console.log(tempPoints);

var texture = new THREE.TextureLoader().load("https://threejs.org/examples/textures/uv_grid_opengl.jpg");

var shape = new THREE.Shape(tempPoints);
var shapeGeom = new THREE.ShapeGeometry(shape);
var mesh = new THREE.Mesh(shapeGeom, new THREE.MeshBasicMaterial({
  //color: "red",
  map: texture,
  side: THREE.DoubleSide,
  wireframe: false
}));
var box = new THREE.Box3().setFromObject(mesh);
var size = new...