pbi-cli/assets/layers.svg

160 lines
13 KiB
XML
Raw Permalink Normal View History

<svg xmlns="http://www.w3.org/2000/svg" width="850" height="440" viewBox="0 0 850 440">
<rect width="100%" height="100%" fill="#0d1117" rx="8"/>
<!-- Title -->
<text x="425" y="32" font-family="'Segoe UI', Arial, sans-serif" font-size="16" fill="#F2C811" text-anchor="middle" font-weight="bold">Dual-Layer Architecture</text>
<!-- ===== MODELING BAND y=48-188 ===== -->
<rect x="15" y="48" width="820" height="140" rx="10" fill="#58a6ff" fill-opacity="0.05" stroke="#58a6ff" stroke-width="1.5"/>
<rect x="15" y="48" width="6" height="140" rx="3" fill="#58a6ff" fill-opacity="0.85"/>
<!-- Database cylinder icon (centered at x=85, top of band) -->
<g transform="translate(59, 58)">
<ellipse cx="26" cy="10" rx="24" ry="10" fill="#58a6ff" fill-opacity="0.18" stroke="#58a6ff" stroke-width="2"/>
<line x1="2" y1="10" x2="2" y2="46" stroke="#58a6ff" stroke-width="2"/>
<line x1="50" y1="10" x2="50" y2="46" stroke="#58a6ff" stroke-width="2"/>
<ellipse cx="26" cy="46" rx="24" ry="10" fill="#58a6ff" fill-opacity="0.1" stroke="#58a6ff" stroke-width="2"/>
<path d="M2,22 Q26,32 50,22" fill="none" stroke="#58a6ff" stroke-width="1" opacity="0.35"/>
<path d="M2,33 Q26,43 50,33" fill="none" stroke="#58a6ff" stroke-width="1" opacity="0.35"/>
<circle cx="14" cy="26" r="2" fill="#58a6ff" fill-opacity="0.5"/>
<circle cx="26" cy="28" r="2" fill="#58a6ff" fill-opacity="0.4"/>
<circle cx="38" cy="26" r="2" fill="#58a6ff" fill-opacity="0.5"/>
<circle cx="20" cy="38" r="2" fill="#58a6ff" fill-opacity="0.3"/>
<circle cx="32" cy="38" r="2" fill="#58a6ff" fill-opacity="0.3"/>
</g>
<!-- MODELING label BELOW the cylinder icon -->
<text x="85" y="138" font-family="'Segoe UI', Arial, sans-serif" font-size="16" fill="#58a6ff" font-weight="bold" text-anchor="middle">MODELING</text>
<line x1="155" y1="54" x2="155" y2="182" stroke="#58a6ff" stroke-opacity="0.2" stroke-width="1"/>
<!-- ===== MODELING TILE 1: Export / Import ===== -->
<rect x="168" y="60" width="195" height="120" rx="8" fill="#58a6ff" fill-opacity="0.08" stroke="#58a6ff" stroke-opacity="0.3" stroke-width="1"/>
<g transform="translate(240, 68)">
<line x1="14" y1="46" x2="14" y2="8" stroke="#58a6ff" stroke-width="3" stroke-linecap="round"/>
<polygon points="14,3 8,14 20,14" fill="#58a6ff"/>
<line x1="32" y1="8" x2="32" y2="46" stroke="#58a6ff" stroke-width="3" stroke-linecap="round"/>
<polygon points="32,52 26,40 38,40" fill="#58a6ff"/>
<rect x="0" y="58" width="46" height="14" rx="7" fill="#58a6ff" fill-opacity="0.2" stroke="#58a6ff" stroke-width="0.8"/>
<text x="23" y="68" font-family="'Segoe UI', Arial, sans-serif" font-size="9" fill="#a5d6ff" text-anchor="middle" font-weight="600">TMDL</text>
</g>
<text x="265" y="158" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#a5d6ff" text-anchor="middle" font-weight="600">Export / Import</text>
<!-- ===== MODELING TILE 2: DAX Engine ===== -->
<rect x="373" y="60" width="195" height="120" rx="8" fill="#58a6ff" fill-opacity="0.08" stroke="#58a6ff" stroke-opacity="0.3" stroke-width="1"/>
<g transform="translate(446, 68)">
<circle cx="24" cy="24" r="24" fill="#F2C811" fill-opacity="0.08" stroke="#F2C811" stroke-width="2"/>
<circle cx="24" cy="24" r="16" fill="#F2C811" fill-opacity="0.06"/>
<polygon points="18,13 18,35 38,24" fill="#F2C811" fill-opacity="0.95"/>
<rect x="5" y="54" width="38" height="14" rx="7" fill="#F2C811" fill-opacity="0.2" stroke="#F2C811" stroke-width="0.8"/>
<text x="24" y="64" font-family="'Segoe UI', Arial, sans-serif" font-size="9" fill="#F2C811" text-anchor="middle" font-weight="600">DAX</text>
</g>
<text x="470" y="158" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#a5d6ff" text-anchor="middle" font-weight="600">DAX Engine</text>
<!-- ===== MODELING TILE 3: Schema Control ===== -->
<rect x="578" y="60" width="195" height="120" rx="8" fill="#58a6ff" fill-opacity="0.08" stroke="#58a6ff" stroke-opacity="0.3" stroke-width="1"/>
<g transform="translate(647, 68)">
<rect x="0" y="0" width="48" height="40" rx="3" fill="none" stroke="#58a6ff" stroke-width="2"/>
<line x1="0" y1="12" x2="48" y2="12" stroke="#58a6ff" stroke-width="1.5" opacity="0.7"/>
<line x1="16" y1="0" x2="16" y2="40" stroke="#58a6ff" stroke-width="1.5" opacity="0.5"/>
<rect x="2" y="2" width="12" height="8" rx="1" fill="#58a6ff" fill-opacity="0.4"/>
<rect x="18" y="2" width="28" height="8" rx="1" fill="#58a6ff" fill-opacity="0.4"/>
<rect x="2" y="14" width="12" height="7" rx="1" fill="#58a6ff" fill-opacity="0.3"/>
<rect x="18" y="14" width="28" height="7" rx="1" fill="#58a6ff" fill-opacity="0.3"/>
<rect x="2" y="23" width="12" height="7" rx="1" fill="#58a6ff" fill-opacity="0.2"/>
<rect x="18" y="23" width="28" height="7" rx="1" fill="#58a6ff" fill-opacity="0.2"/>
<rect x="2" y="32" width="12" height="6" rx="1" fill="#58a6ff" fill-opacity="0.1"/>
<rect x="18" y="32" width="28" height="6" rx="1" fill="#58a6ff" fill-opacity="0.1"/>
<rect x="0" y="46" width="48" height="14" rx="7" fill="#58a6ff" fill-opacity="0.2" stroke="#58a6ff" stroke-width="0.8"/>
<text x="24" y="56" font-family="'Segoe UI', Arial, sans-serif" font-size="9" fill="#a5d6ff" text-anchor="middle" font-weight="600">SCHEMA</text>
</g>
<text x="675" y="158" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#a5d6ff" text-anchor="middle" font-weight="600">Schema Control</text>
<!-- ===== CONNECTOR: PBI-CLI Block Art ===== -->
<line x1="15" y1="232" x2="310" y2="232" stroke="#F2C811" stroke-opacity="0.2" stroke-width="1" stroke-dasharray="4,4"/>
<line x1="540" y1="232" x2="835" y2="232" stroke="#F2C811" stroke-opacity="0.2" stroke-width="1" stroke-dasharray="4,4"/>
<!-- PBI-CLI block art (shadow) -->
<text font-family="'Courier New', Courier, monospace" font-size="7" fill="#7A6508" xml:space="preserve">
<tspan x="321" y="210">██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗</tspan>
<tspan x="321" y="219">██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║</tspan>
<tspan x="321" y="228">██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║</tspan>
<tspan x="321" y="237">██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║</tspan>
<tspan x="321" y="246">██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║</tspan>
<tspan x="321" y="255">╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝</tspan>
</text>
<!-- PBI-CLI block art (main) -->
<text font-family="'Courier New', Courier, monospace" font-size="7" fill="#F2C811" xml:space="preserve">
<tspan x="320" y="209">██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗</tspan>
<tspan x="320" y="218">██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║</tspan>
<tspan x="320" y="227">██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║</tspan>
<tspan x="320" y="236">██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║</tspan>
<tspan x="320" y="245">██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║</tspan>
<tspan x="320" y="254">╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝</tspan>
</text>
<!-- ===== REPORTING BAND y=278-418 ===== -->
<rect x="15" y="278" width="820" height="140" rx="10" fill="#06d6a0" fill-opacity="0.05" stroke="#06d6a0" stroke-width="1.5"/>
<rect x="15" y="278" width="6" height="140" rx="3" fill="#06d6a0" fill-opacity="0.85"/>
<!-- Bar chart icon (centered at x=85, top of band) -->
<g transform="translate(56, 288)">
<rect x="0" y="44" width="12" height="20" rx="2" fill="none" stroke="#06d6a0" stroke-width="2"/>
<rect x="15" y="30" width="12" height="34" rx="2" fill="#06d6a0" fill-opacity="0.25" stroke="#06d6a0" stroke-width="2"/>
<rect x="30" y="14" width="12" height="50" rx="2" fill="#06d6a0" fill-opacity="0.45" stroke="#06d6a0" stroke-width="2"/>
<rect x="45" y="24" width="12" height="40" rx="2" fill="#06d6a0" fill-opacity="0.35" stroke="#06d6a0" stroke-width="2"/>
<line x1="0" y1="64" x2="57" y2="64" stroke="#06d6a0" stroke-width="1.5" opacity="0.5"/>
<polyline points="6,42 21,28 36,12 51,22" fill="none" stroke="#7ee787" stroke-width="1.5" stroke-dasharray="3,2" opacity="0.6"/>
</g>
<!-- REPORTING label BELOW the bar chart icon -->
<text x="85" y="372" font-family="'Segoe UI', Arial, sans-serif" font-size="16" fill="#06d6a0" font-weight="bold" text-anchor="middle">REPORTING</text>
<line x1="155" y1="284" x2="155" y2="412" stroke="#06d6a0" stroke-opacity="0.2" stroke-width="1"/>
<!-- ===== REPORTING TILE 1: Visual Builder ===== -->
<rect x="168" y="290" width="195" height="120" rx="8" fill="#06d6a0" fill-opacity="0.08" stroke="#06d6a0" stroke-opacity="0.3" stroke-width="1"/>
<g transform="translate(228, 298)">
<rect x="0" y="0" width="60" height="44" rx="4" fill="none" stroke="#06d6a0" stroke-width="2"/>
<rect x="5" y="24" width="10" height="18" rx="1" fill="#06d6a0" fill-opacity="0.45"/>
<rect x="18" y="16" width="10" height="26" rx="1" fill="#06d6a0" fill-opacity="0.6"/>
<rect x="31" y="8" width="10" height="34" rx="1" fill="#06d6a0" fill-opacity="0.8"/>
<rect x="44" y="12" width="10" height="30" rx="1" fill="#06d6a0" fill-opacity="0.7"/>
<circle cx="54" cy="8" r="9" fill="#06d6a0" fill-opacity="0.2" stroke="#06d6a0" stroke-width="1"/>
<text x="54" y="12" font-family="'Segoe UI', Arial, sans-serif" font-size="8" fill="#06d6a0" text-anchor="middle" font-weight="bold">32</text>
<rect x="0" y="50" width="60" height="14" rx="7" fill="#06d6a0" fill-opacity="0.2" stroke="#06d6a0" stroke-width="0.8"/>
<text x="30" y="60" font-family="'Segoe UI', Arial, sans-serif" font-size="9" fill="#7ee787" text-anchor="middle" font-weight="600">VISUALS</text>
</g>
<text x="265" y="388" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#7ee787" text-anchor="middle" font-weight="600">Visual Builder</text>
<!-- ===== REPORTING TILE 2: Data Binding ===== -->
<rect x="373" y="290" width="195" height="120" rx="8" fill="#06d6a0" fill-opacity="0.08" stroke="#06d6a0" stroke-opacity="0.3" stroke-width="1"/>
<g transform="translate(430, 298)">
<circle cx="15" cy="22" r="15" fill="none" stroke="#06d6a0" stroke-width="2"/>
<circle cx="55" cy="22" r="15" fill="none" stroke="#06d6a0" stroke-width="2"/>
<rect x="24" y="16" width="12" height="12" rx="3" fill="#06d6a0" fill-opacity="0.4" stroke="#06d6a0" stroke-width="1.5"/>
<rect x="34" y="16" width="12" height="12" rx="3" fill="#06d6a0" fill-opacity="0.4" stroke="#06d6a0" stroke-width="1.5"/>
<circle cx="15" cy="22" r="5" fill="#06d6a0" fill-opacity="0.5"/>
<circle cx="55" cy="22" r="5" fill="#06d6a0" fill-opacity="0.5"/>
<rect x="10" y="44" width="50" height="14" rx="7" fill="#06d6a0" fill-opacity="0.2" stroke="#06d6a0" stroke-width="0.8"/>
<text x="35" y="54" font-family="'Segoe UI', Arial, sans-serif" font-size="9" fill="#7ee787" text-anchor="middle" font-weight="600">BIND</text>
</g>
<text x="470" y="388" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#7ee787" text-anchor="middle" font-weight="600">Data Binding</text>
<!-- ===== REPORTING TILE 3: Theme Engine ===== -->
<rect x="578" y="290" width="195" height="120" rx="8" fill="#06d6a0" fill-opacity="0.08" stroke="#06d6a0" stroke-opacity="0.3" stroke-width="1"/>
<g transform="translate(647, 298)">
<circle cx="26" cy="22" r="22" fill="none" stroke="#06d6a0" stroke-width="2"/>
<circle cx="26" cy="28" r="7" fill="#0d1117" stroke="#06d6a0" stroke-width="1.5"/>
<circle cx="12" cy="9" r="6" fill="#06d6a0" fill-opacity="0.9"/>
<circle cx="26" cy="3" r="6" fill="#F2C811" fill-opacity="0.9"/>
<circle cx="40" cy="9" r="6" fill="#58a6ff" fill-opacity="0.9"/>
<circle cx="44" cy="22" r="6" fill="#c084fc" fill-opacity="0.9"/>
<circle cx="8" cy="22" r="6" fill="#d97757" fill-opacity="0.9"/>
<rect x="3" y="50" width="46" height="14" rx="7" fill="#06d6a0" fill-opacity="0.2" stroke="#06d6a0" stroke-width="0.8"/>
<text x="26" y="60" font-family="'Segoe UI', Arial, sans-serif" font-size="9" fill="#7ee787" text-anchor="middle" font-weight="600">THEME</text>
</g>
<text x="675" y="388" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#7ee787" text-anchor="middle" font-weight="600">Theme Engine</text>
</svg>