@lightningtv/solid 3.0.0-20 → 3.0.0-22

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.
Files changed (134) hide show
  1. package/dist/src/activeElement.d.ts +1 -1
  2. package/dist/src/core/animation.d.ts +35 -0
  3. package/dist/src/core/animation.js +119 -0
  4. package/dist/src/core/animation.js.map +1 -0
  5. package/dist/src/core/config.d.ts +47 -0
  6. package/dist/src/core/config.js +23 -0
  7. package/dist/src/core/config.js.map +1 -0
  8. package/dist/src/core/dom-renderer/domRenderer.d.ts +137 -0
  9. package/dist/src/core/dom-renderer/domRenderer.js +1545 -0
  10. package/dist/src/core/dom-renderer/domRenderer.js.map +1 -0
  11. package/dist/src/core/dom-renderer/domRendererTypes.d.ts +117 -0
  12. package/dist/src/core/dom-renderer/domRendererTypes.js +2 -0
  13. package/dist/src/core/dom-renderer/domRendererTypes.js.map +1 -0
  14. package/dist/src/core/dom-renderer/domRendererUtils.d.ts +16 -0
  15. package/dist/src/core/dom-renderer/domRendererUtils.js +132 -0
  16. package/dist/src/core/dom-renderer/domRendererUtils.js.map +1 -0
  17. package/dist/src/core/domRenderer.d.ts +117 -0
  18. package/dist/src/core/domRenderer.js +1160 -0
  19. package/dist/src/core/domRenderer.js.map +1 -0
  20. package/dist/src/core/elementNode.d.ts +463 -0
  21. package/dist/src/core/elementNode.js +830 -0
  22. package/dist/src/core/elementNode.js.map +1 -0
  23. package/dist/src/core/flex.d.ts +2 -0
  24. package/dist/src/core/flex.js +243 -0
  25. package/dist/src/core/flex.js.map +1 -0
  26. package/dist/src/core/focusKeyTypes.d.ts +42 -0
  27. package/dist/src/core/focusKeyTypes.js +2 -0
  28. package/dist/src/core/focusKeyTypes.js.map +1 -0
  29. package/dist/src/core/focusManager.d.ts +13 -0
  30. package/dist/src/core/focusManager.js +276 -0
  31. package/dist/src/core/focusManager.js.map +1 -0
  32. package/dist/src/core/index.d.ts +12 -0
  33. package/dist/src/core/index.js +12 -0
  34. package/dist/src/core/index.js.map +1 -0
  35. package/dist/src/core/intrinsicTypes.d.ts +90 -0
  36. package/dist/src/core/intrinsicTypes.js +2 -0
  37. package/dist/src/core/intrinsicTypes.js.map +1 -0
  38. package/dist/src/core/lightningInit.d.ts +89 -0
  39. package/dist/src/core/lightningInit.js +26 -0
  40. package/dist/src/core/lightningInit.js.map +1 -0
  41. package/dist/src/core/nodeTypes.d.ts +6 -0
  42. package/dist/src/core/nodeTypes.js +6 -0
  43. package/dist/src/core/nodeTypes.js.map +1 -0
  44. package/dist/src/core/shaders.d.ts +51 -0
  45. package/dist/src/core/shaders.js +446 -0
  46. package/dist/src/core/shaders.js.map +1 -0
  47. package/dist/src/core/states.d.ts +12 -0
  48. package/dist/src/core/states.js +84 -0
  49. package/dist/src/core/states.js.map +1 -0
  50. package/dist/src/core/timings.d.ts +36 -0
  51. package/dist/src/core/timings.js +199 -0
  52. package/dist/src/core/timings.js.map +1 -0
  53. package/dist/src/core/utils.d.ts +39 -0
  54. package/dist/src/core/utils.js +164 -0
  55. package/dist/src/core/utils.js.map +1 -0
  56. package/dist/src/devtools/index.d.ts +1 -1
  57. package/dist/src/devtools/index.js +1 -1
  58. package/dist/src/devtools/index.js.map +1 -1
  59. package/dist/src/index.d.ts +3 -3
  60. package/dist/src/index.js +1 -1
  61. package/dist/src/index.js.map +1 -1
  62. package/dist/src/primitives/FPSCounter.jsx +14 -1
  63. package/dist/src/primitives/FPSCounter.jsx.map +1 -1
  64. package/dist/src/primitives/Lazy.d.ts +1 -1
  65. package/dist/src/primitives/Lazy.jsx +5 -2
  66. package/dist/src/primitives/Lazy.jsx.map +1 -1
  67. package/dist/src/primitives/Row.jsx.map +1 -1
  68. package/dist/src/primitives/Virtual.jsx +2 -2
  69. package/dist/src/primitives/Virtual.jsx.map +1 -1
  70. package/dist/src/primitives/VirtualGrid.jsx +26 -5
  71. package/dist/src/primitives/VirtualGrid.jsx.map +1 -1
  72. package/dist/src/primitives/index.d.ts +1 -1
  73. package/dist/src/primitives/types.d.ts +2 -2
  74. package/dist/src/primitives/useFocusManager.d.ts +2 -2
  75. package/dist/src/primitives/useFocusManager.js +2 -2
  76. package/dist/src/primitives/useFocusManager.js.map +1 -1
  77. package/dist/src/primitives/useMouse.d.ts +2 -9
  78. package/dist/src/primitives/useMouse.js +30 -12
  79. package/dist/src/primitives/useMouse.js.map +1 -1
  80. package/dist/src/primitives/utils/createSpriteMap.d.ts +1 -1
  81. package/dist/src/primitives/utils/createSpriteMap.js +3 -3
  82. package/dist/src/primitives/utils/createSpriteMap.js.map +1 -1
  83. package/dist/src/primitives/utils/handleNavigation.d.ts +2 -8
  84. package/dist/src/primitives/utils/handleNavigation.js +5 -5
  85. package/dist/src/primitives/utils/handleNavigation.js.map +1 -1
  86. package/dist/src/primitives/utils/withScrolling.d.ts +8 -3
  87. package/dist/src/primitives/utils/withScrolling.js +43 -3
  88. package/dist/src/primitives/utils/withScrolling.js.map +1 -1
  89. package/dist/src/render.d.ts +5 -5
  90. package/dist/src/render.js +1 -1
  91. package/dist/src/render.js.map +1 -1
  92. package/dist/src/solidOpts.d.ts +1 -8
  93. package/dist/src/solidOpts.js +1 -1
  94. package/dist/src/solidOpts.js.map +1 -1
  95. package/dist/src/types.d.ts +1 -13
  96. package/dist/src/utils.d.ts +1 -1
  97. package/dist/src/utils.js +1 -1
  98. package/dist/src/utils.js.map +1 -1
  99. package/dist/tsconfig.tsbuildinfo +1 -1
  100. package/jsx-runtime.d.ts +1 -1
  101. package/package.json +8 -12
  102. package/src/activeElement.ts +1 -1
  103. package/src/core/animation.ts +185 -0
  104. package/src/core/config.ts +77 -0
  105. package/src/core/domRenderer.ts +1308 -0
  106. package/src/core/elementNode.ts +1449 -0
  107. package/src/core/flex.ts +284 -0
  108. package/src/core/focusKeyTypes.ts +87 -0
  109. package/src/core/focusManager.ts +369 -0
  110. package/src/core/index.ts +13 -0
  111. package/src/core/intrinsicTypes.ts +199 -0
  112. package/src/core/lightningInit.ts +147 -0
  113. package/src/core/nodeTypes.ts +6 -0
  114. package/src/core/shaders.ts +567 -0
  115. package/src/core/states.ts +91 -0
  116. package/src/core/utils.ts +222 -0
  117. package/src/devtools/index.ts +1 -1
  118. package/src/index.ts +3 -3
  119. package/src/primitives/FPSCounter.tsx +15 -1
  120. package/src/primitives/Lazy.tsx +8 -2
  121. package/src/primitives/Row.tsx +3 -3
  122. package/src/primitives/Virtual.tsx +2 -2
  123. package/src/primitives/VirtualGrid.tsx +26 -5
  124. package/src/primitives/index.ts +1 -1
  125. package/src/primitives/types.ts +2 -2
  126. package/src/primitives/useFocusManager.ts +3 -3
  127. package/src/primitives/useMouse.ts +48 -26
  128. package/src/primitives/utils/createSpriteMap.ts +3 -3
  129. package/src/primitives/utils/handleNavigation.ts +6 -13
  130. package/src/primitives/utils/withScrolling.ts +47 -5
  131. package/src/render.ts +1 -1
  132. package/src/solidOpts.ts +1 -9
  133. package/src/types.ts +1 -15
  134. package/src/utils.ts +1 -1
@@ -0,0 +1,147 @@
1
+ import * as lng from '@lightningjs/renderer';
2
+ import { DOMRendererMain } from './domRenderer.js';
3
+ import { DOM_RENDERING } from './config.js';
4
+ import {
5
+ ShaderBorderPrefixedProps,
6
+ ShaderHolePunchProps,
7
+ ShaderLinearGradientProps,
8
+ ShaderRadialGradientProps,
9
+ ShaderRoundedProps,
10
+ ShaderShadowPrefixedProps,
11
+ } from './shaders.js';
12
+
13
+ export type SdfFontType = 'ssdf' | 'msdf';
14
+
15
+ /** Based on {@link lng.CoreRenderer} */
16
+ export interface IRendererCoreRenderer {
17
+ mode: 'canvas' | 'webgl' | undefined;
18
+ }
19
+ /** Based on {@link lng.TrFontManager} */
20
+ export interface IRendererFontManager {
21
+ addFontFace: (...a: any[]) => void;
22
+ }
23
+ /** Based on {@link lng.Stage} */
24
+ export interface IRendererStage {
25
+ root: IRendererNode;
26
+ renderer: IRendererCoreRenderer;
27
+ shManager: IRendererShaderManager;
28
+ animationManager: {
29
+ registerAnimation: (anim: any) => void;
30
+ unregisterAnimation: (anim: any) => void;
31
+ };
32
+ loadFont(kind: string, props: any): Promise<void>;
33
+ }
34
+
35
+ /** Based on {@link lng.CoreShaderManager} */
36
+ export interface IRendererShaderManager {
37
+ registerShaderType: (name: string, shader: any) => void;
38
+ }
39
+
40
+ /** Based on {@link lng.CoreShaderNode} */
41
+ export interface IRendererShader {
42
+ shaderType: IRendererShaderType;
43
+ props?: IRendererShaderProps;
44
+ program?: {};
45
+ }
46
+ /** Based on {@link lng.CoreShaderType} */
47
+ export interface IRendererShaderType {}
48
+ export type IRendererShaderProps = Partial<ShaderBorderPrefixedProps> &
49
+ Partial<ShaderShadowPrefixedProps> &
50
+ Partial<ShaderRoundedProps> &
51
+ Partial<ShaderHolePunchProps> &
52
+ Partial<ShaderRadialGradientProps> &
53
+ Partial<ShaderLinearGradientProps>;
54
+
55
+ /** Based on {@link lng.Texture} */
56
+ export interface IRendererTexture {
57
+ props: IRendererTextureProps;
58
+ type: lng.TextureType;
59
+ }
60
+ export interface IRendererTextureProps {}
61
+
62
+ export interface IEventEmitter {
63
+ on: (e: string, cb: (...a: any[]) => void) => void;
64
+ }
65
+
66
+ export interface IRendererNodeShaded extends IEventEmitter {
67
+ stage: IRendererStage;
68
+ id: number;
69
+ animate: (
70
+ props: Partial<lng.INodeAnimateProps<any>>,
71
+ settings: Partial<lng.AnimationSettings>,
72
+ ) => lng.IAnimationController;
73
+ get absX(): number;
74
+ get absY(): number;
75
+ }
76
+
77
+ /** Based on {@link lng.INodeProps} */
78
+ export interface IRendererNodeProps
79
+ extends Omit<lng.INodeProps<lng.CoreShaderNode>, 'shader' | 'parent'> {
80
+ shader: IRendererShader | null;
81
+ parent: IRendererNode | null;
82
+ }
83
+ /** Based on {@link lng.INode} */
84
+ export interface IRendererNode extends IRendererNodeShaded, IRendererNodeProps {
85
+ div?: HTMLElement;
86
+ props: IRendererNodeProps;
87
+ renderState: lng.CoreNodeRenderState;
88
+ }
89
+
90
+ /** Based on {@link lng.ITextNodeProps} */
91
+ export interface IRendererTextNodeProps
92
+ extends Omit<lng.ITextNodeProps, 'shader' | 'parent'> {
93
+ shader: IRendererShader | null;
94
+ parent: IRendererNode | null;
95
+ fontWeight?: string;
96
+ }
97
+ /** Based on {@link lng.ITextNode} */
98
+ export interface IRendererTextNode
99
+ extends IRendererNodeShaded,
100
+ IRendererTextNodeProps {
101
+ div?: HTMLElement;
102
+ props: IRendererTextNodeProps;
103
+ renderState: lng.CoreNodeRenderState;
104
+ }
105
+
106
+ /** Based on {@link lng.RendererMain} */
107
+ export interface IRendererMain extends IEventEmitter {
108
+ stage: IRendererStage;
109
+ root: IRendererNode;
110
+ createTextNode(props: Partial<IRendererTextNodeProps>): IRendererTextNode;
111
+ createNode(props: Partial<IRendererNodeProps>): IRendererNode;
112
+ createShader(kind: string, props: IRendererShaderProps): IRendererShader;
113
+ createTexture(
114
+ kind: keyof lng.TextureMap,
115
+ props: IRendererTextureProps,
116
+ ): IRendererTexture;
117
+ }
118
+
119
+ export let renderer: IRendererMain;
120
+
121
+ export const getRenderer = () => renderer;
122
+
123
+ export function startLightningRenderer(
124
+ options: lng.RendererMainSettings,
125
+ rootId: string | HTMLElement = 'app',
126
+ ) {
127
+ renderer = DOM_RENDERING
128
+ ? new DOMRendererMain(options, rootId)
129
+ : (new lng.RendererMain(options, rootId) as any as IRendererMain);
130
+ return renderer;
131
+ }
132
+ export function loadFonts(fonts: any[]) {
133
+ for (const font of fonts) {
134
+ // WebGL — SDF
135
+ if (
136
+ renderer.stage.renderer.mode === 'webgl' &&
137
+ 'type' in font &&
138
+ (font.type === 'msdf' || font.type === 'ssdf')
139
+ ) {
140
+ renderer.stage.loadFont('sdf', font);
141
+ }
142
+ // Canvas — Web
143
+ else if ('fontUrl' in font && renderer.stage.renderer.mode !== 'webgl') {
144
+ renderer.stage.loadFont('canvas', font);
145
+ }
146
+ }
147
+ }
@@ -0,0 +1,6 @@
1
+ export const NodeType = {
2
+ Element: 'element',
3
+ TextNode: 'textNode',
4
+ Text: 'text',
5
+ } as const;
6
+ export type NodeTypes = (typeof NodeType)[keyof typeof NodeType];