Commit graph

98 commits

Author SHA1 Message Date
75fc1a7ce7 Refactor get/set to use arguments instead of ... 2024-02-01 13:35:57 +01:00
71e086cf04 Change domLense method semantics 2024-02-01 13:35:57 +01:00
2db5871cc9 Refactor API and Code
* Unified more features in SimpleState
* Flip "defer" into "synchronous" option
* Remove fallback from forward states
2024-02-01 13:35:57 +01:00
c5c4e973a5 Remove valueKey from StoredState 2024-01-17 14:09:50 +01:00
47994975f9 Replace state "deep" option with "shallow" option 2024-01-17 11:52:41 +01:00
035eeb8fc0 Add subscribe method to state class
This makes the State class fully compatible with svelte stores
2024-01-17 11:39:16 +01:00
69a2aa1ca3 Allow calling get and set without property name 2024-01-17 11:31:38 +01:00
5726b8c2b9 Rename proxy to values in State class 2024-01-17 11:07:57 +01:00
5a29b0e662 Make handle return a value just in case it is desired 2024-01-15 11:50:27 +01:00
0e6eee28fd Make DOMState API more generic
The old interface was too specific to the way domLense works, by
assuming the value to be an array that gets mutated elsewhere (or a
proxy that behaves like one)
2024-01-15 11:48:52 +01:00
eb75dc531a Remove exports from state.js 2024-01-15 11:03:11 +01:00
3b3e6467c8 Refactor exports
Export rules:
* All default exports as named exports
* Default export wherever it makes sense
2024-01-11 15:44:11 +01:00
7be7cf0210
Change DOMState value to last static value 2024-01-10 22:47:30 +01:00
61be174b6e
Add domState class 2024-01-10 20:42:47 +01:00
f199f64932 Add kebab<->camel case conversion to component state 2024-01-10 15:23:10 +01:00
451718cb74 Add event method/setting to domLense 2024-01-10 15:01:46 +01:00
fb000ba7a3 Replace state from component constructor entirely 2024-01-10 13:31:42 +01:00
b51732636d Add component as argument to state component constructor 2024-01-10 13:28:56 +01:00
f6b82e22ef Enable lense growing with empty values 2024-01-08 14:27:14 +01:00
be79784b2d Add domLense helper 2024-01-08 13:37:36 +01:00
f79e7a9c14
Fix error when passing undefined into tag generator 2023-12-30 13:17:36 +01:00
b476b8651e
Bump minor version number 2023-12-30 13:09:35 +01:00
cdc56f5848
Add nested state change forwarding 2023-12-27 19:58:49 +01:00
37948987b0
Add composed states 2023-12-27 18:52:42 +01:00
b7bb093a0c
Compare strings in component attributes 2023-12-27 18:50:11 +01:00
7febebce65
Map names of forward states to "value" 2023-12-27 18:50:11 +01:00
64b73676cb
Make state components update attributes on state change 2023-12-23 21:16:58 +01:00
b46c5d1d5c
Fix oversights in forwarded state caching 2023-12-23 21:05:55 +01:00
99d791921e
Move description above import block in readme 2023-12-23 18:25:05 +01:00
b372b33f6c
Bump minor version number 2023-12-23 17:48:10 +01:00
e80801b639
Cache forwarded states to avoid duplication 2023-12-23 17:46:43 +01:00
e38d556531
Add fallback option to forwarded state 2023-12-23 17:31:45 +01:00
cebd867bd2
Make reactive elements keep a weak ref to their reactive source 2023-12-23 17:31:01 +01:00
ac484b223d
Re-structure readme 2023-12-22 18:43:47 +01:00
4a348f7806
Remove bind function from readme 2023-12-22 01:02:59 +01:00
3664c59cc0
Bump minor version number 2023-12-22 01:00:28 +01:00
04ab913b72
Fix error when accessing undefined StoredState values 2023-12-22 00:59:28 +01:00
de88e6a9d6
Bump minor version number 2023-12-22 00:41:32 +01:00
ae334801d4
Add forward method do state
This returns a thin wrapper State with its value proxied to a given
attribute on the backend state.
2023-12-22 00:38:54 +01:00
2a515dc47d
Bump minor version number and add website link 2023-12-21 23:58:24 +01:00
f1f79945dd
Add state management module
Moved over from darkwiiplayer/js project
2023-12-21 23:54:06 +01:00
1e8b033817
Bump minor version number 2023-12-21 23:50:01 +01:00
79a728520e
Replace bind function with proper reactivity
* Detects state elements
* Two-Way binding for supported attributes
2023-12-21 23:36:48 +01:00
bc1383f07d
Fix unnecessary "is" attribute being added to nodes 2023-12-15 00:23:05 +01:00
0bb3bd4631 Add import examples to readme 2023-12-11 10:52:49 +01:00
cc7b49d438 Update metadata 2023-10-04 10:35:56 +02:00
ee51af8176
Add package.json (yes, this is now on npm) 2023-09-29 17:51:49 +02:00
ee88c467ee
Rework the readme somewhat 2023-09-29 17:16:24 +02:00
3f865aa7c1
Extract from darkwiiplayer/js repository
All commits before this one have been cherry-picked and partly modified
from the `darkwiiplayer/js` repository, where skooma was originally at
home, and may at times have some weird wording, as they were written in
the context of that mixed repository.
2023-09-29 16:53:49 +02:00
e7afbaf3c1
Allow returning text in skooma bind method 2023-09-29 15:10:46 +02:00