Revision history for Yote-Spiderpup
0.07 2026-03-09
- Added Playwright browser test suite for component integration testing
- Documented workaround for stale props: component props are evaluated
once on creation; use shared object references for data that changes
after mount
- Documented that set() uses strict equality — reassigning the same
object reference does not trigger re-render; use a counter var to
force updates when mutating shared objects
0.06 2026-02-24
- Fixed loop item argument passing: dynamic attribute/content functions
now receive (module, loop_item, loop_idx) matching the template
convention (m, item) =>. Previously loop_item was passed as the first
arg and loop_idx as the second, making the second param the index
instead of the item.
- Fixed RecipeConditional condition evaluation to pass module as first
arg, fixing conditions like (m, s) => s.completed inside for loops
- Fixed setAttribute to use DOM property for 'value' attribute on form
elements (textarea/input), preventing stale display after user edits
0.03 2026-02-22
- Slot scoping: slot content now resolves variables from the parent scope
where the component is used, not the slot-owning component's scope
- Compiler generates regular functions instead of arrow functions, enabling
proper scope rebinding via .call()
- Fixed SSR rendering of slot content with correct parent variable scoping
- Fixed hydrate() to support scope parameter, matching render() behavior
- Fixed component parentModule to walk past RecipeConditional/RecipeLoop
helpers, preventing TypeError when slot content is inside conditionals
- Added store._notifyAll() for reactive update propagation
- Added _containerEl to RecipeLoop and RecipeConditional
- Cleanup of updatableElements/updatableRecipes in RecipeConditional.refresh()
0.02 2026-02-20
- Single-file component (.pup) format support
- New module Yote::Spiderpup::SFC with parse_sfc() parser
- Pages and recipes can be authored as .pup files alongside .yaml
- .pup uses <script>, <style>, and <template> blocks
- Server, compiler, and watcher all handle .pup files transparently
0.01 2026-02-20
- Initial CPAN release
- YAML-to-JavaScript/HTML recipe compiler
- Reactive component system with state management
- Built-in development server (pupserver)
- Watch mode for automatic recompilation
- CSS/LESS support in recipes