Commit graph

57 commits

Author SHA1 Message Date
9983c57f23 Refactor 2024-02-01 14:00:26 +01:00
017cd9fbd2 Fix and refactor skooma.js 2024-02-01 14:00:26 +01:00
904a5daf7c Stop removing "on" prefix from event names in skooma 2024-02-01 14:00:26 +01:00
b25a3013d2 Change skooma to use svelte store contract
Since States are now also valid svelte stores, skooma now uses that API
to decide whether something is an observable state and to interact with
it.
2024-02-01 14:00:26 +01:00
e293594edb Refactor skooma.js 2024-02-01 14:00:26 +01:00
3f838821e4 Add support for child generators as skooma args
Function arguments to skooma generators are now only treated as
initialisers if they take at least one named argument. Otherwise they
are called and their return value is evaluated as their replacement.

The process is recursive and can happen repeatedly for functions that
themselves return functions.
2024-02-01 14:00:26 +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
5a29b0e662 Make handle return a value just in case it is desired 2024-01-15 11:50:27 +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
f79e7a9c14
Fix error when passing undefined into tag generator 2023-12-30 13:17:36 +01:00
cebd867bd2
Make reactive elements keep a weak ref to their reactive source 2023-12-23 17:31: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
e7afbaf3c1
Allow returning text in skooma bind method 2023-09-29 15:10:46 +02:00
633332d4ea
Further refactor code 2023-09-29 15:10:35 +02:00
53e25e223e
Mildly refactor skooma.js 2023-09-29 15:10:28 +02:00
77af61fc45
Improve skooma warning on undefined arguments 2023-09-29 15:10:28 +02:00
4128cb53aa
Add fragment helper to skooma.js 2023-09-29 15:10:26 +02:00
0f2e596c54
Fix bug introduced in latest version 2023-09-29 15:10:16 +02:00
d706e09da1
Replace mechanism for creating customized built-in elements 2023-09-29 15:09:37 +02:00
3be6f513b3
Fix error in skooma 2023-09-29 15:09:30 +02:00
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
4621790fbd
Add mechanism for custom built-in elements
Note: Fuck Javascript
2023-09-29 15:09:30 +02:00
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
9bb5f82302
Add check for null in skooma as well 2023-09-29 15:09:30 +02:00
0366b3822b
Handle undefined arguments without crashing in skooma 2023-09-29 15:09:30 +02:00
5f165d1071
Refactor CSS and add "style" function 2023-09-29 15:09:28 +02:00
b40ee8d5b1
Rework skooma.bind function 2023-09-29 15:09:17 +02:00
0d67ca1f5e
Make skooma/bind more robust 2023-09-29 15:09:09 +02:00
e8d18ae19a
Extend skooma.text function to support template strings 2023-09-29 15:09:09 +02:00
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
60b40e2bc0
Add the skooma bind function 2023-09-29 15:09:09 +02:00
b440eec373
Add text wrapper to skooma.js 2023-09-29 15:09:09 +02:00
6094fd602d
Add handle helper function to skooma 2023-09-29 15:09:09 +02:00
6f99045d22
Add support for initialisation function to skooma 2023-09-29 15:09:09 +02:00
4e67cba014
Add special case for dataset to skooma templating 2023-09-29 15:09:08 +02:00
742eb36035
Remove preventDefault from inline event listeners 2023-09-29 15:09:08 +02:00
2e1ee0358c
Add prommise support to skooma 2023-09-29 15:09:08 +02:00
f137f8a5b9
Fix typo in skooma 2023-09-29 15:09:08 +02:00
2ac1e0d4b8
Improve skooma attribute handling 2023-09-29 15:09:08 +02:00
8454f21c3a
Add skooma style property for setting inline styles 2023-09-29 15:09:08 +02:00
59f4ba669f
Add has metamethod to proxies
This change allows proxies to be used with `with` for easier HTML/SVG
generation.
2023-09-29 15:09:08 +02:00
cb7ad57874
Make name filtering exclusive to HTML nodes 2023-09-29 15:09:08 +02:00
f8db2ca876
Add special shadowRoot semantics 2023-09-29 15:09:08 +02:00
d670416c7a
Prevent default on skooma event listeners 2023-09-29 15:09:08 +02:00
9f78a9bf14
Add comments documenting what stuff does 2023-09-29 15:09:06 +02:00
578e965c90
Add event listeners to skooma.js 2023-09-29 15:07:59 +02:00
9e475b4924
Fix case of hyphenated skooma elements 2023-09-29 15:07:59 +02:00
f0b56c074c
Remove automatic skooma attribute hyphenation 2023-09-29 15:07:59 +02:00
a1677b151f
Update skooma.js to handle numbers 2023-09-29 15:07:59 +02:00