* Wire document-format into graphene-cli
* Support loading both legacy and new graphite files in the cli
* Address PR review: propagate CLI errors and use dyn resolver
* Fix CLI network wrap + preprocessor ordering
* Cleanup preprocessor
* Remove unused import
* feat: Render List<String> as raw paths in SVG and Vell mode
* chore: code review
* chore: change the hardcoded layout bounds to parley's
* chore: code review
* feat: Split text node to text_layer and text_to_vector node
* fix: CI fail because of difference in nature of Mac and github action
* chore: fix
* chore: replace FontStack as it got removed in parley 0.9
* chore: fmt
* chore: migrate the rendering as of new resource architechture
* chore: add text_layer node to text tool for testing
* code review
* Make boolean ops support the Text type
* chore: Move fallback_font_resource authority from editor to text node
* Fix 'Text Layer' node missing font dropdown
* Change node doc comments from Vec<T> to T[]
* Add migrations from the old Text node to Text -> Text to Vector
* Consolidate
* Rename the text attributes and reorder tilt to come before max_width/height
* Detect legacy Text nodes in the split migration by their trailing separate_glyphs input
* Code review
* Frame Text layer thumbnails by laying out their text for bounds
* Give Text layers click targets and selection outlines via collect_metadata
* Route Text tool through Text to Vector with fill, fixing editing-preview placement
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Compiler changes
* Run preprocessor on wrapping network
* Remove test nodes
* FIx
* move generate_node_paths call to compiler
* Make it more obvious what input is set to
* Macro support
* Preprocessor support
* Allow Cow str as scope name
* Use Passthrough node to work around compiler auto wrapping the producer node and invalidating the node id
* Stable NodeIds
* Less hacky but with bad performace
* Remove Cow from RegistryValueSource::Scope
* Connect scope injections to the inner network export
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Good start
* Impl
* allow responses.add(async { Message::NoOp });
* Fix
* Cache font blob in text node
* Refactor font handling to use Font struct direcly
* Fix fmt
* Embedd Font Resources by default
* Review
* Review
* Cache font info based on ResourceHash
* Use ResourceId for referring to Resources
* Use Doc
* use error for preprocessor ResourceId replacement failure
* Keep hashes in DocumentInfo
* Migrate with less mem copy
* Global ResourceMessage -> ResourceStorageMessage
* Add document ResourceMessage
* Move embedding logic
* Fix
* Cleanup
* Review
* Fix
* Add Table<GradientStops> gradient rendering
* Add SVG and Vello renderers for Table<GradientStops>
* Add thumbnail rendering for Table<GradientStops>
* Use row transform to map (0,0), (1,0) unit line to document space
* Set 100px width for the initially created gradient
* Add support of table gradients for the gradient tool
* Fix after review
* Thumbnail rendering of artboard with infinite gradient layer
* Hide radial gradient's reverse direction button for gradient table
* Remove unused imports
* Format
* Fix conflict with spread method
* Code review
* Fix thumbnails
* Connect up gradient_type and spread_method to attributes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Replace the Artboard struct with a Table<Table<Graphic>> shape
* Remove the never-functional, seemingly unneeded migrate_type_descriptor_names due to typo
* Allow negative artboard sizes
* Feature-gate serde derives behind cfg_attr in all runtime node graph type crates
* Refactor Table to move its hard-coded fields into an attributes field
* Encapsulate TableRow/TableRowRef/TableRowMut attribute fields behind accessor methods
* Remove TaggedValue::GraphicUnused
* Refactor Table<T> to use dynamic attributes instead fixed names
* Fix code review soundness concerns
* Add todo work
* Replace row-oriented Table<T> API with column-oriented access
* Fix attribute propagation bugs
---------
* Add checkered transparency rendering to infinite canvas and artboards
* Enable artboard clipping by default
* Make new infinite canvas documents begin with a white background layer
* Remove the export dialog's transparency option now that it's redundant
* Make exporting transparent JPGs use white not black
* Code review
* Migrate Specta to Tsify to auto-generate messages.ts, working except colors and widgets
* Adopt the generated FillColor/Color/GradientStops
* Fix widget typing
* Separate WidgetGroup enum variants into wrapper structs
* Small rename
* Simplify widgets further
* Clean up message type references
* Switch type imports to the auto-generated file
* Remove lowercase serde rename
* Fix FillChoice deserialization
* Fix small regression from #3837
* Improve type safety
* Make WidgetSpan type-safe
* More cleanup and type safety
* More type safety
* More type safety
* Get the rest to type-check without errors; improve widget builder macro to have optional icons; improve Svelte 5 configs
* Cargo fmt
* Fix imports
* Update outdated readme info
* Fix lint command rename references
* Fix typos
* One more typos fix
* Remove unnecessary dep: prefix from the edited Cargo.toml files
* Remove excess parts from Cargo.toml
* Fix compiling on desktop
* Revert "Remove excess parts from Cargo.toml"
This reverts commit 6b711117b3a5d5d8a3ee20f36a43bc74930b7c82.
* Update dev docs with simpler, more accurate instructions
* Remove Vello from preferences
* Add the Render Mode: SVG Preview radio button
* Remove SVG outline renderer
* Add a tooltip explaination when disabled in unsupported browsers
* Fix Eyedropper tool to support Outline render mode
* Use #[allow(clippy::too_many_arguments)] instead of tuple
* Rerun nodegraph when max render area is changed
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* WIP render caching
* Hook up render cache to render pipeline
* Fixed offsets
* Initial cleanup
* Integrate cache with context invalidation
* Cleanup
* Improve rounding and reduce tile size to fix vello not rendering
* Include pointer position in cache key
* Avoid unwraps and zero sized textures
* Destroy textures after blitting to surface
* Fix context dependencies
* Exclude footprint from render params
* Batch animation frame messages
* Add vello max render size to preference dialogue
* Remove unused import
* Reorder vello preference
* Clean up preferences dialog
* Apply review suggestions
* Cap max render region size
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Generate the MVP node catalog in the manual (with some placeholders)
* Implement nearly the rest of everything
* Move to the tools directory and make it generate nicer default values
* Add category descriptions
* Organize file structure and improve type naming
* Improve book table of contents code
* Add collapsing chapter navigation to the book template
* Add to build workflow
* Clean up site structure
* Replace the title attribute with custom FloatingMenu tooltips
* Separate tooltip labels and descriptions into two styled blocks
* Move keyboard shortcut tooltips to a separate section at the bottom
* Update shortcut key styling in tooltips and hints bar
* Fix .to_string()
* Make manual_compositon non optional and rename to call_argument
* Fix clippy warnings
* Remove automatic composition compiler infrastructure
* Implement document migration
* Fix tests
* Fix compilation on web
* Fix doble number test
* Remove extra parens
* Cleanup
* Update demo artwork
* Remove last compose node mention
* Remove last mention of manual composition