CI / Typecheck, lint, tests, e2e (push) Failing after 3m51s
- Title screen over a real-time voxel office rendered at low resolution and quantized to a rotating 32-colour palette with Bayer dithering; day part and season re-light the scene and every surface. - 16-bit UI kit: name-plate dialogs, menu cursor, inventory, XP bar, badges, NPC speech, GAME OVER with CONTINUE, hand-placed 12x12 icons, Fusion Pixel font (Latin subset preloaded). - Sections as a game: quest log (onboarding), character select (AI CEO / AI Co-Founder), inventory (features), party roster (providers), live download XP, save point (all v1.5.1 builds), FAQ as NPC dialog, credits. - Downloads and source point to the Gitea release; the download function only redirects to git.zacharyzhang.com. - Tailwind and the old components removed; unit tests for platform/downloads, rewritten e2e suite. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
62 lines
9.7 KiB
TypeScript
62 lines
9.7 KiB
TypeScript
/** Hand-placed 12x12 pixel icons: rows separated by spaces, "#" is a lit pixel. */
|
|
export const PIXEL_ICONS = {
|
|
home: ".....##..... ....####.... ...##..##... ..##....##.. .##......##. ############ .#........#. .#..####..#. .#..#..#..#. .#..#..#..#. .#..#..#..#. .##########.",
|
|
work: "............ ....####.... ....#..#.... ############ #..........# #..........# #####..##### #....##....# #..........# #..........# ############ ............",
|
|
team: "............ ..##....##.. .####..####. .####..####. ..##....##.. ............ .####..####. ######.##### ######.##### ######.##### ............ ............",
|
|
user: "............ ....####.... ...######... ...######... ...######... ....####.... ............ ..########.. .##########. .##########. .##########. ............",
|
|
chat: "............ .##########. #..........# #..........# #.##.##.##.# #..........# #..........# .###.######. ...#.#...... ...##....... ...#........ ............",
|
|
send: "..........## ........#### ......###.## ....###..##. ..###...##.. ####...##... ..###.##.... ....####.... .....###.... ......##.... ......#..... ............",
|
|
folder: "............ ####........ #..#........ #..#######.. #........#.. ############ #..........# #..........# #..........# #..........# ############ ............",
|
|
file: "#######..... #.....##.... #.....#.#... #.....####.. #........#.. #.#####..#.. #........#.. #.#####..#.. #........#.. #.####...#.. #........#.. ##########..",
|
|
book: "............ .####..####. #....##....# #.##.##.##.# #....##....# #.##.##.##.# #....##....# #.##.##.##.# #....##....# .####..####. .....##..... ............",
|
|
approve: ".....##..... ..########.. .#........#. .#........#. .#......#.#. .#.#...##.#. .#.##.##..#. .#..###...#. ..#..#...#.. ...#....#... ....#..#.... .....##.....",
|
|
plug: "............ ...#....#... ...#....#... ..########.. ..#......#.. ..#......#.. ..#......#.. ...#....#... ....####.... .....##..... .....##..... .....##.....",
|
|
building: "..########.. ..#......#.. ..#.##.#.#.. ..#......#.. ..#.##.#.#.. ..#......#.. ..#.##.#.#.. ..#......#.. ###.####.### #.#.#..#.#.# #.#.#..#.#.# ############",
|
|
settings: ".....##..... ..#.####.#.. .##########. ..###..###.. .###....###. ####....#### ####....#### .###....###. ..###..###.. .##########. ..#.####.#.. .....##.....",
|
|
search: "............ ..#####..... .#.....#.... #.......#... #.......#... #.......#... #.......#... .#.....#.... ..######.... .......###.. ........###. .........##.",
|
|
plus: "............ ............ .....##..... .....##..... .....##..... ..########.. ..########.. .....##..... .....##..... .....##..... ............ ............",
|
|
minus: "............ ............ ............ ............ ............ ..########.. ..########.. ............ ............ ............ ............ ............",
|
|
chevron: "............ ............ ....##...... .....##..... ......##.... .......##... .......##... ......##.... .....##..... ....##...... ............ ............",
|
|
chevronDown: "............ ............ ............ ............ ..##....##.. ...##..##... ....####.... .....##..... ............ ............ ............ ............",
|
|
chevronLeft: "............ ............ ......##.... .....##..... ....##...... ...##....... ...##....... ....##...... .....##..... ......##.... ............ ............",
|
|
more: "............ ............ ............ ............ ............ .##..##..##. .##..##..##. ............ ............ ............ ............ ............",
|
|
edit: ".........##. ........#### .......####. ......####.. .....####... ....####.... ...####..... ..####...... .#.##....... .##......... .###........ ............",
|
|
filter: "............ ############ .##########. ..########.. ...######... ....####.... ....####.... ....####.... ....####.... ....###..... ....##...... ............",
|
|
grid: "............ .####..####. .####..####. .####..####. .####..####. ............ ............ .####..####. .####..####. .####..####. .####..####. ............",
|
|
list: "............ ##..######## ##..######## ............ ............ ##..######## ##..######## ............ ............ ##..######## ##..######## ............",
|
|
upload: ".....##..... ....####.... ...######... ..##.##.##.. .....##..... .....##..... .....##..... #....##....# #..........# #..........# ############ ............",
|
|
arrowRight: "............ ............ .......#.... .......##... .......###.. ##########.. ##########.. .......###.. .......##... .......#.... ............ ............",
|
|
arrowUpRight: "............ ....#######. .....######. ........###. .......####. ......###.#. .....###.... ....###..... ...###...... ..###....... .###........ ............",
|
|
sparkle: ".....##..... .....##..... .....##..... ....####.... ..########.. ############ ..########.. ....####.... .....##..... .....##..... .....##..... ............",
|
|
bot: ".....##..... .....##..... ..########.. .#........#. .#.##..##.#. .#.##..##.#. .#........#. .#..####..#. .#........#. ..########.. ...#....#... ...#....#...",
|
|
check: "............ ............ ..........## .........##. ........##.. .......##... ##....##.... .##..##..... ..####...... ...##....... ............ ............",
|
|
x: "............ .##......##. ..##....##.. ...##..##... ....####.... .....##..... ....####.... ...##..##... ..##....##.. .##......##. ............ ............",
|
|
pin: "............ ....######.. .....####... .....####... .....####... ....######.. ...########. .......#.... .......#.... .......#.... .......#.... ............",
|
|
attach: "....####.... ...#....#... ...#.##.#... ...#.#..#... ...#.#..#... ...#.#..#... ...#.#..#... ...#.#..#... ...#....#... ...#....#... ....####.... ............",
|
|
hash: "............ ...#...#.... ...#...#.... .#########.. ...#...#.... ...#...#.... ..#...#..... #########... ..#...#..... ..#...#..... ............ ............",
|
|
lock: "............ ....####.... ...#....#... ...#....#... ...#....#... ..########.. ..########.. ..###..###.. ..###..###.. ..########.. ..########.. ............",
|
|
download: ".....##..... .....##..... .....##..... .....##..... ..##.##.##.. ...######... ....####.... #....##....# #..........# #..........# ############ ............",
|
|
apple: ".......##... ......##.... ......#..... ..###..###.. .##########. #########... ########.... ########.... #########... .##########. ..###..###.. ............",
|
|
windows: "............ #####.#####. #####.#####. #####.#####. #####.#####. #####.#####. ............ #####.#####. #####.#####. #####.#####. #####.#####. #####.#####.",
|
|
linux: "....####.... ...######... ...#.##.#... ...######... ..###..###.. .##......##. .#........#. ##........## .#........#. .##......##. ####....#### .###....###.",
|
|
star: ".....##..... .....##..... ....####.... ....####.... ############ .##########. ..########.. ...######... ...######... ..###..###.. ..##....##.. .#........#.",
|
|
heart: "............ .###....###. #.###..##### ##.######### ############ ############ .##########. ..########.. ...######... ....####.... .....##..... ............",
|
|
sword: ".....##..... ....####.... ....#.##.... ....#.##.... ....#.##.... ....#.##.... ....#.##.... .##########. .##########. .....##..... .....##..... ....####....",
|
|
coin: "...######... .##......##. .#...##...#. #...###....# #....##....# #....##....# #....##....# #....##....# #....##....# .#..####..#. .##......##. ...######...",
|
|
chest: "............ .##########. #.#......#.# #.#......#.# ############ #.#.####.#.# #.#.#..#.#.# #.#.####.#.# #.#......#.# #.#......#.# ############ ............",
|
|
key: "............ ............ ............ .####....... #....#...... #.##.####### #.##.####### #....#...#.# .####....#.# ............ ............ ............",
|
|
gear: "....####.... .##.####.##. .##########. ..###..###.. ####....#### ###......### ###......### ####....#### ..###..###.. .##########. .##.####.##. ....####....",
|
|
map: "............ ############ #....#...#.# #.....#.#..# #......#...# #.....#.#..# #....#...#.# #..##......# #.#........# #..........# ############ ............",
|
|
flag: "..#......... ..#######... ..#########. ..########## ..#########. ..#######... ..#......... ..#......... ..#......... ..#......... .###........ ............",
|
|
trophy: "..########.. ##.######.## #..######..# #..######..# .#.######.#. ...######... ....####.... .....##..... .....##..... ....####.... ...######... ...######...",
|
|
crown: "............ ............ ............ .#...##...#. .##..##..##. .###.##.###. .##########. .##########. .#.##..##.#. .##########. ............ ............",
|
|
sun: ".....##..... .#...##...#. ..#......#.. ....####.... ...######... ##.######.## ##.######.## ...######... ....####.... ..#......#.. .#...##...#. .....##.....",
|
|
moon: "....##...... ..###....... .###.....#.. .###....###. ####.....#.. ####........ #####....... #######..... .#########.. .##########. ..########.. ....####....",
|
|
sunrise: "............ .....##..... ..#..##..#.. ...#....#... ....####.... #..######..# ..########.. ############ ............ .##########. ............ ...######...",
|
|
sunset: "............ ............ ............ ....####.... ..########.. .##########. ############ ............ .##########. ............ ...######... ............",
|
|
blossom: "....####.... ...######... ...######... .##.####.##. ####....#### ####.##.#### ####.##.#### ####....#### .##.####.##. ...######... ...######... ....####....",
|
|
icecream: "....####.... ...######... ..########.. ..########.. ..#.####.#.. ..########.. ...#.##.#... ...######... ....#..#.... ....####.... .....##..... .....##.....",
|
|
maple: ".....##..... ....####.... .#..####..#. .##.####.##. .##########. ############ .##########. ..########.. .###.##.###. .....##..... .....##..... ............",
|
|
snowflake: ".....##..... .#..####..#. ..#..##..#.. ...#.##.#... ....####.... ############ ############ ....####.... ...#.##.#... ..#..##..#.. .#..####..#. .....##.....",
|
|
} as const;
|