lecodes-sdk 1.2.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/dist/editor.d.ts +12 -0
- package/dist/global.d.ts +4 -8
- package/dist/host.d.ts +2 -3
- package/dist/types/animate/tween/Animation.d.ts +0 -3
- package/dist/types/animate/tween/animateValue.d.ts +4 -2
- package/dist/types/animate/tween/easing.d.ts +8 -0
- package/dist/types/animate/tween/spec.d.ts +15 -7
- package/dist/types/audio/audio.d.ts +2 -1
- package/dist/types/canvas/Canvas.d.ts +40 -108
- package/dist/types/canvas/gen/cssColor.d.ts +17 -0
- package/dist/types/canvas/gen/recorder.d.ts +118 -0
- package/dist/types/canvas/gen/spec.d.ts +144 -0
- package/dist/types/core/color.d.ts +3 -1
- package/dist/types/core/pins.d.ts +18 -0
- package/dist/types/g2/Node2D.d.ts +5 -8
- package/dist/types/g2/Scene2D.d.ts +6 -2
- package/dist/types/gl/Foliage.d.ts +30 -7
- package/dist/types/gl/Light.d.ts +8 -0
- package/dist/types/gl/Lightmap.d.ts +13 -2
- package/dist/types/gl/Material.d.ts +17 -3
- package/dist/types/gl/Model.d.ts +6 -2
- package/dist/types/gl/Node.d.ts +3 -6
- package/dist/types/gl/Scene.d.ts +41 -13
- package/dist/types/gl/Texture.d.ts +1 -1
- package/dist/types/gl/animation/Locomotion.d.ts +8 -1
- package/dist/types/inject.d.ts +11 -11
- package/dist/types/inject.editor.d.ts +1 -0
- package/dist/types/net/core.d.ts +7 -0
- package/dist/types/plugin.d.ts +76 -0
- package/dist/types/plugins/gen/camera/sdk/camera.d.ts +24 -0
- package/dist/types/plugins/gen/camera/sdk/camera.gen.d.ts +25 -0
- package/dist/types/plugins/{geolocation.d.ts → gen/geolocation/sdk/geolocation.d.ts} +2 -20
- package/dist/types/plugins/gen/geolocation/sdk/geolocation.gen.d.ts +31 -0
- package/dist/types/plugins/{map.d.ts → gen/map/sdk/map.d.ts} +9 -50
- package/dist/types/plugins/gen/map/sdk/map.gen.d.ts +53 -0
- package/dist/types/plugins/gen/push/sdk/push.d.ts +23 -0
- package/dist/types/plugins/gen/push/sdk/push.gen.d.ts +35 -0
- package/dist/types/plugins/{qr.d.ts → gen/qr-scanner/sdk/qr-scanner.d.ts} +2 -3
- package/dist/types/plugins/gen/qr-scanner/sdk/qr-scanner.gen.d.ts +15 -0
- package/dist/types/runtime/app.d.ts +9 -2
- package/dist/types/runtime/fetch.d.ts +2 -0
- package/dist/types/runtime/input.d.ts +1 -1
- package/dist/types/runtime/media.d.ts +6 -10
- package/dist/types/runtime/misc.d.ts +4 -1
- package/dist/types/runtime/net.d.ts +3 -2
- package/dist/types/runtime/touch.d.ts +32 -0
- package/dist/types/scene/defineScene.d.ts +43 -2
- package/dist/types/scene/editor.d.ts +52 -0
- package/dist/types/scene/gizmos.d.ts +7 -4
- package/dist/types/ui/NativeView.d.ts +6 -4
- package/dist/types/ui/UI.d.ts +1 -1
- package/dist/types/ui/UIBottomSheet.d.ts +6 -12
- package/dist/types/ui/UIButton.d.ts +12 -14
- package/dist/types/ui/UIContainer.d.ts +0 -6
- package/dist/types/ui/UIImage.d.ts +1 -4
- package/dist/types/ui/UIInput.d.ts +8 -24
- package/dist/types/ui/UIModal.d.ts +0 -2
- package/dist/types/ui/UINode.d.ts +70 -56
- package/dist/types/ui/UIPager.d.ts +28 -27
- package/dist/types/ui/UIPopover.d.ts +0 -2
- package/dist/types/ui/UIScreen.d.ts +12 -17
- package/dist/types/ui/UIScrollable.d.ts +1 -4
- package/dist/types/ui/UIText.d.ts +0 -2
- package/dist/types/ui/UIVideo.d.ts +3 -5
- package/dist/types/ui/UIVirtualizedList.d.ts +14 -16
- package/dist/types/ui/UIWidget.d.ts +10 -9
- package/dist/types/ui/colorKeys.gen.d.ts +9 -0
- package/dist/types/ui/presentable.d.ts +46 -32
- package/dist/types/ui/router.d.ts +18 -7
- package/dist/types/ui/styleColor.d.ts +1 -0
- package/dist/types/ui/transitions.d.ts +18 -0
- package/dist/types/ui/tree.d.ts +75 -0
- package/dist/types/version.d.ts +10 -0
- package/dist/types.json +1 -1
- package/package.json +12 -3
- package/prompts/2d.md +2 -6
- package/prompts/3d.md +1 -5
- package/prompts/README.md +1 -1
- package/prompts/canvas.md +9 -8
- package/prompts/compose.ts +1 -1
- package/prompts/core.md +3 -3
- package/prompts/design.md +1 -1
- package/prompts/dist/2d-game.md +473 -239
- package/prompts/dist/3d-app.md +553 -205
- package/prompts/dist/ar-app.md +435 -202
- package/prompts/dist/design.md +113 -95
- package/prompts/dist/ui-app.md +386 -170
- package/prompts/ui-design.md +2 -3
- package/prompts/ui.md +45 -37
- package/src/animate/tween/Animation.ts +34 -150
- package/src/animate/tween/Timeline.ts +175 -175
- package/src/animate/tween/animateValue.ts +6 -3
- package/src/animate/tween/easing.ts +10 -3
- package/src/animate/tween/spec.ts +41 -15
- package/src/audio/Sound.ts +3 -3
- package/src/audio/audio.ts +2 -1
- package/src/bridges/2d.d.ts +317 -0
- package/src/bridges/app.d.ts +91 -0
- package/src/bridges/audio.d.ts +97 -0
- package/src/bridges/canvas.d.ts +79 -0
- package/src/bridges/device.d.ts +72 -0
- package/src/bridges/fetch.d.ts +80 -0
- package/src/bridges/files.d.ts +70 -0
- package/src/bridges/gl.d.ts +1133 -0
- package/src/bridges/input.d.ts +72 -0
- package/src/bridges/media.d.ts +55 -0
- package/src/bridges/nav.d.ts +71 -0
- package/src/bridges/net.d.ts +52 -0
- package/src/bridges/service.d.ts +52 -0
- package/src/bridges/socket.d.ts +31 -0
- package/src/bridges/storage.d.ts +33 -0
- package/src/bridges/tree.d.ts +301 -0
- package/src/bridges/types.d.ts +49 -0
- package/src/canvas/Canvas.ts +114 -159
- package/src/canvas/gen/cssColor.ts +224 -0
- package/src/canvas/gen/recorder.ts +212 -0
- package/src/canvas/gen/spec.ts +201 -0
- package/src/chisel.ts +193 -0
- package/src/compile/assetMacro.ts +1 -1
- package/src/compile/bundler.ts +11 -2
- package/src/compile/compileProject.ts +43 -4
- package/src/compile/fontMacro.ts +3 -4
- package/src/compile/header.ts +26 -5
- package/src/compile/index.ts +3 -1
- package/src/compile/liteMaterial.ts +1 -1
- package/src/compile/sceneEditor.ts +11 -26
- package/src/core/color.ts +73 -30
- package/src/core/pins.ts +51 -0
- package/src/core/signals.ts +8 -1
- package/src/g2/CharacterController2D.ts +3 -3
- package/src/g2/Node2D.ts +57 -39
- package/src/g2/Physics2D.ts +2 -2
- package/src/g2/Scene2D.ts +35 -23
- package/src/g2/Texture2D.ts +1 -1
- package/src/g2/loop.ts +4 -4
- package/src/gl/CameraPlace.ts +52 -52
- package/src/gl/Foliage.ts +72 -17
- package/src/gl/Geometry.ts +1 -2
- package/src/gl/Light.ts +10 -0
- package/src/gl/Lightmap.ts +45 -29
- package/src/gl/Material.ts +95 -51
- package/src/gl/Mesh.ts +120 -120
- package/src/gl/Model.ts +21 -16
- package/src/gl/Node.ts +91 -24
- package/src/gl/Particles.ts +1 -1
- package/src/gl/Scene.ts +100 -44
- package/src/gl/Texture.ts +8 -7
- package/src/gl/animation/AnimationClip.ts +1 -1
- package/src/gl/animation/DynamicBone.ts +482 -482
- package/src/gl/animation/Locomotion.ts +8 -3
- package/src/gl/nav/NavMesh.ts +3 -4
- package/src/gl/physics/Physics.ts +2 -2
- package/src/gl/physics/physicsEvents.ts +3 -3
- package/src/gl/scenarios.ts +291 -291
- package/src/gl/terrain/Terrain.ts +4 -5
- package/src/gl/touch.ts +14 -15
- package/src/host.d.ts +2 -3
- package/src/inject.editor.ts +7 -0
- package/src/inject.ts +13 -16
- package/src/net/core.ts +6 -5
- package/src/net/index.ts +1 -1
- package/src/net/replication.ts +1 -1
- package/src/plugin.ts +191 -0
- package/src/plugins/gen/camera/contract.d.ts +27 -0
- package/src/plugins/gen/camera/sdk/camera.gen.ts +46 -0
- package/src/plugins/gen/camera/sdk/camera.ts +57 -0
- package/src/plugins/gen/geolocation/contract.d.ts +50 -0
- package/src/plugins/gen/geolocation/sdk/geolocation.gen.ts +54 -0
- package/src/plugins/{geolocation.ts → gen/geolocation/sdk/geolocation.ts} +22 -43
- package/src/plugins/gen/map/contract.d.ts +144 -0
- package/src/plugins/gen/map/sdk/map.gen.ts +88 -0
- package/src/plugins/{map.ts → gen/map/sdk/map.ts} +68 -102
- package/src/plugins/gen/push/contract.d.ts +61 -0
- package/src/plugins/gen/push/sdk/push.gen.ts +60 -0
- package/src/plugins/gen/push/sdk/push.ts +105 -0
- package/src/plugins/gen/qr-scanner/contract.d.ts +16 -0
- package/src/plugins/gen/qr-scanner/sdk/qr-scanner.gen.ts +29 -0
- package/src/plugins/gen/qr-scanner/sdk/qr-scanner.ts +52 -0
- package/src/plugins/permission.ts +5 -4
- package/src/runtime/app.ts +20 -9
- package/src/runtime/appEvents.ts +5 -4
- package/src/runtime/channel.ts +18 -15
- package/src/runtime/clipboard.ts +4 -3
- package/src/runtime/datetime.ts +2 -1
- package/src/runtime/device.ts +17 -15
- package/src/runtime/fetch.ts +30 -20
- package/src/runtime/files.ts +16 -15
- package/src/runtime/input.ts +12 -10
- package/src/runtime/media.ts +50 -46
- package/src/runtime/misc.ts +7 -3
- package/src/runtime/net.ts +8 -7
- package/src/runtime/rpc.ts +1 -3
- package/src/runtime/service.ts +19 -14
- package/src/runtime/share.ts +4 -3
- package/src/runtime/storage.ts +6 -4
- package/src/runtime/touch.ts +32 -0
- package/src/scene/defineScene.ts +61 -365
- package/src/scene/editor.ts +408 -0
- package/src/scene/editorPlugins.ts +3 -3
- package/src/scene/gizmos.ts +15 -9
- package/src/server/db/marci/query.ts +1 -1
- package/src/server/host.ts +1 -1
- package/src/server/runtime.ts +1 -1
- package/src/ui/NativeView.ts +72 -25
- package/src/ui/UI.ts +3 -3
- package/src/ui/UIBottomSheet.ts +16 -17
- package/src/ui/UIButton.ts +54 -16
- package/src/ui/UIContainer.ts +0 -6
- package/src/ui/UIImage.ts +34 -30
- package/src/ui/UIInput.ts +29 -37
- package/src/ui/UIModal.ts +1 -3
- package/src/ui/UINode.ts +347 -297
- package/src/ui/UIPager.ts +93 -78
- package/src/ui/UIPopover.ts +0 -2
- package/src/ui/UIScreen.ts +41 -36
- package/src/ui/UIScrollable.ts +19 -13
- package/src/ui/UISpacer.ts +1 -1
- package/src/ui/UITabs.ts +8 -6
- package/src/ui/UIText.ts +7 -17
- package/src/ui/UIVideo.ts +30 -27
- package/src/ui/UIVirtualizedList.ts +58 -59
- package/src/ui/UIWidget.ts +38 -18
- package/src/ui/colorKeys.gen.ts +37 -0
- package/src/ui/fonts.ts +2 -2
- package/src/ui/presentable.ts +59 -42
- package/src/ui/router.ts +52 -35
- package/src/ui/styleColor.ts +56 -0
- package/src/ui/theme.ts +7 -6
- package/src/ui/transitions.ts +249 -0
- package/src/ui/tree.ts +346 -0
- package/src/version.ts +24 -0
- package/tests/helpers/engineWorld.ts +11 -0
- package/tests/helpers/fakeTree.ts +353 -0
- package/tests/helpers/hostStubs.ts +31 -0
- package/tests/helpers/index.ts +14 -0
- package/tests/helpers/memoryMarci.ts +124 -0
- package/tests/helpers/phases.ts +23 -0
- package/tests/helpers/preload.ts +18 -0
- package/tests/helpers/stubApp.ts +2 -0
- package/tests/helpers/stubDevice.ts +2 -0
- package/tests/helpers/stubFetch.ts +2 -0
- package/tests/helpers/stubInput.ts +2 -0
- package/dist/inject.js +0 -4629
- package/dist/types/core/registry.d.ts +0 -7
- package/dist/types/plugins/camera.d.ts +0 -25
- package/dist/types/plugins/push.d.ts +0 -46
- package/src/bridges.d.ts +0 -1769
- package/src/compile/__tests__/assetIconMacro.test.ts +0 -219
- package/src/compile/__tests__/assetMacro.test.ts +0 -100
- package/src/compile/__tests__/assetName.test.ts +0 -55
- package/src/compile/__tests__/compile.test.ts +0 -310
- package/src/compile/__tests__/detectEntry.test.ts +0 -151
- package/src/compile/__tests__/fontMacro.test.ts +0 -199
- package/src/compile/__tests__/serverSplit.test.ts +0 -27
- package/src/core/__tests__/stateMachine.test.ts +0 -132
- package/src/core/registry.ts +0 -23
- package/src/plugins/camera.ts +0 -81
- package/src/plugins/push.ts +0 -132
- package/src/plugins/qr.ts +0 -73
package/package.json
CHANGED
|
@@ -8,12 +8,20 @@
|
|
|
8
8
|
"./compile/detectEntry": "./src/compile/detectEntry.ts",
|
|
9
9
|
"./compile/shaderSchema": "./src/compile/shaderSchema.ts",
|
|
10
10
|
"./compile/liteMaterial": "./src/compile/liteMaterial.ts",
|
|
11
|
+
"./color": "./src/core/color.ts",
|
|
11
12
|
"./inject": "./src/inject.ts",
|
|
13
|
+
"./plugin": "./src/plugin.ts",
|
|
12
14
|
"./server": "./src/server/host.ts",
|
|
13
15
|
"./prompts/select": "./prompts/select.ts",
|
|
14
16
|
"./global.d.ts": "./dist/global.d.ts",
|
|
15
17
|
"./host.d.ts": "./dist/host.d.ts",
|
|
16
|
-
"./
|
|
18
|
+
"./editor.d.ts": "./dist/editor.d.ts",
|
|
19
|
+
"./types.json": "./dist/types.json",
|
|
20
|
+
"./bridges/*": "./src/bridges/*.d.ts",
|
|
21
|
+
"./ui/tree": "./src/ui/tree.ts",
|
|
22
|
+
"./testing": "./tests/helpers/index.ts",
|
|
23
|
+
"./testing/preload": "./tests/helpers/preload.ts",
|
|
24
|
+
"./version": "./src/version.ts"
|
|
17
25
|
},
|
|
18
26
|
"scripts": {
|
|
19
27
|
"build": "bun run build-types.ts",
|
|
@@ -25,7 +33,7 @@
|
|
|
25
33
|
"prepublishOnly": "bun run build"
|
|
26
34
|
},
|
|
27
35
|
"dependencies": {
|
|
28
|
-
"@letary/chisel": "^0.
|
|
36
|
+
"@letary/chisel": "^0.13.0"
|
|
29
37
|
},
|
|
30
38
|
"devDependencies": {
|
|
31
39
|
"@types/bun": "^1.3.14",
|
|
@@ -33,11 +41,12 @@
|
|
|
33
41
|
"typescript": "~5.8.3",
|
|
34
42
|
"gl-matrix": "^3.4.4"
|
|
35
43
|
},
|
|
36
|
-
"version": "
|
|
44
|
+
"version": "2.0.1",
|
|
37
45
|
"files": [
|
|
38
46
|
"src",
|
|
39
47
|
"dist",
|
|
40
48
|
"prompts",
|
|
49
|
+
"tests/helpers",
|
|
41
50
|
"README.md"
|
|
42
51
|
],
|
|
43
52
|
"publishConfig": {
|
package/prompts/2d.md
CHANGED
|
@@ -5,7 +5,7 @@ Scene2D + nodes (Sprite, Tilemap) + aspects (SpriteAnimation, Shape2D/Physics2D/
|
|
|
5
5
|
// ===== SCENE & NODES =====
|
|
6
6
|
|
|
7
7
|
new Scene2D(options?: {
|
|
8
|
-
background?: Color // clear color (
|
|
8
|
+
background?: Color // clear color (any CSS color or 0xRRGGBB); settable later via scene.background
|
|
9
9
|
filter?: 'nearest' | 'linear' // texture sampling; default nearest (crisp pixel art), 'linear' for hi-res
|
|
10
10
|
}) // art. filter is GLOBAL (one sampler for all textures), re-applied on open()
|
|
11
11
|
|
|
@@ -63,7 +63,7 @@ new Sprite(options?: {
|
|
|
63
63
|
// [0.5, 1] = bottom-center = "feet" — use on Y-sorted layers
|
|
64
64
|
size?: Vec2Like // world size; default = texture pixel dims (1 texel = 1 world unit)
|
|
65
65
|
frame?: [u0, v0, u1, v1] // normalized UV sub-rect
|
|
66
|
-
color?: Color // tint MULTIPLIED with the texture
|
|
66
|
+
color?: Color // tint MULTIPLIED with the texture (default white = untinted)
|
|
67
67
|
opacity?: number // 0..1
|
|
68
68
|
layer?: number
|
|
69
69
|
position?: Vec2Like
|
|
@@ -259,10 +259,6 @@ sprite.aspect(Shape2D, { box: [12, 20] }) // ✅ declare the extents you want
|
|
|
259
259
|
setLoop(() => sprite.setFramePx(...)) // WRONG
|
|
260
260
|
sprite.aspect(SpriteAnimation, { size: [32, 48], clips: { walk: [0,1,2,3] } }) // ✅ then anim.play('walk')
|
|
261
261
|
|
|
262
|
-
// ❌ CSS color strings on sprites — engine colors are hex/packed only (Canvas fillStyle is the exception)
|
|
263
|
-
sprite.color = 'rgba(255,0,0,0.5)' // WRONG
|
|
264
|
-
sprite.color = '#ff0000'; sprite.opacity = 0.5 // ✅
|
|
265
|
-
|
|
266
262
|
// ❌ attaching SpriteAnimation before the sprite has a texture — throws (the grid slices from it)
|
|
267
263
|
// ❌ attaching Physics2D before Shape2D on the same node — throws (attach the shape first)
|
|
268
264
|
// ❌ setting spawn position AFTER attaching Physics2D — the body already seeded from [0,0]; position first
|
package/prompts/3d.md
CHANGED
|
@@ -86,7 +86,7 @@ material.map = tex // Texture | Canvas | null
|
|
|
86
86
|
|
|
87
87
|
// Custom compiled shaders (.mat files) — load, then set uniforms by name (chainable):
|
|
88
88
|
const mat = new Material(await fetch(asset('./hologram.mat'), { useOnce: true }))
|
|
89
|
-
.set('baseColor', '#ffa200') //
|
|
89
|
+
.set('baseColor', '#ffa200') // color STRINGS only (any CSS color); a number is a float
|
|
90
90
|
.set('roughness', 0.54) // number → float, boolean → bool
|
|
91
91
|
.set('glowMap', tex) // Texture → sampler
|
|
92
92
|
.set('dir', [0, 1, 0]) // number[] / Float32Array → vector. NOT a Vec3 — spread it: [...v]
|
|
@@ -294,10 +294,6 @@ mat.set('lightDir', dir)
|
|
|
294
294
|
Light.point(...)
|
|
295
295
|
// ✅ Light.sun() + scene IBL is the whole lighting model; fake glows with unlit/bloom/particles
|
|
296
296
|
|
|
297
|
-
// ❌ rgba()/named colors in 3D APIs — silently black
|
|
298
|
-
Material.lit({ color: 'rgba(255, 0, 0, 0.5)' })
|
|
299
|
-
// ✅ hex string or packed int: '#ff0000' / '#ff000080' / 0xff0000
|
|
300
|
-
|
|
301
297
|
// ❌ a fresh Material per frame (or per particle) to animate a look
|
|
302
298
|
setLoop(() => { mesh.material = Material.lit({ color: next() }) })
|
|
303
299
|
// ✅ mutate the one material: mesh.material.color = next() / mat.set('progress', t)
|
package/prompts/README.md
CHANGED
|
@@ -137,6 +137,6 @@ escalation directive (above) lets it swap in the right engine module instead of
|
|
|
137
137
|
`docs/check.mjs`. When a global is added, update docs, then the module, then index.md.
|
|
138
138
|
- Known corrections baked into these prompts (do not regress; see `docs/AUTHORING.md`):
|
|
139
139
|
`onEndReached(thresholdPx, cb)` (threshold first), `bgSize: cover|contain|tile` (no `fill`),
|
|
140
|
-
track `deltaX/deltaY` are per-move,
|
|
140
|
+
track `deltaX/deltaY` are per-move, colors are CSS strings / 0xRRGGBB / [r,g,b(,a)] everywhere, `animate` can't
|
|
141
141
|
tween strings/colors, `node.physics` (not `.body`), no `Camera2D.follow`, no
|
|
142
142
|
`UIScrollable.scrollTo`, models can't be cloned.
|
package/prompts/canvas.md
CHANGED
|
@@ -8,20 +8,21 @@ const c = new Canvas(width, height, { pixelRatio: device.pixelRatio })
|
|
|
8
8
|
// width/height are LOGICAL units — author all drawing logical; pixelRatio only multiplies baked
|
|
9
9
|
// resolution (crispness), never the on-screen size.
|
|
10
10
|
|
|
11
|
-
c.fillStyle = '#ff8800' // CSS color
|
|
12
|
-
c.lineCap = 'round' // also strokeStyle, lineWidth, lineJoin, globalAlpha,
|
|
11
|
+
c.fillStyle = '#ff8800' // any CSS color string, as everywhere in the SDK;
|
|
12
|
+
c.lineCap = 'round' // also strokeStyle, lineWidth, lineJoin, miterLimit, globalAlpha, letterSpacing,
|
|
13
|
+
c.setLineDash([4, 2]) // dashes; a gradient: c.fillStyle = c.createLinearGradient(x0,y0,x1,y1).addColorStop(0,'#fff').addColorStop(1,'transparent')
|
|
13
14
|
c.font = 'bold 16px sans-serif' // textAlign ('left'|'center'|'right'), textBaseline
|
|
14
15
|
// custom fonts: draw only AFTER await registerFont(...)
|
|
15
16
|
c.fillRect(x, y, w, h) / c.strokeRect / c.clearRect
|
|
16
|
-
c.beginPath().moveTo(x,y).lineTo(x,y).arc(x,y,r,a0,a1).rect(x,y,w,h).roundRect(x,y,w,h,r).closePath() // all chain
|
|
17
|
-
c.fill() / c.stroke() / c.fillText(text, x, y) / c.strokeText(text, x, y)
|
|
18
|
-
c.measureText(text): { width, ascent, descent } // in the CURRENT font, logical px
|
|
19
|
-
c.drawImage(bmp: Bitmap, dx, dy [, dw, dh]) // blits a Bitmap only (
|
|
17
|
+
c.beginPath().moveTo(x,y).lineTo(x,y).arc(x,y,r,a0,a1).arcTo(x1,y1,x2,y2,r).ellipse(x,y,rx,ry,rot,a0,a1).rect(x,y,w,h).roundRect(x,y,w,h,r).closePath() // all chain
|
|
18
|
+
c.fill('evenodd'?) / c.stroke() / c.clip() / c.fillText(text, x, y) / c.strokeText(text, x, y)
|
|
19
|
+
c.measureText(text): { width, ascent, descent } // in the CURRENT font and letterSpacing, logical px
|
|
20
|
+
c.drawImage(bmp: Bitmap, dx, dy [, dw, dh]) // blits a Bitmap only (c.toBitmap(), await c.loadImage(SvgSource(svg) | fetchResponse))
|
|
20
21
|
|
|
21
22
|
c.update(): this // after redrawing, push new pixels to EVERY texture/image this canvas produced
|
|
22
23
|
c.reset(): this // discard the recorded drawing to start over
|
|
23
24
|
c.resize(w, h): this // new logical size (takes effect next bake; measure-then-resize works pre-bake)
|
|
24
25
|
c.toBitmap(): Bitmap // rasterized snapshot, usable with drawImage
|
|
25
|
-
// GOTCHA: reset() clears the recorded STATE too — font/fillStyle/textAlign fall back to defaults
|
|
26
|
-
// the
|
|
26
|
+
// GOTCHA: reset() clears the recorded STATE too — font/fillStyle/textAlign fall back to defaults
|
|
27
|
+
// (the getters report the defaults again). Re-set font & friends after every reset().
|
|
27
28
|
// Ever-growing drawings: flatten — const snap = c.toBitmap(); c.reset(); c.drawImage(snap, 0, 0)
|
package/prompts/compose.ts
CHANGED
package/prompts/core.md
CHANGED
|
@@ -202,9 +202,9 @@ Mathf.clamp(v, min, max) / .lerp(a, b, t) / .remap(v, inMin, inMax, outMin, outM
|
|
|
202
202
|
Mathf.damp(a, b, lambda, dt) / .moveTowards(a, b, maxDelta)
|
|
203
203
|
Mathf.random(min, max) / .randomInt(min, max) // randomInt inclusive both ends
|
|
204
204
|
|
|
205
|
-
// Colors:
|
|
206
|
-
//
|
|
207
|
-
//
|
|
205
|
+
// Colors (every API, UI and engine alike): any CSS color string ("#e33", "#ff3333cc", "rgb(255 0 0 / 50%)",
|
|
206
|
+
// "hsl(0 100% 50%)", "red" — the CSS names, green = #008000), packed int 0xff3333 (opaque 0xRRGGBB),
|
|
207
|
+
// or [r, g, b(, a)] 0..1. A non-color throws. var(--x) only in UI styles.
|
|
208
208
|
|
|
209
209
|
// ===== NETWORK =====
|
|
210
210
|
|
package/prompts/design.md
CHANGED
|
@@ -50,7 +50,7 @@ import { colors, spacing, radius } from "./tokens"
|
|
|
50
50
|
export const PrimaryButton = (label: string, o: { name?: string, disabled?: boolean } = {}) =>
|
|
51
51
|
UIButton(UIText(label).style({ fontSize: 16, fontWeight: 700, color: o.disabled ? colors.muted : colors.onAccent }))
|
|
52
52
|
.style({ height: 52, borderRadius: radius.md, bgColor: o.disabled ? colors.accentDeep : colors.accent,
|
|
53
|
-
justifyContent: "center", alignItems: "center", name: o.name,
|
|
53
|
+
justifyContent: "center", alignItems: "center", name: o.name, $pressed: { bgColor: colors.accentPressed } })
|
|
54
54
|
|
|
55
55
|
export const SectionLabel = (t: string) =>
|
|
56
56
|
UIText(t.toUpperCase()).style({ fontSize: 11, fontWeight: 600, letterSpacing: 2, color: colors.faint })
|