@buoy-gg/floating-tools-core 2.1.9 → 2.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/FloatingToolsStore.js +501 -1
- package/lib/commonjs/colors.js +54 -1
- package/lib/commonjs/constants.js +31 -1
- package/lib/commonjs/devToolsState.js +325 -1
- package/lib/commonjs/dial.js +617 -1
- package/lib/commonjs/easing.js +69 -1
- package/lib/commonjs/icons/benchmark-icon.js +24 -1
- package/lib/commonjs/icons/env-icon.js +24 -1
- package/lib/commonjs/icons/events-icon.js +24 -1
- package/lib/commonjs/icons/highlight-icon.js +24 -1
- package/lib/commonjs/icons/icon-data.js +2268 -1
- package/lib/commonjs/icons/icon-factories.js +173 -1
- package/lib/commonjs/icons/icon-primitives.js +559 -1
- package/lib/commonjs/icons/icon-primitives.native.js +779 -1
- package/lib/commonjs/icons/icon-renderer.js +260 -1
- package/lib/commonjs/icons/network-icon.js +24 -1
- package/lib/commonjs/icons/query-icon.js +24 -1
- package/lib/commonjs/icons/redux-icon.js +85 -1
- package/lib/commonjs/icons/renders-icon.js +33 -1
- package/lib/commonjs/icons/routes-icon.js +49 -1
- package/lib/commonjs/icons/sentry-icon.js +24 -1
- package/lib/commonjs/icons/storage-icon.js +24 -1
- package/lib/commonjs/icons/wifi-icon.js +24 -1
- package/lib/commonjs/index.js +723 -1
- package/lib/commonjs/settings.js +599 -1
- package/lib/commonjs/utils.js +72 -1
- package/lib/module/FloatingToolsStore.js +496 -1
- package/lib/module/colors.js +49 -1
- package/lib/module/constants.js +27 -1
- package/lib/module/devToolsState.js +318 -1
- package/lib/module/dial.js +603 -1
- package/lib/module/easing.js +62 -1
- package/lib/module/icons/benchmark-icon.js +15 -1
- package/lib/module/icons/env-icon.js +15 -1
- package/lib/module/icons/events-icon.js +15 -1
- package/lib/module/icons/highlight-icon.js +15 -1
- package/lib/module/icons/icon-data.js +2264 -1
- package/lib/module/icons/icon-factories.js +163 -1
- package/lib/module/icons/icon-primitives.js +547 -1
- package/lib/module/icons/icon-primitives.native.js +767 -1
- package/lib/module/icons/icon-renderer.js +255 -1
- package/lib/module/icons/network-icon.js +15 -1
- package/lib/module/icons/query-icon.js +15 -1
- package/lib/module/icons/redux-icon.js +81 -1
- package/lib/module/icons/renders-icon.js +17 -1
- package/lib/module/icons/routes-icon.js +41 -1
- package/lib/module/icons/sentry-icon.js +15 -1
- package/lib/module/icons/storage-icon.js +15 -1
- package/lib/module/icons/wifi-icon.js +15 -1
- package/lib/module/index.js +103 -1
- package/lib/module/settings.js +587 -1
- package/lib/module/utils.js +66 -1
- package/lib/typescript/commonjs/FloatingToolsStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/colors.d.ts.map +1 -0
- package/lib/typescript/commonjs/constants.d.ts.map +1 -0
- package/lib/typescript/commonjs/devToolsState.d.ts.map +1 -0
- package/lib/typescript/commonjs/dial.d.ts.map +1 -0
- package/lib/typescript/commonjs/easing.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/benchmark-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/env-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/events-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/highlight-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/icon-data.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/icon-factories.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/icon-primitives.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/icon-primitives.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/icon-renderer.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/network-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/query-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/redux-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/renders-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/routes-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/sentry-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/storage-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/icons/wifi-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/settings.d.ts +5 -0
- package/lib/typescript/commonjs/settings.d.ts.map +1 -0
- package/lib/typescript/commonjs/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils.d.ts.map +1 -0
- package/lib/typescript/module/FloatingToolsStore.d.ts.map +1 -0
- package/lib/typescript/module/colors.d.ts.map +1 -0
- package/lib/typescript/module/constants.d.ts.map +1 -0
- package/lib/typescript/module/devToolsState.d.ts.map +1 -0
- package/lib/typescript/module/dial.d.ts.map +1 -0
- package/lib/typescript/module/easing.d.ts.map +1 -0
- package/lib/typescript/module/icons/benchmark-icon.d.ts.map +1 -0
- package/lib/typescript/module/icons/env-icon.d.ts.map +1 -0
- package/lib/typescript/module/icons/events-icon.d.ts.map +1 -0
- package/lib/typescript/module/icons/highlight-icon.d.ts.map +1 -0
- package/lib/typescript/module/icons/icon-data.d.ts.map +1 -0
- package/lib/typescript/module/icons/icon-factories.d.ts.map +1 -0
- package/lib/typescript/module/icons/icon-primitives.d.ts.map +1 -0
- package/lib/typescript/module/icons/icon-primitives.native.d.ts.map +1 -0
- package/lib/typescript/module/icons/icon-renderer.d.ts.map +1 -0
- package/lib/typescript/module/icons/network-icon.d.ts.map +1 -0
- package/lib/typescript/module/icons/query-icon.d.ts.map +1 -0
- package/lib/typescript/module/icons/redux-icon.d.ts.map +1 -0
- package/lib/typescript/module/icons/renders-icon.d.ts.map +1 -0
- package/lib/typescript/module/icons/routes-icon.d.ts.map +1 -0
- package/lib/typescript/module/icons/sentry-icon.d.ts.map +1 -0
- package/lib/typescript/module/icons/storage-icon.d.ts.map +1 -0
- package/lib/typescript/module/icons/wifi-icon.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/settings.d.ts +5 -0
- package/lib/typescript/module/settings.d.ts.map +1 -0
- package/lib/typescript/module/types.d.ts.map +1 -0
- package/lib/typescript/module/utils.d.ts.map +1 -0
- package/package.json +8 -8
- package/LICENSE +0 -58
|
@@ -1 +1,2264 @@
|
|
|
1
|
-
"use strict";export const NETWORK_ICON_COLOR="#00D4FF";export const networkIconData={color:"#00D4FF",bgColor:"rgba(8, 12, 21, 0.95)",elements:[{type:"circle",cx:0,cy:0,r:9,fill:"bg",border:!0,borderWidth:2,glow:!0,glowRadius:4},{type:"circle",cx:0,cy:0,r:9,border:!0,borderWidth:2,scaleX:.45,opacity:.6},{type:"circle",cx:0,cy:0,r:9,border:!0,borderWidth:2,scaleX:1.33,scaleY:.6,opacity:.6}]};export const ENV_ICON_COLOR="#4AFF9F";const KEYBOARD_ROW_1=[1,3,5,7,9,11,13,15,17],KEYBOARD_ROW_2=[2,4,6,8,10,12,14,16];export const envIconData={color:"#4AFF9F",bgColor:"#000",elements:[{type:"rect",x:-11,y:3,width:22,height:10,borderRadius:1,fill:"color",opacity:.15},{type:"rect",x:-10,y:4,width:20,height:8,borderRadius:1,fill:"color",opacity:.85},...KEYBOARD_ROW_1.map(t=>({type:"rect",x:-10+t,y:5.5,width:1.5,height:1.2,borderRadius:.2,fill:"#000",opacity:.3})),...KEYBOARD_ROW_2.map(t=>({type:"rect",x:-10+t,y:7.2,width:1.5,height:1.2,borderRadius:.2,fill:"#000",opacity:.3})),{type:"rect",x:-5,y:9.5,width:10,height:1,borderRadius:.2,fill:"#000",opacity:.25},{type:"rect",x:-9,y:-10,width:18,height:12,borderRadius:1,fill:"color",opacity:.9},{type:"rect",x:-8,y:-9,width:16,height:10,borderRadius:.5,fill:"#000",opacity:.5},{type:"rect",x:-7,y:-8,width:10,height:.5,fill:"color",opacity:.6},{type:"rect",x:-7,y:-6,width:7,height:.5,fill:"color",opacity:.6},{type:"rect",x:-7,y:-4,width:4,height:.5,fill:"color",opacity:.6},{type:"rect",x:-1,y:10,width:2,height:1,borderRadius:.5,fill:"color",opacity:.8},{type:"rect",x:.3*18-9,y:-6.4,width:1,height:1,borderRadius:.5,fill:"color",opacity:.4},{type:"rect",x:12.6-9,y:-6.4,width:1,height:1,borderRadius:.5,fill:"color",opacity:.4},{type:"rect",x:0,y:.7*12-10,width:1,height:1,borderRadius:.5,fill:"color",opacity:.4}]};export const STORAGE_ICON_COLOR="#FFB800";const CYLINDER_POSITIONS=[{y:-6,opacity:.9},{y:-1.2,opacity:.8},{y:3.6,opacity:.7}];export const storageIconData={color:"#FFB800",bgColor:"#000",elements:[{type:"rect",x:-9,y:-7,width:18,height:8,borderRadius:4,fill:"color",opacity:.1},{type:"rect",x:-8,y:-6,width:16,height:6,borderRadius:3,fill:"color",opacity:.9},{type:"rect",x:-7,y:-5.5,width:14,height:2,borderRadius:1,fill:"#fff",opacity:.15},{type:"rect",x:-8,y:-6,width:16,height:6,borderRadius:3,border:!0,borderWidth:.5,opacity:.3},{type:"rect",x:-9,y:-2.2,width:18,height:8,borderRadius:4,fill:"color",opacity:.1},{type:"rect",x:-8,y:-1.2,width:16,height:6,borderRadius:3,fill:"color",opacity:.8},{type:"rect",x:-7,y:-.7,width:14,height:2,borderRadius:1,fill:"#fff",opacity:.15},{type:"rect",x:-8,y:-1.2,width:16,height:6,borderRadius:3,border:!0,borderWidth:.5,opacity:.3},{type:"rect",x:-9,y:2.6,width:18,height:8,borderRadius:4,fill:"color",opacity:.1},{type:"rect",x:-8,y:3.6,width:16,height:6,borderRadius:3,fill:"color",opacity:.7},{type:"rect",x:-7,y:4.1,width:14,height:2,borderRadius:1,fill:"#fff",opacity:.15},{type:"rect",x:-8,y:3.6,width:16,height:6,borderRadius:3,border:!0,borderWidth:.5,opacity:.3},{type:"rect",x:-.25,y:-3.6,width:.5,height:6,fill:"color",opacity:.3},{type:"rect",x:-.25,y:1.2,width:.5,height:6,fill:"color",opacity:.3},{type:"rect",x:-.5,y:-3.5,width:1,height:1,borderRadius:.5,fill:"color",opacity:.6},{type:"rect",x:-.5,y:1.3,width:1,height:1,borderRadius:.5,fill:"color",opacity:.6},{type:"rect",x:-.5,y:6.1,width:1,height:1,borderRadius:.5,fill:"color",opacity:.6}]};export const ROUTES_ICON_COLOR="#FF9F1C";export const routePinIconData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"circle",cx:0,cy:-2,r:5,fill:"color",opacity:1},{type:"triangle",x:0,y:4,size:5,direction:"down",fill:"color",opacity:1},{type:"circle",cx:0,cy:-2,r:2,fill:"bg",opacity:1}]};export const curveTestAData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"circle",cx:0,cy:0,r:6,fill:"transparent",border:!0,borderWidth:3,scaleX:1.5,scaleY:.8,opacity:1}]};export const curveTestBData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"circle",cx:0,cy:0,r:6,fill:"transparent",border:!0,borderWidth:3,scaleX:.6,scaleY:1.4,opacity:1}]};export const curveTestCData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-10,y:-4,width:20,height:8,borderRadius:4,fill:"transparent",border:!0,borderWidth:3,opacity:1}]};export const curveTestDData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-10,y:-4,width:20,height:8,borderRadius:4,fill:"transparent",border:!0,borderWidth:1.5,opacity:1}]};export const curveTestEData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-10,y:-4,width:20,height:8,borderRadius:4,fill:"transparent",border:!0,borderWidth:2,opacity:1}]};export const curveTestFData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-10,y:-4,width:20,height:8,borderRadius:4,fill:"transparent",border:!0,borderWidth:2,opacity:1}]};export const curveTestGData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-6,y:-3,width:16,height:6,borderRadius:3,fill:"transparent",border:!0,borderWidth:1.5,opacity:1}]};export const curveTestHData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-22,y:-3,width:16,height:6,borderRadius:3,fill:"transparent",border:!0,borderWidth:1.5,opacity:1}]};export const curveTestIData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-8,y:-7,width:20,height:6,borderRadius:3,fill:"transparent",border:!0,borderWidth:1.5,opacity:1},{type:"rect",x:-12,y:1,width:20,height:6,borderRadius:3,fill:"transparent",border:!0,borderWidth:1.5,opacity:1}]};export const curveTestJData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-8,y:-6,width:20,height:5,borderRadius:2.5,fill:"transparent",border:!0,borderWidth:1.5,opacity:1},{type:"rect",x:-12,y:1,width:20,height:5,borderRadius:2.5,fill:"transparent",border:!0,borderWidth:1.5,opacity:1}]};export const curveTestKData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-8,y:-5,width:20,height:4,borderRadius:2,fill:"transparent",border:!0,borderWidth:1,opacity:1},{type:"rect",x:-12,y:1,width:20,height:4,borderRadius:2,fill:"transparent",border:!0,borderWidth:1,opacity:1}]};export const curveTestLData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-6,y:-8,width:20,height:5,borderRadius:2.5,fill:"transparent",border:!0,borderWidth:1.5,opacity:1},{type:"rect",x:-14,y:3,width:20,height:5,borderRadius:2.5,fill:"transparent",border:!0,borderWidth:1.5,opacity:1}]};export const curveTestMData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-7,y:-5,width:18,height:5,borderRadius:2.5,fill:"transparent",border:!0,borderWidth:1.5,opacity:1},{type:"rect",x:-11,y:0,width:18,height:5,borderRadius:2.5,fill:"transparent",border:!0,borderWidth:1.5,opacity:1}]};export const curveTestNData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-8,y:-6,width:20,height:5,borderRadius:2.5,fill:"transparent",border:!0,borderWidth:2,opacity:1},{type:"rect",x:-12,y:1,width:20,height:5,borderRadius:2.5,fill:"transparent",border:!0,borderWidth:2,opacity:1}]};export const curveTestOData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-8,y:-6,width:20,height:5,borderRadius:2.5,fill:"transparent",border:!0,borderWidth:1,opacity:1},{type:"rect",x:-12,y:1,width:20,height:5,borderRadius:2.5,fill:"transparent",border:!0,borderWidth:1,opacity:1}]};export const curveTestPData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"rect",x:-8,y:-7,width:20,height:7,borderRadius:3.5,fill:"transparent",border:!0,borderWidth:1.5,opacity:1},{type:"rect",x:-12,y:0,width:20,height:7,borderRadius:3.5,fill:"transparent",border:!0,borderWidth:1.5,opacity:1}]};export const routePathIconData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"smootharc",cx:-3,cy:-2,r:5,stroke:"color",strokeWidth:3,opacity:1,portion:"bottom"},{type:"smootharc",cx:3,cy:2,r:5,stroke:"color",strokeWidth:3,opacity:1,portion:"top"}]};export const routeDotIconData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"circle",cx:0,cy:0,r:8,fill:"color",opacity:.3},{type:"circle",cx:0,cy:0,r:3,fill:"bg",opacity:1}]};export const routeTwoPinsIconData={color:"#FF9F1C",bgColor:"#000",elements:[{type:"circle",cx:-6,cy:4,r:3.5,fill:"color",opacity:1},{type:"triangle",x:-6,y:8.5,size:3.5,direction:"down",fill:"color",opacity:1},{type:"circle",cx:-6,cy:4,r:1.4,fill:"bg",opacity:1},{type:"circle",cx:6,cy:-5,r:3.5,fill:"color",opacity:1},{type:"triangle",x:6,y:-.5,size:3.5,direction:"down",fill:"color",opacity:1},{type:"circle",cx:6,cy:-5,r:1.4,fill:"bg",opacity:1}]};export const routesIconData={color:"#FF9F1C",bgColor:"#0a0a0f",elements:[{type:"circle",cx:2.846049894151541,cy:1.2649110640673518,r:4.110960958218893,fill:"#FF9F1C",scaleY:.94},{type:"circle",cx:6.00832755431992,cy:6.324555320336758,r:4,fill:"color"},{type:"circle",cx:6.324555320336758,cy:-6.324555320336758,r:3.794733192202055,fill:"color",scaleY:.97},{type:"circle",cx:6.324555320336758,cy:-6.00832755431992,r:1.5811388300841895,fill:"bg"},{type:"circle",cx:-6.324555320336758,cy:3.478505426185217,r:3.794733192202055,fill:"color",scaleY:.97},{type:"circle",cx:-6.324555320336758,cy:3.478505426185217,r:1.5811388300841895,fill:"bg"},{type:"line",x1:-8.854377448471462,y1:4.743416490252569,x2:-6.00832755431992,y2:9.803060746521975,stroke:"color",strokeWidth:1.5},{type:"line",x1:-3.162277660168379,y1:3.162277660168379,x2:-6.640783086353596,y2:9.803060746521975,stroke:"color",strokeWidth:1.8},{type:"rect",x:-7.273238618387272,y:6.324555320336758,width:1.8973665961010275,height:2.2135943621178655,fill:"color"},{type:"line",x1:1.2649110640673518,y1:1.2649110640673518,x2:9.1706052144883,y2:1.2649110640673518,stroke:"bg",strokeWidth:2.4},{type:"line",x1:9.486832980505138,y1:-6.640783086353596,x2:6.00832755431992,y2:0,stroke:"color",strokeWidth:1.8},{type:"line",x1:3.478505426185217,y1:-5.375872022286244,x2:6.640783086353596,y2:0,stroke:"color",strokeWidth:1.5},{type:"rect",x:5.692099788303082,y:-3.478505426185217,width:1.8973665961010275,height:2.2135943621178655,fill:"color"},{type:"rect",x:2.846049894151541,y:10,width:6,height:4,fill:"bg"},{type:"line",x1:-.31622776601683794,y1:6.324555320336758,x2:7.58946638440411,y2:6.324555320336758,stroke:"bg",strokeWidth:2.3},{type:"rect",x:-2.5298221281347035,y:7.5,width:7.273238618387272,height:2.5,fill:"color"}]};export const QUERY_ICON_COLOR="#FF3366";const QUERY_STATES={fresh:"#10B981",fetching:"#3B82F6",stale:"#F59E0B",paused:"#8B5CF6",inactive:"#6B7280"};export const queryIconData={color:"#FF3366",bgColor:"#000",elements:[{type:"line",x1:0,y1:0,x2:0,y2:-8,stroke:QUERY_STATES.fresh,strokeWidth:1.2,opacity:.5},{type:"line",x1:0,y1:0,x2:7.6,y2:-2.5,stroke:QUERY_STATES.fetching,strokeWidth:1.2,opacity:.5},{type:"line",x1:0,y1:0,x2:4.7,y2:6.5,stroke:QUERY_STATES.stale,strokeWidth:1.2,opacity:.5},{type:"line",x1:0,y1:0,x2:-4.7,y2:6.5,stroke:QUERY_STATES.paused,strokeWidth:1.2,opacity:.5},{type:"line",x1:0,y1:0,x2:-7.6,y2:-2.5,stroke:QUERY_STATES.inactive,strokeWidth:1.2,opacity:.5},{type:"circle",cx:0,cy:-8,r:2.2,fill:QUERY_STATES.fresh,opacity:.2},{type:"circle",cx:0,cy:-8,r:1.6,fill:QUERY_STATES.fresh,opacity:.9},{type:"circle",cx:7.6,cy:-2.5,r:2.2,fill:QUERY_STATES.fetching,opacity:.2},{type:"circle",cx:7.6,cy:-2.5,r:1.6,fill:QUERY_STATES.fetching,opacity:.9},{type:"circle",cx:4.7,cy:6.5,r:2.2,fill:QUERY_STATES.stale,opacity:.2},{type:"circle",cx:4.7,cy:6.5,r:1.6,fill:QUERY_STATES.stale,opacity:.9},{type:"circle",cx:-4.7,cy:6.5,r:2.2,fill:QUERY_STATES.paused,opacity:.2},{type:"circle",cx:-4.7,cy:6.5,r:1.6,fill:QUERY_STATES.paused,opacity:.9},{type:"circle",cx:-7.6,cy:-2.5,r:2.2,fill:QUERY_STATES.inactive,opacity:.2},{type:"circle",cx:-7.6,cy:-2.5,r:1.6,fill:QUERY_STATES.inactive,opacity:.9},{type:"circle",cx:0,cy:0,r:4.5,fill:"color",opacity:.1},{type:"circle",cx:0,cy:0,r:3,fill:"color",opacity:.95},{type:"circle",cx:0,cy:0,r:1.3,fill:"#fff",opacity:.35}]};export const HIGHLIGHTER_ICON_COLOR="#10B981";export const RENDERS_ICON_COLOR="#10B981";export const highlighterIconData={color:"#10B981",bgColor:"#0a0a0f",elements:[{type:"rect",x:-9.1706052144883,y:5.692099788303082,width:3.478505426185217,height:3.478505426185217,fill:"color",rotation:45},{type:"rect",x:-10.119288512538814,y:8.538149682454623,width:6,height:4,fill:"bg"},{type:"line",x1:-10.119288512538814,y1:7.905694150420948,x2:-6.640783086353596,y2:7.905694150420948,stroke:"color",strokeWidth:1.5},{type:"line",x1:-6.957010852370434,y1:5.059644256269407,x2:-2.846049894151541,y2:5.059644256269407,stroke:"color",strokeWidth:1.5,rotation:44},{type:"line",x1:-5.91,y1:-4.11,x2:7.27,y2:-4.33,stroke:"color",strokeWidth:2.1,rotation:145},{type:"line",x1:-1.56,y1:1.05,x2:10.435516278555651,y2:-2.846049894151541,stroke:"color",strokeWidth:2.1,rotation:145},{type:"line",x1:4.110960958218893,y1:-6.640783086353596,x2:9.486832980505138,y2:-6.640783086353596,stroke:"color",strokeWidth:2.2,rotation:44},{type:"line",x1:-4.743416490252569,y1:-1.5811388300841895,x2:1.5811388300841895,y2:4.743416490252569,stroke:"color",strokeWidth:2.9},{type:"line",x1:-6.957010852370434,y1:1.2649110640673518,x2:-2.2135943621178655,y2:2.2135943621178655,stroke:"color",strokeWidth:1.5,rotation:77},{type:"line",x1:-1.2649110640673518,y1:.9486832980505138,x2:-2.5298221281347035,y2:7.905694150420948,stroke:"color",strokeWidth:1.5,rotation:77},{type:"rect",x:-4.427188724235731,y:.9486832980505138,width:3.794733192202055,height:4.110960958218893,fill:"color"},{type:"line",x1:-7.58946638440411,y1:1.8973665961010275,x2:-.9486832980505138,y2:1.8973665961010275,stroke:"color",strokeWidth:1.5,rotation:-48},{type:"line",x1:-5.375872022286244,y1:4.110960958218893,x2:1.2649110640673518,y2:4.110960958218893,stroke:"color",strokeWidth:1.5,rotation:-48}]};export const rendersIconData=highlighterIconData;export const BENCHMARK_ICON_COLOR="#F59E0B";export const benchmarkIconData={color:"#F59E0B",bgColor:"#000",elements:[{type:"circle",cx:0,cy:1,r:7,border:!0,borderWidth:1.5,opacity:.9},{type:"circle",cx:0,cy:1,r:5,fill:"color",opacity:.15},{type:"rect",x:-2,y:-10,width:4,height:3,borderRadius:1,fill:"color",opacity:.9},{type:"rect",x:-1,y:-7.5,width:2,height:2,fill:"color",opacity:.9},{type:"rect",x:-.75,y:-4,width:1.5,height:5,borderRadius:1,fill:"color",opacity:.9,rotation:-45,rotateFromCenter:!0},{type:"circle",cx:0,cy:1,r:1,fill:"color",opacity:.9},{type:"rect",x:-.5,y:-5,width:1,height:2,fill:"color",opacity:.5},{type:"rect",x:4,y:.5,width:2,height:1,fill:"color",opacity:.5},{type:"rect",x:-.5,y:5,width:1,height:2,fill:"color",opacity:.5},{type:"rect",x:-6,y:.5,width:2,height:1,fill:"color",opacity:.5}]};export const SENTRY_ICON_COLOR="#FF3366";export const sentryIconData={color:"#FF3366",bgColor:"#000",elements:[{type:"circle",cx:0,cy:1,r:8,fill:"color",opacity:.15},{type:"rect",x:-6,y:-4,width:12,height:14,borderRadius:6,fill:"color",opacity:.9},{type:"rect",x:-4,y:-9,width:8,height:6,borderRadius:4,fill:"color",opacity:.95},{type:"rect",x:-3,y:-12,width:.8,height:4,fill:"color",opacity:.7,rotation:-15},{type:"circle",cx:-4,cy:-12,r:1.2,fill:"color",opacity:.6},{type:"rect",x:2.2,y:-12,width:.8,height:4,fill:"color",opacity:.7,rotation:15},{type:"circle",cx:4,cy:-12,r:1.2,fill:"color",opacity:.6},{type:"rect",x:-10,y:-2,width:4,height:1,fill:"color",opacity:.8,rotation:-20},{type:"rect",x:-10,y:1,width:4,height:1,fill:"color",opacity:.8,rotation:-10},{type:"rect",x:-10,y:4,width:4,height:1,fill:"color",opacity:.8,rotation:10},{type:"rect",x:6,y:-2,width:4,height:1,fill:"color",opacity:.8,rotation:20},{type:"rect",x:6,y:1,width:4,height:1,fill:"color",opacity:.8,rotation:10},{type:"rect",x:6,y:4,width:4,height:1,fill:"color",opacity:.8,rotation:-10},{type:"circle",cx:0,cy:1,r:1,fill:"#fff",opacity:.3}]};export const WIFI_ICON_COLOR="#00D4FF";export const wifiIconData={color:"#00D4FF",bgColor:"#000",elements:[{type:"circle",cx:0,cy:6,r:2,fill:"color",opacity:1},{type:"smootharc",cx:0,cy:6,r:5,stroke:"color",strokeWidth:2,opacity:.9,portion:"top"},{type:"smootharc",cx:0,cy:6,r:8,stroke:"color",strokeWidth:2,opacity:.7,portion:"top"},{type:"smootharc",cx:0,cy:6,r:11,stroke:"color",strokeWidth:2,opacity:.5,portion:"top"}]};export const HIGHLIGHT_ICON_COLOR="#10B981";export const highlightIconData={color:"#10B981",bgColor:"#000",elements:[{type:"rect",x:-10,y:-10,width:20,height:20,borderRadius:3,border:!0,borderWidth:1.5,opacity:.2},{type:"rect",x:-7.5,y:-7.5,width:15,height:15,borderRadius:2.5,border:!0,borderWidth:1.5,opacity:.4},{type:"rect",x:-6,y:-6,width:12,height:12,borderRadius:2,fill:"color",opacity:.15},{type:"rect",x:-5,y:-5,width:10,height:10,borderRadius:1.5,fill:"color",opacity:.9},{type:"rect",x:-3.5,y:-3.5,width:7,height:7,borderRadius:1,fill:"#000",opacity:.4},{type:"rect",x:-2,y:-2,width:4,height:1,borderRadius:.5,fill:"color",opacity:.7},{type:"rect",x:-2,y:0,width:3,height:1,borderRadius:.5,fill:"color",opacity:.5},{type:"rect",x:-2,y:2,width:2,height:1,borderRadius:.5,fill:"color",opacity:.4},{type:"rect",x:-3,y:-4.5,width:6,height:1.5,borderRadius:.75,fill:"#fff",opacity:.2},{type:"circle",cx:-8,cy:-8,r:1,fill:"color",opacity:.6},{type:"circle",cx:8,cy:-8,r:1,fill:"color",opacity:.6},{type:"circle",cx:-8,cy:8,r:1,fill:"color",opacity:.6},{type:"circle",cx:8,cy:8,r:1,fill:"color",opacity:.6}]};export const EVENTS_ICON_COLOR="#00D4FF";export const eventsIconData={color:"#00D4FF",bgColor:"#0a0a0f",elements:[{type:"circle",cx:-7,cy:-7,r:2.5,fill:"color",opacity:1},{type:"circle",cx:-7,cy:-7,r:1.4,fill:"#000000",opacity:1},{type:"circle",cx:-7,cy:0,r:2.5,fill:"color",opacity:1},{type:"circle",cx:-7,cy:0,r:1.4,fill:"#000000",opacity:1},{type:"circle",cx:-7,cy:7,r:2.5,fill:"color",opacity:1},{type:"circle",cx:-7,cy:7,r:1.4,fill:"#000000",opacity:1},{type:"line",x1:-7,y1:-4.2,x2:-7,y2:-2.8,stroke:"color",strokeWidth:1.5,opacity:.8},{type:"line",x1:-7,y1:2.8,x2:-7,y2:4.2,stroke:"color",strokeWidth:1.5,opacity:.8},{type:"line",x1:-4.2,y1:-7,x2:-1,y2:-7,stroke:"color",strokeWidth:1.5,opacity:.7},{type:"line",x1:-4.2,y1:0,x2:-1,y2:0,stroke:"color",strokeWidth:1.5,opacity:.7},{type:"line",x1:-4.2,y1:7,x2:-1,y2:7,stroke:"color",strokeWidth:1.5,opacity:.7},{type:"rect",x:-1,y:-10,width:11,height:6,fill:"color",opacity:.95,borderRadius:1},{type:"rect",x:0,y:-9,width:9,height:4,fill:"#000000",opacity:1,borderRadius:.5},{type:"line",x1:1.5,y1:-7.5,x2:7.5,y2:-7.5,stroke:"color",strokeWidth:1.2,opacity:.8},{type:"line",x1:1.5,y1:-5.8,x2:6,y2:-5.8,stroke:"color",strokeWidth:1.2,opacity:.6},{type:"rect",x:-1,y:-3,width:11,height:6,fill:"color",opacity:.95,borderRadius:1},{type:"rect",x:0,y:-2,width:9,height:4,fill:"#000000",opacity:1,borderRadius:.5},{type:"line",x1:1.5,y1:-.5,x2:7.5,y2:-.5,stroke:"color",strokeWidth:1.2,opacity:.8},{type:"line",x1:1.5,y1:1.2,x2:5,y2:1.2,stroke:"color",strokeWidth:1.2,opacity:.6},{type:"rect",x:-1,y:4,width:11,height:6,fill:"color",opacity:.95,borderRadius:1},{type:"rect",x:0,y:5,width:9,height:4,fill:"#000000",opacity:1,borderRadius:.5},{type:"circle",cx:2,cy:6.2,r:.6,fill:"color",opacity:.9},{type:"circle",cx:4,cy:6.2,r:.6,fill:"color",opacity:.9},{type:"circle",cx:6,cy:6.2,r:.6,fill:"color",opacity:.9},{type:"circle",cx:8,cy:6.2,r:.6,fill:"color",opacity:.9},{type:"circle",cx:2,cy:8,r:.6,fill:"color",opacity:.9},{type:"circle",cx:4,cy:8,r:.6,fill:"color",opacity:.9},{type:"circle",cx:6,cy:8,r:.6,fill:"color",opacity:.9},{type:"circle",cx:8,cy:8,r:.6,fill:"color",opacity:.9}]};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Icon Data Definitions - PURE DATA, NO JSX
|
|
5
|
+
*
|
|
6
|
+
* Each icon is just data. The renderer transforms it to components.
|
|
7
|
+
* Change colors here = changes everywhere.
|
|
8
|
+
*
|
|
9
|
+
* Coordinates are relative to center (0,0 = center of icon)
|
|
10
|
+
* Sizes are based on 24x24 base size, scaled automatically.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// ===========================================
|
|
14
|
+
// NETWORK ICON (Globe)
|
|
15
|
+
// ===========================================
|
|
16
|
+
|
|
17
|
+
export const NETWORK_ICON_COLOR = '#00D4FF'; // Cyan
|
|
18
|
+
|
|
19
|
+
export const networkIconData = {
|
|
20
|
+
color: NETWORK_ICON_COLOR,
|
|
21
|
+
bgColor: 'rgba(8, 12, 21, 0.95)',
|
|
22
|
+
elements: [
|
|
23
|
+
// Main globe with glow
|
|
24
|
+
{
|
|
25
|
+
type: 'circle',
|
|
26
|
+
cx: 0,
|
|
27
|
+
cy: 0,
|
|
28
|
+
r: 9,
|
|
29
|
+
fill: 'bg',
|
|
30
|
+
border: true,
|
|
31
|
+
borderWidth: 2,
|
|
32
|
+
glow: true,
|
|
33
|
+
glowRadius: 4
|
|
34
|
+
},
|
|
35
|
+
// Vertical meridian
|
|
36
|
+
{
|
|
37
|
+
type: 'circle',
|
|
38
|
+
cx: 0,
|
|
39
|
+
cy: 0,
|
|
40
|
+
r: 9,
|
|
41
|
+
border: true,
|
|
42
|
+
borderWidth: 2,
|
|
43
|
+
scaleX: 0.45,
|
|
44
|
+
opacity: 0.6
|
|
45
|
+
},
|
|
46
|
+
// Horizontal equator
|
|
47
|
+
{
|
|
48
|
+
type: 'circle',
|
|
49
|
+
cx: 0,
|
|
50
|
+
cy: 0,
|
|
51
|
+
r: 9,
|
|
52
|
+
border: true,
|
|
53
|
+
borderWidth: 2,
|
|
54
|
+
scaleX: 1.33,
|
|
55
|
+
scaleY: 0.6,
|
|
56
|
+
opacity: 0.6
|
|
57
|
+
}]
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// ===========================================
|
|
61
|
+
// ENV ICON (Laptop)
|
|
62
|
+
// ===========================================
|
|
63
|
+
|
|
64
|
+
export const ENV_ICON_COLOR = '#4AFF9F'; // Green
|
|
65
|
+
|
|
66
|
+
// Keyboard layout
|
|
67
|
+
const KEYBOARD_ROW_1 = [1, 3, 5, 7, 9, 11, 13, 15, 17];
|
|
68
|
+
const KEYBOARD_ROW_2 = [2, 4, 6, 8, 10, 12, 14, 16];
|
|
69
|
+
export const envIconData = {
|
|
70
|
+
color: ENV_ICON_COLOR,
|
|
71
|
+
bgColor: '#000',
|
|
72
|
+
elements: [
|
|
73
|
+
// Base glow (behind keyboard)
|
|
74
|
+
{
|
|
75
|
+
type: 'rect',
|
|
76
|
+
x: -11,
|
|
77
|
+
y: 3,
|
|
78
|
+
width: 22,
|
|
79
|
+
height: 10,
|
|
80
|
+
borderRadius: 1,
|
|
81
|
+
fill: 'color',
|
|
82
|
+
opacity: 0.15
|
|
83
|
+
},
|
|
84
|
+
// Laptop base/keyboard
|
|
85
|
+
{
|
|
86
|
+
type: 'rect',
|
|
87
|
+
x: -10,
|
|
88
|
+
y: 4,
|
|
89
|
+
width: 20,
|
|
90
|
+
height: 8,
|
|
91
|
+
borderRadius: 1,
|
|
92
|
+
fill: 'color',
|
|
93
|
+
opacity: 0.85
|
|
94
|
+
},
|
|
95
|
+
// Keyboard top row keys
|
|
96
|
+
...KEYBOARD_ROW_1.map(xPos => ({
|
|
97
|
+
type: 'rect',
|
|
98
|
+
x: -10 + xPos,
|
|
99
|
+
y: 4 + 1.5,
|
|
100
|
+
width: 1.5,
|
|
101
|
+
height: 1.2,
|
|
102
|
+
borderRadius: 0.2,
|
|
103
|
+
fill: '#000',
|
|
104
|
+
opacity: 0.3
|
|
105
|
+
})),
|
|
106
|
+
// Keyboard bottom row keys
|
|
107
|
+
...KEYBOARD_ROW_2.map(xPos => ({
|
|
108
|
+
type: 'rect',
|
|
109
|
+
x: -10 + xPos,
|
|
110
|
+
y: 4 + 3.2,
|
|
111
|
+
width: 1.5,
|
|
112
|
+
height: 1.2,
|
|
113
|
+
borderRadius: 0.2,
|
|
114
|
+
fill: '#000',
|
|
115
|
+
opacity: 0.3
|
|
116
|
+
})),
|
|
117
|
+
// Spacebar
|
|
118
|
+
{
|
|
119
|
+
type: 'rect',
|
|
120
|
+
x: -10 + 5,
|
|
121
|
+
y: 4 + 5.5,
|
|
122
|
+
width: 10,
|
|
123
|
+
height: 1,
|
|
124
|
+
borderRadius: 0.2,
|
|
125
|
+
fill: '#000',
|
|
126
|
+
opacity: 0.25
|
|
127
|
+
},
|
|
128
|
+
// Laptop screen
|
|
129
|
+
{
|
|
130
|
+
type: 'rect',
|
|
131
|
+
x: -9,
|
|
132
|
+
y: -10,
|
|
133
|
+
width: 18,
|
|
134
|
+
height: 12,
|
|
135
|
+
borderRadius: 1,
|
|
136
|
+
fill: 'color',
|
|
137
|
+
opacity: 0.9
|
|
138
|
+
},
|
|
139
|
+
// Screen inner (dark area)
|
|
140
|
+
{
|
|
141
|
+
type: 'rect',
|
|
142
|
+
x: -8,
|
|
143
|
+
y: -9,
|
|
144
|
+
width: 16,
|
|
145
|
+
height: 10,
|
|
146
|
+
borderRadius: 0.5,
|
|
147
|
+
fill: '#000',
|
|
148
|
+
opacity: 0.5
|
|
149
|
+
},
|
|
150
|
+
// Code line 1
|
|
151
|
+
{
|
|
152
|
+
type: 'rect',
|
|
153
|
+
x: -7,
|
|
154
|
+
y: -8,
|
|
155
|
+
width: 10,
|
|
156
|
+
height: 0.5,
|
|
157
|
+
fill: 'color',
|
|
158
|
+
opacity: 0.6
|
|
159
|
+
},
|
|
160
|
+
// Code line 2
|
|
161
|
+
{
|
|
162
|
+
type: 'rect',
|
|
163
|
+
x: -7,
|
|
164
|
+
y: -6,
|
|
165
|
+
width: 7,
|
|
166
|
+
height: 0.5,
|
|
167
|
+
fill: 'color',
|
|
168
|
+
opacity: 0.6
|
|
169
|
+
},
|
|
170
|
+
// Code line 3
|
|
171
|
+
{
|
|
172
|
+
type: 'rect',
|
|
173
|
+
x: -7,
|
|
174
|
+
y: -4,
|
|
175
|
+
width: 4,
|
|
176
|
+
height: 0.5,
|
|
177
|
+
fill: 'color',
|
|
178
|
+
opacity: 0.6
|
|
179
|
+
},
|
|
180
|
+
// Power indicator
|
|
181
|
+
{
|
|
182
|
+
type: 'rect',
|
|
183
|
+
x: -1,
|
|
184
|
+
y: 10,
|
|
185
|
+
width: 2,
|
|
186
|
+
height: 1,
|
|
187
|
+
borderRadius: 0.5,
|
|
188
|
+
fill: 'color',
|
|
189
|
+
opacity: 0.8
|
|
190
|
+
},
|
|
191
|
+
// Screen dot 1
|
|
192
|
+
{
|
|
193
|
+
type: 'rect',
|
|
194
|
+
x: -9 + 0.3 * 18,
|
|
195
|
+
y: -10 + 0.3 * 12,
|
|
196
|
+
width: 1,
|
|
197
|
+
height: 1,
|
|
198
|
+
borderRadius: 0.5,
|
|
199
|
+
fill: 'color',
|
|
200
|
+
opacity: 0.4
|
|
201
|
+
},
|
|
202
|
+
// Screen dot 2
|
|
203
|
+
{
|
|
204
|
+
type: 'rect',
|
|
205
|
+
x: -9 + 0.7 * 18,
|
|
206
|
+
y: -10 + 0.3 * 12,
|
|
207
|
+
width: 1,
|
|
208
|
+
height: 1,
|
|
209
|
+
borderRadius: 0.5,
|
|
210
|
+
fill: 'color',
|
|
211
|
+
opacity: 0.4
|
|
212
|
+
},
|
|
213
|
+
// Screen dot 3
|
|
214
|
+
{
|
|
215
|
+
type: 'rect',
|
|
216
|
+
x: -9 + 0.5 * 18,
|
|
217
|
+
y: -10 + 0.7 * 12,
|
|
218
|
+
width: 1,
|
|
219
|
+
height: 1,
|
|
220
|
+
borderRadius: 0.5,
|
|
221
|
+
fill: 'color',
|
|
222
|
+
opacity: 0.4
|
|
223
|
+
}]
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
// ===========================================
|
|
227
|
+
// STORAGE ICON (Database Stack)
|
|
228
|
+
// ===========================================
|
|
229
|
+
|
|
230
|
+
export const STORAGE_ICON_COLOR = '#FFB800'; // Gold/Amber (database/storage)
|
|
231
|
+
|
|
232
|
+
// Cylinder positions (relative to center, 24x24 base)
|
|
233
|
+
const CYLINDER_POSITIONS = [{
|
|
234
|
+
y: -6,
|
|
235
|
+
opacity: 0.9
|
|
236
|
+
},
|
|
237
|
+
// Top cylinder
|
|
238
|
+
{
|
|
239
|
+
y: -1.2,
|
|
240
|
+
opacity: 0.8
|
|
241
|
+
},
|
|
242
|
+
// Middle cylinder
|
|
243
|
+
{
|
|
244
|
+
y: 3.6,
|
|
245
|
+
opacity: 0.7
|
|
246
|
+
} // Bottom cylinder
|
|
247
|
+
];
|
|
248
|
+
export const storageIconData = {
|
|
249
|
+
color: STORAGE_ICON_COLOR,
|
|
250
|
+
bgColor: '#000',
|
|
251
|
+
elements: [
|
|
252
|
+
// === CYLINDER 1 (Top) ===
|
|
253
|
+
// Shadow/glow
|
|
254
|
+
{
|
|
255
|
+
type: 'rect',
|
|
256
|
+
x: -9,
|
|
257
|
+
y: -7,
|
|
258
|
+
width: 18,
|
|
259
|
+
height: 8,
|
|
260
|
+
borderRadius: 4,
|
|
261
|
+
fill: 'color',
|
|
262
|
+
opacity: 0.1
|
|
263
|
+
},
|
|
264
|
+
// Main body
|
|
265
|
+
{
|
|
266
|
+
type: 'rect',
|
|
267
|
+
x: -8,
|
|
268
|
+
y: -6,
|
|
269
|
+
width: 16,
|
|
270
|
+
height: 6,
|
|
271
|
+
borderRadius: 3,
|
|
272
|
+
fill: 'color',
|
|
273
|
+
opacity: 0.9
|
|
274
|
+
},
|
|
275
|
+
// Top highlight
|
|
276
|
+
{
|
|
277
|
+
type: 'rect',
|
|
278
|
+
x: -7,
|
|
279
|
+
y: -5.5,
|
|
280
|
+
width: 14,
|
|
281
|
+
height: 2,
|
|
282
|
+
borderRadius: 1,
|
|
283
|
+
fill: '#fff',
|
|
284
|
+
opacity: 0.15
|
|
285
|
+
},
|
|
286
|
+
// Edge glow (border)
|
|
287
|
+
{
|
|
288
|
+
type: 'rect',
|
|
289
|
+
x: -8,
|
|
290
|
+
y: -6,
|
|
291
|
+
width: 16,
|
|
292
|
+
height: 6,
|
|
293
|
+
borderRadius: 3,
|
|
294
|
+
border: true,
|
|
295
|
+
borderWidth: 0.5,
|
|
296
|
+
opacity: 0.3
|
|
297
|
+
},
|
|
298
|
+
// === CYLINDER 2 (Middle) ===
|
|
299
|
+
// Shadow/glow
|
|
300
|
+
{
|
|
301
|
+
type: 'rect',
|
|
302
|
+
x: -9,
|
|
303
|
+
y: -2.2,
|
|
304
|
+
width: 18,
|
|
305
|
+
height: 8,
|
|
306
|
+
borderRadius: 4,
|
|
307
|
+
fill: 'color',
|
|
308
|
+
opacity: 0.1
|
|
309
|
+
},
|
|
310
|
+
// Main body
|
|
311
|
+
{
|
|
312
|
+
type: 'rect',
|
|
313
|
+
x: -8,
|
|
314
|
+
y: -1.2,
|
|
315
|
+
width: 16,
|
|
316
|
+
height: 6,
|
|
317
|
+
borderRadius: 3,
|
|
318
|
+
fill: 'color',
|
|
319
|
+
opacity: 0.8
|
|
320
|
+
},
|
|
321
|
+
// Top highlight
|
|
322
|
+
{
|
|
323
|
+
type: 'rect',
|
|
324
|
+
x: -7,
|
|
325
|
+
y: -0.7,
|
|
326
|
+
width: 14,
|
|
327
|
+
height: 2,
|
|
328
|
+
borderRadius: 1,
|
|
329
|
+
fill: '#fff',
|
|
330
|
+
opacity: 0.15
|
|
331
|
+
},
|
|
332
|
+
// Edge glow (border)
|
|
333
|
+
{
|
|
334
|
+
type: 'rect',
|
|
335
|
+
x: -8,
|
|
336
|
+
y: -1.2,
|
|
337
|
+
width: 16,
|
|
338
|
+
height: 6,
|
|
339
|
+
borderRadius: 3,
|
|
340
|
+
border: true,
|
|
341
|
+
borderWidth: 0.5,
|
|
342
|
+
opacity: 0.3
|
|
343
|
+
},
|
|
344
|
+
// === CYLINDER 3 (Bottom) ===
|
|
345
|
+
// Shadow/glow
|
|
346
|
+
{
|
|
347
|
+
type: 'rect',
|
|
348
|
+
x: -9,
|
|
349
|
+
y: 2.6,
|
|
350
|
+
width: 18,
|
|
351
|
+
height: 8,
|
|
352
|
+
borderRadius: 4,
|
|
353
|
+
fill: 'color',
|
|
354
|
+
opacity: 0.1
|
|
355
|
+
},
|
|
356
|
+
// Main body
|
|
357
|
+
{
|
|
358
|
+
type: 'rect',
|
|
359
|
+
x: -8,
|
|
360
|
+
y: 3.6,
|
|
361
|
+
width: 16,
|
|
362
|
+
height: 6,
|
|
363
|
+
borderRadius: 3,
|
|
364
|
+
fill: 'color',
|
|
365
|
+
opacity: 0.7
|
|
366
|
+
},
|
|
367
|
+
// Top highlight
|
|
368
|
+
{
|
|
369
|
+
type: 'rect',
|
|
370
|
+
x: -7,
|
|
371
|
+
y: 4.1,
|
|
372
|
+
width: 14,
|
|
373
|
+
height: 2,
|
|
374
|
+
borderRadius: 1,
|
|
375
|
+
fill: '#fff',
|
|
376
|
+
opacity: 0.15
|
|
377
|
+
},
|
|
378
|
+
// Edge glow (border)
|
|
379
|
+
{
|
|
380
|
+
type: 'rect',
|
|
381
|
+
x: -8,
|
|
382
|
+
y: 3.6,
|
|
383
|
+
width: 16,
|
|
384
|
+
height: 6,
|
|
385
|
+
borderRadius: 3,
|
|
386
|
+
border: true,
|
|
387
|
+
borderWidth: 0.5,
|
|
388
|
+
opacity: 0.3
|
|
389
|
+
},
|
|
390
|
+
// === CONNECTION LINES ===
|
|
391
|
+
// Line 1 (between cylinder 1 and 2)
|
|
392
|
+
{
|
|
393
|
+
type: 'rect',
|
|
394
|
+
x: -0.25,
|
|
395
|
+
y: -3.6,
|
|
396
|
+
width: 0.5,
|
|
397
|
+
height: 6,
|
|
398
|
+
fill: 'color',
|
|
399
|
+
opacity: 0.3
|
|
400
|
+
},
|
|
401
|
+
// Line 2 (between cylinder 2 and 3)
|
|
402
|
+
{
|
|
403
|
+
type: 'rect',
|
|
404
|
+
x: -0.25,
|
|
405
|
+
y: 1.2,
|
|
406
|
+
width: 0.5,
|
|
407
|
+
height: 6,
|
|
408
|
+
fill: 'color',
|
|
409
|
+
opacity: 0.3
|
|
410
|
+
},
|
|
411
|
+
// === DATA DOTS ===
|
|
412
|
+
// Dot 1 (on cylinder 1)
|
|
413
|
+
{
|
|
414
|
+
type: 'rect',
|
|
415
|
+
x: -0.5,
|
|
416
|
+
y: -3.5,
|
|
417
|
+
width: 1,
|
|
418
|
+
height: 1,
|
|
419
|
+
borderRadius: 0.5,
|
|
420
|
+
fill: 'color',
|
|
421
|
+
opacity: 0.6
|
|
422
|
+
},
|
|
423
|
+
// Dot 2 (on cylinder 2)
|
|
424
|
+
{
|
|
425
|
+
type: 'rect',
|
|
426
|
+
x: -0.5,
|
|
427
|
+
y: 1.3,
|
|
428
|
+
width: 1,
|
|
429
|
+
height: 1,
|
|
430
|
+
borderRadius: 0.5,
|
|
431
|
+
fill: 'color',
|
|
432
|
+
opacity: 0.6
|
|
433
|
+
},
|
|
434
|
+
// Dot 3 (on cylinder 3)
|
|
435
|
+
{
|
|
436
|
+
type: 'rect',
|
|
437
|
+
x: -0.5,
|
|
438
|
+
y: 6.1,
|
|
439
|
+
width: 1,
|
|
440
|
+
height: 1,
|
|
441
|
+
borderRadius: 0.5,
|
|
442
|
+
fill: 'color',
|
|
443
|
+
opacity: 0.6
|
|
444
|
+
}]
|
|
445
|
+
};
|
|
446
|
+
|
|
447
|
+
// ===========================================
|
|
448
|
+
// ROUTES ICON PARTS (for testing/iteration)
|
|
449
|
+
// ===========================================
|
|
450
|
+
// Breaking down the route icon into smaller testable pieces
|
|
451
|
+
|
|
452
|
+
export const ROUTES_ICON_COLOR = '#FF9F1C'; // Orange (matching route-events theme)
|
|
453
|
+
|
|
454
|
+
// Part 1: Single Map Pin (teardrop shape)
|
|
455
|
+
// Circle for rounded top + triangle for point + inner dot
|
|
456
|
+
export const routePinIconData = {
|
|
457
|
+
color: ROUTES_ICON_COLOR,
|
|
458
|
+
bgColor: '#000',
|
|
459
|
+
elements: [
|
|
460
|
+
// Rounded top of teardrop
|
|
461
|
+
{
|
|
462
|
+
type: 'circle',
|
|
463
|
+
cx: 0,
|
|
464
|
+
cy: -2,
|
|
465
|
+
r: 5,
|
|
466
|
+
fill: 'color',
|
|
467
|
+
opacity: 1
|
|
468
|
+
},
|
|
469
|
+
// Teardrop point extending down
|
|
470
|
+
{
|
|
471
|
+
type: 'triangle',
|
|
472
|
+
x: 0,
|
|
473
|
+
y: 4,
|
|
474
|
+
size: 5,
|
|
475
|
+
direction: 'down',
|
|
476
|
+
fill: 'color',
|
|
477
|
+
opacity: 1
|
|
478
|
+
},
|
|
479
|
+
// Inner hole/dot (dark for contrast)
|
|
480
|
+
{
|
|
481
|
+
type: 'circle',
|
|
482
|
+
cx: 0,
|
|
483
|
+
cy: -2,
|
|
484
|
+
r: 2,
|
|
485
|
+
fill: 'bg',
|
|
486
|
+
opacity: 1
|
|
487
|
+
}]
|
|
488
|
+
};
|
|
489
|
+
|
|
490
|
+
// ===========================================
|
|
491
|
+
// BUTTON/CURVE TEST VARIATIONS
|
|
492
|
+
// ===========================================
|
|
493
|
+
// Testing different approaches to create S-curve using border tricks
|
|
494
|
+
// Think of it as buttons with selective borders visible
|
|
495
|
+
|
|
496
|
+
// ===========================================
|
|
497
|
+
// STRETCHED BUTTON SHAPES - Different aspect ratios!
|
|
498
|
+
// ===========================================
|
|
499
|
+
// Using circles with scaleX/scaleY to create stretched ovals
|
|
500
|
+
// And rects with borderRadius for pill/button shapes
|
|
501
|
+
|
|
502
|
+
// Test A: Wide oval - bottom portion (wide smile)
|
|
503
|
+
export const curveTestAData = {
|
|
504
|
+
color: ROUTES_ICON_COLOR,
|
|
505
|
+
bgColor: '#000',
|
|
506
|
+
elements: [{
|
|
507
|
+
type: 'circle',
|
|
508
|
+
cx: 0,
|
|
509
|
+
cy: 0,
|
|
510
|
+
r: 6,
|
|
511
|
+
fill: 'transparent',
|
|
512
|
+
border: true,
|
|
513
|
+
borderWidth: 3,
|
|
514
|
+
scaleX: 1.5,
|
|
515
|
+
scaleY: 0.8,
|
|
516
|
+
opacity: 1
|
|
517
|
+
}]
|
|
518
|
+
};
|
|
519
|
+
|
|
520
|
+
// Test B: Tall oval - stretched vertically
|
|
521
|
+
export const curveTestBData = {
|
|
522
|
+
color: ROUTES_ICON_COLOR,
|
|
523
|
+
bgColor: '#000',
|
|
524
|
+
elements: [{
|
|
525
|
+
type: 'circle',
|
|
526
|
+
cx: 0,
|
|
527
|
+
cy: 0,
|
|
528
|
+
r: 6,
|
|
529
|
+
fill: 'transparent',
|
|
530
|
+
border: true,
|
|
531
|
+
borderWidth: 3,
|
|
532
|
+
scaleX: 0.6,
|
|
533
|
+
scaleY: 1.4,
|
|
534
|
+
opacity: 1
|
|
535
|
+
}]
|
|
536
|
+
};
|
|
537
|
+
|
|
538
|
+
// Test C: Wide pill shape using rect with full borderRadius (REFERENCE)
|
|
539
|
+
export const curveTestCData = {
|
|
540
|
+
color: ROUTES_ICON_COLOR,
|
|
541
|
+
bgColor: '#000',
|
|
542
|
+
elements: [{
|
|
543
|
+
type: 'rect',
|
|
544
|
+
x: -10,
|
|
545
|
+
y: -4,
|
|
546
|
+
width: 20,
|
|
547
|
+
height: 8,
|
|
548
|
+
borderRadius: 4,
|
|
549
|
+
fill: 'transparent',
|
|
550
|
+
border: true,
|
|
551
|
+
borderWidth: 3,
|
|
552
|
+
opacity: 1
|
|
553
|
+
}]
|
|
554
|
+
};
|
|
555
|
+
|
|
556
|
+
// Test D: Wide pill - THINNER border (1.5px)
|
|
557
|
+
export const curveTestDData = {
|
|
558
|
+
color: ROUTES_ICON_COLOR,
|
|
559
|
+
bgColor: '#000',
|
|
560
|
+
elements: [{
|
|
561
|
+
type: 'rect',
|
|
562
|
+
x: -10,
|
|
563
|
+
y: -4,
|
|
564
|
+
width: 20,
|
|
565
|
+
height: 8,
|
|
566
|
+
borderRadius: 4,
|
|
567
|
+
fill: 'transparent',
|
|
568
|
+
border: true,
|
|
569
|
+
borderWidth: 1.5,
|
|
570
|
+
opacity: 1
|
|
571
|
+
}]
|
|
572
|
+
};
|
|
573
|
+
|
|
574
|
+
// ===========================================
|
|
575
|
+
// HALF-PILL SHAPES - Position pill so half is off-screen!
|
|
576
|
+
// ===========================================
|
|
577
|
+
// The key insight: position a wide pill so its LEFT or RIGHT half
|
|
578
|
+
// extends beyond the icon bounds, showing only the curved end!
|
|
579
|
+
|
|
580
|
+
// Test E: LEFT curved end only (pill extends off RIGHT side)
|
|
581
|
+
// Shows just the left rounded cap
|
|
582
|
+
export const curveTestEData = {
|
|
583
|
+
color: ROUTES_ICON_COLOR,
|
|
584
|
+
bgColor: '#000',
|
|
585
|
+
elements: [
|
|
586
|
+
// Pill positioned so right half is off-screen, only left curve shows
|
|
587
|
+
{
|
|
588
|
+
type: 'rect',
|
|
589
|
+
x: -10,
|
|
590
|
+
y: -4,
|
|
591
|
+
width: 20,
|
|
592
|
+
height: 8,
|
|
593
|
+
borderRadius: 4,
|
|
594
|
+
fill: 'transparent',
|
|
595
|
+
border: true,
|
|
596
|
+
borderWidth: 2,
|
|
597
|
+
opacity: 1
|
|
598
|
+
}]
|
|
599
|
+
};
|
|
600
|
+
|
|
601
|
+
// Test F: RIGHT curved end only (pill extends off LEFT side)
|
|
602
|
+
// Shows just the right rounded cap
|
|
603
|
+
export const curveTestFData = {
|
|
604
|
+
color: ROUTES_ICON_COLOR,
|
|
605
|
+
bgColor: '#000',
|
|
606
|
+
elements: [
|
|
607
|
+
// Pill positioned so left half is off-screen, only right curve shows
|
|
608
|
+
{
|
|
609
|
+
type: 'rect',
|
|
610
|
+
x: -10,
|
|
611
|
+
y: -4,
|
|
612
|
+
width: 20,
|
|
613
|
+
height: 8,
|
|
614
|
+
borderRadius: 4,
|
|
615
|
+
fill: 'transparent',
|
|
616
|
+
border: true,
|
|
617
|
+
borderWidth: 2,
|
|
618
|
+
opacity: 1
|
|
619
|
+
}]
|
|
620
|
+
};
|
|
621
|
+
|
|
622
|
+
// Test G: LEFT curve - thinner (1.5px border)
|
|
623
|
+
export const curveTestGData = {
|
|
624
|
+
color: ROUTES_ICON_COLOR,
|
|
625
|
+
bgColor: '#000',
|
|
626
|
+
elements: [{
|
|
627
|
+
type: 'rect',
|
|
628
|
+
x: -6,
|
|
629
|
+
y: -3,
|
|
630
|
+
width: 16,
|
|
631
|
+
height: 6,
|
|
632
|
+
borderRadius: 3,
|
|
633
|
+
fill: 'transparent',
|
|
634
|
+
border: true,
|
|
635
|
+
borderWidth: 1.5,
|
|
636
|
+
opacity: 1
|
|
637
|
+
}]
|
|
638
|
+
};
|
|
639
|
+
|
|
640
|
+
// Test H: RIGHT curve - thinner (1.5px border)
|
|
641
|
+
// Positioned far left so only right cap shows
|
|
642
|
+
export const curveTestHData = {
|
|
643
|
+
color: ROUTES_ICON_COLOR,
|
|
644
|
+
bgColor: '#000',
|
|
645
|
+
elements: [{
|
|
646
|
+
type: 'rect',
|
|
647
|
+
x: -22,
|
|
648
|
+
y: -3,
|
|
649
|
+
width: 16,
|
|
650
|
+
height: 6,
|
|
651
|
+
borderRadius: 3,
|
|
652
|
+
fill: 'transparent',
|
|
653
|
+
border: true,
|
|
654
|
+
borderWidth: 1.5,
|
|
655
|
+
opacity: 1
|
|
656
|
+
}]
|
|
657
|
+
};
|
|
658
|
+
|
|
659
|
+
// Test I: Two half-curves making an S - LEFT cap top, RIGHT cap bottom
|
|
660
|
+
export const curveTestIData = {
|
|
661
|
+
color: ROUTES_ICON_COLOR,
|
|
662
|
+
bgColor: '#000',
|
|
663
|
+
elements: [
|
|
664
|
+
// Top: show LEFT curve (pill extends right, off-screen)
|
|
665
|
+
{
|
|
666
|
+
type: 'rect',
|
|
667
|
+
x: -8,
|
|
668
|
+
y: -7,
|
|
669
|
+
width: 20,
|
|
670
|
+
height: 6,
|
|
671
|
+
borderRadius: 3,
|
|
672
|
+
fill: 'transparent',
|
|
673
|
+
border: true,
|
|
674
|
+
borderWidth: 1.5,
|
|
675
|
+
opacity: 1
|
|
676
|
+
},
|
|
677
|
+
// Bottom: show RIGHT curve (pill extends left, off-screen)
|
|
678
|
+
{
|
|
679
|
+
type: 'rect',
|
|
680
|
+
x: -12,
|
|
681
|
+
y: 1,
|
|
682
|
+
width: 20,
|
|
683
|
+
height: 6,
|
|
684
|
+
borderRadius: 3,
|
|
685
|
+
fill: 'transparent',
|
|
686
|
+
border: true,
|
|
687
|
+
borderWidth: 1.5,
|
|
688
|
+
opacity: 1
|
|
689
|
+
}]
|
|
690
|
+
};
|
|
691
|
+
|
|
692
|
+
// Test J: S-curve - skinnier pills (4px height)
|
|
693
|
+
export const curveTestJData = {
|
|
694
|
+
color: ROUTES_ICON_COLOR,
|
|
695
|
+
bgColor: '#000',
|
|
696
|
+
elements: [
|
|
697
|
+
// Top LEFT curve
|
|
698
|
+
{
|
|
699
|
+
type: 'rect',
|
|
700
|
+
x: -8,
|
|
701
|
+
y: -6,
|
|
702
|
+
width: 20,
|
|
703
|
+
height: 5,
|
|
704
|
+
borderRadius: 2.5,
|
|
705
|
+
fill: 'transparent',
|
|
706
|
+
border: true,
|
|
707
|
+
borderWidth: 1.5,
|
|
708
|
+
opacity: 1
|
|
709
|
+
},
|
|
710
|
+
// Bottom RIGHT curve
|
|
711
|
+
{
|
|
712
|
+
type: 'rect',
|
|
713
|
+
x: -12,
|
|
714
|
+
y: 1,
|
|
715
|
+
width: 20,
|
|
716
|
+
height: 5,
|
|
717
|
+
borderRadius: 2.5,
|
|
718
|
+
fill: 'transparent',
|
|
719
|
+
border: true,
|
|
720
|
+
borderWidth: 1.5,
|
|
721
|
+
opacity: 1
|
|
722
|
+
}]
|
|
723
|
+
};
|
|
724
|
+
|
|
725
|
+
// Test K: S-curve - even skinnier (3px height), 1px border
|
|
726
|
+
export const curveTestKData = {
|
|
727
|
+
color: ROUTES_ICON_COLOR,
|
|
728
|
+
bgColor: '#000',
|
|
729
|
+
elements: [
|
|
730
|
+
// Top LEFT curve - ultra thin
|
|
731
|
+
{
|
|
732
|
+
type: 'rect',
|
|
733
|
+
x: -8,
|
|
734
|
+
y: -5,
|
|
735
|
+
width: 20,
|
|
736
|
+
height: 4,
|
|
737
|
+
borderRadius: 2,
|
|
738
|
+
fill: 'transparent',
|
|
739
|
+
border: true,
|
|
740
|
+
borderWidth: 1,
|
|
741
|
+
opacity: 1
|
|
742
|
+
},
|
|
743
|
+
// Bottom RIGHT curve - ultra thin
|
|
744
|
+
{
|
|
745
|
+
type: 'rect',
|
|
746
|
+
x: -12,
|
|
747
|
+
y: 1,
|
|
748
|
+
width: 20,
|
|
749
|
+
height: 4,
|
|
750
|
+
borderRadius: 2,
|
|
751
|
+
fill: 'transparent',
|
|
752
|
+
border: true,
|
|
753
|
+
borderWidth: 1,
|
|
754
|
+
opacity: 1
|
|
755
|
+
}]
|
|
756
|
+
};
|
|
757
|
+
|
|
758
|
+
// Test L: S-curve - wider gap between curves
|
|
759
|
+
export const curveTestLData = {
|
|
760
|
+
color: ROUTES_ICON_COLOR,
|
|
761
|
+
bgColor: '#000',
|
|
762
|
+
elements: [
|
|
763
|
+
// Top LEFT curve - higher up
|
|
764
|
+
{
|
|
765
|
+
type: 'rect',
|
|
766
|
+
x: -6,
|
|
767
|
+
y: -8,
|
|
768
|
+
width: 20,
|
|
769
|
+
height: 5,
|
|
770
|
+
borderRadius: 2.5,
|
|
771
|
+
fill: 'transparent',
|
|
772
|
+
border: true,
|
|
773
|
+
borderWidth: 1.5,
|
|
774
|
+
opacity: 1
|
|
775
|
+
},
|
|
776
|
+
// Bottom RIGHT curve - lower down
|
|
777
|
+
{
|
|
778
|
+
type: 'rect',
|
|
779
|
+
x: -14,
|
|
780
|
+
y: 3,
|
|
781
|
+
width: 20,
|
|
782
|
+
height: 5,
|
|
783
|
+
borderRadius: 2.5,
|
|
784
|
+
fill: 'transparent',
|
|
785
|
+
border: true,
|
|
786
|
+
borderWidth: 1.5,
|
|
787
|
+
opacity: 1
|
|
788
|
+
}]
|
|
789
|
+
};
|
|
790
|
+
|
|
791
|
+
// Test M: S-curve - tighter together
|
|
792
|
+
export const curveTestMData = {
|
|
793
|
+
color: ROUTES_ICON_COLOR,
|
|
794
|
+
bgColor: '#000',
|
|
795
|
+
elements: [
|
|
796
|
+
// Top LEFT curve
|
|
797
|
+
{
|
|
798
|
+
type: 'rect',
|
|
799
|
+
x: -7,
|
|
800
|
+
y: -5,
|
|
801
|
+
width: 18,
|
|
802
|
+
height: 5,
|
|
803
|
+
borderRadius: 2.5,
|
|
804
|
+
fill: 'transparent',
|
|
805
|
+
border: true,
|
|
806
|
+
borderWidth: 1.5,
|
|
807
|
+
opacity: 1
|
|
808
|
+
},
|
|
809
|
+
// Bottom RIGHT curve - closer
|
|
810
|
+
{
|
|
811
|
+
type: 'rect',
|
|
812
|
+
x: -11,
|
|
813
|
+
y: 0,
|
|
814
|
+
width: 18,
|
|
815
|
+
height: 5,
|
|
816
|
+
borderRadius: 2.5,
|
|
817
|
+
fill: 'transparent',
|
|
818
|
+
border: true,
|
|
819
|
+
borderWidth: 1.5,
|
|
820
|
+
opacity: 1
|
|
821
|
+
}]
|
|
822
|
+
};
|
|
823
|
+
|
|
824
|
+
// Test N: S-curve with 2px border
|
|
825
|
+
export const curveTestNData = {
|
|
826
|
+
color: ROUTES_ICON_COLOR,
|
|
827
|
+
bgColor: '#000',
|
|
828
|
+
elements: [{
|
|
829
|
+
type: 'rect',
|
|
830
|
+
x: -8,
|
|
831
|
+
y: -6,
|
|
832
|
+
width: 20,
|
|
833
|
+
height: 5,
|
|
834
|
+
borderRadius: 2.5,
|
|
835
|
+
fill: 'transparent',
|
|
836
|
+
border: true,
|
|
837
|
+
borderWidth: 2,
|
|
838
|
+
opacity: 1
|
|
839
|
+
}, {
|
|
840
|
+
type: 'rect',
|
|
841
|
+
x: -12,
|
|
842
|
+
y: 1,
|
|
843
|
+
width: 20,
|
|
844
|
+
height: 5,
|
|
845
|
+
borderRadius: 2.5,
|
|
846
|
+
fill: 'transparent',
|
|
847
|
+
border: true,
|
|
848
|
+
borderWidth: 2,
|
|
849
|
+
opacity: 1
|
|
850
|
+
}]
|
|
851
|
+
};
|
|
852
|
+
|
|
853
|
+
// Test O: S-curve with 1px border (thinnest)
|
|
854
|
+
export const curveTestOData = {
|
|
855
|
+
color: ROUTES_ICON_COLOR,
|
|
856
|
+
bgColor: '#000',
|
|
857
|
+
elements: [{
|
|
858
|
+
type: 'rect',
|
|
859
|
+
x: -8,
|
|
860
|
+
y: -6,
|
|
861
|
+
width: 20,
|
|
862
|
+
height: 5,
|
|
863
|
+
borderRadius: 2.5,
|
|
864
|
+
fill: 'transparent',
|
|
865
|
+
border: true,
|
|
866
|
+
borderWidth: 1,
|
|
867
|
+
opacity: 1
|
|
868
|
+
}, {
|
|
869
|
+
type: 'rect',
|
|
870
|
+
x: -12,
|
|
871
|
+
y: 1,
|
|
872
|
+
width: 20,
|
|
873
|
+
height: 5,
|
|
874
|
+
borderRadius: 2.5,
|
|
875
|
+
fill: 'transparent',
|
|
876
|
+
border: true,
|
|
877
|
+
borderWidth: 1,
|
|
878
|
+
opacity: 1
|
|
879
|
+
}]
|
|
880
|
+
};
|
|
881
|
+
|
|
882
|
+
// Test P: S-curve with taller pills (more curve visible)
|
|
883
|
+
export const curveTestPData = {
|
|
884
|
+
color: ROUTES_ICON_COLOR,
|
|
885
|
+
bgColor: '#000',
|
|
886
|
+
elements: [{
|
|
887
|
+
type: 'rect',
|
|
888
|
+
x: -8,
|
|
889
|
+
y: -7,
|
|
890
|
+
width: 20,
|
|
891
|
+
height: 7,
|
|
892
|
+
borderRadius: 3.5,
|
|
893
|
+
fill: 'transparent',
|
|
894
|
+
border: true,
|
|
895
|
+
borderWidth: 1.5,
|
|
896
|
+
opacity: 1
|
|
897
|
+
}, {
|
|
898
|
+
type: 'rect',
|
|
899
|
+
x: -12,
|
|
900
|
+
y: 0,
|
|
901
|
+
width: 20,
|
|
902
|
+
height: 7,
|
|
903
|
+
borderRadius: 3.5,
|
|
904
|
+
fill: 'transparent',
|
|
905
|
+
border: true,
|
|
906
|
+
borderWidth: 1.5,
|
|
907
|
+
opacity: 1
|
|
908
|
+
}]
|
|
909
|
+
};
|
|
910
|
+
|
|
911
|
+
// Original Part 2: S-Curve Path (keeping for reference)
|
|
912
|
+
export const routePathIconData = {
|
|
913
|
+
color: ROUTES_ICON_COLOR,
|
|
914
|
+
bgColor: '#000',
|
|
915
|
+
elements: [{
|
|
916
|
+
type: 'smootharc',
|
|
917
|
+
cx: -3,
|
|
918
|
+
cy: -2,
|
|
919
|
+
r: 5,
|
|
920
|
+
stroke: 'color',
|
|
921
|
+
strokeWidth: 3,
|
|
922
|
+
opacity: 1,
|
|
923
|
+
portion: 'bottom'
|
|
924
|
+
}, {
|
|
925
|
+
type: 'smootharc',
|
|
926
|
+
cx: 3,
|
|
927
|
+
cy: 2,
|
|
928
|
+
r: 5,
|
|
929
|
+
stroke: 'color',
|
|
930
|
+
strokeWidth: 3,
|
|
931
|
+
opacity: 1,
|
|
932
|
+
portion: 'top'
|
|
933
|
+
}]
|
|
934
|
+
};
|
|
935
|
+
|
|
936
|
+
// Part 3: Inner Dot only (for testing)
|
|
937
|
+
export const routeDotIconData = {
|
|
938
|
+
color: ROUTES_ICON_COLOR,
|
|
939
|
+
bgColor: '#000',
|
|
940
|
+
elements: [
|
|
941
|
+
// Outer ring for reference
|
|
942
|
+
{
|
|
943
|
+
type: 'circle',
|
|
944
|
+
cx: 0,
|
|
945
|
+
cy: 0,
|
|
946
|
+
r: 8,
|
|
947
|
+
fill: 'color',
|
|
948
|
+
opacity: 0.3
|
|
949
|
+
},
|
|
950
|
+
// Inner dot
|
|
951
|
+
{
|
|
952
|
+
type: 'circle',
|
|
953
|
+
cx: 0,
|
|
954
|
+
cy: 0,
|
|
955
|
+
r: 3,
|
|
956
|
+
fill: 'bg',
|
|
957
|
+
opacity: 1
|
|
958
|
+
}]
|
|
959
|
+
};
|
|
960
|
+
|
|
961
|
+
// Part 4: Two Pins without path (positioning test)
|
|
962
|
+
export const routeTwoPinsIconData = {
|
|
963
|
+
color: ROUTES_ICON_COLOR,
|
|
964
|
+
bgColor: '#000',
|
|
965
|
+
elements: [
|
|
966
|
+
// === BOTTOM-LEFT PIN ===
|
|
967
|
+
{
|
|
968
|
+
type: 'circle',
|
|
969
|
+
cx: -6,
|
|
970
|
+
cy: 4,
|
|
971
|
+
r: 3.5,
|
|
972
|
+
fill: 'color',
|
|
973
|
+
opacity: 1
|
|
974
|
+
}, {
|
|
975
|
+
type: 'triangle',
|
|
976
|
+
x: -6,
|
|
977
|
+
y: 8.5,
|
|
978
|
+
size: 3.5,
|
|
979
|
+
direction: 'down',
|
|
980
|
+
fill: 'color',
|
|
981
|
+
opacity: 1
|
|
982
|
+
}, {
|
|
983
|
+
type: 'circle',
|
|
984
|
+
cx: -6,
|
|
985
|
+
cy: 4,
|
|
986
|
+
r: 1.4,
|
|
987
|
+
fill: 'bg',
|
|
988
|
+
opacity: 1
|
|
989
|
+
},
|
|
990
|
+
// === TOP-RIGHT PIN ===
|
|
991
|
+
{
|
|
992
|
+
type: 'circle',
|
|
993
|
+
cx: 6,
|
|
994
|
+
cy: -5,
|
|
995
|
+
r: 3.5,
|
|
996
|
+
fill: 'color',
|
|
997
|
+
opacity: 1
|
|
998
|
+
}, {
|
|
999
|
+
type: 'triangle',
|
|
1000
|
+
x: 6,
|
|
1001
|
+
y: -0.5,
|
|
1002
|
+
size: 3.5,
|
|
1003
|
+
direction: 'down',
|
|
1004
|
+
fill: 'color',
|
|
1005
|
+
opacity: 1
|
|
1006
|
+
}, {
|
|
1007
|
+
type: 'circle',
|
|
1008
|
+
cx: 6,
|
|
1009
|
+
cy: -5,
|
|
1010
|
+
r: 1.4,
|
|
1011
|
+
fill: 'bg',
|
|
1012
|
+
opacity: 1
|
|
1013
|
+
}]
|
|
1014
|
+
};
|
|
1015
|
+
|
|
1016
|
+
// ===========================================
|
|
1017
|
+
// ROUTES ICON (Custom satellite/network style)
|
|
1018
|
+
// ===========================================
|
|
1019
|
+
// Custom designed icon with satellite/orbit motif
|
|
1020
|
+
// Uses orange (#FF9F1C) as primary color to match route-events theme
|
|
1021
|
+
|
|
1022
|
+
export const routesIconData = {
|
|
1023
|
+
color: '#FF9F1C',
|
|
1024
|
+
// Orange - matching route-events theme
|
|
1025
|
+
bgColor: '#0a0a0f',
|
|
1026
|
+
elements: [
|
|
1027
|
+
// Main orbital circle (teal becomes orange)
|
|
1028
|
+
{
|
|
1029
|
+
type: 'circle',
|
|
1030
|
+
cx: 2.846049894151541,
|
|
1031
|
+
cy: 1.2649110640673518,
|
|
1032
|
+
r: 4.110960958218893,
|
|
1033
|
+
fill: '#FF9F1C',
|
|
1034
|
+
// Was #00e7eb, now orange
|
|
1035
|
+
scaleY: 0.94
|
|
1036
|
+
},
|
|
1037
|
+
// Satellite node 1
|
|
1038
|
+
{
|
|
1039
|
+
type: 'circle',
|
|
1040
|
+
cx: 6.00832755431992,
|
|
1041
|
+
cy: 6.324555320336758,
|
|
1042
|
+
r: 4,
|
|
1043
|
+
fill: 'color'
|
|
1044
|
+
},
|
|
1045
|
+
// Satellite node 2
|
|
1046
|
+
{
|
|
1047
|
+
type: 'circle',
|
|
1048
|
+
cx: 6.324555320336758,
|
|
1049
|
+
cy: -6.324555320336758,
|
|
1050
|
+
r: 3.794733192202055,
|
|
1051
|
+
fill: 'color',
|
|
1052
|
+
scaleY: 0.97
|
|
1053
|
+
},
|
|
1054
|
+
// Inner dot on satellite 2 (uses bg color)
|
|
1055
|
+
{
|
|
1056
|
+
type: 'circle',
|
|
1057
|
+
cx: 6.324555320336758,
|
|
1058
|
+
cy: -6.00832755431992,
|
|
1059
|
+
r: 1.5811388300841895,
|
|
1060
|
+
fill: 'bg'
|
|
1061
|
+
},
|
|
1062
|
+
// Satellite node 3
|
|
1063
|
+
{
|
|
1064
|
+
type: 'circle',
|
|
1065
|
+
cx: -6.324555320336758,
|
|
1066
|
+
cy: 3.478505426185217,
|
|
1067
|
+
r: 3.794733192202055,
|
|
1068
|
+
fill: 'color',
|
|
1069
|
+
scaleY: 0.97
|
|
1070
|
+
},
|
|
1071
|
+
// Inner dot on satellite 3 (uses bg color)
|
|
1072
|
+
{
|
|
1073
|
+
type: 'circle',
|
|
1074
|
+
cx: -6.324555320336758,
|
|
1075
|
+
cy: 3.478505426185217,
|
|
1076
|
+
r: 1.5811388300841895,
|
|
1077
|
+
fill: 'bg'
|
|
1078
|
+
},
|
|
1079
|
+
// Connection line 1
|
|
1080
|
+
{
|
|
1081
|
+
type: 'line',
|
|
1082
|
+
x1: -8.854377448471462,
|
|
1083
|
+
y1: 4.743416490252569,
|
|
1084
|
+
x2: -6.00832755431992,
|
|
1085
|
+
y2: 9.803060746521975,
|
|
1086
|
+
stroke: 'color',
|
|
1087
|
+
strokeWidth: 1.5
|
|
1088
|
+
},
|
|
1089
|
+
// Connection line 2
|
|
1090
|
+
{
|
|
1091
|
+
type: 'line',
|
|
1092
|
+
x1: -3.162277660168379,
|
|
1093
|
+
y1: 3.162277660168379,
|
|
1094
|
+
x2: -6.640783086353596,
|
|
1095
|
+
y2: 9.803060746521975,
|
|
1096
|
+
stroke: 'color',
|
|
1097
|
+
strokeWidth: 1.8
|
|
1098
|
+
},
|
|
1099
|
+
// Junction rect 1
|
|
1100
|
+
{
|
|
1101
|
+
type: 'rect',
|
|
1102
|
+
x: -7.273238618387272,
|
|
1103
|
+
y: 6.324555320336758,
|
|
1104
|
+
width: 1.8973665961010275,
|
|
1105
|
+
height: 2.2135943621178655,
|
|
1106
|
+
fill: 'color'
|
|
1107
|
+
},
|
|
1108
|
+
// Central line (uses bg color)
|
|
1109
|
+
{
|
|
1110
|
+
type: 'line',
|
|
1111
|
+
x1: 1.2649110640673518,
|
|
1112
|
+
y1: 1.2649110640673518,
|
|
1113
|
+
x2: 9.1706052144883,
|
|
1114
|
+
y2: 1.2649110640673518,
|
|
1115
|
+
stroke: 'bg',
|
|
1116
|
+
strokeWidth: 2.4
|
|
1117
|
+
},
|
|
1118
|
+
// Connection line 3
|
|
1119
|
+
{
|
|
1120
|
+
type: 'line',
|
|
1121
|
+
x1: 9.486832980505138,
|
|
1122
|
+
y1: -6.640783086353596,
|
|
1123
|
+
x2: 6.00832755431992,
|
|
1124
|
+
y2: 0,
|
|
1125
|
+
stroke: 'color',
|
|
1126
|
+
strokeWidth: 1.8
|
|
1127
|
+
},
|
|
1128
|
+
// Connection line 4
|
|
1129
|
+
{
|
|
1130
|
+
type: 'line',
|
|
1131
|
+
x1: 3.478505426185217,
|
|
1132
|
+
y1: -5.375872022286244,
|
|
1133
|
+
x2: 6.640783086353596,
|
|
1134
|
+
y2: 0,
|
|
1135
|
+
stroke: 'color',
|
|
1136
|
+
strokeWidth: 1.5
|
|
1137
|
+
},
|
|
1138
|
+
// Junction rect 2
|
|
1139
|
+
{
|
|
1140
|
+
type: 'rect',
|
|
1141
|
+
x: 5.692099788303082,
|
|
1142
|
+
y: -3.478505426185217,
|
|
1143
|
+
width: 1.8973665961010275,
|
|
1144
|
+
height: 2.2135943621178655,
|
|
1145
|
+
fill: 'color'
|
|
1146
|
+
},
|
|
1147
|
+
// Base rect (uses bg color)
|
|
1148
|
+
{
|
|
1149
|
+
type: 'rect',
|
|
1150
|
+
x: 2.846049894151541,
|
|
1151
|
+
y: 10,
|
|
1152
|
+
width: 6,
|
|
1153
|
+
height: 4,
|
|
1154
|
+
fill: 'bg'
|
|
1155
|
+
},
|
|
1156
|
+
// Horizontal divider line (uses bg color)
|
|
1157
|
+
{
|
|
1158
|
+
type: 'line',
|
|
1159
|
+
x1: -0.31622776601683794,
|
|
1160
|
+
y1: 6.324555320336758,
|
|
1161
|
+
x2: 7.58946638440411,
|
|
1162
|
+
y2: 6.324555320336758,
|
|
1163
|
+
stroke: 'bg',
|
|
1164
|
+
strokeWidth: 2.3
|
|
1165
|
+
},
|
|
1166
|
+
// Bottom bar
|
|
1167
|
+
{
|
|
1168
|
+
type: 'rect',
|
|
1169
|
+
x: -2.5298221281347035,
|
|
1170
|
+
y: 7.5,
|
|
1171
|
+
width: 7.273238618387272,
|
|
1172
|
+
height: 2.5,
|
|
1173
|
+
fill: 'color'
|
|
1174
|
+
}]
|
|
1175
|
+
};
|
|
1176
|
+
|
|
1177
|
+
// ===========================================
|
|
1178
|
+
// QUERY ICON (Query States Network)
|
|
1179
|
+
// ===========================================
|
|
1180
|
+
|
|
1181
|
+
export const QUERY_ICON_COLOR = '#FF3366'; // Red/Pink (React Query brand)
|
|
1182
|
+
|
|
1183
|
+
// Query state colors - MUST match packages/react-query/src/react-query/components/QuerySelector.tsx
|
|
1184
|
+
const QUERY_STATES = {
|
|
1185
|
+
fresh: '#10B981',
|
|
1186
|
+
// Green - data is current
|
|
1187
|
+
fetching: '#3B82F6',
|
|
1188
|
+
// Blue - loading
|
|
1189
|
+
stale: '#F59E0B',
|
|
1190
|
+
// Yellow/Amber - needs refresh
|
|
1191
|
+
paused: '#8B5CF6',
|
|
1192
|
+
// Purple - paused
|
|
1193
|
+
inactive: '#6B7280' // Gray - no observers
|
|
1194
|
+
};
|
|
1195
|
+
export const queryIconData = {
|
|
1196
|
+
color: QUERY_ICON_COLOR,
|
|
1197
|
+
bgColor: '#000',
|
|
1198
|
+
elements: [
|
|
1199
|
+
// === CONNECTION LINES (using line elements - much cleaner!) ===
|
|
1200
|
+
// Center to Fresh (top) - green
|
|
1201
|
+
{
|
|
1202
|
+
type: 'line',
|
|
1203
|
+
x1: 0,
|
|
1204
|
+
y1: 0,
|
|
1205
|
+
x2: 0,
|
|
1206
|
+
y2: -8,
|
|
1207
|
+
stroke: QUERY_STATES.fresh,
|
|
1208
|
+
strokeWidth: 1.2,
|
|
1209
|
+
opacity: 0.5
|
|
1210
|
+
},
|
|
1211
|
+
// Center to Fetching (top-right) - cyan
|
|
1212
|
+
{
|
|
1213
|
+
type: 'line',
|
|
1214
|
+
x1: 0,
|
|
1215
|
+
y1: 0,
|
|
1216
|
+
x2: 7.6,
|
|
1217
|
+
y2: -2.5,
|
|
1218
|
+
stroke: QUERY_STATES.fetching,
|
|
1219
|
+
strokeWidth: 1.2,
|
|
1220
|
+
opacity: 0.5
|
|
1221
|
+
},
|
|
1222
|
+
// Center to Stale (bottom-right) - yellow
|
|
1223
|
+
{
|
|
1224
|
+
type: 'line',
|
|
1225
|
+
x1: 0,
|
|
1226
|
+
y1: 0,
|
|
1227
|
+
x2: 4.7,
|
|
1228
|
+
y2: 6.5,
|
|
1229
|
+
stroke: QUERY_STATES.stale,
|
|
1230
|
+
strokeWidth: 1.2,
|
|
1231
|
+
opacity: 0.5
|
|
1232
|
+
},
|
|
1233
|
+
// Center to Paused (bottom-left) - purple
|
|
1234
|
+
{
|
|
1235
|
+
type: 'line',
|
|
1236
|
+
x1: 0,
|
|
1237
|
+
y1: 0,
|
|
1238
|
+
x2: -4.7,
|
|
1239
|
+
y2: 6.5,
|
|
1240
|
+
stroke: QUERY_STATES.paused,
|
|
1241
|
+
strokeWidth: 1.2,
|
|
1242
|
+
opacity: 0.5
|
|
1243
|
+
},
|
|
1244
|
+
// Center to Inactive (top-left) - gray
|
|
1245
|
+
{
|
|
1246
|
+
type: 'line',
|
|
1247
|
+
x1: 0,
|
|
1248
|
+
y1: 0,
|
|
1249
|
+
x2: -7.6,
|
|
1250
|
+
y2: -2.5,
|
|
1251
|
+
stroke: QUERY_STATES.inactive,
|
|
1252
|
+
strokeWidth: 1.2,
|
|
1253
|
+
opacity: 0.5
|
|
1254
|
+
},
|
|
1255
|
+
// === STATE NODES (5 query states in pentagon) ===
|
|
1256
|
+
// FRESH (top) - Green
|
|
1257
|
+
{
|
|
1258
|
+
type: 'circle',
|
|
1259
|
+
cx: 0,
|
|
1260
|
+
cy: -8,
|
|
1261
|
+
r: 2.2,
|
|
1262
|
+
fill: QUERY_STATES.fresh,
|
|
1263
|
+
opacity: 0.2
|
|
1264
|
+
}, {
|
|
1265
|
+
type: 'circle',
|
|
1266
|
+
cx: 0,
|
|
1267
|
+
cy: -8,
|
|
1268
|
+
r: 1.6,
|
|
1269
|
+
fill: QUERY_STATES.fresh,
|
|
1270
|
+
opacity: 0.9
|
|
1271
|
+
},
|
|
1272
|
+
// FETCHING (top-right) - Cyan
|
|
1273
|
+
{
|
|
1274
|
+
type: 'circle',
|
|
1275
|
+
cx: 7.6,
|
|
1276
|
+
cy: -2.5,
|
|
1277
|
+
r: 2.2,
|
|
1278
|
+
fill: QUERY_STATES.fetching,
|
|
1279
|
+
opacity: 0.2
|
|
1280
|
+
}, {
|
|
1281
|
+
type: 'circle',
|
|
1282
|
+
cx: 7.6,
|
|
1283
|
+
cy: -2.5,
|
|
1284
|
+
r: 1.6,
|
|
1285
|
+
fill: QUERY_STATES.fetching,
|
|
1286
|
+
opacity: 0.9
|
|
1287
|
+
},
|
|
1288
|
+
// STALE (bottom-right) - Yellow
|
|
1289
|
+
{
|
|
1290
|
+
type: 'circle',
|
|
1291
|
+
cx: 4.7,
|
|
1292
|
+
cy: 6.5,
|
|
1293
|
+
r: 2.2,
|
|
1294
|
+
fill: QUERY_STATES.stale,
|
|
1295
|
+
opacity: 0.2
|
|
1296
|
+
}, {
|
|
1297
|
+
type: 'circle',
|
|
1298
|
+
cx: 4.7,
|
|
1299
|
+
cy: 6.5,
|
|
1300
|
+
r: 1.6,
|
|
1301
|
+
fill: QUERY_STATES.stale,
|
|
1302
|
+
opacity: 0.9
|
|
1303
|
+
},
|
|
1304
|
+
// PAUSED (bottom-left) - Purple
|
|
1305
|
+
{
|
|
1306
|
+
type: 'circle',
|
|
1307
|
+
cx: -4.7,
|
|
1308
|
+
cy: 6.5,
|
|
1309
|
+
r: 2.2,
|
|
1310
|
+
fill: QUERY_STATES.paused,
|
|
1311
|
+
opacity: 0.2
|
|
1312
|
+
}, {
|
|
1313
|
+
type: 'circle',
|
|
1314
|
+
cx: -4.7,
|
|
1315
|
+
cy: 6.5,
|
|
1316
|
+
r: 1.6,
|
|
1317
|
+
fill: QUERY_STATES.paused,
|
|
1318
|
+
opacity: 0.9
|
|
1319
|
+
},
|
|
1320
|
+
// INACTIVE (top-left) - Gray
|
|
1321
|
+
{
|
|
1322
|
+
type: 'circle',
|
|
1323
|
+
cx: -7.6,
|
|
1324
|
+
cy: -2.5,
|
|
1325
|
+
r: 2.2,
|
|
1326
|
+
fill: QUERY_STATES.inactive,
|
|
1327
|
+
opacity: 0.2
|
|
1328
|
+
}, {
|
|
1329
|
+
type: 'circle',
|
|
1330
|
+
cx: -7.6,
|
|
1331
|
+
cy: -2.5,
|
|
1332
|
+
r: 1.6,
|
|
1333
|
+
fill: QUERY_STATES.inactive,
|
|
1334
|
+
opacity: 0.9
|
|
1335
|
+
},
|
|
1336
|
+
// === CENTER NODE (Your Query - cycles through states) ===
|
|
1337
|
+
// Outer glow ring
|
|
1338
|
+
{
|
|
1339
|
+
type: 'circle',
|
|
1340
|
+
cx: 0,
|
|
1341
|
+
cy: 0,
|
|
1342
|
+
r: 4.5,
|
|
1343
|
+
fill: 'color',
|
|
1344
|
+
opacity: 0.1
|
|
1345
|
+
},
|
|
1346
|
+
// Main center (React Query pink)
|
|
1347
|
+
{
|
|
1348
|
+
type: 'circle',
|
|
1349
|
+
cx: 0,
|
|
1350
|
+
cy: 0,
|
|
1351
|
+
r: 3,
|
|
1352
|
+
fill: 'color',
|
|
1353
|
+
opacity: 0.95
|
|
1354
|
+
},
|
|
1355
|
+
// Inner highlight
|
|
1356
|
+
{
|
|
1357
|
+
type: 'circle',
|
|
1358
|
+
cx: 0,
|
|
1359
|
+
cy: 0,
|
|
1360
|
+
r: 1.3,
|
|
1361
|
+
fill: '#fff',
|
|
1362
|
+
opacity: 0.35
|
|
1363
|
+
}]
|
|
1364
|
+
};
|
|
1365
|
+
|
|
1366
|
+
// ===========================================
|
|
1367
|
+
// HIGHLIGHTER ICON (Custom highlight marker style)
|
|
1368
|
+
// ===========================================
|
|
1369
|
+
// Custom designed highlighter icon for render tracking
|
|
1370
|
+
// Uses emerald green (#10B981) to match highlight-updates theme
|
|
1371
|
+
|
|
1372
|
+
export const HIGHLIGHTER_ICON_COLOR = '#10B981'; // Emerald green (same as highlight-updates)
|
|
1373
|
+
// Legacy alias for backward compatibility
|
|
1374
|
+
export const RENDERS_ICON_COLOR = HIGHLIGHTER_ICON_COLOR;
|
|
1375
|
+
export const highlighterIconData = {
|
|
1376
|
+
color: HIGHLIGHTER_ICON_COLOR,
|
|
1377
|
+
bgColor: '#0a0a0f',
|
|
1378
|
+
elements: [
|
|
1379
|
+
// Decorative diamond shape
|
|
1380
|
+
{
|
|
1381
|
+
type: 'rect',
|
|
1382
|
+
x: -9.1706052144883,
|
|
1383
|
+
y: 5.692099788303082,
|
|
1384
|
+
width: 3.478505426185217,
|
|
1385
|
+
height: 3.478505426185217,
|
|
1386
|
+
fill: 'color',
|
|
1387
|
+
rotation: 45
|
|
1388
|
+
},
|
|
1389
|
+
// Base block (uses bg color)
|
|
1390
|
+
{
|
|
1391
|
+
type: 'rect',
|
|
1392
|
+
x: -10.119288512538814,
|
|
1393
|
+
y: 8.538149682454623,
|
|
1394
|
+
width: 6,
|
|
1395
|
+
height: 4,
|
|
1396
|
+
fill: 'bg'
|
|
1397
|
+
},
|
|
1398
|
+
// Horizontal accent line
|
|
1399
|
+
{
|
|
1400
|
+
type: 'line',
|
|
1401
|
+
x1: -10.119288512538814,
|
|
1402
|
+
y1: 7.905694150420948,
|
|
1403
|
+
x2: -6.640783086353596,
|
|
1404
|
+
y2: 7.905694150420948,
|
|
1405
|
+
stroke: 'color',
|
|
1406
|
+
strokeWidth: 1.5
|
|
1407
|
+
},
|
|
1408
|
+
// Diagonal stroke 1
|
|
1409
|
+
{
|
|
1410
|
+
type: 'line',
|
|
1411
|
+
x1: -6.957010852370434,
|
|
1412
|
+
y1: 5.059644256269407,
|
|
1413
|
+
x2: -2.846049894151541,
|
|
1414
|
+
y2: 5.059644256269407,
|
|
1415
|
+
stroke: 'color',
|
|
1416
|
+
strokeWidth: 1.5,
|
|
1417
|
+
rotation: 44
|
|
1418
|
+
},
|
|
1419
|
+
// Cross stroke 1
|
|
1420
|
+
{
|
|
1421
|
+
type: 'line',
|
|
1422
|
+
x1: -5.91,
|
|
1423
|
+
y1: -4.11,
|
|
1424
|
+
x2: 7.27,
|
|
1425
|
+
y2: -4.33,
|
|
1426
|
+
stroke: 'color',
|
|
1427
|
+
strokeWidth: 2.1,
|
|
1428
|
+
rotation: 145
|
|
1429
|
+
},
|
|
1430
|
+
// Cross stroke 2
|
|
1431
|
+
{
|
|
1432
|
+
type: 'line',
|
|
1433
|
+
x1: -1.56,
|
|
1434
|
+
y1: 1.05,
|
|
1435
|
+
x2: 10.435516278555651,
|
|
1436
|
+
y2: -2.846049894151541,
|
|
1437
|
+
stroke: 'color',
|
|
1438
|
+
strokeWidth: 2.1,
|
|
1439
|
+
rotation: 145
|
|
1440
|
+
},
|
|
1441
|
+
// Diagonal stroke 2
|
|
1442
|
+
{
|
|
1443
|
+
type: 'line',
|
|
1444
|
+
x1: 4.110960958218893,
|
|
1445
|
+
y1: -6.640783086353596,
|
|
1446
|
+
x2: 9.486832980505138,
|
|
1447
|
+
y2: -6.640783086353596,
|
|
1448
|
+
stroke: 'color',
|
|
1449
|
+
strokeWidth: 2.2,
|
|
1450
|
+
rotation: 44
|
|
1451
|
+
},
|
|
1452
|
+
// Main highlight stroke
|
|
1453
|
+
{
|
|
1454
|
+
type: 'line',
|
|
1455
|
+
x1: -4.743416490252569,
|
|
1456
|
+
y1: -1.5811388300841895,
|
|
1457
|
+
x2: 1.5811388300841895,
|
|
1458
|
+
y2: 4.743416490252569,
|
|
1459
|
+
stroke: 'color',
|
|
1460
|
+
strokeWidth: 2.9
|
|
1461
|
+
},
|
|
1462
|
+
// Accent stroke 1
|
|
1463
|
+
{
|
|
1464
|
+
type: 'line',
|
|
1465
|
+
x1: -6.957010852370434,
|
|
1466
|
+
y1: 1.2649110640673518,
|
|
1467
|
+
x2: -2.2135943621178655,
|
|
1468
|
+
y2: 2.2135943621178655,
|
|
1469
|
+
stroke: 'color',
|
|
1470
|
+
strokeWidth: 1.5,
|
|
1471
|
+
rotation: 77
|
|
1472
|
+
},
|
|
1473
|
+
// Accent stroke 2
|
|
1474
|
+
{
|
|
1475
|
+
type: 'line',
|
|
1476
|
+
x1: -1.2649110640673518,
|
|
1477
|
+
y1: 0.9486832980505138,
|
|
1478
|
+
x2: -2.5298221281347035,
|
|
1479
|
+
y2: 7.905694150420948,
|
|
1480
|
+
stroke: 'color',
|
|
1481
|
+
strokeWidth: 1.5,
|
|
1482
|
+
rotation: 77
|
|
1483
|
+
},
|
|
1484
|
+
// Central highlighter body
|
|
1485
|
+
{
|
|
1486
|
+
type: 'rect',
|
|
1487
|
+
x: -4.427188724235731,
|
|
1488
|
+
y: 0.9486832980505138,
|
|
1489
|
+
width: 3.794733192202055,
|
|
1490
|
+
height: 4.110960958218893,
|
|
1491
|
+
fill: 'color'
|
|
1492
|
+
},
|
|
1493
|
+
// Diagonal accent 1
|
|
1494
|
+
{
|
|
1495
|
+
type: 'line',
|
|
1496
|
+
x1: -7.58946638440411,
|
|
1497
|
+
y1: 1.8973665961010275,
|
|
1498
|
+
x2: -0.9486832980505138,
|
|
1499
|
+
y2: 1.8973665961010275,
|
|
1500
|
+
stroke: 'color',
|
|
1501
|
+
strokeWidth: 1.5,
|
|
1502
|
+
rotation: -48
|
|
1503
|
+
},
|
|
1504
|
+
// Diagonal accent 2
|
|
1505
|
+
{
|
|
1506
|
+
type: 'line',
|
|
1507
|
+
x1: -5.375872022286244,
|
|
1508
|
+
y1: 4.110960958218893,
|
|
1509
|
+
x2: 1.2649110640673518,
|
|
1510
|
+
y2: 4.110960958218893,
|
|
1511
|
+
stroke: 'color',
|
|
1512
|
+
strokeWidth: 1.5,
|
|
1513
|
+
rotation: -48
|
|
1514
|
+
}]
|
|
1515
|
+
};
|
|
1516
|
+
|
|
1517
|
+
// Legacy alias for backward compatibility
|
|
1518
|
+
export const rendersIconData = highlighterIconData;
|
|
1519
|
+
|
|
1520
|
+
// ===========================================
|
|
1521
|
+
// BENCHMARK ICON (Stopwatch)
|
|
1522
|
+
// ===========================================
|
|
1523
|
+
|
|
1524
|
+
export const BENCHMARK_ICON_COLOR = '#F59E0B'; // Amber/Orange
|
|
1525
|
+
|
|
1526
|
+
export const benchmarkIconData = {
|
|
1527
|
+
color: BENCHMARK_ICON_COLOR,
|
|
1528
|
+
bgColor: '#000',
|
|
1529
|
+
elements: [
|
|
1530
|
+
// === STOPWATCH BODY ===
|
|
1531
|
+
// Outer circle (stopwatch face)
|
|
1532
|
+
{
|
|
1533
|
+
type: 'circle',
|
|
1534
|
+
cx: 0,
|
|
1535
|
+
cy: 1,
|
|
1536
|
+
r: 7,
|
|
1537
|
+
border: true,
|
|
1538
|
+
borderWidth: 1.5,
|
|
1539
|
+
opacity: 0.9
|
|
1540
|
+
},
|
|
1541
|
+
// Inner glow
|
|
1542
|
+
{
|
|
1543
|
+
type: 'circle',
|
|
1544
|
+
cx: 0,
|
|
1545
|
+
cy: 1,
|
|
1546
|
+
r: 5,
|
|
1547
|
+
fill: 'color',
|
|
1548
|
+
opacity: 0.15
|
|
1549
|
+
},
|
|
1550
|
+
// === BUTTON (top) ===
|
|
1551
|
+
{
|
|
1552
|
+
type: 'rect',
|
|
1553
|
+
x: -2,
|
|
1554
|
+
y: -10,
|
|
1555
|
+
width: 4,
|
|
1556
|
+
height: 3,
|
|
1557
|
+
borderRadius: 1,
|
|
1558
|
+
fill: 'color',
|
|
1559
|
+
opacity: 0.9
|
|
1560
|
+
},
|
|
1561
|
+
// Crown/stem connecting button to clock
|
|
1562
|
+
{
|
|
1563
|
+
type: 'rect',
|
|
1564
|
+
x: -1,
|
|
1565
|
+
y: -7.5,
|
|
1566
|
+
width: 2,
|
|
1567
|
+
height: 2,
|
|
1568
|
+
fill: 'color',
|
|
1569
|
+
opacity: 0.9
|
|
1570
|
+
},
|
|
1571
|
+
// === STOPWATCH HAND ===
|
|
1572
|
+
// Hand pointing to ~10 o'clock position
|
|
1573
|
+
{
|
|
1574
|
+
type: 'rect',
|
|
1575
|
+
x: -0.75,
|
|
1576
|
+
y: -4,
|
|
1577
|
+
width: 1.5,
|
|
1578
|
+
height: 5,
|
|
1579
|
+
borderRadius: 1,
|
|
1580
|
+
fill: 'color',
|
|
1581
|
+
opacity: 0.9,
|
|
1582
|
+
rotation: -45,
|
|
1583
|
+
rotateFromCenter: true
|
|
1584
|
+
},
|
|
1585
|
+
// === CENTER DOT ===
|
|
1586
|
+
{
|
|
1587
|
+
type: 'circle',
|
|
1588
|
+
cx: 0,
|
|
1589
|
+
cy: 1,
|
|
1590
|
+
r: 1,
|
|
1591
|
+
fill: 'color',
|
|
1592
|
+
opacity: 0.9
|
|
1593
|
+
},
|
|
1594
|
+
// === TICK MARKS (hour indicators) ===
|
|
1595
|
+
// 12 o'clock
|
|
1596
|
+
{
|
|
1597
|
+
type: 'rect',
|
|
1598
|
+
x: -0.5,
|
|
1599
|
+
y: -5,
|
|
1600
|
+
width: 1,
|
|
1601
|
+
height: 2,
|
|
1602
|
+
fill: 'color',
|
|
1603
|
+
opacity: 0.5
|
|
1604
|
+
},
|
|
1605
|
+
// 3 o'clock
|
|
1606
|
+
{
|
|
1607
|
+
type: 'rect',
|
|
1608
|
+
x: 4,
|
|
1609
|
+
y: 0.5,
|
|
1610
|
+
width: 2,
|
|
1611
|
+
height: 1,
|
|
1612
|
+
fill: 'color',
|
|
1613
|
+
opacity: 0.5
|
|
1614
|
+
},
|
|
1615
|
+
// 6 o'clock
|
|
1616
|
+
{
|
|
1617
|
+
type: 'rect',
|
|
1618
|
+
x: -0.5,
|
|
1619
|
+
y: 5,
|
|
1620
|
+
width: 1,
|
|
1621
|
+
height: 2,
|
|
1622
|
+
fill: 'color',
|
|
1623
|
+
opacity: 0.5
|
|
1624
|
+
},
|
|
1625
|
+
// 9 o'clock
|
|
1626
|
+
{
|
|
1627
|
+
type: 'rect',
|
|
1628
|
+
x: -6,
|
|
1629
|
+
y: 0.5,
|
|
1630
|
+
width: 2,
|
|
1631
|
+
height: 1,
|
|
1632
|
+
fill: 'color',
|
|
1633
|
+
opacity: 0.5
|
|
1634
|
+
}]
|
|
1635
|
+
};
|
|
1636
|
+
|
|
1637
|
+
// ===========================================
|
|
1638
|
+
// SENTRY ICON (Bug)
|
|
1639
|
+
// ===========================================
|
|
1640
|
+
|
|
1641
|
+
export const SENTRY_ICON_COLOR = '#FF3366'; // Red/Pink (Sentry brand)
|
|
1642
|
+
|
|
1643
|
+
export const sentryIconData = {
|
|
1644
|
+
color: SENTRY_ICON_COLOR,
|
|
1645
|
+
bgColor: '#000',
|
|
1646
|
+
elements: [
|
|
1647
|
+
// === BUG GLOW (behind) ===
|
|
1648
|
+
{
|
|
1649
|
+
type: 'circle',
|
|
1650
|
+
cx: 0,
|
|
1651
|
+
cy: 1,
|
|
1652
|
+
r: 8,
|
|
1653
|
+
fill: 'color',
|
|
1654
|
+
opacity: 0.15
|
|
1655
|
+
},
|
|
1656
|
+
// === BUG BODY ===
|
|
1657
|
+
// Main oval body
|
|
1658
|
+
{
|
|
1659
|
+
type: 'rect',
|
|
1660
|
+
x: -6,
|
|
1661
|
+
y: -4,
|
|
1662
|
+
width: 12,
|
|
1663
|
+
height: 14,
|
|
1664
|
+
borderRadius: 6,
|
|
1665
|
+
fill: 'color',
|
|
1666
|
+
opacity: 0.9
|
|
1667
|
+
},
|
|
1668
|
+
// === BUG HEAD ===
|
|
1669
|
+
{
|
|
1670
|
+
type: 'rect',
|
|
1671
|
+
x: -4,
|
|
1672
|
+
y: -9,
|
|
1673
|
+
width: 8,
|
|
1674
|
+
height: 6,
|
|
1675
|
+
borderRadius: 4,
|
|
1676
|
+
fill: 'color',
|
|
1677
|
+
opacity: 0.95
|
|
1678
|
+
},
|
|
1679
|
+
// === ANTENNAE ===
|
|
1680
|
+
// Left antenna
|
|
1681
|
+
{
|
|
1682
|
+
type: 'rect',
|
|
1683
|
+
x: -3,
|
|
1684
|
+
y: -12,
|
|
1685
|
+
width: 0.8,
|
|
1686
|
+
height: 4,
|
|
1687
|
+
fill: 'color',
|
|
1688
|
+
opacity: 0.7,
|
|
1689
|
+
rotation: -15
|
|
1690
|
+
}, {
|
|
1691
|
+
type: 'circle',
|
|
1692
|
+
cx: -4,
|
|
1693
|
+
cy: -12,
|
|
1694
|
+
r: 1.2,
|
|
1695
|
+
fill: 'color',
|
|
1696
|
+
opacity: 0.6
|
|
1697
|
+
},
|
|
1698
|
+
// Right antenna
|
|
1699
|
+
{
|
|
1700
|
+
type: 'rect',
|
|
1701
|
+
x: 2.2,
|
|
1702
|
+
y: -12,
|
|
1703
|
+
width: 0.8,
|
|
1704
|
+
height: 4,
|
|
1705
|
+
fill: 'color',
|
|
1706
|
+
opacity: 0.7,
|
|
1707
|
+
rotation: 15
|
|
1708
|
+
}, {
|
|
1709
|
+
type: 'circle',
|
|
1710
|
+
cx: 4,
|
|
1711
|
+
cy: -12,
|
|
1712
|
+
r: 1.2,
|
|
1713
|
+
fill: 'color',
|
|
1714
|
+
opacity: 0.6
|
|
1715
|
+
},
|
|
1716
|
+
// === LEGS (3 per side) ===
|
|
1717
|
+
// Left legs
|
|
1718
|
+
{
|
|
1719
|
+
type: 'rect',
|
|
1720
|
+
x: -10,
|
|
1721
|
+
y: -2,
|
|
1722
|
+
width: 4,
|
|
1723
|
+
height: 1,
|
|
1724
|
+
fill: 'color',
|
|
1725
|
+
opacity: 0.8,
|
|
1726
|
+
rotation: -20
|
|
1727
|
+
}, {
|
|
1728
|
+
type: 'rect',
|
|
1729
|
+
x: -10,
|
|
1730
|
+
y: 1,
|
|
1731
|
+
width: 4,
|
|
1732
|
+
height: 1,
|
|
1733
|
+
fill: 'color',
|
|
1734
|
+
opacity: 0.8,
|
|
1735
|
+
rotation: -10
|
|
1736
|
+
}, {
|
|
1737
|
+
type: 'rect',
|
|
1738
|
+
x: -10,
|
|
1739
|
+
y: 4,
|
|
1740
|
+
width: 4,
|
|
1741
|
+
height: 1,
|
|
1742
|
+
fill: 'color',
|
|
1743
|
+
opacity: 0.8,
|
|
1744
|
+
rotation: 10
|
|
1745
|
+
},
|
|
1746
|
+
// Right legs
|
|
1747
|
+
{
|
|
1748
|
+
type: 'rect',
|
|
1749
|
+
x: 6,
|
|
1750
|
+
y: -2,
|
|
1751
|
+
width: 4,
|
|
1752
|
+
height: 1,
|
|
1753
|
+
fill: 'color',
|
|
1754
|
+
opacity: 0.8,
|
|
1755
|
+
rotation: 20
|
|
1756
|
+
}, {
|
|
1757
|
+
type: 'rect',
|
|
1758
|
+
x: 6,
|
|
1759
|
+
y: 1,
|
|
1760
|
+
width: 4,
|
|
1761
|
+
height: 1,
|
|
1762
|
+
fill: 'color',
|
|
1763
|
+
opacity: 0.8,
|
|
1764
|
+
rotation: 10
|
|
1765
|
+
}, {
|
|
1766
|
+
type: 'rect',
|
|
1767
|
+
x: 6,
|
|
1768
|
+
y: 4,
|
|
1769
|
+
width: 4,
|
|
1770
|
+
height: 1,
|
|
1771
|
+
fill: 'color',
|
|
1772
|
+
opacity: 0.8,
|
|
1773
|
+
rotation: -10
|
|
1774
|
+
},
|
|
1775
|
+
// === CENTER HIGHLIGHT ===
|
|
1776
|
+
{
|
|
1777
|
+
type: 'circle',
|
|
1778
|
+
cx: 0,
|
|
1779
|
+
cy: 1,
|
|
1780
|
+
r: 1,
|
|
1781
|
+
fill: '#fff',
|
|
1782
|
+
opacity: 0.3
|
|
1783
|
+
}]
|
|
1784
|
+
};
|
|
1785
|
+
|
|
1786
|
+
// ===========================================
|
|
1787
|
+
// WIFI ICON (Signal Arcs)
|
|
1788
|
+
// ===========================================
|
|
1789
|
+
|
|
1790
|
+
export const WIFI_ICON_COLOR = '#00D4FF'; // Cyan
|
|
1791
|
+
|
|
1792
|
+
/**
|
|
1793
|
+
* WiFi Icon using the "clever trick" - smooth arcs via border trick
|
|
1794
|
+
*
|
|
1795
|
+
* Uses IconSmoothArc which creates perfect anti-aliased curves by using
|
|
1796
|
+
* bordered circles with partial borders hidden. This is the same technique
|
|
1797
|
+
* used in the shared-ui WifiIcon for smooth, professional-looking arcs.
|
|
1798
|
+
*
|
|
1799
|
+
* The arcs use portion: 'top' centered at the signal dot position,
|
|
1800
|
+
* which shows the top portion of each circle - creating WiFi-style
|
|
1801
|
+
* arcs curving upward from the signal source.
|
|
1802
|
+
*/
|
|
1803
|
+
export const wifiIconData = {
|
|
1804
|
+
color: WIFI_ICON_COLOR,
|
|
1805
|
+
bgColor: '#000',
|
|
1806
|
+
elements: [
|
|
1807
|
+
// === CENTER DOT (signal source) ===
|
|
1808
|
+
{
|
|
1809
|
+
type: 'circle',
|
|
1810
|
+
cx: 0,
|
|
1811
|
+
cy: 6,
|
|
1812
|
+
r: 2,
|
|
1813
|
+
fill: 'color',
|
|
1814
|
+
opacity: 1
|
|
1815
|
+
},
|
|
1816
|
+
// === SIGNAL ARCS (using smootharc - the "clever trick"!) ===
|
|
1817
|
+
// Uses border trick for perfect anti-aliased curves instead of line segments.
|
|
1818
|
+
// portion: 'top' shows the top half of the circle, creating upward-curving arcs.
|
|
1819
|
+
|
|
1820
|
+
// Arc 1 (innermost)
|
|
1821
|
+
{
|
|
1822
|
+
type: 'smootharc',
|
|
1823
|
+
cx: 0,
|
|
1824
|
+
cy: 6,
|
|
1825
|
+
r: 5,
|
|
1826
|
+
stroke: 'color',
|
|
1827
|
+
strokeWidth: 2,
|
|
1828
|
+
opacity: 0.9,
|
|
1829
|
+
portion: 'top'
|
|
1830
|
+
},
|
|
1831
|
+
// Arc 2 (middle)
|
|
1832
|
+
{
|
|
1833
|
+
type: 'smootharc',
|
|
1834
|
+
cx: 0,
|
|
1835
|
+
cy: 6,
|
|
1836
|
+
r: 8,
|
|
1837
|
+
stroke: 'color',
|
|
1838
|
+
strokeWidth: 2,
|
|
1839
|
+
opacity: 0.7,
|
|
1840
|
+
portion: 'top'
|
|
1841
|
+
},
|
|
1842
|
+
// Arc 3 (outermost)
|
|
1843
|
+
{
|
|
1844
|
+
type: 'smootharc',
|
|
1845
|
+
cx: 0,
|
|
1846
|
+
cy: 6,
|
|
1847
|
+
r: 11,
|
|
1848
|
+
stroke: 'color',
|
|
1849
|
+
strokeWidth: 2,
|
|
1850
|
+
opacity: 0.5,
|
|
1851
|
+
portion: 'top'
|
|
1852
|
+
}]
|
|
1853
|
+
};
|
|
1854
|
+
|
|
1855
|
+
// ===========================================
|
|
1856
|
+
// HIGHLIGHT ICON (Render Pulse/Stack Pulse)
|
|
1857
|
+
// ===========================================
|
|
1858
|
+
|
|
1859
|
+
export const HIGHLIGHT_ICON_COLOR = '#10B981'; // Green (same as renders)
|
|
1860
|
+
|
|
1861
|
+
export const highlightIconData = {
|
|
1862
|
+
color: HIGHLIGHT_ICON_COLOR,
|
|
1863
|
+
bgColor: '#000',
|
|
1864
|
+
elements: [
|
|
1865
|
+
// === PULSE RINGS (outer to inner) ===
|
|
1866
|
+
// Outer ring
|
|
1867
|
+
{
|
|
1868
|
+
type: 'rect',
|
|
1869
|
+
x: -10,
|
|
1870
|
+
y: -10,
|
|
1871
|
+
width: 20,
|
|
1872
|
+
height: 20,
|
|
1873
|
+
borderRadius: 3,
|
|
1874
|
+
border: true,
|
|
1875
|
+
borderWidth: 1.5,
|
|
1876
|
+
opacity: 0.2
|
|
1877
|
+
},
|
|
1878
|
+
// Middle ring
|
|
1879
|
+
{
|
|
1880
|
+
type: 'rect',
|
|
1881
|
+
x: -7.5,
|
|
1882
|
+
y: -7.5,
|
|
1883
|
+
width: 15,
|
|
1884
|
+
height: 15,
|
|
1885
|
+
borderRadius: 2.5,
|
|
1886
|
+
border: true,
|
|
1887
|
+
borderWidth: 1.5,
|
|
1888
|
+
opacity: 0.4
|
|
1889
|
+
},
|
|
1890
|
+
// === INNER COMPONENT BOX ===
|
|
1891
|
+
// Glow behind
|
|
1892
|
+
{
|
|
1893
|
+
type: 'rect',
|
|
1894
|
+
x: -6,
|
|
1895
|
+
y: -6,
|
|
1896
|
+
width: 12,
|
|
1897
|
+
height: 12,
|
|
1898
|
+
borderRadius: 2,
|
|
1899
|
+
fill: 'color',
|
|
1900
|
+
opacity: 0.15
|
|
1901
|
+
},
|
|
1902
|
+
// Main component box
|
|
1903
|
+
{
|
|
1904
|
+
type: 'rect',
|
|
1905
|
+
x: -5,
|
|
1906
|
+
y: -5,
|
|
1907
|
+
width: 10,
|
|
1908
|
+
height: 10,
|
|
1909
|
+
borderRadius: 1.5,
|
|
1910
|
+
fill: 'color',
|
|
1911
|
+
opacity: 0.9
|
|
1912
|
+
},
|
|
1913
|
+
// Inner screen
|
|
1914
|
+
{
|
|
1915
|
+
type: 'rect',
|
|
1916
|
+
x: -3.5,
|
|
1917
|
+
y: -3.5,
|
|
1918
|
+
width: 7,
|
|
1919
|
+
height: 7,
|
|
1920
|
+
borderRadius: 1,
|
|
1921
|
+
fill: '#000',
|
|
1922
|
+
opacity: 0.4
|
|
1923
|
+
},
|
|
1924
|
+
// === CONTENT LINES inside component ===
|
|
1925
|
+
{
|
|
1926
|
+
type: 'rect',
|
|
1927
|
+
x: -2,
|
|
1928
|
+
y: -2,
|
|
1929
|
+
width: 4,
|
|
1930
|
+
height: 1,
|
|
1931
|
+
borderRadius: 0.5,
|
|
1932
|
+
fill: 'color',
|
|
1933
|
+
opacity: 0.7
|
|
1934
|
+
}, {
|
|
1935
|
+
type: 'rect',
|
|
1936
|
+
x: -2,
|
|
1937
|
+
y: 0,
|
|
1938
|
+
width: 3,
|
|
1939
|
+
height: 1,
|
|
1940
|
+
borderRadius: 0.5,
|
|
1941
|
+
fill: 'color',
|
|
1942
|
+
opacity: 0.5
|
|
1943
|
+
}, {
|
|
1944
|
+
type: 'rect',
|
|
1945
|
+
x: -2,
|
|
1946
|
+
y: 2,
|
|
1947
|
+
width: 2,
|
|
1948
|
+
height: 1,
|
|
1949
|
+
borderRadius: 0.5,
|
|
1950
|
+
fill: 'color',
|
|
1951
|
+
opacity: 0.4
|
|
1952
|
+
},
|
|
1953
|
+
// === TOP HIGHLIGHT ===
|
|
1954
|
+
{
|
|
1955
|
+
type: 'rect',
|
|
1956
|
+
x: -3,
|
|
1957
|
+
y: -4.5,
|
|
1958
|
+
width: 6,
|
|
1959
|
+
height: 1.5,
|
|
1960
|
+
borderRadius: 0.75,
|
|
1961
|
+
fill: '#fff',
|
|
1962
|
+
opacity: 0.2
|
|
1963
|
+
},
|
|
1964
|
+
// === CORNER DOTS ===
|
|
1965
|
+
{
|
|
1966
|
+
type: 'circle',
|
|
1967
|
+
cx: -8,
|
|
1968
|
+
cy: -8,
|
|
1969
|
+
r: 1,
|
|
1970
|
+
fill: 'color',
|
|
1971
|
+
opacity: 0.6
|
|
1972
|
+
}, {
|
|
1973
|
+
type: 'circle',
|
|
1974
|
+
cx: 8,
|
|
1975
|
+
cy: -8,
|
|
1976
|
+
r: 1,
|
|
1977
|
+
fill: 'color',
|
|
1978
|
+
opacity: 0.6
|
|
1979
|
+
}, {
|
|
1980
|
+
type: 'circle',
|
|
1981
|
+
cx: -8,
|
|
1982
|
+
cy: 8,
|
|
1983
|
+
r: 1,
|
|
1984
|
+
fill: 'color',
|
|
1985
|
+
opacity: 0.6
|
|
1986
|
+
}, {
|
|
1987
|
+
type: 'circle',
|
|
1988
|
+
cx: 8,
|
|
1989
|
+
cy: 8,
|
|
1990
|
+
r: 1,
|
|
1991
|
+
fill: 'color',
|
|
1992
|
+
opacity: 0.6
|
|
1993
|
+
}]
|
|
1994
|
+
};
|
|
1995
|
+
|
|
1996
|
+
// ===========================================
|
|
1997
|
+
// EVENTS ICON (Unified Timeline)
|
|
1998
|
+
// ===========================================
|
|
1999
|
+
// Shows a vertical timeline with event cards - representing
|
|
2000
|
+
// the unified event timeline that aggregates events from all sources
|
|
2001
|
+
|
|
2002
|
+
export const EVENTS_ICON_COLOR = '#00D4FF'; // Cyan (data/events feel)
|
|
2003
|
+
|
|
2004
|
+
export const eventsIconData = {
|
|
2005
|
+
color: EVENTS_ICON_COLOR,
|
|
2006
|
+
bgColor: '#0a0a0f',
|
|
2007
|
+
elements: [
|
|
2008
|
+
// === TIMELINE NODES (left side) - scaled up ===
|
|
2009
|
+
// Node 1 (top)
|
|
2010
|
+
{
|
|
2011
|
+
type: 'circle',
|
|
2012
|
+
cx: -7,
|
|
2013
|
+
cy: -7,
|
|
2014
|
+
r: 2.5,
|
|
2015
|
+
fill: 'color',
|
|
2016
|
+
opacity: 1
|
|
2017
|
+
}, {
|
|
2018
|
+
type: 'circle',
|
|
2019
|
+
cx: -7,
|
|
2020
|
+
cy: -7,
|
|
2021
|
+
r: 1.4,
|
|
2022
|
+
fill: '#000000',
|
|
2023
|
+
opacity: 1
|
|
2024
|
+
},
|
|
2025
|
+
// Node 2 (middle)
|
|
2026
|
+
{
|
|
2027
|
+
type: 'circle',
|
|
2028
|
+
cx: -7,
|
|
2029
|
+
cy: 0,
|
|
2030
|
+
r: 2.5,
|
|
2031
|
+
fill: 'color',
|
|
2032
|
+
opacity: 1
|
|
2033
|
+
}, {
|
|
2034
|
+
type: 'circle',
|
|
2035
|
+
cx: -7,
|
|
2036
|
+
cy: 0,
|
|
2037
|
+
r: 1.4,
|
|
2038
|
+
fill: '#000000',
|
|
2039
|
+
opacity: 1
|
|
2040
|
+
},
|
|
2041
|
+
// Node 3 (bottom)
|
|
2042
|
+
{
|
|
2043
|
+
type: 'circle',
|
|
2044
|
+
cx: -7,
|
|
2045
|
+
cy: 7,
|
|
2046
|
+
r: 2.5,
|
|
2047
|
+
fill: 'color',
|
|
2048
|
+
opacity: 1
|
|
2049
|
+
}, {
|
|
2050
|
+
type: 'circle',
|
|
2051
|
+
cx: -7,
|
|
2052
|
+
cy: 7,
|
|
2053
|
+
r: 1.4,
|
|
2054
|
+
fill: '#000000',
|
|
2055
|
+
opacity: 1
|
|
2056
|
+
},
|
|
2057
|
+
// === VERTICAL TIMELINE LINES - thicker ===
|
|
2058
|
+
{
|
|
2059
|
+
type: 'line',
|
|
2060
|
+
x1: -7,
|
|
2061
|
+
y1: -4.2,
|
|
2062
|
+
x2: -7,
|
|
2063
|
+
y2: -2.8,
|
|
2064
|
+
stroke: 'color',
|
|
2065
|
+
strokeWidth: 1.5,
|
|
2066
|
+
opacity: 0.8
|
|
2067
|
+
}, {
|
|
2068
|
+
type: 'line',
|
|
2069
|
+
x1: -7,
|
|
2070
|
+
y1: 2.8,
|
|
2071
|
+
x2: -7,
|
|
2072
|
+
y2: 4.2,
|
|
2073
|
+
stroke: 'color',
|
|
2074
|
+
strokeWidth: 1.5,
|
|
2075
|
+
opacity: 0.8
|
|
2076
|
+
},
|
|
2077
|
+
// === HORIZONTAL CONNECTOR LINES (to cards) - thicker ===
|
|
2078
|
+
{
|
|
2079
|
+
type: 'line',
|
|
2080
|
+
x1: -4.2,
|
|
2081
|
+
y1: -7,
|
|
2082
|
+
x2: -1,
|
|
2083
|
+
y2: -7,
|
|
2084
|
+
stroke: 'color',
|
|
2085
|
+
strokeWidth: 1.5,
|
|
2086
|
+
opacity: 0.7
|
|
2087
|
+
}, {
|
|
2088
|
+
type: 'line',
|
|
2089
|
+
x1: -4.2,
|
|
2090
|
+
y1: 0,
|
|
2091
|
+
x2: -1,
|
|
2092
|
+
y2: 0,
|
|
2093
|
+
stroke: 'color',
|
|
2094
|
+
strokeWidth: 1.5,
|
|
2095
|
+
opacity: 0.7
|
|
2096
|
+
}, {
|
|
2097
|
+
type: 'line',
|
|
2098
|
+
x1: -4.2,
|
|
2099
|
+
y1: 7,
|
|
2100
|
+
x2: -1,
|
|
2101
|
+
y2: 7,
|
|
2102
|
+
stroke: 'color',
|
|
2103
|
+
strokeWidth: 1.5,
|
|
2104
|
+
opacity: 0.7
|
|
2105
|
+
},
|
|
2106
|
+
// === EVENT CARD 1 (top) - larger ===
|
|
2107
|
+
{
|
|
2108
|
+
type: 'rect',
|
|
2109
|
+
x: -1,
|
|
2110
|
+
y: -10,
|
|
2111
|
+
width: 11,
|
|
2112
|
+
height: 6,
|
|
2113
|
+
fill: 'color',
|
|
2114
|
+
opacity: 0.95,
|
|
2115
|
+
borderRadius: 1
|
|
2116
|
+
}, {
|
|
2117
|
+
type: 'rect',
|
|
2118
|
+
x: 0,
|
|
2119
|
+
y: -9,
|
|
2120
|
+
width: 9,
|
|
2121
|
+
height: 4,
|
|
2122
|
+
fill: '#000000',
|
|
2123
|
+
opacity: 1,
|
|
2124
|
+
borderRadius: 0.5
|
|
2125
|
+
},
|
|
2126
|
+
// Content lines in card 1 - thicker
|
|
2127
|
+
{
|
|
2128
|
+
type: 'line',
|
|
2129
|
+
x1: 1.5,
|
|
2130
|
+
y1: -7.5,
|
|
2131
|
+
x2: 7.5,
|
|
2132
|
+
y2: -7.5,
|
|
2133
|
+
stroke: 'color',
|
|
2134
|
+
strokeWidth: 1.2,
|
|
2135
|
+
opacity: 0.8
|
|
2136
|
+
}, {
|
|
2137
|
+
type: 'line',
|
|
2138
|
+
x1: 1.5,
|
|
2139
|
+
y1: -5.8,
|
|
2140
|
+
x2: 6,
|
|
2141
|
+
y2: -5.8,
|
|
2142
|
+
stroke: 'color',
|
|
2143
|
+
strokeWidth: 1.2,
|
|
2144
|
+
opacity: 0.6
|
|
2145
|
+
},
|
|
2146
|
+
// === EVENT CARD 2 (middle) - larger ===
|
|
2147
|
+
{
|
|
2148
|
+
type: 'rect',
|
|
2149
|
+
x: -1,
|
|
2150
|
+
y: -3,
|
|
2151
|
+
width: 11,
|
|
2152
|
+
height: 6,
|
|
2153
|
+
fill: 'color',
|
|
2154
|
+
opacity: 0.95,
|
|
2155
|
+
borderRadius: 1
|
|
2156
|
+
}, {
|
|
2157
|
+
type: 'rect',
|
|
2158
|
+
x: 0,
|
|
2159
|
+
y: -2,
|
|
2160
|
+
width: 9,
|
|
2161
|
+
height: 4,
|
|
2162
|
+
fill: '#000000',
|
|
2163
|
+
opacity: 1,
|
|
2164
|
+
borderRadius: 0.5
|
|
2165
|
+
},
|
|
2166
|
+
// Content lines in card 2 - thicker
|
|
2167
|
+
{
|
|
2168
|
+
type: 'line',
|
|
2169
|
+
x1: 1.5,
|
|
2170
|
+
y1: -0.5,
|
|
2171
|
+
x2: 7.5,
|
|
2172
|
+
y2: -0.5,
|
|
2173
|
+
stroke: 'color',
|
|
2174
|
+
strokeWidth: 1.2,
|
|
2175
|
+
opacity: 0.8
|
|
2176
|
+
}, {
|
|
2177
|
+
type: 'line',
|
|
2178
|
+
x1: 1.5,
|
|
2179
|
+
y1: 1.2,
|
|
2180
|
+
x2: 5,
|
|
2181
|
+
y2: 1.2,
|
|
2182
|
+
stroke: 'color',
|
|
2183
|
+
strokeWidth: 1.2,
|
|
2184
|
+
opacity: 0.6
|
|
2185
|
+
},
|
|
2186
|
+
// === EVENT CARD 3 (bottom) - larger ===
|
|
2187
|
+
{
|
|
2188
|
+
type: 'rect',
|
|
2189
|
+
x: -1,
|
|
2190
|
+
y: 4,
|
|
2191
|
+
width: 11,
|
|
2192
|
+
height: 6,
|
|
2193
|
+
fill: 'color',
|
|
2194
|
+
opacity: 0.95,
|
|
2195
|
+
borderRadius: 1
|
|
2196
|
+
}, {
|
|
2197
|
+
type: 'rect',
|
|
2198
|
+
x: 0,
|
|
2199
|
+
y: 5,
|
|
2200
|
+
width: 9,
|
|
2201
|
+
height: 4,
|
|
2202
|
+
fill: '#000000',
|
|
2203
|
+
opacity: 1,
|
|
2204
|
+
borderRadius: 0.5
|
|
2205
|
+
},
|
|
2206
|
+
// Data dots in card 3 - larger
|
|
2207
|
+
{
|
|
2208
|
+
type: 'circle',
|
|
2209
|
+
cx: 2,
|
|
2210
|
+
cy: 6.2,
|
|
2211
|
+
r: 0.6,
|
|
2212
|
+
fill: 'color',
|
|
2213
|
+
opacity: 0.9
|
|
2214
|
+
}, {
|
|
2215
|
+
type: 'circle',
|
|
2216
|
+
cx: 4,
|
|
2217
|
+
cy: 6.2,
|
|
2218
|
+
r: 0.6,
|
|
2219
|
+
fill: 'color',
|
|
2220
|
+
opacity: 0.9
|
|
2221
|
+
}, {
|
|
2222
|
+
type: 'circle',
|
|
2223
|
+
cx: 6,
|
|
2224
|
+
cy: 6.2,
|
|
2225
|
+
r: 0.6,
|
|
2226
|
+
fill: 'color',
|
|
2227
|
+
opacity: 0.9
|
|
2228
|
+
}, {
|
|
2229
|
+
type: 'circle',
|
|
2230
|
+
cx: 8,
|
|
2231
|
+
cy: 6.2,
|
|
2232
|
+
r: 0.6,
|
|
2233
|
+
fill: 'color',
|
|
2234
|
+
opacity: 0.9
|
|
2235
|
+
}, {
|
|
2236
|
+
type: 'circle',
|
|
2237
|
+
cx: 2,
|
|
2238
|
+
cy: 8,
|
|
2239
|
+
r: 0.6,
|
|
2240
|
+
fill: 'color',
|
|
2241
|
+
opacity: 0.9
|
|
2242
|
+
}, {
|
|
2243
|
+
type: 'circle',
|
|
2244
|
+
cx: 4,
|
|
2245
|
+
cy: 8,
|
|
2246
|
+
r: 0.6,
|
|
2247
|
+
fill: 'color',
|
|
2248
|
+
opacity: 0.9
|
|
2249
|
+
}, {
|
|
2250
|
+
type: 'circle',
|
|
2251
|
+
cx: 6,
|
|
2252
|
+
cy: 8,
|
|
2253
|
+
r: 0.6,
|
|
2254
|
+
fill: 'color',
|
|
2255
|
+
opacity: 0.9
|
|
2256
|
+
}, {
|
|
2257
|
+
type: 'circle',
|
|
2258
|
+
cx: 8,
|
|
2259
|
+
cy: 8,
|
|
2260
|
+
r: 0.6,
|
|
2261
|
+
fill: 'color',
|
|
2262
|
+
opacity: 0.9
|
|
2263
|
+
}]
|
|
2264
|
+
};
|