<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">(this["webpackJsonppolyhedra-viewer"]=this["webpackJsonppolyhedra-viewer"]||[]).push([[8],{139:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"m",(function(){return u})),n.d(t,"f",(function(){return s})),n.d(t,"k",(function(){return l})),n.d(t,"d",(function(){return d})),n.d(t,"j",(function(){return f})),n.d(t,"l",(function(){return m})),n.d(t,"e",(function(){return p})),n.d(t,"g",(function(){return v})),n.d(t,"h",(function(){return h})),n.d(t,"n",(function(){return g})),n.d(t,"i",(function(){return y}));var a=n(25),r=n(570),i=n(26),c=n(165);n.d(t,"c",(function(){return c.Vec3D})),n.d(t,"b",(function(){return c.Plane}));var o=Math.pow(10,-3),u=function(e){return Object(r.a)(c.Vec3D,Object(i.a)(e))},s=function(e,t){return e.add(t).scale(.5)};function l(e,t){return e.getInverted().equalsWithTolerance(t,o)}function d(e,t,n){return t.sub(e).angleBetween(n.sub(e),!0)||0}function f(e){if(e.length&lt;3)throw new Error("Need at least three points for a plane");return new c.Plane(new c.Triangle3D(e[0],e[1],e[2]))}function m(e){var t=f(e);return e.every((function(e){return t.getDistanceToPoint(e)&lt;o}))}function p(e){return e.reduce((function(e,t){return e.add(t)})).scale(1/e.length)}function v(e){var t=Object(a.a)(e,3),n=t[0],r=t[1],i=t[2];return n.sub(r).cross(r.sub(i)).getNormalized()}function h(e){return new c.Ray3D(p(e),v(e))}function g(e,t){return function(n){return t(n.sub(e)).add(e)}}function b(e,t){var n=e.cross(t);return new c.Matrix4x4(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1)}function y(e,t,n,a){var r=b(e,t);return b(n,a).multiply(r.getTransposed())}},141:function(e,t,n){"use strict";var a=n(181);n.d(t,"Polyhedron",(function(){return a.a}));n(172),n(170),n(191),n(171);var r=n(229);n.d(t,"Cap",(function(){return r.a}));n(230);var i=n(193);n.d(t,"normalizeVertex",(function(){return i.b}))},170:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var a=n(74),r=n(75),i=n(139),c=function(){function e(t,n){Object(a.a)(this,e),this.polyhedron=void 0,this.vertices=void 0,this.edges=void 0,this.vectors=void 0,this.polyhedron=t[0].polyhedron,this.vertices=t,this.edges=n,this.vectors=this.vertices.map((function(e){return e.vec}))}return Object(r.a)(e,[{key:"adjacentFaces",value:function(){return this.edges.map((function(e){return e.twin().face}))}},{key:"numUniqueSides",value:function(){return this.edges.filter((function(e){return e.length()&gt;i.a})).length}},{key:"sideLength",value:function(){return this.edges[0].length()}},{key:"isPlanar",value:function(){return Object(i.l)(this.vectors)}},{key:"plane",value:function(){return new i.b(this.centroid(),this.normal())}},{key:"apothem",value:function(){return this.sideLength()/(2*Math.tan(Math.PI/this.numSides))}},{key:"radius",value:function(){return this.sideLength()/(2*Math.sin(Math.PI/this.numSides))}},{key:"area",value:function(){return this.numSides*this.sideLength()*this.apothem()/2}},{key:"centroid",value:function(){return Object(i.e)(this.vectors)}},{key:"distanceToCenter",value:function(){return this.polyhedron.centroid().distanceTo(this.centroid())}},{key:"normal",value:function(){return Object(i.g)(this.vectors)}},{key:"normalRay",value:function(){return Object(i.h)(this.vectors)}},{key:"isValid",value:function(){return this.edges.every((function(e){return e.length()&gt;i.a}))}},{key:"numSides",get:function(){return this.vertices.length}}]),e}()},171:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var a=n(74),r=n(75),i=n(139),c=function(){function e(t,n){Object(a.a)(this,e),this.polyhedron=void 0,this.v1=void 0,this.v2=void 0,this.polyhedron=t.polyhedron,this.v1=t,this.v2=n}return Object(r.a)(e,[{key:"prev",value:function(){var e=this;return this.face.edges.find((function(t){return t.v2.equals(e.v1)}))}},{key:"next",value:function(){var e=this;return this.face.edges.find((function(t){return t.v1.equals(e.v2)}))}},{key:"length",value:function(){return this.v1.vec.distanceTo(this.v2.vec)}},{key:"midpoint",value:function(){return Object(i.f)(this.v1.vec,this.v2.vec)}},{key:"twin",value:function(){return new e(this.v2,this.v1)}},{key:"twinFace",value:function(){return this.twin().face}},{key:"undirected",value:function(){return this.v2.index&gt;this.v1.index?this:this.twin()}},{key:"adjacentFaces",value:function(){return[this.face,this.twin().face]}},{key:"distanceToCenter",value:function(){return this.midpoint().distanceTo(this.polyhedron.centroid())}},{key:"dihedralAngle",value:function(){return Object(i.d)(this.midpoint(),this.face.centroid(),this.twinFace().centroid())}},{key:"equals",value:function(e){return this.v1.equals(e.v1)&amp;&amp;this.v2.equals(e.v2)}},{key:"value",get:function(){return[this.v1.index,this.v2.index]}},{key:"vertices",get:function(){return[this.v1,this.v2]}},{key:"face",get:function(){return this.polyhedron.edgeToFaceGraph()[this.v1.index][this.v2.index]}}]),e}()},172:function(e,t,n){"use strict";n.d(t,"a",(function(){return g}));var a=n(138),r=n.n(a),i=n(74),c=n(75),o=n(221),u=n(26),s=n(25),l=n(646),d=n(639),f=n(139),m=n(171),p=n(137);function v(e){return e.map((function(t,n){var a=Object(p.h)(e,n),r=Object(s.a)(a,2),i=r[0],c=r[1];return[].concat(Object(u.a)(c),Object(u.a)(i))}))}function h(e,t){if(0===e.length)return e;if(0===t.length)return t;var n=Object(o.a)(e),a=n[0],r=n.slice(1),i=Object(o.a)(t),c=i[0],s=i.slice(1);return a&lt;c?e:c&lt;a?t:[a].concat(Object(u.a)(h(r,s)))}var g=function(){function e(t,n){Object(i.a)(this,e),this.polyhedron=void 0,this.index=void 0,this.value=void 0,this.vec=void 0,this.polyhedron=t,this.index=n,this.value=t._solidData.vertices[n],this.vec=Object(f.m)(this.value)}return Object(c.a)(e,[{key:"equals",value:function(e){return this.index===e.index}},{key:"inSet",value:function(e){var t=this;return e.some((function(e){return t.equals(e)}))}},{key:"adjacentEdgesIter",value:r.a.mark((function e(){var t,n,a,i;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=parseInt(Object(l.a)(this.polyhedron.edgeToFaceGraph()[this.index])),n=new m.a(this,this.polyhedron.vertices[t]),a=n,i=0;case 4:return i++,e.next=7,a;case 7:if(a=a.prev().twin(),!(i&gt;10)){e.next=10;break}throw new Error("we done messed up");case 10:if(!a.equals(n)){e.next=4;break}case 11:case"end":return e.stop()}}),e,this)}))},{key:"adjacentEdges",value:function(){return Object(u.a)(this.adjacentEdgesIter())}},{key:"adjacentVertices",value:function(){return this.adjacentEdges().map((function(e){return e.v2}))}},{key:"adjacentFaces",value:function(){return this.adjacentEdges().map((function(e){return e.face}))}},{key:"configuration",value:function(){var e=this.adjacentFaces().map((function(e){return e.numSides}));return v(e).concat(v(Object(u.a)(e).reverse())).reduce(h)}},{key:"adjacentFaceCounts",value:function(){return Object(d.a)(this.adjacentFaces(),"numSides")}},{key:"distanceToCenter",value:function(){return this.vec.distanceTo(this.polyhedron.centroid())}}]),e}()},181:function(e,t,n){"use strict";n.d(t,"a",(function(){return E}));var a=n(26),r=n(66),i=n(135),c=n(74),o=n(75),u=n(647),s=n(112),l=n(639),d=n(648),f=n(649),m=n(640),p=n(650),v=n(626),h=n(147),g=n(67),b=n(139),y=n(191),O=n(172),j=n(193);var E=function(){function e(t){var n,a=this;Object(c.a)(this,e),this._solidData=void 0,this.name=void 0,this.faces=void 0,this.vertices=void 0,this._edges=void 0,this.edgeToFaceGraph=Object(u.a)((function(){var e,t={},n=Object(i.a)(a.faces);try{for(n.s();!(e=n.n()).done;){var r,c=e.value,o=Object(i.a)(c.edges);try{for(o.s();!(r=o.n()).done;){var u=r.value,l=u.v1,d=u.v2;Object(s.a)(t,[l.index,d.index],c)}}catch(f){o.e(f)}finally{o.f()}}}catch(f){n.e(f)}finally{n.f()}return t})),this._solidData=t,this.vertices=t.vertices.map((function(e,t){return new O.a(a,t)})),this.faces=t.faces.map((function(e,t){return new y.a(a,t)})),this.name=null!==(n=t.name)&amp;&amp;void 0!==n?n:""}return Object(o.a)(e,null,[{key:"get",value:function(t){return new e(Object(h.d)(t))}}]),Object(o.a)(e,[{key:"toString",value:function(){return"Polyhedron { V=".concat(this.numVertices(),", E=").concat(this.numEdges(),", F=").concat(this.numFaces()," }")}},{key:"toJSON",value:function(){return this.solidData}},{key:"numVertices",value:function(){return this.vertices.length}},{key:"numFaces",value:function(){return this.faces.length}},{key:"numEdges",value:function(){return this.edges.length}},{key:"numFacesBySides",value:function(){return Object(l.a)(this.faces,"numSides")}},{key:"getVertex",value:function(){return this.vertices[0]}},{key:"getFace",value:function(){return this.faces[0]}},{key:"getEdge",value:function(){return this.edges[0]}},{key:"largestFace",value:function(){return Object(d.a)(this.faces,"numSides")}},{key:"smallestFace",value:function(){return Object(f.a)(this.faces,"numSides")}},{key:"faceWithNumSides",value:function(e){var t=this.faces.find((function(t){return t.numSides===e}));if(!t)throw new Error("No face of ".concat(e," sides exists"));return t}},{key:"faceTypes",value:function(){return Object(m.a)(Object.keys(this.numFacesBySides()))}},{key:"vertexConfiguration",value:function(){return Object(l.a)(this.vertices.map((function(e){return e.configuration()})),(function(e){return e.join(".")}))}},{key:"edgeLength",value:function(){return this.getFace().sideLength()}},{key:"centroid",value:function(){return Object(b.e)(this.vertices.map((function(e){return e.vec})))}},{key:"surfaceArea",value:function(){return Object(p.a)(this.faces.map((function(e){return e.area()})))}},{key:"normalizedSurfaceArea",value:function(){return this.surfaceArea()/Math.pow(this.edgeLength(),2)}},{key:"volume",value:function(){return Object(p.a)(this.faces.map((function(e){return e.area()*e.distanceToCenter()/3})))}},{key:"normalizedVolume",value:function(){return this.volume()/Math.pow(this.edgeLength(),3)}},{key:"sphericity",value:function(){var e=this.volume(),t=this.surfaceArea();return Math.pow(Math.PI,1/3)*Math.pow(6*e,2/3)/t}},{key:"hitFace",value:function(e){return Object(f.a)(this.faces,(function(t){return t.plane().getDistanceToPoint(e)}))}},{key:"withChanges",value:function(e){return e(new j.a(this)).build()}},{key:"withName",value:function(t){return new e(Object(r.a)(Object(r.a)({},this.solidData),{},{name:t}))}},{key:"withVertices",value:function(e){return this.withChanges((function(t){return t.withVertices(e)}))}},{key:"withFaces",value:function(e){return this.withChanges((function(t){return t.withFaces(e)}))}},{key:"withoutFaces",value:function(e){return this.withChanges((function(t){return t.withoutFaces(e)}))}},{key:"addPolyhedron",value:function(e){return this.withChanges((function(t){return t.addPolyhedron(e)}))}},{key:"reflect",value:function(){return this.withChanges((function(e){return e.mapVertices((function(e){return new b.c(-e.vec.x,e.vec.y,e.vec.z)})).mapFaces((function(e){return Object(a.a)(e.vertices.map((function(e){return e.index}))).reverse()}))}))}},{key:"center",value:function(){var e=this.centroid();return this.withVertices(this.vertices.map((function(t){return t.vec.sub(e)})))}},{key:"normalizeToVolume",value:function(e){var t=Math.cbrt(e/this.volume());return this.withVertices(this.vertices.map((function(e){return e.vec.scale(t)})))}},{key:"isDeltahedron",value:function(){var e=Object.keys(this.numFacesBySides());return 1===e.length&amp;&amp;3===+e[0]}},{key:"faceAdjacencyList",value:function(){var e=this.faces.map((function(e){return{n:e.numSides,adj:e.adjacentFaceCounts()}}));return Object(m.a)(e,["n","adj.length"].concat(g.c.map((function(e){return"adj[".concat(e,"]")}))))}},{key:"isSame",value:function(e){return Object(v.a)(this.faceAdjacencyList(),e.faceAdjacencyList())}},{key:"edges",get:function(){return this._edges||(this._edges=this.faces.flatMap((function(e){return e.edges})).filter((function(e){return e.v1.index&lt;e.v2.index}))),this._edges}},{key:"solidData",get:function(){return this._solidData.edges||(this._solidData.edges=this.edges.map((function(e){return e.value}))),this._solidData}}]),e}()},191:function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var a=n(74),r=n(75),i=n(142),c=n(144),o=n(639),u=n(137),s=n(170),l=n(171),d=function(e){Object(i.a)(n,e);var t=Object(c.a)(n);function n(e,r){var i;Object(a.a)(this,n);var c=e._solidData.faces[r],o=c.map((function(t){return e.vertices[t]})),s=o.map((function(e,t){return new l.a(e,Object(u.d)(o,t+1))}));return(i=t.call(this,o,s)).index=void 0,i.value=void 0,i.index=r,i.value=c,i}return Object(r.a)(n,[{key:"equals",value:function(e){return this.index===e.index}},{key:"inSet",value:function(e){var t=this;return e.some((function(e){return t.equals(e)}))}},{key:"vertexAdjacentFaces",value:function(){return Object(u.c)(this.vertices,(function(e){return e.adjacentFaces()}),"index")}},{key:"adjacentFaceCounts",value:function(){return Object(o.a)(this.adjacentFaces(),"numSides")}}]),n}(s.a)},193:function(e,t,n){"use strict";n.d(t,"b",(function(){return d})),n.d(t,"a",(function(){return m}));var a=n(26),r=n(66),i=n(74),c=n(75),o=n(642),u=n(139),s=n(172),l=n(181);function d(e){if(Array.isArray(e))return e;if(e instanceof u.c)return e.toArray();if(e instanceof s.a)return e.value;throw new Error("Invalid vertex")}function f(e){return Array.isArray(e)?e.map((function(e){return"number"===typeof e?e:e.index})):e.value}var m=function(){function e(t){Object(i.a)(this,e),this.polyhedron=void 0,this.solidData=void 0,this.polyhedron=t,this.solidData=Object(r.a)({},t.solidData)}return Object(c.a)(e,[{key:"build",value:function(){return new l.a(this.solidData)}},{key:"withVertices",value:function(e){return this.solidData.vertices=e.map(d),this}},{key:"withFaces",value:function(e){return this.solidData.faces=e.map(f),delete this.solidData.edges,this}},{key:"addVertices",value:function(e){return this.withVertices(this.solidData.vertices.concat(e))}},{key:"addFaces",value:function(e){return this.withFaces(this.solidData.faces.concat(e))}},{key:"mapVertices",value:function(e){return this.withVertices(this.polyhedron.vertices.map(e))}},{key:"mapFaces",value:function(e){return this.withFaces(this.polyhedron.faces.map(e))}},{key:"withoutFaces",value:function(e){var t=Object(a.a)(this.solidData.faces);return Object(o.a)(t,e.map((function(e){return e.index}))),this.withFaces(t)}},{key:"addPolyhedron",value:function(e){var t=this;return this.addVertices(e.vertices).addFaces(e.faces.map((function(e){return e.vertices.map((function(e){return e.index+t.polyhedron.numVertices()}))})))}}]),e}()},229:function(e,t,n){"use strict";n.d(t,"a",(function(){return p}));var a=n(142),r=n(144),i=n(74),c=n(75),o=n(649),u=n(647),s=n(639),l=n(626),d=n(137),f=n(170);function m(e,t){return function(n){return e(n).map((function(e){return new t(n,e)})).filter((function(e){return e.isValid()}))}}var p=function(){function e(t,n,a,r,c){var o=this;Object(i.a)(this,e),this.polyhedron=void 0,this.type=void 0,this._innerVertices=void 0,this.topPoint=void 0,this.faceConfiguration=void 0,this.allVertices=Object(u.a)((function(){return o.innerVertices().concat(o.boundary().vertices)})),this.faces=Object(u.a)((function(){return Object(d.c)(o.innerVertices(),(function(e){return e.adjacentFaces()}),"index")})),this.boundary=Object(u.a)((function(){return function(e){var t=e.flatMap((function(e){return e.edges})).find((function(t){return!t.twin().face.inSet(e)})),n=[],a=t,r=0;do{if(r++&gt;20)throw new Error("we done goofed");if(a.twin().face.inSet(e))a=a.twin().next();else{n.push(a);var i=a.next().twin();a=i.face.inSet(e)?i.next():a.next()}}while(!a.equals(t));return new f.a(n.map((function(e){return e.v1})),n)}(o.faces())})),this.polyhedron=t,this._innerVertices=n,this.type=a,this.topPoint=r,this.faceConfiguration=c}return Object(c.a)(e,null,[{key:"find",value:function(t,n){var a=t.hitFace(n),r=e.getAll(t).filter((function(e){return a.inSet(e.faces())}));return 0===r.length?null:Object(o.a)(r,(function(e){return e.topPoint.distanceTo(n)}))}},{key:"getAll",value:function(e){var t=v.getAll(e);if(t.length&gt;0)return t;var n=h.getAll(e);if(n.length&gt;0)return n;var a=g.getAll(e).concat(b.getAll(e));return a.length&gt;0?a:[]}}]),Object(c.a)(e,[{key:"innerVertices",value:function(){return this._innerVertices}},{key:"normal",value:function(){return this.boundary().normal()}},{key:"normalRay",value:function(){return this.boundary().normalRay()}},{key:"isValid",value:function(){var e=this;return this.innerVertices().every((function(t){var n=Object(s.a)(t.adjacentFaces(),"numSides");return Object(l.a)(n,e.faceConfiguration)}))&amp;&amp;this.faces().every((function(e){return e.isValid()}))&amp;&amp;this.boundary().isPlanar()}},{key:"vertices",get:function(){return this.allVertices()}}]),e}(),v=function(e){Object(a.a)(n,e);var t=Object(r.a)(n);function n(e,a){return Object(i.a)(this,n),t.call(this,e,[a],"pyramid",a.vec,{3:a.adjacentEdges().length})}return n}(p);v.getAll=m((function(e){return e.vertices}),v);var h=function(e){Object(a.a)(n,e);var t=Object(r.a)(n);function n(e,a){Object(i.a)(this,n);return t.call(this,e,a.vertices,"fastigium",a.midpoint(),{3:1,4:2})}return n}(p);h.getAll=m((function(e){return e.edges}),h);var g=function(e){Object(a.a)(n,e);var t=Object(r.a)(n);function n(e,a){return Object(i.a)(this,n),t.call(this,e,a.vertices,"cupola",a.centroid(),Object(s.a)([3,4,4,a.numSides]))}return n}(p);g.getAll=m((function(e){return e.faces}),g);var b=function(e){Object(a.a)(n,e);var t=Object(r.a)(n);function n(e,a){return Object(i.a)(this,n),t.call(this,e,Object(d.c)(a.vertices,(function(e){return e.adjacentVertices()}),"index"),"rotunda",a.centroid(),{5:2,3:2})}return n}(p);b.getAll=m((function(e){return e.faces}),b)},230:function(e,t){},569:function(e,t,n){e.exports=n.p+"static/media/sad-scutoid.7909547f.png"},636:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return hi}));var a=n(0),r=n.n(a),i=n(1),c=n(137),o=n(147),u=n(209),s=n(205),l=n(66),d=n(43),f=n(8),m=n(133),p=n(569),v=n.n(p),h=n(42);function g(){var e=Object(f.d)(Object(m.o)(f.c.size[5]));return r.a.createElement("img",Object.assign({},e(),{src:v.a,alt:""}))}function b(){var e=Object(f.d)({textAlign:"center",fontFamily:f.a.andaleMono,fontSize:f.c.font[3],[f.b.mobile]:{fontSize:f.c.font[4]}});return r.a.createElement("h1",e(),"Uh oh! We don't know about that polyhedron!")}function y(){var e=Object(f.d)(Object(l.a)({fontFamily:f.a.andaleMono,fontSize:f.c.font[4]},m.g));return r.a.createElement(d.b,Object.assign({},e(),{to:"/"}),"Go back")}function O(){Object(h.d)("Error - Polyhedra Viewer");var e=Object(f.d)({width:"100vw",height:"100vh",display:"grid",gridGap:f.c.spacing[2],alignContent:"center",justifyContent:"center",justifyItems:"center"});return r.a.createElement("section",e(),r.a.createElement(g,null),r.a.createElement(b,null),r.a.createElement(y,null))}var j=n(25),E=n(625),w=n(141),x={name:"tetrahedron"},k=Object(h.c)({setPolyhedron:function(e){return function(){return e}}},(function(){var e=arguments.length&gt;0&amp;&amp;void 0!==arguments[0]?arguments[0]:x;return w.Polyhedron.get(e.name)})),S={operation:void 0,options:void 0},C=Object(h.c)({setOperation:function(e,t){return function(){return{operation:e,options:e.defaultOptions(t)}}},unsetOperation:function(){return function(){return S}},setOption:function(e,t){return function(n){var a=n.operation,r=n.options;return{operation:a,options:Object(l.a)(Object(l.a)({},r),{},{[e]:t})}}}},S),F=n(318),A=n(82),D=n(621),P=n(637);function V(e,t){return e.map((function(e){return t[e]}))}var T={solidData:void 0,faceColors:void 0,isTransitioning:!1},N=Object(h.c)({reset:function(){return function(){return T}},set:function(e,t){return function(){return{solidData:e,faceColors:t,isTransitioning:!!e}}}},T),M=r.a.createContext(F.a);function z(e){var t=e.children,n=Object(a.useRef)(null),i=k.useActions().setPolyhedron,c=A.a.useState(),o=c.colors,u=c.animationSpeed,s=c.enableAnimation,d=N.useActions();Object(a.useEffect)((function(){return function(){n.current&amp;&amp;n.current.cancel()}}),[n]);var f=Object(a.useCallback)((function(e,t){if(!s||!t)return i(e),void d.reset();var a=t.start,r=t.endVertices,c=t.startColors,f=t.endColors;d.set(a.solidData,V(c,o)),n.current=function(e,t){var n=e.startValue,a=e.endValue,r=e.duration,i=e.ease,c=e.onFinish,o=0,u={},s=Object(P.a)(n,a);return u.current=requestAnimationFrame((function e(n){o||(o=n);var a=n-o,l=Math.min(a/r,1),d=s(D[i](l));t(d),a&lt;r?u.current=requestAnimationFrame(e):null===c||void 0===c||c()})),{cancel(){cancelAnimationFrame(u.current)}}}({duration:1e3/u,ease:"easeQuadInOut",startValue:{vertices:a.solidData.vertices,faceColors:V(c,o)},endValue:{vertices:r,faceColors:V(f,o)},onFinish:function(){i(e),d.reset()}},(function(e){var t=e.vertices,n=e.faceColors;d.set(Object(l.a)(Object(l.a)({},a.solidData),{},{vertices:t}),n)}))}),[d,u,o,s,i]);return r.a.createElement(M.Provider,{value:f},t)}var L={Provider:function(e){var t=e.children;return r.a.createElement(N.Provider,null,r.a.createElement(z,null,t))},useState:N.useState,useTransition:function(){return Object(a.useContext)(M)}};function R(){var e=C.useActions(),t=e.setOperation,n=e.unsetOperation,r=k.useState(),i=L.useTransition();return Object(a.useCallback)((function(e){var a=arguments.length&gt;1&amp;&amp;void 0!==arguments[1]?arguments[1]:{},c=arguments.length&gt;2?arguments[2]:void 0;if(!e)throw new Error("no operation defined");var o=e.apply(r,a),u=o.result,s=o.animationData;e.hasOptions(r)&amp;&amp;e.canApplyTo(u)&amp;&amp;e.hasOptions(u)?t(e,u):n(),i(u,s),null===c||void 0===c||c(u)}),[r,i,t,n])}var q=n(633),G=n(26),I=n(650),W=n(164),B=n(212),H=n(138),U=n.n(H),_=n(135),Y=n(74),J=n(75),Q=n(628),Z=n(153),K=n(139),X=n(630),$=n(643),ee=n(631),te=n(632),ne=n(197),ae=U.a.mark(ue);function re(e){return"left"===e?"right":"left"}function ie(e,t){switch(t){case"left":return e.twin().next().twin().prev().twinFace();case"right":return e.twin().prev().twin().next().twinFace();default:return e.twin().next().next().twinFace()}}function ce(e){return 3===e.largestFace().numSides?"left":3!==ie(e.faces.find((function(e){return 3!==e.numSides})).edges[0],"right").numSides?"right":"left"}function oe(e){var t=w.Cap.getAll(e),n=Object(j.a)(t,2),a=n[0],r=n[1],i=a.boundary(),c=a.type!==r.type,o=ie(i.edges.find((function(e){return 3!==e.face.numSides})),"right");return c?3!==o.numSides?"right":"left":3!==o.numSides?"left":"right"}function ue(e){var t,n,a;return U.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:t=Object(_.a)(Object(ne.b)(e.name)),r.prev=1,t.s();case 3:if((n=t.n()).done){r.next=20;break}if((a=n.value).isChiral()){r.next=10;break}return r.next=8,a;case 8:r.next=18;break;case 10:if(!a.isClassical()){r.next=15;break}return r.next=13,a.withData({twist:ce(e)});case 13:r.next=18;break;case 15:if(!a.isCapstone()){r.next=18;break}return r.next=18,a.withData({twist:oe(e)});case 18:r.next=3;break;case 20:r.next=25;break;case 22:r.prev=22,r.t0=r.catch(1),t.e(r.t0);case 25:return r.prev=25,t.f(),r.finish(25);case 28:case"end":return r.stop()}}),ae,null,[[1,22,25,28]])}function se(e){var t=w.Polyhedron.get(e.canonicalName());if(e.isClassical()&amp;&amp;e.isSnub()&amp;&amp;"left"===e.data.twist)return t.reflect();if(e.isCapstone()&amp;&amp;e.isChiral()){if(e.isCupolaRotunda()&amp;&amp;"left"===e.data.twist)return t.reflect();if(!e.isCupolaRotunda()&amp;&amp;"right"===e.data.twist)return t.reflect()}return t}function le(e){var t=e.faces.flatMap((function(e){return e.vertices})),n=e.vertices.filter((function(e){return!e.inSet(t)})),a=n.length,r=Object(X.a)(e.vertices,a).filter((function(e){return!e.inSet(n)})),i=Object(c.f)(r,(function(e,t){return[e.index,n[t].index]})),o=Object($.a)(i),u=Object(ee.a)(e.vertices.map((function(t){var n;return e.vertices[null!==(n=o[t.index])&amp;&amp;void 0!==n?n:t.index]})),a);return e.withChanges((function(e){return e.withVertices(u).mapFaces((function(e){return e.vertices.map((function(e){var t;return null!==(t=i[e.index])&amp;&amp;void 0!==t?t:e.index}))}))}))}function de(e){var t=[],n={};if(e.vertices.forEach((function(e,a){var r=t.find((function(t){return e.vec.equalsWithTolerance(t.vec,K.a)}));void 0===r?(t.push(e),n[a]=a):n[a]=r.index})),Object(te.a)(n))return e;var a=e.faces.map((function(e){return Object(q.a)(e.vertices.map((function(e){return n[e.index]})))})).filter((function(e){return e.length&gt;=3}));return le(e.withFaces(a))}function fe(e,t){var n,a=arguments.length&gt;2&amp;&amp;void 0!==arguments[2]?arguments[2]:e[0].polyhedron.vertices,r=Object(G.a)(a),i=Object(_.a)(e);try{for(i.s();!(n=i.n()).done;){var c,o=n.value,u=Object(_.a)(o.vertices);try{for(u.s();!(c=u.n()).done;){var s=c.value,l=t(o);r[s.index]="function"===typeof l?l(s.vec):l}}catch(d){u.e(d)}finally{u.f()}}}catch(d){i.e(d)}finally{i.f()}return r}function me(e){return"left"===e?"right":"left"}function pe(e){var t=Object(j.a)(e,2),n=t[0],a=t[1],r=new K.b(K.c.ZERO,n).getProjectedPoint(a);return[n.getNormalized(),r.getNormalized()]}function ve(e,t,n){var a=pe(t.orientation),r=Object(j.a)(a,2),i=r[0],c=r[1],o=pe(n.orientation),u=Object(j.a)(o,2),s=u[0],l=u[1],d=Object(K.i)(i,c,s,l),f=Object(K.n)(n.origin,(function(e){return d.applyTo(e)})),m=e.vertices.map((function(e){return f(e.vec.sub(t.origin).scale(n.scale/t.scale).add(n.origin))}));return e.withVertices(m)}function he(e){return e.geom.vertices}var ge=function(){function e(t){Object(Y.a)(this,e),this.inputs=void 0,this.inputs=t}return Object(J.a)(e,[{key:"getEntries",value:function(e,t){return this.inputs.graph.filter((function(n){return n[e].equals(t)}))}},{key:"findEntry",value:function(e,t,n){return this.inputs.graph.find((function(a){var r,i;return a[e].equals(t)&amp;&amp;Object(Q.a)(null!==(r=null===(i=a.options)||void 0===i?void 0:i[e])&amp;&amp;void 0!==r?r:{},null!==n&amp;&amp;void 0!==n?n:{})}))}},{key:"getEntry",value:function(e,t,n){var a=this.findEntry(e,t,n);if(!a)throw new Error("Could not find ".concat(e," entry with specs: ").concat(t.name(),", opts: ").concat(JSON.stringify(n)));return a}},{key:"hasOptions",value:function(e,t){return this.getEntries(e,t).length&gt;1}},{key:"allOptions",value:U.a.mark((function e(t,n){var a,r,i,c,o;return U.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a=Object(_.a)(this.getEntries(t,n)),e.prev=1,a.s();case 3:if((r=a.n()).done){e.next=9;break}return o=r.value,e.next=7,null!==(i=null===(c=o.options)||void 0===c?void 0:c[t])&amp;&amp;void 0!==i?i:{};case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),a.e(e.t0);case 14:return e.prev=14,a.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,this,[[1,11,14,17]])}))},{key:"canApplyTo",value:function(e,t){return!!this.findEntry(e,t)}},{key:"getOpposite",value:function(e,t,n){return this.getEntry(e,t,n)[me(e)]}},{key:"apply",value:function(e,t,n){var a,r,i,c=this.inputs,o=c.middle,u=c.getPose,s=c.toLeft,d=void 0===s?he:s,f=c.toRight,m=void 0===f?he:f,p=this.getEntry(e,t.specs,n),v=null!==(a=p.options)&amp;&amp;void 0!==a?a:{left:{},right:{}},h=u(e,t,v),g=me(e),b=p[g],y=se(b),O=ve(y,u(g,{specs:b,geom:y},v),h);if("string"===typeof o)r=o===e?t:{specs:b,geom:O};else{var E=(i=o(p))instanceof Z.a?{specs:i,geom:se(i)}:i,w=ve(E.geom,u("middle",E,v),h);r=Object(l.a)(Object(l.a)({},E),{},{geom:w})}var x="left"===e?[d,m]:[m,d],k=Object(j.a)(x,2),S=k[0],C=k[1];return{animationData:{start:r.geom.withVertices(S(r,v,t.specs)),endVertices:C(r,v,b)},result:O}}}]),e}();function be(e,t){return{apply:(n,a)=&gt;t.apply(e,n,a),canApplyTo:n=&gt;t.canApplyTo(e,n),getResult:(n,a)=&gt;t.getOpposite(e,n.specs,a),hasOptions:n=&gt;t.hasOptions(e,n),allOptionCombos:n=&gt;U.a.mark((function a(){var r;return U.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return r=n.specs,a.delegateYield(t.allOptions(e,r),"t0",2);case 2:case"end":return a.stop()}}),a)}))()}}function ye(e){var t=new ge(e);return{left:be("left",t),right:be("right",t)}}function Oe(e){function t(t){var n=e.find((function(e){return e.canApplyTo(t)}));if(!n)throw new Error("Could not apply any operations to ".concat(t.name));return n}return{canApplyTo:function(t){return e.some((function(e){return e.canApplyTo(t)}))},apply:(e,n)=&gt;t(e.specs).apply(e,n),getResult:(e,n)=&gt;t(e.specs).getResult(e,n),hasOptions(e){var n;return null!==(n=t(e).hasOptions(e))&amp;&amp;void 0!==n&amp;&amp;n},allOptionCombos:e=&gt;U.a.mark((function n(){return U.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.delegateYield(t(e.specs).allOptionCombos(e),"t0",1);case 1:case"end":return n.stop()}}),n)}))()}}var je=n(130),Ee={getHitOption:{},hasOptions:!1,allOptionCombos:[null],isPreferredSpec:!0,faceSelectionStates:[],defaultOptions:{}};function we(e){var t,n=function(e){var t=[],n=[];return e.faces.forEach((function(e){!e.inSet(t)&amp;&amp;e.isValid()&amp;&amp;e.adjacentFaces().forEach((function(a){if(a&amp;&amp;a.isValid())return e.normal().equalsWithTolerance(a.normal(),K.a)?(n.push([e,a]),t.push(e),void t.push(a)):void 0}))})),n}(e),a={},r=Object(_.a)(n);try{for(r.s();!(t=r.n()).done;){var i=Object(j.a)(t.value,2),c=i[0],o=i[1],u=c.numSides+o.numSides-2;a[c.index]=u,a[o.index]=u}}catch(s){r.e(s)}finally{r.f()}return e.faces.map((function(e){var t;return null!==(t=a[e.index])&amp;&amp;void 0!==t?t:e.numUniqueSides()}))}function xe(e,t){return e.map((function(e,n){return null!==e&amp;&amp;void 0!==e?e:t[n]}))}var ke=function(){function e(t,n){var a;Object(Y.a)(this,e),this.name=void 0,this.hitOption=void 0,this.opArgs=void 0,this.name=t,this.opArgs=(a=n,Object(l.a)(Object(l.a)({},Object(je.a)(Ee,(function(e,t){var n;return null!==(n=a[t])&amp;&amp;void 0!==n?n:function(){return e}}))),a)),this.hitOption=this.opArgs.hitOption}return Object(J.a)(e,[{key:"validSpecs",value:U.a.mark((function e(t){var n,a,r;return U.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=Object(_.a)(ue(t)),e.prev=1,n.s();case 3:if((a=n.n()).done){e.next=10;break}if(r=a.value,!this.opArgs.canApplyTo(r)){e.next=8;break}return e.next=8,r;case 8:e.next=3;break;case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(1),n.e(e.t0);case 15:return e.prev=15,n.f(),e.finish(15);case 18:case"end":return e.stop()}}),e,this,[[1,12,15,18]])}))},{key:"getValidSpecs",value:function(e){return Object(G.a)(this.validSpecs(e))}},{key:"getSolidArgs",value:function(e){return{specs:this.getValidSpecs(e)[0],geom:e}}},{key:"apply",value:function(e,t){var n=this,a=this.getValidSpecs(e).find((function(e){return n.opArgs.isPreferredSpec(e,t)}));if(!a)throw new Error("Could not find specs for polyhedron ".concat(e.name));var r={specs:a,geom:e},i=this.opArgs.getResult(r,null!==t&amp;&amp;void 0!==t?t:{}).canonicalName();return function(e,t){var n=e.result,a=e.animationData,r=a.start,i=a.endVertices,c=r.withVertices(i),o=null!==n&amp;&amp;void 0!==n?n:de(c),u=we(r),s=we(c);return{result:o.withName(t),animationData:{start:r,endVertices:i.map(w.normalizeVertex),startColors:xe(u,s),endColors:xe(s,u)}}}(this.opArgs.apply(r,null!==t&amp;&amp;void 0!==t?t:{}),i)}},{key:"getHitOption",value:function(e,t,n){var a=this.opArgs.getHitOption;return a(this.getSolidArgs(e),Object(K.m)(t),n)}},{key:"canApplyTo",value:function(e){return this.getValidSpecs(e).length&gt;0}},{key:"hasOptions",value:function(e){return this.getValidSpecs(e).some(this.opArgs.hasOptions)}},{key:"allOptions",value:function(e,t){return this.opArgs.allOptions(this.getSolidArgs(e),t)}},{key:"allOptionCombos",value:U.a.mark((function e(t){var n,a,r;return U.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=Object(_.a)(this.getValidSpecs(t)),e.prev=1,n.s();case 3:if((a=n.n()).done){e.next=8;break}return r=a.value,e.delegateYield(this.opArgs.allOptionCombos({specs:r,geom:t}),"t0",6);case 6:e.next=3;break;case 8:e.next=13;break;case 10:e.prev=10,e.t1=e.catch(1),n.e(e.t1);case 13:return e.prev=13,n.f(),e.finish(13);case 16:case"end":return e.stop()}}),e,this,[[1,10,13,16]])}))},{key:"defaultOptions",value:function(e){return this.opArgs.defaultOptions(this.getValidSpecs(e)[0])}},{key:"faceSelectionStates",value:function(e,t){return this.opArgs.faceSelectionStates(this.getSolidArgs(e),t)}}]),e}();function Se(e,t){return new ke(e,t)}var Ce=n(221),Fe=n(649);function Ae(e,t,n){return e.isTetrahedral()?function(e){var t=e.faceWithNumSides(3);return[t].concat(Object(G.a)(t.edges.map((function(e){return ie(e,"right")}))))}(t):t.faces.filter((function(t){return Ze(t,Ie(e,n))}))}function De(e,t,n){return e.isTetrahedral()?function(e){var t=e.faceWithNumSides(6),n=t.edges.filter((function(e){return 4===e.twinFace().numSides})).map((function(e){return ie(e)}));return[t].concat(Object(G.a)(n))}(t):t.faces.filter((function(t){return t.numSides===2*Ie(e,n)}))}function Pe(e,t,n,a){return e.isTetrahedral()?function(e,t){var n=e.faceWithNumSides(3);return t&amp;&amp;(n=n.edges[0].twin().next().twinFace()),[n].concat(Object(G.a)(n.edges.map((function(e){return ie(e)}))))}(t,a):t.faces.filter((function(t){return _e(t,Ie(e,n))}))}function Ve(e,t){var n=arguments.length&gt;2&amp;&amp;void 0!==arguments[2]?arguments[2]:0,a=e[0].sideLength()*t,r=e[0],i=a-r.distanceToCenter();return fe(e,(function(e){return Object(K.n)(e.centroid(),(function(t){return t.getRotatedAroundAxis(e.normal(),n).add(e.normal().scale(i))}))}))}function Te(e){return e.isFace()?[e.data.family,3]:[3,e.data.family]}var Ne={3:4,4:6,5:10},Me=Math.sin,ze=Math.cos,Le=Math.tan,Re=Math.PI;function qe(e){var t=Te(e),n=Object(j.a)(t,2)[1],a=Ne[e.data.family];return ze(Re/n)/Me(Re/a)}function Ge(e){var t=Te(e),n=Object(j.a)(t,1)[0];return qe(e)/Le(Re/n)/2}function Ie(e,t){return"vertex"===t?3:e.data.family}function We(e){return e.midpoint().sub(e.face.centroid())}function Be(e,t){var n=se(e),a=Ae(e,n,t),r=Object(Ce.a)(a),i=r[0],c=r.slice(1),o=i.centroid(),u=i.edges[0].midpoint(),s=Object(Fe.a)(c,(function(e){return u.distanceTo(e.centroid())})),l=Object(K.j)([o,s.centroid(),n.centroid()]);return Object(K.d)(o,u,l.getProjectedPoint(u))}function He(e,t){return Object(c.f)(e,(function(e){return[e,t(e)]}))}var Ue=He([3,4,5],(function(e){var t=W.a.query.withData({family:e,operation:"snub"});return{face:Be(t,"face"),vertex:Be(t,"vertex")}}));function _e(e,t){return e.numSides===t&amp;&amp;e.adjacentFaces().every((function(e){return 4===e.numSides}))}function Ye(e){return 4===e.numSides&amp;&amp;e.adjacentFaces().some((function(e){return 4!==e.numSides}))}function Je(e){var t=e.faces.find(Ye);if(!t)throw new Error("Could not find edge face for ".concat(e.name));return t}function Qe(e,t){var n=e.faces.find((function(e){return _e(e,t)}));if(!n)throw new Error("Could not find cantellated face for ".concat(e.name));return n}function Ze(e,t){return e.numSides===t&amp;&amp;e.adjacentFaces().every((function(e){return 3===e.numSides}))}var Ke=He([3,4,5],(function(e){var t=se(W.a.query.withData({family:e,operation:"cantellate"}));return Qe(t,e).distanceToCenter()/t.edgeLength()}));function Xe(e,t){var n=3===e?void 0:t,a=se(W.a.query.withData({family:e,operation:"truncate",facet:n}));return a.largestFace().distanceToCenter()/a.edgeLength()}var $e=He([3,4,5],(function(e){return{face:Xe(e,"face"),vertex:Xe(e,"vertex")}}));function et(e,t){return("vertex"===t?-1:1)*("left"===e.data.twist?-1:1)*Ue[e.data.family][t]}function tt(e,t,n){return{origin:e.centroid(),scale:e.edgeLength(),orientation:[t.normal(),n]}}function nt(e){var t=e.getFace();return tt(e,t,We(t.edges[0]))}function at(e,t,n){var a=Qe(e,Ie(t,n));return tt(e,a,We(a.edges[0]))}function rt(e,t,n){var a=Ie(t,n),r=e.faces.find((function(e){return Ze(e,a)})),i=We(r.edges[0]).getRotatedAroundAxis(r.normal(),et(t,n));return tt(e,r,i)}function it(e){return e.isTetrahedral()?["left"]:["left","right"]}var ct=ye({graph:W.a.query.where((function(e){return e.isTruncated()})).map((function(e){return{left:e,right:e.withData({operation:"bevel"}),options:{left:{},right:{facet:e.data.facet}}}})),middle:"right",getPose(e,t,n){var a=t.specs,r=t.geom,i=n.right.facet;if("left"===e){var c=r.faces.find((function(e){return e.numSides&gt;5})),o=c.edges.find((function(e){return e.twinFace().numSides===c.numSides}));return tt(r,c,We(o))}var u=2*Ie(a,i),s=r.faceWithNumSides(u),l=s.edges.find((function(e){return 4===e.twinFace().numSides}));return tt(r,s,We(l))},toLeft(e,t){var n=e.specs,a=e.geom,r=t.right.facet,i=void 0===r?"face":r;return Ve(De(n,a,i),$e[n.data.family][i])}}),ot=ye({graph:W.a.query.where((function(e){return e.isRegular()})).map((function(e){return{left:e,right:e.withData({operation:"cantellate"}),options:{left:{},right:{facet:e.data.facet}}}})),middle:"right",getPose(e,t,n){var a=t.geom,r=t.specs,i=n.right.facet;return"left"===e?nt(a):at(a,r,i)},toLeft:(e,t,n)=&gt;Ve(Pe(e.specs,e.geom,t.right.facet),Ge(n))}),ut=ye({graph:W.a.query.where((function(e){return e.isRegular()})).flatMap((function(e){return it(e).map((function(t){return{left:e,right:e.withData({operation:"snub",twist:e.isVertex()?re(t):t}),options:{left:{twist:t},right:{facet:e.data.facet}}}}))})),middle:"right",getPose(e,t,n){var a=t.geom,r=t.specs,i=n.right.facet,c=void 0===i?"face":i;return"left"===e?nt(a):rt(a,r,c)},toLeft(e,t,n){var a=e.specs,r=e.geom,i=t.right.facet,c=void 0===i?"face":i;return Ve(Ae(a,r,n.data.facet),Ge(n),et(a,c))}}),st=ye({graph:W.a.query.where((function(e){return e.isCantellated()})).flatMap((function(e){return it(e).map((function(t){return{left:e,right:e.withData({operation:"snub",twist:t}),options:{left:{twist:t},right:{}}}}))})),middle:"right",getPose(e,t){var n=t.specs,a=t.geom;return"left"===e?at(a,n,"face"):rt(a,n,"face")},toLeft(e){var t=e.specs;return Ve(Ae(t,e.geom,"face"),Ke[t.data.family],et(t,"face"))}});function lt(e){return Je(e).distanceToCenter()}function dt(e,t,n){var a=e.withData({operation:"regular",facet:n}),r=lt(t)/function(e){var t=Te(e),n=Object(j.a)(t,1)[0],a=Ne[e.data.family];return ze(Re/n)/Me(Re/a)/2}(a)*function(e){var t=Te(e),n=Object(j.a)(t,2)[1];return Le(Re/n)*qe(e)/2}(a);return fe(Pe(e,t,"face"===n?"vertex":"face","face"===n),(function(e){return t.centroid().add(e.normal().scale(r))}))}var ft=ye({graph:W.a.query.where((function(e){return e.isRegular()&amp;&amp;!e.isVertex()})).map((function(e){return{left:e,right:e.withData({facet:"vertex"})}})),middle:function(e){return e.left.withData({operation:"cantellate"})},getPose(e,t){var n=t.specs,a=t.geom;switch(e){case"left":return Object(l.a)(Object(l.a)({},nt(a)),{},{scale:a.edges[0].distanceToCenter()});case"right":var r=a.getVertex(),i=r.vec.sub(a.centroid()),c=r.adjacentVertices()[0];return{origin:a.centroid(),scale:a.edges[0].distanceToCenter(),orientation:[i,c.vec.sub(r.vec)]};case"middle":return Object(l.a)(Object(l.a)({},at(a,n,"face")),{},{scale:lt(a)})}},toLeft:function(e){return dt(e.specs,e.geom,"face")},toRight:function(e){return dt(e.specs,e.geom,"vertex")}});var mt={snub:3,cantellate:4};function pt(e,t,n){var a=function(e){return e.getVertex().adjacentFaceCounts()[3]&gt;=3?"snub":"cantellate"}(e);return("number"!==typeof n||t.numSides===n)&amp;&amp;(!!t.isValid()&amp;&amp;t.adjacentFaces().every((function(e){return e.numSides===mt[a]})))}var vt=new ke("dual",Oe([ft.left,ft.right])),ht=new ke("expand",Oe([ct.left,ot.left])),gt=Se("snub",ut.left),bt=Se("twist",Oe([st.left,st.right])),yt=Se("contract",Object(l.a)(Object(l.a)({},Oe([ot,ut,ct].map((function(e){return e.right})))),{},{hitOption:"facet",getHitOption(e,t){var n=e.specs,a=e.geom,r=a.hitFace(t),i=r.numSides;return n.isBevelled()?r.numSides&gt;4?{facet:6===i?"vertex":"face"}:{}:pt(a,r)?{facet:3===i?"vertex":"face"}:{}},faceSelectionStates(e,t){var n=e.specs,a=e.geom,r=t.facet;if(n.isBevelled())return a.faces.map((function(e){var t="vertex"===r?6:2*n.data.family;return r&amp;&amp;e.numSides===t?"selected":4!==e.numSides?"selectable":void 0}));var i=r?"vertex"===r?3:n.data.family:null;return a.faces.map((function(e){return i&amp;&amp;pt(a,e,i)?"selected":pt(a,e)?"selectable":void 0}))}}));function Ot(e,t,n){var a=e.normalRay(),r=Object(K.d)(t,n,a),i=Math.PI-r,c=a.distanceTo(t)*Math.tan(i);return a.getPointAtDistance(c)}function jt(e,t){return Ot(e,t.midpoint(),t.twinFace().centroid())}function Et(e,t){var n;if(e.isRectified())n=[t.faceWithNumSides(3),t.faceWithNumSides(e.data.family)];else if(e.isBevelled())n=[t.faceWithNumSides(6),t.faceWithNumSides(2*e.data.family)];else{if(!e.isCantellated())throw new Error("Invalid specs: ".concat(e.name()));n=[t.faceWithNumSides(3),Qe(t,e.data.family)]}return Object(I.a)(n.map((function(e){return e.distanceToCenter()})))/n.length}function wt(e){var t=e.left,n=e.right,a=e.middle;function r(r,i){var c="middle"===r?"left":"middle"===i?"right":null;return ye({graph:W.a.query.where((function(e){return e.data.operation===a.operation})).map((function(t){var n,a,c,o;return{left:t.withData({operation:e[r].operation}),right:t.withData({operation:e[i].operation}),options:{left:null===(n=(a=e[r]).options)||void 0===n?void 0:n.call(a,t),right:null===(c=(o=e[i]).options)||void 0===c?void 0:c.call(o,t)}}})),middle:null!==c&amp;&amp;void 0!==c?c:function(e){return e.left.withData({operation:a.operation})},getPose:function(t,n,a){return Object.values(e).find((function(e){return e.operation===n.specs.data.operation})).pose(n,a)},toLeft:"left"===r?t.transformer:void 0,toRight:"right"===i?n.transformer:void 0})}return{truncate:r("left","middle"),cotruncate:r("middle","right"),rectify:r("left","right")}}function xt(e,t,n){return{origin:e.centroid(),scale:t.distanceToCenter(),orientation:[t.normal(),n.sub(t.centroid())]}}var kt=wt({left:{operation:"regular",pose(e){var t=e.geom,n=t.getFace();return xt(t,t.getFace(),n.edges[0].midpoint())},transformer:e=&gt;fe(function(e){var t=e.smallestFace().numSides;return e.faces.filter((function(e){return e.numSides===t}))}(e.geom),(function(e){return jt(e,e.edges[0])}))},middle:{operation:"truncate",pose(e){var t=e.geom,n=t.largestFace(),a=n.numSides,r=n.edges.find((function(e){return e.twinFace().numSides===a}));return xt(t,n,r.midpoint())}},right:{operation:"rectify",options:function(e){return{facet:e.data.facet}},pose(e,t){var n=e.specs,a=e.geom,r="vertex"===t.right.facet?3:n.data.family,i=a.faceWithNumSides(r);return xt(a,i,i.vertices[0].vec)},transformer:e=&gt;fe(e.geom.edges.filter((function(e){return e.face.numSides&gt;5&amp;&amp;e.twinFace().numSides&gt;5})),(function(e){return e.midpoint()}))}});function St(e,t,n,a){return{origin:t.centroid(),scale:Et(e,t),orientation:[n.normal(),a.sub(n.centroid())]}}var Ct=wt({left:{operation:"rectify",pose(e){var t=e.geom,n=e.specs,a=t.faceWithNumSides(n.data.family);return St(n,t,a,a.edges[0].midpoint())},transformer(e,t,n){var a=e.geom,r=e.specs,i=se(n),c=Et(n,i),o=i.getVertex().distanceToCenter()/c*Et(r,a);return fe(a.faces.filter((function(e){return 4===e.numSides})),(function(e){return a.centroid().add(e.normal().scale(o))}))}},middle:{operation:"bevel",pose(e){var t=e.geom,n=e.specs,a=t.faceWithNumSides(2*n.data.family),r=a.edges.find((function(e){return 4!==e.twinFace().numSides}));return St(n,t,a,r.midpoint())}},right:{operation:"cantellate",pose(e){var t=e.geom,n=e.specs,a=Qe(t,n.data.family);return St(n,t,a,a.vertices[0].vec)},transformer(e,t,n){var a=e.geom,r=e.specs,i=se(n),c=Et(n,i),o=Je(i),u=o.distanceToCenter(),s=o.radius(),l=Et(r,a)/c;return fe(a.faces.filter((function(e){return 4===e.numSides})),(function(e){var t=a.centroid().add(e.normal().scale(u*l));return function(n){return t.add(n.sub(e.centroid()).getNormalized().scale(s*l))}}))}}}),Ft=ye({graph:B.a.query.where((function(e){var t=e.data.source;return e.isAugmented()&amp;&amp;!e.isDiminished()&amp;&amp;t.isClassical()&amp;&amp;t.isRegular()})).map((function(e){return{left:e,right:e.withData({source:e.data.source.withData({operation:"truncate"})})}})),middle:"right",getPose(e,t){var n=t.geom,a=t.specs,r=a.data.source,i=r.isClassical()&amp;&amp;r.isTetrahedral()&amp;&amp;r.isRegular(),c=w.Cap.getAll(n);i&amp;&amp;(c=[c[0]]);var o=c.flatMap((function(e){return e.innerVertices().map((function(e){return e.index}))})),u=n.vertices.filter((function(e){return!o.includes(e.index)})),s=Object(K.e)(u.map((function(e){return e.vec})));function l(e){return i||e.numSides&gt;3}var d,f=n.faces.find((function(e){return e.vertices.every((function(e){return!o.includes(e.index)}))&amp;&amp;l(e)})),m=c[0],p=m.normal(),v=m.boundary();return d=a.isTri()?Object(K.e)([c[1].normal(),c[2].normal()]):a.isBi()&amp;&amp;a.isMeta()?c[1].normal():v.edges.find((function(e){return l(e.twinFace())})).midpoint().sub(v.centroid()),{origin:s,scale:f.centroid().distanceTo(s),orientation:[p,d]}},toLeft(e){var t=e.geom,n=w.Cap.getAll(t).flatMap((function(e){return e.innerVertices().map((function(e){return e.index}))})),a=t.faces.filter((function(e){return e.vertices.every((function(e){return!n.includes(e.index)}))})).filter((function(e){return 3===e.numSides})),r=t.faces.filter((function(e){return e.vertices.every((function(e){return n.includes(e.index)}))}));return fe([].concat(Object(G.a)(a),Object(G.a)(r)),(function(e){if(r.some((function(t){return t.equals(e)}))){var t=e.vertices[0],n=t.adjacentFaces().find((function(t){return 3===t.numSides&amp;&amp;!t.equals(e)}));return Ot(e,t.vec,n.centroid())}var a=e.edges.find((function(e){return e.twinFace().numSides&gt;5}));return jt(e,a)}))}}),At=new ke("truncate",Oe([kt.truncate.left,Ct.truncate.left,Ft.left])),Dt=(new ke("cotruncate",Oe([kt.cotruncate.left,Ct.cotruncate.left])),new ke("rectify",Oe([kt.rectify.left,Ct.rectify.left]))),Pt={hitOption:"facet",getHitOption(e,t){var n=e.geom.hitFace(t).numSides;return n&lt;=5?{facet:3===n?"face":"vertex"}:{}},faceSelectionStates(e,t){var n=e.specs,a=e.geom,r=t.facet,i=r?"face"===r?3:n.data.family:null;return a.faces.map((function(e){return e.numSides===i?"selected":"selectable"}))}},Vt=new ke("sharpen",Object(l.a)(Object(l.a)({},Oe([kt.truncate.right,Ct.truncate.right,Ft.right,kt.rectify.right,Ct.rectify.right])),Pt)),Tt=(new ke("cosharpen",Object(l.a)(Object(l.a)({},Oe([kt.cotruncate.right,Ct.cotruncate.right])),Pt)),new ke("unrectify",Object(l.a)(Object(l.a)({},Oe([kt.rectify.right,Ct.rectify.right])),Pt)),n(640)),Nt=n(179),Mt=n(158),zt=n(623),Lt=n(648);function Rt(e,t){if(e.isPrismatic())return function(e,t){var n=t.faceWithNumSides(e.data.base),a=t.faces.find((function(e){return e.numSides===n.numSides&amp;&amp;Object(K.k)(n.normal(),e.normal())}));return[n,a]}(e,t);if(!e.isCapstone())throw new Error("Invalid spec provided: ".concat(e.name()));if(e.isBi())return function(e){var t,n=w.Cap.getAll(e),a=Object(_.a)(n);try{var r=function(){var e=t.value,a=n.find((function(t){return Object(K.k)(e.normal(),t.normal())}));if(a)return{v:[e,a]}};for(a.s();!(t=a.n()).done;){var i=r();if("object"===typeof i)return i.v}}catch(c){a.e(c)}finally{a.f()}throw new Error("Could not find opposite caps")}(t);var n=t.faces.filter((function(e){return 1===Object(zt.a)(e.adjacentFaces(),"numSides").length})),a=Object(Lt.a)(n,"numSides"),r=w.Cap.getAll(t).find((function(e){return Object(K.k)(e.normal(),a.normal())}));return[a,r]}var qt=Math.cos,Gt=Math.PI,It=Math.sqrt;function Wt(e){var t=1/qt(Gt/(2*e));return It(1-t*t/4)}function Bt(e,t){switch(t){case"prism":return 1;case"antiprism":return Wt(e);default:return 0}}function Ht(e){switch(e){case"left":return 1;case"right":return-1;default:return 0}}function Ut(e,t,n,a){var r=e.centroid(),i=e.sideLength(),c=e.numSides,o=r.sub(e.normal().scale(i*Bt(c,n)/2)),u=("antiprism"===n?1:0)*Ht(a)*(Gt/c/2);return{origin:o,scale:i,orientation:[e.normal(),t.v1.vec.sub(r).getRotatedAroundAxis(e.normal(),u)]}}function _t(e){if(e.isPrismatic())return e.data.base;if(e.isCapstone())return e.isPyramid()?e.data.base:2*e.data.base;throw new Error("Invalid specs: ".concat(e.name()))}function Yt(e,t,n,a){var r=Rt(e,t),i=Ht(a)*Gt/_t(e);return fe(r,(function(e){return Object(K.n)(e.normalRay(),(function(t){return t.add(e.normal().scale(n/2)).getRotatedAroundAxis(e.normal(),i/2)}))}))}function Jt(e,t,n){var a=-t.edgeLength()*Bt(_t(e),e.data.elongation);return Yt(e,t,a,n)}function Qt(e,t,n){var a=-t.edgeLength()*(Wt(_t(e))-1);return Yt(e,t,a,n)}var Zt={rotunda:0,cupola:1,pyramid:2};function Kt(e){var t=e.query,n=e.rightElongation,a=void 0===n?"antiprism":n,r=e.getOrientation,i="prism"===a?void 0:"left";return function(e){return ye({graph:Nt.a.query.where((function(e){return t(e)&amp;&amp;e.data.elongation===a})).map((function(t){return{left:t.withData({elongation:e}),right:t}})),middle:"right",getPose(e,t){var n=r(t),a=Object(j.a)(n,2);return Ut(a[0],a[1],t.specs.data.elongation,i)},toLeft(t){var n=t.geom,a=t.specs;return("prism"===e?Qt:Jt)(a,n,i)}})}}var Xt=ye({graph:Mt.a.query.where((function(e){return e.isPrism()&amp;&amp;!e.isDigonal()})).map((function(e){return{left:e,right:e.withData({type:"antiprism"})}})),middle:"right",getPose(e,t){var n=t.geom,a=t.specs,r=n.faceWithNumSides(a.data.base);return Ut(r,r.edges[0],a.data.type,"left")},toLeft:function(e){var t=e.geom;return Qt(e.specs,t,"left")}}),$t=Kt({query:function(e){return!e.isDigonal()},rightElongation:"prism",getOrientation(e){var t=e.geom,n=Object(Tt.a)(w.Cap.getAll(t),(function(e){return Zt[e.type]}))[0].boundary(),a=n.edges.find((function(e){return 3===e.face.numSides}));return[n,a]}})(null),en=function(e){return e.isPyramid()&amp;&amp;e.data.base&gt;3},tn=function(e){return!e.isPyramid()&amp;&amp;!e.isDigonal()},nn=Kt({query:function(e){return en(e)&amp;&amp;e.isMono()},getOrientation(e){var t=e.geom.largestFace();return[t,t.edges[0]]}}),an=nn(null),rn=nn("prism"),cn=Kt({query:function(e){return tn(e)&amp;&amp;e.isMono()},getOrientation(e){var t=e.geom,n=w.Cap.getAll(t)[0].boundary(),a=n.edges.find((function(e){return 3===e.face.numSides}));return[n,a]}}),on=cn(null),un=cn("prism"),sn=Kt({query:function(e){return en(e)&amp;&amp;e.isBi()},getOrientation(e){var t=e.geom,n=w.Cap.getAll(t)[0].boundary();return[n,n.edges[0]]}}),ln=sn(null),dn=sn("prism");function fn(e){return ye({graph:Nt.a.query.where((function(t){return tn(t)&amp;&amp;t.isBi()&amp;&amp;t.data.elongation===e})).flatMap((function(e){return["left","right"].map((function(t){return{left:e,right:e.withData({elongation:"antiprism",twist:e.isGyro()?t:re(t)}),options:{left:{twist:t},right:{twist:re(t)}}}}))})),middle:"right",getPose(e,t,n){var a=t.specs,r=t.geom,i=n.right.twist,c=w.Cap.getAll(r),o=(a.isCupolaRotunda()?c.find((function(e){return"rotunda"===e.type})):c[0]).boundary(),u=o.edges.find((function(e){return 3===e.face.numSides}));return Ut(o,u,a.data.elongation,i)},toLeft:function(t,n){var a=t.geom,r=t.specs,i=n.right.twist;return("prism"===e?Qt:Jt)(r,a,i)}})}var mn=fn(null),pn=fn("prism"),vn=Se("elongate",$t.left),hn=Se("gyroelongate",Oe([an,on,ln,mn].map((function(e){return e.left})))),gn=Se("shorten",Oe([$t,an,on,ln,mn].map((function(e){return e.right})))),bn=Se("turn",Oe([Xt,rn,un,dn,pn].flatMap((function(e){return[e.left,e.right]})))),yn=n(624),On=n(644),jn=n(627),En=n(180);function wn(e){if(3===e)throw new Error("Count ".concat(e," is too high to increment"));return e+1}function xn(e){if(0===e)throw new Error("Count ".concat(e," is too low to decrement"));return e-1}function kn(e){return e.boundary().edges.every((function(e){var t=e.adjacentFaces().map((function(e){return e.numSides})),n=Object(j.a)(t,2);return 4===n[0]===(4===n[1])}))?"ortho":"gyro"}function Sn(e,t){var n="cupola"===t.type?w.Cap.getAll(e).filter((function(e){return"ortho"===kn(e)})):[],a=n.length&gt;0?Object(c.e)(n).boundary().normal():e.largestFace().normal();return Object(K.k)(t.normal(),a)?"para":"meta"}var Cn=Object(je.a)({pyramid:{3:"tetrahedron",4:"square pyramid",5:"pentagonal pyramid"},cupola:{2:"triangular prism",3:"triangular cupola",4:"square cupola",5:"pentagonal cupola"},rotunda:{5:"pentagonal rotunda"}},(function(e){return Object(je.a)(e,w.Polyhedron.get)})),Fn={Y:"pyramid",U:"cupola",R:"rotunda"};function An(e){if(!e.isComposite())return!1;var t=e.data,n=t.source;return 1===t.augmented&amp;&amp;(n.isPrismatic()?6===n.data.base:n.isIcosahedral())}function Dn(e,t){var n=Object(c.e)(w.Cap.getAll(e)).boundary();return Object(K.k)(n.normal(),t.normal())?"para":"meta"}function Pn(e,t,n){var a=e.numSides;if(!t)return!1;var r=t.faceWithNumSides(a);return e.edges.every((function(e,t){return e.dihedralAngle()+Object(c.d)(r.edges,t-1+n).dihedralAngle()&lt;Math.PI-K.a}))}function Vn(e,t){for(var n=Gn(t),a="pyramid"===n?e.numSides:e.numSides/2,r=0,i=[0,1];r&lt;i.length;r++){var c=i[r];if(Pn(e,Cn[n][a],c))return!0}return!1}function Tn(e){var t,n=function(e){var t=Cn.pyramid,n=Cn.cupola,a=Cn.rotunda;return Object(yn.a)([t[e],n[e/2],a[e/2]])}(e.numSides),a=Object(_.a)(n);try{for(a.s();!(t=a.n()).done;)for(var r=t.value,i=0,c=[0,1];i&lt;c.length;i++){if(Pn(e,r,c[i]))return!0}}catch(o){a.e(o)}finally{a.f()}return!1}var Nn=function(e,t){return 0===Object(On.a)(e,t).length};function Mn(e,t,n,a,r){if("pyramid"===r)return!0;var i=function(e){var t=e.adjacentFaces(),n=Object(q.a)(t.map((function(e){return e.numSides})));return Nn(n,[3,4])?"cupola":Nn(n,[4])?"prism":Nn(n,[3])?"pyramidOrAntiprism":Nn(n,[3,5])?"rotunda":Nn(n,[4,5])?"rhombicosidodecahedron":"truncated"}(t);if("pyramidOrAntiprism"===i)return!0;if("prism"===i&amp;&amp;0===w.Cap.getAll(e).length)return!0;if("truncated"!==i&amp;&amp;!a)throw new Error("Must define 'gyrate' for augmenting ".concat(i," "));var o="prism"===i?ie(t.edges[0]):t.adjacentFaces()[0],u=Object(c.d)(n.adjacentFaces(),-1);if("rhombicosidodecahedron"===i)return 4!==o.numSides===(4!==u.numSides)===("ortho"===a);var s=3!==o.numSides===(3!==u.numSides);return"truncated"===i?!s:function(e,t){return Nn(["cupola","rotunda"],[e,t])}(w.Cap.getAll(e)[0].type,r)?s!==("ortho"===a):s===("ortho"===a)}function zn(e,t,n,a,r){var i=n.numSides,o=function(e,t){var n=["cupola","rotunda"].includes(e)?t/2:t;return Cn[e][n]}(a,i),u=o.faceWithNumSides(n.numSides),s=u.vertices[0].vec.sub(u.centroid()).getNormalized(),l=Mn(t,n,u,function(e,t){return"cupola"===e&amp;&amp;4===t}(a,i)?"gyro":r,a)?0:1,d=n.vertices[l].vec.sub(n.centroid()).getNormalized(),f=Object(K.i)(s,u.normal().getInverted(),d,n.normal()),m=Object(K.n)(n.centroid(),(function(e){return f.applyTo(e)})),p=o.vertices.map((function(e){return e.vec.sub(u.centroid()).scale(n.sideLength()/o.edgeLength()).add(n.centroid())})).map((function(e){return m(e)})),v=o.withChanges((function(e){return e.withVertices(p).withoutFaces([u])})),h=o.withVertices(Object(c.g)(n.centroid(),o.numVertices())),g=t.addPolyhedron(v);return{animationData:{start:t.addPolyhedron(h),endVertices:g.vertices},result:de(g.withoutFaces([n]))}}var Ln={3:"Y3",4:"Y4",5:"Y5",6:"U3",8:"U4",10:"U5"};function Rn(e,t){return t&amp;&amp;function(e){var t=qn(e),n=t.type,a=t.base;return["rotunda","cupola"].includes(n)?2*a:a}(t)===e?t:Ln[e]}function qn(e){var t=Object(j.a)(e,2),n=t[0],a=t[1];return{type:Fn[n],base:parseInt(a)}}function Gn(e){return qn(e).type}function In(e){return"triangular prism"===e.canonicalName()?["Y4","U2"]:function(e){return e.isPrismatic()?10===e.data.base:!!e.isCapstone()&amp;&amp;(e.isMono()&amp;&amp;!e.isPyramid()&amp;&amp;e.isPentagonal())}(e)?["U5","R5"]:null}function Wn(e){return e.isCapstone()?!e.isGyroelongated()&amp;&amp;(!e.isDigonal()&amp;&amp;!e.isPyramid()):!!e.isComposite()&amp;&amp;"rhombicosidodecahedron"===e.data.source.canonicalName()}var Bn=["ortho","gyro"],Hn=Se("augment",{apply(e,t){e.specs;var n=e.geom,a=t.face,r=t.gyrate,i=t.using;return zn(0,n,a,i?Gn(i):a.numSides&lt;=5?"pyramid":"cupola",r)},canApplyTo(e){if(e.isPrismatic()){var t=e.data.base;return(!e.isAntiprism()||3!==t)&amp;&amp;t&gt;2}if(e.isCapstone())return e.isMono();if(e.isComposite()){var n=e.data,a=n.source,r=n.diminished,i=n.augmented;if("rhombicosidodecahedron"===a.canonicalName())return r&gt;0;if("icosahedron"===a.canonicalName())return r&gt;0&amp;&amp;0===i;if(a.isPrismatic())return i&lt;(a.data.base%3===0?3:2)&amp;&amp;!e.isPara();if(a.isClassical())return i&lt;a.data.family-2&amp;&amp;!e.isPara()}return!!e.isElementary()&amp;&amp;"sphenocorona"===e.canonicalName()},isPreferredSpec(e,t){var n=t.face,a=t.using,r=qn(Rn(n.numSides,a)),i=r.type,c=r.base;return(4!==c||"pyramid"!==i||!e.isPrismatic()||!e.isPrism())&amp;&amp;("triangular prism"!==e.canonicalName()||("cupola"===i?e.isCapstone():3===c?e.isPrismatic():e.isComposite()))},getResult(e,t){var n=e.specs,a=e.geom,r=t.face,i=t.using,c=t.gyrate,o=qn(Rn(r.numSides,i)),u=o.type,s=o.base;if(n.isPrismatic())return Nt.a.query.withData({count:1,elongation:n.data.type,type:u,base:s});if(n.isCapstone())return n.withData({count:2,gyrate:2===s?"gyro":c,type:u===n.data.type?u:"cupolarotunda"});if(n.isComposite()){var l=n.data,d=l.source,f=l.augmented,m=l.diminished,p=l.gyrate;return"rhombicosidodecahedron"===d.canonicalName()?"ortho"===c?n.withData({gyrate:wn(p),diminished:xn(m)}):n.withData({diminished:xn(m),align:"meta"}):"icosahedron"===d.canonicalName()?3===s?n.withData({augmented:1}):n.withData({diminished:xn(m),align:"meta"}):n.withData({augmented:wn(f),align:An(n)?Dn(a,r):void 0})}if(n.isElementary())return En.a.query.withName("augmented sphenocorona");throw new Error},hasOptions:()=&gt;!0,allOptionCombos:e=&gt;U.a.mark((function t(){var n,a,r,i,c,o,u,s,l,d,f,m,p,v,h;return U.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:a=e.specs,r=e.geom,i=Wn(a)?Bn:[void 0],c=null!==(n=In(a))&amp;&amp;void 0!==n?n:[void 0],o=r.faces.filter((function(e){return Tn(e)})),u=Object(_.a)(o),t.prev=5,u.s();case 7:if((s=u.n()).done){t.next=44;break}l=s.value,d=Object(_.a)(i),t.prev=10,d.s();case 12:if((f=d.n()).done){t.next=34;break}m=f.value,p=Object(_.a)(c),t.prev=15,p.s();case 17:if((v=p.n()).done){t.next=24;break}if((h=v.value)&amp;&amp;!Vn(l,h)){t.next=22;break}return t.next=22,{gyrate:m,using:h,face:l};case 22:t.next=17;break;case 24:t.next=29;break;case 26:t.prev=26,t.t0=t.catch(15),p.e(t.t0);case 29:return t.prev=29,p.f(),t.finish(29);case 32:t.next=12;break;case 34:t.next=39;break;case 36:t.prev=36,t.t1=t.catch(10),d.e(t.t1);case 39:return t.prev=39,d.f(),t.finish(39);case 42:t.next=7;break;case 44:t.next=49;break;case 46:t.prev=46,t.t2=t.catch(5),u.e(t.t2);case 49:return t.prev=49,u.f(),t.finish(49);case 52:case"end":return t.stop()}}),t,null,[[5,46,49,52],[10,36,39,42],[15,26,29,32]])}))(),hitOption:"face",getHitOption(e,t,n){var a=e.geom;if(!n)return{};var r=a.hitFace(t);return n.using?Vn(r,n.using)?{face:r}:{}:Tn(r)?{face:r}:{}},faceSelectionStates(e,t){var n=e.geom,a=t.face,r=t.using;return n.faces.map((function(e){return a&amp;&amp;e.equals(a)?"selected":!r&amp;&amp;Tn(e)||r&amp;&amp;Vn(e,r)?"selectable":void 0}))},allOptions(e,t){var n,a=e.specs,r=e.geom;switch(t){case"gyrate":return Wn(a)?Bn:[];case"using":return null!==(n=In(a))&amp;&amp;void 0!==n?n:[];case"face":return r.faces.filter((function(e){return Tn(e)}))}},defaultOptions(e){var t,n=null!==(t=In(e))&amp;&amp;void 0!==t?t:[];return Object(jn.a)({gyrate:Wn(e)&amp;&amp;"gyro",using:n.length&gt;1&amp;&amp;n[0]})}}),Un=n(645);var _n=Se("diminish",{apply:(e,t)=&gt;function(e,t){var n=t.boundary(),a=Object(c.f)(n.vertices,(function(e,t){return[e.index,t]})),r=e.withChanges((function(r){return r.addVertices(n.vertices).mapFaces((function(r){return r.inSet(t.faces())?r:r.vertices.map((function(t){return t.inSet(n.vertices)?e.numVertices()+a[t.index]:t.index}))})).addFaces([Object(Un.a)(e.numVertices(),e.numVertices()+n.numSides)])}));return{animationData:{start:r,endVertices:fe([t],(function(){return n.centroid()}),r.vertices)},result:le(e.withChanges((function(e){return e.withoutFaces(t.faces()).addFaces([t.boundary().vertices])})))}}(e.geom,t.cap),canApplyTo(e){if(e.isCapstone())return!(e.isMono()&amp;&amp;e.isShortened());if(e.isComposite()){var t=e.data,n=t.source,a=t.augmented,r=t.diminished,i=t.gyrate;return"rhombicosidodecahedron"===n.canonicalName()?2===r&amp;&amp;0===i?!e.isPara():r&lt;3:"icosahedron"===n.canonicalName()?(r&lt;3||1===a)&amp;&amp;!e.isPara():a&gt;0}return!!e.isElementary()&amp;&amp;"augmented sphenocorona"===e.canonicalName()},isPreferredSpec:e=&gt;"gyroelongated pentagonal pyramid"!==e.canonicalName()||e.isComposite(),getResult(e,t){var n=e.specs,a=e.geom,r=t.cap;if(n.isCapstone()){var i=n.data,c=i.count,o=i.elongation,u=i.base,s=i.type;if(1===c)return Mt.a.query.withData({type:o,base:n.isPyramid()?u:2*u});var l=r.type;return n.withData({count:1,type:"cupolarotunda"===s?"rotunda"===l?"cupola":"rotunda":s})}if(n.isComposite()){var d=n.data,f=d.source,m=d.augmented,p=d.diminished,v=d.gyrate;return"rhombicosidodecahedron"===f.canonicalName()?"ortho"===kn(r)?n.withData({gyrate:xn(v),diminished:wn(p)}):n.withData({diminished:wn(p),align:n.isMono()?Sn(a,r):void 0}):"icosahedron"===f.canonicalName()?1===m?n.withData({augmented:0}):n.withData({diminished:wn(p),align:1===p?Sn(a,r):void 0}):n.withData({augmented:xn(m),align:3===m&amp;&amp;"triangular prism"!==f.canonicalName()?"meta":void 0})}if(n.isElementary())return En.a.query.withName("sphenocorona");throw new Error},hasOptions:()=&gt;!0,allOptionCombos:e=&gt;U.a.mark((function t(){var n,a,r,i;return U.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=e.geom,a=Object(_.a)(w.Cap.getAll(n)),t.prev=2,a.s();case 4:if((r=a.n()).done){t.next=10;break}return i=r.value,t.next=8,{cap:i};case 8:t.next=4;break;case 10:t.next=15;break;case 12:t.prev=12,t.t0=t.catch(2),a.e(t.t0);case 15:return t.prev=15,a.f(),t.finish(15);case 18:case"end":return t.stop()}}),t,null,[[2,12,15,18]])}))(),hitOption:"cap",getHitOption(e,t){var n=e.geom,a=w.Cap.find(n,t);return a?{cap:a}:{}},faceSelectionStates(e,t){var n=e.geom,a=t.cap,r=w.Cap.getAll(n).flatMap((function(e){return e.faces()}));return n.faces.map((function(e){return a instanceof w.Cap&amp;&amp;e.inSet(a.faces())?"selected":e.inSet(r)?"selectable":void 0}))}}),Yn=2*Math.PI;var Jn={dual:vt,truncate:At,sharpen:Vt,rectify:Dt,expand:ht,snub:gt,contract:yt,twist:bt,elongate:vn,gyroelongate:hn,shorten:gn,turn:bn,augment:Hn,diminish:_n,gyrate:Se("gyrate",{apply:(e,t)=&gt;function(e,t){var n=t.cap,a=n.boundary(),r=Yn/a.numSides,i=Object(c.f)(a.vertices,(function(e,t){return[e.index,t]})),o=e.withChanges((function(t){return t.addVertices(a.vertices).mapFaces((function(t){return t.inSet(n.faces())?t:t.vertices.map((function(t){return t.inSet(a.vertices)?e.numVertices()+i[t.index]:t.index}))}))}));return{animationData:{start:o,endVertices:fe([n],(function(e){return Object(K.n)(e.normalRay(),(function(t){return t.getRotatedAroundAxis(e.normal(),r)}))}),o.vertices)}}}(e.geom,t),canApplyTo(e){if(e.isCapstone())return e.isBi()&amp;&amp;!e.isPyramid()&amp;&amp;e.data.base&gt;2;if(e.isComposite()){var t=e.data,n=t.source,a=t.diminished;return"rhombicosidodecahedron"===n.canonicalName()&amp;&amp;(2===a?!e.isPara():a&lt;3)}return!1},getResult(e,t){var n=e.specs,a=e.geom,r=t.cap;if(n.isCapstone()){var i=n.data.gyrate;return n.withData({gyrate:"ortho"===i?"gyro":"ortho"})}var c=n.data.gyrate;return function(e){return"ortho"===kn(e)}(r)?n.withData({gyrate:xn(c),align:"meta"}):n.withData({gyrate:wn(c),align:n.isMono()?Sn(a,r):void 0})},hasOptions:()=&gt;!0,allOptionCombos:e=&gt;U.a.mark((function t(){var n,a,r,i;return U.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=e.geom,a=Object(_.a)(w.Cap.getAll(n)),t.prev=2,a.s();case 4:if((r=a.n()).done){t.next=10;break}return i=r.value,t.next=8,{cap:i};case 8:t.next=4;break;case 10:t.next=15;break;case 12:t.prev=12,t.t0=t.catch(2),a.e(t.t0);case 15:return t.prev=15,a.f(),t.finish(15);case 18:case"end":return t.stop()}}),t,null,[[2,12,15,18]])}))(),hitOption:"cap",getHitOption(e,t){var n=e.geom,a=w.Cap.find(n,t);return a?{cap:a}:{}},faceSelectionStates(e,t){var n=e.geom,a=t.cap,r=w.Cap.getAll(n).flatMap((function(e){return e.faces()}));return n.faces.map((function(e){return a instanceof w.Cap&amp;&amp;e.inSet(a.faces())?"selected":e.inSet(r)?"selectable":void 0}))}})},Qn=n(69),Zn=n(45),Kn=Math.PI,Xn=Math.sin,$n=Math.cos,ea=2*Kn;function ta(e){return e.map((function(e){return e.join(",")})).join(" ")}function na(e){var t=e.points,n=Object(Zn.a)(e,["points"]);return r.a.createElement("polygon",Object.assign({},n,{points:ta(t)}))}function aa(e){var t=e.points,n=Object(Zn.a)(e,["points"]);return r.a.createElement("polyline",Object.assign({},n,{points:ta(t)}))}function ra(e){var t=e.n,n=void 0===t?3:t,a=e.r,r=void 0===a?1:a,i=e.cx,c=void 0===i?0:i,o=e.cy,u=void 0===o?0:o,s=e.a,l=void 0===s?0:s;return Object(Un.a)(n).map((function(e){return[c+r*$n(ea*(l/360+e/n)),u+r*Xn(ea*(l/360+e/n))]}))}function ia(e){var t=e.n,n=void 0===t?3:t,a=e.r,i=void 0===a?1:a,c=e.cx,o=void 0===c?0:c,u=e.cy,s=void 0===u?0:u,l=e.a,d=void 0===l?0:l,f=Object(Zn.a)(e,["n","r","cx","cy","a"]),m=ra({n:n,r:i,cx:o,cy:s,a:d});return r.a.createElement(na,Object.assign({},f,{points:m}))}var ca=Math.sqrt;var oa="DimGray",ua=function(e){var t=Qn.StyleSheet.create(e);return function(){for(var e=arguments.length,n=new Array(e),a=0;a&lt;e;a++)n[a]=arguments[a];return Qn.css.apply(void 0,Object(G.a)(n.map((function(e){return!!e&amp;&amp;t[e]}))))}}({operationIcon:Object(m.o)(f.c.size[3]),invariant:{fill:oa,stroke:oa,strokeWidth:5,strokeLinejoin:"round"},subtracted:{fill:"none",stroke:oa,strokeWidth:5,strokeDasharray:10},added:{fill:"none",stroke:oa,strokeWidth:5,strokeLinejoin:"round"},changed:{fill:"none",stroke:oa,strokeWidth:5}});function sa(e){var t=e.styled,n=e.innerSides,a=void 0===n?6:n,i=e.innerScale,c=void 0===i?1/ca(3):i,o=e.innerAngle,u=void 0===o?0:o,s={cx:100,cy:120};return r.a.createElement(r.a.Fragment,null,r.a.createElement(ia,Object.assign({className:ua(t),n:3,r:100,a:-90},s)),r.a.createElement(ia,Object.assign({className:ua("invariant"),n:a,r:100*c,a:u},s)))}function la(){var e={cx:100,cy:100};return r.a.createElement(r.a.Fragment,null,r.a.createElement(ia,Object.assign({className:ua("subtracted"),n:3,r:75,a:-90},e)),r.a.createElement(ia,Object.assign({className:ua("added"),n:3,r:75,a:90},e)),r.a.createElement(ia,Object.assign({className:ua("invariant"),n:6,r:75/ca(3),a:0},e)))}function da(e){var t=e.styled,n=e.render,a=void 0===n?function(){return null}:n,i=e.hollow,c=void 0!==i&amp;&amp;i,o=e.innerAngle,u=void 0===o?0:o,s=80*ca(3)/2,l=80/ca(3),d=l/2;return r.a.createElement(r.a.Fragment,null,r.a.createElement(ia,{className:ua(t),n:6,r:80,a:0,cx:100,cy:100}),r.a.createElement(ia,{className:ua(c?t:"invariant"),n:3,r:l,a:u,cx:100,cy:100}),r.a.createElement(a,{cx:100,cy:100,r:80,ap:s,r1:l,ap1:d}))}function fa(e){var t=e.styled,n=e.render,a=void 0===n?function(){return null}:n,i=e.innerStyle,c=void 0===i?t:i,o=e.hollow,u=void 0!==o&amp;&amp;o;return r.a.createElement(da,{styled:t,innerAngle:-90,hollow:u,render:function(e){var t=e.cx,n=e.cy,i=e.r,o=e.ap,u=e.r1,s=e.ap1;return r.a.createElement(r.a.Fragment,null,Object(Un.a)(3).map((function(e){return r.a.createElement(aa,{key:e,className:ua(c),transform:"rotate(".concat(120*e," ").concat(t," ").concat(n,")"),points:[[t-i/2,n-o],[t,n-u],[t+i/2,n-o]]})})),r.a.createElement(a,{cx:t,cy:n,r:i,ap:o,r1:u,ap1:s}))}})}function ma(e){var t=e.styled,n=e.render,a=100,i=100,c=80,o=ca(3)*c/2;return r.a.createElement(r.a.Fragment,null,r.a.createElement(ia,{className:ua(t),n:6,r:c,a:90,cx:a,cy:i}),r.a.createElement(aa,{className:ua("invariant"),points:[[a-o,60],[a,20],[a+o,60]]}),r.a.createElement(aa,{className:ua("invariant"),points:[[a-o,140],[a,180],[a+o,140]]}),n?r.a.createElement(n,{cx:a,cy:i,r:c,ap:o}):r.a.createElement("rect",{className:ua(t),x:60,y:55,width:c,height:90}))}function pa(e){var t=e.styled,n=80,a=ca(3)*n/2;return r.a.createElement(r.a.Fragment,null,r.a.createElement(ia,{className:ua(t),n:6,r:n,a:90,cx:100,cy:100}),r.a.createElement(aa,{className:ua("invariant"),points:[[100-a,60],[100-a,140],[100,180],[100+a,140],[100+a,60]]}))}var va=Object(a.memo)((function(e){var t=e.name;return r.a.createElement("svg",{viewBox:"0 0 200 200",className:ua("operationIcon")},function(e){switch(e){case"truncate":return r.a.createElement(sa,{styled:"subtracted"});case"rectify":return r.a.createElement(sa,{styled:"subtracted",innerSides:3,innerScale:.5,innerAngle:90});case"sharpen":return r.a.createElement(sa,{styled:"added"});case"dual":return r.a.createElement(la,null);case"expand":return r.a.createElement(fa,{styled:"added"});case"snub":return r.a.createElement(da,{styled:"added",hollow:!1,innerAngle:0,render:function(e){var t=e.cx,n=e.cy,a=e.r,i=e.ap,c=e.ap1;return r.a.createElement(r.a.Fragment,null,Object(Un.a)(3).map((function(e){return r.a.createElement(aa,{key:e,className:ua("added"),transform:"rotate(".concat(120*e," ").concat(t," ").concat(n,")"),points:[[t-c,n-a/2],[t-a,n],[t-c,n+a/2],[t-a/2,n+i]]})})))}});case"contract":return r.a.createElement(fa,{styled:"subtracted"});case"twist":return r.a.createElement(fa,{styled:"changed",innerStyle:"invariant",render:function(e){var t=e.cx,n=e.cy,a=e.r,i=e.ap,c=e.ap1;return r.a.createElement(r.a.Fragment,null,Object(Un.a)(3).map((function(e){return r.a.createElement(aa,{key:e,className:ua("changed"),transform:"rotate(".concat(120*e," ").concat(t," ").concat(n,")"),points:[[t-a/2,n+c],[t+a/2,n+i]]})})))}});case"elongate":return r.a.createElement(ma,{styled:"added"});case"gyroelongate":return r.a.createElement(ma,{styled:"added",render:function(e){var t=e.cx,n=e.cy,a=e.r,i=e.ap;return r.a.createElement(aa,{className:ua("added"),points:[[t-i,n-a/2],[t-a/2,n+a/2],[t,n-a/2],[t+a/2,n+a/2],[t+i,n-a/2]]})}});case"shorten":return r.a.createElement(ma,{styled:"subtracted"});case"turn":return r.a.createElement(ma,{styled:"added",render:function(e){var t=e.cx,n=e.cy,a=e.r,i=e.ap;return r.a.createElement(aa,{className:ua("added"),points:[[t-i,n-a/2],[t-a/2,n+a/2],[t-a/2,n-a/2],[t+a/2,n+a/2],[t+a/2,n-a/2],[t+i,n+a/2]]})}});case"augment":return r.a.createElement(pa,{styled:"added"});case"diminish":return r.a.createElement(pa,{styled:"subtracted"});case"gyrate":return r.a.createElement(r.a.Fragment,null,r.a.createElement(fa,{styled:"subtracted",hollow:!0}),r.a.createElement("g",{transform:"rotate(180 100 100)"},r.a.createElement(fa,{styled:"added",hollow:!0})));default:throw new Error("Unknown operation: ".concat(e))}}(t))})),ha=[["truncate","rectify","sharpen","dual"],["expand","snub","contract","twist"],["elongate","gyroelongate","shorten","turn"],["augment","augment","diminish","gyrate"]],ga=Object(q.a)(ha.flat()),ba=Object(a.memo)((function(e){var t=e.name,n=e.disabled,a=k.useState(),i=C.useState().operation,c=C.useActions(),o=c.setOperation,u=c.unsetOperation,s=R(),d=Jn[t],p=!!i&amp;&amp;t===i.name,v=Object(f.d)(Object(l.a)(Object(l.a)(Object(l.a)(Object(l.a)({},Object(m.d)("center","center")),m.f),Object(m.o)("5rem")),{},{border:p?"2px DarkSlateGray solid":"1px LightGray solid",fontFamily:f.a.verdana,fontSize:f.c.font[7],color:"DimGray",backgroundColor:"white",":disabled":{opacity:.3},[f.b.mobile]:{":not(:last-child)":{marginRight:f.c.spacing[2]}}}),[p]);return r.a.createElement("button",Object.assign({},v(),{style:{gridArea:t},onClick:function(){if(p)return u();d.hasOptions(a)?o(d,a):s(d)},disabled:!d.canApplyTo(a)||n}),r.a.createElement(va,{name:t}),t)})),ya=ha.map((function(e){return'"'.concat(e.join(" "),'"')})).join("\n");function Oa(){var e=C.useActions().unsetOperation,t=L.useState().isTransitioning;r.a.useEffect((function(){return function(){e()}}),[e]);var n=Object(f.d)({[f.b.notMobile]:{display:"grid",justifyContent:"space-between",gridColumnGap:f.c.spacing[1],gridRowGap:f.c.spacing[2],gridTemplateAreas:ya},[f.b.mobile]:Object(l.a)(Object(l.a)(Object(l.a)({},Object(m.e)()),Object(m.n)("x")),{},{width:"100%"})});return r.a.createElement("div",n(),ga.map((function(e){return r.a.createElement(ba,{key:e,name:e,disabled:t})})))}var ja=n(81);function Ea(e){var t=Object(f.d)(Object(l.a)(Object(l.a)({},m.f),{},{alignSelf:"flex-end",backgroundColor:"white",border:"1px LightGray solid",padding:f.c.spacing[2],fontSize:f.c.font[6],fontFamily:ja.andaleMono}));return r.a.createElement("button",Object.assign({},e,t()))}var wa=[{name:"Recenter",handler:function(e){return e.center()}},{name:"Resize",handler:function(e){return e.normalizeToVolume(5)}}];function xa(){var e=k.useState(),t=k.useActions().setPolyhedron,n=L.useState().isTransitioning,a=Object(f.d)({display:"grid",gridTemplateColumns:"1fr 1fr",columnGap:f.c.spacing[2]});return r.a.createElement("div",a(),wa.map((function(a){var i=a.name,c=a.handler;return r.a.createElement(Ea,{key:i,disabled:n,onClick:function(){return t(c(e))}},i)})))}var ka=n(80),Sa=n.n(ka),Ca=n(77);function Fa(e){var t=e.orientation,n=L.useState().isTransitioning,i=C.useState().operation,c=R(),o=Object(a.useCallback)((function(){return c(i,{twist:t})}),[t,i,c]),u=Object(f.d)(Object(l.a)(Object(l.a)(Object(l.a)(Object(l.a)({},Object(m.d)("center","center")),Object(m.o)(f.c.size[3])),m.f),{},{border:"1px LightGray solid",pointerEvents:"initial",background:"none"}));return r.a.createElement("button",Object.assign({},u(),{disabled:n,onClick:o}),r.a.createElement(Sa.a,{path:"left"===t?Ca.m:Ca.n,rotate:180,size:f.c.size[3]}),r.a.createElement(h.b,null,t))}function Aa(){var e=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.e)("center","space-between")),{},{width:"100%",height:"100%"}));return r.a.createElement("div",e(),r.a.createElement(Fa,{orientation:"left"}),r.a.createElement(Fa,{orientation:"right"}))}var Da=n(634);function Pa(e){var t=e.name,n=Object(f.d)({stroke:"DimGray",fill:"none",strokeWidth:5,strokeLinejoin:"round"}),a=Object(f.d)({stroke:"DimGray",fill:"none",strokeWidth:8,strokeLinejoin:"round"});switch(t){case"ortho":return r.a.createElement(r.a.Fragment,null,r.a.createElement(ia,Object.assign({},a(),{n:5,cx:100,cy:100,a:90,r:100})),r.a.createElement(ia,Object.assign({},n(),{n:5,cx:100,cy:100,a:90,r:66})));case"gyro":return r.a.createElement(r.a.Fragment,null,r.a.createElement(ia,Object.assign({},a(),{n:5,cx:100,cy:100,a:90,r:100})),r.a.createElement(ia,Object.assign({},n(),{n:5,cx:100,cy:100,a:-90,r:66})));case"pyramid":return r.a.createElement(r.a.Fragment,null,r.a.createElement(na,Object.assign({},a(),{points:[[100,50],[10,170],[190,170]]})),r.a.createElement(aa,Object.assign({},n(),{points:[[140,170],[100,50],[60,170]]})));case"fastigium":return r.a.createElement(r.a.Fragment,null,r.a.createElement(na,Object.assign({},a(),{points:[[150,50],[50,50],[10,150],[190,150]]})),r.a.createElement(aa,Object.assign({},n(),{points:[[150,50],[120,150]]})));case"cupola":return r.a.createElement(r.a.Fragment,null,r.a.createElement(na,Object.assign({},a(),{points:[[150,50],[50,50],[10,150],[190,150]]})),r.a.createElement(aa,Object.assign({},n(),{points:[[50,50],[50,150],[150,150],[150,50]]})));case"rotunda":var i=Object(Da.a)(ra({n:12,cx:100,cy:150,r:-90}),7),c=Object(j.a)(i,6),o=c[0],u=c[1],s=c[2],l=c[3],d=c[4],m=c[5],p=o[1],v=[s[0],u[1]],h=[d[0],m[1]];return r.a.createElement(r.a.Fragment,null,r.a.createElement(na,Object.assign({},a(),{points:i})),r.a.createElement(na,Object.assign({},n(),{points:[[70,p],v,l,h,[130,p]]})),r.a.createElement(aa,Object.assign({},n(),{points:[s,v,[40,p],[160,p],h,d]})));default:throw new Error("unknown icon type")}}var Va=Object(a.memo)((function(e){var t=e.name,n=Object(f.d)(Object(m.o)(f.c.size[2]));return r.a.createElement("svg",Object.assign({viewBox:"0 0 200 200"},n()),r.a.createElement(Pa,{name:t}))})),Ta=function(e){switch(e){case"U2":return"fastigium";case"Y4":return"pyramid";case"U5":return"cupola";case"R5":return"rotunda";default:return e}};function Na(e){var t=e.optValue,n=e.selected,a=Object(Zn.a)(e,["optValue","selected"]),i=Object(f.d)(Object(l.a)(Object(l.a)(Object(l.a)({},m.f),Object(m.o)(f.c.size[3])),{},{border:n?"2px DarkSlateGray solid":"1px LightGray solid",backgroundColor:"white",fontFamily:ja.verdana}),[n]);return r.a.createElement("button",Object.assign({},a,i()),r.a.createElement(Va,{name:Ta(t)}),Ta(t))}function Ma(){var e=k.useState(),t=C.useState(),n=t.operation,a=t.options,i=C.useActions().setOption,c=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.e)("center","space-between")),{},{width:"100%",height:"100%"})),o=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.d)()),{},{pointerEvents:"initial"}));return r.a.createElement("div",c(),["gyrate","using"].map((function(t){var c=a[t];return r.a.createElement("div",Object.assign({key:t},o()),null===n||void 0===n?void 0:n.allOptions(e,t).map((function(e){return r.a.createElement(Na,{key:e,optValue:e,onClick:function(){return i(t,e)},disabled:!c,selected:c===e})})))})))}function za(){var e,t=C.useState().operation;return t?"augment"===t.name?r.a.createElement(Ma,null):(e=t.name,["snub","twist","gyroelongate","shorten","turn"].includes(e)?r.a.createElement(Aa,null):null):null}var La=n(652),Ra=n(609),qa=n.n(Ra).a;n(610);function Ga(e){var t=e.label,n=e.children,i=Object(a.useRef)(null);Object(a.useEffect)((function(){setTimeout((function(){if(qa.reload(),i.current){var e=i.current.querySelector("canvas");null===e||void 0===e||e.setAttribute("tabIndex",-1),null===e||void 0===e||e.setAttribute("aria-label",t)}}))}),[t]);var c=Object(f.d)({border:"none",height:"100%",width:"100%"});return r.a.createElement("x3d",Object.assign({is:"x3d"},c("class"),{ref:i}),r.a.createElement("scene",{is:"x3d"},r.a.createElement("viewpoint",{is:"x3d",position:"0,0,5"}),n))}qa.Viewarea&amp;&amp;(qa.Viewarea.prototype.onDoubleClick=function(){});var Ia=n(626),Wa=n(651);function Ba(e,t,n){return e.map((function(e){return e.join(n)})).join(t)}var Ha=function(e){var t=e.points;return r.a.createElement("coordinate",{is:"x3d","data-testid":"x3d-vertices",point:Ba(t,", "," ")})},Ua=function(e){var t=e.edges,n=void 0===t?[]:t,a=e.vertices,i=void 0===a?[]:a;return r.a.createElement("shape",{is:"x3d"},r.a.createElement("indexedlineset",{is:"x3d",coordindex:Ba(n," -1 "," ")},r.a.createElement(Ha,{points:i})))},_a={showFaces:!0,showEdges:!0,showInnerFaces:!0,opacity:.7};function Ya(e){var t=e.value,n=e.colors,i=e.config,c=void 0===i?_a:i,o=e.onHover,u=e.onMouseOut,s=e.onClick,l=Object(a.useRef)(null),d=Object(a.useRef)(null),f=t.vertices,m=t.faces,p=t.edges,v=c.showFaces,h=c.showEdges,g=c.showInnerFaces,b=c.opacity,y={mousedown(e){d.current=e.hitPnt},mouseup(e){Object(Ia.a)(d.current,e.hitPnt)&amp;&amp;(null===s||void 0===s||s(e.hitPnt))},mousemove(e){d.current=e.hitPnt,null===o||void 0===o||o(e.hitPnt)},mouseout(){null===u||void 0===u||u()}};Object(a.useEffect)((function(){return Object(Wa.a)(y,(function(e,t){null!==l.current&amp;&amp;l.current.addEventListener(t,e)})),function(){Object(Wa.a)(y,(function(e,t){var n=l.current;null!==n&amp;&amp;n.removeEventListener(t,e)}))}}),[y]);var O=Ba(n,","," ");return r.a.createElement(r.a.Fragment,null,v&amp;&amp;r.a.createElement("shape",{is:"x3d","data-testid":"x3d-shape",ref:l},r.a.createElement("appearance",{is:"x3d"},r.a.createElement("material",{is:"x3d",transparency:1-b})),r.a.createElement("indexedfaceset",{is:"x3d","data-testid":"x3d-faces",solid:(!g).toString(),colorpervertex:"false",coordindex:Ba(m," -1 "," ")},r.a.createElement(Ha,{points:f}),r.a.createElement("color",{is:"x3d",color:O}))),h&amp;&amp;r.a.createElement(Ua,{edges:p,vertices:f}))}var Ja=n(611),Qa=n.n(Ja);function Za(e){var t=Qa()(e).toRgb();return[t.r/255,t.g/255,t.b/255]}var Ka=function(e){var t=e.label,n=function(){var e=A.a.useState().colors,t=k.useState(),n=L.useState(),r=n.solidData,i=n.isTransitioning,c=n.faceColors,o=void 0===c?[]:c,u=C.useState(),s=u.operation,l=u.options,d=void 0===l?{}:l,f=Object(a.useMemo)((function(){return i&amp;&amp;r.faces.map((function(t,n){return o[n]||e[t.length]}))}),[r,o,e,i]),m=Object(a.useMemo)((function(){if(s){var n=s.faceSelectionStates(t,d);return t.faces.map((function(t,a){switch(n[a]){case"selected":return Qa.a.mix(e[t.numSides],"lime");case"selectable":return Qa.a.mix(e[t.numSides],"yellow",25);default:return e[t.numSides]}}))}}),[t,s,d,e]);return{colors:Object(a.useMemo)((function(){return(f||m||t.faces.map((function(t){return e[t.numSides]}))).map(Za)}),[f,m,t,e]),solidData:i?r:t.solidData}}(),i=n.colors,c=n.solidData,o=A.a.useState(),u=function(){var e=k.useState(),t=L.useState().isTransitioning,n=C.useState(),a=n.operation,r=n.options,i=void 0===r?{}:r,c=C.useActions().setOption,o=R(),u=(null!==a&amp;&amp;void 0!==a?a:{}).hitOption,s=void 0===u?"":u;return{setHitOption:function(n){if(a&amp;&amp;!t){var r=a.getHitOption(e,n,i);if(Object(te.a)(r))return c(s,void 0);var o=r[s];Object(Ia.a)(i[s],o)||c(s,o)}},unsetHitOption:function(){a&amp;&amp;c(s,void 0)},applyWithHitOption:function(n){if(a&amp;&amp;!t){var r=a.getHitOption(e,n,i)[s];i&amp;&amp;r&amp;&amp;o(a,Object(l.a)(Object(l.a)({},i),{},{[s]:r}),(function(e){"cap"===s&amp;&amp;i[s]&amp;&amp;c("cap",w.Cap.find(e,i[s].topPoint))}))}}}}(),s=u.setHitOption,d=u.unsetHitOption,f=u.applyWithHitOption;return r.a.createElement(Ga,{label:t},r.a.createElement(Ya,{value:c,colors:i,config:Object(La.a)(o,["showFaces","showEdges","showInnerFaces","opacity"]),onHover:s,onMouseOut:d,onClick:f}))};function Xa(e){var t=e.text,n=e.hidden,a=Object(f.d)({marginTop:f.c.spacing[1],fontSize:f.c.font[7],fontFamily:f.a.verdana,[f.b.mobileLandscape]:{marginTop:0,paddingLeft:f.c.spacing[1]}});return n?r.a.createElement(h.b,null,t):r.a.createElement("div",a(),t)}function $a(e){var t=e.iconName,n=e.title,a=e.to,i=e.replace,c=e.onClick,o=e.iconOnly,u=void 0!==o&amp;&amp;o,s=Object(f.d)(Object(l.a)(Object(l.a)(Object(l.a)({},Object(m.d)("center")),Object(m.c)("DimGray")),{},{textDecoration:"none",padding:f.c.spacing[2],[f.b.mobileLandscape]:{padding:0,flexDirection:"row"}})),p=Object(f.d)(Object(m.c)("DarkSlateGray"));return r.a.createElement(d.c,Object.assign({to:a,replace:i},s(),p("activeClassName"),{onClick:c}),r.a.createElement(Sa.a,{path:t,size:f.c.size[2]}),r.a.createElement(Xa,{text:n,hidden:u}))}function er(e){var t=e.solid;return r.a.createElement($a,{iconOnly:!0,iconName:Ca.a,title:"Back",to:"/#".concat(Object(c.b)(t))})}var tr=[{name:"list",icon:Ca.f},{name:"info",icon:Ca.h},{name:"options",icon:Ca.b},{name:"operations",icon:Ca.j},{name:"full",title:"Fullscreen",icon:Ca.c}];function nr(e){var t=e.compact,n=void 0!==t&amp;&amp;t,a=e.onClick,i=Object(f.d)({display:"grid",gridTemplateColumns:"repeat(".concat(tr.length,", 1fr)"),justifyItems:"center",width:"100%"});return r.a.createElement("nav",i(),tr.map((function(e){var t=e.name,i=e.title,c=void 0===i?t:i,o=e.icon;return r.a.createElement($a,{key:t,replace:!0,to:"../".concat(t),title:Object(E.a)(c),iconName:o,iconOnly:n,onClick:a})})))}function ar(e){return Number.isInteger(e)?"".concat(e,".0"):e}function rr(e){return"v "+e.map(ar).join(" ")}function ir(e){return"f "+e.map((function(e){return e+1})).join(" ")}var cr=[{ext:"json",serializer:JSON.stringify},{ext:"obj",serializer:function(e){var t=e.vertices,n=e.faces,a=t.map(rr),r=n.map(ir);return a.concat(r).join("\n")}}];function or(e){var t=e.ext,n=e.serializer,a=e.solid,i="".concat(a.name,".").concat(t),c=new Blob([n(a)],{type:"text/plain;charset=utf-8"}),o=window.URL.createObjectURL(c),u=Object(f.d)(Object(l.a)(Object(l.a)({display:"inline-flex",justifyContent:"center",padding:f.c.spacing[2],width:f.c.size[4],textDecoration:"none",border:"1px LightGray solid",color:"black",fontFamily:f.a.andaleMono},m.f),{},{":not(:last-child)":{marginRight:f.c.spacing[2]}}));return r.a.createElement("a",Object.assign({},u(),{key:t,download:i,href:o}),r.a.createElement(h.b,null,"Download as"),".",t," ",r.a.createElement("span",null,r.a.createElement(Sa.a,{path:Ca.d,size:f.c.size[1]})))}function ur(e){var t=e.solid,n=Object(f.d)({fontFamily:f.a.times,fontSize:f.c.font[4],marginBottom:f.c.spacing[2]});return r.a.createElement("div",null,r.a.createElement("h2",n(),"Download model"),r.a.createElement("div",null,cr.map((function(e){return r.a.createElement(or,Object.assign({key:e.ext},e,{solid:t}))}))))}var sr=n(653),lr=n(635),dr=n(67),fr=U.a.mark(vr);function mr(e){var t=e.children,n=Object(f.d)({verticalAlign:"sub",fontSize:"smaller"});return r.a.createElement("sub",n(),t)}function pr(e){var t=e.children;if("undefined"===typeof t)throw new Error("undefined child");if(t&lt;0||t&gt;5)throw new Error("Number not supported");var n=function(){switch(t){case 1:return r.a.createElement(r.a.Fragment,null,"\xb9");case 2:return r.a.createElement(r.a.Fragment,null,"\xb2");case 3:return r.a.createElement(r.a.Fragment,null,"\xb3");case 4:return r.a.createElement(r.a.Fragment,null,"\u2074");case 5:return r.a.createElement(r.a.Fragment,null,"\u2075");default:return t}}(),a=Object(f.d)({fontSize:20});return r.a.createElement("sup",a(),n)}function vr(e){var t,n,a,r,i;return U.a.wrap((function(c){for(;;)switch(c.prev=c.next){case 0:t=e.split("."),n={type:"",count:0},a=Object(_.a)(t),c.prev=3,a.s();case 5:if((r=a.n()).done){c.next=17;break}if((i=r.value)!==n.type){c.next=11;break}n.count++,c.next=15;break;case 11:if(!n.count){c.next=14;break}return c.next=14,n;case 14:n={type:i,count:1};case 15:c.next=5;break;case 17:c.next=22;break;case 19:c.prev=19,c.t0=c.catch(3),a.e(c.t0);case 22:return c.prev=22,a.f(),c.finish(22);case 25:if(!n.count){c.next=28;break}return c.next=28,n;case 28:case"end":return c.stop()}}),fr,null,[[3,19,22,25]])}var hr=[{name:"deltahedron",check:function(e,t){return t.isDeltahedron()}},{name:"chiral",check:function(e){return e.isChiral()}},{name:"honeycomb",check:function(e){return e.isHoneycomb()}}];var gr=[{name:"Vertices",area:"verts",render:function(e){var t=e.polyhedron;return r.a.createElement(r.a.Fragment,null,t.numVertices())}},{name:"Edges",area:"edges",render:function(e){var t=e.polyhedron;return r.a.createElement(r.a.Fragment,null,t.numEdges())}},{name:"Faces",area:"faces",render:function(e){var t=e.polyhedron;return r.a.createElement(r.a.Fragment,null,t.numFaces())}},{name:"Vertex configuration",area:"vconf",render:function(e){var t=e.polyhedron.vertexConfiguration(),n=Object.keys(t);return 1===n.length?r.a.createElement(r.a.Fragment,null,n[0]):r.a.createElement("ul",null,Object(lr.a)(t,(function(e,t){return r.a.createElement("li",{key:t},e,"(",function(e){var t=Object(G.a)(vr(e)).map((function(e,t){var n=e.type,a=e.count,i=1===a?n:r.a.createElement(r.a.Fragment,null,n,r.a.createElement(pr,null,a));return 0===t?i:r.a.createElement(r.a.Fragment,null,".",i)}));return r.a.createElement(r.a.Fragment,null,t)}(t),")")})))}},{name:"Faces by type",area:"ftype",render:function(e){var t=e.polyhedron.numFacesBySides();return r.a.createElement("ul",null,Object(lr.a)(t,(function(e,t){return r.a.createElement("li",{key:t},e," ",dr.a.get(parseInt(t)),1!==e?"s":"")})))}},{name:"Volume",area:"vol",render:function(e){var t=e.polyhedron;return r.a.createElement(r.a.Fragment,null,"\u2248",Object(sr.a)(t.normalizedVolume(),3),"s",r.a.createElement(pr,null,3))}},{name:"Surface area",area:"sa",render:function(e){var t=e.polyhedron;return r.a.createElement(r.a.Fragment,null,"\u2248",Object(sr.a)(t.normalizedSurfaceArea(),3),"s",r.a.createElement(pr,null,2))}},{name:"Sphericity",area:"spher",render:function(e){var t=e.polyhedron;return r.a.createElement(r.a.Fragment,null,"\u2248",Object(sr.a)(t.sphericity(),3))}},{name:"Symmetry",area:"sym",render:function(e){var t=e.info,n=t.symmetry().symbol(),a=n.base,i=n.sub,c=t.symmetry().name();return r.a.createElement(r.a.Fragment,null,Object(E.a)(c),", ",a,i?r.a.createElement(mr,null,i):void 0)}},{name:"Order",area:"order",render:function(e){var t=e.info;return r.a.createElement(r.a.Fragment,null,t.symmetry().order())}},{name:"Properties",area:"props",render:function(e){var t=e.info,n=e.polyhedron,a=hr.filter((function(e){return e.check(t,n)}));return r.a.createElement(r.a.Fragment,null,a.map((function(e){return e.name})).join(", ")||"--")}},{name:"Also known as",area:"alt",render:function(e){var t=e.info.alternateNames();return 0===t.length?r.a.createElement(r.a.Fragment,null,"--"):r.a.createElement("ul",null,t.map((function(e){return r.a.createElement("li",{key:e},e)})))}}];function br(e){var t=e.info,n=e.polyhedron,a=e.name,i=e.area,c=e.render,o=Object(f.d)({marginBottom:10}),u=Object(f.d)({fontSize:f.c.font[5],marginBottom:f.c.spacing[1]}),s=Object(f.d)({fontFamily:f.a.andaleMono,color:"DimGrey"});return r.a.createElement("div",Object.assign({},o(),{style:{gridArea:i}}),r.a.createElement("dd",u(),a),r.a.createElement("dt",s(),r.a.createElement(c,{polyhedron:n,info:t})))}function yr(e){var t=Object(f.d)({display:"grid",gridTemplateAreas:'\n      "verts verts edges edges faces faces"\n      "vconf vconf vconf ftype ftype ftype"\n      "vol   vol   sa    sa    spher spher"\n      "sym   sym   sym   sym   order order"\n      "props props props props props props"\n      "alt   alt   alt   alt   alt   alt"\n    ',gridRowGap:f.c.spacing[2]});return r.a.createElement("dl",t(),gr.map((function(t){return r.a.createElement(br,Object.assign({key:t.name},t,e))})))}function Or(e){var t=e.info,n=Object(f.d)({fontSize:f.c.font[3],marginBottom:f.c.spacing[1],lineHeight:1.25});return r.a.createElement("h2",n(),Object(E.a)(t.canonicalName())," | ",t.conwaySymbol())}function jr(){var e=k.useState(),t=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.d)()),{},{borderSpacing:8,borderCollapse:"separate",padding:f.c.spacing[3],fontFamily:f.a.times,[f.b.notMobile]:{height:"100%"}})),n=Object(f.d)({fontSize:f.c.font[5],color:"DimGrey",marginBottom:f.c.spacing[3]}),a=Object(f.d)({[f.b.mobile]:{marginTop:f.c.spacing[4]},[f.b.notMobile]:{marginTop:"auto"}}),i=Object(ne.a)(e.name);return r.a.createElement("div",t(),r.a.createElement(Or,{polyhedron:e,info:i}),r.a.createElement("p",n(),i.group()),r.a.createElement(yr,{polyhedron:e,info:i}),r.a.createElement("div",a(),r.a.createElement(ur,{solid:e.solidData})))}var Er=n(97),wr=n(71);function xr(e){var t,n=e.input,i=e.value,c=e.setValue,o=function(e,t){switch(e.type){case"checkbox":return{checked:t};case"range":return Object(l.a)(Object(l.a)({},Object(La.a)(e,["min","max","step"])),{},{value:t});default:return{value:t}}}(n,i),u=Object(a.useCallback)((function(e){return c(n.key,function(e,t){switch(e.type){case"checkbox":return t.checked;default:return t.value}}(n,e.target))}),[n,c]);switch(n.type){case"select":return r.a.createElement("select",Object.assign({onChange:u},o),null===(t=n.options)||void 0===t?void 0:t.map((function(e){return r.a.createElement("option",{key:e,value:e},e)})));default:return r.a.createElement("input",Object.assign({type:n.type,onChange:u},o))}}var kr=Object(a.memo)((function(e){var t=e.input,n=e.value,a=e.setValue,i=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.e)(void 0,"space-between")),{},{width:"100%",fontFamily:ja.andaleMono,":not(:last-child)":{marginBottom:f.c.spacing[3]}}));return r.a.createElement("label",i(),t.display,r.a.createElement(xr,{input:t,value:n,setValue:a}))}));function Sr(e){var t=e.onClick,n=Object(f.d)(Object(l.a)(Object(l.a)({},m.f),{},{width:120,height:30,marginTop:f.c.spacing[3],border:"1px LightGray solid",fontFamily:ja.andaleMono,fontSize:f.c.font[6]}));return r.a.createElement("button",Object.assign({},n(),{type:"button",onClick:t}),"Reset")}function Cr(){var e=A.a.useState(),t=A.a.useActions(),n=t.setValue,a=t.reset,i=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.d)("flex-end")),{},{width:"100%",padding:f.c.spacing[3]}));return r.a.createElement("form",i(),wr.a.map((function(t){return r.a.createElement(kr,{key:t.key,input:t,value:Object(Er.a)(e,t.key),setValue:n})})),r.a.createElement(Sr,{onClick:a}))}var Fr=[{name:"pyramids",index:0},{name:"cupol\xe6 and rotunda",index:2},{name:"elongated pyramids",index:6},{name:"gyroelongated pyramids",index:9},{name:"bipyramids",index:11},{name:"elongated cupol\xe6 / rotund\xe6",index:17},{name:"gyroelongated cupol\xe6 / rotund\xe6",index:21},{name:"bicupol\xe6 / rotund\xe6",index:25},{name:"elongated bicupol\xe6 / rotund\xe6",index:34},{name:"gyroelongated bicupol\xe6 / rotund\xe6",index:43},{name:"augmented prisms",index:48},{name:"augmented dodecahedra",index:57},{name:"diminished icosahedra",index:61},{name:"augmented Archimedean solids",index:64},{name:"gyrate rhombicosidodecahedra",index:71},{name:"diminished rhombicosidodecahedra",index:75},{name:"snub antiprisms",index:83},{name:"others",index:85}];function Ar(e){return e===Fr.length-1?92:Fr[e+1].index}var Dr=[{name:"Uniform Polyhedra",groups:[{name:"platonic",display:"Platonic Solids"},{name:"archimedean",display:"Archimedean Solids"},{name:"prisms",display:"Prisms"},{name:"antiprisms",display:"Antiprisms"}].map((function(e){var t=e.name;return{name:e.display,polyhedra:Object(o.c)(t)}}))},{name:"Johnson Solids",groups:Fr.map((function(e,t){var n=e.name,a=e.index;return{name:n,polyhedra:Object(o.c)("johnson").slice(a,Ar(t))}}))}];function Pr(e){var t=e.focused,n=Object(f.d)({transition:"fill ".concat("0.35s"),position:"absolute",paddingLeft:8,paddingTop:2,fill:t?"Gray":"LightGray"},[t]);return r.a.createElement("span",n(),r.a.createElement(Sa.a,{path:Ca.i,size:f.c.size[1]}))}function Vr(e){var t=Object(f.d)({transition:"border-color ".concat("0.35s"),width:"100%",height:f.c.size[2],paddingLeft:f.c.spacing[4],border:"2px LightGray solid",borderRadius:9999,fontSize:f.c.font[6],fontFamily:ja.andaleMono,":focus":{outline:"none",borderColor:"Gray",fill:"Gray"}});return r.a.createElement("input",Object.assign({},e,t(),{type:"text",placeholder:"Search...","aria-label":"search"}))}var Tr=Object(a.memo)((function(e){var t=e.value,n=e.onChange,i=Object(a.useState)(!1),c=Object(j.a)(i,2),o=c[0],u=c[1],s=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.e)("center")),{},{padding:f.c.spacing[2],width:"100%",position:"relative"}));return r.a.createElement("label",s(),r.a.createElement(Vr,{value:t,onChange:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e){return n(e.target.value)})),onFocus:function(){return u(!0)},onBlur:function(){return u(!1)}}),r.a.createElement(Pr,{focused:o}))}));function Nr(e,t){return e.filter((function(e){return e.includes(t.toLowerCase())}))}function Mr(e,t){return e.map((function(e){return{name:e.name,polyhedra:Nr(e.polyhedra,t)}})).filter((function(e){return e.polyhedra.length&gt;0}))}function zr(e){var t=e.name,n=Object(f.d)(Object(l.a)(Object(l.a)(Object(l.a)({},m.f),Object(m.k)(f.c.spacing[1],f.c.spacing[3])),{},{textDecoration:"none",display:"block",color:"DimGrey",lineHeight:1.25,fontFamily:f.a.andaleMono,fontSize:f.c.font[6],overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})),a=Object(f.d)({color:"DarkSlateGray",fontWeight:"bolder"});return r.a.createElement(d.c,Object.assign({to:"../../".concat(Object(c.b)(t),"/list")},n(),a("activeClassName")),Object(E.a)(t))}function Lr(e){var t=e.polyhedra;return r.a.createElement("ul",null,t.map((function(e){return r.a.createElement("li",{key:e},r.a.createElement(zr,{name:e}))})))}function Rr(e){var t=e.name,n=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.h)(f.c.spacing[1],f.c.spacing[3])),{},{fontFamily:f.a.times,fontSize:f.c.font[5]}));return r.a.createElement("h3",n(),Object(E.a)(t))}function qr(e){var t=e.name,n=e.polyhedra,a=Object(f.d)(Object(m.j)(f.c.spacing[3]));return r.a.createElement("div",a(),r.a.createElement(Rr,{name:t}),r.a.createElement(Lr,{polyhedra:n}))}function Gr(e){var t=e.text,n=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.h)(f.c.spacing[1],f.c.spacing[3])),{},{fontFamily:f.a.times,fontSize:f.c.font[4]}));return r.a.createElement("h2",n(),t)}function Ir(e){var t=e.group,n=t.name,a=t.groups,i=Object(f.d)({marginTop:f.c.spacing[2]});return r.a.createElement("div",i(),r.a.createElement(Gr,{text:n}),a.map((function(e){return r.a.createElement(qr,Object.assign({key:e.name},e))})))}function Wr(){var e=Object(a.useState)(""),t=Object(j.a)(e,2),n=t[0],i=t[1],c=""===n?Dr:function(e,t){return e.map((function(e){return{name:e.name,groups:Mr(e.groups,t)}})).filter((function(e){return e.groups.length&gt;0}))}(Dr,n),o=Object(f.d)(Object(m.m)(f.c.spacing[2]));return r.a.createElement("section",o(),r.a.createElement(Tr,{value:n,onChange:i}),c.map((function(e){return r.a.createElement(Ir,{key:e.name,group:e})})))}function Br(e){var t=e.panel,n=e.operationsPanel;switch(t){case"info":return r.a.createElement(jr,null);case"operations":return r.a.createElement(n,null);case"options":return r.a.createElement(Cr,null);case"list":return r.a.createElement(Wr,null);case"full":return null;default:throw new Error("unknown tab")}}var Hr=function(e){var t=e.name,n=Object(f.d)({fontFamily:f.a.andaleMono,fontSize:f.c.font[2],[f.b.notMobile]:{fontWeight:"bold",textAlign:"left"},[f.b.tabletPortrait]:{fontSize:f.c.font[3]},[f.b.mobile]:{fontSize:f.c.font[5],lineHeight:1.25,textAlign:"center"}});return r.a.createElement("h1",Object.assign({"data-testid":"viewer-title"},n()),Object(E.a)(t))},Ur=n(612),_r=n(142),Yr=n(144),Jr=n(613),Qr=n.n(Jr),Zr=n(620),Kr=n.n(Zr);a.Component;function Xr(){var e=Object(f.d)({fontSize:f.c.font[3],fontFamily:f.a.andaleMono,textAlign:"center",[f.b.mobile]:{fontSize:f.c.font[4]}}),t=C.useState().operation;if(!t)return null;var n=function(e){switch(e){case"augment":return"Select a face";case"diminish":case"gyrate":return"Select a component";case"sharpen":case"contract":return"Select a type of face";default:return null}}(t.name);return n&amp;&amp;r.a.createElement("div",e(),n)}function $r(e){var t=Object(a.useRef)(null),n=Object(a.useCallback)((function(){t.current&amp;&amp;t.current.focus()}),[]);return[r.a.createElement(h.b,null,r.a.createElement("h2",{tabIndex:0,ref:t},e)),n]}function ei(){var e=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.d)()),{},{padding:f.c.spacing[3],height:"100%"})),t=Object(f.d)({marginTop:"auto"});return r.a.createElement("section",e(),r.a.createElement(Oa,null),r.a.createElement("div",t(),r.a.createElement(xa,null)))}var ti=f.c.size[3];function ni(e){var t=e.panel,n=(e.solid,e.compact),a=$r(t),i=Object(j.a)(a,2),c=i[0],o=i[1],u=Object(f.d)({width:"100%",height:"100%",position:"relative",display:"grid",gridTemplateRows:"".concat(ti," 1fr"),gridTemplateAreas:'"menu" "content"',borderLeft:n?void 0:"1px solid LightGray"},[n]),s=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.l)(f.c.spacing[2])),{},{gridArea:"menu",height:ti,borderBottom:n?void 0:"1px solid LightGray"}),[n]),d=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.n)("y")),{},{gridArea:"content",position:"relative"}));return r.a.createElement("section",u(),r.a.createElement("div",s(),r.a.createElement(nr,{compact:n,onClick:o})),!n&amp;&amp;r.a.createElement("div",d(),c,r.a.createElement(Br,{panel:t,operationsPanel:ei})))}function ai(e){var t=e.solid,n=Object(f.d)(Object(l.a)(Object(l.a)({},m.b),{},{pointerEvents:"none"})),a=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.a)("bottom","left")),{},{pointerEvents:"initial",padding:f.c.spacing[4]})),i=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.a)("top","left")),{},{pointerEvents:"initial",paddingLeft:f.c.spacing[2]})),c=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.l)(f.c.spacing[4])),{},{height:"100%"})),o=Object(f.d)({paddingTop:f.c.spacing[3],position:"absolute",top:0,right:0,left:0});return r.a.createElement("div",n(),r.a.createElement("div",i(),r.a.createElement(er,{solid:t})),r.a.createElement("div",a(),r.a.createElement(Hr,{name:t})),r.a.createElement("div",o(),r.a.createElement(Xr,null)),r.a.createElement("div",c(),r.a.createElement(za,null)))}function ri(e){var t=e.solid,n=e.full,a=Object(f.d)({position:"relative",width:n?"100%":"calc(100% - ".concat("24rem",")"),height:"100%",alignSelf:"flex-start"},[n]);return r.a.createElement("div",a(),r.a.createElement(Ka,{label:t}),r.a.createElement(ai,{solid:t}))}function ii(e){var t=e.solid,n=e.panel,a=e.compact,i=Object(f.d)(a?{position:"absolute",top:0,right:0}:{position:"relative",height:"100%",minWidth:"24rem",maxWidth:"24rem"},[a]);return r.a.createElement("div",i(),r.a.createElement(ni,{panel:n,solid:t,compact:a}))}var ci=Object(a.memo)((function(e){var t=e.solid,n=e.panel,a="full"===n,i=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.e)()),{},{position:"fixed",width:"100vw",height:"100vh",overflow:"hidden"}));return r.a.createElement("div",i(),r.a.createElement(ri,{solid:t,full:a}),r.a.createElement(ii,{solid:t,panel:n,compact:a}))}));function oi(){var e=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.d)()),{},{height:"100%",pointerEvents:"none",padding:f.c.spacing[2]})),t=Object(f.d)({pointerEvents:"initial"}),n=Object(f.d)({marginTop:f.c.spacing[2],marginBottom:"auto"}),a=Object(f.d)({marginTop:"auto",marginBottom:f.c.spacing[2]}),i=Object(f.d)({width:"100%",pointerEvents:"initial"});return r.a.createElement("section",e(),r.a.createElement("div",t(),r.a.createElement(xa,null)),r.a.createElement("div",n(),r.a.createElement(Xr,null)),r.a.createElement("div",a(),r.a.createElement(za,null)),r.a.createElement("div",i(),r.a.createElement(Oa,null)))}function ui(e){return{[f.b.mobileLandscape]:e("3rem"),[f.b.mobilePortrait]:e(f.c.size[3])}}function si(e){var t=e.solid,n=Object(f.d)(Object(l.a)(Object(l.a)({height:"3rem"},Object(m.l)(f.c.spacing[2])),{},{borderBottom:"1px solid LightGray",width:"100%",display:"grid",gridTemplateColumns:"".concat(f.c.size[2]," 1fr ").concat(f.c.size[2]),alignItems:"center",justifyItems:"center"}));return r.a.createElement("header",n(),r.a.createElement(er,{solid:t}),r.a.createElement(Hr,{name:t}))}function li(e){var t=e.panel,n=e.header,a=["operations","full"].includes(t),i=Object(f.d)(Object(l.a)(Object(l.a)({},Object(m.n)("y")),{},{gridArea:"content",position:"relative",zIndex:100},a?{pointerEvents:"none"}:{backgroundColor:"rgba(255, 255, 255, 0.75)"}),[a]);return r.a.createElement("div",i(),n,r.a.createElement(Br,{panel:t,operationsPanel:oi}))}var di=Object(a.memo)((function(e){var t=e.panel,n=e.solid,a=$r(t),i=Object(j.a)(a,2),c=i[0],o=i[1],u=Object(f.d)(Object(l.a)({position:"relative",width:"100vw",height:"100vh",display:"grid",gridTemplateAreas:'"title" "content" "nav"'},ui((function(e){return{gridTemplateRows:"".concat("3rem"," 1fr ").concat(e)}})))),s=Object(f.d)(Object(l.a)(Object(l.a)({},ui((function(e){return{height:"calc(100vh - ".concat(e," - ").concat("3rem",")")}}))),{},{zIndex:0,gridArea:"content",position:"relative"})),d=Object(f.d)(Object(l.a)(Object(l.a)(Object(l.a)({},ui((function(e){return{height:e}}))),Object(m.e)("center")),{},{gridArea:"nav",borderTop:"1px solid LightGray"}));return r.a.createElement("section",u(),r.a.createElement(si,{solid:n}),r.a.createElement(li,{panel:t,header:c}),r.a.createElement("main",s(),r.a.createElement(Ka,{label:n})),r.a.createElement("div",d(),r.a.createElement(nr,{onClick:o})))})),fi=n(88);function mi(e){var t=e.solid,n=e.panel,o=C.useActions().unsetOperation,u=k.useActions().setPolyhedron,s=k.useState(),l=Object(i.h)(),d=r.a.useState(t),f=Object(j.a)(d,2),m=f[0],p=f[1];Object(a.useEffect)((function(){p(t)}),[t]),Object(a.useEffect)((function(){p(s.name)}),[s.name]),Object(a.useEffect)((function(){s.name!==m?(o(),u(w.Polyhedron.get(t))):t!==m&amp;&amp;l("/".concat(Object(c.b)(s.name),"/operations"))}),[m,u,o]);var v="desktop"===Object(fi.b)().device?ci:di;return r.a.createElement(v,{solid:t,panel:n})}var pi=Object(h.e)([L.Provider,C.Provider]);function vi(e){var t=e.solid,n=Object(i.i)().panel,a=void 0===n?"operations":n;return Object(h.d)("".concat(Object(E.a)(t)," - Polyhedra Viewer")),r.a.createElement(k.Provider,{name:t},r.a.createElement(pi,null,r.a.createElement(mi,{solid:t,panel:a})))}function hi(){var e=Object(i.i)(),t=Object(i.g)().pathname,n=e.solid.replace(/-/g," "),a=function(e){return"random"===e?Object(c.a)(o.a):Object(s.b)(e)?Object(s.a)(e):Object(u.c)(e)?Object(u.b)(e):Object(o.e)(e)?e:null}(n);return a?a!==n?r.a.createElement(i.a,{replace:!0,to:t.replace(e.solid,Object(c.b)(a))}):r.a.createElement(i.d,null,r.a.createElement(i.b,{path:"/",element:r.a.createElement(i.a,{replace:!0,to:"operations"})}),r.a.createElement(i.b,{path:":panel",element:r.a.createElement(vi,{solid:a})})):r.a.createElement(O,null)}}}]);
//# sourceMappingURL=8.718b394c.chunk.js.map</pre></body></html>