SYMBOL INDEX (1941 symbols across 338 files) FILE: api/og.ts type _ProjectData (line 8) | type _ProjectData = { type _UserProfile (line 17) | type _UserProfile = { function handler (line 25) | async function handler(req: Request) { function escapeHtml (line 163) | function escapeHtml(unsafe: string): string { function sanitizeUrl (line 173) | function sanitizeUrl(url: string | null): string { FILE: dev-tools/bubbletea-test-cli/animations/ascii_motion_anim.go type Frame (line 676) | type Frame struct type Model (line 684) | type Model struct method Init (line 716) | func (m Model) Init() tea.Cmd { method tick (line 720) | func (m Model) tick() tea.Cmd { method Update (line 730) | func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { method getColor (line 756) | func (m Model) getColor(colorKey string) lipgloss.TerminalColor { method View (line 764) | func (m Model) View() string { method Play (line 793) | func (m *Model) Play() tea.Cmd { method Pause (line 799) | func (m *Model) Pause() { method Restart (line 804) | func (m *Model) Restart() tea.Cmd { method IsPlaying (line 810) | func (m Model) IsPlaying() bool { method CurrentFrame (line 815) | func (m Model) CurrentFrame() int { method TotalFrames (line 820) | func (m Model) TotalFrames() int { type tickMsg (line 694) | type tickMsg function New (line 698) | func New(hasDarkBackground bool) Model { function NewWithDefaults (line 711) | func NewWithDefaults() Model { FILE: dev-tools/bubbletea-test-cli/animations/copilotspin/copilot_spin.go type Frame (line 40) | type Frame struct type Model (line 48) | type Model struct method Init (line 80) | func (m Model) Init() tea.Cmd { method tick (line 84) | func (m Model) tick() tea.Cmd { method Update (line 94) | func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { method getColor (line 120) | func (m Model) getColor(colorKey string) lipgloss.TerminalColor { method View (line 128) | func (m Model) View() string { method Play (line 157) | func (m *Model) Play() tea.Cmd { method Pause (line 163) | func (m *Model) Pause() { method Restart (line 168) | func (m *Model) Restart() tea.Cmd { method IsPlaying (line 174) | func (m Model) IsPlaying() bool { method CurrentFrame (line 179) | func (m Model) CurrentFrame() int { method TotalFrames (line 184) | func (m Model) TotalFrames() int { type tickMsg (line 58) | type tickMsg function New (line 62) | func New(hasDarkBackground bool) Model { function NewWithDefaults (line 75) | func NewWithDefaults() Model { FILE: dev-tools/bubbletea-test-cli/animations/effects/ascii_motion_anim_effects.go type Frame (line 874) | type Frame struct type Model (line 882) | type Model struct method Init (line 914) | func (m Model) Init() tea.Cmd { method tick (line 918) | func (m Model) tick() tea.Cmd { method Update (line 928) | func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { method getColor (line 954) | func (m Model) getColor(colorKey string) lipgloss.TerminalColor { method View (line 962) | func (m Model) View() string { method Play (line 991) | func (m *Model) Play() tea.Cmd { method Pause (line 997) | func (m *Model) Pause() { method Restart (line 1002) | func (m *Model) Restart() tea.Cmd { method IsPlaying (line 1008) | func (m Model) IsPlaying() bool { method CurrentFrame (line 1013) | func (m Model) CurrentFrame() int { method TotalFrames (line 1018) | func (m Model) TotalFrames() int { type tickMsg (line 892) | type tickMsg function New (line 896) | func New(hasDarkBackground bool) Model { function NewWithDefaults (line 909) | func NewWithDefaults() Model { FILE: dev-tools/bubbletea-test-cli/animations/effects2/ascii_motion_anim_effects2.go type Frame (line 874) | type Frame struct type Model (line 882) | type Model struct method Init (line 914) | func (m Model) Init() tea.Cmd { method tick (line 918) | func (m Model) tick() tea.Cmd { method Update (line 928) | func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { method getColor (line 954) | func (m Model) getColor(colorKey string) lipgloss.TerminalColor { method View (line 962) | func (m Model) View() string { method Play (line 991) | func (m *Model) Play() tea.Cmd { method Pause (line 997) | func (m *Model) Pause() { method Restart (line 1002) | func (m *Model) Restart() tea.Cmd { method IsPlaying (line 1008) | func (m Model) IsPlaying() bool { method CurrentFrame (line 1013) | func (m Model) CurrentFrame() int { method TotalFrames (line 1018) | func (m Model) TotalFrames() int { type tickMsg (line 892) | type tickMsg function New (line 896) | func New(hasDarkBackground bool) Model { function NewWithDefaults (line 909) | func NewWithDefaults() Model { FILE: dev-tools/bubbletea-test-cli/animations/effects3/ascii_motion_anim_effects3.go type Frame (line 874) | type Frame struct type Model (line 882) | type Model struct method Init (line 914) | func (m Model) Init() tea.Cmd { method tick (line 918) | func (m Model) tick() tea.Cmd { method Update (line 928) | func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { method getColor (line 954) | func (m Model) getColor(colorKey string) lipgloss.TerminalColor { method View (line 962) | func (m Model) View() string { method Play (line 991) | func (m *Model) Play() tea.Cmd { method Pause (line 997) | func (m *Model) Pause() { method Restart (line 1002) | func (m *Model) Restart() tea.Cmd { method IsPlaying (line 1008) | func (m Model) IsPlaying() bool { method CurrentFrame (line 1013) | func (m Model) CurrentFrame() int { method TotalFrames (line 1018) | func (m Model) TotalFrames() int { type tickMsg (line 892) | type tickMsg function New (line 896) | func New(hasDarkBackground bool) Model { function NewWithDefaults (line 909) | func NewWithDefaults() Model { FILE: dev-tools/bubbletea-test-cli/animations/newtest/ascii_motion_anim_new.go type Frame (line 676) | type Frame struct type Model (line 684) | type Model struct method Init (line 716) | func (m Model) Init() tea.Cmd { method tick (line 720) | func (m Model) tick() tea.Cmd { method Update (line 730) | func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { method getColor (line 756) | func (m Model) getColor(colorKey string) lipgloss.TerminalColor { method View (line 764) | func (m Model) View() string { method Play (line 793) | func (m *Model) Play() tea.Cmd { method Pause (line 799) | func (m *Model) Pause() { method Restart (line 804) | func (m *Model) Restart() tea.Cmd { method IsPlaying (line 810) | func (m Model) IsPlaying() bool { method CurrentFrame (line 815) | func (m Model) CurrentFrame() int { method TotalFrames (line 820) | func (m Model) TotalFrames() int { type tickMsg (line 694) | type tickMsg function New (line 698) | func New(hasDarkBackground bool) Model { function NewWithDefaults (line 711) | func NewWithDefaults() Model { FILE: dev-tools/bubbletea-test-cli/main.go function main (line 12) | func main() { FILE: dev-tools/debug-video-export.js function debugVideoExport (line 7) | function debugVideoExport() { FILE: dev-tools/ink-test-cli/src/ascii-motion-cli-effects.tsx constant COLORS_DARK (line 7) | const COLORS_DARK: Record = { constant COLORS_LIGHT (line 437) | const COLORS_LIGHT: Record = { type FrameData (line 867) | type FrameData = { type PlaybackAPI (line 874) | type PlaybackAPI = { type AsciiMotionCliEffectsProps (line 880) | type AsciiMotionCliEffectsProps = { constant FRAMES (line 887) | const FRAMES: FrameData[] = [ constant CANVAS_WIDTH (line 39192) | const CANVAS_WIDTH = 80; constant CANVAS_HEIGHT (line 39193) | const CANVAS_HEIGHT = 24; constant DEFAULT_LOOP (line 39194) | const DEFAULT_LOOP = true; FILE: dev-tools/ink-test-cli/src/ascii-motion-cli_256.tsx constant COLORS_DARK (line 8) | const COLORS_DARK: Record = { constant COLORS_LIGHT (line 21) | const COLORS_LIGHT: Record = { type FrameData (line 34) | type FrameData = { type PlaybackAPI (line 41) | type PlaybackAPI = { type AsciiMotionCli256Props (line 47) | type AsciiMotionCli256Props = { constant FRAMES (line 54) | const FRAMES: FrameData[] = [ constant CANVAS_WIDTH (line 12865) | const CANVAS_WIDTH = 30; constant CANVAS_HEIGHT (line 12866) | const CANVAS_HEIGHT = 14; constant DEFAULT_LOOP (line 12867) | const DEFAULT_LOOP = true; FILE: dev-tools/opentui-test-cli/src/ascii-motion-opentui-hex.tsx constant COLORS_DARK (line 6) | const COLORS_DARK: Record = { constant COLORS_LIGHT (line 337) | const COLORS_LIGHT: Record = { type FrameData (line 668) | type FrameData = { type PlaybackAPI (line 675) | type PlaybackAPI = { type AsciiMotionOpentuiHexProps (line 681) | type AsciiMotionOpentuiHexProps = { constant FRAMES (line 688) | const FRAMES: FrameData[] = [ constant CANVAS_WIDTH (line 7482) | const CANVAS_WIDTH = 60; constant CANVAS_HEIGHT (line 7483) | const CANVAS_HEIGHT = 24; constant DEFAULT_LOOP (line 7484) | const DEFAULT_LOOP = true; FILE: dev-tools/opentui-test-cli/src/ascii-motion-tui-ansi2.tsx constant COLORS_DARK (line 6) | const COLORS_DARK: Record = { constant COLORS_LIGHT (line 19) | const COLORS_LIGHT: Record = { type FrameData (line 32) | type FrameData = { type PlaybackAPI (line 39) | type PlaybackAPI = { type AsciiMotionTuiAnsiProps (line 45) | type AsciiMotionTuiAnsiProps = { constant FRAMES (line 52) | const FRAMES: FrameData[] = [ constant CANVAS_WIDTH (line 12863) | const CANVAS_WIDTH = 30; constant CANVAS_HEIGHT (line 12864) | const CANVAS_HEIGHT = 14; constant DEFAULT_LOOP (line 12865) | const DEFAULT_LOOP = true; FILE: dev-tools/opentui-test-cli/src/ascii-motion-tui-effects.tsx constant COLORS_DARK (line 6) | const COLORS_DARK: Record = { constant COLORS_LIGHT (line 436) | const COLORS_LIGHT: Record = { type FrameData (line 866) | type FrameData = { type PlaybackAPI (line 873) | type PlaybackAPI = { type AsciiMotionTuiEffectsProps (line 879) | type AsciiMotionTuiEffectsProps = { constant FRAMES (line 886) | const FRAMES: FrameData[] = [ constant CANVAS_WIDTH (line 39191) | const CANVAS_WIDTH = 80; constant CANVAS_HEIGHT (line 39192) | const CANVAS_HEIGHT = 24; constant DEFAULT_LOOP (line 39193) | const DEFAULT_LOOP = true; FILE: dev-tools/opentui-test-cli/src/ascii-motion-tui-semantic.tsx constant THEME_DARK (line 6) | const THEME_DARK: Record = { constant THEME_LIGHT (line 15) | const THEME_LIGHT: Record = { type FrameData (line 24) | type FrameData = { type PlaybackAPI (line 31) | type PlaybackAPI = { type AsciiMotionTuiSemanticProps (line 37) | type AsciiMotionTuiSemanticProps = { constant FRAMES (line 44) | const FRAMES: FrameData[] = [ constant CANVAS_WIDTH (line 6838) | const CANVAS_WIDTH = 60; constant CANVAS_HEIGHT (line 6839) | const CANVAS_HEIGHT = 24; constant DEFAULT_LOOP (line 6840) | const DEFAULT_LOOP = true; FILE: dev-tools/opentui-test-cli/src/ascii-motion-tui.tsx constant COLORS_DARK (line 7) | const COLORS_DARK: Record = { constant COLORS_LIGHT (line 31) | const COLORS_LIGHT: Record = { type FrameData (line 55) | type FrameData = { type PlaybackAPI (line 62) | type PlaybackAPI = { type AsciiMotionTuiProps (line 68) | type AsciiMotionTuiProps = { constant FRAMES (line 75) | const FRAMES: FrameData[] = [ constant CANVAS_WIDTH (line 17924) | const CANVAS_WIDTH = 72; constant CANVAS_HEIGHT (line 17925) | const CANVAS_HEIGHT = 23; constant DEFAULT_LOOP (line 17926) | const DEFAULT_LOOP = true; FILE: dev-tools/opentui-test-cli/src/ascii-motion-tui2.tsx constant COLORS_DARK (line 6) | const COLORS_DARK: Record = { constant COLORS_LIGHT (line 19) | const COLORS_LIGHT: Record = { type FrameData (line 32) | type FrameData = { type PlaybackAPI (line 39) | type PlaybackAPI = { type AsciiMotionTuiProps (line 45) | type AsciiMotionTuiProps = { constant FRAMES (line 52) | const FRAMES: FrameData[] = [ constant CANVAS_WIDTH (line 12863) | const CANVAS_WIDTH = 30; constant CANVAS_HEIGHT (line 12864) | const CANVAS_HEIGHT = 14; constant DEFAULT_LOOP (line 12865) | const DEFAULT_LOOP = true; FILE: dev-tools/opentui-test-cli/src/cli.tsx function main (line 20) | async function main() { FILE: dev-tools/opentui-test-cli/src/fish-animation-256.tsx constant COLORS_DARK (line 7) | const COLORS_DARK: Record = { constant COLORS_LIGHT (line 23) | const COLORS_LIGHT: Record = { type FrameData (line 39) | type FrameData = { type PlaybackAPI (line 46) | type PlaybackAPI = { type FishAnimation256Props (line 52) | type FishAnimation256Props = { constant FRAMES (line 59) | const FRAMES: FrameData[] = [ constant CANVAS_WIDTH (line 2852) | const CANVAS_WIDTH = 60; constant CANVAS_HEIGHT (line 2853) | const CANVAS_HEIGHT = 30; constant DEFAULT_LOOP (line 2854) | const DEFAULT_LOOP = true; FILE: dev-tools/opentui-test-cli/src/fish-animation.tsx constant COLORS_DARK (line 6) | const COLORS_DARK: Record = { constant COLORS_LIGHT (line 22) | const COLORS_LIGHT: Record = { type FrameData (line 38) | type FrameData = { type PlaybackAPI (line 45) | type PlaybackAPI = { type FishAnimationProps (line 51) | type FishAnimationProps = { constant FRAMES (line 58) | const FRAMES: FrameData[] = [ constant CANVAS_WIDTH (line 2851) | const CANVAS_WIDTH = 60; constant CANVAS_HEIGHT (line 2852) | const CANVAS_HEIGHT = 30; constant DEFAULT_LOOP (line 2853) | const DEFAULT_LOOP = true; FILE: dev-tools/react-export-test/src/App.tsx type PlaybackApi (line 22) | type PlaybackApi = { function MyPage (line 29) | function MyPage() { FILE: dev-tools/react-export-test/src/ascii-motion-animation-effects.tsx type CellData (line 6) | type CellData = (number | string)[]; type Frame (line 8) | type Frame = { type AsciiMotionComponentProps (line 13) | type AsciiMotionComponentProps = { constant COLORS (line 24) | const COLORS: string[] = ["#0002c7","#000ec7","#001ac7","#0026c7","#0032... constant FRAMES (line 26) | const FRAMES: Frame[] = [{"duration":33.333333333333336,"cells":[[14,0,"... constant CANVAS_WIDTH (line 28) | const CANVAS_WIDTH = 864; constant CANVAS_HEIGHT (line 29) | const CANVAS_HEIGHT = 432; constant CELL_WIDTH (line 30) | const CELL_WIDTH = 10.8; constant CELL_HEIGHT (line 31) | const CELL_HEIGHT = 18; constant FONT_SIZE (line 32) | const FONT_SIZE = 18; constant FONT_FAMILY (line 33) | const FONT_FAMILY = "SF Mono, Monaco, Cascadia Code, Consolas, JetBrains... constant BACKGROUND_COLOR (line 34) | const BACKGROUND_COLOR = "#000000"; FILE: dev-tools/react-export-test/src/ascii-motion-animation-new.tsx type CellData (line 6) | type CellData = (number | string)[]; type Frame (line 8) | type Frame = { type AsciiMotionComponentProps (line 13) | type AsciiMotionComponentProps = { constant COLORS (line 24) | const COLORS: string[] = ["#001621","#002eb3","#0069a3","#007a1d","#0095... constant FRAMES (line 26) | const FRAMES: Frame[] = [{"duration":33.333333333333336,"cells":[[6,0,"*... constant CANVAS_WIDTH (line 28) | const CANVAS_WIDTH = 691.2; constant CANVAS_HEIGHT (line 29) | const CANVAS_HEIGHT = 368; constant CELL_WIDTH (line 30) | const CELL_WIDTH = 9.6; constant CELL_HEIGHT (line 31) | const CELL_HEIGHT = 16; constant FONT_SIZE (line 32) | const FONT_SIZE = 16; constant FONT_FAMILY (line 33) | const FONT_FAMILY = "SF Mono, Monaco, Cascadia Code, Consolas, JetBrains... constant BACKGROUND_COLOR (line 34) | const BACKGROUND_COLOR = null; FILE: dev-tools/react-export-test/src/ascii-motion-animation.tsx type CellData (line 6) | type CellData = (number | string)[]; type Frame (line 8) | type Frame = { type AsciiMotionComponentProps (line 13) | type AsciiMotionComponentProps = { constant COLORS (line 24) | const COLORS: string[] = ["#001621","#002eb3","#0069a3","#007a1d","#0095... constant FRAMES (line 26) | const FRAMES: Frame[] = [{"duration":33.333333333333336,"cells":[[6,0,"*... constant CANVAS_WIDTH (line 28) | const CANVAS_WIDTH = 691.2; constant CANVAS_HEIGHT (line 29) | const CANVAS_HEIGHT = 368; constant CELL_WIDTH (line 30) | const CELL_WIDTH = 9.6; constant CELL_HEIGHT (line 31) | const CELL_HEIGHT = 16; constant FONT_SIZE (line 32) | const FONT_SIZE = 16; constant FONT_FAMILY (line 33) | const FONT_FAMILY = "SF Mono, Monaco, Cascadia Code, Consolas, JetBrains... constant BACKGROUND_COLOR (line 34) | const BACKGROUND_COLOR = "#000000"; FILE: dev-tools/react-export-test/src/shader-test-01.tsx type CellData (line 6) | type CellData = (number | string)[]; type Frame (line 8) | type Frame = { type AsciiMotionComponentProps (line 13) | type AsciiMotionComponentProps = { constant COLORS (line 24) | const COLORS: string[] = ["#088dff","#3181f8","#5a75f1","#8469eb","#FFFF... constant FRAMES (line 26) | const FRAMES: Frame[] = [{"duration":83.33333333333333,"cells":[[13,3,".... constant CANVAS_WIDTH (line 28) | const CANVAS_WIDTH = 864; constant CANVAS_HEIGHT (line 29) | const CANVAS_HEIGHT = 432; constant CELL_WIDTH (line 30) | const CELL_WIDTH = 10.8; constant CELL_HEIGHT (line 31) | const CELL_HEIGHT = 18; constant FONT_SIZE (line 32) | const FONT_SIZE = 18; constant FONT_FAMILY (line 33) | const FONT_FAMILY = "SF Mono, Monaco, Cascadia Code, Consolas, JetBrains... constant BACKGROUND_COLOR (line 34) | const BACKGROUND_COLOR = "#000000"; function hexToRgb (line 79) | function hexToRgb(hex) { function initGL (line 84) | function initGL() { function getProgram (line 107) | function getProgram(fragSrc) { function uploadTex (line 125) | function uploadTex(tex, source) { function ensureFBs (line 136) | function ensureFBs(w, h) { function setUniformValue (line 159) | function setUniformValue(prog, name, value, prop) { FILE: dev-tools/react-export-test/src/shader-test-02.tsx type CellData (line 6) | type CellData = (number | string)[]; type Frame (line 8) | type Frame = { type AsciiMotionComponentProps (line 13) | type AsciiMotionComponentProps = { constant COLORS (line 24) | const COLORS: string[] = ["#088dff","#3181f8","#5a75f1","#8469eb","#FFFF... constant FRAMES (line 26) | const FRAMES: Frame[] = [{"duration":83.33333333333333,"cells":[[13,3,".... constant CANVAS_WIDTH (line 28) | const CANVAS_WIDTH = 864; constant CANVAS_HEIGHT (line 29) | const CANVAS_HEIGHT = 432; constant CELL_WIDTH (line 30) | const CELL_WIDTH = 10.8; constant CELL_HEIGHT (line 31) | const CELL_HEIGHT = 18; constant FONT_SIZE (line 32) | const FONT_SIZE = 18; constant FONT_FAMILY (line 33) | const FONT_FAMILY = "SF Mono, Monaco, Cascadia Code, Consolas, JetBrains... constant BACKGROUND_COLOR (line 34) | const BACKGROUND_COLOR = "#000000"; function hexToRgb (line 80) | function hexToRgb(hex) { function initGL (line 85) | function initGL() { function getProgram (line 108) | function getProgram(fragSrc) { function uploadTex (line 126) | function uploadTex(tex, source) { function ensureFBs (line 137) | function ensureFBs(w, h) { function setUniformValue (line 161) | function setUniformValue(prog, name, value, prop) { FILE: dev-tools/test-frame-timing.js function calculateVideoFramesForDuration (line 7) | function calculateVideoFramesForDuration(durationMs, videoFrameRate) { function testFrameTiming (line 14) | function testFrameTiming() { function testLoopTiming (line 62) | function testLoopTiming() { FILE: dev-tools/test-json-html-export.js function testNewJsonExportFormat (line 7) | function testNewJsonExportFormat() { function testHtmlExportStructure (line 101) | function testHtmlExportStructure() { FILE: dev-tools/test-video-export.js function testWebCodecsSupport (line 7) | function testWebCodecsSupport() { function testWebMMuxer (line 17) | async function testWebMMuxer() { function testVideoExportDialog (line 42) | function testVideoExportDialog() { function runVideoExportTests (line 53) | async function runVideoExportTests() { FILE: dev-tools/test-video-loops.js function testLoopSettings (line 7) | function testLoopSettings() { function getLoopMultiplier (line 33) | function getLoopMultiplier(loops) { FILE: docs/MCP_GUIDE_RESOURCE_CODE.ts constant LLM_BEST_PRACTICES_GUIDE (line 14) | const LLM_BEST_PRACTICES_GUIDE = ` function registerGuideResources (line 72) | function registerGuideResources(server: McpServer): void { FILE: packages/core/src/components/ui/badge.tsx type BadgeProps (line 26) | interface BadgeProps function Badge (line 30) | function Badge({ className, variant, ...props }: BadgeProps) { FILE: packages/core/src/components/ui/button.tsx type ButtonProps (line 37) | interface ButtonProps FILE: packages/core/src/components/ui/menubar.tsx function MenubarMenu (line 7) | function MenubarMenu({ function MenubarGroup (line 13) | function MenubarGroup({ function MenubarPortal (line 19) | function MenubarPortal({ function MenubarRadioGroup (line 25) | function MenubarRadioGroup({ function MenubarSub (line 31) | function MenubarSub({ FILE: packages/core/src/components/ui/sheet.tsx type SheetContentProps (line 52) | interface SheetContentProps FILE: packages/core/src/components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ FILE: packages/core/src/components/ui/slider.tsx type SliderProps (line 4) | interface SliderProps extends Omit0){callb... function getWasmTableEntry (line 8) | function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if... function getValue (line 8) | function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(t... function setValue (line 8) | function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";sw... function UTF8ArrayToString (line 8) | function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=id... function UTF8ToString (line 8) | function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(H... function ___assert_fail (line 8) | function ___assert_fail(condition,filename,line,func){abort(`Assertion f... function ExceptionInfo (line 8) | function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;thi... function ___cxa_throw (line 8) | function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(pt... function ___dlsym (line 8) | function ___dlsym(handle,symbol){abort(dlopenMissingError)} function initRandomFill (line 8) | function initRandomFill(){if(typeof crypto=="object"&&typeof crypto["get... function randomFill (line 8) | function randomFill(view){return(randomFill=initRandomFill())(view)} function trim (line 8) | function trim(arr){var start=0;for(;start0... function zeroMemory (line 8) | function zeroMemory(address,size){HEAPU8.fill(0,address,address+size);re... function alignMemory (line 8) | function alignMemory(size,alignment){return Math.ceil(size/alignment)*al... function mmapAlloc (line 8) | function mmapAlloc(size){size=alignMemory(size,65536);var ptr=_emscripte... function asyncLoad (line 8) | function asyncLoad(url,onload,onerror,noRunDep){var dep=!noRunDep?getUni... function FS_handledByPreloadPlugin (line 8) | function FS_handledByPreloadPlugin(byteArray,fullname,finish,onerror){if... function FS_createPreloadedFile (line 8) | function FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,... function FS_modeStringToFlags (line 8) | function FS_modeStringToFlags(str){var flagModes={"r":0,"r+":2,"w":512|6... function FS_getMode (line 8) | function FS_getMode(canRead,canWrite){var mode=0;if(canRead)mode|=292|73... function ensureParent (line 8) | function ensureParent(path){var parts=path.split("/");var parent=root;fo... function base (line 8) | function base(path){var parts=path.split("/");return parts[parts.length-1]} function doCallback (line 8) | function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)} function done (line 8) | function done(errCode){if(errCode){if(!done.errored){done.errored=true;r... function LazyUint8Array (line 8) | function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]} function writeChunks (line 8) | function writeChunks(stream,buffer,offset,length,position){var contents=... function ___syscall__newselect (line 8) | function ___syscall__newselect(nfds,readfds,writefds,exceptfds,timeout){... function handleMessage (line 8) | function handleMessage(data){if(typeof data=="string"){var encoder=new T... function getSocketFromFD (line 8) | function getSocketFromFD(fd){var socket=SOCKFS.getSocket(fd);if(!socket)... function setErrNo (line 8) | function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value} function inetPton4 (line 8) | function inetPton4(str){var b=str.split(".");for(var i=0;i<4;i++){var tm... function jstoi_q (line 8) | function jstoi_q(str){return parseInt(str)} function inetPton6 (line 8) | function inetPton6(str){var words;var w,offset,z;var valid6regx=/^((?=.*... function writeSockaddr (line 8) | function writeSockaddr(sa,family,addr,port,addrlen){switch(family){case ... function ___syscall_accept4 (line 8) | function ___syscall_accept4(fd,addr,addrlen,flags,d1,d2){try{var sock=ge... function inetNtop4 (line 8) | function inetNtop4(addr){return(addr&255)+"."+(addr>>8&255)+"."+(addr>>1... function inetNtop6 (line 8) | function inetNtop6(ints){var str="";var word=0;var longest=0;var lastzer... function readSockaddr (line 8) | function readSockaddr(sa,salen){var family=HEAP16[sa>>1];var port=_ntohs... function getSocketAddress (line 8) | function getSocketAddress(addrp,addrlen,allowNull){if(allowNull&&addrp==... function ___syscall_bind (line 8) | function ___syscall_bind(fd,addr,addrlen,d1,d2,d3){try{var sock=getSocke... function ___syscall_connect (line 8) | function ___syscall_connect(fd,addr,addrlen,d1,d2,d3){try{var sock=getSo... function ___syscall_faccessat (line 8) | function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.... function ___syscall_fcntl64 (line 8) | function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try... function ___syscall_fstat64 (line 8) | function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFro... function stringToUTF8 (line 8) | function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Arr... function ___syscall_getdents64 (line 8) | function ___syscall_getdents64(fd,dirp,count){try{var stream=SYSCALLS.ge... function ___syscall_getpeername (line 8) | function ___syscall_getpeername(fd,addr,addrlen,d1,d2,d3){try{var sock=g... function ___syscall_getsockname (line 8) | function ___syscall_getsockname(fd,addr,addrlen,d1,d2,d3){try{var sock=g... function ___syscall_getsockopt (line 8) | function ___syscall_getsockopt(fd,level,optname,optval,optlen,d1){try{va... function ___syscall_ioctl (line 8) | function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{va... function ___syscall_listen (line 8) | function ___syscall_listen(fd,backlog){try{var sock=getSocketFromFD(fd);... function ___syscall_lstat64 (line 8) | function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);ret... function ___syscall_mkdirat (line 8) | function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(pa... function ___syscall_newfstatat (line 8) | function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.g... function ___syscall_openat (line 8) | function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=va... function ___syscall_poll (line 8) | function ___syscall_poll(fds,nfds,timeout){try{var nonzero=0;for(var i=0... function ___syscall_recvfrom (line 8) | function ___syscall_recvfrom(fd,buf,len,flags,addr,addrlen){try{var sock... function ___syscall_renameat (line 8) | function ___syscall_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldp... function ___syscall_rmdir (line 8) | function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(... function ___syscall_sendto (line 8) | function ___syscall_sendto(fd,message,length,flags,addr,addr_len){try{va... function ___syscall_socket (line 8) | function ___syscall_socket(domain,type,protocol){try{var sock=SOCKFS.cre... function ___syscall_stat64 (line 8) | function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);retu... function ___syscall_unlinkat (line 8) | function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(... function __emscripten_get_now_is_monotonic (line 8) | function __emscripten_get_now_is_monotonic(){return nowIsMonotonic} function __emscripten_throw_longjmp (line 8) | function __emscripten_throw_longjmp(){throw Infinity} function readI53FromI64 (line 8) | function readI53FromI64(ptr){return HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*429... function __gmtime_js (line 8) | function __gmtime_js(time,tmPtr){var date=new Date(readI53FromI64(time)*... function isLeapYear (line 8) | function isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)} function ydayFromDate (line 8) | function ydayFromDate(date){var leap=isLeapYear(date.getFullYear());var ... function __localtime_js (line 8) | function __localtime_js(time,tmPtr){var date=new Date(readI53FromI64(tim... function __mktime_js (line 8) | function __mktime_js(tmPtr){var date=new Date(HEAP32[tmPtr+20>>2]+1900,H... function __mmap_js (line 8) | function __mmap_js(len,prot,flags,fd,off,allocated,addr){try{var stream=... function __munmap_js (line 8) | function __munmap_js(addr,len,prot,flags,fd,offset){try{var stream=SYSCA... function stringToNewUTF8 (line 8) | function stringToNewUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_m... function __tzset_js (line 8) | function __tzset_js(timezone,daylight,tzname){var currentYear=(new Date)... function _abort (line 8) | function _abort(){abort("")} function _dlopen (line 8) | function _dlopen(handle){abort(dlopenMissingError)} function readEmAsmArgs (line 8) | function readEmAsmArgs(sigPtr,buf){readEmAsmArgsArray.length=0;var ch;bu... function runEmAsmFunction (line 8) | function runEmAsmFunction(code,sigPtr,argbuf){var args=readEmAsmArgs(sig... function _emscripten_asm_const_int (line 8) | function _emscripten_asm_const_int(code,sigPtr,argbuf){return runEmAsmFu... function _emscripten_date_now (line 8) | function _emscripten_date_now(){return Date.now()} function getHeapMax (line 8) | function getHeapMax(){return 2147483648} function _emscripten_get_heap_max (line 8) | function _emscripten_get_heap_max(){return getHeapMax()} function _emscripten_memcpy_big (line 8) | function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src... function emscripten_realloc_buffer (line 8) | function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{was... function _emscripten_resize_heap (line 8) | function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.lengt... function getExecutableName (line 8) | function getExecutableName(){return thisProgram||"./this.program"} function getEnvStrings (line 8) | function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof nav... function stringToAscii (line 8) | function stringToAscii(str,buffer){for(var i=0;iMAX_INT53?NaN... function _fd_seek (line 8) | function _fd_seek(fd,offset,whence,newOffset){try{offset=bigintToI53Chec... function doWritev (line 8) | function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var... function invoke_iiiii (line 8) | function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return g... function invoke_vii (line 8) | function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntr... function invoke_iii (line 8) | function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTa... function invoke_iiiijj (line 8) | function invoke_iiiijj(index,a1,a2,a3,a4,a5){var sp=stackSave();try{retu... function invoke_iiiiiiiii (line 8) | function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSav... function invoke_vi (line 8) | function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(in... function invoke_viiii (line 8) | function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmT... function invoke_iiii (line 8) | function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWa... function invoke_iij (line 8) | function invoke_iij(index,a1,a2){var sp=stackSave();try{return getWasmTa... function invoke_i (line 8) | function invoke_i(index){var sp=stackSave();try{return getWasmTableEntry... function invoke_ii (line 8) | function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableE... function invoke_viiiiiiii (line 8) | function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSav... function invoke_iiiiii (line 8) | function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{retu... function invoke_viiiiii (line 8) | function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{... function run (line 8) | function run(){if(runDependencies>0){return}preRun();if(runDependencies>... FILE: scripts/check-licenses.js constant MIT_HEADER (line 14) | const MIT_HEADER = '@license MIT'; constant PROPRIETARY_HEADER (line 15) | const PROPRIETARY_HEADER = '@license Proprietary'; constant COLORS (line 17) | const COLORS = { FILE: scripts/migrate-to-monorepo.js constant COLORS (line 15) | const COLORS = { FILE: scripts/version-bump.js constant VERSION_FILE (line 12) | const VERSION_FILE = path.join(__dirname, '../src/constants/version.ts'); constant PACKAGE_FILE (line 13) | const PACKAGE_FILE = path.join(__dirname, '../package.json'); function getCurrentGitHash (line 25) | function getCurrentGitHash() { function getCommitsSinceLastVersion (line 34) | function getCommitsSinceLastVersion(lastVersionTag) { function parseVersion (line 56) | function parseVersion(versionString) { function incrementVersion (line 68) | function incrementVersion(version, type) { function formatVersion (line 89) | function formatVersion(version) { function readCurrentVersion (line 93) | function readCurrentVersion() { function readVersionHistory (line 106) | function readVersionHistory() { function updatePackageJson (line 120) | function updatePackageJson(newVersion) { function generateVersionFile (line 131) | function generateVersionFile(newVersion, buildDate, buildHash, versionHi... function createGitTag (line 146) | function createGitTag(version) { function main (line 156) | function main() { FILE: src/App.tsx function AuthRedirect (line 37) | function AuthRedirect({ type }: { type: 'signup' | 'login' }) { function AppContent (line 65) | function AppContent() { function App (line 390) | function App() { FILE: src/__tests__/canvasStoreLayerSync.test.ts function resetCanvas (line 17) | function resetCanvas() { function cell (line 25) | function cell(char = 'X', color = '#FFFFFF', bgColor = 'transparent'): C... FILE: src/__tests__/easing.test.ts function kf (line 20) | function kf(frame: number, value: number, easing?: EasingCurve): Keyframe { FILE: src/__tests__/effectBlocks.test.ts function resetStore (line 12) | function resetStore() { FILE: src/__tests__/effectsPipeline.test.ts function makeCell (line 27) | function makeCell(char: string, color = '#ffffff', bgColor = '#000000'):... function makeCells (line 31) | function makeCells(entries: [string, Cell][]): Map { function makeBlock (line 35) | function makeBlock(overrides: Partial = {}): EffectBlock { function makeTrack (line 48) | function makeTrack(blockOverrides: Partial = {}, trackOverr... FILE: src/__tests__/layerCompositing.test.ts function makeCell (line 34) | function makeCell(char: string, color = '#FFFFFF', bgColor = 'transparen... function makeCellMap (line 38) | function makeCellMap(entries: [number, number, Cell][]): Map): SessionDataV2 { function makeV1Session (line 88) | function makeV1Session(): Record { FILE: src/__tests__/phase6Integration.test.ts function resetStores (line 23) | function resetStores() { function makeCell (line 34) | function makeCell(char: string, color = '#ffffff', bgColor = '#000000'):... FILE: src/__tests__/sessionMigration.test.ts function makeV1Session (line 20) | function makeV1Session(overrides?: Record): Record): SessionDataV2 { FILE: src/__tests__/timelineStore.test.ts function resetStore (line 16) | function resetStore() { FILE: src/__tests__/timelineUI.test.ts function resetStore (line 27) | function resetStore() { FILE: src/__tests__/useTimelineHistory.test.ts function resetAll (line 37) | function resetAll() { FILE: src/components/common/AppReveal.tsx type AppRevealProps (line 4) | interface AppRevealProps { function AppReveal (line 8) | function AppReveal({ children }: AppRevealProps) { FILE: src/components/common/AsciiMotionLogo.tsx type CellData (line 3) | type CellData = { type Frame (line 11) | type Frame = { type AsciiMotionLogoProps (line 16) | type AsciiMotionLogoProps = { FILE: src/components/common/CellRenderer.tsx type CellRendererProps (line 4) | interface CellRendererProps { FILE: src/components/common/CollapsibleHeader.tsx type CollapsibleHeaderProps (line 6) | interface CollapsibleHeaderProps { FILE: src/components/common/CollapsiblePanel.tsx type CollapsiblePanelProps (line 5) | interface CollapsiblePanelProps { FILE: src/components/common/ColorSwatch.tsx type ColorSwatchProps (line 3) | interface ColorSwatchProps { FILE: src/components/common/DraggableDialogBar.tsx type DraggableDialogBarProps (line 5) | interface DraggableDialogBarProps { FILE: src/components/common/PanelSeparator.tsx type PanelSeparatorProps (line 23) | interface PanelSeparatorProps { FILE: src/components/common/PanelToggleButton.tsx type PanelToggleButtonProps (line 8) | interface PanelToggleButtonProps { FILE: src/components/common/PerformanceMonitor.tsx type PerformanceTestResult (line 10) | interface PerformanceTestResult { FILE: src/components/common/Spinner.tsx type SpinnerProps (line 4) | interface SpinnerProps { FILE: src/components/common/ThemeToggle.tsx function ThemeToggle (line 6) | function ThemeToggle() { FILE: src/components/demos/SimpleAsciiDemo.tsx constant FRAMES (line 11) | const FRAMES = [ FILE: src/components/features/AboutDialog.tsx type AboutDialogProps (line 12) | interface AboutDialogProps { FILE: src/components/features/AccountButton.tsx function AccountButton (line 23) | function AccountButton() { FILE: src/components/features/ActiveLayerIndicator.tsx function ActiveLayerIndicator (line 14) | function ActiveLayerIndicator() { FILE: src/components/features/ActiveStyleSection.tsx type ActiveStyleSectionProps (line 28) | interface ActiveStyleSectionProps { function ActiveStyleSection (line 32) | function ActiveStyleSection({ className = '' }: ActiveStyleSectionProps) { FILE: src/components/features/AnchorPointOverlay.tsx constant EMPTY_LAYERS (line 25) | const EMPTY_LAYERS: Layer[] = []; FILE: src/components/features/AsciiBoxPanel.tsx function AsciiBoxPanel (line 28) | function AsciiBoxPanel() { FILE: src/components/features/AsciiTypePanel.tsx constant LAYOUT_LABELS (line 47) | const LAYOUT_LABELS: Record = { function AsciiTypePanel (line 55) | function AsciiTypePanel() { FILE: src/components/features/AsciiTypePreviewDialog.tsx constant DIALOG_WIDTH (line 25) | const DIALOG_WIDTH = 680; type FontPreviewState (line 27) | interface FontPreviewState { function AsciiTypePreviewDialog (line 32) | function AsciiTypePreviewDialog() { FILE: src/components/features/AuthButtons.tsx function AuthButtons (line 8) | function AuthButtons() { FILE: src/components/features/BackgroundColorMappingSection.tsx type BackgroundColorMappingSectionProps (line 53) | interface BackgroundColorMappingSectionProps { function BackgroundColorMappingSection (line 57) | function BackgroundColorMappingSection({ onSettingsChange }: BackgroundC... FILE: src/components/features/BezierActionButtons.tsx type BezierActionButtonsProps (line 15) | interface BezierActionButtonsProps { FILE: src/components/features/BrushControls.tsx type BrushControlsProps (line 16) | interface BrushControlsProps { FILE: src/components/features/BrushPreview.tsx type BrushPreviewProps (line 13) | interface BrushPreviewProps { FILE: src/components/features/BrushSizePreviewOverlay.tsx type OverlayState (line 24) | type OverlayState = 'hidden' | 'entering' | 'visible' | 'exiting'; FILE: src/components/features/CanvasActionButtons.tsx type ResizeHistoryAction (line 26) | interface ResizeHistoryAction { type TimeEffectHistoryAction (line 38) | interface TimeEffectHistoryAction { type DurationHistoryAction (line 45) | interface DurationHistoryAction { FILE: src/components/features/CanvasGrid.tsx type CanvasGridProps (line 20) | interface CanvasGridProps { FILE: src/components/features/CanvasOverlay.tsx type GradientPropertyKey (line 18) | type GradientPropertyKey = 'character' | 'textColor' | 'backgroundColor'; FILE: src/components/features/CanvasResizeDialog.tsx type CanvasResizeDialogProps (line 26) | interface CanvasResizeDialogProps { function CanvasResizeDialog (line 40) | function CanvasResizeDialog({ isOpen, onOpenChange }: CanvasResizeDialog... FILE: src/components/features/CanvasSizePicker.tsx type CanvasSizePickerProps (line 5) | interface CanvasSizePickerProps { FILE: src/components/features/CanvasWithShortcuts.tsx type Window (line 6) | interface Window { type CanvasWithShortcutsProps (line 14) | interface CanvasWithShortcutsProps { FILE: src/components/features/CharacterMappingControls.tsx type CharacterMappingControlsProps (line 25) | interface CharacterMappingControlsProps { function CharacterMappingControls (line 29) | function CharacterMappingControls({ onSettingsChange }: CharacterMapping... FILE: src/components/features/CharacterMappingSection.tsx type CharacterMappingSectionProps (line 57) | interface CharacterMappingSectionProps { function CharacterMappingSection (line 61) | function CharacterMappingSection({ onSettingsChange }: CharacterMappingS... FILE: src/components/features/CharacterPalette.tsx type CharacterPaletteProps (line 21) | interface CharacterPaletteProps { constant CATEGORY_ICONS (line 25) | const CATEGORY_ICONS = { FILE: src/components/features/CharacterPaletteEditor.tsx type CharacterPaletteEditorProps (line 33) | interface CharacterPaletteEditorProps { function CharacterPaletteEditor (line 37) | function CharacterPaletteEditor({ onPaletteChange }: CharacterPaletteEdi... FILE: src/components/features/ColorPicker.tsx type ColorPickerProps (line 22) | interface ColorPickerProps { FILE: src/components/features/ColorPickerOverlay.tsx type ColorPickerOverlayProps (line 26) | interface ColorPickerOverlayProps { FILE: src/components/features/ColorPicker_new.tsx type ColorPickerProps (line 18) | interface ColorPickerProps { FILE: src/components/features/ColorReadout.tsx type ColorReadoutProps (line 10) | interface ColorReadoutProps { FILE: src/components/features/EffectsSection.tsx type EffectsSectionProps (line 21) | interface EffectsSectionProps { function EffectsSection (line 25) | function EffectsSection({ className = '' }: EffectsSectionProps) { FILE: src/components/features/EnhancedCharacterPicker.tsx type EnhancedCharacterPickerProps (line 22) | interface EnhancedCharacterPickerProps { constant CATEGORY_ICONS (line 32) | const CATEGORY_ICONS = { FILE: src/components/features/ExportCharacterPaletteDialog.tsx type ExportCharacterPaletteDialogProps (line 15) | interface ExportCharacterPaletteDialogProps { FILE: src/components/features/ExportImportButtons.tsx constant EXPORT_OPTIONS (line 16) | const EXPORT_OPTIONS = [ constant IMPORT_OPTIONS (line 80) | const IMPORT_OPTIONS = [ FILE: src/components/features/ExportPaletteDialog.tsx type ExportPaletteDialogProps (line 15) | interface ExportPaletteDialogProps { FILE: src/components/features/ForegroundBackgroundSelector.tsx type ForegroundBackgroundSelectorProps (line 11) | interface ForegroundBackgroundSelectorProps { FILE: src/components/features/FullscreenToggle.tsx type FullscreenToggleProps (line 6) | interface FullscreenToggleProps { FILE: src/components/features/GeneratorsPanel.tsx constant GENERATOR_ICONS (line 40) | const GENERATOR_ICONS = { function GeneratorsPanel (line 54) | function GeneratorsPanel() { FILE: src/components/features/GeneratorsSection.tsx constant GENERATOR_ICONS (line 32) | const GENERATOR_ICONS = { type GeneratorsSectionProps (line 40) | interface GeneratorsSectionProps { function GeneratorsSection (line 44) | function GeneratorsSection({ className = '' }: GeneratorsSectionProps) { FILE: src/components/features/GradientPanel.tsx function GradientPanel (line 71) | function GradientPanel() { FILE: src/components/features/GradientPropertyPreview.tsx constant MAX_PREVIEW_WIDTH (line 8) | const MAX_PREVIEW_WIDTH = 256; constant PREVIEW_HEIGHT (line 9) | const PREVIEW_HEIGHT = 24; constant TILE_SIZE (line 10) | const TILE_SIZE = 4; type GradientPropertyKey (line 12) | type GradientPropertyKey = 'character' | 'textColor' | 'backgroundColor'; type GradientPropertyPreviewProps (line 14) | interface GradientPropertyPreviewProps { FILE: src/components/features/GradientStopPicker.tsx type GradientStopPickerProps (line 5) | interface GradientStopPickerProps { FILE: src/components/features/HamburgerMenu.tsx type HamburgerMenuProps (line 24) | interface HamburgerMenuProps { FILE: src/components/features/ImageExportDialog.tsx constant FORMAT_OPTIONS (line 28) | const FORMAT_OPTIONS: Array<{ value: 'png' | 'jpg' | 'svg'; label: strin... FILE: src/components/features/ImportCharacterPaletteDialog.tsx type ImportCharacterPaletteDialogProps (line 15) | interface ImportCharacterPaletteDialogProps { FILE: src/components/features/ImportPaletteDialog.tsx type ImportPaletteDialogProps (line 16) | interface ImportPaletteDialogProps { FILE: src/components/features/InlineProjectNameEditor.tsx function InlineProjectNameEditor (line 21) | function InlineProjectNameEditor() { FILE: src/components/features/InteractiveBezierOverlay.tsx function distanceToSegment (line 688) | function distanceToSegment(px: number, py: number, x1: number, y1: numbe... FILE: src/components/features/InteractiveVectorShapeOverlay.tsx type HandleId (line 28) | type HandleId = 'nw' | 'n' | 'ne' | 'e' | 'se' | 's' | 'sw' | 'w'; constant HANDLE_RADIUS (line 30) | const HANDLE_RADIUS = 5; constant HANDLE_HIT_RADIUS (line 31) | const HANDLE_HIT_RADIUS = 8; FILE: src/components/features/KeyboardShortcutsDialog.tsx type KeyboardShortcutsDialogProps (line 8) | interface KeyboardShortcutsDialogProps { type ShortcutItem (line 13) | interface ShortcutItem { type ShortcutSection (line 18) | interface ShortcutSection { constant KEYBOARD_SHORTCUTS (line 23) | const KEYBOARD_SHORTCUTS: ShortcutSection[] = [ FILE: src/components/features/MCPConnectionDialog.tsx type MCPConnectionDialogProps (line 20) | interface MCPConnectionDialogProps { FILE: src/components/features/MainCharacterPaletteSection.tsx type MainCharacterPaletteSectionProps (line 50) | interface MainCharacterPaletteSectionProps { function MainCharacterPaletteSection (line 54) | function MainCharacterPaletteSection({ className = '' }: MainCharacterPa... FILE: src/components/features/ManageCharacterPalettesDialog.tsx type ManageCharacterPalettesDialogProps (line 10) | interface ManageCharacterPalettesDialogProps { FILE: src/components/features/ManagePalettesDialog.tsx type ManagePalettesDialogProps (line 10) | interface ManagePalettesDialogProps { FILE: src/components/features/MediaImportPanel.tsx function applyColorKey (line 93) | function applyColorKey( function hexToRgb (line 163) | function hexToRgb(hex: string): [number, number, number] { type CropAlignmentOption (line 168) | type CropAlignmentOption = { function MediaImportPanel (line 185) | function MediaImportPanel() { FILE: src/components/features/NewProjectDialog.tsx function NewProjectDialog (line 30) | function NewProjectDialog() { FILE: src/components/features/PlaybackControls.tsx type PlaybackControlsProps (line 7) | interface PlaybackControlsProps { FILE: src/components/features/PlaybackOverlay.tsx type PlaybackOverlayProps (line 8) | interface PlaybackOverlayProps { FILE: src/components/features/PostEffectsSection.tsx type PostEffectsSectionProps (line 22) | interface PostEffectsSectionProps { function PostEffectsSection (line 26) | function PostEffectsSection({ className = '' }: PostEffectsSectionProps) { FILE: src/components/features/PreprocessingSection.tsx type PreprocessingSectionProps (line 40) | interface PreprocessingSectionProps { function PreprocessingSection (line 44) | function PreprocessingSection({ onSettingsChange }: PreprocessingSection... FILE: src/components/features/ProjectCanvasPreview.tsx type ProjectCanvasPreviewProps (line 14) | interface ProjectCanvasPreviewProps { function getFirstFrameCells (line 24) | function getFirstFrameCells( FILE: src/components/features/ProjectSettingsDialog.tsx function ProjectSettingsDialog (line 27) | function ProjectSettingsDialog() { FILE: src/components/features/ProjectsDialog.tsx constant CACHE_KEY_PROJECTS (line 75) | const CACHE_KEY_PROJECTS = 'ascii-motion:projects-cache'; constant CACHE_KEY_DELETED (line 76) | const CACHE_KEY_DELETED = 'ascii-motion:deleted-projects-cache'; constant CACHE_KEY_PROFILE (line 77) | const CACHE_KEY_PROFILE = 'ascii-motion:user-profile-cache'; function hasSessionStorage (line 79) | function hasSessionStorage(): boolean { function getCachedProjects (line 83) | function getCachedProjects(): CloudProject[] | null { function getCachedDeletedProjects (line 91) | function getCachedDeletedProjects(): CloudProject[] | null { function getCachedUserProfile (line 99) | function getCachedUserProfile(): UserProfile | null { function setCachedProjects (line 107) | function setCachedProjects(projects: CloudProject[]) { function setCachedDeletedProjects (line 112) | function setCachedDeletedProjects(projects: CloudProject[]) { function setCachedUserProfile (line 117) | function setCachedUserProfile(profile: UserProfile) { function ProjectCardSkeleton (line 123) | function ProjectCardSkeleton() { type ProjectsDialogProps (line 148) | interface ProjectsDialogProps { function ProjectsDialog (line 156) | function ProjectsDialog({ FILE: src/components/features/PublishToGalleryDialogWrapper.tsx type PublishToGalleryDialogWrapperProps (line 16) | interface PublishToGalleryDialogWrapperProps { function PublishToGalleryDialogWrapper (line 22) | function PublishToGalleryDialogWrapper({ FILE: src/components/features/PublishedProjectSaveWarningDialog.tsx type PublishedProjectSaveWarningDialogProps (line 16) | interface PublishedProjectSaveWarningDialogProps { function PublishedProjectSaveWarningDialog (line 23) | function PublishedProjectSaveWarningDialog({ FILE: src/components/features/SaveToCloudDialog.tsx type SaveToCloudDialogProps (line 39) | interface SaveToCloudDialogProps { function SaveToCloudDialog (line 44) | function SaveToCloudDialog({ open, onOpenChange }: SaveToCloudDialogProp... FILE: src/components/features/SilentSaveHandler.tsx function SilentSaveHandler (line 26) | function SilentSaveHandler() { FILE: src/components/features/TextColorMappingSection.tsx type TextColorMappingSectionProps (line 53) | interface TextColorMappingSectionProps { function TextColorMappingSection (line 57) | function TextColorMappingSection({ onSettingsChange }: TextColorMappingS... FILE: src/components/features/ToolPalette.tsx type ToolPaletteProps (line 46) | interface ToolPaletteProps { constant DRAWING_TOOLS (line 71) | const DRAWING_TOOLS: Array<{ id: Tool; name: string; icon: React.ReactNo... constant SELECTION_TOOLS (line 84) | const SELECTION_TOOLS: Array<{ id: Tool; name: string; icon: React.React... constant UTILITY_TOOLS (line 90) | const UTILITY_TOOLS: Array<{ id: Tool; name: string; icon: React.ReactNo... FILE: src/components/features/ToolPalette_backup.tsx type ToolPaletteProps (line 23) | interface ToolPaletteProps { constant DRAWING_TOOLS (line 48) | const DRAWING_TOOLS: Array<{ id: Tool; name: string; icon: React.ReactNo... constant SELECTION_TOOLS (line 57) | const SELECTION_TOOLS: Array<{ id: Tool; name: string; icon: React.React... constant UTILITY_TOOLS (line 64) | const UTILITY_TOOLS: Array<{ id: Tool; name: string; icon: React.ReactNo... FILE: src/components/features/ToolPalette_new.tsx type ToolPaletteProps (line 23) | interface ToolPaletteProps { constant DRAWING_TOOLS (line 48) | const DRAWING_TOOLS: Array<{ id: Tool; name: string; icon: React.ReactNo... constant SELECTION_TOOLS (line 57) | const SELECTION_TOOLS: Array<{ id: Tool; name: string; icon: React.React... constant UTILITY_TOOLS (line 64) | const UTILITY_TOOLS: Array<{ id: Tool; name: string; icon: React.ReactNo... FILE: src/components/features/TransparencySection.tsx type TransparencySectionProps (line 30) | interface TransparencySectionProps { function TransparencySection (line 38) | function TransparencySection({ onSettingsChange, previewFrames = [], fra... FILE: src/components/features/UpgradeToProDialog.tsx type UpgradeToProDialogProps (line 22) | interface UpgradeToProDialogProps { function UpgradeToProDialog (line 31) | function UpgradeToProDialog({ FILE: src/components/features/WelcomeAsciiAnimationData.tsx type CellData (line 8) | type CellData = { type Frame (line 16) | type Frame = { constant FRAMES (line 21) | const FRAMES: Frame[] = [ FILE: src/components/features/generators/DigitalRainSettings.tsx function DigitalRainSettings (line 14) | function DigitalRainSettings() { FILE: src/components/features/generators/GeneratorsMappingTab.tsx function GeneratorsMappingTab (line 33) | function GeneratorsMappingTab() { FILE: src/components/features/generators/ParticlePhysicsSettings.tsx function ParticlePhysicsSettings (line 16) | function ParticlePhysicsSettings() { FILE: src/components/features/generators/PlaceholderGeneratorSettings.tsx type PlaceholderGeneratorSettingsProps (line 11) | interface PlaceholderGeneratorSettingsProps { function PlaceholderGeneratorSettings (line 19) | function PlaceholderGeneratorSettings({ FILE: src/components/features/generators/RadioWavesSettings.tsx function RadioWavesSettings (line 21) | function RadioWavesSettings() { FILE: src/components/features/generators/RainDropsSettings.tsx function RainDropsSettings (line 14) | function RainDropsSettings() { FILE: src/components/features/generators/TurbulentNoiseSettings.tsx function TurbulentNoiseSettings (line 15) | function TurbulentNoiseSettings() { FILE: src/components/features/preview/GeneratorPreviewCanvas.tsx type GeneratorPreviewCanvasProps (line 22) | interface GeneratorPreviewCanvasProps { function GeneratorPreviewCanvas (line 31) | function GeneratorPreviewCanvas({ FILE: src/components/features/timeline/ContentFrameBlock.tsx type ContentFrameBlockProps (line 23) | interface ContentFrameBlockProps { constant DRAG_THRESHOLD (line 31) | const DRAG_THRESHOLD = 4; FILE: src/components/features/timeline/EasingCurveEditor.tsx type EasingCurveEditorProps (line 19) | interface EasingCurveEditorProps { constant SVG_SIZE (line 26) | const SVG_SIZE = 160; constant PADDING (line 27) | const PADDING = 16; constant GRAPH_SIZE (line 28) | const GRAPH_SIZE = SVG_SIZE - PADDING * 2; constant HANDLE_RADIUS (line 29) | const HANDLE_RADIUS = 5; constant PRESET_ORDER (line 32) | const PRESET_ORDER: EasingPreset[] = [ constant PRESET_LABELS (line 44) | const PRESET_LABELS: Record = { function toSvg (line 58) | function toSvg(nx: number, ny: number): { x: number; y: number } { function fromSvg (line 66) | function fromSvg(sx: number, sy: number): { nx: number; ny: number } { function getControlPoints (line 74) | function getControlPoints(curve: EasingCurve): [number, number, number, ... function buildCurvePath (line 82) | function buildCurvePath(cp: [number, number, number, number]): string { function buildMiniPath (line 91) | function buildMiniPath(cp: [number, number, number, number], size: numbe... FILE: src/components/features/timeline/EffectBlock.tsx type EffectBlockProps (line 15) | interface EffectBlockProps { constant CATEGORY_COLORS (line 20) | const CATEGORY_COLORS: Record { FILE: src/components/tools/index.ts type ToolComponent (line 20) | type ToolComponent = FILE: src/components/ui/badge.tsx type BadgeProps (line 26) | interface BadgeProps function Badge (line 30) | function Badge({ className, variant, ...props }: BadgeProps) { FILE: src/components/ui/button.tsx type ButtonProps (line 37) | interface ButtonProps FILE: src/components/ui/menubar.tsx function MenubarMenu (line 7) | function MenubarMenu({ function MenubarGroup (line 13) | function MenubarGroup({ function MenubarPortal (line 19) | function MenubarPortal({ function MenubarRadioGroup (line 25) | function MenubarRadioGroup({ function MenubarSub (line 31) | function MenubarSub({ FILE: src/components/ui/sheet.tsx type SheetContentProps (line 52) | interface SheetContentProps FILE: src/components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ FILE: src/components/ui/slider.tsx type SliderProps (line 4) | interface SliderProps extends Omit FILE: src/constants/bezierAutofill/ansiCharacters.ts constant ANSI_CHARACTERS_PALETTE (line 18) | const ANSI_CHARACTERS_PALETTE: AutofillPalette = { FILE: src/constants/bezierAutofill/ansiCharacters_backup.ts constant ANSI_CHARACTERS_PALETTE (line 18) | const ANSI_CHARACTERS_PALETTE: AutofillPalette = { FILE: src/constants/bezierAutofill/blockCharacters.ts constant BLOCK_CHARACTERS_PALETTE (line 32) | const BLOCK_CHARACTERS_PALETTE: AutofillPalette = { FILE: src/constants/bezierAutofill/brailleCharacters.ts constant BRAILLE_CHARACTERS_PALETTE (line 23) | const BRAILLE_CHARACTERS_PALETTE: AutofillPalette = { FILE: src/constants/bezierAutofill/index.ts constant AUTOFILL_PALETTES (line 17) | const AUTOFILL_PALETTES: AutofillPalette[] = [ constant DEFAULT_PALETTE_ID (line 26) | const DEFAULT_PALETTE_ID = 'block'; function getPaletteById (line 34) | function getPaletteById(id: string): AutofillPalette | undefined { function getAvailablePaletteIds (line 44) | function getAvailablePaletteIds(): string[] { function getPaletteDisplayInfo (line 54) | function getPaletteDisplayInfo(): Array<{ id: string; name: string; desc... function doesPatternMatch (line 69) | function doesPatternMatch(pattern: RegionPattern, filledRegions: Set { function isBoxDrawingCharacter (line 179) | function isBoxDrawingCharacter(char: string): boolean { function getBoxDrawingStyle (line 187) | function getBoxDrawingStyle(id: string): BoxDrawingStyle | undefined { FILE: src/constants/colors.ts constant ANSI_COLORS (line 6) | const ANSI_COLORS = { constant SEMANTIC_COLORS (line 34) | const SEMANTIC_COLORS = { constant ANSI_CSS_VARS (line 49) | const ANSI_CSS_VARS = { type AnsiColor (line 68) | type AnsiColor = keyof typeof ANSI_COLORS type SemanticColor (line 69) | type SemanticColor = keyof typeof SEMANTIC_COLORS FILE: src/constants/defaultCharacterPalettes.ts constant MINIMAL_ASCII_PALETTE (line 28) | const MINIMAL_ASCII_PALETTE: CharacterPalette = createCharacterPalette( constant STANDARD_ASCII_PALETTE (line 39) | const STANDARD_ASCII_PALETTE: CharacterPalette = createCharacterPalette( constant BLOCK_CHARACTERS_PALETTE (line 56) | const BLOCK_CHARACTERS_PALETTE: CharacterPalette = createCharacterPalette( constant EXTENDED_UNICODE_PALETTE (line 67) | const EXTENDED_UNICODE_PALETTE: CharacterPalette = createCharacterPalette( constant DOTS_LINES_PALETTE (line 85) | const DOTS_LINES_PALETTE: CharacterPalette = createCharacterPalette( constant RETRO_COMPUTING_PALETTE (line 102) | const RETRO_COMPUTING_PALETTE: CharacterPalette = createCharacterPalette( constant DEFAULT_CHARACTER_PALETTES (line 117) | const DEFAULT_CHARACTER_PALETTES: CharacterPalette[] = [ FILE: src/constants/defaultPalettes.ts constant ANSI_PALETTE (line 21) | const ANSI_PALETTE: ColorPalette = { constant WEB_SAFE_PALETTE (line 49) | const WEB_SAFE_PALETTE: ColorPalette = { constant MATERIAL_DESIGN_PALETTE (line 74) | const MATERIAL_DESIGN_PALETTE: ColorPalette = { constant RETRO_8BIT_PALETTE (line 157) | const RETRO_8BIT_PALETTE: ColorPalette = { constant EARTH_TONES_PALETTE (line 185) | const EARTH_TONES_PALETTE: ColorPalette = { constant COOL_BLUES_PALETTE (line 213) | const COOL_BLUES_PALETTE: ColorPalette = { constant WARM_REDS_PALETTE (line 241) | const WARM_REDS_PALETTE: ColorPalette = { constant BRIGHT_GREENS_PALETTE (line 269) | const BRIGHT_GREENS_PALETTE: ColorPalette = { constant FIERY_SUNSET_PALETTE (line 289) | const FIERY_SUNSET_PALETTE: ColorPalette = { constant LUMINOUS_GLOW_PALETTE (line 311) | const LUMINOUS_GLOW_PALETTE: ColorPalette = { constant PURPLE_RAIN_PALETTE (line 328) | const PURPLE_RAIN_PALETTE: ColorPalette = { constant SOFT_RAINBOW_PALETTE (line 350) | const SOFT_RAINBOW_PALETTE: ColorPalette = { constant SUNSET_GRADIENT_PALETTE (line 372) | const SUNSET_GRADIENT_PALETTE: ColorPalette = { constant VIVID_NIGHTFALL_PALETTE (line 394) | const VIVID_NIGHTFALL_PALETTE: ColorPalette = { constant VIBRANT_FIESTA_PALETTE (line 414) | const VIBRANT_FIESTA_PALETTE: ColorPalette = { constant COMMODORE_64_PALETTE (line 432) | const COMMODORE_64_PALETTE: ColorPalette = { constant DEFAULT_PALETTES (line 460) | const DEFAULT_PALETTES: ColorPalette[] = [ constant DEFAULT_ACTIVE_PALETTE_ID (line 482) | const DEFAULT_ACTIVE_PALETTE_ID = 'ansi-16'; FILE: src/constants/effectsDefaults.ts constant EFFECT_DEFINITIONS (line 18) | const EFFECT_DEFINITIONS: EffectDefinition[] = [ constant DEFAULT_LEVELS_SETTINGS (line 64) | const DEFAULT_LEVELS_SETTINGS: LevelsEffectSettings = { constant DEFAULT_HUE_SATURATION_SETTINGS (line 80) | const DEFAULT_HUE_SATURATION_SETTINGS: HueSaturationEffectSettings = { constant DEFAULT_REMAP_COLORS_SETTINGS (line 92) | const DEFAULT_REMAP_COLORS_SETTINGS: RemapColorsEffectSettings = { constant DEFAULT_REMAP_CHARACTERS_SETTINGS (line 106) | const DEFAULT_REMAP_CHARACTERS_SETTINGS: RemapCharactersEffectSettings = { constant DEFAULT_SCATTER_SETTINGS (line 111) | const DEFAULT_SCATTER_SETTINGS: ScatterEffectSettings = { constant DEFAULT_MOTION_TRAILS_SETTINGS (line 125) | const DEFAULT_MOTION_TRAILS_SETTINGS: MotionTrailsSettings = { constant CANVAS_ANALYSIS (line 141) | const CANVAS_ANALYSIS = { constant EFFECT_LIMITS (line 153) | const EFFECT_LIMITS = { FILE: src/constants/features.ts constant FEATURES (line 24) | const FEATURES = { type FeatureFlag (line 47) | type FeatureFlag = keyof typeof FEATURES; FILE: src/constants/figletFonts.ts type FigletFontCategory (line 1) | interface FigletFontCategory { constant FIGLET_FONTS_BY_CATEGORY (line 6) | const FIGLET_FONTS_BY_CATEGORY: FigletFontCategory[] = [ constant ALL_FIGLET_FONTS (line 357) | const ALL_FIGLET_FONTS: string[] = FIGLET_FONTS_BY_CATEGORY.flatMap((cat... FILE: src/constants/fonts.d.ts type MonospaceFont (line 5) | interface MonospaceFont { FILE: src/constants/fonts.ts type MonospaceFont (line 6) | interface MonospaceFont { constant MONOSPACE_FONTS (line 18) | const MONOSPACE_FONTS: MonospaceFont[] = [ constant DEFAULT_FONT_ID (line 163) | const DEFAULT_FONT_ID = 'auto'; FILE: src/constants/generators.ts constant GENERATOR_DEFINITIONS (line 17) | const GENERATOR_DEFINITIONS: GeneratorDefinition[] = [ constant DEFAULT_RADIO_WAVES_SETTINGS (line 52) | const DEFAULT_RADIO_WAVES_SETTINGS: RadioWavesSettings = { constant DEFAULT_TURBULENT_NOISE_SETTINGS (line 83) | const DEFAULT_TURBULENT_NOISE_SETTINGS: TurbulentNoiseSettings = { constant DEFAULT_PARTICLE_PHYSICS_SETTINGS (line 106) | const DEFAULT_PARTICLE_PHYSICS_SETTINGS: ParticlePhysicsSettings = { constant DEFAULT_RAIN_DROPS_SETTINGS (line 162) | const DEFAULT_RAIN_DROPS_SETTINGS: RainDropsSettings = { constant DEFAULT_DIGITAL_RAIN_SETTINGS (line 194) | const DEFAULT_DIGITAL_RAIN_SETTINGS: DigitalRainSettings = { constant GENERATOR_LIMITS (line 230) | const GENERATOR_LIMITS = { constant PREVIEW_DEBOUNCE_MS (line 259) | const PREVIEW_DEBOUNCE_MS = GENERATOR_LIMITS.PREVIEW_DEBOUNCE_MS; constant LOOP_SMOOTHING (line 262) | const LOOP_SMOOTHING = { FILE: src/constants/hotkeys.ts type ToolHotkey (line 8) | interface ToolHotkey { constant TOOL_HOTKEYS (line 24) | const TOOL_HOTKEYS: ToolHotkey[] = [ constant HOTKEY_TO_TOOL (line 45) | const HOTKEY_TO_TOOL = new Map( constant TOOL_TO_HOTKEY (line 49) | const TOOL_TO_HOTKEY = new Map( FILE: src/constants/index.ts constant PANEL_ANIMATION (line 10) | const PANEL_ANIMATION = { constant CHARACTER_CATEGORIES (line 16) | const CHARACTER_CATEGORIES = { constant DEFAULT_CANVAS_SIZES (line 90) | const DEFAULT_CANVAS_SIZES = [ constant DEFAULT_COLORS (line 98) | const DEFAULT_COLORS = [ constant EXPORT_FORMATS (line 105) | const EXPORT_FORMATS = [ constant FRAME_RATE_PRESETS (line 112) | const FRAME_RATE_PRESETS = [ constant MAX_LIMITS (line 119) | const MAX_LIMITS = { constant DEFAULT_FRAME_DURATION (line 127) | const DEFAULT_FRAME_DURATION = 100; constant MIN_FRAME_DURATION (line 128) | const MIN_FRAME_DURATION = 17; constant MAX_FRAME_DURATION (line 129) | const MAX_FRAME_DURATION = 10000; FILE: src/constants/onionSkin.ts constant ONION_SKIN_COLORS (line 7) | const ONION_SKIN_COLORS = { constant ONION_SKIN_OPACITY (line 24) | const ONION_SKIN_OPACITY = { FILE: src/constants/postEffectDefaults.ts type ChromaticAberrationSettings (line 9) | interface ChromaticAberrationSettings { constant DEFAULT_CHROMATIC_ABERRATION_SETTINGS (line 18) | const DEFAULT_CHROMATIC_ABERRATION_SETTINGS: ChromaticAberrationSettings... type ScreenDistortionSettings (line 28) | interface ScreenDistortionSettings { constant DEFAULT_SCREEN_DISTORTION_SETTINGS (line 37) | const DEFAULT_SCREEN_DISTORTION_SETTINGS: ScreenDistortionSettings = { type GlowSettings (line 47) | interface GlowSettings { constant DEFAULT_GLOW_SETTINGS (line 66) | const DEFAULT_GLOW_SETTINGS: GlowSettings = { type BlurSettings (line 81) | interface BlurSettings { constant DEFAULT_BLUR_SETTINGS (line 91) | const DEFAULT_BLUR_SETTINGS: BlurSettings = { type PixelateSettings (line 102) | interface PixelateSettings { constant DEFAULT_PIXELATE_SETTINGS (line 107) | const DEFAULT_PIXELATE_SETTINGS: PixelateSettings = { type PostEffectDefinition (line 115) | interface PostEffectDefinition { constant POST_EFFECT_DEFINITIONS (line 123) | const POST_EFFECT_DEFINITIONS: PostEffectDefinition[] = [ constant POST_EFFECT_LIMITS (line 165) | const POST_EFFECT_LIMITS = { FILE: src/constants/shapeVectors.ts constant INTERNAL_CIRCLES (line 24) | const INTERNAL_CIRCLES: Array<[number, number, number]> = [ constant EXTERNAL_CIRCLES (line 40) | const EXTERNAL_CIRCLES: Array<[number, number, number]> = [ constant AFFECTING_EXTERNAL_INDICES (line 57) | const AFFECTING_EXTERNAL_INDICES: number[][] = [ type CharacterShapeEntry (line 68) | interface CharacterShapeEntry { constant BASIC_ASCII_SHAPE_VECTORS (line 84) | const BASIC_ASCII_SHAPE_VECTORS: CharacterShapeEntry[] = [ constant BLOCK_CHAR_SHAPE_VECTORS (line 197) | const BLOCK_CHAR_SHAPE_VECTORS: CharacterShapeEntry[] = [ function normalizeShapeVectors (line 226) | function normalizeShapeVectors( constant PRINTABLE_ASCII (line 255) | const PRINTABLE_ASCII = Array.from({ length: 95 }, (_, i) => String.from... constant BLOCK_CHARACTERS (line 258) | const BLOCK_CHARACTERS = [ function getNormalizedAsciiVectors (line 268) | function getNormalizedAsciiVectors(): CharacterShapeEntry[] { function getNormalizedBlockVectors (line 281) | function getNormalizedBlockVectors(): CharacterShapeEntry[] { function tryGenerateFromCanvas (line 293) | function tryGenerateFromCanvas(characters: string[]): CharacterShapeEntr... function generateShapeVectors (line 314) | function generateShapeVectors( FILE: src/constants/version.ts constant VERSION (line 4) | const VERSION = "2.1.3"; constant BUILD_DATE (line 5) | const BUILD_DATE = "2026-04-14T19:04:28.035Z"; constant BUILD_HASH (line 6) | const BUILD_HASH = "b76e9d4"; constant VERSION_HISTORY (line 9) | const VERSION_HISTORY = [ FILE: src/contexts/CanvasContext/context.ts type SelectionPreviewState (line 7) | interface SelectionPreviewState { type CanvasState (line 15) | interface CanvasState { type CanvasActions (line 62) | interface CanvasActions { type CanvasContextValue (line 112) | type CanvasContextValue = CanvasState & CanvasActions; type CanvasProviderProps (line 114) | interface CanvasProviderProps { FILE: src/contexts/ModalContext/context.ts type ModalContextType (line 4) | interface ModalContextType { type ModalProviderProps (line 10) | interface ModalProviderProps { FILE: src/contexts/ThemeContext/context.ts type Theme (line 4) | type Theme = 'dark' | 'light'; type ThemeContextType (line 6) | interface ThemeContextType { type ThemeProviderProps (line 12) | interface ThemeProviderProps { FILE: src/hooks/useAdminProjectLoader.ts function useAdminProjectLoader (line 5) | function useAdminProjectLoader() { FILE: src/hooks/useAsciiTypePlacement.ts type PlacePreviewOptions (line 9) | interface PlacePreviewOptions { FILE: src/hooks/useAsciiTypeTool.ts type PreviewCanvasCell (line 8) | interface PreviewCanvasCell { FILE: src/hooks/useCanvasMouseHandlers.ts type MouseHandlers (line 19) | interface MouseHandlers { FILE: src/hooks/useCanvasResize.ts function shiftCellMap (line 20) | function shiftCellMap( function useCanvasResize (line 39) | function useCanvasResize() { FILE: src/hooks/useCloudDialogState.ts type CloudDialogState (line 12) | interface CloudDialogState { FILE: src/hooks/useCloudProjectActions.ts function useCloudProjectActions (line 26) | function useCloudProjectActions() { FILE: src/hooks/useCompositedCanvas.ts function useCompositedCanvas (line 39) | function useCompositedCanvas() { FILE: src/hooks/useCropToSelection.ts function useCropToSelection (line 17) | function useCropToSelection() { FILE: src/hooks/useEffectBlockHistory.ts type OwnerId (line 16) | type OwnerId = LayerId | LayerGroupId | null; function getOwnerType (line 18) | function getOwnerType(ownerId: OwnerId): 'layer' | 'group' | 'global' { function findTrackByBlockId (line 25) | function findTrackByBlockId(blockId: EffectBlockId): { track: EffectTrac... function useEffectBlockHistory (line 43) | function useEffectBlockHistory() { FILE: src/hooks/useGeneratorPreview.ts function useGeneratorPreview (line 15) | function useGeneratorPreview() { FILE: src/hooks/useKeyboardShortcuts.ts type CanvasStoreState (line 30) | type CanvasStoreState = ReturnType; type CanvasStoreForHistory (line 31) | type CanvasStoreForHistory = Pick; type AnimationStoreState (line 32) | type AnimationStoreState = ReturnType; FILE: src/hooks/useKeyframeableProperty.ts function useKeyframeableProperty (line 52) | function useKeyframeableProperty( FILE: src/hooks/useLayerLimit.ts type LayerLimitInfo (line 18) | interface LayerLimitInfo { function useLayerLimit (line 46) | function useLayerLimit(): LayerLimitInfo { FILE: src/hooks/useLayerTransformTool.ts type TransformDragMode (line 38) | type TransformDragMode = 'none' | 'move' | 'scale' | 'rotate' | 'anchor'; type TransformDragState (line 40) | interface TransformDragState { type TransformBoundingBox (line 56) | interface TransformBoundingBox { constant ANCHOR_HIT_RADIUS (line 69) | const ANCHOR_HIT_RADIUS = 1.5; constant HANDLE_HIT_RADIUS (line 70) | const HANDLE_HIT_RADIUS = 2.0; constant SCALE_MIN (line 71) | const SCALE_MIN = PROPERTY_DEFINITIONS['transform.scale.x']?.min ?? 0.1; constant SCALE_MAX (line 72) | const SCALE_MAX = PROPERTY_DEFINITIONS['transform.scale.x']?.max ?? 10; function forwardTransformPoint (line 79) | function forwardTransformPoint( function isPointInQuad (line 104) | function isPointInQuad( function dist (line 127) | function dist(a: { x: number; y: number }, b: { x: number; y: number }):... function angleDeg (line 132) | function angleDeg(a: { x: number; y: number }, b: { x: number; y: number... constant EMPTY_LAYERS (line 140) | const EMPTY_LAYERS: Layer[] = []; function useLayerTransformTool (line 142) | function useLayerTransformTool() { type LayerTransformMouseHandlers (line 684) | interface LayerTransformMouseHandlers { constant NOOP_HANDLERS (line 690) | const NOOP_HANDLERS: LayerTransformMouseHandlers = { FILE: src/hooks/useLayoutState.ts type LayoutState (line 3) | interface LayoutState { type UserPreferences (line 10) | interface UserPreferences { type FullscreenState (line 16) | interface FullscreenState { constant DEFAULT_LAYOUT (line 22) | const DEFAULT_LAYOUT: LayoutState = { constant DEFAULT_PREFERENCES (line 29) | const DEFAULT_PREFERENCES: UserPreferences = { constant MOBILE_BREAKPOINT (line 36) | const MOBILE_BREAKPOINT = 768; constant TABLET_BREAKPOINT (line 37) | const TABLET_BREAKPOINT = 1024; constant COMPACT_BREAKPOINT (line 38) | const COMPACT_BREAKPOINT = 1200; FILE: src/hooks/useMemoizedGrid.ts type GridCell (line 6) | interface GridCell { type MemoizedGridData (line 15) | interface MemoizedGridData { type MoveState (line 22) | interface MoveState { FILE: src/hooks/usePasteMode.ts type PastePreview (line 7) | interface PastePreview { type PasteModeState (line 18) | interface PasteModeState { FILE: src/hooks/usePlaybackOnlySnapshot.ts type PlaybackSnapshot (line 4) | interface PlaybackSnapshot { FILE: src/hooks/usePostEffectBlockHistory.ts function findPostEffectTrackByBlockId (line 13) | function findPostEffectTrackByBlockId( function usePostEffectBlockHistory (line 24) | function usePostEffectBlockHistory() { FILE: src/hooks/usePostEffectsRenderer.ts function hexToRgb (line 29) | function hexToRgb(hex: string): [number, number, number] { function getOverlayCanvas (line 45) | function getOverlayCanvas(): HTMLCanvasElement | null { function usePostEffectsRenderer (line 53) | function usePostEffectsRenderer(): { function applyPlaybackPostEffects (line 220) | function applyPlaybackPostEffects( function disposePlaybackPostEffects (line 264) | function disposePlaybackPostEffects(): void { function applyPostEffectsToCanvas (line 286) | function applyPostEffectsToCanvas( FILE: src/hooks/useProjectDialogState.ts type ProjectDialogState (line 12) | interface ProjectDialogState { FILE: src/hooks/useScrubInput.ts type UseScrubInputOptions (line 16) | interface UseScrubInputOptions { type UseScrubInputResult (line 31) | interface UseScrubInputResult { function useScrubInput (line 36) | function useScrubInput({ FILE: src/hooks/useSelectionSync.ts function useSelectionSync (line 20) | function useSelectionSync() { function clearAllSelections (line 81) | function clearAllSelections() { function getActiveSelectionType (line 98) | function getActiveSelectionType(): 'rect' | 'lasso' | 'magicwand' | null { function hasAnySelection (line 117) | function hasAnySelection(): boolean { function clearOtherToolSelections (line 131) | function clearOtherToolSelections(keepTool: 'select' | 'lasso' | 'magicw... function commitMoveAndUpdateSelection (line 153) | function commitMoveAndUpdateSelection() { FILE: src/hooks/useTimelineHistory.ts function useTimelineHistory (line 47) | function useTimelineHistory() { FILE: src/hooks/useWelcomeDialog.ts constant STORAGE_KEY (line 16) | const STORAGE_KEY = 'ascii-motion-welcome-state'; FILE: src/lib/figletClient.ts constant FIGLET_FONT_MODULES (line 3) | const FIGLET_FONT_MODULES = import.meta.glob<{ default: string }>( function getFontModuleLoader (line 12) | function getFontModuleLoader(fontName: string) { function ensureFontLoaded (line 22) | async function ensureFontLoaded(fontName: string): Promise { type AsciiTypeLayoutPreset (line 48) | type AsciiTypeLayoutPreset = 'normal' | 'narrow' | 'squeezed' | 'fitted'... constant LAYOUT_PRESET_TO_FIGLET (line 50) | const LAYOUT_PRESET_TO_FIGLET: Record; function useAuth (line 237) | function useAuth() { function usePasswordRecoveryCallback (line 257) | function usePasswordRecoveryCallback() { function useEmailVerificationCallback (line 261) | function useEmailVerificationCallback() { function useCloudProject (line 269) | function useCloudProject() { function useAdminCheckContext (line 296) | function useAdminCheckContext() { function validateProjectName (line 304) | function validateProjectName(name: string): ValidationResult { function validateProjectDescription (line 314) | function validateProjectDescription(description: string): ValidationResu... function sanitizeString (line 321) | function sanitizeString(input: string): string { function generatePreview (line 332) | async function generatePreview(_frames: any[], _options?: any): Promise<... function generateThumbnail (line 337) | async function generateThumbnail(..._args: any[]): Promise { function generatePreviewAndThumbnail (line 342) | async function generatePreviewAndThumbnail(..._args: any[]): Promise { function estimatePreviewSize (line 346) | function estimatePreviewSize() { function uploadPreviewImage (line 351) | async function uploadPreviewImage(_projectId: string, _blob: any): Promi... function getFontStack (line 355) | function getFontStack(_fontId?: string): string { function deserializeProject (line 363) | function deserializeProject() { return null; } function deserializeProjectListItem (line 364) | function deserializeProjectListItem() { return null; } function serializeProject (line 365) | function serializeProject() { return null; } function validateSessionData (line 366) | function validateSessionData() { return true; } function extractProjectNameFromFilename (line 367) | function extractProjectNameFromFilename(filename: string) { function useStripeCheckout (line 375) | function useStripeCheckout() { function useStripePortal (line 379) | function useStripePortal() { function getStripe (line 383) | function getStripe() { return null; } function getStripePriceId (line 384) | function getStripePriceId() { return ''; } function childrenPassthrough (line 393) | function childrenPassthrough({ children }: { children?: ReactNode }) { type AnyProps (line 401) | type AnyProps = Record; function nullComponent (line 402) | function nullComponent(_props?: AnyProps) { return null; } FILE: src/lib/utils.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { FILE: src/mcp/client.ts constant DEFAULT_PORT (line 19) | const DEFAULT_PORT = 9876; constant HEARTBEAT_INTERVAL (line 20) | const HEARTBEAT_INTERVAL = 30000; constant RECONNECT_DELAY (line 21) | const RECONNECT_DELAY = 3000; class MCPClient (line 23) | class MCPClient { method constructor (line 34) | constructor() { method connect (line 41) | connect(token: string, port: number = DEFAULT_PORT): Promise { method disconnect (line 104) | disconnect(): void { method isConnected (line 119) | isConnected(): boolean { method sendStateSnapshot (line 126) | sendStateSnapshot(): void { method flushCanvasToActiveContentFrame (line 306) | private flushCanvasToActiveContentFrame(): void { method generateSessionId (line 321) | private generateSessionId(): string { method sendAuth (line 345) | private sendAuth(): void { method startHeartbeat (line 357) | private startHeartbeat(): void { method scheduleReconnect (line 366) | private scheduleReconnect(): void { method cleanup (line 384) | private cleanup(): void { method send (line 398) | private send(message: unknown): void { method handleMessage (line 404) | private handleMessage(data: string): void { method handleNotification (line 450) | private handleNotification(method: string, params: unknown): void { method handleStateChange (line 465) | private handleStateChange(type: string, data: unknown): void { method executeCommand (line 872) | private executeCommand(command: MCPCommand): void { method handleSetCell (line 986) | private handleSetCell(cmd: { x: number; y: number; cell: Cell }): void { method handleSetCellsBatch (line 990) | private handleSetCellsBatch(cmd: { cells: Array<{ x: number; y: number... method handleClearCell (line 997) | private handleClearCell(cmd: { x: number; y: number }): void { method handleResizeCanvas (line 1001) | private handleResizeCanvas(cmd: { width: number; height: number }): vo... method handleSetCanvasData (line 1005) | private handleSetCanvasData(cmd: { cells: Array<{ key: string; cell: C... method handleAddFrame (line 1013) | private handleAddFrame(cmd: { atIndex?: number; cells?: Array<{ key: s... method handleDeleteFrame (line 1024) | private handleDeleteFrame(cmd: { index: number }): void { method handleGoToFrame (line 1028) | private handleGoToFrame(cmd: { index: number }): void { method handleSetFrameDuration (line 1032) | private handleSetFrameDuration(cmd: { index: number; duration: number ... method handleSetFrameData (line 1036) | private handleSetFrameData(cmd: { index: number; cells: Array<{ key: s... method handleUndo (line 1044) | private handleUndo(): void { method handleRedo (line 1048) | private handleRedo(): void { method handleNewProject (line 1052) | private handleNewProject(cmd: { width: number; height: number; backgro... method handleLoadProject (line 1076) | private handleLoadProject(_cmd: { sessionData: unknown }): void { method handleSetForegroundColor (line 1083) | private handleSetForegroundColor(cmd: { color: string }): void { method handleSetBackgroundColor (line 1087) | private handleSetBackgroundColor(cmd: { color: string }): void { method handleSelectRectangle (line 1091) | private handleSelectRectangle(cmd: { x: number; y: number; width: numb... method handleClearSelection (line 1102) | private handleClearSelection(): void { method handleAddPostEffect (line 1110) | private handleAddPostEffect(cmd: { postEffectType: string; startFrame?... method handleRemovePostEffect (line 1125) | private handleRemovePostEffect(cmd: { blockId: string }): void { method handleUpdatePostEffect (line 1134) | private handleUpdatePostEffect(cmd: { blockId: string; settings?: Reco... method handleSetPostEffectKeyframe (line 1155) | private handleSetPostEffectKeyframe(cmd: { blockId: string; propertyPa... method handleRemovePostEffectKeyframe (line 1175) | private handleRemovePostEffectKeyframe(cmd: { blockId: string; propert... method handleListPostEffects (line 1189) | private handleListPostEffects(): void { method handleGetPostEffectPresets (line 1204) | private handleGetPostEffectPresets(): void { method handleExportRequest (line 1237) | private async handleExportRequest(request: MCPExportRequest): Promise<... method captureExportBlob (line 1341) | private async captureExportBlob(exportFn: () => Promise): Promis... method blobToBase64 (line 1372) | private blobToBase64(blob: Blob): Promise { function createMCPClient (line 1393) | function createMCPClient(): MCPClient { FILE: src/mcp/store.ts type MCPConnectionState (line 9) | type MCPConnectionState = 'disconnected' | 'connecting' | 'connected' | ... type MCPStoreState (line 11) | interface MCPStoreState { FILE: src/mcp/types.ts type MCPCommand (line 12) | type MCPCommand = type MCPSetCellCommand (line 32) | interface MCPSetCellCommand { type MCPSetCellsBatchCommand (line 39) | interface MCPSetCellsBatchCommand { type MCPClearCellCommand (line 44) | interface MCPClearCellCommand { type MCPResizeCanvasCommand (line 50) | interface MCPResizeCanvasCommand { type MCPSetCanvasDataCommand (line 56) | interface MCPSetCanvasDataCommand { type MCPAddFrameCommand (line 61) | interface MCPAddFrameCommand { type MCPDeleteFrameCommand (line 68) | interface MCPDeleteFrameCommand { type MCPGoToFrameCommand (line 73) | interface MCPGoToFrameCommand { type MCPSetFrameDurationCommand (line 78) | interface MCPSetFrameDurationCommand { type MCPSetFrameDataCommand (line 84) | interface MCPSetFrameDataCommand { type MCPUndoCommand (line 90) | interface MCPUndoCommand { type MCPRedoCommand (line 94) | interface MCPRedoCommand { type MCPNewProjectCommand (line 98) | interface MCPNewProjectCommand { type MCPLoadProjectCommand (line 106) | interface MCPLoadProjectCommand { type MCPSetForegroundColorCommand (line 111) | interface MCPSetForegroundColorCommand { type MCPSetBackgroundColorCommand (line 116) | interface MCPSetBackgroundColorCommand { type MCPSelectRectangleCommand (line 121) | interface MCPSelectRectangleCommand { type MCPClearSelectionCommand (line 129) | interface MCPClearSelectionCommand { type MCPStateUpdate (line 136) | interface MCPStateUpdate { type StateChange (line 142) | interface StateChange { type MCPMessage (line 151) | interface MCPMessage { type MCPClientMessage (line 160) | type MCPClientMessage = type MCPClientAuth (line 165) | interface MCPClientAuth { type MCPClientHeartbeat (line 171) | interface MCPClientHeartbeat { type MCPClientStateSnapshot (line 175) | interface MCPClientStateSnapshot { type MCPExportRequest (line 205) | interface MCPExportRequest { type MCPExportResult (line 217) | interface MCPExportResult { type MCPServerMessage (line 231) | interface MCPServerMessage { FILE: src/mcp/useMCPConnection.ts type UseMCPConnectionReturn (line 11) | interface UseMCPConnectionReturn { function useMCPConnection (line 55) | function useMCPConnection(): UseMCPConnectionReturn { FILE: src/pages/CommunityPage.tsx function CommunityPage (line 9) | function CommunityPage() { function UserProfilePageWrapper (line 39) | function UserProfilePageWrapper({ onClose }: { onClose: () => void }) { FILE: src/pages/EditorPage.tsx function EditorPage (line 43) | function EditorPage() { FILE: src/registry/effectRegistry.ts type EffectProcessOptions (line 23) | interface EffectProcessOptions { type EffectProcessResult (line 46) | interface EffectProcessResult { type EffectRegistryEntry (line 57) | interface EffectRegistryEntry { function registerEffect (line 119) | function registerEffect(entry: EffectRegistryEntry): void { function getEffect (line 130) | function getEffect(type: string): EffectRegistryEntry | undefined { function getAllEffects (line 137) | function getAllEffects(): EffectRegistryEntry[] { function getEffectsByCategory (line 144) | function getEffectsByCategory(category: EffectRegistryEntry['category'])... function isEffectRegistered (line 151) | function isEffectRegistered(type: string): boolean { function clearEffectRegistry (line 158) | function clearEffectRegistry(): void { FILE: src/registry/effects/index.ts function registerAllEffects (line 21) | function registerAllEffects(): void { FILE: src/registry/effects/motionTrails.ts constant DEFAULT_TRAIL_COLORS (line 15) | const DEFAULT_TRAIL_COLORS = [ function trailCountValuesForIndex (line 29) | function trailCountValuesForIndex(minCount: number): string[] { FILE: src/registry/effects/waveWarp.ts function deriveCanvasBounds (line 123) | function deriveCanvasBounds(cells: Map): { width: number; ... FILE: src/registry/effects/wiggle.ts function deriveCanvasBounds (line 180) | function deriveCanvasBounds(cells: Map): { width: number; ... FILE: src/registry/postEffectRegistry.ts type PostEffectRegistryEntry (line 21) | interface PostEffectRegistryEntry { function registerPostEffect (line 95) | function registerPostEffect(entry: PostEffectRegistryEntry): void { function getPostEffect (line 106) | function getPostEffect(type: string): PostEffectRegistryEntry | undefined { function getAllPostEffects (line 113) | function getAllPostEffects(): PostEffectRegistryEntry[] { function getPostEffectsByCategory (line 120) | function getPostEffectsByCategory( function isPostEffectRegistered (line 129) | function isPostEffectRegistered(type: string): boolean { function clearPostEffectRegistry (line 136) | function clearPostEffectRegistry(): void { FILE: src/registry/postEffects/index.ts function registerAllPostEffects (line 18) | function registerAllPostEffects(): void { FILE: src/stores/animationStore.ts function getActiveLayer (line 28) | function getActiveLayer() { function contentFrameToLegacyFrame (line 38) | function contentFrameToLegacyFrame(cf: ContentFrame): Frame { function deriveLegacyFrames (line 49) | function deriveLegacyFrames(): Frame[] { function _getContentFrameByIndex (line 56) | function _getContentFrameByIndex(index: number): ContentFrame | undefined { type LegacyAnimationState (line 68) | interface LegacyAnimationState { FILE: src/stores/animationStoreAdapter.ts function getActiveLayer (line 27) | function getActiveLayer() { function contentFrameToLegacyFrame (line 37) | function contentFrameToLegacyFrame(cf: ContentFrame): Frame { function deriveLegacyFrames (line 48) | function deriveLegacyFrames(): Frame[] { type LegacyAnimationState (line 59) | interface LegacyAnimationState { FILE: src/stores/asciiBoxStore.ts type BoxDrawingMode (line 4) | type BoxDrawingMode = 'rectangle' | 'freedraw' | 'erase'; type AsciiBoxStore (line 6) | interface AsciiBoxStore { FILE: src/stores/asciiTypeStore.ts type AsciiPreviewCell (line 5) | interface AsciiPreviewCell { type AsciiPreviewGrid (line 10) | type AsciiPreviewGrid = AsciiPreviewCell[][]; type AsciiDimensions (line 12) | interface AsciiDimensions { type PreviewDragState (line 17) | interface PreviewDragState { type RenderRequestMeta (line 22) | interface RenderRequestMeta { type AsciiTypeStoreState (line 27) | interface AsciiTypeStoreState { constant DEFAULT_FONT (line 80) | const DEFAULT_FONT = 'ANSI Shadow'; constant DEFAULT_STATE (line 131) | const DEFAULT_STATE: Omit void; type PlaybackOnlyState (line 153) | type PlaybackOnlyState = PlaybackOnlyStateInterface; FILE: src/stores/previewStore.ts type PreviewState (line 4) | interface PreviewState { FILE: src/stores/projectMetadataStore.ts type ProjectMetadataState (line 3) | interface ProjectMetadataState { FILE: src/stores/selectionStore.ts type SelectionBounds (line 22) | interface SelectionBounds { type MoveState (line 29) | interface MoveState { type SelectionState (line 42) | interface SelectionState { FILE: src/stores/timelineStore.ts function findTrackKeyframeByFrame (line 60) | function findTrackKeyframeByFrame( function findPostEffectTrackOwner (line 102) | function findPostEffectTrackOwner( function updateEffectPropertyTrackKeyframes (line 118) | function updateEffectPropertyTrackKeyframes( function computeMergedContentFrames (line 213) | function computeMergedContentFrames( type TimelineState (line 274) | interface TimelineState { constant INITIAL_CONFIG (line 683) | const INITIAL_CONFIG: TimelineConfig = { constant INITIAL_VIEW (line 689) | const INITIAL_VIEW: TimelineViewState = { function updateLayer (line 725) | function updateLayer( constant DEFAULT_LAYER (line 738) | const DEFAULT_LAYER = createDefaultLayer(); type Entry (line 1987) | type Entry = { layerId: string; trackId: string; propertyPath: string; f... FILE: src/stores/toolStore.ts type ToolStoreState (line 22) | interface ToolStoreState extends ToolState { FILE: src/types/easing.ts constant NEWTON_ITERATIONS (line 21) | const NEWTON_ITERATIONS = 8; constant NEWTON_EPSILON (line 26) | const NEWTON_EPSILON = 1e-7; constant SUBDIVISION_PRECISION (line 31) | const SUBDIVISION_PRECISION = 1e-7; constant SUBDIVISION_MAX_ITERATIONS (line 32) | const SUBDIVISION_MAX_ITERATIONS = 10; function cubicBezier (line 38) | function cubicBezier(t: number, p1: number, p2: number): number { function cubicBezierDerivative (line 50) | function cubicBezierDerivative(t: number, p1: number, p2: number): number { function solveCubicBezierX (line 59) | function solveCubicBezierX(x: number, x1: number, x2: number): number { constant LUT_SIZE (line 106) | const LUT_SIZE = 256; function buildLUT (line 117) | function buildLUT(x1: number, y1: number, x2: number, y2: number): Float... function lookupLUT (line 131) | function lookupLUT(lut: Float64Array, x: number): number { function getPresetLUT (line 148) | function getPresetLUT(preset: EasingPreset): Float64Array { function evaluateEasing (line 170) | function evaluateEasing(progress: number, easing: EasingCurve): number { function interpolateBetweenKeyframes (line 210) | function interpolateBetweenKeyframes( function interpolateKeyframes (line 240) | function interpolateKeyframes( function interpolateKeyframesNonLooping (line 268) | function interpolateKeyframesNonLooping(sorted: Keyframe[], frame: numbe... function defaultEasing (line 294) | function defaultEasing(): EasingCurve { function easingFromPreset (line 301) | function easingFromPreset(preset: EasingPreset): EasingCurve { function customEasing (line 308) | function customEasing(x1: number, y1: number, x2: number, y2: number): E... FILE: src/types/effectBlock.ts type Brand (line 18) | type Brand = T & { [__brand]: B }; type EffectBlockId (line 20) | type EffectBlockId = Brand; type EffectTrackId (line 21) | type EffectTrackId = Brand; type EffectPropertyTrackId (line 22) | type EffectPropertyTrackId = Brand; function generateEffectBlockId (line 32) | function generateEffectBlockId(): EffectBlockId { function generateEffectTrackId (line 36) | function generateEffectTrackId(): EffectTrackId { function generateEffectPropertyTrackId (line 40) | function generateEffectPropertyTrackId(): EffectPropertyTrackId { function resetEffectIdCounters (line 47) | function resetEffectIdCounters(): void { type EffectKeyframe (line 61) | interface EffectKeyframe { type EffectPropertyTrack (line 76) | interface EffectPropertyTrack { type EffectBlock (line 91) | interface EffectBlock { type EffectTrack (line 118) | interface EffectTrack { type EffectInterpolationMode (line 145) | type EffectInterpolationMode = 'numeric' | 'hold'; type EffectPropertyDefinition (line 151) | interface EffectPropertyDefinition { type SessionEffectKeyframeV2 (line 190) | interface SessionEffectKeyframeV2 { type SessionEffectPropertyTrackV2 (line 200) | interface SessionEffectPropertyTrackV2 { type SessionEffectBlockV2 (line 210) | interface SessionEffectBlockV2 { type SessionEffectTrackV2 (line 223) | interface SessionEffectTrackV2 { FILE: src/types/effects.ts type EffectType (line 8) | type EffectType = 'levels' | 'hue-saturation' | 'remap-colors' | 'remap-... type ColorRange (line 11) | interface ColorRange { type LevelsEffectSettings (line 17) | interface LevelsEffectSettings { type HueSaturationEffectSettings (line 31) | interface HueSaturationEffectSettings { type RemapColorsEffectSettings (line 41) | interface RemapColorsEffectSettings { type RemapCharactersEffectSettings (line 55) | interface RemapCharactersEffectSettings { type ScatterEffectSettings (line 60) | interface ScatterEffectSettings { type EffectDefinition (line 75) | interface EffectDefinition { type ColorFrequency (line 84) | interface ColorFrequency { type CharacterFrequency (line 89) | interface CharacterFrequency { type ColorDistribution (line 94) | interface ColorDistribution { type CharacterDistribution (line 100) | interface CharacterDistribution { type ColorBrightnessStats (line 106) | interface ColorBrightnessStats { type CanvasAnalysis (line 114) | interface CanvasAnalysis { type EffectProcessingResult (line 150) | interface EffectProcessingResult { type EffectHistoryAction (line 159) | interface EffectHistoryAction { type MotionTrailsSettings (line 168) | interface MotionTrailsSettings { type EffectSettings (line 184) | type EffectSettings = type LastAppliedEffect (line 193) | interface LastAppliedEffect { FILE: src/types/export.ts type ExportFormatId (line 7) | type ExportFormatId = 'png' | 'svg' | 'mp4' | 'session' | 'media' | 'tex... type ExportFormat (line 10) | interface ExportFormat { type SvgExportSettings (line 20) | interface SvgExportSettings { type ImageExportSettings (line 28) | interface ImageExportSettings { type ReactExportSettings (line 38) | interface ReactExportSettings { type InkExportSettings (line 46) | interface InkExportSettings { type OpenTuiExportSettings (line 53) | interface OpenTuiExportSettings { type BubbleteaExportSettings (line 60) | interface BubbleteaExportSettings { type VideoExportSettings (line 68) | interface VideoExportSettings { type SessionExportSettings (line 80) | interface SessionExportSettings { type TextExportSettings (line 85) | interface TextExportSettings { type JsonExportSettings (line 93) | interface JsonExportSettings { type HtmlExportSettings (line 99) | interface HtmlExportSettings { type PaletteExportState (line 109) | interface PaletteExportState { type CharacterPaletteExportState (line 115) | interface CharacterPaletteExportState { type ExportSettings (line 124) | type ExportSettings = type ExportDataBundle (line 136) | interface ExportDataBundle { type ExportResult (line 204) | interface ExportResult { type ExportProgress (line 212) | interface ExportProgress { type ExportHandler (line 219) | interface ExportHandler { type ExportHistoryEntry (line 228) | interface ExportHistoryEntry { type ExportState (line 237) | interface ExportState { type ImportResult (line 264) | interface ImportResult { type ImportValidator (line 270) | interface ImportValidator { type SessionExportData (line 275) | interface SessionExportData { FILE: src/types/generators.ts type GeneratorId (line 8) | type GeneratorId = 'radio-waves' | 'turbulent-noise' | 'particle-physics... type NoiseType (line 11) | type NoiseType = 'perlin' | 'simplex' | 'worley'; type DitherType (line 14) | type DitherType = 'none' | '2x2' | '4x4' | 'noise' | 'animated-noise'; type WaveShape (line 17) | type WaveShape = 'circle' | 'square' | 'triangle' | 'pentagon' | 'hexago... type ProfileShape (line 20) | type ProfileShape = 'solid' | 'fade-out' | 'fade-in' | 'fade-in-out'; type ScatterType (line 23) | type ScatterType = 'noise' | 'bayer-2x2' | 'bayer-4x4' | 'gaussian'; type TimingMode (line 26) | type TimingMode = 'duration' | 'frameCount' | 'both'; type RadioWavesSettings (line 30) | interface RadioWavesSettings { type TurbulentNoiseSettings (line 61) | interface TurbulentNoiseSettings { type ParticlePhysicsSettings (line 84) | interface ParticlePhysicsSettings { type RainDropsSettings (line 142) | interface RainDropsSettings { type DigitalRainSettings (line 174) | interface DigitalRainSettings { type GeneratorSettings (line 210) | type GeneratorSettings = type GeneratorMappingSettings (line 218) | interface GeneratorMappingSettings { type GeneratorDefinition (line 241) | interface GeneratorDefinition { type GeneratorFrame (line 249) | interface GeneratorFrame { FILE: src/types/index.ts type FrameId (line 3) | type FrameId = string & { __brand: 'FrameId' }; type ProjectId (line 4) | type ProjectId = string & { __brand: 'ProjectId' }; type Cell (line 6) | interface Cell { type Frame (line 12) | interface Frame { type Animation (line 20) | interface Animation { type Canvas (line 29) | interface Canvas { type Project (line 35) | interface Project { type Tool (line 58) | type Tool = type BrushShape (line 79) | type BrushShape = 'circle' | 'square' | 'horizontal' | 'vertical'; type BrushSettings (line 81) | interface BrushSettings { type ToolState (line 86) | interface ToolState { type SelectionShape (line 100) | type SelectionShape = 'rectangle' | 'custom'; type Selection (line 102) | interface Selection { type LassoSelection (line 110) | interface LassoSelection { type MagicWandSelection (line 117) | interface MagicWandSelection { type TextToolState (line 124) | interface TextToolState { type CharacterPalette (line 132) | interface CharacterPalette { type ExportSettings (line 142) | interface ExportSettings { type InterpolationMethod (line 164) | type InterpolationMethod = 'linear' | 'constant' | 'bayer2x2' | 'bayer4x... type QuantizeStepCount (line 165) | type QuantizeStepCount = type GradientType (line 177) | type GradientType = 'linear' | 'radial'; type GradientStop (line 179) | interface GradientStop { type GradientProperty (line 184) | interface GradientProperty { type GradientDefinition (line 192) | interface GradientDefinition { type GradientState (line 199) | interface GradientState { type HistoryActionType (line 249) | type HistoryActionType = type HistoryAction (line 315) | interface HistoryAction { type CanvasHistoryAction (line 321) | interface CanvasHistoryAction extends HistoryAction { type CanvasResizeHistoryAction (line 332) | interface CanvasResizeHistoryAction extends HistoryAction { type AddFrameHistoryAction (line 387) | interface AddFrameHistoryAction extends HistoryAction { type DuplicateFrameHistoryAction (line 397) | interface DuplicateFrameHistoryAction extends HistoryAction { type DuplicateFrameRangeHistoryAction (line 407) | interface DuplicateFrameRangeHistoryAction extends HistoryAction { type DeleteFrameHistoryAction (line 421) | interface DeleteFrameHistoryAction extends HistoryAction { type ReorderFramesHistoryAction (line 431) | interface ReorderFramesHistoryAction extends HistoryAction { type UpdateDurationHistoryAction (line 441) | interface UpdateDurationHistoryAction extends HistoryAction { type UpdateNameHistoryAction (line 450) | interface UpdateNameHistoryAction extends HistoryAction { type NavigateFrameHistoryAction (line 459) | interface NavigateFrameHistoryAction extends HistoryAction { type DeleteFrameRangeHistoryAction (line 467) | interface DeleteFrameRangeHistoryAction extends HistoryAction { type DeleteAllFramesHistoryAction (line 479) | interface DeleteAllFramesHistoryAction extends HistoryAction { type ReorderFrameRangeHistoryAction (line 487) | interface ReorderFrameRangeHistoryAction extends HistoryAction { type ApplyEffectHistoryAction (line 500) | interface ApplyEffectHistoryAction extends HistoryAction { type ApplyTimeEffectHistoryAction (line 518) | interface ApplyTimeEffectHistoryAction extends HistoryAction { type SetFrameDurationsHistoryAction (line 529) | interface SetFrameDurationsHistoryAction extends HistoryAction { type ImportMediaHistoryAction (line 538) | interface ImportMediaHistoryAction extends HistoryAction { type ApplyGeneratorHistoryAction (line 563) | interface ApplyGeneratorHistoryAction extends HistoryAction { type BezierAddPointHistoryAction (line 576) | interface BezierAddPointHistoryAction extends HistoryAction { type BezierMovePointHistoryAction (line 586) | interface BezierMovePointHistoryAction extends HistoryAction { type BezierAdjustHandleHistoryAction (line 596) | interface BezierAdjustHandleHistoryAction extends HistoryAction { type BezierToggleHandlesHistoryAction (line 612) | interface BezierToggleHandlesHistoryAction extends HistoryAction { type BezierDeletePointHistoryAction (line 626) | interface BezierDeletePointHistoryAction extends HistoryAction { type BezierCloseShapeHistoryAction (line 635) | interface BezierCloseShapeHistoryAction extends HistoryAction { type BezierCommitHistoryAction (line 644) | interface BezierCommitHistoryAction extends HistoryAction { type LayerAddHistoryAction (line 676) | interface LayerAddHistoryAction extends HistoryAction { type LayerRemoveHistoryAction (line 685) | interface LayerRemoveHistoryAction extends HistoryAction { type LayerReorderHistoryAction (line 694) | interface LayerReorderHistoryAction extends HistoryAction { type LayerRenameHistoryAction (line 707) | interface LayerRenameHistoryAction extends HistoryAction { type LayerVisibilityHistoryAction (line 716) | interface LayerVisibilityHistoryAction extends HistoryAction { type LayerOpacityHistoryAction (line 725) | interface LayerOpacityHistoryAction extends HistoryAction { type ContentFrameAddHistoryAction (line 734) | interface ContentFrameAddHistoryAction extends HistoryAction { type ContentFrameRemoveHistoryAction (line 743) | interface ContentFrameRemoveHistoryAction extends HistoryAction { type ContentFrameTimingHistoryAction (line 752) | interface ContentFrameTimingHistoryAction extends HistoryAction { type ContentFrameDataHistoryAction (line 764) | interface ContentFrameDataHistoryAction extends HistoryAction { type ContentFrameRenameHistoryAction (line 774) | interface ContentFrameRenameHistoryAction extends HistoryAction { type KeyframeAddHistoryAction (line 784) | interface KeyframeAddHistoryAction extends HistoryAction { type KeyframeRemoveHistoryAction (line 794) | interface KeyframeRemoveHistoryAction extends HistoryAction { type KeyframeUpdateHistoryAction (line 804) | interface KeyframeUpdateHistoryAction extends HistoryAction { type PropertyTrackAddHistoryAction (line 815) | interface PropertyTrackAddHistoryAction extends HistoryAction { type PropertyTrackRemoveHistoryAction (line 824) | interface PropertyTrackRemoveHistoryAction extends HistoryAction { type FrameRateChangeHistoryAction (line 833) | interface FrameRateChangeHistoryAction extends HistoryAction { type StaticPropertyChangeHistoryAction (line 845) | interface StaticPropertyChangeHistoryAction extends HistoryAction { type ContentFrameReorderHistoryAction (line 859) | interface ContentFrameReorderHistoryAction extends HistoryAction { type TimelineDurationChangeHistoryAction (line 883) | interface TimelineDurationChangeHistoryAction extends HistoryAction { type TrimToWorkAreaHistoryAction (line 895) | interface TrimToWorkAreaHistoryAction extends HistoryAction { type AnyHistoryAction (line 907) | type AnyHistoryAction = type ApplyTransformsHistoryAction (line 973) | interface ApplyTransformsHistoryAction extends HistoryAction { type MergeLayersHistoryAction (line 982) | interface MergeLayersHistoryAction extends HistoryAction { type CreateGroupHistoryAction (line 996) | interface CreateGroupHistoryAction extends HistoryAction { type UngroupLayersHistoryAction (line 1005) | interface UngroupLayersHistoryAction extends HistoryAction { type EffectBlockAddHistoryAction (line 1016) | interface EffectBlockAddHistoryAction extends HistoryAction { type EffectBlockRemoveHistoryAction (line 1025) | interface EffectBlockRemoveHistoryAction extends HistoryAction { type EffectBlockUpdateHistoryAction (line 1035) | interface EffectBlockUpdateHistoryAction extends HistoryAction { type EffectBlockReorderHistoryAction (line 1046) | interface EffectBlockReorderHistoryAction extends HistoryAction { type EffectKeyframeAddHistoryAction (line 1056) | interface EffectKeyframeAddHistoryAction extends HistoryAction { type EffectKeyframeRemoveHistoryAction (line 1067) | interface EffectKeyframeRemoveHistoryAction extends HistoryAction { type EffectKeyframeUpdateHistoryAction (line 1078) | interface EffectKeyframeUpdateHistoryAction extends HistoryAction { type EffectBakeHistoryAction (line 1091) | interface EffectBakeHistoryAction extends HistoryAction { type PostEffectBlockAddHistoryAction (line 1108) | interface PostEffectBlockAddHistoryAction extends HistoryAction { type PostEffectBlockRemoveHistoryAction (line 1115) | interface PostEffectBlockRemoveHistoryAction extends HistoryAction { type PostEffectBlockUpdateHistoryAction (line 1123) | interface PostEffectBlockUpdateHistoryAction extends HistoryAction { FILE: src/types/mp4box.d.ts type MP4VideoTrack (line 2) | interface MP4VideoTrack { type MP4Info (line 9) | interface MP4Info { type MP4File (line 13) | interface MP4File { FILE: src/types/palette.ts type PaletteColor (line 3) | interface PaletteColor { type ColorPalette (line 9) | interface ColorPalette { type ColorPickerState (line 17) | interface ColorPickerState { type DragState (line 25) | interface DragState { type PaletteExportFormat (line 33) | interface PaletteExportFormat { type HSVColor (line 39) | interface HSVColor { type RGBColor (line 46) | interface RGBColor { type ColorFormat (line 53) | type ColorFormat = 'hex' | 'rgb' | 'hsv'; type CharacterPalette (line 101) | interface CharacterPalette { type CharacterMappingSettings (line 110) | interface CharacterMappingSettings { type CharacterPaletteEditorState (line 121) | interface CharacterPaletteEditorState { type CharacterPaletteExportFormat (line 129) | interface CharacterPaletteExportFormat { FILE: src/types/postEffect.ts type Brand (line 19) | type Brand = T & { [__brand]: B }; type PostEffectBlockId (line 21) | type PostEffectBlockId = Brand; type PostEffectTrackId (line 22) | type PostEffectTrackId = Brand; type PostEffectPropertyTrackId (line 23) | type PostEffectPropertyTrackId = Brand = T & { [__brand]: B }; type LayerId (line 19) | type LayerId = Brand; type LayerGroupId (line 20) | type LayerGroupId = Brand; type ContentFrameId (line 21) | type ContentFrameId = Brand; type KeyframeId (line 22) | type KeyframeId = Brand; type PropertyTrackId (line 23) | type PropertyTrackId = Brand; function generateLayerId (line 35) | function generateLayerId(): LayerId { function generateLayerGroupId (line 39) | function generateLayerGroupId(): LayerGroupId { function generateContentFrameId (line 43) | function generateContentFrameId(): ContentFrameId { function generateKeyframeId (line 47) | function generateKeyframeId(): KeyframeId { function generatePropertyTrackId (line 51) | function generatePropertyTrackId(): PropertyTrackId { function resetIdCounters (line 58) | function resetIdCounters(): void { type Layer (line 74) | interface Layer { type LayerGroup (line 112) | interface LayerGroup { type ContentFrame (line 136) | interface ContentFrame { type PropertyTrack (line 161) | interface PropertyTrack { type PropertyPath (line 173) | type PropertyPath = constant PROPERTY_DISPLAY_ORDER (line 189) | const PROPERTY_DISPLAY_ORDER: PropertyPath[] = [ type PropertyDefinition (line 202) | interface PropertyDefinition { constant PROPERTY_DEFINITIONS (line 217) | const PROPERTY_DEFINITIONS: Partial = [ function detectBrailleDots (line 280) | function detectBrailleDots( function brailleBitsToChar (line 311) | function brailleBitsToChar(bits: number): string { FILE: src/utils/bezierFillUtils.ts function mapOverlapToColor (line 34) | function mapOverlapToColor(overlapPercentage: number, colorPalette: Colo... function fillConstant (line 67) | function fillConstant( function fillPalette (line 147) | function fillPalette( function fillAutofill (line 248) | function fillAutofill( function generateBezierPreview (line 357) | function generateBezierPreview( function fillLineArt (line 535) | function fillLineArt( FILE: src/utils/bezierPathUtils.ts function pointToPixel (line 20) | function pointToPixel( function pixelToPoint (line 43) | function pixelToPoint( function createBezierPath (line 72) | function createBezierPath( function getBezierBounds (line 197) | function getBezierBounds(anchorPoints: BezierAnchorPoint[]): { function getIntegerBounds (line 254) | function getIntegerBounds( function isPointInBezierPath (line 282) | function isPointInBezierPath( FILE: src/utils/bezierStrokeUtils.ts type Point (line 14) | interface Point { function cubicBezierPoint (line 28) | function cubicBezierPoint( function cubicBezierTangent (line 56) | function cubicBezierTangent( function normalize (line 76) | function normalize(v: Point): Point { function perpendicular (line 85) | function perpendicular(v: Point): Point { function calculateTaperedWidth (line 97) | function calculateTaperedWidth( function generateSegmentStroke (line 135) | function generateSegmentStroke( function computeMiterPoint (line 192) | function computeMiterPoint( function generateStrokeOutline (line 249) | function generateStrokeOutline( function createStrokePath (line 382) | function createStrokePath( function getStrokeBounds (line 427) | function getStrokeBounds( FILE: src/utils/boxDrawingEngine.ts type ConnectionState (line 15) | interface ConnectionState { function getBoxDrawingCharacter (line 25) | function getBoxDrawingCharacter( function isBoxCharacter (line 71) | function isBoxCharacter(char: string): boolean { function detectConnections (line 83) | function detectConnections( function generateBoxRectangle (line 113) | function generateBoxRectangle( function addBoxCell (line 161) | function addBoxCell( function eraseBoxCell (line 200) | function eraseBoxCell( function getLineCells (line 232) | function getLineCells( FILE: src/utils/canvasAnalysis.ts function analyzeCanvas (line 18) | function analyzeCanvas(canvas: Canvas): CanvasAnalysis { function analyzeFrame (line 137) | function analyzeFrame(frame: Frame, canvasWidth: number, canvasHeight: n... function analyzeFrames (line 151) | function analyzeFrames(frames: Frame[], canvasWidth: number, canvasHeigh... function calculateColorBrightnessStats (line 271) | function calculateColorBrightnessStats(colors: string[]) { function calculateColorBrightness (line 306) | function calculateColorBrightness(color: string): number { function hslToRgb (line 351) | function hslToRgb(h: number, s: number, l: number): { r: number; g: numb... function getEmptyAnalysis (line 383) | function getEmptyAnalysis(): CanvasAnalysis { function filterAnalysisByFrequency (line 427) | function filterAnalysisByFrequency( function compareAnalyses (line 444) | function compareAnalyses(oldAnalysis: CanvasAnalysis, newAnalysis: Canva... FILE: src/utils/canvasDPI.ts type ExtendedCanvasRenderingContext2D (line 32) | type ExtendedCanvasRenderingContext2D = CanvasRenderingContext2D & { FILE: src/utils/canvasResizeUtils.ts type AnchorPosition (line 7) | type AnchorPosition = type AnchorPositionData (line 21) | interface AnchorPositionData { constant ANCHOR_POSITIONS (line 31) | const ANCHOR_POSITIONS: AnchorPositionData[] = [ function calculateAnchorOffset (line 53) | function calculateAnchorOffset( function resizeFrameWithAnchor (line 124) | function resizeFrameWithAnchor( function resizeAllFramesWithAnchor (line 170) | function resizeAllFramesWithAnchor( function getAnchorDescription (line 193) | function getAnchorDescription(anchor: AnchorPosition): string { FILE: src/utils/canvasSizeConversion.ts type TypographySettings (line 7) | interface TypographySettings { type CharacterDimensions (line 14) | interface CharacterDimensions { type PixelDimensions (line 19) | interface PixelDimensions { function charactersToPixels (line 28) | function charactersToPixels( function pixelsToCharacters (line 53) | function pixelsToCharacters( function validateCharacterDimensions (line 78) | function validateCharacterDimensions( function getPixelConstraints (line 90) | function getPixelConstraints(typography: TypographySettings): { function validatePixelInput (line 114) | function validatePixelInput( FILE: src/utils/canvasTextRendering.ts type ExtendedCanvasRenderingContext2D (line 32) | type ExtendedCanvasRenderingContext2D = CanvasRenderingContext2D & { FILE: src/utils/characterPaletteValidation.ts type CharacterPaletteDraft (line 6) | type CharacterPaletteDraft = { type CharacterValidationResult (line 13) | interface CharacterValidationResult { FILE: src/utils/cropUtils.ts function cropAllFramesToSelection (line 11) | function cropAllFramesToSelection( FILE: src/utils/directCanvasRenderer.ts type DirectRenderSettings (line 12) | interface DirectRenderSettings { FILE: src/utils/dirtyTracker.ts type DirtyRegion (line 6) | interface DirtyRegion { class DirtyTracker (line 13) | class DirtyTracker { method markCellDirty (line 21) | markCellDirty(x: number, y: number): void { method markRegionDirty (line 41) | markRegionDirty(startX: number, startY: number, endX: number, endY: nu... method markFullRedraw (line 66) | markFullRedraw(): void { method isDirtyFlag (line 75) | isDirtyFlag(): boolean { method needsFullRedraw (line 82) | needsFullRedraw(): boolean { method getDirtyRegion (line 89) | getDirtyRegion(): DirtyRegion | null { method clear (line 96) | clear(): void { method getRenderBounds (line 105) | getRenderBounds(canvasWidth: number, canvasHeight: number): DirtyRegio... FILE: src/utils/effectKeyframeInterpolation.ts function interpolateNumeric (line 15) | function interpolateNumeric(kfA: EffectKeyframe, kfB: EffectKeyframe, fr... function holdInterpolate (line 31) | function holdInterpolate( function interpolateEffectProperty (line 58) | function interpolateEffectProperty( function interpolateNumericTrack (line 87) | function interpolateNumericTrack(sorted: EffectKeyframe[], frame: number... function wrapFrame (line 110) | function wrapFrame(sorted: EffectKeyframe[], frame: number): number { FILE: src/utils/effectsPipeline.ts function evaluateEffectBlock (line 34) | function evaluateEffectBlock( function isFrameInRange (line 70) | function isFrameInRange(block: EffectBlock, frame: number): boolean { function applyEffectsToLayer (line 85) | function applyEffectsToLayer( function applyEffectsToGroup (line 124) | function applyEffectsToGroup( function applyGlobalEffects (line 142) | function applyGlobalEffects( function bakeEffectIntoFrames (line 163) | function bakeEffectIntoFrames( function hasActiveEffectsAtFrame (line 266) | function hasActiveEffectsAtFrame( FILE: src/utils/effectsProcessing.ts function mapCanvasColorsToPalette (line 29) | function mapCanvasColorsToPalette( type ProcessEffectOptions (line 66) | interface ProcessEffectOptions { function processEffect (line 80) | async function processEffect( function processEffectOnFrames (line 175) | async function processEffectOnFrames( function processLevelsEffect (line 226) | function processLevelsEffect( function processHueSaturationEffect (line 288) | function processHueSaturationEffect( function processRemapColorsEffect (line 329) | function processRemapColorsEffect( function processRemapCharactersEffect (line 370) | function processRemapCharactersEffect( function shouldProcessColor (line 406) | function shouldProcessColor(color: string, colorRange: ColorRange | unde... function applyLevelsToColor (line 423) | function applyLevelsToColor( function applyLevelsToChannel (line 445) | function applyLevelsToChannel( function applyHSLAdjustments (line 480) | function applyHSLAdjustments(color: string, hueShift: number, saturation... function findColorMapping (line 497) | function findColorMapping(color: string, mappings: Record void) { method exportImage (line 91) | async exportImage( method exportSvg (line 159) | async exportSvg( method exportVideo (line 312) | async exportVideo( method exportSession (line 359) | async exportSession( method exportText (line 478) | async exportText( method exportJson (line 570) | async exportJson( method exportHtml (line 723) | async exportHtml( method exportReactComponent (line 1348) | async exportReactComponent( method sanitizeReactFileName (line 1471) | private sanitizeReactFileName(value: string): string { method toPascalCase (line 1486) | private toPascalCase(value: string): string { method generateReactComponentCode (line 1500) | private generateReactComponentCode(options: { method exportInkComponent (line 1960) | async exportInkComponent( method generateInkComponentCode (line 2122) | private generateInkComponentCode(options: { method suggestLightModeColor (line 2373) | private suggestLightModeColor(hex: string): string { method suggestLightModeAnsiColor (line 2406) | private suggestLightModeAnsiColor(ansiColor: string): string { method exportOpenTuiComponent (line 2437) | async exportOpenTuiComponent( method generateOpenTuiComponentCode (line 2599) | private generateOpenTuiComponentCode(options: { method exportBubbleteaComponent (line 2844) | async exportBubbleteaComponent( method hexToAnsi16Color (line 2949) | private hexToAnsi16Color(hex: string): { code: string; name: string } { method hexTo256Color (line 3004) | private hexTo256Color(hex: string): number { method color256ToHex (line 3037) | private color256ToHex(code: number): string { method hexTo256Hex (line 3073) | private hexTo256Hex(hex: string): string { method generateBubbleteaCode (line 3081) | private generateBubbleteaCode(params: { method cropGrid (line 3447) | private cropGrid(grid: string[][], settings: TextExportSettings): stri... method createExportCanvas (line 3490) | private createExportCanvas( method renderFrame (line 3541) | private async renderFrame( method drawGrid (line 3600) | private drawGrid( method drawExportCell (line 3635) | private drawExportCell( method canvasToBlob (line 3666) | private canvasToBlob(canvas: HTMLCanvasElement, type: string, quality?... method supportsWebCodecs (line 3696) | private supportsWebCodecs(): boolean { method exportWebMVideo (line 3705) | private async exportWebMVideo( method exportMP4Fallback (line 3746) | private async exportMP4Fallback( method generateVideoFrames (line 3846) | private async generateVideoFrames( method deduplicateCliFrames (line 3932) | private deduplicateCliFrames( method getLoopMultiplier (line 3961) | private getLoopMultiplier(loops: VideoExportSettings['loops']): number { method encodeWebMVideo (line 3974) | private async encodeWebMVideo( method getBitrateForQuality (line 4053) | private getBitrateForQuality(quality: VideoExportSettings['quality'], ... method buildShaderExportBundle (line 4078) | private buildShaderExportBundle( method generateWebGLShaderRuntime (line 4177) | private generateWebGLShaderRuntime(bundle: NonNullable { method getFontForFamily (line 129) | async getFontForFamily(familyName: string): Promise { method getLoadedFont (line 170) | getLoadedFont(fontId: string): LoadedFont | null { method isFontLoaded (line 177) | isFontLoaded(fontId: string): boolean { method clearCache (line 184) | clearCache(): void { method getCacheStats (line 193) | getCacheStats() { method createError (line 205) | private createError( method handleLoadError (line 222) | private handleLoadError(error: unknown, fontId: string): FontLoadError... FILE: src/utils/font/fontRegistry.ts constant FONT_REGISTRY (line 13) | const FONT_REGISTRY: FontMetadata[] = [ constant DEFAULT_OUTLINE_FONT_ID (line 28) | const DEFAULT_OUTLINE_FONT_ID = 'jetbrains-mono'; function getFontMetadata (line 33) | function getFontMetadata(fontId: string): FontMetadata | undefined { function getRecommendedFonts (line 40) | function getRecommendedFonts(): FontMetadata[] { function getFontPath (line 47) | function getFontPath(fontId: string): string | undefined { function isValidFontId (line 55) | function isValidFontId(fontId: string): boolean { function getFontDisplayName (line 62) | function getFontDisplayName(fontId: string): string { FILE: src/utils/font/opentypePathConverter.ts function convertGlyphToSvgPath (line 14) | function convertGlyphToSvgPath( function transformPathToSvg (line 73) | function transformPathToSvg( function generateSvgPathElement (line 184) | function generateSvgPathElement( function hasGlyph (line 213) | function hasGlyph(font: Font, char: string): boolean { function getMissingGlyphs (line 225) | function getMissingGlyphs(font: Font, text: string): string[] { FILE: src/utils/font/types.ts type FontMetadata (line 11) | interface FontMetadata { type FontLoadOptions (line 37) | interface FontLoadOptions { type LoadedFont (line 51) | interface LoadedFont { type GlyphExportOptions (line 68) | interface GlyphExportOptions { type GlyphPathResult (line 97) | interface GlyphPathResult { type FontLoadError (line 114) | type FontLoadError = type FontLoadErrorDetail (line 125) | interface FontLoadErrorDetail { FILE: src/utils/fontDetection.ts function probeLocalFont (line 22) | async function probeLocalFont(fontName: string): Promise { function canvasFontDetection (line 40) | function canvasFontDetection(fontName: string): boolean { function isFontAvailable (line 85) | async function isFontAvailable(fontName: string): Promise { function parseFontStack (line 115) | function parseFontStack(fontStack: string): string[] { function getActualUsedFont (line 133) | async function getActualUsedFont(fontStack: string): Promise { function detectMonospaceDefault (line 163) | function detectMonospaceDefault(): string { function detectAvailableFont (line 207) | async function detectAvailableFont(fontStack: string): Promise { function isFallbackActive (line 225) | async function isFallbackActive( function clearFontCache (line 237) | function clearFontCache(): void { function getFontFallbackMessage (line 246) | function getFontFallbackMessage( FILE: src/utils/fontLoader.ts constant BUNDLED_FONT_FILES (line 15) | const BUNDLED_FONT_FILES: Record { function isFontLoaded (line 104) | function isFontLoaded(fontName: string): boolean { function isFontLoading (line 111) | function isFontLoading(fontName: string): boolean { function preloadBundledFonts (line 119) | function preloadBundledFonts(): void { function getBundledFontNames (line 136) | function getBundledFontNames(): string[] { FILE: src/utils/fontMetrics.ts type FontMetrics (line 8) | interface FontMetrics { type SpacingSettings (line 16) | interface SpacingSettings { constant CELL_ASPECT_RATIO (line 25) | const CELL_ASPECT_RATIO = 0.6; constant DEFAULT_SPACING (line 119) | const DEFAULT_SPACING: SpacingSettings = { FILE: src/utils/generators/digitalRain.ts type DigitalTrail (line 10) | interface DigitalTrail { function generateDigitalRain (line 24) | async function generateDigitalRain( FILE: src/utils/generators/generatorEngine.ts type GeneratorResult (line 18) | interface GeneratorResult { function generateFrames (line 38) | async function generateFrames( function validateGeneratorParams (line 147) | function validateGeneratorParams( FILE: src/utils/generators/particlePhysics.ts function perlinNoise3D (line 15) | function perlinNoise3D(x: number, y: number, z: number): number { function hash (line 53) | function hash(n: number): number { function fade (line 58) | function fade(t: number): number { function lerp (line 62) | function lerp(a: number, b: number, t: number): number { function grad (line 66) | function grad(hash: number, x: number, y: number, z: number): number { type Particle (line 73) | interface Particle { function getEmitterPosition (line 91) | function getEmitterPosition( function checkParticleCollision (line 134) | function checkParticleCollision( function resolveParticleCollision (line 148) | function resolveParticleCollision( function generateParticlePhysics (line 197) | async function generateParticlePhysics( FILE: src/utils/generators/radioWaves.ts function calculateShapeDistance (line 15) | function calculateShapeDistance( function calculateProfileIntensity (line 112) | function calculateProfileIntensity( function generateRadioWaves (line 143) | async function generateRadioWaves( FILE: src/utils/generators/rainDrops.ts type Ripple (line 11) | interface Ripple { function generateRainDrops (line 23) | async function generateRainDrops( FILE: src/utils/generators/turbulentNoise.ts function generateTurbulentNoise (line 13) | async function generateTurbulentNoise( function perlinNoise3D (line 124) | function perlinNoise3D(x: number, y: number, z: number): number { function simplexNoise3D (line 165) | function simplexNoise3D(x: number, y: number, z: number): number { function worleyNoise3D (line 174) | function worleyNoise3D(x: number, y: number, z: number): number { function hash3D (line 212) | function hash3D(x: number, y: number, z: number): number { function grad3D (line 219) | function grad3D(hash: number, x: number, y: number, z: number): number { function fade (line 229) | function fade(t: number): number { function lerp (line 236) | function lerp(a: number, b: number, t: number): number { FILE: src/utils/gradientEngine.ts type GradientPoint (line 3) | interface GradientPoint { type GradientOptions (line 8) | interface GradientOptions { FILE: src/utils/kdTree.ts type KdNode (line 9) | interface KdNode { type NearestResult (line 17) | interface NearestResult { class KdTree (line 23) | class KdTree { method constructor (line 27) | constructor(entries: Array<{ point: number[]; data: T }>) { method buildTree (line 37) | private buildTree( method findNearest (line 64) | findNearest(query: number[]): NearestResult | null { method squaredDistance (line 104) | private squaredDistance(a: number[], b: number[]): number { FILE: src/utils/layerCompositing.ts function compositeLayersAtFrame (line 44) | function compositeLayersAtFrame( function getContentFrameAtTime (line 394) | function getContentFrameAtTime(layer: Layer, frame: number): ContentFram... function getPropertyValueAtFrame (line 436) | function getPropertyValueAtFrame( function getTransformAtFrame (line 461) | function getTransformAtFrame( function applyRotation (line 501) | function applyRotation( function getVisibleLayers (line 534) | function getVisibleLayers(layers: Layer[]): Layer[] { function isLayerEditable (line 547) | function isLayerEditable(layer: Layer): boolean { function inverseTransformPoint (line 563) | function inverseTransformPoint( function getGroupPropertyValue (line 594) | function getGroupPropertyValue( function compositeOneLayerToScreenSpace (line 622) | function compositeOneLayerToScreenSpace( FILE: src/utils/layerLimits.ts constant FREE_TIER_MAX_LAYERS (line 26) | const FREE_TIER_MAX_LAYERS = 5; constant UNLIMITED_LAYERS (line 29) | const UNLIMITED_LAYERS = -1; function registerSubscriptionLayerLimit (line 60) | function registerSubscriptionLayerLimit(getter: () => number): void { function getSubscriptionLayerLimit (line 68) | function getSubscriptionLayerLimit(): number { function canAddLayer (line 86) | function canAddLayer(): boolean { function getImportableLayerCount (line 101) | function getImportableLayerCount(incomingLayers: number): number { function getRemainingLayerCount (line 113) | function getRemainingLayerCount(): number { FILE: src/utils/layerTransformUtils.ts type ComposedTransform (line 31) | interface ComposedTransform { function getComposedTransformForLayer (line 52) | function getComposedTransformForLayer( function screenToLocalForLayer (line 86) | function screenToLocalForLayer( function getActiveComposedTransform (line 111) | function getActiveComposedTransform(): ComposedTransform | null { function hasNonIdentityTransform (line 121) | function hasNonIdentityTransform(t: ComposedTransform): boolean { function screenToLocal (line 142) | function screenToLocal(x: number, y: number): { x: number; y: number } { function localToScreen (line 153) | function localToScreen(x: number, y: number): { x: number; y: number } { function transformCellMapToLocal (line 176) | function transformCellMapToLocal(cells: Map): Map): Map = { constant EXCLUDED_CHARS (line 63) | const EXCLUDED_CHARS = new Set('abcdefghijklmnopqrstuvwxyz0123456789{}&$... type CharCandidate (line 66) | interface CharCandidate { class LineArtConverter (line 74) | class LineArtConverter { method init (line 83) | init(cellPixelWidth: number, cellPixelHeight: number, fontFamily = 'mo... method convertImage (line 144) | convertImage( method matchCharacter (line 216) | private matchCharacter( method sobelEdgeDetect (line 278) | private sobelEdgeDetect( method gaussianBlur (line 310) | private gaussianBlur( method morphDilate (line 357) | private morphDilate( method morphErode (line 390) | private morphErode( method sdfBlur (line 425) | private sdfBlur( FILE: src/utils/mediaProcessor.ts type Mp4ArrayBuffer (line 15) | type Mp4ArrayBuffer = ArrayBuffer & { fileStart?: number }; type MediaFile (line 17) | interface MediaFile { type ProcessingOptions (line 26) | interface ProcessingOptions { type ProcessedFrame (line 44) | interface ProcessedFrame { type ProcessingResult (line 52) | interface ProcessingResult { constant SUPPORTED_IMAGE_FORMATS (line 70) | const SUPPORTED_IMAGE_FORMATS = [ constant SUPPORTED_VIDEO_FORMATS (line 80) | const SUPPORTED_VIDEO_FORMATS = [ constant ALL_SUPPORTED_FORMATS (line 90) | const ALL_SUPPORTED_FORMATS = [ class MediaProcessor (line 95) | class MediaProcessor { method constructor (line 99) | constructor() { method validateFile (line 111) | validateFile(file: File): MediaFile | null { method processImage (line 130) | async processImage(mediaFile: MediaFile, options: ProcessingOptions): ... method processVideo (line 165) | async processVideo(mediaFile: MediaFile, options: ProcessingOptions): ... method loadImage (line 202) | private loadImage(file: File): Promise { method loadVideo (line 214) | private loadVideo(file: File): Promise { method processImageToCanvas (line 234) | private processImageToCanvas(img: HTMLImageElement, options: Processin... method extractVideoFrames (line 311) | private async extractVideoFrames(video: HTMLVideoElement, options: Pro... method estimateVideoFrameRate (line 366) | private async estimateVideoFrameRate(video: HTMLVideoElement, original... method extractFrameRateFromMetadata (line 386) | private async extractFrameRateFromMetadata(_video: HTMLVideoElement, o... method parseMP4FrameRate (line 403) | private parseMP4FrameRate(arrayBuffer: ArrayBuffer): Promise { method processVideoFrameToCanvas (line 489) | private processVideoFrameToCanvas( method calculateSourceRect (line 571) | private calculateSourceRect( method dispose (line 659) | dispose(): void { FILE: src/utils/paletteValidation.ts type ValidationResult (line 6) | interface ValidationResult { constant SUPPORTED_PALETTE_EXTENSIONS (line 195) | const SUPPORTED_PALETTE_EXTENSIONS = ['.json', '.palette', '.pal'] as co... FILE: src/utils/performance.ts type PerformanceMetric (line 6) | interface PerformanceMetric { type RenderMetrics (line 13) | interface RenderMetrics { class PerformanceMonitor (line 20) | class PerformanceMonitor { method constructor (line 27) | constructor() { method start (line 35) | start(name: string): void { method end (line 47) | end(name: string): number { method measureCanvasRender (line 68) | measureCanvasRender(cellCount: number): { duration: number; fps: numbe... method getStats (line 105) | getStats(): { method logStats (line 144) | logStats(): void { method clear (line 153) | clear(): void { method testLargeGrid (line 163) | async testLargeGrid(width: number, height: number): Promise<{ method getRecommendation (line 206) | private getRecommendation(renderTime: number, cellCount: number): stri... type PerformanceHelperBindings (line 240) | type PerformanceHelperBindings = { FILE: src/utils/polygon.ts type Point (line 5) | interface Point { function isPointInPolygon (line 16) | function isPointInPolygon(point: Point, polygon: Point[]): boolean { function lineIntersectsCell (line 47) | function lineIntersectsCell(p1: Point, p2: Point, cellX: number, cellY: ... function getCellsInPolygon (line 111) | function getCellsInPolygon(polygon: Point[], width: number, height: numb... function smoothPolygonPath (line 155) | function smoothPolygonPath(points: Point[], tolerance: number = 2): Poin... FILE: src/utils/postEffectsPipeline.ts function evaluatePostEffectBlock (line 26) | function evaluatePostEffectBlock( function getActivePostEffects (line 89) | function getActivePostEffects( function hasActivePostEffectsAtFrame (line 106) | function hasActivePostEffectsAtFrame( function buildPostEffectPasses (line 131) | function buildPostEffectPasses( function hasAnyPostEffects (line 153) | function hasAnyPostEffects(postEffectTracks: PostEffectTrack[]): boolean { FILE: src/utils/projectUtils.ts function getProjectFrameCount (line 11) | function getProjectFrameCount(sessionData: CloudProject['sessionData']):... FILE: src/utils/renderScheduler.ts type RenderCallback (line 6) | type RenderCallback = () => void; class RenderScheduler (line 8) | class RenderScheduler { method schedule (line 16) | schedule(callback: RenderCallback): void { method executeBatch (line 30) | private executeBatch(): void { method cancel (line 50) | cancel(): void { method flush (line 62) | flush(): void { type RenderListener (line 85) | type RenderListener = () => void; function notifyCanvasRendered (line 89) | function notifyCanvasRendered(): void { function onCanvasRendered (line 96) | function onCanvasRendered(fn: RenderListener): () => void { FILE: src/utils/selectionConstraint.ts function isCellDrawable (line 21) | function isCellDrawable(x: number, y: number): boolean { function isCellDrawableWithState (line 43) | function isCellDrawableWithState( function constrainCellsToSelection (line 61) | function constrainCellsToSelection( function constrainCellsToSelectionWithState (line 83) | function constrainCellsToSelectionWithState( function constrainCellMapToSelection (line 102) | function constrainCellMapToSelection( function constrainCellMapToMask (line 128) | function constrainCellMapToMask( function getSelectionState (line 148) | function getSelectionState(): { function hasActiveSelection (line 161) | function hasActiveSelection(): boolean { function getSelectionBounds (line 170) | function getSelectionBounds(): { function isPointInSelectionBounds (line 187) | function isPointInSelectionBounds(x: number, y: number): boolean { function canFillCell (line 203) | function canFillCell(cellKey: string): boolean { function canFillCellWithState (line 219) | function canFillCellWithState( FILE: src/utils/selectionUtils.ts type SelectionBounds (line 3) | interface SelectionBounds { FILE: src/utils/sessionImporter.ts type SessionFrameCells (line 17) | type SessionFrameCells = Record; type SessionFrameData (line 19) | interface SessionFrameData { type SessionCanvasData (line 27) | interface SessionCanvasData { type SessionAnimationData (line 34) | interface SessionAnimationData { type SessionToolsData (line 41) | interface SessionToolsData { type SessionPalettesData (line 49) | interface SessionPalettesData { type SessionCharacterPalettesData (line 55) | interface SessionCharacterPalettesData { type SessionImportData (line 63) | interface SessionImportData { class SessionImporter (line 79) | class SessionImporter { method importSessionFile (line 84) | static async importSessionFile( method _validateSessionData (line 154) | private static _validateSessionData(data: unknown): data is SessionImp... method _restoreSessionData (line 247) | private static _restoreSessionData( method restoreSessionDataV2 (line 415) | private static restoreSessionDataV2( FILE: src/utils/sessionMigration.ts type V1SessionFrame (line 24) | interface V1SessionFrame { type V1SessionData (line 36) | interface V1SessionData { function detectSessionVersion (line 71) | function detectSessionVersion(data: unknown): '1.0.0' | '2.0.0' | 'unkno... constant DEFAULT_FRAME_DURATION_MS (line 99) | const DEFAULT_FRAME_DURATION_MS = 100; constant MIN_FRAME_RATE (line 104) | const MIN_FRAME_RATE = 1; constant MAX_FRAME_RATE (line 105) | const MAX_FRAME_RATE = 60; function migrateV1ToV2 (line 120) | function migrateV1ToV2(v1Data: unknown): SessionDataV2 { function validateAndRepairV2 (line 233) | function validateAndRepairV2(data: SessionDataV2): { FILE: src/utils/shapeBasedConverter.ts type AutoModeCharacterSet (line 29) | type AutoModeCharacterSet = 'basic-ascii' | 'block-characters' | 'braille'; type ShapeMappingMethod (line 32) | type ShapeMappingMethod = 'brightness' | 'luminance' | 'saturation' | 'r... type ShapeConverterOptions (line 34) | interface ShapeConverterOptions { constant SAMPLING_QUALITY_PRESETS (line 45) | const SAMPLING_QUALITY_PRESETS = { type SamplingQuality (line 51) | type SamplingQuality = keyof typeof SAMPLING_QUALITY_PRESETS; class ShapeBasedConverter (line 53) | class ShapeBasedConverter { method constructor (line 58) | constructor(options: ShapeConverterOptions) { method convertImage (line 86) | convertImage( method convertImageBraille (line 177) | private convertImageBraille( method computeSamplingVector (line 253) | computeSamplingVector( method computeExternalSamplingVector (line 279) | private computeExternalSamplingVector( method sampleCircle (line 305) | private sampleCircle( method pixelToScalar (line 349) | private pixelToScalar(r: number, g: number, b: number): number { method applyGlobalContrast (line 386) | applyGlobalContrast(vector: number[], exponent: number): number[] { method applyDirectionalContrast (line 405) | applyDirectionalContrast( method findBestCharacter (line 430) | findBestCharacter(samplingVector: number[]): string { FILE: src/utils/svgExportUtils.ts function generateSvgHeader (line 12) | function generateSvgHeader( function generateSvgGrid (line 27) | function generateSvgGrid( function generateSvgTextElement (line 55) | function generateSvgTextElement( function convertTextToPath (line 94) | function convertTextToPath( function convertTextToPathPixelTracing (line 153) | function convertTextToPathPixelTracing( function canvasToSvgPath (line 229) | function canvasToSvgPath( function traceContour (line 293) | function traceContour( function escapeXml (line 388) | function escapeXml(str: string): string { function prettifySvg (line 401) | function prettifySvg(svg: string): string { function minifySvg (line 410) | function minifySvg(svg: string): string { FILE: src/utils/timeEffectsProcessing.ts function calculateAccumulatedTime (line 22) | function calculateAccumulatedTime( function applyWaveWarpToFrame (line 50) | function applyWaveWarpToFrame( function applyWiggleToFrame (line 110) | function applyWiggleToFrame( function fpsToMs (line 179) | function fpsToMs(fps: number): number { function msToFps (line 190) | function msToFps(ms: number): number { function clampFrameDuration (line 203) | function clampFrameDuration(ms: number, min: number = 17, max: number = ... function clampFps (line 215) | function clampFps(fps: number, min: number = 1, max: number = 60): number { FILE: src/utils/vectorShapeGeometry.ts function generateShapeAnchorId (line 11) | function generateShapeAnchorId(): string { constant KAPPA (line 19) | const KAPPA = 0.5522847498; type ShapeBounds (line 21) | interface ShapeBounds { function generateRectangleAnchorPoints (line 33) | function generateRectangleAnchorPoints(bounds: ShapeBounds, filled: bool... function generateEllipseAnchorPoints (line 74) | function generateEllipseAnchorPoints(bounds: ShapeBounds, filled: boolea... FILE: src/utils/webgl/WebGLPostProcessor.ts type PostEffectPass (line 26) | interface PostEffectPass { class WebGLPostProcessor (line 37) | class WebGLPostProcessor { method initialize (line 73) | initialize(canvas: HTMLCanvasElement): boolean { method dispose (line 114) | dispose(): void { method isReady (line 155) | isReady(): boolean { method render (line 172) | render( method renderPassthrough (line 311) | renderPassthrough( method createQuad (line 351) | private createQuad(): void { method uploadTexture (line 385) | private uploadTexture(texture: WebGLTexture, source: HTMLCanvasElement... method ensureFramebuffers (line 401) | private ensureFramebuffers(width: number, height: number): void { method setUniform (line 455) | private setUniform( method setUniformFromValue (line 488) | private setUniformFromValue( function hexToRgb (line 533) | function hexToRgb(hex: string): [number, number, number] { FILE: src/utils/webgl/commonShaders.ts constant FULLSCREEN_VERTEX_SHADER (line 15) | const FULLSCREEN_VERTEX_SHADER = `#version 300 es constant PASSTHROUGH_FRAGMENT_SHADER (line 37) | const PASSTHROUGH_FRAGMENT_SHADER = `#version 300 es constant GLSL_UTILITIES (line 57) | const GLSL_UTILITIES = ` function buildFragmentShader (line 122) | function buildFragmentShader( FILE: src/utils/webgl/shaderCompiler.ts type ShaderProgram (line 12) | interface ShaderProgram { function compileShader (line 26) | function compileShader( function linkProgram (line 58) | function linkProgram( function createShaderProgram (line 83) | function createShaderProgram( function cacheKey (line 132) | function cacheKey(vertexSource: string, fragmentSource: string): string { function getOrCreateProgram (line 146) | function getOrCreateProgram( function clearProgramCache (line 170) | function clearProgramCache(): void {