@lightningtv/solid 3.0.0-9 → 3.0.0

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 (224) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +6 -0
  3. package/dist/jsx-runtime.d.ts +14 -0
  4. package/dist/src/activeElement.d.ts +1 -1
  5. package/dist/src/core/animation.d.ts +35 -0
  6. package/dist/src/core/animation.js +119 -0
  7. package/dist/src/core/animation.js.map +1 -0
  8. package/dist/src/core/config.d.ts +49 -0
  9. package/dist/src/core/config.js +33 -0
  10. package/dist/src/core/config.js.map +1 -0
  11. package/dist/src/core/domRenderer.d.ts +115 -0
  12. package/dist/src/core/domRenderer.js +1152 -0
  13. package/dist/src/core/domRenderer.js.map +1 -0
  14. package/dist/src/core/elementNode.d.ts +463 -0
  15. package/dist/src/core/elementNode.js +833 -0
  16. package/dist/src/core/elementNode.js.map +1 -0
  17. package/dist/src/core/flex.d.ts +2 -0
  18. package/dist/src/core/flex.js +243 -0
  19. package/dist/src/core/flex.js.map +1 -0
  20. package/dist/src/core/focusKeyTypes.d.ts +42 -0
  21. package/dist/src/core/focusKeyTypes.js +2 -0
  22. package/dist/src/core/focusKeyTypes.js.map +1 -0
  23. package/dist/src/core/focusManager.d.ts +13 -0
  24. package/dist/src/core/focusManager.js +276 -0
  25. package/dist/src/core/focusManager.js.map +1 -0
  26. package/dist/src/core/index.d.ts +12 -0
  27. package/dist/src/core/index.js +12 -0
  28. package/dist/src/core/index.js.map +1 -0
  29. package/dist/src/core/intrinsicTypes.d.ts +90 -0
  30. package/dist/src/core/intrinsicTypes.js +2 -0
  31. package/dist/src/core/intrinsicTypes.js.map +1 -0
  32. package/dist/src/core/lightningInit.d.ts +89 -0
  33. package/dist/src/core/lightningInit.js +26 -0
  34. package/dist/src/core/lightningInit.js.map +1 -0
  35. package/dist/src/core/nodeTypes.d.ts +6 -0
  36. package/dist/src/core/nodeTypes.js +6 -0
  37. package/dist/src/core/nodeTypes.js.map +1 -0
  38. package/dist/src/core/shaders.d.ts +51 -0
  39. package/dist/src/core/shaders.js +446 -0
  40. package/dist/src/core/shaders.js.map +1 -0
  41. package/dist/src/core/states.d.ts +12 -0
  42. package/dist/src/core/states.js +84 -0
  43. package/dist/src/core/states.js.map +1 -0
  44. package/dist/src/core/utils.d.ts +39 -0
  45. package/dist/src/core/utils.js +164 -0
  46. package/dist/src/core/utils.js.map +1 -0
  47. package/dist/src/devtools/index.d.ts +1 -1
  48. package/dist/src/devtools/index.js +1 -1
  49. package/dist/src/devtools/index.js.map +1 -1
  50. package/dist/src/index.d.ts +3 -3
  51. package/dist/src/index.js +1 -1
  52. package/dist/src/index.js.map +1 -1
  53. package/dist/src/primitives/Column.jsx +9 -10
  54. package/dist/src/primitives/Column.jsx.map +1 -1
  55. package/dist/src/primitives/FPSCounter.jsx +15 -2
  56. package/dist/src/primitives/FPSCounter.jsx.map +1 -1
  57. package/dist/src/primitives/Image.d.ts +8 -0
  58. package/dist/src/primitives/Image.jsx +24 -0
  59. package/dist/src/primitives/Image.jsx.map +1 -0
  60. package/dist/src/primitives/KeepAlive.d.ts +30 -0
  61. package/dist/src/primitives/KeepAlive.jsx +77 -0
  62. package/dist/src/primitives/KeepAlive.jsx.map +1 -0
  63. package/dist/src/primitives/Lazy.d.ts +8 -7
  64. package/dist/src/primitives/Lazy.jsx +52 -20
  65. package/dist/src/primitives/Lazy.jsx.map +1 -1
  66. package/dist/src/primitives/Preserve.d.ts +4 -0
  67. package/dist/src/primitives/Preserve.jsx +11 -0
  68. package/dist/src/primitives/Preserve.jsx.map +1 -0
  69. package/dist/src/primitives/Row.jsx +9 -10
  70. package/dist/src/primitives/Row.jsx.map +1 -1
  71. package/dist/src/primitives/Suspense.d.ts +22 -0
  72. package/dist/src/primitives/Suspense.jsx +33 -0
  73. package/dist/src/primitives/Suspense.jsx.map +1 -0
  74. package/dist/src/primitives/Virtual.d.ts +18 -0
  75. package/dist/src/primitives/Virtual.jsx +443 -0
  76. package/dist/src/primitives/Virtual.jsx.map +1 -0
  77. package/dist/src/primitives/VirtualGrid.d.ts +13 -0
  78. package/dist/src/primitives/VirtualGrid.jsx +160 -0
  79. package/dist/src/primitives/VirtualGrid.jsx.map +1 -0
  80. package/dist/src/primitives/Visible.d.ts +0 -1
  81. package/dist/src/primitives/Visible.jsx +1 -1
  82. package/dist/src/primitives/Visible.jsx.map +1 -1
  83. package/dist/src/primitives/announcer/announcer.d.ts +1 -0
  84. package/dist/src/primitives/announcer/announcer.js +4 -3
  85. package/dist/src/primitives/announcer/announcer.js.map +1 -1
  86. package/dist/src/primitives/announcer/speech.d.ts +1 -1
  87. package/dist/src/primitives/announcer/speech.js +98 -8
  88. package/dist/src/primitives/announcer/speech.js.map +1 -1
  89. package/dist/src/primitives/createFocusStack.d.ts +4 -4
  90. package/dist/src/primitives/createFocusStack.jsx +15 -6
  91. package/dist/src/primitives/createFocusStack.jsx.map +1 -1
  92. package/dist/src/primitives/createTag.d.ts +8 -0
  93. package/dist/src/primitives/createTag.jsx +20 -0
  94. package/dist/src/primitives/createTag.jsx.map +1 -0
  95. package/dist/src/primitives/index.d.ts +12 -4
  96. package/dist/src/primitives/index.js +11 -3
  97. package/dist/src/primitives/index.js.map +1 -1
  98. package/dist/src/primitives/types.d.ts +3 -2
  99. package/dist/src/primitives/useFocusManager.d.ts +2 -2
  100. package/dist/src/primitives/useFocusManager.js +2 -2
  101. package/dist/src/primitives/useFocusManager.js.map +1 -1
  102. package/dist/src/primitives/useMouse.d.ts +18 -2
  103. package/dist/src/primitives/useMouse.js +171 -47
  104. package/dist/src/primitives/useMouse.js.map +1 -1
  105. package/dist/src/primitives/utils/createBlurredImage.d.ts +56 -0
  106. package/dist/src/primitives/utils/createBlurredImage.js +223 -0
  107. package/dist/src/primitives/utils/createBlurredImage.js.map +1 -0
  108. package/dist/src/primitives/utils/createSpriteMap.d.ts +2 -2
  109. package/dist/src/primitives/utils/createSpriteMap.js +3 -3
  110. package/dist/src/primitives/utils/createSpriteMap.js.map +1 -1
  111. package/dist/src/primitives/utils/handleNavigation.d.ts +79 -5
  112. package/dist/src/primitives/utils/handleNavigation.js +241 -69
  113. package/dist/src/primitives/utils/handleNavigation.js.map +1 -1
  114. package/dist/src/primitives/utils/withScrolling.d.ts +12 -2
  115. package/dist/src/primitives/utils/withScrolling.js +59 -7
  116. package/dist/src/primitives/utils/withScrolling.js.map +1 -1
  117. package/dist/src/render.d.ts +5 -4
  118. package/dist/src/render.js +5 -1
  119. package/dist/src/render.js.map +1 -1
  120. package/dist/src/shaders/Rounded.d.ts +7 -0
  121. package/dist/src/shaders/Rounded.js +88 -0
  122. package/dist/src/shaders/Rounded.js.map +1 -0
  123. package/dist/src/shaders/RoundedWithBorder.d.ts +3 -0
  124. package/dist/src/shaders/RoundedWithBorder.js +217 -0
  125. package/dist/src/shaders/RoundedWithBorder.js.map +1 -0
  126. package/dist/src/shaders/index.d.ts +4 -0
  127. package/dist/src/shaders/index.js +5 -0
  128. package/dist/src/shaders/index.js.map +1 -0
  129. package/dist/src/shaders/templates/RoundedTemplate.d.ts +12 -0
  130. package/dist/src/shaders/templates/RoundedTemplate.js +48 -0
  131. package/dist/src/shaders/templates/RoundedTemplate.js.map +1 -0
  132. package/dist/src/shaders/templates/RoundedWithBorderTemplate.d.ts +20 -0
  133. package/dist/src/shaders/templates/RoundedWithBorderTemplate.js +93 -0
  134. package/dist/src/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
  135. package/dist/src/shaders/utils.d.ts +3 -0
  136. package/dist/src/shaders/utils.js +31 -0
  137. package/dist/src/shaders/utils.js.map +1 -0
  138. package/dist/src/solidOpts.d.ts +1 -7
  139. package/dist/src/solidOpts.js +9 -1
  140. package/dist/src/solidOpts.js.map +1 -1
  141. package/dist/src/types.d.ts +1 -13
  142. package/dist/src/utils.d.ts +3 -1
  143. package/dist/src/utils.js +9 -1
  144. package/dist/src/utils.js.map +1 -1
  145. package/dist/tsconfig.tsbuildinfo +1 -1
  146. package/jsx-runtime.d.ts +1 -1
  147. package/package.json +28 -16
  148. package/src/activeElement.ts +1 -1
  149. package/src/core/animation.ts +185 -0
  150. package/src/core/config.ts +89 -0
  151. package/src/core/domRenderer.ts +1300 -0
  152. package/src/core/elementNode.ts +1458 -0
  153. package/src/core/flex.ts +284 -0
  154. package/src/core/focusKeyTypes.ts +90 -0
  155. package/src/core/focusManager.ts +381 -0
  156. package/src/core/index.ts +13 -0
  157. package/src/core/intrinsicTypes.ts +199 -0
  158. package/src/core/lightningInit.ts +147 -0
  159. package/src/core/nodeTypes.ts +6 -0
  160. package/src/core/shaders.ts +567 -0
  161. package/src/core/states.ts +91 -0
  162. package/src/core/utils.ts +222 -0
  163. package/src/devtools/index.ts +1 -1
  164. package/src/index.ts +3 -3
  165. package/src/primitives/Column.tsx +10 -12
  166. package/src/primitives/FPSCounter.tsx +16 -2
  167. package/src/primitives/Image.tsx +36 -0
  168. package/src/primitives/KeepAlive.tsx +124 -0
  169. package/src/primitives/Lazy.tsx +66 -37
  170. package/src/primitives/Preserve.tsx +18 -0
  171. package/src/primitives/Row.tsx +13 -14
  172. package/src/primitives/Suspense.tsx +39 -0
  173. package/src/primitives/Virtual.tsx +486 -0
  174. package/src/primitives/VirtualGrid.tsx +220 -0
  175. package/src/primitives/Visible.tsx +1 -2
  176. package/src/primitives/announcer/announcer.ts +10 -3
  177. package/src/primitives/announcer/speech.ts +113 -6
  178. package/src/primitives/createFocusStack.tsx +18 -7
  179. package/src/primitives/createTag.tsx +33 -0
  180. package/src/primitives/index.ts +12 -4
  181. package/src/primitives/types.ts +3 -2
  182. package/src/primitives/useFocusManager.ts +3 -3
  183. package/src/primitives/useMouse.ts +306 -67
  184. package/src/primitives/utils/createBlurredImage.ts +366 -0
  185. package/src/primitives/utils/createSpriteMap.ts +8 -6
  186. package/src/primitives/utils/handleNavigation.ts +300 -84
  187. package/src/primitives/utils/withScrolling.ts +76 -18
  188. package/src/render.ts +7 -3
  189. package/src/shaders/Rounded.ts +100 -0
  190. package/src/shaders/RoundedWithBorder.ts +245 -0
  191. package/src/shaders/index.ts +4 -0
  192. package/src/shaders/templates/RoundedTemplate.ts +57 -0
  193. package/src/shaders/templates/RoundedWithBorderTemplate.ts +110 -0
  194. package/src/shaders/utils.ts +44 -0
  195. package/src/solidOpts.ts +9 -7
  196. package/src/types.ts +1 -15
  197. package/src/utils.ts +11 -1
  198. package/dist/src/client.d.ts +0 -1
  199. package/dist/src/client.js +0 -2
  200. package/dist/src/client.js.map +0 -1
  201. package/dist/src/core.d.ts +0 -1
  202. package/dist/src/core.js +0 -3
  203. package/dist/src/core.js.map +0 -1
  204. package/dist/src/jsx-runtime.d.ts +0 -10
  205. package/dist/src/jsx-runtime.js +0 -2
  206. package/dist/src/jsx-runtime.js.map +0 -1
  207. package/dist/src/primitives/Infinite.d.ts +0 -15
  208. package/dist/src/primitives/Infinite.jsx +0 -59
  209. package/dist/src/primitives/Infinite.jsx.map +0 -1
  210. package/dist/src/primitives/LazyUp.d.ts +0 -11
  211. package/dist/src/primitives/LazyUp.jsx +0 -38
  212. package/dist/src/primitives/LazyUp.jsx.map +0 -1
  213. package/dist/src/primitives/sprite.d.ts +0 -9
  214. package/dist/src/primitives/sprite.js +0 -18
  215. package/dist/src/primitives/sprite.js.map +0 -1
  216. package/dist/src/primitives/utils/createFocusStack.d.ts +0 -24
  217. package/dist/src/primitives/utils/createFocusStack.js +0 -59
  218. package/dist/src/primitives/utils/createFocusStack.js.map +0 -1
  219. package/dist/src/primitives/utils/scrollToIndex.d.ts +0 -2
  220. package/dist/src/primitives/utils/scrollToIndex.js +0 -33
  221. package/dist/src/primitives/utils/scrollToIndex.js.map +0 -1
  222. package/dist/src/renderClient.d.ts +0 -21
  223. package/dist/src/renderClient.js +0 -64
  224. package/dist/src/renderClient.js.map +0 -1
@@ -1,16 +1,32 @@
1
- import { Index, createEffect, createMemo, createSignal, Show, untrack, } from 'solid-js'; // Dynamic removed
2
- import { scheduleTask, Dynamic } from '@lightningtv/solid'; // Dynamic removed from imports
3
- import { Row, Column } from '@lightningtv/solid/primitives';
1
+ import * as lng from '@lightningtv/solid';
2
+ import * as lngp from '@lightningtv/solid/primitives';
3
+ import * as s from 'solid-js';
4
4
  function createLazy(component, props, keyHandler) {
5
5
  // Need at least one item so it can be focused
6
- const [offset, setOffset] = createSignal(props.sync ? props.upCount : 1);
6
+ const [offset, setOffset] = s.createSignal(props.sync ? props.upCount : 0);
7
7
  let timeoutId = null;
8
- createEffect(() => setOffset(offset => Math.max(offset, (props.selected || 0) + 1)));
9
- if (!props.sync || props.eaglerLoad) {
10
- createEffect(() => {
8
+ let viewRef;
9
+ let itemLength = 0;
10
+ const buffer = s.createMemo(() => {
11
+ if (typeof props.buffer === 'number') {
12
+ return props.buffer;
13
+ }
14
+ const scroll = props.scroll || props.style?.scroll;
15
+ if (!scroll ||
16
+ scroll === 'auto' ||
17
+ scroll === 'always' ||
18
+ scroll === 'bounded')
19
+ return props.upCount + 1;
20
+ if (scroll === 'center')
21
+ return Math.ceil(props.upCount / 2) + 1;
22
+ return 2;
23
+ });
24
+ s.createRenderEffect(() => setOffset(offset => Math.max(offset, (props.selected || 0) + buffer())));
25
+ if (!props.sync || props.eagerLoad) {
26
+ s.createEffect(() => {
11
27
  if (props.each) {
12
28
  const loadItems = () => {
13
- let count = untrack(offset);
29
+ let count = s.untrack(offset);
14
30
  if (count < props.upCount) {
15
31
  setOffset(count + 1);
16
32
  timeoutId = setTimeout(loadItems, 16); // ~60fps
@@ -18,20 +34,38 @@ function createLazy(component, props, keyHandler) {
18
34
  }
19
35
  else if (props.eagerLoad) {
20
36
  const maxOffset = props.each ? props.each.length : 0;
21
- if (offset() >= maxOffset)
37
+ if (count >= maxOffset)
22
38
  return;
23
39
  setOffset((prev) => Math.min(prev + 1, maxOffset));
24
- scheduleTask(loadItems);
40
+ lng.scheduleTask(loadItems);
25
41
  }
26
42
  };
27
43
  loadItems();
28
44
  }
29
45
  });
30
46
  }
31
- const items = createMemo(() => (Array.isArray(props.each) ? props.each.slice(0, offset()) : []));
32
- const updateOffset = () => {
47
+ const items = s.createMemo(() => {
48
+ if (Array.isArray(props.each)) {
49
+ if (itemLength != props.each.length) {
50
+ itemLength = props.each.length;
51
+ if (viewRef && !viewRef.noRefocus && lng.hasFocus(viewRef)) {
52
+ queueMicrotask(viewRef.setFocus);
53
+ }
54
+ }
55
+ return props.each.slice(0, offset());
56
+ }
57
+ itemLength = 0;
58
+ return [];
59
+ });
60
+ function lazyScrollToIndex(index) {
61
+ setOffset(Math.max(index, 0) + buffer());
62
+ queueMicrotask(() => viewRef.scrollToIndex(index));
63
+ }
64
+ const updateOffset = (_event, container) => {
33
65
  const maxOffset = props.each ? props.each.length : 0;
34
- if (offset() >= maxOffset)
66
+ const selected = container.selected || 0;
67
+ const numChildren = container.children.length;
68
+ if (offset() >= maxOffset || selected < numChildren - buffer())
35
69
  return;
36
70
  if (!props.delay) {
37
71
  setOffset((prev) => Math.min(prev + 1, maxOffset));
@@ -48,16 +82,14 @@ function createLazy(component, props, keyHandler) {
48
82
  }, props.delay ?? 0);
49
83
  };
50
84
  const handler = keyHandler(updateOffset);
51
- return (<Show when={items()} fallback={props.fallback}>
52
- <Dynamic component={component} {...props} {...handler}>
53
- <Index each={items()} children={props.children}/>
54
- </Dynamic>
55
- </Show>);
85
+ return (<lng.Dynamic {...props} component={component} {...handler} lazyScrollToIndex={lazyScrollToIndex} ref={lngp.chainRefs(el => { viewRef = el; }, props.ref)}>
86
+ <s.Index each={items()} children={props.children}/>
87
+ </lng.Dynamic>);
56
88
  }
57
89
  export function LazyRow(props) {
58
- return createLazy(Row, props, (updateOffset) => ({ onRight: updateOffset }));
90
+ return createLazy(lngp.Row, props, (updateOffset) => ({ onRight: updateOffset }));
59
91
  }
60
92
  export function LazyColumn(props) {
61
- return createLazy(Column, props, (updateOffset) => ({ onDown: updateOffset }));
93
+ return createLazy(lngp.Column, props, (updateOffset) => ({ onDown: updateOffset }));
62
94
  }
63
95
  //# sourceMappingURL=Lazy.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"Lazy.jsx","sourceRoot":"","sources":["../../../src/primitives/Lazy.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,IAAI,EAGJ,OAAO,GAER,MAAM,UAAU,CAAC,CAAC,kBAAkB;AACrC,OAAO,EAAgB,YAAY,EAAkB,OAAO,EAAE,MAAM,oBAAoB,CAAC,CAAC,+BAA+B;AACzH,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAY5D,SAAS,UAAU,CACjB,SAAyB,EACzB,KAA8B,EAC9B,UAAoE;IAEpE,8CAA8C;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,YAAY,CAAS,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,IAAI,SAAS,GAAyC,IAAI,CAAC;IAE3D,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErF,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACpC,YAAY,CAAC,GAAG,EAAE;YAChB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,GAAG,EAAE;oBACrB,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC5B,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;wBAC1B,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBACrB,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;wBAChD,KAAK,EAAE,CAAC;oBACV,CAAC;yBAAM,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrD,IAAI,MAAM,EAAE,IAAI,SAAS;4BAAE,OAAO;wBAClC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;wBACnD,YAAY,CAAC,SAAS,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC,CAAC;gBACF,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAC7B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAChE,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,IAAI,SAAS;YAAE,OAAO;QAElC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,iDAAiD;YACjD,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YACnD,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAEzC,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC5C;MAAA,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAgB,OAAO,CAAC,CAChE;QAAA,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EACjD;MAAA,EAAE,OAAO,CACX;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CAA2B,KAAmB;IACnE,OAAO,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,UAAU,CAA2B,KAAmB;IACtE,OAAO,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"Lazy.jsx","sourceRoot":"","sources":["../../../src/primitives/Lazy.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import * as s from 'solid-js';
2
+ import * as lng from '@lightningtv/solid';
3
+ declare function Preserve(props: lng.NodeProps): s.JSX.Element;
4
+ export default Preserve;
@@ -0,0 +1,11 @@
1
+ import * as s from 'solid-js';
2
+ function Preserve(props) {
3
+ let view = <view {...props}/>;
4
+ view.preserve = true;
5
+ view.onRender ??= () => { view.hidden = false; };
6
+ view.onRemove ??= () => { view.hidden = true; };
7
+ s.onCleanup(() => { view.destroy(); });
8
+ return view;
9
+ }
10
+ export default Preserve;
11
+ //# sourceMappingURL=Preserve.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Preserve.jsx","sourceRoot":"","sources":["../../../src/primitives/Preserve.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAG7B,SAAS,QAAQ,CAAC,KAAoB;IAEpC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAA6B,CAAA;IAExD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAErB,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,GAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA,CAAA,CAAC,CAAA;IAC7C,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,GAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA,CAAA,CAAC,CAAA;IAE5C,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAE,IAAI,CAAC,OAAO,EAAE,CAAA,CAAA,CAAC,CAAC,CAAA;IAEnC,OAAO,IAA4B,CAAA;AACrC,CAAC;AAED,eAAe,QAAQ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { combineStyles } from '@lightningtv/solid';
2
2
  import { chainFunctions } from './utils/chainFunctions.js';
3
- import { handleNavigation, onGridFocus, } from './utils/handleNavigation.js';
4
- import { withScrolling } from './utils/withScrolling.js';
3
+ import { handleNavigation, navigableForwardFocus } from './utils/handleNavigation.js';
4
+ import { scrollRow } from './utils/withScrolling.js';
5
5
  const RowStyles = {
6
6
  display: 'flex',
7
7
  gap: 30,
@@ -12,18 +12,17 @@ const RowStyles = {
12
12
  },
13
13
  },
14
14
  };
15
- const onLeft = handleNavigation('left');
16
- const onRight = handleNavigation('right');
17
- const scroll = withScrolling(true);
18
15
  function scrollToIndex(index) {
19
16
  this.selected = index;
20
- scroll(index, this);
21
- this.setFocus();
17
+ scrollRow(index, this);
18
+ this.children[index]?.setFocus();
22
19
  }
20
+ const onLeft = handleNavigation('left');
21
+ const onRight = handleNavigation('right');
23
22
  export const Row = (props) => {
24
- return (<view {...props} selected={props.selected || 0} onLeft={/* @once */chainFunctions(props.onLeft, onLeft)} onRight={/* @once */chainFunctions(props.onRight, onRight)} forwardFocus={/* once */onGridFocus(props.onSelectedChanged)} scrollToIndex={scrollToIndex} onLayout={
23
+ return (<view {...props} selected={props.selected || 0} onLeft={/* @once */chainFunctions(props.onLeft, onLeft)} onRight={/* @once */chainFunctions(props.onRight, onRight)} forwardFocus={navigableForwardFocus} scrollToIndex={scrollToIndex} onLayout={
25
24
  /* @once */
26
- props.selected ? chainFunctions(props.onLayout, scroll) : props.onLayout} onSelectedChanged={
27
- /* @once */ chainFunctions(props.onSelectedChanged, props.scroll !== 'none' ? scroll : undefined)} style={/* @once */combineStyles(props.style, RowStyles)}/>);
25
+ props.selected ? chainFunctions(props.onLayout, scrollRow) : props.onLayout} onSelectedChanged={
26
+ /* @once */ chainFunctions(props.onSelectedChanged, props.scroll !== 'none' ? scrollRow : undefined)} style={/* @once */combineStyles(props.style, RowStyles)}/>);
28
27
  };
29
28
  //# sourceMappingURL=Row.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"Row.jsx","sourceRoot":"","sources":["../../../src/primitives/Row.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAA2C,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACL,gBAAgB,EAChB,WAAW,GACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,MAAM,SAAS,GAAe;IAC5B,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,EAAE;IACP,UAAU,EAAE;QACV,CAAC,EAAE;YACD,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,aAAa;SACtB;KACF;CACF,CAAC;AAEF,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACxC,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AAEnC,SAAS,aAAa,CAAoB,KAAa;IACrD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACtB,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAwB,CAAC,KAAK,EAAE,EAAE;IAChD,OAAO,CACL,CAAC,IAAI,CACH,IAAI,KAAK,CAAC,CACV,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAC9B,MAAM,CAAC,CAAC,WAAY,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CACzD,OAAO,CAAC,CAAC,WAAY,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAC5D,YAAY,CAAC,CAAC,UAAW,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAC9D,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7B,QAAQ,CAAC,CAAC;QACR,WAAW;QACX,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAClE,CAAC,CACD,iBAAiB,CAAC,CAAC;QACjB,WAAW,CAAC,cAAc,CACxB,KAAK,CAAC,iBAAiB,EACvB,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAEhD,CAAC,CACD,KAAK,CAAC,CAAC,WAAY,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EACzD,CACH,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Row.jsx","sourceRoot":"","sources":["../../../src/primitives/Row.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAqC,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,SAAS,GAAe;IAC5B,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,EAAE;IACP,UAAU,EAAE;QACV,CAAC,EAAE;YACD,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,aAAa;SACtB;KACF;CACF,CAAC;AAEF,SAAS,aAAa,CAAoB,KAAa;IACrD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACtB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACxC,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAE1C,MAAM,CAAC,MAAM,GAAG,GAAwB,CAAC,KAAK,EAAE,EAAE;IAChD,OAAO,CACL,CAAC,IAAI,CACH,IAAI,KAAK,CAAC,CACV,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAC9B,MAAM,CAAC,CAAC,WAAY,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CACzD,OAAO,CAAC,CAAC,WAAY,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAC5D,YAAY,CAAC,CAAC,qBAAqB,CAAC,CACpC,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7B,QAAQ,CAAC,CAAC;QACR,WAAW;QACX,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QACrE,CAAC,CACD,iBAAiB,CAAC,CAAC;QACjB,WAAW,CAAC,cAAc,CAC1B,KAAK,CAAC,iBAAiB,EACvB,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAEjD,CAAC,CACD,KAAK,CAAC,CAAC,WAAY,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EACzD,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import * as s from 'solid-js';
2
+ /**
3
+ * Tracks all resources inside a component and renders a fallback until they are all resolved.
4
+ *
5
+ * ```tsx
6
+ * const [data] = createResource(async () => ...);
7
+ *
8
+ * <Suspense fallback={<LoadingIndicator />}>
9
+ * <view>
10
+ * <text>{data()}</text>
11
+ * </view>
12
+ * </Suspense>
13
+ * ```
14
+ *
15
+ * This is a modified version of the SolidJS Suspense component that works with Lightning.
16
+ *
17
+ * @see https://docs.solidjs.com/reference/components/suspense
18
+ */
19
+ export declare function Suspense(props: {
20
+ fallback?: s.JSX.Element;
21
+ children: s.JSX.Element;
22
+ }): s.JSX.Element;
@@ -0,0 +1,33 @@
1
+ import * as s from 'solid-js';
2
+ /**
3
+ * Tracks all resources inside a component and renders a fallback until they are all resolved.
4
+ *
5
+ * ```tsx
6
+ * const [data] = createResource(async () => ...);
7
+ *
8
+ * <Suspense fallback={<LoadingIndicator />}>
9
+ * <view>
10
+ * <text>{data()}</text>
11
+ * </view>
12
+ * </Suspense>
13
+ * ```
14
+ *
15
+ * This is a modified version of the SolidJS Suspense component that works with Lightning.
16
+ *
17
+ * @see https://docs.solidjs.com/reference/components/suspense
18
+ */
19
+ export function Suspense(props) {
20
+ let children;
21
+ let suspense = s.Suspense({
22
+ get children() {
23
+ return [children = s.children(() => props.children)];
24
+ },
25
+ });
26
+ return <>
27
+ {suspense() ?? props.fallback}
28
+ <view hidden forwardFocus={0}>
29
+ {suspense() ? null : children}
30
+ </view>
31
+ </>;
32
+ }
33
+ //# sourceMappingURL=Suspense.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Suspense.jsx","sourceRoot":"","sources":["../../../src/primitives/Suspense.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,QAAQ,CAAC,KAGxB;IAEC,IAAI,QAAuB,CAAC;IAE5B,IAAI,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;QACxB,IAAI,QAAQ;YACV,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAQ,CAAC,CAAC;QAC9D,CAAC;KACF,CAA+B,CAAC;IAEjC,OAAO,EACL;IAAA,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,QAAQ,CAC7B;IAAA,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAC3B;MAAA,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAC/B;IAAA,EAAE,IAAI,CACR;EAAA,GAAG,CAAA;AACL,CAAC"}
@@ -0,0 +1,18 @@
1
+ import * as s from 'solid-js';
2
+ import * as lng from '@lightningtv/solid';
3
+ import * as lngp from '@lightningtv/solid/primitives';
4
+ export type VirtualProps<T> = lng.NewOmit<lngp.RowProps, 'children'> & {
5
+ each: readonly T[] | undefined | null | false;
6
+ displaySize: number;
7
+ bufferSize?: number;
8
+ wrap?: boolean;
9
+ scrollIndex?: number;
10
+ onEndReached?: () => void;
11
+ onEndReachedThreshold?: number;
12
+ debugInfo?: boolean;
13
+ factorScale?: boolean;
14
+ uniformSize?: boolean;
15
+ children: (item: s.Accessor<T>, index: s.Accessor<number>) => s.JSX.Element;
16
+ };
17
+ export declare function VirtualRow<T>(props: VirtualProps<T>): lng.JSX.Element;
18
+ export declare function VirtualColumn<T>(props: VirtualProps<T>): lng.JSX.Element;