| 1 | // Base template list |
| 2 | export const templates = [ |
| 3 | "chart-bar-plain-text", |
| 4 | "chart-column-simple", |
| 5 | "chart-line-plain-text", |
| 6 | "chart-pie-compact-card", |
| 7 | "chart-pie-donut-compact-card", |
| 8 | "chart-pie-donut-pill-badge", |
| 9 | "chart-pie-donut-plain-text", |
| 10 | "chart-pie-pill-badge", |
| 11 | "chart-pie-plain-text", |
| 12 | "chart-wordcloud", |
| 13 | "chart-wordcloud-rotate", |
| 14 | "compare-binary-horizontal-badge-card-arrow", |
| 15 | "compare-binary-horizontal-badge-card-fold", |
| 16 | "compare-binary-horizontal-badge-card-vs", |
| 17 | "compare-binary-horizontal-compact-card-arrow", |
| 18 | "compare-binary-horizontal-compact-card-fold", |
| 19 | "compare-binary-horizontal-compact-card-vs", |
| 20 | "compare-binary-horizontal-simple-arrow", |
| 21 | "compare-binary-horizontal-simple-fold", |
| 22 | "compare-binary-horizontal-simple-vs", |
| 23 | "compare-binary-horizontal-underline-text-arrow", |
| 24 | "compare-binary-horizontal-underline-text-fold", |
| 25 | "compare-binary-horizontal-underline-text-vs", |
| 26 | "compare-hierarchy-left-right-circle-node-pill-badge", |
| 27 | "compare-hierarchy-left-right-circle-node-plain-text", |
| 28 | "compare-hierarchy-row-letter-card-compact-card", |
| 29 | "compare-hierarchy-row-letter-card-rounded-rect-node", |
| 30 | "compare-swot", |
| 31 | "hierarchy-mindmap-branch-gradient-capsule-item", |
| 32 | "hierarchy-mindmap-branch-gradient-circle-progress", |
| 33 | "hierarchy-mindmap-branch-gradient-compact-card", |
| 34 | "hierarchy-mindmap-branch-gradient-lined-palette", |
| 35 | "hierarchy-mindmap-branch-gradient-rounded-rect", |
| 36 | "hierarchy-mindmap-level-gradient-capsule-item", |
| 37 | "hierarchy-mindmap-level-gradient-circle-progress", |
| 38 | "hierarchy-mindmap-level-gradient-compact-card", |
| 39 | "hierarchy-mindmap-level-gradient-lined-palette", |
| 40 | "hierarchy-mindmap-level-gradient-rounded-rect", |
| 41 | "hierarchy-structure", |
| 42 | "hierarchy-structure-mirror", |
| 43 | "hierarchy-tree-bt-curved-line-badge-card", |
| 44 | "hierarchy-tree-bt-curved-line-capsule-item", |
| 45 | "hierarchy-tree-bt-curved-line-compact-card", |
| 46 | "hierarchy-tree-bt-curved-line-ribbon-card", |
| 47 | "hierarchy-tree-bt-curved-line-rounded-rect-node", |
| 48 | "hierarchy-tree-bt-dashed-arrow-badge-card", |
| 49 | "hierarchy-tree-bt-dashed-arrow-capsule-item", |
| 50 | "hierarchy-tree-bt-dashed-arrow-compact-card", |
| 51 | "hierarchy-tree-bt-dashed-arrow-ribbon-card", |
| 52 | "hierarchy-tree-bt-dashed-arrow-rounded-rect-node", |
| 53 | "hierarchy-tree-bt-dashed-line-badge-card", |
| 54 | "hierarchy-tree-bt-dashed-line-capsule-item", |
| 55 | "hierarchy-tree-bt-dashed-line-compact-card", |
| 56 | "hierarchy-tree-bt-dashed-line-ribbon-card", |
| 57 | "hierarchy-tree-bt-dashed-line-rounded-rect-node", |
| 58 | "hierarchy-tree-bt-distributed-origin-badge-card", |
| 59 | "hierarchy-tree-bt-distributed-origin-capsule-item", |
| 60 | "hierarchy-tree-bt-distributed-origin-compact-card", |
| 61 | "hierarchy-tree-bt-distributed-origin-ribbon-card", |
| 62 | "hierarchy-tree-bt-distributed-origin-rounded-rect-node", |
| 63 | "hierarchy-tree-bt-tech-style-badge-card", |
| 64 | "hierarchy-tree-bt-tech-style-capsule-item", |
| 65 | "hierarchy-tree-bt-tech-style-compact-card", |
| 66 | "hierarchy-tree-bt-tech-style-ribbon-card", |
| 67 | "hierarchy-tree-bt-tech-style-rounded-rect-node", |
| 68 | "hierarchy-tree-curved-line-badge-card", |
| 69 | "hierarchy-tree-curved-line-capsule-item", |
| 70 | "hierarchy-tree-curved-line-compact-card", |
| 71 | "hierarchy-tree-curved-line-ribbon-card", |
| 72 | "hierarchy-tree-curved-line-rounded-rect-node", |
| 73 | "hierarchy-tree-dashed-arrow-badge-card", |
| 74 | "hierarchy-tree-dashed-arrow-capsule-item", |
| 75 | "hierarchy-tree-dashed-arrow-compact-card", |
| 76 | "hierarchy-tree-dashed-arrow-ribbon-card", |
| 77 | "hierarchy-tree-dashed-arrow-rounded-rect-node", |
| 78 | "hierarchy-tree-dashed-line-badge-card", |
| 79 | "hierarchy-tree-dashed-line-capsule-item", |
| 80 | "hierarchy-tree-dashed-line-compact-card", |
| 81 | "hierarchy-tree-dashed-line-ribbon-card", |
| 82 | "hierarchy-tree-dashed-line-rounded-rect-node", |
| 83 | "hierarchy-tree-distributed-origin-badge-card", |
| 84 | "hierarchy-tree-distributed-origin-capsule-item", |
| 85 | "hierarchy-tree-distributed-origin-compact-card", |
| 86 | "hierarchy-tree-distributed-origin-ribbon-card", |
| 87 | "hierarchy-tree-distributed-origin-rounded-rect-node", |
| 88 | "hierarchy-tree-lr-curved-line-badge-card", |
| 89 | "hierarchy-tree-lr-curved-line-capsule-item", |
| 90 | "hierarchy-tree-lr-curved-line-compact-card", |
| 91 | "hierarchy-tree-lr-curved-line-ribbon-card", |
| 92 | "hierarchy-tree-lr-curved-line-rounded-rect-node", |
| 93 | "hierarchy-tree-lr-dashed-arrow-badge-card", |
| 94 | "hierarchy-tree-lr-dashed-arrow-capsule-item", |
| 95 | "hierarchy-tree-lr-dashed-arrow-compact-card", |
| 96 | "hierarchy-tree-lr-dashed-arrow-ribbon-card", |
| 97 | "hierarchy-tree-lr-dashed-arrow-rounded-rect-node", |
| 98 | "hierarchy-tree-lr-dashed-line-badge-card", |
| 99 | "hierarchy-tree-lr-dashed-line-capsule-item", |
| 100 | "hierarchy-tree-lr-dashed-line-compact-card", |
| 101 | "hierarchy-tree-lr-dashed-line-ribbon-card", |
| 102 | "hierarchy-tree-lr-dashed-line-rounded-rect-node", |
| 103 | "hierarchy-tree-lr-distributed-origin-badge-card", |
| 104 | "hierarchy-tree-lr-distributed-origin-capsule-item", |
| 105 | "hierarchy-tree-lr-distributed-origin-compact-card", |
| 106 | "hierarchy-tree-lr-distributed-origin-ribbon-card", |
| 107 | "hierarchy-tree-lr-distributed-origin-rounded-rect-node", |
| 108 | "hierarchy-tree-lr-tech-style-badge-card", |
| 109 | "hierarchy-tree-lr-tech-style-capsule-item", |
| 110 | "hierarchy-tree-lr-tech-style-compact-card", |
| 111 | "hierarchy-tree-lr-tech-style-ribbon-card", |
| 112 | "hierarchy-tree-lr-tech-style-rounded-rect-node", |
| 113 | "hierarchy-tree-rl-curved-line-badge-card", |
| 114 | "hierarchy-tree-rl-curved-line-capsule-item", |
| 115 | "hierarchy-tree-rl-curved-line-compact-card", |
| 116 | "hierarchy-tree-rl-curved-line-ribbon-card", |
| 117 | "hierarchy-tree-rl-curved-line-rounded-rect-node", |
| 118 | "hierarchy-tree-rl-dashed-arrow-badge-card", |
| 119 | "hierarchy-tree-rl-dashed-arrow-capsule-item", |
| 120 | "hierarchy-tree-rl-dashed-arrow-compact-card", |
| 121 | "hierarchy-tree-rl-dashed-arrow-ribbon-card", |
| 122 | "hierarchy-tree-rl-dashed-arrow-rounded-rect-node", |
| 123 | "hierarchy-tree-rl-dashed-line-badge-card", |
| 124 | "hierarchy-tree-rl-dashed-line-capsule-item", |
| 125 | "hierarchy-tree-rl-dashed-line-compact-card", |
| 126 | "hierarchy-tree-rl-dashed-line-ribbon-card", |
| 127 | "hierarchy-tree-rl-dashed-line-rounded-rect-node", |
| 128 | "hierarchy-tree-rl-distributed-origin-badge-card", |
| 129 | "hierarchy-tree-rl-distributed-origin-capsule-item", |
| 130 | "hierarchy-tree-rl-distributed-origin-compact-card", |
| 131 | "hierarchy-tree-rl-distributed-origin-ribbon-card", |
| 132 | "hierarchy-tree-rl-distributed-origin-rounded-rect-node", |
| 133 | "hierarchy-tree-rl-tech-style-badge-card", |
| 134 | "hierarchy-tree-rl-tech-style-capsule-item", |
| 135 | "hierarchy-tree-rl-tech-style-compact-card", |
| 136 | "hierarchy-tree-rl-tech-style-ribbon-card", |
| 137 | "hierarchy-tree-rl-tech-style-rounded-rect-node", |
| 138 | "hierarchy-tree-tech-style-badge-card", |
| 139 | "hierarchy-tree-tech-style-capsule-item", |
| 140 | "hierarchy-tree-tech-style-compact-card", |
| 141 | "hierarchy-tree-tech-style-ribbon-card", |
| 142 | "hierarchy-tree-tech-style-rounded-rect-node", |
| 143 | "list-column-done-list", |
| 144 | "list-column-simple-vertical-arrow", |
| 145 | "list-column-vertical-icon-arrow", |
| 146 | "list-grid-badge-card", |
| 147 | "list-grid-candy-card-lite", |
| 148 | "list-grid-circular-progress", |
| 149 | "list-grid-compact-card", |
| 150 | "list-grid-done-list", |
| 151 | "list-grid-horizontal-icon-arrow", |
| 152 | "list-grid-progress-card", |
| 153 | "list-grid-ribbon-card", |
| 154 | "list-grid-simple", |
| 155 | "list-pyramid-badge-card", |
| 156 | "list-pyramid-compact-card", |
| 157 | "list-pyramid-rounded-rect-node", |
| 158 | "list-row-circular-progress", |
| 159 | "list-row-horizontal-icon-arrow", |
| 160 | "list-row-horizontal-icon-line", |
| 161 | "list-row-simple-horizontal-arrow", |
| 162 | "list-row-simple-illus", |
| 163 | "list-sector-half-plain-text", |
| 164 | "list-sector-plain-text", |
| 165 | "list-sector-simple", |
| 166 | "list-zigzag-down-compact-card", |
| 167 | "list-zigzag-down-simple", |
| 168 | "list-zigzag-up-compact-card", |
| 169 | "list-zigzag-up-simple", |
| 170 | "quadrant-quarter-circular", |
| 171 | "quadrant-quarter-simple-card", |
| 172 | "quadrant-simple-illus", |
| 173 | "relation-circle-circular-progress", |
| 174 | "relation-circle-icon-badge", |
| 175 | "relation-dagre-flow-lr-animated-badge-card", |
| 176 | "relation-dagre-flow-lr-animated-capsule", |
| 177 | "relation-dagre-flow-lr-animated-compact-card", |
| 178 | "relation-dagre-flow-lr-animated-simple-circle-node", |
| 179 | "relation-dagre-flow-lr-badge-card", |
| 180 | "relation-dagre-flow-lr-compact-card", |
| 181 | "relation-dagre-flow-lr-simple-circle-node", |
| 182 | "relation-dagre-flow-tb-animated-badge-card", |
| 183 | "relation-dagre-flow-tb-animated-capsule", |
| 184 | "relation-dagre-flow-tb-animated-compact-card", |
| 185 | "relation-dagre-flow-tb-animated-simple-circle-node", |
| 186 | "relation-dagre-flow-tb-badge-card", |
| 187 | "relation-dagre-flow-tb-compact-card", |
| 188 | "relation-dagre-flow-tb-simple-circle-node", |
| 189 | "sequence-ascending-stairs-3d-simple", |
| 190 | "sequence-ascending-stairs-3d-underline-text", |
| 191 | "sequence-ascending-steps", |
| 192 | "sequence-circle-arrows-indexed-card", |
| 193 | "sequence-circular-simple", |
| 194 | "sequence-circular-underline-text", |
| 195 | "sequence-color-snake-steps-horizontal-icon-line", |
| 196 | "sequence-color-snake-steps-simple-illus", |
| 197 | "sequence-cylinders-3d-simple", |
| 198 | "sequence-filter-mesh-simple", |
| 199 | "sequence-filter-mesh-underline-text", |
| 200 | "sequence-funnel-simple", |
| 201 | "sequence-horizontal-zigzag-horizontal-icon-line", |
| 202 | "sequence-horizontal-zigzag-plain-text", |
| 203 | "sequence-horizontal-zigzag-simple", |
| 204 | "sequence-horizontal-zigzag-simple-horizontal-arrow", |
| 205 | "sequence-horizontal-zigzag-simple-illus", |
| 206 | "sequence-horizontal-zigzag-underline-text", |
| 207 | "sequence-mountain-underline-text", |
| 208 | "sequence-pyramid-simple", |
| 209 | "sequence-roadmap-vertical-badge-card", |
| 210 | "sequence-roadmap-vertical-pill-badge", |
| 211 | "sequence-roadmap-vertical-plain-text", |
| 212 | "sequence-roadmap-vertical-quarter-circular", |
| 213 | "sequence-roadmap-vertical-quarter-simple-card", |
| 214 | "sequence-roadmap-vertical-simple", |
| 215 | "sequence-roadmap-vertical-underline-text", |
| 216 | "sequence-snake-steps-compact-card", |
| 217 | "sequence-snake-steps-pill-badge", |
| 218 | "sequence-snake-steps-simple", |
| 219 | "sequence-snake-steps-simple-illus", |
| 220 | "sequence-snake-steps-underline-text", |
| 221 | "sequence-stairs-front-compact-card", |
| 222 | "sequence-stairs-front-pill-badge", |
| 223 | "sequence-stairs-front-simple", |
| 224 | "sequence-steps-badge-card", |
| 225 | "sequence-steps-simple", |
| 226 | "sequence-steps-simple-illus", |
| 227 | "sequence-timeline-done-list", |
| 228 | "sequence-timeline-plain-text", |
| 229 | "sequence-timeline-rounded-rect-node", |
| 230 | "sequence-timeline-simple", |
| 231 | "sequence-timeline-simple-illus", |
| 232 | "sequence-zigzag-pucks-3d-indexed-card", |
| 233 | "sequence-zigzag-pucks-3d-simple", |
| 234 | "sequence-zigzag-pucks-3d-underline-text", |
| 235 | "sequence-zigzag-steps-underline-text", |
| 236 | ]; |
| 237 | |
| 238 | // ============================================================================ |
| 239 | // SIMPLE CATEGORY STRUCTURE - 7 main categories only |
| 240 | // ============================================================================ |
| 241 | |
| 242 | export interface InfographicCategory { |
| 243 | key: string; |
| 244 | name: string; |
| 245 | templates: string[]; // Template IDs |
| 246 | dataField: InfographicDataField; |
| 247 | } |
| 248 | |
| 249 | export type InfographicDataField = |
| 250 | | "items" |
| 251 | | "root" |
| 252 | | "nodes" |
| 253 | | "values" |
| 254 | | "compares" |
| 255 | | "lists" |
| 256 | | "sequences"; |
| 257 | |
| 258 | // Simple 7 categories matching the reference image |
| 259 | export const INFOGRAPHIC_CATEGORIES: InfographicCategory[] = [ |
| 260 | { |
| 261 | key: "chart", |
| 262 | name: "Chart", |
| 263 | templates: templates.filter((t) => t.startsWith("chart-")), |
| 264 | dataField: "items", |
| 265 | }, |
| 266 | { |
| 267 | key: "compare", |
| 268 | name: "Comparison", |
| 269 | templates: templates.filter((t) => t.startsWith("compare-")), |
| 270 | dataField: "compares", |
| 271 | }, |
| 272 | { |
| 273 | key: "hierarchy", |
| 274 | name: "Hierarchy", |
| 275 | templates: templates.filter((t) => t.startsWith("hierarchy-")), |
| 276 | dataField: "root", |
| 277 | }, |
| 278 | { |
| 279 | key: "list", |
| 280 | name: "List", |
| 281 | templates: templates.filter((t) => t.startsWith("list-")), |
| 282 | dataField: "items", |
| 283 | }, |
| 284 | { |
| 285 | key: "quadrant", |
| 286 | name: "Quadrant", |
| 287 | templates: templates.filter((t) => t.startsWith("quadrant-")), |
| 288 | dataField: "items", |
| 289 | }, |
| 290 | { |
| 291 | key: "relation", |
| 292 | name: "Relation", |
| 293 | templates: templates.filter((t) => t.startsWith("relation-")), |
| 294 | dataField: "items", |
| 295 | }, |
| 296 | { |
| 297 | key: "sequence", |
| 298 | name: "Sequence", |
| 299 | templates: templates.filter((t) => t.startsWith("sequence-")), |
| 300 | dataField: "items", |
| 301 | }, |
| 302 | ]; |
| 303 | |
| 304 | // Get category for a template ID |
| 305 | export function getTemplateCategory( |
| 306 | templateId: string, |
| 307 | ): InfographicCategory | undefined { |
| 308 | return INFOGRAPHIC_CATEGORIES.find((cat) => |
| 309 | cat.templates.includes(templateId), |
| 310 | ); |
| 311 | } |
| 312 |