Spaces:
Configuration error
Configuration error
Commit
·
16543f4
1
Parent(s):
9aeb710
🤏 Draggable Bottom To Resize Node
Browse files
backend/src/resources/__pycache__/module.cpython-39.pyc
CHANGED
|
Binary files a/backend/src/resources/__pycache__/module.cpython-39.pyc and b/backend/src/resources/__pycache__/module.cpython-39.pyc differ
|
|
|
docker-compose.yml
CHANGED
|
@@ -24,5 +24,4 @@ services:
|
|
| 24 |
volumes:
|
| 25 |
- './frontend/src:/app/src'
|
| 26 |
- './frontend/public:/app/public'
|
| 27 |
-
command: "npm start"
|
| 28 |
-
|
|
|
|
| 24 |
volumes:
|
| 25 |
- './frontend/src:/app/src'
|
| 26 |
- './frontend/public:/app/public'
|
| 27 |
+
command: "npm start"
|
|
|
frontend/src/components/Navagation/navbar.js
CHANGED
|
@@ -20,7 +20,6 @@ export default class Navbar extends Component{
|
|
| 20 |
mode : false,
|
| 21 |
modal : false,
|
| 22 |
error : false
|
| 23 |
-
|
| 24 |
}
|
| 25 |
}
|
| 26 |
|
|
|
|
| 20 |
mode : false,
|
| 21 |
modal : false,
|
| 22 |
error : false
|
|
|
|
| 23 |
}
|
| 24 |
}
|
| 25 |
|
frontend/src/components/Nodes/Custom.js
CHANGED
|
@@ -68,15 +68,15 @@ export default class CustomNodeIframe extends React.Component {
|
|
| 68 |
|
| 69 |
}
|
| 70 |
|
| 71 |
-
//
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
|
| 81 |
Counter(focus, size){
|
| 82 |
return (<div className="custom-number-input h-10 w-32 dark:text-white text-black ">
|
|
@@ -125,12 +125,12 @@ export default class CustomNodeIframe extends React.Component {
|
|
| 125 |
className=" -z-10 container h-full p-2 flex-grow space-iframe overflow-scroll "
|
| 126 |
sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"></iframe>
|
| 127 |
</div>
|
| 128 |
-
{
|
| 129 |
-
|
| 130 |
draggable
|
| 131 |
onDragStart={(e) => { this.initial(e)}}
|
| 132 |
onDrag={(e) => { this.resize(e)}}
|
| 133 |
-
></div>
|
| 134 |
</>
|
| 135 |
</>)
|
| 136 |
}
|
|
|
|
| 68 |
|
| 69 |
}
|
| 70 |
|
| 71 |
+
//(Experimental) resize nodes by dragging
|
| 72 |
+
initial = (e) => {
|
| 73 |
+
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, initial_pos : e.clientY, initial_size : this.myRef.current.offsetHeight })
|
| 74 |
+
}
|
| 75 |
|
| 76 |
+
resize = (e) => {
|
| 77 |
+
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, initial_pos : this.state.initial_pos, initial_size : this.state.initial_size})
|
| 78 |
+
this.myRef.current.style.height = `${parseInt(this.state.initial_size) + parseInt(e.clientY - this.state.initial_pos)}px`
|
| 79 |
+
}
|
| 80 |
|
| 81 |
Counter(focus, size){
|
| 82 |
return (<div className="custom-number-input h-10 w-32 dark:text-white text-black ">
|
|
|
|
| 125 |
className=" -z-10 container h-full p-2 flex-grow space-iframe overflow-scroll "
|
| 126 |
sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"></iframe>
|
| 127 |
</div>
|
| 128 |
+
{/* (Experimental) Do not uncomment */}
|
| 129 |
+
<div className={`absolute bottom-0 w-full h-10 bg-transparent border-1 shadow-2xl rounded-xl z-10 cursor-ns-resize`}
|
| 130 |
draggable
|
| 131 |
onDragStart={(e) => { this.initial(e)}}
|
| 132 |
onDrag={(e) => { this.resize(e)}}
|
| 133 |
+
></div>
|
| 134 |
</>
|
| 135 |
</>)
|
| 136 |
}
|
frontend/src/components/ReactFlow/ReactFlowEnv.js
CHANGED
|
@@ -44,28 +44,30 @@ export default function ReactEnviorment() {
|
|
| 44 |
const onDrop = useCallback(
|
| 45 |
(event) => {
|
| 46 |
event.preventDefault();
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
|
|
|
|
|
|
| 69 |
},
|
| 70 |
[reactFlowInstance, nodes]);
|
| 71 |
|
|
|
|
| 44 |
const onDrop = useCallback(
|
| 45 |
(event) => {
|
| 46 |
event.preventDefault();
|
| 47 |
+
|
| 48 |
+
if(event.dataTransfer.getData('application/reactflow') !== ""){
|
| 49 |
+
const reactFlowBounds = reactFlowWrapper.current.getBoundingClientRect();
|
| 50 |
+
const type = event.dataTransfer.getData('application/reactflow');
|
| 51 |
+
const item = JSON.parse(event.dataTransfer.getData('application/item'));
|
| 52 |
+
const colour = event.dataTransfer.getData('application/colour');
|
| 53 |
+
// check if the dropped element is valid
|
| 54 |
+
if (typeof type === 'undefined' || !type) {
|
| 55 |
+
return;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
const position = reactFlowInstance.project({
|
| 59 |
+
x: event.clientX - reactFlowBounds.left,
|
| 60 |
+
y: event.clientY - reactFlowBounds.top,
|
| 61 |
+
});
|
| 62 |
+
const newNode = {
|
| 63 |
+
id: `${item.name}-${nodes.length}`,
|
| 64 |
+
type,
|
| 65 |
+
position,
|
| 66 |
+
dragHandle : `#draggable`,
|
| 67 |
+
data: { label: `${item.name}`, host : `${item.host}`, colour : `${colour}`, delete : deleteNode },
|
| 68 |
+
};
|
| 69 |
+
setNodes((nds) => nds.concat(newNode));
|
| 70 |
+
}
|
| 71 |
},
|
| 72 |
[reactFlowInstance, nodes]);
|
| 73 |
|
frontend/src/css/dist/output.css
CHANGED
|
@@ -583,10 +583,6 @@ video {
|
|
| 583 |
}
|
| 584 |
}
|
| 585 |
|
| 586 |
-
.fixed {
|
| 587 |
-
position: fixed;
|
| 588 |
-
}
|
| 589 |
-
|
| 590 |
.absolute {
|
| 591 |
position: absolute;
|
| 592 |
}
|
|
@@ -600,10 +596,6 @@ video {
|
|
| 600 |
bottom: 0px;
|
| 601 |
}
|
| 602 |
|
| 603 |
-
.left-\[39\.15\%\] {
|
| 604 |
-
left: 39.15%;
|
| 605 |
-
}
|
| 606 |
-
|
| 607 |
.-right-3 {
|
| 608 |
right: -0.75rem;
|
| 609 |
}
|
|
@@ -632,22 +624,6 @@ video {
|
|
| 632 |
right: 1.25rem;
|
| 633 |
}
|
| 634 |
|
| 635 |
-
.left-\[50\%\] {
|
| 636 |
-
left: 50%;
|
| 637 |
-
}
|
| 638 |
-
|
| 639 |
-
.right-\[50\%\] {
|
| 640 |
-
right: 50%;
|
| 641 |
-
}
|
| 642 |
-
|
| 643 |
-
.right-\[45\%\] {
|
| 644 |
-
right: 45%;
|
| 645 |
-
}
|
| 646 |
-
|
| 647 |
-
.right-\[39\.1\%\] {
|
| 648 |
-
right: 39.1%;
|
| 649 |
-
}
|
| 650 |
-
|
| 651 |
.-z-20 {
|
| 652 |
z-index: -20;
|
| 653 |
}
|
|
@@ -668,26 +644,6 @@ video {
|
|
| 668 |
z-index: 50;
|
| 669 |
}
|
| 670 |
|
| 671 |
-
.-z-0 {
|
| 672 |
-
z-index: 0;
|
| 673 |
-
}
|
| 674 |
-
|
| 675 |
-
.z-30 {
|
| 676 |
-
z-index: 30;
|
| 677 |
-
}
|
| 678 |
-
|
| 679 |
-
.-z-40 {
|
| 680 |
-
z-index: -40;
|
| 681 |
-
}
|
| 682 |
-
|
| 683 |
-
.z-\[100\] {
|
| 684 |
-
z-index: 100;
|
| 685 |
-
}
|
| 686 |
-
|
| 687 |
-
.z-\[\] {
|
| 688 |
-
z-index: ;
|
| 689 |
-
}
|
| 690 |
-
|
| 691 |
.float-left {
|
| 692 |
float: left;
|
| 693 |
}
|
|
@@ -700,25 +656,14 @@ video {
|
|
| 700 |
margin: 0px;
|
| 701 |
}
|
| 702 |
|
| 703 |
-
.my-auto {
|
| 704 |
-
margin-top: auto;
|
| 705 |
-
margin-bottom: auto;
|
| 706 |
-
}
|
| 707 |
-
|
| 708 |
-
.my-5 {
|
| 709 |
-
margin-top: 1.25rem;
|
| 710 |
-
margin-bottom: 1.25rem;
|
| 711 |
-
}
|
| 712 |
-
|
| 713 |
-
.mx-auto {
|
| 714 |
-
margin-left: auto;
|
| 715 |
-
margin-right: auto;
|
| 716 |
-
}
|
| 717 |
-
|
| 718 |
.mt-4 {
|
| 719 |
margin-top: 1rem;
|
| 720 |
}
|
| 721 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 722 |
.ml-auto {
|
| 723 |
margin-left: auto;
|
| 724 |
}
|
|
@@ -739,46 +684,6 @@ video {
|
|
| 739 |
margin-top: -0.75rem;
|
| 740 |
}
|
| 741 |
|
| 742 |
-
.-mr-6 {
|
| 743 |
-
margin-right: -1.5rem;
|
| 744 |
-
}
|
| 745 |
-
|
| 746 |
-
.mb-4 {
|
| 747 |
-
margin-bottom: 1rem;
|
| 748 |
-
}
|
| 749 |
-
|
| 750 |
-
.mb-10 {
|
| 751 |
-
margin-bottom: 2.5rem;
|
| 752 |
-
}
|
| 753 |
-
|
| 754 |
-
.mr-10 {
|
| 755 |
-
margin-right: 2.5rem;
|
| 756 |
-
}
|
| 757 |
-
|
| 758 |
-
.ml-10 {
|
| 759 |
-
margin-left: 2.5rem;
|
| 760 |
-
}
|
| 761 |
-
|
| 762 |
-
.ml-60 {
|
| 763 |
-
margin-left: 15rem;
|
| 764 |
-
}
|
| 765 |
-
|
| 766 |
-
.mb-1 {
|
| 767 |
-
margin-bottom: 0.25rem;
|
| 768 |
-
}
|
| 769 |
-
|
| 770 |
-
.mb-2 {
|
| 771 |
-
margin-bottom: 0.5rem;
|
| 772 |
-
}
|
| 773 |
-
|
| 774 |
-
.-mb-2 {
|
| 775 |
-
margin-bottom: -0.5rem;
|
| 776 |
-
}
|
| 777 |
-
|
| 778 |
-
.-mt-2 {
|
| 779 |
-
margin-top: -0.5rem;
|
| 780 |
-
}
|
| 781 |
-
|
| 782 |
.block {
|
| 783 |
display: block;
|
| 784 |
}
|
|
@@ -791,10 +696,6 @@ video {
|
|
| 791 |
display: inline-flex;
|
| 792 |
}
|
| 793 |
|
| 794 |
-
.table {
|
| 795 |
-
display: table;
|
| 796 |
-
}
|
| 797 |
-
|
| 798 |
.hidden {
|
| 799 |
display: none;
|
| 800 |
}
|
|
@@ -1052,11 +953,6 @@ video {
|
|
| 1052 |
background-color: rgb(254 169 89 / var(--tw-bg-opacity));
|
| 1053 |
}
|
| 1054 |
|
| 1055 |
-
.bg-black {
|
| 1056 |
-
--tw-bg-opacity: 1;
|
| 1057 |
-
background-color: rgb(0 0 0 / var(--tw-bg-opacity));
|
| 1058 |
-
}
|
| 1059 |
-
|
| 1060 |
.bg-gradient-to-bl {
|
| 1061 |
background-image: linear-gradient(to bottom left, var(--tw-gradient-stops));
|
| 1062 |
}
|
|
@@ -1282,16 +1178,6 @@ video {
|
|
| 1282 |
padding-right: 1.5rem;
|
| 1283 |
}
|
| 1284 |
|
| 1285 |
-
.px-4 {
|
| 1286 |
-
padding-left: 1rem;
|
| 1287 |
-
padding-right: 1rem;
|
| 1288 |
-
}
|
| 1289 |
-
|
| 1290 |
-
.px-9 {
|
| 1291 |
-
padding-left: 2.25rem;
|
| 1292 |
-
padding-right: 2.25rem;
|
| 1293 |
-
}
|
| 1294 |
-
|
| 1295 |
.pt-8 {
|
| 1296 |
padding-top: 2rem;
|
| 1297 |
}
|
|
@@ -1324,10 +1210,6 @@ video {
|
|
| 1324 |
padding-top: 0.5rem;
|
| 1325 |
}
|
| 1326 |
|
| 1327 |
-
.pl-10 {
|
| 1328 |
-
padding-left: 2.5rem;
|
| 1329 |
-
}
|
| 1330 |
-
|
| 1331 |
.text-center {
|
| 1332 |
text-align: center;
|
| 1333 |
}
|
|
@@ -1341,9 +1223,9 @@ video {
|
|
| 1341 |
line-height: 2.5rem;
|
| 1342 |
}
|
| 1343 |
|
| 1344 |
-
.text-
|
| 1345 |
-
font-size:
|
| 1346 |
-
line-height: 1.
|
| 1347 |
}
|
| 1348 |
|
| 1349 |
.text-3xl {
|
|
@@ -1361,11 +1243,6 @@ video {
|
|
| 1361 |
line-height: 2rem;
|
| 1362 |
}
|
| 1363 |
|
| 1364 |
-
.text-xl {
|
| 1365 |
-
font-size: 1.25rem;
|
| 1366 |
-
line-height: 1.75rem;
|
| 1367 |
-
}
|
| 1368 |
-
|
| 1369 |
.font-bold {
|
| 1370 |
font-weight: 700;
|
| 1371 |
}
|
|
@@ -1374,10 +1251,6 @@ video {
|
|
| 1374 |
font-weight: 600;
|
| 1375 |
}
|
| 1376 |
|
| 1377 |
-
.font-extrabold {
|
| 1378 |
-
font-weight: 800;
|
| 1379 |
-
}
|
| 1380 |
-
|
| 1381 |
.leading-tight {
|
| 1382 |
line-height: 1.25;
|
| 1383 |
}
|
|
@@ -1387,14 +1260,14 @@ video {
|
|
| 1387 |
color: rgb(255 255 255 / var(--tw-text-opacity));
|
| 1388 |
}
|
| 1389 |
|
| 1390 |
-
.text-
|
| 1391 |
--tw-text-opacity: 1;
|
| 1392 |
-
color: rgb(
|
| 1393 |
}
|
| 1394 |
|
| 1395 |
-
.text-
|
| 1396 |
--tw-text-opacity: 1;
|
| 1397 |
-
color: rgb(
|
| 1398 |
}
|
| 1399 |
|
| 1400 |
.underline {
|
|
@@ -1402,10 +1275,6 @@ video {
|
|
| 1402 |
text-decoration-line: underline;
|
| 1403 |
}
|
| 1404 |
|
| 1405 |
-
.opacity-70 {
|
| 1406 |
-
opacity: 0.7;
|
| 1407 |
-
}
|
| 1408 |
-
|
| 1409 |
.opacity-60 {
|
| 1410 |
opacity: 0.6;
|
| 1411 |
}
|
|
@@ -1570,51 +1439,17 @@ video {
|
|
| 1570 |
}
|
| 1571 |
|
| 1572 |
@media (min-width: 640px) {
|
| 1573 |
-
.sm\:left-\[38\.5\%\] {
|
| 1574 |
-
left: 38.5%;
|
| 1575 |
-
}
|
| 1576 |
-
|
| 1577 |
-
.sm\:left-\[50\%\] {
|
| 1578 |
-
left: 50%;
|
| 1579 |
-
}
|
| 1580 |
-
|
| 1581 |
-
.sm\:left-\[70\%\] {
|
| 1582 |
-
left: 70%;
|
| 1583 |
-
}
|
| 1584 |
-
|
| 1585 |
-
.sm\:right-\[\%\] {
|
| 1586 |
-
right: %;
|
| 1587 |
-
}
|
| 1588 |
-
|
| 1589 |
.sm\:w-60 {
|
| 1590 |
width: 15rem;
|
| 1591 |
}
|
| 1592 |
|
| 1593 |
-
.sm\:pl-5 {
|
| 1594 |
-
padding-left: 1.25rem;
|
| 1595 |
-
}
|
| 1596 |
-
|
| 1597 |
.sm\:text-sm {
|
| 1598 |
font-size: 0.875rem;
|
| 1599 |
line-height: 1.25rem;
|
| 1600 |
}
|
| 1601 |
}
|
| 1602 |
|
| 1603 |
-
@media (min-width: 768px) {
|
| 1604 |
-
.md\:left-\[39\.15\%\] {
|
| 1605 |
-
left: 39.15%;
|
| 1606 |
-
}
|
| 1607 |
-
|
| 1608 |
-
.md\:right-\[\%\] {
|
| 1609 |
-
right: %;
|
| 1610 |
-
}
|
| 1611 |
-
}
|
| 1612 |
-
|
| 1613 |
@media (min-width: 1024px) {
|
| 1614 |
-
.lg\:left-\[40\%\] {
|
| 1615 |
-
left: 40%;
|
| 1616 |
-
}
|
| 1617 |
-
|
| 1618 |
.lg\:w-72 {
|
| 1619 |
width: 18rem;
|
| 1620 |
}
|
|
|
|
| 583 |
}
|
| 584 |
}
|
| 585 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 586 |
.absolute {
|
| 587 |
position: absolute;
|
| 588 |
}
|
|
|
|
| 596 |
bottom: 0px;
|
| 597 |
}
|
| 598 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 599 |
.-right-3 {
|
| 600 |
right: -0.75rem;
|
| 601 |
}
|
|
|
|
| 624 |
right: 1.25rem;
|
| 625 |
}
|
| 626 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 627 |
.-z-20 {
|
| 628 |
z-index: -20;
|
| 629 |
}
|
|
|
|
| 644 |
z-index: 50;
|
| 645 |
}
|
| 646 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 647 |
.float-left {
|
| 648 |
float: left;
|
| 649 |
}
|
|
|
|
| 656 |
margin: 0px;
|
| 657 |
}
|
| 658 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 659 |
.mt-4 {
|
| 660 |
margin-top: 1rem;
|
| 661 |
}
|
| 662 |
|
| 663 |
+
.-mt-2 {
|
| 664 |
+
margin-top: -0.5rem;
|
| 665 |
+
}
|
| 666 |
+
|
| 667 |
.ml-auto {
|
| 668 |
margin-left: auto;
|
| 669 |
}
|
|
|
|
| 684 |
margin-top: -0.75rem;
|
| 685 |
}
|
| 686 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 687 |
.block {
|
| 688 |
display: block;
|
| 689 |
}
|
|
|
|
| 696 |
display: inline-flex;
|
| 697 |
}
|
| 698 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 699 |
.hidden {
|
| 700 |
display: none;
|
| 701 |
}
|
|
|
|
| 953 |
background-color: rgb(254 169 89 / var(--tw-bg-opacity));
|
| 954 |
}
|
| 955 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 956 |
.bg-gradient-to-bl {
|
| 957 |
background-image: linear-gradient(to bottom left, var(--tw-gradient-stops));
|
| 958 |
}
|
|
|
|
| 1178 |
padding-right: 1.5rem;
|
| 1179 |
}
|
| 1180 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1181 |
.pt-8 {
|
| 1182 |
padding-top: 2rem;
|
| 1183 |
}
|
|
|
|
| 1210 |
padding-top: 0.5rem;
|
| 1211 |
}
|
| 1212 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1213 |
.text-center {
|
| 1214 |
text-align: center;
|
| 1215 |
}
|
|
|
|
| 1223 |
line-height: 2.5rem;
|
| 1224 |
}
|
| 1225 |
|
| 1226 |
+
.text-xl {
|
| 1227 |
+
font-size: 1.25rem;
|
| 1228 |
+
line-height: 1.75rem;
|
| 1229 |
}
|
| 1230 |
|
| 1231 |
.text-3xl {
|
|
|
|
| 1243 |
line-height: 2rem;
|
| 1244 |
}
|
| 1245 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1246 |
.font-bold {
|
| 1247 |
font-weight: 700;
|
| 1248 |
}
|
|
|
|
| 1251 |
font-weight: 600;
|
| 1252 |
}
|
| 1253 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1254 |
.leading-tight {
|
| 1255 |
line-height: 1.25;
|
| 1256 |
}
|
|
|
|
| 1260 |
color: rgb(255 255 255 / var(--tw-text-opacity));
|
| 1261 |
}
|
| 1262 |
|
| 1263 |
+
.text-blue-50 {
|
| 1264 |
--tw-text-opacity: 1;
|
| 1265 |
+
color: rgb(239 246 255 / var(--tw-text-opacity));
|
| 1266 |
}
|
| 1267 |
|
| 1268 |
+
.text-black {
|
| 1269 |
--tw-text-opacity: 1;
|
| 1270 |
+
color: rgb(0 0 0 / var(--tw-text-opacity));
|
| 1271 |
}
|
| 1272 |
|
| 1273 |
.underline {
|
|
|
|
| 1275 |
text-decoration-line: underline;
|
| 1276 |
}
|
| 1277 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1278 |
.opacity-60 {
|
| 1279 |
opacity: 0.6;
|
| 1280 |
}
|
|
|
|
| 1439 |
}
|
| 1440 |
|
| 1441 |
@media (min-width: 640px) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1442 |
.sm\:w-60 {
|
| 1443 |
width: 15rem;
|
| 1444 |
}
|
| 1445 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1446 |
.sm\:text-sm {
|
| 1447 |
font-size: 0.875rem;
|
| 1448 |
line-height: 1.25rem;
|
| 1449 |
}
|
| 1450 |
}
|
| 1451 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1452 |
@media (min-width: 1024px) {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1453 |
.lg\:w-72 {
|
| 1454 |
width: 18rem;
|
| 1455 |
}
|