Commit Graph

69 Commits

Author SHA1 Message Date
Talia b372b33f6c
Bump minor version number 2023-12-23 17:48:10 +01:00
Talia e80801b639
Cache forwarded states to avoid duplication 2023-12-23 17:46:43 +01:00
Talia e38d556531
Add fallback option to forwarded state 2023-12-23 17:31:45 +01:00
Talia cebd867bd2
Make reactive elements keep a weak ref to their reactive source 2023-12-23 17:31:01 +01:00
Talia ac484b223d
Re-structure readme 2023-12-22 18:43:47 +01:00
Talia 4a348f7806
Remove bind function from readme 2023-12-22 01:02:59 +01:00
Talia 3664c59cc0
Bump minor version number 2023-12-22 01:00:28 +01:00
Talia 04ab913b72
Fix error when accessing undefined StoredState values 2023-12-22 00:59:28 +01:00
Talia de88e6a9d6
Bump minor version number 2023-12-22 00:41:32 +01:00
Talia 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
Talia 2a515dc47d
Bump minor version number and add website link 2023-12-21 23:58:24 +01:00
Talia f1f79945dd
Add state management module
Moved over from darkwiiplayer/js project
2023-12-21 23:54:06 +01:00
Talia 1e8b033817
Bump minor version number 2023-12-21 23:50:01 +01:00
Talia 79a728520e
Replace bind function with proper reactivity
* Detects state elements
* Two-Way binding for supported attributes
2023-12-21 23:36:48 +01:00
Talia bc1383f07d
Fix unnecessary "is" attribute being added to nodes 2023-12-15 00:23:05 +01:00
Talia 0bb3bd4631 Add import examples to readme 2023-12-11 10:52:49 +01:00
Talia cc7b49d438 Update metadata 2023-10-04 10:35:56 +02:00
Talia ee51af8176
Add package.json (yes, this is now on npm) 2023-09-29 17:51:49 +02:00
Talia ee88c467ee
Rework the readme somewhat 2023-09-29 17:16:24 +02:00
Talia 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
Talia e7afbaf3c1
Allow returning text in skooma bind method 2023-09-29 15:10:46 +02:00
Talia 633332d4ea
Further refactor code 2023-09-29 15:10:35 +02:00
Talia 53e25e223e
Mildly refactor skooma.js 2023-09-29 15:10:28 +02:00
Talia 77af61fc45
Improve skooma warning on undefined arguments 2023-09-29 15:10:28 +02:00
Talia 4128cb53aa
Add fragment helper to skooma.js 2023-09-29 15:10:26 +02:00
Talia 0f2e596c54
Fix bug introduced in latest version 2023-09-29 15:10:16 +02:00
Talia d706e09da1
Replace mechanism for creating customized built-in elements 2023-09-29 15:09:37 +02:00
Talia 3be6f513b3
Fix error in skooma 2023-09-29 15:09:30 +02:00
Talia 64f28972c0
Remove promise handling from skooma.js
This was really just feature creep and doesn't have to be part of
skooma. It could easily be implemented as an independent function or
module.
2023-09-29 15:09:30 +02:00
Talia 4621790fbd
Add mechanism for custom built-in elements
Note: Fuck Javascript
2023-09-29 15:09:30 +02:00
Talia 16ac15b7c3
Add explicit empty value to skooma
Optional arguments in skooma can be very annoying at times:

	html.span("foo: ", may_return_undefined())

Skooma will produce a warning to inform the user that one of their
arguments is undefined as is is often unintended.
The new `empty` value provides a mechanism to explicitly ignore a single
argument, should it be optional

	html.span("foo: ", may_return_undefined() || empty)
2023-09-29 15:09:30 +02:00
Talia 9bb5f82302
Add check for null in skooma as well 2023-09-29 15:09:30 +02:00
Talia 0366b3822b
Handle undefined arguments without crashing in skooma 2023-09-29 15:09:30 +02:00
Talia 5f165d1071
Refactor CSS and add "style" function 2023-09-29 15:09:28 +02:00
Talia b40ee8d5b1
Rework skooma.bind function 2023-09-29 15:09:17 +02:00
Talia 0d67ca1f5e
Make skooma/bind more robust 2023-09-29 15:09:09 +02:00
Talia e8d18ae19a
Extend skooma.text function to support template strings 2023-09-29 15:09:09 +02:00
Talia 694b4da6a4
Add current property to skooma bound elements
Elements bound witht he skooma bind function now get a `current`
property patched in.
2023-09-29 15:09:09 +02:00
Talia 60b40e2bc0
Add the skooma bind function 2023-09-29 15:09:09 +02:00
Talia b440eec373
Add text wrapper to skooma.js 2023-09-29 15:09:09 +02:00
Talia 6094fd602d
Add `handle` helper function to skooma 2023-09-29 15:09:09 +02:00
Talia 5687ba9b22
Add more examples to show off skooma's features 2023-09-29 15:09:09 +02:00
Talia caf113a7ae
Write documentation for listener, speaker and skooma 2023-09-29 15:09:09 +02:00
Talia 6f99045d22
Add support for initialisation function to skooma 2023-09-29 15:09:09 +02:00
Talia 4e67cba014
Add special case for dataset to skooma templating 2023-09-29 15:09:08 +02:00
Talia 742eb36035
Remove preventDefault from inline event listeners 2023-09-29 15:09:08 +02:00
Talia 2e1ee0358c
Add prommise support to skooma 2023-09-29 15:09:08 +02:00
Talia f137f8a5b9
Fix typo in skooma 2023-09-29 15:09:08 +02:00
Talia 2ac1e0d4b8
Improve skooma attribute handling 2023-09-29 15:09:08 +02:00
Talia 8454f21c3a
Add skooma style property for setting inline styles 2023-09-29 15:09:08 +02:00