svelte-tv 1.0.0 → 1.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/LICENSE +1 -0
- package/NOTICE +1 -0
- package/README.md +98 -0
- package/dist/LightningRoot.svelte +25 -0
- package/dist/LightningRoot.svelte.d.ts +15 -0
- package/dist/Text.svelte +19 -0
- package/dist/Text.svelte.d.ts +7 -0
- package/dist/View.svelte +18 -0
- package/dist/View.svelte.d.ts +7 -0
- package/dist/__package_types_tmp__/LightningRoot.svelte.d.ts +15 -0
- package/dist/__package_types_tmp__/Text.svelte.d.ts +7 -0
- package/dist/__package_types_tmp__/View.svelte.d.ts +7 -0
- package/dist/__package_types_tmp__/core/activeElement.d.ts +4 -0
- package/dist/__package_types_tmp__/core/clickInspector.d.ts +1 -0
- package/dist/__package_types_tmp__/core/config.d.ts +26 -0
- package/dist/__package_types_tmp__/core/dom-renderer/domRendererTypes.d.ts +15 -0
- package/dist/__package_types_tmp__/core/elementNode.d.ts +548 -0
- package/dist/__package_types_tmp__/core/env.d.ts +3 -0
- package/dist/__package_types_tmp__/core/flex.d.ts +2 -0
- package/dist/__package_types_tmp__/core/flexLayout.d.ts +2 -0
- package/dist/__package_types_tmp__/core/focusKeyTypes.d.ts +47 -0
- package/dist/__package_types_tmp__/core/focusManager.d.ts +34 -0
- package/dist/__package_types_tmp__/core/index.d.ts +14 -0
- package/dist/__package_types_tmp__/core/intrinsicTypes.d.ts +102 -0
- package/dist/__package_types_tmp__/core/lightningInit.d.ts +7 -0
- package/dist/__package_types_tmp__/core/nodeTypes.d.ts +13 -0
- package/dist/__package_types_tmp__/core/root.d.ts +8 -0
- package/dist/__package_types_tmp__/core/shaders.d.ts +44 -0
- package/dist/__package_types_tmp__/core/states.d.ts +12 -0
- package/dist/__package_types_tmp__/core/svelteNode.d.ts +21 -0
- package/dist/__package_types_tmp__/core/utils.d.ts +41 -0
- package/dist/__package_types_tmp__/fonts.d.ts +3 -0
- package/dist/__package_types_tmp__/index.d.ts +7 -0
- package/dist/__package_types_tmp__/primitives/Button.svelte.d.ts +12 -0
- package/dist/__package_types_tmp__/primitives/Card.svelte.d.ts +12 -0
- package/dist/__package_types_tmp__/primitives/Column.svelte.d.ts +14 -0
- package/dist/__package_types_tmp__/primitives/Drawer.svelte.d.ts +20 -0
- package/dist/__package_types_tmp__/primitives/FPSCounter.svelte.d.ts +7 -0
- package/dist/__package_types_tmp__/primitives/FadeInOut.svelte.d.ts +21 -0
- package/dist/__package_types_tmp__/primitives/Grid.svelte.d.ts +51 -0
- package/dist/__package_types_tmp__/primitives/IconButton.svelte.d.ts +15 -0
- package/dist/__package_types_tmp__/primitives/Image.svelte.d.ts +10 -0
- package/dist/__package_types_tmp__/primitives/Marquee.svelte.d.ts +13 -0
- package/dist/__package_types_tmp__/primitives/Modal.svelte.d.ts +16 -0
- package/dist/__package_types_tmp__/primitives/Preserve.svelte.d.ts +10 -0
- package/dist/__package_types_tmp__/primitives/Row.svelte.d.ts +14 -0
- package/dist/__package_types_tmp__/primitives/Skeleton.svelte.d.ts +13 -0
- package/dist/__package_types_tmp__/primitives/Toast.svelte.d.ts +14 -0
- package/dist/__package_types_tmp__/primitives/Virtual.svelte.d.ts +49 -0
- package/dist/__package_types_tmp__/primitives/VirtualGrid.svelte.d.ts +47 -0
- package/dist/__package_types_tmp__/primitives/Visible.svelte.d.ts +8 -0
- package/dist/__package_types_tmp__/primitives/announcer/announcer.d.ts +14 -0
- package/dist/__package_types_tmp__/primitives/announcer/index.d.ts +4 -0
- package/dist/__package_types_tmp__/primitives/announcer/speech.d.ts +10 -0
- package/dist/__package_types_tmp__/primitives/createInfiniteItems.d.ts +8 -0
- package/dist/__package_types_tmp__/primitives/index.d.ts +28 -0
- package/dist/__package_types_tmp__/primitives/router/HashRouter.svelte.d.ts +9 -0
- package/dist/__package_types_tmp__/primitives/router/KeepAliveRoute.svelte.d.ts +13 -0
- package/dist/__package_types_tmp__/primitives/router/Navigate.svelte.d.ts +7 -0
- package/dist/__package_types_tmp__/primitives/router/Route.svelte.d.ts +13 -0
- package/dist/__package_types_tmp__/primitives/router/RouteView.svelte.d.ts +14 -0
- package/dist/__package_types_tmp__/primitives/router/context.d.ts +8 -0
- package/dist/__package_types_tmp__/primitives/router/index.d.ts +8 -0
- package/dist/__package_types_tmp__/primitives/router/lazy.d.ts +6 -0
- package/dist/__package_types_tmp__/primitives/router/match.d.ts +5 -0
- package/dist/__package_types_tmp__/primitives/router/routeContext.d.ts +6 -0
- package/dist/__package_types_tmp__/primitives/router/types.d.ts +53 -0
- package/dist/__package_types_tmp__/primitives/types.d.ts +86 -0
- package/dist/__package_types_tmp__/primitives/useHold.d.ts +9 -0
- package/dist/__package_types_tmp__/primitives/utils/chainFunctions.d.ts +5 -0
- package/dist/__package_types_tmp__/primitives/utils/createBlurredImage.d.ts +10 -0
- package/dist/__package_types_tmp__/primitives/utils/createSpriteMap.d.ts +9 -0
- package/dist/__package_types_tmp__/primitives/utils/handleNavigation.d.ts +103 -0
- package/dist/__package_types_tmp__/primitives/utils/withScrolling.d.ts +23 -0
- package/dist/__package_types_tmp__/shaders/index.d.ts +1 -0
- package/dist/__package_types_tmp__/utils.d.ts +11 -0
- package/dist/__package_types_tmp__/vite/index.d.ts +18 -0
- package/dist/core/activeElement.d.ts +4 -0
- package/dist/core/activeElement.js +6 -0
- package/dist/core/clickInspector.d.ts +1 -0
- package/dist/core/clickInspector.js +3 -0
- package/dist/core/config.d.ts +26 -0
- package/dist/core/config.js +35 -0
- package/dist/core/dom-renderer/domRendererTypes.d.ts +15 -0
- package/dist/core/dom-renderer/domRendererTypes.js +2 -0
- package/dist/core/elementNode.d.ts +548 -0
- package/dist/core/elementNode.js +1355 -0
- package/dist/core/env.d.ts +3 -0
- package/dist/core/env.js +5 -0
- package/dist/core/flex.d.ts +2 -0
- package/dist/core/flex.js +295 -0
- package/dist/core/flexLayout.d.ts +2 -0
- package/dist/core/flexLayout.js +367 -0
- package/dist/core/focusKeyTypes.d.ts +47 -0
- package/dist/core/focusKeyTypes.js +1 -0
- package/dist/core/focusManager.d.ts +34 -0
- package/dist/core/focusManager.js +410 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.js +12 -0
- package/dist/core/intrinsicTypes.d.ts +102 -0
- package/dist/core/intrinsicTypes.js +1 -0
- package/dist/core/lightningInit.d.ts +7 -0
- package/dist/core/lightningInit.js +31 -0
- package/dist/core/nodeTypes.d.ts +13 -0
- package/dist/core/nodeTypes.js +13 -0
- package/dist/core/root.d.ts +8 -0
- package/dist/core/root.js +16 -0
- package/dist/core/shaders.d.ts +44 -0
- package/dist/core/shaders.js +81 -0
- package/dist/core/states.d.ts +12 -0
- package/dist/core/states.js +83 -0
- package/dist/core/svelteNode.d.ts +21 -0
- package/dist/core/svelteNode.js +72 -0
- package/dist/core/utils.d.ts +41 -0
- package/dist/core/utils.js +163 -0
- package/dist/fonts/Roboto-Regular.ttf +0 -0
- package/dist/fonts.d.ts +3 -0
- package/dist/fonts.js +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7 -0
- package/dist/primitives/Button.svelte +35 -0
- package/dist/primitives/Button.svelte.d.ts +12 -0
- package/dist/primitives/Card.svelte +36 -0
- package/dist/primitives/Card.svelte.d.ts +12 -0
- package/dist/primitives/Column.svelte +56 -0
- package/dist/primitives/Column.svelte.d.ts +14 -0
- package/dist/primitives/Drawer.svelte +214 -0
- package/dist/primitives/Drawer.svelte.d.ts +20 -0
- package/dist/primitives/FPSCounter.svelte +85 -0
- package/dist/primitives/FPSCounter.svelte.d.ts +7 -0
- package/dist/primitives/FadeInOut.svelte +81 -0
- package/dist/primitives/FadeInOut.svelte.d.ts +21 -0
- package/dist/primitives/Grid.svelte +114 -0
- package/dist/primitives/Grid.svelte.d.ts +51 -0
- package/dist/primitives/IconButton.svelte +52 -0
- package/dist/primitives/IconButton.svelte.d.ts +15 -0
- package/dist/primitives/Image.svelte +39 -0
- package/dist/primitives/Image.svelte.d.ts +10 -0
- package/dist/primitives/Marquee.svelte +62 -0
- package/dist/primitives/Marquee.svelte.d.ts +13 -0
- package/dist/primitives/Modal.svelte +55 -0
- package/dist/primitives/Modal.svelte.d.ts +16 -0
- package/dist/primitives/Preserve.svelte +26 -0
- package/dist/primitives/Preserve.svelte.d.ts +10 -0
- package/dist/primitives/Row.svelte +55 -0
- package/dist/primitives/Row.svelte.d.ts +14 -0
- package/dist/primitives/Skeleton.svelte +48 -0
- package/dist/primitives/Skeleton.svelte.d.ts +13 -0
- package/dist/primitives/Toast.svelte +33 -0
- package/dist/primitives/Toast.svelte.d.ts +14 -0
- package/dist/primitives/Virtual.svelte +116 -0
- package/dist/primitives/Virtual.svelte.d.ts +49 -0
- package/dist/primitives/VirtualGrid.svelte +42 -0
- package/dist/primitives/VirtualGrid.svelte.d.ts +47 -0
- package/dist/primitives/Visible.svelte +7 -0
- package/dist/primitives/Visible.svelte.d.ts +8 -0
- package/dist/primitives/announcer/announcer.d.ts +14 -0
- package/dist/primitives/announcer/announcer.js +63 -0
- package/dist/primitives/announcer/index.d.ts +4 -0
- package/dist/primitives/announcer/index.js +5 -0
- package/dist/primitives/announcer/speech.d.ts +10 -0
- package/dist/primitives/announcer/speech.js +106 -0
- package/dist/primitives/createInfiniteItems.d.ts +8 -0
- package/dist/primitives/createInfiniteItems.js +28 -0
- package/dist/primitives/index.d.ts +28 -0
- package/dist/primitives/index.js +28 -0
- package/dist/primitives/router/HashRouter.svelte +106 -0
- package/dist/primitives/router/HashRouter.svelte.d.ts +9 -0
- package/dist/primitives/router/KeepAliveRoute.svelte +27 -0
- package/dist/primitives/router/KeepAliveRoute.svelte.d.ts +13 -0
- package/dist/primitives/router/Navigate.svelte +5 -0
- package/dist/primitives/router/Navigate.svelte.d.ts +7 -0
- package/dist/primitives/router/Route.svelte +26 -0
- package/dist/primitives/router/Route.svelte.d.ts +13 -0
- package/dist/primitives/router/RouteView.svelte +60 -0
- package/dist/primitives/router/RouteView.svelte.d.ts +14 -0
- package/dist/primitives/router/context.d.ts +8 -0
- package/dist/primitives/router/context.js +27 -0
- package/dist/primitives/router/index.d.ts +8 -0
- package/dist/primitives/router/index.js +7 -0
- package/dist/primitives/router/lazy.d.ts +6 -0
- package/dist/primitives/router/lazy.js +15 -0
- package/dist/primitives/router/match.d.ts +5 -0
- package/dist/primitives/router/match.js +104 -0
- package/dist/primitives/router/routeContext.d.ts +6 -0
- package/dist/primitives/router/routeContext.js +8 -0
- package/dist/primitives/router/types.d.ts +53 -0
- package/dist/primitives/router/types.js +1 -0
- package/dist/primitives/types.d.ts +86 -0
- package/dist/primitives/types.js +1 -0
- package/dist/primitives/useHold.d.ts +9 -0
- package/dist/primitives/useHold.js +55 -0
- package/dist/primitives/utils/chainFunctions.d.ts +5 -0
- package/dist/primitives/utils/chainFunctions.js +42 -0
- package/dist/primitives/utils/createBlurredImage.d.ts +10 -0
- package/dist/primitives/utils/createBlurredImage.js +49 -0
- package/dist/primitives/utils/createSpriteMap.d.ts +9 -0
- package/dist/primitives/utils/createSpriteMap.js +15 -0
- package/dist/primitives/utils/handleNavigation.d.ts +103 -0
- package/dist/primitives/utils/handleNavigation.js +306 -0
- package/dist/primitives/utils/withScrolling.d.ts +23 -0
- package/dist/primitives/utils/withScrolling.js +192 -0
- package/dist/shaders/index.d.ts +1 -0
- package/dist/shaders/index.js +1 -0
- package/dist/src/core/activeElement.d.ts +4 -0
- package/dist/src/core/clickInspector.d.ts +1 -0
- package/dist/src/core/config.d.ts +26 -0
- package/dist/src/core/dom-renderer/domRendererTypes.d.ts +15 -0
- package/dist/src/core/elementNode.d.ts +548 -0
- package/dist/src/core/env.d.ts +3 -0
- package/dist/src/core/flex.d.ts +2 -0
- package/dist/src/core/flexLayout.d.ts +2 -0
- package/dist/src/core/focusKeyTypes.d.ts +47 -0
- package/dist/src/core/focusManager.d.ts +34 -0
- package/dist/src/core/index.d.ts +14 -0
- package/dist/src/core/intrinsicTypes.d.ts +102 -0
- package/dist/src/core/lightningInit.d.ts +7 -0
- package/dist/src/core/nodeTypes.d.ts +13 -0
- package/dist/src/core/root.d.ts +8 -0
- package/dist/src/core/shaders.d.ts +44 -0
- package/dist/src/core/states.d.ts +12 -0
- package/dist/src/core/svelteNode.d.ts +21 -0
- package/dist/src/core/utils.d.ts +41 -0
- package/dist/src/fonts.d.ts +3 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/primitives/announcer/announcer.d.ts +14 -0
- package/dist/src/primitives/announcer/index.d.ts +4 -0
- package/dist/src/primitives/announcer/speech.d.ts +10 -0
- package/dist/src/primitives/createInfiniteItems.d.ts +8 -0
- package/dist/src/primitives/index.d.ts +28 -0
- package/dist/src/primitives/router/context.d.ts +8 -0
- package/dist/src/primitives/router/index.d.ts +8 -0
- package/dist/src/primitives/router/lazy.d.ts +6 -0
- package/dist/src/primitives/router/match.d.ts +5 -0
- package/dist/src/primitives/router/routeContext.d.ts +6 -0
- package/dist/src/primitives/router/types.d.ts +53 -0
- package/dist/src/primitives/types.d.ts +86 -0
- package/dist/src/primitives/useHold.d.ts +9 -0
- package/dist/src/primitives/utils/chainFunctions.d.ts +5 -0
- package/dist/src/primitives/utils/createBlurredImage.d.ts +10 -0
- package/dist/src/primitives/utils/createSpriteMap.d.ts +9 -0
- package/dist/src/primitives/utils/handleNavigation.d.ts +103 -0
- package/dist/src/primitives/utils/withScrolling.d.ts +23 -0
- package/dist/src/shaders/index.d.ts +1 -0
- package/dist/src/utils.d.ts +11 -0
- package/dist/src/vite/index.d.ts +18 -0
- package/dist/utils.d.ts +11 -0
- package/dist/utils.js +73 -0
- package/dist/vite/index.d.ts +18 -0
- package/dist/vite/index.js +149 -0
- package/package.json +72 -8
package/LICENSE
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Apache-2.0
|
package/NOTICE
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
svelte-tv
|
package/README.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
<a href="https://sveltetv.dev">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="banner_dark.png">
|
|
4
|
+
<img src="banner_white.png" alt="Svelte TV" />
|
|
5
|
+
</picture>
|
|
6
|
+
</a>
|
|
7
|
+
|
|
8
|
+
<h1 align="center">
|
|
9
|
+
<a href="https://sveltetv.dev/">
|
|
10
|
+
Svelte TV
|
|
11
|
+
</a>
|
|
12
|
+
</h1>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<strong>Svelte speed for every screen:</strong><br>
|
|
16
|
+
Build high-performance TV interfaces with Lightning.
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p align="center">
|
|
20
|
+
<a href="./LICENSE">
|
|
21
|
+
<img src="https://img.shields.io/badge/license-Apache--2.0-blue.svg" alt="Svelte TV is released under the Apache 2.0 license." />
|
|
22
|
+
</a>
|
|
23
|
+
<a href="https://www.npmjs.org/package/svelte-tv">
|
|
24
|
+
<img src="https://img.shields.io/npm/v/svelte-tv?color=brightgreen&label=npm%20package" alt="Current npm package version." />
|
|
25
|
+
</a>
|
|
26
|
+
<a href="https://sveltetv.dev/docs/contributing">
|
|
27
|
+
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs are welcome!" />
|
|
28
|
+
</a>
|
|
29
|
+
</p>
|
|
30
|
+
|
|
31
|
+
<h3 align="center">
|
|
32
|
+
<a href="https://sveltetv.dev/docs/getting-started">Getting Started</a>
|
|
33
|
+
<span> · </span>
|
|
34
|
+
<a href="https://sveltetv.dev/docs/learn">Learn the Basics</a>
|
|
35
|
+
<span> · </span>
|
|
36
|
+
<a href="https://sveltetv.dev/showcase">Showcase</a>
|
|
37
|
+
<span> · </span>
|
|
38
|
+
<a href="https://sveltetv.dev/docs/contributing">Contribute</a>
|
|
39
|
+
<span> · </span>
|
|
40
|
+
<a href="https://sveltetv.dev/community">Community</a>
|
|
41
|
+
<span> · </span>
|
|
42
|
+
<a href="https://sveltetv.dev/support">Support</a>
|
|
43
|
+
</h3>
|
|
44
|
+
|
|
45
|
+
Svelte TV brings [**Svelte**'s][s] component model to [**Lightning**][l]-powered living room apps. With Svelte TV, you build renderer-native, focus-driven interfaces for Canvas and WebGL.
|
|
46
|
+
|
|
47
|
+
- **Declarative.** Build TV screens with Svelte components while rendering through Lightning.
|
|
48
|
+
- **Remote-first.** Directional focus, key handling, hold states, and focus styling are part of the core.
|
|
49
|
+
- **Renderer-native.** Use Canvas or WebGL without relying on DOM layout.
|
|
50
|
+
- **Practical.** Routing, transitions, effects, virtual lists, and SDF font tooling are included.
|
|
51
|
+
|
|
52
|
+
[s]: https://svelte.dev/
|
|
53
|
+
[l]: https://github.com/lightning-js/renderer
|
|
54
|
+
|
|
55
|
+
## Contents
|
|
56
|
+
|
|
57
|
+
- [Requirements](#requirements)
|
|
58
|
+
- [Building your first Svelte TV app](#building-your-first-svelte-tv-app)
|
|
59
|
+
- [Documentation](#documentation)
|
|
60
|
+
- [Roadmap](#roadmap)
|
|
61
|
+
- [How to Contribute](#how-to-contribute)
|
|
62
|
+
- [License](#license)
|
|
63
|
+
|
|
64
|
+
## 📋 Requirements
|
|
65
|
+
|
|
66
|
+
Svelte TV targets Svelte 5 and `@lightningjs/renderer` 3.x. For supported renderer modes, font setup, and project requirements, see the [Requirements guide][requirements].
|
|
67
|
+
|
|
68
|
+
Because Svelte 5 relies on [JavaScript Proxy](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) for its reactivity model, Svelte TV requires Chrome 49 or newer.
|
|
69
|
+
|
|
70
|
+
## 🎉 Building your first Svelte TV app
|
|
71
|
+
|
|
72
|
+
Follow the [Getting Started guide][getting-started] to create your first Svelte TV app. If you are new to focus-driven TV interfaces, start with [Learn the Basics][learn].
|
|
73
|
+
|
|
74
|
+
## 📖 Documentation
|
|
75
|
+
|
|
76
|
+
The full documentation for Svelte TV can be found on our [website][docs].
|
|
77
|
+
|
|
78
|
+
The documentation covers renderer setup, focus handling, layout, routing, effects, primitives, fonts, and deployment notes.
|
|
79
|
+
|
|
80
|
+
## 🚀 Roadmap
|
|
81
|
+
|
|
82
|
+
Svelte TV is evolving around real TV app needs. You can follow planned work, open design notes, and release direction in the [Roadmap][roadmap].
|
|
83
|
+
|
|
84
|
+
## 👏 How to Contribute
|
|
85
|
+
|
|
86
|
+
We want contributing to Svelte TV to be focused and practical. Read the [Contributing Guide][contribute] to learn how to report issues, propose changes, and work on the project.
|
|
87
|
+
|
|
88
|
+
## 📄 License
|
|
89
|
+
|
|
90
|
+
Svelte TV is Apache-2.0 licensed, as found in the [LICENSE][license] file.
|
|
91
|
+
|
|
92
|
+
[requirements]: https://sveltetv.dev/docs/requirements
|
|
93
|
+
[getting-started]: https://sveltetv.dev/docs/getting-started
|
|
94
|
+
[learn]: https://sveltetv.dev/docs/learn
|
|
95
|
+
[docs]: https://sveltetv.dev/docs
|
|
96
|
+
[roadmap]: https://sveltetv.dev/roadmap
|
|
97
|
+
[contribute]: https://sveltetv.dev/docs/contributing
|
|
98
|
+
[license]: ./LICENSE
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script lang="ts">import { onDestroy, onMount } from "svelte";
|
|
2
|
+
import { createFocusManager } from "./core/focusManager.js";
|
|
3
|
+
import { createRenderer, rootNode } from "./core/root.js";
|
|
4
|
+
import { setParentNode } from "./core/svelteNode.js";
|
|
5
|
+
let { options, target = "app", keyMap, keyHoldOptions, useFocusManager = true, onReady, children } = $props();
|
|
6
|
+
setParentNode(rootNode);
|
|
7
|
+
let cleanupFocus;
|
|
8
|
+
let ready = $state(false);
|
|
9
|
+
let destroyed = false;
|
|
10
|
+
onMount(() => {
|
|
11
|
+
const { renderer } = createRenderer(options, target);
|
|
12
|
+
cleanupFocus = useFocusManager ? createFocusManager(keyMap, keyHoldOptions) : undefined;
|
|
13
|
+
Promise.resolve(onReady?.(renderer)).then(() => {
|
|
14
|
+
if (!destroyed) ready = true;
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
onDestroy(() => {
|
|
18
|
+
destroyed = true;
|
|
19
|
+
cleanupFocus?.();
|
|
20
|
+
});
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
{#if ready}
|
|
24
|
+
{@render children?.()}
|
|
25
|
+
{/if}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { RendererMain, RendererMainSettings } from '@lightningjs/renderer';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import { type KeyHoldOptions, type KeyMap } from './core/focusManager.js';
|
|
4
|
+
interface Props {
|
|
5
|
+
options?: Partial<RendererMainSettings>;
|
|
6
|
+
target?: HTMLElement | string;
|
|
7
|
+
keyMap?: Partial<KeyMap>;
|
|
8
|
+
keyHoldOptions?: KeyHoldOptions;
|
|
9
|
+
useFocusManager?: boolean;
|
|
10
|
+
onReady?: (renderer: RendererMain) => void | Promise<void>;
|
|
11
|
+
children?: Snippet;
|
|
12
|
+
}
|
|
13
|
+
declare const LightningRoot: import("svelte").Component<Props, {}, "">;
|
|
14
|
+
type LightningRoot = ReturnType<typeof LightningRoot>;
|
|
15
|
+
export default LightningRoot;
|
package/dist/Text.svelte
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script lang="ts">import { onDestroy, onMount } from "svelte";
|
|
2
|
+
import { applyNodeProps, createNode, getParentNode, mountNode, setParentNode, setTextContent, unmountNode } from "./core/svelteNode.js";
|
|
3
|
+
let props = $props();
|
|
4
|
+
const node = createNode("text", {});
|
|
5
|
+
const parent = getParentNode();
|
|
6
|
+
setParentNode(node);
|
|
7
|
+
export { node as element };
|
|
8
|
+
export function setFocus() {
|
|
9
|
+
node.setFocus();
|
|
10
|
+
}
|
|
11
|
+
$effect(() => {
|
|
12
|
+
applyNodeProps(node, props);
|
|
13
|
+
setTextContent(node, props.text);
|
|
14
|
+
});
|
|
15
|
+
onMount(() => mountNode(node, parent));
|
|
16
|
+
onDestroy(() => unmountNode(node));
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
{@render props.children?.()}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type SvelteTextProps } from './core/svelteNode.js';
|
|
2
|
+
declare const Text: import("svelte").Component<SvelteTextProps, {
|
|
3
|
+
element: import("./index.js").ElementNode;
|
|
4
|
+
setFocus: () => void;
|
|
5
|
+
}, "">;
|
|
6
|
+
type Text = ReturnType<typeof Text>;
|
|
7
|
+
export default Text;
|
package/dist/View.svelte
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<script lang="ts">import { onDestroy, onMount } from "svelte";
|
|
2
|
+
import { applyNodeProps, createNode, getParentNode, mountNode, setParentNode, unmountNode } from "./core/svelteNode.js";
|
|
3
|
+
let props = $props();
|
|
4
|
+
const node = createNode("view", {});
|
|
5
|
+
const parent = getParentNode();
|
|
6
|
+
setParentNode(node);
|
|
7
|
+
export { node as element };
|
|
8
|
+
export function setFocus() {
|
|
9
|
+
node.setFocus();
|
|
10
|
+
}
|
|
11
|
+
$effect(() => {
|
|
12
|
+
applyNodeProps(node, props);
|
|
13
|
+
});
|
|
14
|
+
onMount(() => mountNode(node, parent));
|
|
15
|
+
onDestroy(() => unmountNode(node));
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
{@render props.children?.()}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type SvelteNodeProps } from './core/svelteNode.js';
|
|
2
|
+
declare const View: import("svelte").Component<SvelteNodeProps, {
|
|
3
|
+
element: import("./index.js").ElementNode;
|
|
4
|
+
setFocus: () => void;
|
|
5
|
+
}, "">;
|
|
6
|
+
type View = ReturnType<typeof View>;
|
|
7
|
+
export default View;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { RendererMain, RendererMainSettings } from '@lightningjs/renderer';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import { type KeyHoldOptions, type KeyMap } from './core/focusManager.js';
|
|
4
|
+
interface Props {
|
|
5
|
+
options?: Partial<RendererMainSettings>;
|
|
6
|
+
target?: HTMLElement | string;
|
|
7
|
+
keyMap?: Partial<KeyMap>;
|
|
8
|
+
keyHoldOptions?: KeyHoldOptions;
|
|
9
|
+
useFocusManager?: boolean;
|
|
10
|
+
onReady?: (renderer: RendererMain) => void | Promise<void>;
|
|
11
|
+
children?: Snippet;
|
|
12
|
+
}
|
|
13
|
+
declare const LightningRoot: import("svelte").Component<Props, {}, "">;
|
|
14
|
+
type LightningRoot = ReturnType<typeof LightningRoot>;
|
|
15
|
+
export default LightningRoot;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type SvelteTextProps } from './core/svelteNode.js';
|
|
2
|
+
declare const Text: import("svelte").Component<SvelteTextProps, {
|
|
3
|
+
element: import("./index.js").ElementNode;
|
|
4
|
+
setFocus: () => void;
|
|
5
|
+
}, "">;
|
|
6
|
+
type Text = ReturnType<typeof Text>;
|
|
7
|
+
export default Text;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type SvelteNodeProps } from './core/svelteNode.js';
|
|
2
|
+
declare const View: import("svelte").Component<SvelteNodeProps, {
|
|
3
|
+
element: import("./index.js").ElementNode;
|
|
4
|
+
setFocus: () => void;
|
|
5
|
+
}, "">;
|
|
6
|
+
type View = ReturnType<typeof View>;
|
|
7
|
+
export default View;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ElementNode } from './elementNode.js';
|
|
2
|
+
export declare const activeElementStore: import("svelte/store").Writable<ElementNode | undefined>;
|
|
3
|
+
export declare const activeElement: (() => ElementNode | undefined) & import("svelte/store").Writable<ElementNode | undefined>;
|
|
4
|
+
export declare function setActiveElement(elm: ElementNode | undefined): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function initClickInspector(): void;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { RendererMainSettings } from '@lightningjs/renderer';
|
|
2
|
+
import type { TextProps, AnimationSettings, DollarString, StyleEffects } from './intrinsicTypes.js';
|
|
3
|
+
import { type ElementNode } from './elementNode.js';
|
|
4
|
+
import type { IRendererShader } from './dom-renderer/domRendererTypes.js';
|
|
5
|
+
export { isDev, SHADERS_ENABLED } from './env.js';
|
|
6
|
+
export declare const isDomRendererActive: () => boolean;
|
|
7
|
+
export interface Config {
|
|
8
|
+
debug: boolean;
|
|
9
|
+
focusDebug: boolean;
|
|
10
|
+
domRendererEnabled: boolean;
|
|
11
|
+
keyDebug: boolean;
|
|
12
|
+
focusHistoryDebug: number;
|
|
13
|
+
animationSettings?: AnimationSettings;
|
|
14
|
+
animationsEnabled: boolean;
|
|
15
|
+
fontSettings: Partial<TextProps>;
|
|
16
|
+
rendererOptions?: Partial<RendererMainSettings>;
|
|
17
|
+
setActiveElement: (elm: ElementNode) => void;
|
|
18
|
+
focusStateKey: DollarString;
|
|
19
|
+
lockStyles?: boolean;
|
|
20
|
+
fontWeightAlias?: Record<string, number | string>;
|
|
21
|
+
throttleInput?: number;
|
|
22
|
+
taskDelay?: number;
|
|
23
|
+
convertToShader: (_node: ElementNode, v: StyleEffects) => IRendererShader;
|
|
24
|
+
stateOrder?: DollarString[];
|
|
25
|
+
}
|
|
26
|
+
export declare const Config: Config;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { INode, INodeProps, ITextNode, ITextNodeProps, RendererMainSettings } from '@lightningjs/renderer';
|
|
2
|
+
export type DomRendererMainSettings = RendererMainSettings;
|
|
3
|
+
export type IRendererShader = any;
|
|
4
|
+
export type IRendererShaderProps = Record<string, unknown>;
|
|
5
|
+
export type IRendererShaderManager = {
|
|
6
|
+
registerShaderType: (...args: any[]) => void;
|
|
7
|
+
};
|
|
8
|
+
export interface IRendererNode extends INode {
|
|
9
|
+
div?: HTMLElement;
|
|
10
|
+
}
|
|
11
|
+
export type IRendererNodeProps = INodeProps;
|
|
12
|
+
export interface IRendererTextNode extends ITextNode {
|
|
13
|
+
div?: HTMLElement;
|
|
14
|
+
}
|
|
15
|
+
export type IRendererTextNodeProps = ITextNodeProps;
|