Spaces:
Configuration error
Configuration error
Commit
β’
98c2891
1
Parent(s):
89b1058
π refactor size updater for node
Browse files
frontend/src/components/Navagation/navbar.js
CHANGED
@@ -9,6 +9,7 @@ export default class Navbar extends Component{
|
|
9 |
constructor(props){
|
10 |
super(props)
|
11 |
this.temp_host = 0
|
|
|
12 |
this.deleteNode = props.onDelete
|
13 |
this.state = {open : true,
|
14 |
menu : [],
|
@@ -45,7 +46,7 @@ export default class Navbar extends Component{
|
|
45 |
if(diff !== 0){
|
46 |
this.hanelTabs(menu, diff)
|
47 |
}
|
48 |
-
},
|
49 |
}catch(e){
|
50 |
console.log(e)
|
51 |
}
|
@@ -225,7 +226,7 @@ export default class Navbar extends Component{
|
|
225 |
|
226 |
|
227 |
render(){
|
228 |
-
|
229 |
return (<div>
|
230 |
|
231 |
<div className={`z-10 flex-1 float-left bg-white dark:bg-stone-900 h-screen p-5 pt-8 ${this.state.open ? "lg:w-72 md:64 sm:w-60" : "w-10"} duration-300 absolute shadow-2xl border-black border-r-[1px] dark:border-white dark:text-white`}>
|
|
|
9 |
constructor(props){
|
10 |
super(props)
|
11 |
this.temp_host = 0
|
12 |
+
this.fetch_classes()
|
13 |
this.deleteNode = props.onDelete
|
14 |
this.state = {open : true,
|
15 |
menu : [],
|
|
|
46 |
if(diff !== 0){
|
47 |
this.hanelTabs(menu, diff)
|
48 |
}
|
49 |
+
},1000);
|
50 |
}catch(e){
|
51 |
console.log(e)
|
52 |
}
|
|
|
226 |
|
227 |
|
228 |
render(){
|
229 |
+
|
230 |
return (<div>
|
231 |
|
232 |
<div className={`z-10 flex-1 float-left bg-white dark:bg-stone-900 h-screen p-5 pt-8 ${this.state.open ? "lg:w-72 md:64 sm:w-60" : "w-10"} duration-300 absolute shadow-2xl border-black border-r-[1px] dark:border-white dark:text-white`}>
|
frontend/src/components/Nodes/Custom.js
CHANGED
@@ -1,14 +1,22 @@
|
|
1 |
import React from "react"
|
2 |
import {TbResize} from 'react-icons/tb'
|
3 |
import {BiCube, BiRefresh} from 'react-icons/bi'
|
4 |
-
import {BsTrash} from 'react-icons/bs'
|
5 |
import {CgLayoutGridSmall} from 'react-icons/cg'
|
6 |
import '../../css/counter.css'
|
7 |
|
|
|
|
|
8 |
export default class CustomNodeIframe extends React.Component {
|
9 |
constructor({id , data}){
|
10 |
super()
|
11 |
this.myRef = React.createRef()
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
this.state = {
|
13 |
id : id,
|
14 |
reachable : this.isFetchable(data.host),
|
@@ -16,20 +24,18 @@ export default class CustomNodeIframe extends React.Component {
|
|
16 |
data : data,
|
17 |
width : 540,
|
18 |
height : 600,
|
19 |
-
size :
|
20 |
iframe : 0,
|
21 |
-
initial_pos : 0,
|
22 |
-
initial_size : 0,
|
23 |
}
|
24 |
|
25 |
}
|
26 |
|
27 |
handelSelected = () => {
|
28 |
-
this.setState({id : this.state.id, reachable : this.state.reachable, selected : !this.state.selected, data : this.state.data, width : this.state.width, height : this.state.height, size : this.state.size, iframe : this.state.iframe
|
29 |
}
|
30 |
|
31 |
handelSizeState = () => {
|
32 |
-
this.setState({id : this.state.id, reachable : this.state.reachable, selected : this.state.selected, data : this.state.data, width : this.state.width, height : this.state.height, size : !this.state.size, iframe : this.state.iframe
|
33 |
}
|
34 |
|
35 |
isFetchable = async (host) => {
|
@@ -51,18 +57,18 @@ export default class CustomNodeIframe extends React.Component {
|
|
51 |
if(!this.isFetchable(this.state.data.host)){
|
52 |
this.onNodeClick(this.state.id)
|
53 |
} else{
|
54 |
-
this.setState({id : this.state.id, reachable : this.state.reachable, selected : this.state.selected, data : this.state.data, width : this.state.width, height : this.state.height, size : this.state.size, iframe : this.state.iframe + 1
|
55 |
}
|
56 |
}
|
57 |
|
58 |
handelOnChange(evt, type){
|
59 |
-
this.setState({id : this.state.id, reachable : this.state.reachable, selected : this.state.selected, data : this.state.data, width : type === "width" ? parseInt(evt.target.value) : this.state.width, height : type === "height" ? parseInt(evt.target.value) : this.state.height, size : this.state.size, iframe : this.state.iframe
|
60 |
type === "width" ? this.myRef.current.style.width = `${parseInt(evt.target.value)}px` : this.myRef.current.style.height = `${parseInt(evt.target.value)}px`
|
61 |
}
|
62 |
|
63 |
handelSize(evt, increment, change){
|
64 |
if (evt === "increment") {
|
65 |
-
this.setState({id : this.state.id, reachable : this.state.reachable, selected : this.state.selected, data : this.state.data, width : change === "width" ? this.state.width + increment : this.state.width, height : change === "height" ? this.state.height + increment : this.state.height, size : this.state.size, iframe : this.state.iframe
|
66 |
change === "width" ? this.myRef.current.style.width = `${this.state.width + increment}px` : this.myRef.current.style.height = `${this.state.height + increment}px`
|
67 |
}
|
68 |
|
@@ -70,13 +76,75 @@ export default class CustomNodeIframe extends React.Component {
|
|
70 |
|
71 |
//(Experimental) resize nodes by dragging
|
72 |
initial = (e) => {
|
73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
}
|
75 |
|
76 |
-
resize = (e) => {
|
77 |
-
var
|
78 |
-
|
79 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
}
|
81 |
|
82 |
Counter(focus, size){
|
@@ -96,7 +164,6 @@ export default class CustomNodeIframe extends React.Component {
|
|
96 |
render(){
|
97 |
if (!this.state.reachable) {this.onNodeClick(this.state.id) }
|
98 |
return (<>
|
99 |
-
<>
|
100 |
<div className=" flex w-full h-10 top-0 cursor-pointer" onClick={this.handelEvent}>
|
101 |
<div title="Collaspse Node" className=" duration-300 cursor-pointer shadow-xl border-2 border-white h-10 w-10 mr-2 -mt-3 bg-Warm-Blue rounded-xl" onClick={this.handelSelected}><CgLayoutGridSmall className="h-full w-full text-white p-1"/></div>
|
102 |
|
@@ -115,24 +182,35 @@ export default class CustomNodeIframe extends React.Component {
|
|
115 |
|
116 |
</div>
|
117 |
|
118 |
-
<div id=
|
119 |
-
|
|
|
120 |
<iframe
|
121 |
id="iframe"
|
122 |
key={this.state.iframe}
|
123 |
src={this.state.data.host}
|
124 |
-
title={this.state.data.label}
|
125 |
-
frameBorder="0"
|
126 |
-
|
127 |
-
|
|
|
|
|
128 |
</div>
|
129 |
-
{
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
</>)
|
137 |
}
|
138 |
-
}
|
|
|
1 |
import React from "react"
|
2 |
import {TbResize} from 'react-icons/tb'
|
3 |
import {BiCube, BiRefresh} from 'react-icons/bi'
|
4 |
+
import {BsTrash, BsArrowDownRightSquare} from 'react-icons/bs'
|
5 |
import {CgLayoutGridSmall} from 'react-icons/cg'
|
6 |
import '../../css/counter.css'
|
7 |
|
8 |
+
const MINIMUM_HEIGHT = 600;
|
9 |
+
const MINIMUM_WIDTH = 540;
|
10 |
export default class CustomNodeIframe extends React.Component {
|
11 |
constructor({id , data}){
|
12 |
super()
|
13 |
this.myRef = React.createRef()
|
14 |
+
this.original_width = 0;
|
15 |
+
this.original_height = 0;
|
16 |
+
this.original_x = 0;
|
17 |
+
this.original_y = 0;
|
18 |
+
this.original_mouse_x = 0;
|
19 |
+
this.original_mouse_y = 0;
|
20 |
this.state = {
|
21 |
id : id,
|
22 |
reachable : this.isFetchable(data.host),
|
|
|
24 |
data : data,
|
25 |
width : 540,
|
26 |
height : 600,
|
27 |
+
size : true,
|
28 |
iframe : 0,
|
|
|
|
|
29 |
}
|
30 |
|
31 |
}
|
32 |
|
33 |
handelSelected = () => {
|
34 |
+
this.setState({id : this.state.id, reachable : this.state.reachable, selected : !this.state.selected, data : this.state.data, width : this.state.width, height : this.state.height, size : this.state.size, iframe : this.state.iframe})
|
35 |
}
|
36 |
|
37 |
handelSizeState = () => {
|
38 |
+
this.setState({id : this.state.id, reachable : this.state.reachable, selected : this.state.selected, data : this.state.data, width : this.state.width, height : this.state.height, size : !this.state.size, iframe : this.state.iframe})
|
39 |
}
|
40 |
|
41 |
isFetchable = async (host) => {
|
|
|
57 |
if(!this.isFetchable(this.state.data.host)){
|
58 |
this.onNodeClick(this.state.id)
|
59 |
} else{
|
60 |
+
this.setState({id : this.state.id, reachable : this.state.reachable, selected : this.state.selected, data : this.state.data, width : this.state.width, height : this.state.height, size : this.state.size, iframe : this.state.iframe + 1})
|
61 |
}
|
62 |
}
|
63 |
|
64 |
handelOnChange(evt, type){
|
65 |
+
this.setState({id : this.state.id, reachable : this.state.reachable, selected : this.state.selected, data : this.state.data, width : type === "width" ? parseInt(evt.target.value) : this.state.width, height : type === "height" ? parseInt(evt.target.value) : this.state.height, size : this.state.size, iframe : this.state.iframe })
|
66 |
type === "width" ? this.myRef.current.style.width = `${parseInt(evt.target.value)}px` : this.myRef.current.style.height = `${parseInt(evt.target.value)}px`
|
67 |
}
|
68 |
|
69 |
handelSize(evt, increment, change){
|
70 |
if (evt === "increment") {
|
71 |
+
this.setState({id : this.state.id, reachable : this.state.reachable, selected : this.state.selected, data : this.state.data, width : change === "width" ? this.state.width + increment : this.state.width, height : change === "height" ? this.state.height + increment : this.state.height, size : this.state.size, iframe : this.state.iframe })
|
72 |
change === "width" ? this.myRef.current.style.width = `${this.state.width + increment}px` : this.myRef.current.style.height = `${this.state.height + increment}px`
|
73 |
}
|
74 |
|
|
|
76 |
|
77 |
//(Experimental) resize nodes by dragging
|
78 |
initial = (e) => {
|
79 |
+
e.dataTransfer.setDragImage(new Image(), 0, 0)
|
80 |
+
console.log( this.myRef.current.offsetHeight, this.myRef.current.offsetWidth, this.myRef.current.getBoundingClientRect().left, this.myRef.current.getBoundingClientRect().top )
|
81 |
+
this.original_width = this.myRef.current.offsetWidth
|
82 |
+
this.original_height = this.myRef.current.offsetHeight
|
83 |
+
|
84 |
+
this.original_x = this.myRef.current.getBoundingClientRect().left;
|
85 |
+
this.original_y = this.myRef.current.getBoundingClientRect().top;
|
86 |
+
|
87 |
+
this.original_mouse_x = e.pageX
|
88 |
+
this.original_mouse_y = e.pageY
|
89 |
}
|
90 |
|
91 |
+
resize = (e, point) => {
|
92 |
+
var height = 0;
|
93 |
+
var width = 0;
|
94 |
+
// e.dataTransfer.setDragImage(new Image(), 0, 0)
|
95 |
+
if (point === 'bottom-right'){
|
96 |
+
width = this.original_width + (e.pageX - this.original_mouse_x);
|
97 |
+
height = this.original_height + (e.pageY - this.original_mouse_y)
|
98 |
+
if (width > MINIMUM_WIDTH) {
|
99 |
+
this.myRef.current.style.width = `${width}px`
|
100 |
+
}
|
101 |
+
if (height > MINIMUM_HEIGHT) {
|
102 |
+
this.myRef.current.style.height = `${height}px`
|
103 |
+
}
|
104 |
+
|
105 |
+
} else if (point === "bottom-left"){
|
106 |
+
height = this.original_height + (e.pageY - this.original_mouse_y)
|
107 |
+
width = this.original_width - (e.pageX - this.original_mouse_x);
|
108 |
+
if (height > MINIMUM_HEIGHT) {
|
109 |
+
this.myRef.current.style.height = `${height}px`
|
110 |
+
}
|
111 |
+
if (width > MINIMUM_WIDTH) {
|
112 |
+
this.myRef.current.style.width = `${width}px`
|
113 |
+
this.myRef.current.style.left = this.original_x + (e.pageX - this.original_mouse_x) + 'px'
|
114 |
+
|
115 |
+
}
|
116 |
+
} else if (point === "top-right"){
|
117 |
+
width = this.original_width + (e.pageX - this.original_mouse_x);
|
118 |
+
height = this.original_height - (e.pageY - this.original_mouse_y)
|
119 |
+
|
120 |
+
if (width > MINIMUM_WIDTH) {
|
121 |
+
this.myRef.current.style.width = `${width}px`
|
122 |
+
}
|
123 |
+
if (height > MINIMUM_HEIGHT) {
|
124 |
+
this.myRef.current.style.height = `${height}px`
|
125 |
+
this.myRef.current.style.top = this.original_y + (e.pageY - this.original_mouse_y) + 'px'
|
126 |
+
}
|
127 |
+
} else {
|
128 |
+
height = this.original_height - (e.pageY - this.original_mouse_y)
|
129 |
+
width = this.original_width - (e.pageX - this.original_mouse_x);
|
130 |
+
if (width > MINIMUM_WIDTH) {
|
131 |
+
this.myRef.current.style.width = `${width}px`
|
132 |
+
this.myRef.current.style.left = this.original_x + (e.pageX - this.original_mouse_x) + 'px'
|
133 |
+
|
134 |
+
}
|
135 |
+
if (height > MINIMUM_HEIGHT) {
|
136 |
+
this.myRef.current.style.height = `${height}px`
|
137 |
+
this.myRef.current.style.top = this.original_y + (e.pageY - this.original_mouse_y) + 'px'
|
138 |
+
}
|
139 |
+
}
|
140 |
+
|
141 |
+
this.setState({id : this.state.id, reachable : this.state.reachable, selected : this.state.selected, data : this.state.data, width : parseInt(width) , height : parseInt(height), size : this.state.size, iframe : this.state.iframe})
|
142 |
+
|
143 |
+
}
|
144 |
+
|
145 |
+
OnDragEnd = () => {
|
146 |
+
this.setState({id : this.state.id, reachable : this.state.reachable, selected : this.state.selected, data : this.state.data, width : parseInt(this.myRef.current.style.width), height : parseInt(this.myRef.current.style.height), size : this.state.size, iframe : this.state.iframe})
|
147 |
+
|
148 |
}
|
149 |
|
150 |
Counter(focus, size){
|
|
|
164 |
render(){
|
165 |
if (!this.state.reachable) {this.onNodeClick(this.state.id) }
|
166 |
return (<>
|
|
|
167 |
<div className=" flex w-full h-10 top-0 cursor-pointer" onClick={this.handelEvent}>
|
168 |
<div title="Collaspse Node" className=" duration-300 cursor-pointer shadow-xl border-2 border-white h-10 w-10 mr-2 -mt-3 bg-Warm-Blue rounded-xl" onClick={this.handelSelected}><CgLayoutGridSmall className="h-full w-full text-white p-1"/></div>
|
169 |
|
|
|
182 |
|
183 |
</div>
|
184 |
|
185 |
+
<div id={`draggable`} className={`relative w-[540px] h-[600px] overflow-hidden m-0 p-0 shadow-2xl`} ref={this.myRef}>
|
186 |
+
|
187 |
+
<div className={`absolute p-5 h-full w-full ${this.state.data.colour} shadow-2xl rounded-xl -z-20`}></div>
|
188 |
<iframe
|
189 |
id="iframe"
|
190 |
key={this.state.iframe}
|
191 |
src={this.state.data.host}
|
192 |
+
title={this.state.data.label}
|
193 |
+
frameBorder="0"
|
194 |
+
scrolling="no"
|
195 |
+
className=" -z-10 container h-full p-2 flex-grow space-iframe overflow-auto"
|
196 |
+
sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"
|
197 |
+
></iframe>
|
198 |
</div>
|
199 |
+
{ this.state.size && <>
|
200 |
+
|
201 |
+
<div id="remove-ghost" className={`absolute select-none -bottom-0 right-0 w-5 h-5border-2 shadow-2xl rounded-xl z-10 cursor-nwse-resize `}
|
202 |
+
style={{"userDrag": "none"}}
|
203 |
+
draggable
|
204 |
+
onDragStart={(e) => { this.initial(e) }}
|
205 |
+
onDrag={(e) => { this.resize(e, 'bottom-right') }}
|
206 |
+
onDragEnd={() => {this.OnDragEnd()}}
|
207 |
+
>
|
208 |
+
<BsArrowDownRightSquare className=" text-selected-text text-2xl bg-white"/>
|
209 |
+
</div>
|
210 |
+
|
211 |
+
</>
|
212 |
+
}
|
213 |
+
|
214 |
</>)
|
215 |
}
|
216 |
+
}
|
frontend/src/components/ReactFlow/ReactFlowEnv.js
CHANGED
@@ -103,10 +103,10 @@ export default function ReactEnviorment() {
|
|
103 |
|
104 |
return (
|
105 |
<div className={`${theme ? "dark" : ""}`}>
|
106 |
-
<div className={` absolute
|
107 |
-
<CgMoreVerticalAlt className={`text-black dark:text-white ${tool ? "-rotate-0" : "rotate-90"} duration-
|
108 |
-
<h1 title={theme ? 'Dark Mode' : 'Light Mode'} className={`
|
109 |
-
<h1 title="Save" className={`
|
110 |
</div>
|
111 |
<div className={`flex h-screen w-screen ${theme ? "dark" : ""} transition-all`}>
|
112 |
<Navbar onDelete={deleteNodeContains} colour={JSON.parse(localStorage.getItem('colour'))} emoji={JSON.parse(localStorage.getItem('emoji'))}/>
|
|
|
103 |
|
104 |
return (
|
105 |
<div className={`${theme ? "dark" : ""}`}>
|
106 |
+
<div className={` absolute w-auto h-auto text-4xl top-4 right-5 z-50 cursor-default select-none bg-white dark:bg-stone-900 rounded-full border border-black dark:border-white duration-500`} >
|
107 |
+
<CgMoreVerticalAlt className={` text-black dark:text-white ${tool ? "-rotate-0 mr-auto ml-auto" : "rotate-90 m-1"} duration-15 `} onClick={() => setTool(!tool)}/>
|
108 |
+
<h1 title={theme ? 'Dark Mode' : 'Light Mode'} className={`p-4 px-1 ${tool ? "visible delay-[170ms]" : "hidden invisible"} text-3xl`} onClick={() => setTheme(!theme)} >{theme ? 'π' : 'βοΈ'}</h1>
|
109 |
+
<h1 title="Save" className={`p-4 px-1 ${tool ? "visible delay-[170ms]" : " hidden invisible"} text-3xl`} onClick={() => onSave()}>πΎ</h1>
|
110 |
</div>
|
111 |
<div className={`flex h-screen w-screen ${theme ? "dark" : ""} transition-all`}>
|
112 |
<Navbar onDelete={deleteNodeContains} colour={JSON.parse(localStorage.getItem('colour'))} emoji={JSON.parse(localStorage.getItem('emoji'))}/>
|
frontend/src/css/dist/output.css
CHANGED
@@ -624,6 +624,14 @@ video {
|
|
624 |
top: 0px;
|
625 |
}
|
626 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
627 |
.top-4 {
|
628 |
top: 1rem;
|
629 |
}
|
@@ -632,6 +640,14 @@ video {
|
|
632 |
right: 1.25rem;
|
633 |
}
|
634 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
635 |
.-z-20 {
|
636 |
z-index: -20;
|
637 |
}
|
@@ -664,6 +680,14 @@ video {
|
|
664 |
margin: 0px;
|
665 |
}
|
666 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
667 |
.mt-4 {
|
668 |
margin-top: 1rem;
|
669 |
}
|
@@ -692,6 +716,18 @@ video {
|
|
692 |
margin-top: -0.75rem;
|
693 |
}
|
694 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
695 |
.block {
|
696 |
display: block;
|
697 |
}
|
@@ -732,44 +768,32 @@ video {
|
|
732 |
height: 600px;
|
733 |
}
|
734 |
|
735 |
-
.h-
|
736 |
-
height:
|
737 |
}
|
738 |
|
739 |
-
.h
|
740 |
-
height:
|
741 |
-
}
|
742 |
-
|
743 |
-
.h-14 {
|
744 |
-
height: 3.5rem;
|
745 |
}
|
746 |
|
747 |
-
.h
|
748 |
height: 4rem;
|
749 |
}
|
750 |
|
751 |
-
.h-\[
|
752 |
-
height:
|
753 |
}
|
754 |
|
755 |
-
.h
|
756 |
-
height:
|
757 |
}
|
758 |
|
759 |
-
.h
|
760 |
-
height:
|
761 |
}
|
762 |
|
763 |
-
.h-\[
|
764 |
-
height:
|
765 |
-
}
|
766 |
-
|
767 |
-
.h-\[4rem\] {
|
768 |
-
height: 4rem;
|
769 |
-
}
|
770 |
-
|
771 |
-
.h-\[13rem\] {
|
772 |
-
height: 13rem;
|
773 |
}
|
774 |
|
775 |
.w-10 {
|
@@ -804,10 +828,26 @@ video {
|
|
804 |
width: 540px;
|
805 |
}
|
806 |
|
|
|
|
|
|
|
|
|
807 |
.w-screen {
|
808 |
width: 100vw;
|
809 |
}
|
810 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
811 |
.max-w-full {
|
812 |
max-width: 100%;
|
813 |
}
|
@@ -826,26 +866,14 @@ video {
|
|
826 |
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
827 |
}
|
828 |
|
829 |
-
|
830 |
-
--tw-rotate:
|
831 |
-
-webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
832 |
-
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
833 |
-
}
|
834 |
-
|
835 |
-
.-rotate-90 {
|
836 |
-
--tw-rotate: -90deg;
|
837 |
-
-webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
838 |
-
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
839 |
-
}
|
840 |
-
|
841 |
-
.-rotate-180 {
|
842 |
-
--tw-rotate: -180deg;
|
843 |
-webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
844 |
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
845 |
}
|
846 |
|
847 |
-
|
848 |
-
--tw-rotate:
|
849 |
-webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
850 |
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
851 |
}
|
@@ -866,6 +894,10 @@ video {
|
|
866 |
cursor: default;
|
867 |
}
|
868 |
|
|
|
|
|
|
|
|
|
869 |
.select-none {
|
870 |
-webkit-user-select: none;
|
871 |
user-select: none;
|
@@ -949,6 +981,10 @@ video {
|
|
949 |
border-width: 2px;
|
950 |
}
|
951 |
|
|
|
|
|
|
|
|
|
952 |
.border-y-2 {
|
953 |
border-top-width: 2px;
|
954 |
border-bottom-width: 2px;
|
@@ -991,6 +1027,11 @@ video {
|
|
991 |
border-color: rgb(255 255 255 / var(--tw-border-opacity));
|
992 |
}
|
993 |
|
|
|
|
|
|
|
|
|
|
|
994 |
.bg-white {
|
995 |
--tw-bg-opacity: 1;
|
996 |
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
|
@@ -1029,16 +1070,6 @@ video {
|
|
1029 |
background-color: rgb(254 169 89 / var(--tw-bg-opacity));
|
1030 |
}
|
1031 |
|
1032 |
-
.bg-black {
|
1033 |
-
--tw-bg-opacity: 1;
|
1034 |
-
background-color: rgb(0 0 0 / var(--tw-bg-opacity));
|
1035 |
-
}
|
1036 |
-
|
1037 |
-
.bg-stone-900 {
|
1038 |
-
--tw-bg-opacity: 1;
|
1039 |
-
background-color: rgb(28 25 23 / var(--tw-bg-opacity));
|
1040 |
-
}
|
1041 |
-
|
1042 |
.bg-gradient-to-bl {
|
1043 |
background-image: linear-gradient(to bottom left, var(--tw-gradient-stops));
|
1044 |
}
|
@@ -1239,10 +1270,6 @@ video {
|
|
1239 |
padding: 0.5rem;
|
1240 |
}
|
1241 |
|
1242 |
-
.p-3 {
|
1243 |
-
padding: 0.75rem;
|
1244 |
-
}
|
1245 |
-
|
1246 |
.px-2 {
|
1247 |
padding-left: 0.5rem;
|
1248 |
padding-right: 0.5rem;
|
@@ -1268,9 +1295,24 @@ video {
|
|
1268 |
padding-right: 1.5rem;
|
1269 |
}
|
1270 |
|
1271 |
-
.
|
1272 |
-
padding-
|
1273 |
-
padding-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1274 |
}
|
1275 |
|
1276 |
.pt-8 {
|
@@ -1305,10 +1347,6 @@ video {
|
|
1305 |
padding-top: 0.5rem;
|
1306 |
}
|
1307 |
|
1308 |
-
.pt-5 {
|
1309 |
-
padding-top: 1.25rem;
|
1310 |
-
}
|
1311 |
-
|
1312 |
.text-center {
|
1313 |
text-align: center;
|
1314 |
}
|
@@ -1342,6 +1380,11 @@ video {
|
|
1342 |
line-height: 2rem;
|
1343 |
}
|
1344 |
|
|
|
|
|
|
|
|
|
|
|
1345 |
.font-bold {
|
1346 |
font-weight: 700;
|
1347 |
}
|
@@ -1369,6 +1412,16 @@ video {
|
|
1369 |
color: rgb(0 0 0 / var(--tw-text-opacity));
|
1370 |
}
|
1371 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1372 |
.underline {
|
1373 |
-webkit-text-decoration-line: underline;
|
1374 |
text-decoration-line: underline;
|
@@ -1418,18 +1471,6 @@ video {
|
|
1418 |
transition-duration: 150ms;
|
1419 |
}
|
1420 |
|
1421 |
-
.delay-500 {
|
1422 |
-
transition-delay: 500ms;
|
1423 |
-
}
|
1424 |
-
|
1425 |
-
.delay-200 {
|
1426 |
-
transition-delay: 200ms;
|
1427 |
-
}
|
1428 |
-
|
1429 |
-
.delay-150 {
|
1430 |
-
transition-delay: 150ms;
|
1431 |
-
}
|
1432 |
-
|
1433 |
.delay-\[170ms\] {
|
1434 |
transition-delay: 170ms;
|
1435 |
}
|
@@ -1557,9 +1598,9 @@ video {
|
|
1557 |
color: rgb(255 255 255 / var(--tw-text-opacity));
|
1558 |
}
|
1559 |
|
1560 |
-
.dark .dark\:text-
|
1561 |
--tw-text-opacity: 1;
|
1562 |
-
color: rgb(
|
1563 |
}
|
1564 |
|
1565 |
@media (min-width: 640px) {
|
|
|
624 |
top: 0px;
|
625 |
}
|
626 |
|
627 |
+
.-bottom-1 {
|
628 |
+
bottom: -0.25rem;
|
629 |
+
}
|
630 |
+
|
631 |
+
.-right-2 {
|
632 |
+
right: -0.5rem;
|
633 |
+
}
|
634 |
+
|
635 |
.top-4 {
|
636 |
top: 1rem;
|
637 |
}
|
|
|
640 |
right: 1.25rem;
|
641 |
}
|
642 |
|
643 |
+
.-bottom-0 {
|
644 |
+
bottom: -0px;
|
645 |
+
}
|
646 |
+
|
647 |
+
.right-0 {
|
648 |
+
right: 0px;
|
649 |
+
}
|
650 |
+
|
651 |
.-z-20 {
|
652 |
z-index: -20;
|
653 |
}
|
|
|
680 |
margin: 0px;
|
681 |
}
|
682 |
|
683 |
+
.m-5 {
|
684 |
+
margin: 1.25rem;
|
685 |
+
}
|
686 |
+
|
687 |
+
.m-1 {
|
688 |
+
margin: 0.25rem;
|
689 |
+
}
|
690 |
+
|
691 |
.mt-4 {
|
692 |
margin-top: 1rem;
|
693 |
}
|
|
|
716 |
margin-top: -0.75rem;
|
717 |
}
|
718 |
|
719 |
+
.mt-1 {
|
720 |
+
margin-top: 0.25rem;
|
721 |
+
}
|
722 |
+
|
723 |
+
.mb-auto {
|
724 |
+
margin-bottom: auto;
|
725 |
+
}
|
726 |
+
|
727 |
+
.mt-auto {
|
728 |
+
margin-top: auto;
|
729 |
+
}
|
730 |
+
|
731 |
.block {
|
732 |
display: block;
|
733 |
}
|
|
|
768 |
height: 600px;
|
769 |
}
|
770 |
|
771 |
+
.h-5 {
|
772 |
+
height: 1.25rem;
|
773 |
}
|
774 |
|
775 |
+
.h-\[13rem\] {
|
776 |
+
height: 13rem;
|
|
|
|
|
|
|
|
|
777 |
}
|
778 |
|
779 |
+
.h-\[4rem\] {
|
780 |
height: 4rem;
|
781 |
}
|
782 |
|
783 |
+
.h-\[10rem\] {
|
784 |
+
height: 10rem;
|
785 |
}
|
786 |
|
787 |
+
.h-\[11rem\] {
|
788 |
+
height: 11rem;
|
789 |
}
|
790 |
|
791 |
+
.h-\[31\.5px\] {
|
792 |
+
height: 31.5px;
|
793 |
}
|
794 |
|
795 |
+
.h-\[39\.750px\] {
|
796 |
+
height: 39.750px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
797 |
}
|
798 |
|
799 |
.w-10 {
|
|
|
828 |
width: 540px;
|
829 |
}
|
830 |
|
831 |
+
.w-5 {
|
832 |
+
width: 1.25rem;
|
833 |
+
}
|
834 |
+
|
835 |
.w-screen {
|
836 |
width: 100vw;
|
837 |
}
|
838 |
|
839 |
+
.w-\[31\.5\] {
|
840 |
+
width: 31.5;
|
841 |
+
}
|
842 |
+
|
843 |
+
.w-\[31\.5px\] {
|
844 |
+
width: 31.5px;
|
845 |
+
}
|
846 |
+
|
847 |
+
.w-\[29\.5px\] {
|
848 |
+
width: 29.5px;
|
849 |
+
}
|
850 |
+
|
851 |
.max-w-full {
|
852 |
max-width: 100%;
|
853 |
}
|
|
|
866 |
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
867 |
}
|
868 |
|
869 |
+
.-rotate-0 {
|
870 |
+
--tw-rotate: -0deg;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
871 |
-webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
872 |
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
873 |
}
|
874 |
|
875 |
+
.rotate-90 {
|
876 |
+
--tw-rotate: 90deg;
|
877 |
-webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
878 |
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
879 |
}
|
|
|
894 |
cursor: default;
|
895 |
}
|
896 |
|
897 |
+
.cursor-nwse-resize {
|
898 |
+
cursor: nwse-resize;
|
899 |
+
}
|
900 |
+
|
901 |
.select-none {
|
902 |
-webkit-user-select: none;
|
903 |
user-select: none;
|
|
|
981 |
border-width: 2px;
|
982 |
}
|
983 |
|
984 |
+
.border-\[3px\] {
|
985 |
+
border-width: 3px;
|
986 |
+
}
|
987 |
+
|
988 |
.border-y-2 {
|
989 |
border-top-width: 2px;
|
990 |
border-bottom-width: 2px;
|
|
|
1027 |
border-color: rgb(255 255 255 / var(--tw-border-opacity));
|
1028 |
}
|
1029 |
|
1030 |
+
.border-Happy-Cool-Blue {
|
1031 |
+
--tw-border-opacity: 1;
|
1032 |
+
border-color: rgb(80 142 231 / var(--tw-border-opacity));
|
1033 |
+
}
|
1034 |
+
|
1035 |
.bg-white {
|
1036 |
--tw-bg-opacity: 1;
|
1037 |
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
|
|
|
1070 |
background-color: rgb(254 169 89 / var(--tw-bg-opacity));
|
1071 |
}
|
1072 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1073 |
.bg-gradient-to-bl {
|
1074 |
background-image: linear-gradient(to bottom left, var(--tw-gradient-stops));
|
1075 |
}
|
|
|
1270 |
padding: 0.5rem;
|
1271 |
}
|
1272 |
|
|
|
|
|
|
|
|
|
1273 |
.px-2 {
|
1274 |
padding-left: 0.5rem;
|
1275 |
padding-right: 0.5rem;
|
|
|
1295 |
padding-right: 1.5rem;
|
1296 |
}
|
1297 |
|
1298 |
+
.px-1 {
|
1299 |
+
padding-left: 0.25rem;
|
1300 |
+
padding-right: 0.25rem;
|
1301 |
+
}
|
1302 |
+
|
1303 |
+
.py-1 {
|
1304 |
+
padding-top: 0.25rem;
|
1305 |
+
padding-bottom: 0.25rem;
|
1306 |
+
}
|
1307 |
+
|
1308 |
+
.px-\[0\.5px\] {
|
1309 |
+
padding-left: 0.5px;
|
1310 |
+
padding-right: 0.5px;
|
1311 |
+
}
|
1312 |
+
|
1313 |
+
.py-\[0\.5px\] {
|
1314 |
+
padding-top: 0.5px;
|
1315 |
+
padding-bottom: 0.5px;
|
1316 |
}
|
1317 |
|
1318 |
.pt-8 {
|
|
|
1347 |
padding-top: 0.5rem;
|
1348 |
}
|
1349 |
|
|
|
|
|
|
|
|
|
1350 |
.text-center {
|
1351 |
text-align: center;
|
1352 |
}
|
|
|
1380 |
line-height: 2rem;
|
1381 |
}
|
1382 |
|
1383 |
+
.text-5xl {
|
1384 |
+
font-size: 3rem;
|
1385 |
+
line-height: 1;
|
1386 |
+
}
|
1387 |
+
|
1388 |
.font-bold {
|
1389 |
font-weight: 700;
|
1390 |
}
|
|
|
1412 |
color: rgb(0 0 0 / var(--tw-text-opacity));
|
1413 |
}
|
1414 |
|
1415 |
+
.text-cream {
|
1416 |
+
--tw-text-opacity: 1;
|
1417 |
+
color: rgb(250 249 246 / var(--tw-text-opacity));
|
1418 |
+
}
|
1419 |
+
|
1420 |
+
.text-selected-text {
|
1421 |
+
--tw-text-opacity: 1;
|
1422 |
+
color: rgb(0 83 215 / var(--tw-text-opacity));
|
1423 |
+
}
|
1424 |
+
|
1425 |
.underline {
|
1426 |
-webkit-text-decoration-line: underline;
|
1427 |
text-decoration-line: underline;
|
|
|
1471 |
transition-duration: 150ms;
|
1472 |
}
|
1473 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1474 |
.delay-\[170ms\] {
|
1475 |
transition-delay: 170ms;
|
1476 |
}
|
|
|
1598 |
color: rgb(255 255 255 / var(--tw-text-opacity));
|
1599 |
}
|
1600 |
|
1601 |
+
.dark .dark\:text-cream {
|
1602 |
--tw-text-opacity: 1;
|
1603 |
+
color: rgb(250 249 246 / var(--tw-text-opacity));
|
1604 |
}
|
1605 |
|
1606 |
@media (min-width: 640px) {
|