UNPKG

@trap_stevo/legendarybuilderproreact-ui

Version:

The legendary UI & utility API that makes your application a legendary application. ~ Created by Steven Compton

62 lines 3.77 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } import React, { useState } from "react"; function HUDHoloSpotlightAmbience(hudHoloSpotlightAmbienceConfigurationSettings) { var _hudHoloSpotlightAmbi = hudHoloSpotlightAmbienceConfigurationSettings.spotlightAmbienceContainerConfigurationSettings, spotlightAmbienceContainerConfigurationSettings = _hudHoloSpotlightAmbi === void 0 ? {} : _hudHoloSpotlightAmbi, _hudHoloSpotlightAmbi2 = hudHoloSpotlightAmbienceConfigurationSettings.spotlightColor, spotlightColor = _hudHoloSpotlightAmbi2 === void 0 ? "rgba(247, 247, 187, 0.269)" : _hudHoloSpotlightAmbi2, _hudHoloSpotlightAmbi3 = hudHoloSpotlightAmbienceConfigurationSettings.luminescent, luminescent = _hudHoloSpotlightAmbi3 === void 0 ? false : _hudHoloSpotlightAmbi3, _hudHoloSpotlightAmbi4 = hudHoloSpotlightAmbienceConfigurationSettings.outerRadius, outerRadius = _hudHoloSpotlightAmbi4 === void 0 ? "10%" : _hudHoloSpotlightAmbi4, _hudHoloSpotlightAmbi5 = hudHoloSpotlightAmbienceConfigurationSettings.innerRadius, innerRadius = _hudHoloSpotlightAmbi5 === void 0 ? "5%" : _hudHoloSpotlightAmbi5, children = hudHoloSpotlightAmbienceConfigurationSettings.children; var _useState = useState({}), _useState2 = _slicedToArray(_useState, 2), highlightStyle = _useState2[0], setHighlightStyle = _useState2[1]; var mergedStyles = _objectSpread({ position: "relative", border: "2px solid #333", borderRadius: "10px", overflow: "hidden" }, spotlightAmbienceContainerConfigurationSettings); var spotlightStyles = _objectSpread({ position: "absolute", transition: "background 0.3s, border-image 0.3s", borderRadius: "inherit", pointerEvents: "none", content: '""', height: "100%", width: "100%", left: 0, top: 0 }, highlightStyle); var handleMouseMove = function handleMouseMove(e) { var rect = e.currentTarget.getBoundingClientRect(); var x = e.clientX - rect.left; var y = e.clientY - rect.top; var luminescentColor = spotlightColor.replace(/rgba?\((\d+), (\d+), (\d+).*/, "rgba($1, $2, $3, 0.5)"); var gradient = luminescent ? "radial-gradient(circle at ".concat(x, "px ").concat(y, "px, ").concat(spotlightColor, " ").concat(innerRadius, ", ").concat(luminescentColor, " ").concat(outerRadius, ", transparent 60%)") : "radial-gradient(circle at ".concat(x, "px ").concat(y, "px, ").concat(spotlightColor, " ").concat(innerRadius, ", transparent ").concat(outerRadius, ")"); setHighlightStyle({ borderImage: "".concat(gradient, " 1"), background: gradient }); }; var handleMouseLeave = function handleMouseLeave() { setHighlightStyle({}); }; return /*#__PURE__*/React.createElement("div", { style: mergedStyles, onMouseLeave: handleMouseLeave, onMouseMove: handleMouseMove }, /*#__PURE__*/React.createElement("div", { style: spotlightStyles }), children); } ; export default HUDHoloSpotlightAmbience;