Commit graph

65 commits

Author SHA1 Message Date
Andrea Fletcher
18c1d02d43
Add tag() action for CollectionService tags
Adds a built-in `vide.tag()` action that wraps `Instance:AddTag()` /
`Instance:RemoveTag()` so tags can be applied through `create()` props.

It accepts a static string or array of strings, or a reactive source
returning either. The reactive variant diffs the previous and new tag
sets so only the delta is applied. All tags added by the action are
removed when the surrounding scope is destroyed.

Includes mock support for `AddTag`/`RemoveTag`/`HasTag`/`GetTags`,
tests, API reference docs, and a closing note in the actions tutorial.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 22:10:47 -07:00
centauri
cf58410b89 Fix spring impulse control 2025-12-04 14:22:16 +00:00
centauri
ce24f8ade9 Cleanup scope functions 2025-09-01 21:59:35 +01:00
centauri
4b4db9602e Implement delays for indexes() and values() 2025-08-31 20:37:46 +01:00
centauri
5262ef711c Implement delays for show() and switch() 2025-08-29 17:44:02 +01:00
aaron
452ca383f7 Optimize indexes() and values() 2025-03-27 19:27:54 +00:00
EwDev
37e8e05206
Support nesting Parent (#48)
* allow nesting parent property

* update changelog

* fix mock instances Parent property not being a proxy

* add tests

Closes #47
2025-02-23 21:31:26 +00:00
aaron
b7878753bd Update untrack() type to allow no return 2025-01-07 00:06:39 +00:00
aaron
a383c4ce69 Fix show() edge case 2025-01-06 23:56:49 +00:00
aaron
46a2043356 Ignore false passed as a child 2025-01-04 00:45:55 +00:00
aaron
c796e48173 Add source to show() callback 2025-01-04 00:40:51 +00:00
aaron
b44b9ef2ba Add implicit effects recursively creating more implicit effects for children 2024-12-27 01:00:45 +00:00
aaron
4c639f8388 Add flag to disable deferral of nested properties 2024-12-26 22:36:58 +00:00
aaron
ccaeb030f3 Remove aggregate construction 2024-12-26 21:17:14 +00:00
aaron
e60aa57ca2 Fix edge case with map functions 2024-11-27 19:43:51 +00:00
11poe
44fe65ee5e
Add create(a, { props }) syntax (#42)
* Add new create syntax

* Add new create syntax to changelog

* Fix new create syntax test
2024-11-16 20:20:49 +00:00
aaron
fdb4a137a8 Fix test require 2024-11-16 18:41:27 +00:00
aaron
5abd5eee91 Update require paths to relative string 2024-11-13 22:19:20 +00:00
aaron
0897821e1f Add check for destruction of active scope 2024-11-13 21:56:22 +00:00
aaron
6ead93088a Make context functions return result 2024-10-09 02:12:25 +01:00
aaron
82eec61c45 Make root() return destructor automatically 2024-10-06 15:37:05 +01:00
aaron
8142acd1c1 Add context() 2024-10-06 15:20:04 +01:00
alicesaidhi
fbe2f01bb9
fix recursive queue flush (#28)
* fix recursive queue flush

* remove print from test

* swap order of flush

* simplified test case and remove error

* write more in-depth tests

* change approach flush_update_queue

* double diamond test case

* fix indent

* change naming of function

* subsequent updates do not batch test case

* simplify test case
2024-08-20 12:44:56 +01:00
alicesaidhi
b85419088c
allow fragments in implicit effects for children (#29)
* fix fragments in effects

* add test case

* more descriptive test
2024-08-20 12:40:29 +01:00
aaron
2dc2814d76 Fix regression with derived sources 2024-07-19 11:21:49 +01:00
aaron
7bae2517cd Improve error reporting 2024-07-15 17:37:26 +01:00
aaron
f2de9b0e63 Refactor 2024-07-03 15:02:52 +01:00
Aaron Smith
c288cb92c4 Minor refactors
Also fixed potential bug with `create()` being called recursively if a
property binding passed as a property to `create()` also calls
`create()`
2023-11-20 16:53:30 +00:00
Aaron Smith
8eb5f96c5b Fix recursive batch() use 2023-11-20 12:27:56 +00:00
Aaron Smith
65fe3fcf47 Fix some graph edge cases 2023-11-16 18:01:45 +00:00
Aaron Smith
ec998ccbc8 Implement batched updates
No docs yet, more testing needed.
2023-10-27 16:47:49 +01:00
Aaron Smith
7d82fe353e Fix error in test
Also misc changes
2023-10-27 15:47:43 +01:00
aaron
aca08709b6 Update tests 2023-10-25 20:02:40 +01:00
Aaron Smith
15255855c3 Add repeated read test 2023-10-25 16:58:29 +01:00
Aaron Smith
8218e4702f Fix diamond graphs 2023-10-25 15:49:35 +01:00
Aaron Smith
c03fb05779 Make changed() run initially 2023-09-28 16:46:32 +01:00
Aaron Smith
2ae65a0194 Update tests
Added a case to confirm the behavior of strict mode's double evaluation
and node cached values.
2023-09-27 10:24:14 +01:00
Aaron Smith
d07c705b64 Fix switch() not working in strict mode
Fixes #20
2023-09-27 10:02:09 +01:00
Aaron Smith
32fa44f4c5 Cleanup helper for instances
Closes #19
2023-09-26 14:34:27 +01:00
Aaron Smith
71bbaa2092 Update reactive scoping docs 2023-09-26 13:27:38 +01:00
aaron
c68d0a6c18 Allow creation of nested tracking scopes
It turns out that handling destruction of a nested tracking scope was
not as difficult as I thought and didn't need much changes
2023-09-25 23:37:51 +01:00
aaron
38342b3805 Disallow creation of nested tracking scopes 2023-09-25 11:44:24 +01:00
Aaron Smith
97096f8aff Add tests for show() and read() 2023-09-20 18:42:02 +01:00
Aaron Smith
cc4b390d3d Auto strict mode based on optimization level 2023-09-20 12:23:51 +01:00
Richard
a543a24865 Revert "Echo initial value if given a source"
This reverts commit 16e2983c54758cabfb1ddd102090f20083820d03.
2023-09-19 19:21:25 +01:00
Richard
109cca45f3 Echo initial value if given a source 2023-09-19 19:21:25 +01:00
Aaron Smith
d8a627c58a Fix test type error 2023-09-19 17:37:42 +01:00
Aaron Smith
520b0cca32 Update indexes() test 2023-09-19 12:20:03 +01:00
Aaron Smith
250c13e7b8 Fix edge case bugs in reactive graph updates 2023-09-19 12:07:49 +01:00
aaron
c4a0180a2f Improve error messages for derived sources
There seemed to be confusion over reactive-scoping (likely due to
incomplete docs), so I've added more explicit error messages when
deriving in non-reactive scopes to warn the user to use `root()` or
`mount()`.
2023-09-18 09:40:54 +01:00