Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
256 changes: 256 additions & 0 deletions infrastructure/control-panel/src/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,259 @@
--color-green: #0fb340;
}
}

@layer utilities {
/* Primary colors */
.bg-primary {
background-color: var(--color-primary);
}
.bg-primary-100 {
background-color: var(--color-primary-100);
}
.bg-primary-200 {
background-color: var(--color-primary-200);
}
.bg-primary-300 {
background-color: var(--color-primary-300);
}
.bg-primary-400 {
background-color: var(--color-primary-400);
}
.bg-primary-500 {
background-color: var(--color-primary-500);
}

.text-primary {
color: var(--color-primary);
}
.text-primary-100 {
color: var(--color-primary-100);
}
.text-primary-200 {
color: var(--color-primary-200);
}
.text-primary-300 {
color: var(--color-primary-300);
}
.text-primary-400 {
color: var(--color-primary-400);
}
.text-primary-500 {
color: var(--color-primary-500);
}

.border-primary {
border-color: var(--color-primary);
}
.border-primary-100 {
border-color: var(--color-primary-100);
}
.border-primary-200 {
border-color: var(--color-primary-200);
}
.border-primary-300 {
border-color: var(--color-primary-300);
}
.border-primary-400 {
border-color: var(--color-primary-400);
}
.border-primary-500 {
border-color: var(--color-primary-500);
}

/* Secondary colors */
.bg-secondary {
background-color: var(--color-secondary);
}
.bg-secondary-100 {
background-color: var(--color-secondary-100);
}
.bg-secondary-200 {
background-color: var(--color-secondary-200);
}
.bg-secondary-300 {
background-color: var(--color-secondary-300);
}
.bg-secondary-400 {
background-color: var(--color-secondary-400);
}
.bg-secondary-500 {
background-color: var(--color-secondary-500);
}

.text-secondary {
color: var(--color-secondary);
}
.text-secondary-100 {
color: var(--color-secondary-100);
}
.text-secondary-200 {
color: var(--color-secondary-200);
}
.text-secondary-300 {
color: var(--color-secondary-300);
}
.text-secondary-400 {
color: var(--color-secondary-400);
}
.text-secondary-500 {
color: var(--color-secondary-500);
}

/* Danger colors */
.bg-danger {
background-color: var(--color-danger);
}
.bg-danger-100 {
background-color: var(--color-danger-100);
}
.bg-danger-200 {
background-color: var(--color-danger-200);
}
.bg-danger-300 {
background-color: var(--color-danger-300);
}
.bg-danger-400 {
background-color: var(--color-danger-400);
}
.bg-danger-500 {
background-color: var(--color-danger-500);
}

.text-danger {
color: var(--color-danger);
}
.text-danger-100 {
color: var(--color-danger-100);
}
.text-danger-200 {
color: var(--color-danger-200);
}
.text-danger-300 {
color: var(--color-danger-300);
}
.text-danger-400 {
color: var(--color-danger-400);
}
.text-danger-500 {
color: var(--color-danger-500);
}

/* Black colors */
.bg-black-100 {
background-color: var(--color-black-100);
}
.bg-black-300 {
background-color: var(--color-black-300);
}
.bg-black-500 {
background-color: var(--color-black-500);
}
.bg-black-700 {
background-color: var(--color-black-700);
}
.bg-black-900 {
background-color: var(--color-black-900);
}

.text-black-100 {
color: var(--color-black-100);
}
.text-black-300 {
color: var(--color-black-300);
}
.text-black-500 {
color: var(--color-black-500);
}
.text-black-700 {
color: var(--color-black-700);
}
.text-black-900 {
color: var(--color-black-900);
}

.border-black-100 {
border-color: var(--color-black-100);
}

/* Green color */
.text-green {
color: var(--color-green);
}

/* Basic colors */
.bg-white {
background-color: var(--color-white);
}
.bg-gray {
background-color: var(--color-gray);
}
.bg-gray-50 {
background-color: #f9fafb;
}
.bg-gray-100 {
background-color: #f3f4f6;
}
.bg-gray-200 {
background-color: #e5e7eb;
}
.bg-gray-300 {
background-color: #d1d5db;
}
.bg-gray-400 {
background-color: #9ca3af;
}
.bg-gray-500 {
background-color: #6b7280;
}
.bg-gray-600 {
background-color: #4b5563;
}
.bg-gray-700 {
background-color: #374151;
}
.bg-gray-800 {
background-color: #1f2937;
}
.bg-gray-900 {
background-color: #111827;
}

.text-gray-50 {
color: #f9fafb;
}
.text-gray-100 {
color: #f3f4f6;
}
.text-gray-200 {
color: #e5e7eb;
}
.text-gray-300 {
color: #d1d5db;
}
.text-gray-400 {
color: #9ca3af;
}
.text-gray-500 {
color: #6b7280;
}
.text-gray-600 {
color: #4b5563;
}
.text-gray-700 {
color: #374151;
}
.text-gray-800 {
color: #1f2937;
}
.text-gray-900 {
color: #111827;
}

.border-gray-300 {
border-color: #d1d5db;
}
.border-gray-700 {
border-color: #374151;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@
import { HugeiconsIcon } from '@hugeicons/svelte';
import { Cancel01FreeIcons, Database01FreeIcons } from '@hugeicons/core-free-icons';

export let data: { label: string; subLabel: string };
export let data: { label: string; subLabel: string; type?: string };
export let selected = false;
</script>

<div class="vault-node-wrapper relative">
<div class="vault-node-wrapper relative" class:highlight={selected}>
<!-- <button class="absolute top-[10px] end-[10px]" onclick={handleCancel}>
<HugeiconsIcon icon={Cancel01FreeIcons} size="15px"/>
</button> -->
Expand All @@ -17,8 +18,17 @@
<div class="vault-sub-label">{data.subLabel}</div>
</div>
</div>
<Handle type="source" position={Position.Bottom} class="vault-handle" />
<Handle type="target" position={Position.Top} class="vault-handle" />

<!-- Position handles based on node type -->
{#if data.type === 'platform'}
<!-- Platforms: handles above the card for outgoing connections AND incoming connections -->
<Handle type="source" position={Position.Top} class="vault-handle platform-handle" />
<Handle type="target" position={Position.Top} class="vault-handle platform-handle" />
{:else}
<!-- eVaults: handles at bottom for incoming AND outgoing connections -->
<Handle type="target" position={Position.Bottom} class="vault-handle evault-handle" />
<Handle type="source" position={Position.Bottom} class="vault-handle evault-handle" />
{/if}
</div>

<style>
Expand All @@ -35,6 +45,13 @@
min-width: 150px;
color: #333;
font-family: sans-serif;
transition: all 0.3s ease;
}

.vault-node-wrapper.highlight {
box-shadow: 0 0 20px rgba(76, 175, 80, 0.6);
border: 2px solid #4caf50;
transform: scale(1.05);
}

.vault-node-content {
Expand Down Expand Up @@ -67,13 +84,39 @@
position: absolute;
border-radius: 50%;
transform: translate(-50%, -50%);
}

:global(.evault-handle) {
top: auto;
bottom: -5px;
left: 50%;
transform: translateX(-50%);
}
:global(.vault-handle[data-position='top']) {

:global(.evault-handle[data-position='top']) {
top: -5px;
bottom: auto;
}

:global(.platform-handle) {
top: -5px;
bottom: auto;
left: 50%;
transform: translateX(-50%);
}

/* Fix handle positioning for Svelte Flow */
:global(.vault-handle[data-handlepos='top']) {
top: -5px !important;
bottom: auto !important;
left: 50% !important;
transform: translateX(-50%) !important;
}

:global(.vault-handle[data-handlepos='bottom']) {
bottom: -5px !important;
top: auto !important;
left: 50% !important;
transform: translateX(-50%) !important;
}
</style>
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@
tabindex="0"
role="checkbox"
aria-checked={checked}
onclick={() => inputElement?.click()}
onclick={(e) => {
e.stopPropagation();
inputElement?.click();
}}
>
{#if checked}
<span class="bg-primary block h-2 w-2 rounded-[1px]"></span>
Expand Down
Loading
Loading