packages/features/src/pattern/pattern-renderer.ts | clamp, clampNonNegative, safeDimension, normalizeHexColor, parseHexColorToRgb (+22) |
packages/features/src/pattern/pattern-asset-drawing-dialog.tsx | normalizeSuggestedName, sanitizePercent, stopEvent, stopEventAndPreventDefault, PatternAssetDrawingDialog (+13) |
apps/web/src/features/pattern/pattern-pages.tsx | extractPatternPresetConfig, PatternLandingPage, setHeaderActions, resetHeader, setPresetViewMode (+12) |
packages/features/src/pattern/pattern-assets-accordion.tsx | createPatternAssetId, toSuggestedAssetName, revokeObjectUrlIfNeeded, resolveBitmapSize, buildAssetFromBlob (+11) |
packages/features/src/pattern/pattern-generator.ts | mulberry32, getPlacementCorners, isPlacementAcceptedByStrictBoundaryMode, isPlacementAcceptedByCenterBoundaryMode, shouldRenderPlacement (+11) |
packages/features/src/pattern/pattern-drawing-utils.ts | toLocalCanvasPoint, toBrushPreview, clamp01, drawPolylineStroke, drawSmoothBrushStroke (+4) |
packages/features/src/pattern/pattern-workspace-shell.tsx | extractPatternPresetConfig, PatternWorkspaceShell, setPresetViewMode, ensureDefaultPreset, saveCurrentPreset (+4) |
packages/features/src/pattern/pattern-export-utils.ts | resolveRasterTargetFormat, downloadBlob, loadAssetBitmaps, loadBackgroundBitmap, exportPatternWithWorker (+2) |
packages/features/src/pattern/pattern-canvas-accordion.tsx | revokeObjectUrlIfNeeded, PatternCanvasAccordion, setCanvas, setCanvasSize, handleUploadBackground (+2) |
packages/features/src/pattern/pattern-tab.tsx | clearExportToastHideTimer, pushExportToast, scheduleExportToastHide, handleRemoveExportToast, handleExportPattern (+1) |