diff --git a/docs/make.jl b/docs/make.jl
index 0dcb0b8b..533f21e8 100644
--- a/docs/make.jl
+++ b/docs/make.jl
@@ -2,11 +2,12 @@ using Documenter
push!(LOAD_PATH, "../../src")
-using Stipple, Stipple.Elements, Stipple.Layout, Stipple.Typography
+using Stipple, Stipple.Elements, Stipple.Layout, Stipple.Typography, Stipple.NamedTuples
makedocs(
sitename = "Stipple - data dashboards and reactive UIs for Julia",
format = Documenter.HTML(prettyurls = false),
+ warnonly = true,
pages = [
"Home" => "index.md",
"Tutorials" => [
diff --git a/docs/src/API/elements.md b/docs/src/API/elements.md
index 62e0ec05..d0faa6ce 100644
--- a/docs/src/API/elements.md
+++ b/docs/src/API/elements.md
@@ -1,5 +1,5 @@
```@meta
-CurrentModule = Elements
+CurrentModule = Stipple.Elements
```
```@docs
@@ -8,7 +8,7 @@ elem
vm
vue_integration
@iif
-@elsiff
+@elsiif
@els
@recur
@text
diff --git a/docs/src/API/layout.md b/docs/src/API/layout.md
index aa9bcfde..b012a487 100644
--- a/docs/src/API/layout.md
+++ b/docs/src/API/layout.md
@@ -1,11 +1,12 @@
```@meta
-CurrentModule = Layout
+CurrentModule = Stipple.Layout
```
```@docs
layout
page
row
+column
cell
theme
```
diff --git a/docs/src/API/namedtuples.md b/docs/src/API/namedtuples.md
index 309a5adc..586631d6 100644
--- a/docs/src/API/namedtuples.md
+++ b/docs/src/API/namedtuples.md
@@ -1,5 +1,5 @@
```@meta
-CurrentModule = NamedTuples
+CurrentModule = Stipple.NamedTuples
```
```@docs
diff --git a/docs/src/API/stipple.md b/docs/src/API/stipple.md
index 363eaee1..2cf84eaa 100644
--- a/docs/src/API/stipple.md
+++ b/docs/src/API/stipple.md
@@ -5,11 +5,8 @@ CurrentModule = Stipple
```@docs
Reactive
ReactiveModel
-@reactors
-@reactive
-@reactive!
-Settings
-MissingPropertyException
+Settings # missing docstring
+MissingPropertyException # missing docstring
render
update!
watch
@@ -23,10 +20,10 @@ register_components
components
setindex_withoutwatchers!
setfield_withoutwatchers!
-convertvalue
-stipple_parse
+convertvalue # missing docstring
+stipple_parse # missing docstring
init
-stipple_deps
+stipple_deps # missing docstring
setup
Base.push!(m::M, vals::Pair{Symbol, T}; kwargs...) where {T, M <: ReactiveModel}
rendering_mappings
@@ -34,7 +31,7 @@ julia_to_vue
parse_jsfunction
replace_jsfunction!
replace_jsfunction
-deps_routes
+deps_routes # missing docstring
deps
@R_str
on
diff --git a/docs/src/API/typography.md b/docs/src/API/typography.md
index 689bea82..c44160d3 100644
--- a/docs/src/API/typography.md
+++ b/docs/src/API/typography.md
@@ -1,5 +1,5 @@
```@meta
-CurrentModule = Typography
+CurrentModule = Stipple.Typography
```
```@docs
diff --git a/src/Stipple.jl b/src/Stipple.jl
index 989b4b93..ce24d409 100644
--- a/src/Stipple.jl
+++ b/src/Stipple.jl
@@ -770,6 +770,22 @@ end
@specialize
+"""
+Create a js expression that is bound to a field of a vue component.
+Internally this is nothing than conversion to a Symbol, but it's a short version for creating symbols with spaces.
+
+### Example
+
+```
+julia> btn("", @click("toggleFullscreen"), icon = R"is_fullscreen ? 'fullscreen_exit' : 'fullscreen'")
+""
+```
+Note: For expressions that contain only variable names, we recommend the Symbol notation
+```
+julia> btn("", @click("toggleFullscreen"), icon = :fullscreen_icon)
+""
+```
+"""
macro R_str(s)
:(Symbol($s))
end
diff --git a/src/stipple/reactivity.jl b/src/stipple/reactivity.jl
index af5dbd5f..52274fb4 100644
--- a/src/stipple/reactivity.jl
+++ b/src/stipple/reactivity.jl
@@ -1,3 +1,17 @@
+"""
+ mutable struct Reactive{T} <: Observables.AbstractObservable{T}
+
+`Reactive` is a the base type for variables that are handled by a model. It is an `AbstractObservable` of which the content is
+obtained by appending `[]` after the `Reactive` variable's name.
+For convenience, `Reactive` can be abbreviated by `R`.
+
+There are several methods of creating a Reactive variable:
+- `r = Reactive(8)`
+- `r = Reactive{Float64}(8)`
+- `r = Reactive{Float64}(8, READONLY)`
+- `r = Reactive{String}("Hello", PRIVATE)`
+- `r = Reactive(jsfunction"console.log('Hi')", JSFUNCTION)`
+"""
mutable struct Reactive{T} <: Observables.AbstractObservable{T}
o::Observables.Observable{T}
r_mode::Int
@@ -15,6 +29,20 @@ mutable struct Reactive{T} <: Observables.AbstractObservable{T}
Reactive{Any}(@nospecialize(o)) = new{Any}(Observable{Any}(o), PUBLIC, false, false, "")
end
+"""
+ mutable struct Reactive{T} <: Observables.AbstractObservable{T}
+
+`Reactive` is a the base type for variables that are handled by a model. It is an `AbstractObservable` of which the content is
+obtained by appending `[]` after the `Reactive` variable's name.
+For convenience, `Reactive` can be abbreviated by `R`.
+
+There are several methods of creating a Reactive variable:
+- `r = Reactive(8)`
+- `r = Reactive{Float64}(8)`
+- `r = Reactive{Float64}(8, READONLY)`
+- `r = Reactive{String}("Hello", PRIVATE)`
+- `r = Reactive(jsfunction"console.log('Hi')", JSFUNCTION)`
+"""
Reactive(r::T, arg1, args...) where T = convert(Reactive{T}, (r, arg1, args...))
Reactive(r::T) where T = convert(Reactive{T}, r)