We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 4e8a4ee commit bde028bCopy full SHA for bde028b
examples/__init__.py
@@ -3,9 +3,10 @@
3
from examples import app
4
from examples import canvas
5
from examples import custom
6
-from examples import editor
7
from examples import dom
+from examples import editor
8
from examples import inputs
9
+from examples import mvc
10
from examples import pitch
11
from examples import pizza
12
from examples import splits
@@ -14,9 +15,9 @@
14
15
from examples import svg
16
from examples import table
17
from examples import tictactoe
-from examples import tutorial
18
19
items = [
20
+ ("examples/mvc.py", mvc.create()),
21
("examples/styling.py", styling.create()),
22
("examples/dom.py", dom.create()),
23
("examples/inputs.py", inputs.create()),
@@ -31,5 +32,4 @@
31
32
("examples/canvas.py", canvas.create()),
33
("examples/pizza.py", pizza.create()),
34
("examples/splits.py", splits.create()),
- ("examples/tutorial.py", tutorial.create()),
35
]
examples/dom.py
@@ -11,35 +11,34 @@ def get_color():
return color
13
def new_text():
- return ltk.Text(f"Text created at {ltk.get_time()}s", {
- "color": "white",
- "background-color": get_color(),
- })
+ return ltk.Text(f"Text created at {ltk.get_time()}s") \
+ .css("color", "white") \
+ .css("background-color", get_color())
def append(event):
# the base class for LTK Widgets sends all methods it does not
# understand to its jQuery element. This also happens to the "append"
# call below. As jQuery does not know anything about LTK, it expects
# a list of other jQuery elements to be passed to it. Therefore, we
24
# append the widget's element, not the widget itself.
25
- ltk.find("#dom-texts").append(new_text().element)
+ ltk.find("#dom-texts").append(new_text())
26
27
def append_to(event):
28
new_text().appendTo(ltk.find("#dom-texts"))
29
30
def prepend(event):
- ltk.find("#dom-texts").prepend(new_text().element)
+ ltk.find("#dom-texts").prepend(new_text())
def after(event):
- ltk.find("#dom-texts .ltk-text").eq(0).after(new_text().element)
+ ltk.find("#dom-texts .ltk-text").eq(0).after(new_text())
36
def before(event):
37
- ltk.find("#dom-texts .ltk-text").eq(1).before(new_text().element)
+ ltk.find("#dom-texts .ltk-text").eq(1).before(new_text())
38
39
def append_two(event):
40
ltk.find("#dom-texts").append(
41
- new_text().element,
42
+ new_text(),
43
)
44
45
def append_html(event):
examples/inputs.py
@@ -35,18 +35,18 @@ def loveit(event):
@ltk.callback
def change(event):
- element = ltk.jQuery(event.target)
+ element = ltk.find(event.target)
kind = element.prop("type")
feedback(f"Changed {kind}: {element.val()}")
def switched(event):
feedback(f"Changed switch: {element.prop('checked')}")
46
47
48
def set_runtime(event):
49
- chosen = ltk.jQuery(event.target).attr("value")
+ chosen = ltk.find(event.target).attr("value")
50
if chosen != runtime:
51
window.setSearchParameter("runtime", chosen)
52
examples/mvc.py
@@ -0,0 +1,37 @@
1
+# LTK - Copyright 2023 - All Rights Reserved - chrislaffra.com - See LICENSE
2
+
+import ltk
+class Product(ltk.Model):
+ """ This is a model with two fields """
+ name: str = ""
+ price: float = 0.0
+product = Product()
+def clear(event):
+ product.name = ""
+def create():
+ return (
+ ltk.VBox(
+ ltk.Heading2("LTK Model-View Demo"),
+ ltk.Label("Product Name (as ltk.Input):"),
+ ltk.Input(product.name)
+ .attr("placeholder", "Please enter a name")
+ .css("border", "2px solid red"),
+ ltk.Break(),
+ ltk.Label("Product Name (as ltk.Text):"),
+ ltk.Text(product.name)
+ .css("border", "2px solid green")
+ .css("height", 34),
+ ltk.Button("Clear product.name", ltk.proxy(clear)),
+ )
+ .css("font-size", 24)
+ .attr("name", "MVC")
examples/tictactoe.py
@@ -14,8 +14,8 @@ def choose(event):
def enter(event):
ltk.find(".tictactoe-inside").removeClass("tictactoe-inside")
- if not ltk.jQuery(event.target).text():
- ltk.jQuery(event.target).addClass("tictactoe-inside")
+ if not ltk.find(event.target).text():
+ ltk.find(event.target).addClass("tictactoe-inside")
return (
ltk.VBox(
examples/tutorial.py
kitchensink.js
@@ -30,6 +30,4 @@ function startTime() {
}
setupRuntime()
-setupToggle()
-
-pyodide.setDebug(true)
+setupToggle()
kitchensink.toml
@@ -23,5 +23,5 @@ files = [
"examples/pubsub.py",
"examples/table.py",
"examples/svg.py",
- "examples/tutorial.py",
+ "examples/mvc.py",
ltk/__init__.py
@@ -1,13 +1,17 @@
-# LTK - Copyright 2023 - All Rights Reserved - chrislaffra.com - See LICENSE
+"""
+Copyright 2023 - All Rights Reserved - chrislaffra.com - See LICENSE
+LTK (Little Toolkit) is a library for building client-side web applications using Python and CSS.
from ltk.jquery import *
from ltk.widgets import *
from ltk.pubsub import *
from ltk.logger import *
(
- ltk.Link("https://github.com/laffra/ltk", "built with LTK")
+ ltk.Link("https://github.com/pyscript/ltk", "built with LTK")
.addClass("ltk-built-with")
.attr("target", "_blank")
- .appendTo(jQuery(window.document.body))
-)
+ .appendTo(window.jQuery(window.document.body))
+)
0 commit comments