@3driseai/3drise-viewer 0.1.40 → 0.1.42

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 (303) hide show
  1. package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
  2. package/dist/animationsV2/ClipsRuntime.js +9 -5
  3. package/dist/animationsV2/clipUtils.d.ts +9 -0
  4. package/dist/animationsV2/clipUtils.d.ts.map +1 -1
  5. package/dist/animationsV2/clipUtils.js +11 -2
  6. package/dist/animationsV2/normalize.d.ts.map +1 -1
  7. package/dist/animationsV2/normalize.js +2 -0
  8. package/dist/animationsV2/types.d.ts +4 -0
  9. package/dist/animationsV2/types.d.ts.map +1 -1
  10. package/dist/api/sceneHandle.d.ts +40 -3
  11. package/dist/api/sceneHandle.d.ts.map +1 -1
  12. package/dist/api/sceneHandle.js +40 -0
  13. package/dist/components/GalleryObject.d.ts +13 -0
  14. package/dist/components/GalleryObject.d.ts.map +1 -0
  15. package/dist/components/GalleryObject.js +46 -0
  16. package/dist/components/ImageObject.d.ts +9 -0
  17. package/dist/components/ImageObject.d.ts.map +1 -0
  18. package/dist/components/ImageObject.js +26 -0
  19. package/dist/components/ObjectNode.d.ts.map +1 -1
  20. package/dist/components/ObjectNode.js +11 -5
  21. package/dist/components/ProjectLoader.d.ts +2 -0
  22. package/dist/components/ProjectLoader.d.ts.map +1 -1
  23. package/dist/components/ProjectLoader.js +2 -2
  24. package/dist/components/SceneBuilder.d.ts +10 -0
  25. package/dist/components/SceneBuilder.d.ts.map +1 -1
  26. package/dist/components/SceneBuilder.js +3 -2
  27. package/dist/components/gallery/BasicCarouselGallery.d.ts +18 -0
  28. package/dist/components/gallery/BasicCarouselGallery.d.ts.map +1 -0
  29. package/dist/components/gallery/BasicCarouselGallery.js +9 -0
  30. package/dist/components/gallery/ContourLinesGallery.d.ts +18 -0
  31. package/dist/components/gallery/ContourLinesGallery.d.ts.map +1 -0
  32. package/dist/components/gallery/ContourLinesGallery.js +9 -0
  33. package/dist/components/gallery/DepthLayersGallery.d.ts +18 -0
  34. package/dist/components/gallery/DepthLayersGallery.d.ts.map +1 -0
  35. package/dist/components/gallery/DepthLayersGallery.js +9 -0
  36. package/dist/components/gallery/EngravingGallery.d.ts +18 -0
  37. package/dist/components/gallery/EngravingGallery.d.ts.map +1 -0
  38. package/dist/components/gallery/EngravingGallery.js +9 -0
  39. package/dist/components/gallery/FlowLinesGallery.d.ts +18 -0
  40. package/dist/components/gallery/FlowLinesGallery.d.ts.map +1 -0
  41. package/dist/components/gallery/FlowLinesGallery.js +9 -0
  42. package/dist/components/gallery/FoldGallery.d.ts +18 -0
  43. package/dist/components/gallery/FoldGallery.d.ts.map +1 -0
  44. package/dist/components/gallery/FoldGallery.js +9 -0
  45. package/dist/components/gallery/GlassPanesGallery.d.ts +18 -0
  46. package/dist/components/gallery/GlassPanesGallery.d.ts.map +1 -0
  47. package/dist/components/gallery/GlassPanesGallery.js +9 -0
  48. package/dist/components/gallery/HaloGallery.d.ts +18 -0
  49. package/dist/components/gallery/HaloGallery.d.ts.map +1 -0
  50. package/dist/components/gallery/HaloGallery.js +9 -0
  51. package/dist/components/gallery/LightThreadsGallery.d.ts +18 -0
  52. package/dist/components/gallery/LightThreadsGallery.d.ts.map +1 -0
  53. package/dist/components/gallery/LightThreadsGallery.js +9 -0
  54. package/dist/components/gallery/LoomGallery.d.ts +18 -0
  55. package/dist/components/gallery/LoomGallery.d.ts.map +1 -0
  56. package/dist/components/gallery/LoomGallery.js +9 -0
  57. package/dist/components/gallery/PaperLanternsGallery.d.ts +18 -0
  58. package/dist/components/gallery/PaperLanternsGallery.d.ts.map +1 -0
  59. package/dist/components/gallery/PaperLanternsGallery.js +9 -0
  60. package/dist/components/gallery/ParticleShiftGallery.d.ts +18 -0
  61. package/dist/components/gallery/ParticleShiftGallery.d.ts.map +1 -0
  62. package/dist/components/gallery/ParticleShiftGallery.js +9 -0
  63. package/dist/components/gallery/PinscreenGallery.d.ts +18 -0
  64. package/dist/components/gallery/PinscreenGallery.d.ts.map +1 -0
  65. package/dist/components/gallery/PinscreenGallery.js +9 -0
  66. package/dist/components/gallery/PopUpGallery.d.ts +18 -0
  67. package/dist/components/gallery/PopUpGallery.d.ts.map +1 -0
  68. package/dist/components/gallery/PopUpGallery.js +9 -0
  69. package/dist/components/gallery/PrismSplitGallery.d.ts +18 -0
  70. package/dist/components/gallery/PrismSplitGallery.d.ts.map +1 -0
  71. package/dist/components/gallery/PrismSplitGallery.js +9 -0
  72. package/dist/components/gallery/RidgelinesGallery.d.ts +18 -0
  73. package/dist/components/gallery/RidgelinesGallery.d.ts.map +1 -0
  74. package/dist/components/gallery/RidgelinesGallery.js +9 -0
  75. package/dist/components/gallery/ShadowBoxGallery.d.ts +18 -0
  76. package/dist/components/gallery/ShadowBoxGallery.d.ts.map +1 -0
  77. package/dist/components/gallery/ShadowBoxGallery.js +9 -0
  78. package/dist/components/gallery/SilkGallery.d.ts +18 -0
  79. package/dist/components/gallery/SilkGallery.d.ts.map +1 -0
  80. package/dist/components/gallery/SilkGallery.js +9 -0
  81. package/dist/components/gallery/SlatsGallery.d.ts +18 -0
  82. package/dist/components/gallery/SlatsGallery.d.ts.map +1 -0
  83. package/dist/components/gallery/SlatsGallery.js +9 -0
  84. package/dist/components/gallery/StrataGallery.d.ts +18 -0
  85. package/dist/components/gallery/StrataGallery.d.ts.map +1 -0
  86. package/dist/components/gallery/StrataGallery.js +9 -0
  87. package/dist/components/gallery/TerracesGallery.d.ts +18 -0
  88. package/dist/components/gallery/TerracesGallery.d.ts.map +1 -0
  89. package/dist/components/gallery/TerracesGallery.js +9 -0
  90. package/dist/components/gallery/WireReliefGallery.d.ts +18 -0
  91. package/dist/components/gallery/WireReliefGallery.d.ts.map +1 -0
  92. package/dist/components/gallery/WireReliefGallery.js +9 -0
  93. package/dist/components/gallery/index.d.ts +46 -0
  94. package/dist/components/gallery/index.d.ts.map +1 -0
  95. package/dist/components/gallery/index.js +22 -0
  96. package/dist/components/gallery/kit/GalleryVariant.d.ts +68 -0
  97. package/dist/components/gallery/kit/GalleryVariant.d.ts.map +1 -0
  98. package/dist/components/gallery/kit/GalleryVariant.js +231 -0
  99. package/dist/components/gallery/kit/feeds.d.ts +7 -0
  100. package/dist/components/gallery/kit/feeds.d.ts.map +1 -0
  101. package/dist/components/gallery/kit/feeds.js +83 -0
  102. package/dist/components/gallery/kit/galleryKit.d.ts +118 -0
  103. package/dist/components/gallery/kit/galleryKit.d.ts.map +1 -0
  104. package/dist/components/gallery/kit/galleryKit.js +298 -0
  105. package/dist/components/gallery/kit/lookBase.d.ts +157 -0
  106. package/dist/components/gallery/kit/lookBase.d.ts.map +1 -0
  107. package/dist/components/gallery/kit/lookBase.js +211 -0
  108. package/dist/components/gallery/kit/pictures.d.ts +14 -0
  109. package/dist/components/gallery/kit/pictures.d.ts.map +1 -0
  110. package/dist/components/gallery/kit/pictures.js +81 -0
  111. package/dist/components/gallery/looks/basicCarousel.d.ts +177 -0
  112. package/dist/components/gallery/looks/basicCarousel.d.ts.map +1 -0
  113. package/dist/components/gallery/looks/basicCarousel.js +315 -0
  114. package/dist/components/gallery/looks/contourLines.d.ts +153 -0
  115. package/dist/components/gallery/looks/contourLines.d.ts.map +1 -0
  116. package/dist/components/gallery/looks/contourLines.js +91 -0
  117. package/dist/components/gallery/looks/depthLayers.d.ts +155 -0
  118. package/dist/components/gallery/looks/depthLayers.d.ts.map +1 -0
  119. package/dist/components/gallery/looks/depthLayers.js +87 -0
  120. package/dist/components/gallery/looks/engraving.d.ts +162 -0
  121. package/dist/components/gallery/looks/engraving.d.ts.map +1 -0
  122. package/dist/components/gallery/looks/engraving.js +96 -0
  123. package/dist/components/gallery/looks/flowLines.d.ts +180 -0
  124. package/dist/components/gallery/looks/flowLines.d.ts.map +1 -0
  125. package/dist/components/gallery/looks/flowLines.js +113 -0
  126. package/dist/components/gallery/looks/fold.d.ts +209 -0
  127. package/dist/components/gallery/looks/fold.d.ts.map +1 -0
  128. package/dist/components/gallery/looks/fold.js +155 -0
  129. package/dist/components/gallery/looks/glassPanes.d.ts +133 -0
  130. package/dist/components/gallery/looks/glassPanes.d.ts.map +1 -0
  131. package/dist/components/gallery/looks/glassPanes.js +208 -0
  132. package/dist/components/gallery/looks/halo.d.ts +100 -0
  133. package/dist/components/gallery/looks/halo.d.ts.map +1 -0
  134. package/dist/components/gallery/looks/halo.js +119 -0
  135. package/dist/components/gallery/looks/lightThreads.d.ts +199 -0
  136. package/dist/components/gallery/looks/lightThreads.d.ts.map +1 -0
  137. package/dist/components/gallery/looks/lightThreads.js +246 -0
  138. package/dist/components/gallery/looks/loom.d.ts +238 -0
  139. package/dist/components/gallery/looks/loom.d.ts.map +1 -0
  140. package/dist/components/gallery/looks/loom.js +256 -0
  141. package/dist/components/gallery/looks/paperLanterns.d.ts +181 -0
  142. package/dist/components/gallery/looks/paperLanterns.d.ts.map +1 -0
  143. package/dist/components/gallery/looks/paperLanterns.js +399 -0
  144. package/dist/components/gallery/looks/particleShift.d.ts +193 -0
  145. package/dist/components/gallery/looks/particleShift.d.ts.map +1 -0
  146. package/dist/components/gallery/looks/particleShift.js +282 -0
  147. package/dist/components/gallery/looks/pinscreen.d.ts +175 -0
  148. package/dist/components/gallery/looks/pinscreen.d.ts.map +1 -0
  149. package/dist/components/gallery/looks/pinscreen.js +96 -0
  150. package/dist/components/gallery/looks/popUp.d.ts +206 -0
  151. package/dist/components/gallery/looks/popUp.d.ts.map +1 -0
  152. package/dist/components/gallery/looks/popUp.js +132 -0
  153. package/dist/components/gallery/looks/prismSplit.d.ts +151 -0
  154. package/dist/components/gallery/looks/prismSplit.d.ts.map +1 -0
  155. package/dist/components/gallery/looks/prismSplit.js +84 -0
  156. package/dist/components/gallery/looks/ridgelines.d.ts +179 -0
  157. package/dist/components/gallery/looks/ridgelines.d.ts.map +1 -0
  158. package/dist/components/gallery/looks/ridgelines.js +111 -0
  159. package/dist/components/gallery/looks/shadowBox.d.ts +152 -0
  160. package/dist/components/gallery/looks/shadowBox.d.ts.map +1 -0
  161. package/dist/components/gallery/looks/shadowBox.js +82 -0
  162. package/dist/components/gallery/looks/silk.d.ts +140 -0
  163. package/dist/components/gallery/looks/silk.d.ts.map +1 -0
  164. package/dist/components/gallery/looks/silk.js +346 -0
  165. package/dist/components/gallery/looks/slats.d.ts +176 -0
  166. package/dist/components/gallery/looks/slats.d.ts.map +1 -0
  167. package/dist/components/gallery/looks/slats.js +93 -0
  168. package/dist/components/gallery/looks/strata.d.ts +172 -0
  169. package/dist/components/gallery/looks/strata.d.ts.map +1 -0
  170. package/dist/components/gallery/looks/strata.js +88 -0
  171. package/dist/components/gallery/looks/terraces.d.ts +168 -0
  172. package/dist/components/gallery/looks/terraces.d.ts.map +1 -0
  173. package/dist/components/gallery/looks/terraces.js +91 -0
  174. package/dist/components/gallery/looks/wireRelief.d.ts +153 -0
  175. package/dist/components/gallery/looks/wireRelief.d.ts.map +1 -0
  176. package/dist/components/gallery/looks/wireRelief.js +128 -0
  177. package/dist/components/image/ContourImage.d.ts +7 -0
  178. package/dist/components/image/ContourImage.d.ts.map +1 -0
  179. package/dist/components/image/ContourImage.js +6 -0
  180. package/dist/components/image/EngravingImage.d.ts +7 -0
  181. package/dist/components/image/EngravingImage.d.ts.map +1 -0
  182. package/dist/components/image/EngravingImage.js +6 -0
  183. package/dist/components/image/FrostImage.d.ts +7 -0
  184. package/dist/components/image/FrostImage.d.ts.map +1 -0
  185. package/dist/components/image/FrostImage.js +6 -0
  186. package/dist/components/image/LenticularImage.d.ts +7 -0
  187. package/dist/components/image/LenticularImage.d.ts.map +1 -0
  188. package/dist/components/image/LenticularImage.js +6 -0
  189. package/dist/components/image/PinscreenImage.d.ts +7 -0
  190. package/dist/components/image/PinscreenImage.d.ts.map +1 -0
  191. package/dist/components/image/PinscreenImage.js +6 -0
  192. package/dist/components/image/PrismImage.d.ts +7 -0
  193. package/dist/components/image/PrismImage.d.ts.map +1 -0
  194. package/dist/components/image/PrismImage.js +6 -0
  195. package/dist/components/image/ProjectorImage.d.ts +7 -0
  196. package/dist/components/image/ProjectorImage.d.ts.map +1 -0
  197. package/dist/components/image/ProjectorImage.js +6 -0
  198. package/dist/components/image/ReliefImage.d.ts +7 -0
  199. package/dist/components/image/ReliefImage.d.ts.map +1 -0
  200. package/dist/components/image/ReliefImage.js +6 -0
  201. package/dist/components/image/RollImage.d.ts +7 -0
  202. package/dist/components/image/RollImage.d.ts.map +1 -0
  203. package/dist/components/image/RollImage.js +6 -0
  204. package/dist/components/image/ShardsImage.d.ts +126 -0
  205. package/dist/components/image/ShardsImage.d.ts.map +1 -0
  206. package/dist/components/image/ShardsImage.js +470 -0
  207. package/dist/components/image/core/contour.d.ts +126 -0
  208. package/dist/components/image/core/contour.d.ts.map +1 -0
  209. package/dist/components/image/core/contour.js +123 -0
  210. package/dist/components/image/core/engraving.d.ts +135 -0
  211. package/dist/components/image/core/engraving.d.ts.map +1 -0
  212. package/dist/components/image/core/engraving.js +163 -0
  213. package/dist/components/image/core/frost.d.ts +126 -0
  214. package/dist/components/image/core/frost.d.ts.map +1 -0
  215. package/dist/components/image/core/frost.js +156 -0
  216. package/dist/components/image/core/imageCore.d.ts +110 -0
  217. package/dist/components/image/core/imageCore.d.ts.map +1 -0
  218. package/dist/components/image/core/imageCore.js +269 -0
  219. package/dist/components/image/core/lenticular.d.ts +129 -0
  220. package/dist/components/image/core/lenticular.d.ts.map +1 -0
  221. package/dist/components/image/core/lenticular.js +132 -0
  222. package/dist/components/image/core/pinscreen.d.ts +126 -0
  223. package/dist/components/image/core/pinscreen.d.ts.map +1 -0
  224. package/dist/components/image/core/pinscreen.js +147 -0
  225. package/dist/components/image/core/prism.d.ts +120 -0
  226. package/dist/components/image/core/prism.d.ts.map +1 -0
  227. package/dist/components/image/core/prism.js +164 -0
  228. package/dist/components/image/core/projector.d.ts +135 -0
  229. package/dist/components/image/core/projector.d.ts.map +1 -0
  230. package/dist/components/image/core/projector.js +225 -0
  231. package/dist/components/image/core/relief.d.ts +111 -0
  232. package/dist/components/image/core/relief.d.ts.map +1 -0
  233. package/dist/components/image/core/relief.js +94 -0
  234. package/dist/components/image/core/roll.d.ts +114 -0
  235. package/dist/components/image/core/roll.d.ts.map +1 -0
  236. package/dist/components/image/core/roll.js +116 -0
  237. package/dist/components/image/imageVariant.d.ts +46 -0
  238. package/dist/components/image/imageVariant.d.ts.map +1 -0
  239. package/dist/components/image/imageVariant.js +128 -0
  240. package/dist/components/image/index.d.ts +22 -0
  241. package/dist/components/image/index.d.ts.map +1 -0
  242. package/dist/components/image/index.js +10 -0
  243. package/dist/components/image/pictureCycle.d.ts +15 -0
  244. package/dist/components/image/pictureCycle.d.ts.map +1 -0
  245. package/dist/components/image/pictureCycle.js +82 -0
  246. package/dist/components/index.d.ts +4 -0
  247. package/dist/components/index.d.ts.map +1 -1
  248. package/dist/components/index.js +4 -0
  249. package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts +9 -7
  250. package/dist/components/volumetricClouds/VolumetricCloudsPass.d.ts.map +1 -1
  251. package/dist/components/volumetricClouds/VolumetricCloudsPass.js +39 -27
  252. package/dist/constants.d.ts.map +1 -1
  253. package/dist/constants.js +2 -0
  254. package/dist/galleryRuntime.d.ts +57 -0
  255. package/dist/galleryRuntime.d.ts.map +1 -0
  256. package/dist/galleryRuntime.js +105 -0
  257. package/dist/hooks/useConfigLive.d.ts +1 -1
  258. package/dist/hooks/useConfigLive.d.ts.map +1 -1
  259. package/dist/index.d.ts +4 -1
  260. package/dist/index.d.ts.map +1 -1
  261. package/dist/index.js +4 -0
  262. package/dist/keyPad/KeyPadControls.d.ts +16 -0
  263. package/dist/keyPad/KeyPadControls.d.ts.map +1 -0
  264. package/dist/keyPad/KeyPadControls.js +176 -0
  265. package/dist/keyPad/index.d.ts +16 -0
  266. package/dist/keyPad/index.d.ts.map +1 -0
  267. package/dist/keyPad/index.js +8 -0
  268. package/dist/keyPad/keyBindings.d.ts +43 -0
  269. package/dist/keyPad/keyBindings.d.ts.map +1 -0
  270. package/dist/keyPad/keyBindings.js +92 -0
  271. package/dist/keyPad/keyPadAnimation.d.ts +28 -0
  272. package/dist/keyPad/keyPadAnimation.d.ts.map +1 -0
  273. package/dist/keyPad/keyPadAnimation.js +131 -0
  274. package/dist/keyPad/keyPadMotion.d.ts +68 -0
  275. package/dist/keyPad/keyPadMotion.d.ts.map +1 -0
  276. package/dist/keyPad/keyPadMotion.js +283 -0
  277. package/dist/keyPad/keyPadStore.d.ts +25 -0
  278. package/dist/keyPad/keyPadStore.d.ts.map +1 -0
  279. package/dist/keyPad/keyPadStore.js +63 -0
  280. package/dist/keyPad/types.d.ts +23 -0
  281. package/dist/keyPad/types.d.ts.map +1 -0
  282. package/dist/keyPad/types.js +9 -0
  283. package/dist/operations/catalogue/visibility.d.ts.map +1 -1
  284. package/dist/operations/catalogue/visibility.js +23 -1
  285. package/dist/shaders/clouds/CloudResolveMaterial.d.ts +2 -1
  286. package/dist/shaders/clouds/CloudResolveMaterial.d.ts.map +1 -1
  287. package/dist/shaders/clouds/CloudResolveMaterial.js +37 -12
  288. package/dist/shaders/clouds/CloudVolumeMaterial.d.ts +4 -0
  289. package/dist/shaders/clouds/CloudVolumeMaterial.d.ts.map +1 -1
  290. package/dist/shaders/clouds/CloudVolumeMaterial.js +15 -3
  291. package/dist/triggers/kinds/gallery.d.ts +2 -0
  292. package/dist/triggers/kinds/gallery.d.ts.map +1 -0
  293. package/dist/triggers/kinds/gallery.js +39 -0
  294. package/dist/triggers/kinds/index.d.ts +1 -0
  295. package/dist/triggers/kinds/index.d.ts.map +1 -1
  296. package/dist/triggers/kinds/index.js +1 -0
  297. package/dist/ui/UiLayers.d.ts +17 -1
  298. package/dist/ui/UiLayers.d.ts.map +1 -1
  299. package/dist/ui/UiLayers.js +76 -3
  300. package/dist/ui/index.d.ts +2 -2
  301. package/dist/ui/index.d.ts.map +1 -1
  302. package/dist/ui/index.js +1 -1
  303. package/package.json +2 -2
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { AnimationOptions, MouseMoveDomain, ShadowBoxGalleryConfig } from '@3driseai/3drise-core';
3
+ import type { ObjectReadyProps } from '../../types/objectReady';
4
+ export interface ShadowBoxGalleryProps extends ObjectReadyProps {
5
+ config: ShadowBoxGalleryConfig;
6
+ /** Scene object id: the live-edit handle and the gallery's runtime entry are found by it. */
7
+ id?: string;
8
+ /** Keyframes on the config knobs (animations.gallery.animations). */
9
+ keyframes?: AnimationOptions[];
10
+ /** Pointer bindings on the config knobs (mouseMove.gallery). */
11
+ mouseMove?: MouseMoveDomain;
12
+ }
13
+ /**
14
+ * Pictures as cut-paper layers in a shadow box, lit by the scene so each sheet casts a real soft shadow on the one behind: inactive ones are pressed flat and grey, the active one opens into depth in full colour. Use for editorial, craft, kids and storytelling showcases.
15
+ */
16
+ declare const ShadowBoxGallery: React.FC<ShadowBoxGalleryProps>;
17
+ export default ShadowBoxGallery;
18
+ //# sourceMappingURL=ShadowBoxGallery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShadowBoxGallery.d.ts","sourceRoot":"","sources":["../../../src/components/gallery/ShadowBoxGallery.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAShE,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC3D,MAAM,EAAE,sBAAsB,CAAC;IAC/B,6FAA6F;IAC7F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,gEAAgE;IAChE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAGrD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DEFAULT_GALLERY_OBJECTS, GALLERY_OBJECTS_ANIMATABLE } from '@3driseai/3drise-core';
3
+ import GalleryVariant from './kit/GalleryVariant.js';
4
+ import * as LOOK from './looks/shadowBox.js';
5
+ /**
6
+ * Pictures as cut-paper layers in a shadow box, lit by the scene so each sheet casts a real soft shadow on the one behind: inactive ones are pressed flat and grey, the active one opens into depth in full colour. Use for editorial, craft, kids and storytelling showcases.
7
+ */
8
+ const ShadowBoxGallery = ({ config, ...rest }) => (_jsx(GalleryVariant, { look: LOOK, defaults: DEFAULT_GALLERY_OBJECTS.shadowBox, animatable: GALLERY_OBJECTS_ANIMATABLE.shadowBox, config: config, ...rest }));
9
+ export default ShadowBoxGallery;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { AnimationOptions, MouseMoveDomain, SilkGalleryConfig } from '@3driseai/3drise-core';
3
+ import type { ObjectReadyProps } from '../../types/objectReady';
4
+ export interface SilkGalleryProps extends ObjectReadyProps {
5
+ config: SilkGalleryConfig;
6
+ /** Scene object id: the live-edit handle and the gallery's runtime entry are found by it. */
7
+ id?: string;
8
+ /** Keyframes on the config knobs (animations.gallery.animations). */
9
+ keyframes?: AnimationOptions[];
10
+ /** Pointer bindings on the config knobs (mouseMove.gallery). */
11
+ mouseMove?: MouseMoveDomain;
12
+ }
13
+ /**
14
+ * Pictures printed on sheets of silk, each a cloth simulation hanging in a light breeze and lit by the scene with a soft sheen; the cursor is a breath of air on the cloth. Use for fashion, textiles and soft, calm showcases.
15
+ */
16
+ declare const SilkGallery: React.FC<SilkGalleryProps>;
17
+ export default SilkGallery;
18
+ //# sourceMappingURL=SilkGallery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SilkGallery.d.ts","sourceRoot":"","sources":["../../../src/components/gallery/SilkGallery.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAShE,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACtD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,6FAA6F;IAC7F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,gEAAgE;IAChE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAG3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DEFAULT_GALLERY_OBJECTS, GALLERY_OBJECTS_ANIMATABLE } from '@3driseai/3drise-core';
3
+ import GalleryVariant from './kit/GalleryVariant.js';
4
+ import * as LOOK from './looks/silk.js';
5
+ /**
6
+ * Pictures printed on sheets of silk, each a cloth simulation hanging in a light breeze and lit by the scene with a soft sheen; the cursor is a breath of air on the cloth. Use for fashion, textiles and soft, calm showcases.
7
+ */
8
+ const SilkGallery = ({ config, ...rest }) => (_jsx(GalleryVariant, { look: LOOK, defaults: DEFAULT_GALLERY_OBJECTS.silk, animatable: GALLERY_OBJECTS_ANIMATABLE.silk, config: config, ...rest }));
9
+ export default SilkGallery;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { AnimationOptions, MouseMoveDomain, SlatsGalleryConfig } from '@3driseai/3drise-core';
3
+ import type { ObjectReadyProps } from '../../types/objectReady';
4
+ export interface SlatsGalleryProps extends ObjectReadyProps {
5
+ config: SlatsGalleryConfig;
6
+ /** Scene object id: the live-edit handle and the gallery's runtime entry are found by it. */
7
+ id?: string;
8
+ /** Keyframes on the config knobs (animations.gallery.animations). */
9
+ keyframes?: AnimationOptions[];
10
+ /** Pointer bindings on the config knobs (mouseMove.gallery). */
11
+ mouseMove?: MouseMoveDomain;
12
+ }
13
+ /**
14
+ * Pictures cut into thin vertical slats lit by the scene: inactive ones stand nearly edge-on as fine grey lines, the active one turns its slats to face you in a soft wave, closing into the picture; the cursor turns the slats near it. Use for architecture, interiors and product showcases.
15
+ */
16
+ declare const SlatsGallery: React.FC<SlatsGalleryProps>;
17
+ export default SlatsGallery;
18
+ //# sourceMappingURL=SlatsGallery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlatsGallery.d.ts","sourceRoot":"","sources":["../../../src/components/gallery/SlatsGallery.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACnG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAShE,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACvD,MAAM,EAAE,kBAAkB,CAAC;IAC3B,6FAA6F;IAC7F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,gEAAgE;IAChE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAG7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DEFAULT_GALLERY_OBJECTS, GALLERY_OBJECTS_ANIMATABLE } from '@3driseai/3drise-core';
3
+ import GalleryVariant from './kit/GalleryVariant.js';
4
+ import * as LOOK from './looks/slats.js';
5
+ /**
6
+ * Pictures cut into thin vertical slats lit by the scene: inactive ones stand nearly edge-on as fine grey lines, the active one turns its slats to face you in a soft wave, closing into the picture; the cursor turns the slats near it. Use for architecture, interiors and product showcases.
7
+ */
8
+ const SlatsGallery = ({ config, ...rest }) => (_jsx(GalleryVariant, { look: LOOK, defaults: DEFAULT_GALLERY_OBJECTS.slats, animatable: GALLERY_OBJECTS_ANIMATABLE.slats, config: config, ...rest }));
9
+ export default SlatsGallery;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { AnimationOptions, MouseMoveDomain, StrataGalleryConfig } from '@3driseai/3drise-core';
3
+ import type { ObjectReadyProps } from '../../types/objectReady';
4
+ export interface StrataGalleryProps extends ObjectReadyProps {
5
+ config: StrataGalleryConfig;
6
+ /** Scene object id: the live-edit handle and the gallery's runtime entry are found by it. */
7
+ id?: string;
8
+ /** Keyframes on the config knobs (animations.gallery.animations). */
9
+ keyframes?: AnimationOptions[];
10
+ /** Pointer bindings on the config knobs (mouseMove.gallery). */
11
+ mouseMove?: MouseMoveDomain;
12
+ }
13
+ /**
14
+ * Pictures as stacks of thin horizontal plates lit by the scene, each plate’s front following the picture’s brightness like a laser-cut relief: inactive ones are a flat grey stack, the active one slides forward into relief in full colour; the cursor pushes plates back. Use for architecture, product, interiors and craft showcases.
15
+ */
16
+ declare const StrataGallery: React.FC<StrataGalleryProps>;
17
+ export default StrataGallery;
18
+ //# sourceMappingURL=StrataGallery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StrataGallery.d.ts","sourceRoot":"","sources":["../../../src/components/gallery/StrataGallery.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAShE,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IACxD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,6FAA6F;IAC7F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,gEAAgE;IAChE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAG/C,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DEFAULT_GALLERY_OBJECTS, GALLERY_OBJECTS_ANIMATABLE } from '@3driseai/3drise-core';
3
+ import GalleryVariant from './kit/GalleryVariant.js';
4
+ import * as LOOK from './looks/strata.js';
5
+ /**
6
+ * Pictures as stacks of thin horizontal plates lit by the scene, each plate’s front following the picture’s brightness like a laser-cut relief: inactive ones are a flat grey stack, the active one slides forward into relief in full colour; the cursor pushes plates back. Use for architecture, product, interiors and craft showcases.
7
+ */
8
+ const StrataGallery = ({ config, ...rest }) => (_jsx(GalleryVariant, { look: LOOK, defaults: DEFAULT_GALLERY_OBJECTS.strata, animatable: GALLERY_OBJECTS_ANIMATABLE.strata, config: config, ...rest }));
9
+ export default StrataGallery;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { AnimationOptions, MouseMoveDomain, TerracesGalleryConfig } from '@3driseai/3drise-core';
3
+ import type { ObjectReadyProps } from '../../types/objectReady';
4
+ export interface TerracesGalleryProps extends ObjectReadyProps {
5
+ config: TerracesGalleryConfig;
6
+ /** Scene object id: the live-edit handle and the gallery's runtime entry are found by it. */
7
+ id?: string;
8
+ /** Keyframes on the config knobs (animations.gallery.animations). */
9
+ keyframes?: AnimationOptions[];
10
+ /** Pointer bindings on the config knobs (mouseMove.gallery). */
11
+ mouseMove?: MouseMoveDomain;
12
+ }
13
+ /**
14
+ * Pictures as topographic models of stacked card lit by the scene: inactive ones are a flat grey contour map, the active one rises into terraces of its own brightness in full colour behind a soft wave; the cursor lifts the terraces higher. Use for architecture, maps, data and craft showcases.
15
+ */
16
+ declare const TerracesGallery: React.FC<TerracesGalleryProps>;
17
+ export default TerracesGallery;
18
+ //# sourceMappingURL=TerracesGallery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerracesGallery.d.ts","sourceRoot":"","sources":["../../../src/components/gallery/TerracesGallery.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAShE,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,MAAM,EAAE,qBAAqB,CAAC;IAC9B,6FAA6F;IAC7F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,gEAAgE;IAChE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAGnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DEFAULT_GALLERY_OBJECTS, GALLERY_OBJECTS_ANIMATABLE } from '@3driseai/3drise-core';
3
+ import GalleryVariant from './kit/GalleryVariant.js';
4
+ import * as LOOK from './looks/terraces.js';
5
+ /**
6
+ * Pictures as topographic models of stacked card lit by the scene: inactive ones are a flat grey contour map, the active one rises into terraces of its own brightness in full colour behind a soft wave; the cursor lifts the terraces higher. Use for architecture, maps, data and craft showcases.
7
+ */
8
+ const TerracesGallery = ({ config, ...rest }) => (_jsx(GalleryVariant, { look: LOOK, defaults: DEFAULT_GALLERY_OBJECTS.terraces, animatable: GALLERY_OBJECTS_ANIMATABLE.terraces, config: config, ...rest }));
9
+ export default TerracesGallery;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { AnimationOptions, MouseMoveDomain, WireReliefGalleryConfig } from '@3driseai/3drise-core';
3
+ import type { ObjectReadyProps } from '../../types/objectReady';
4
+ export interface WireReliefGalleryProps extends ObjectReadyProps {
5
+ config: WireReliefGalleryConfig;
6
+ /** Scene object id: the live-edit handle and the gallery's runtime entry are found by it. */
7
+ id?: string;
8
+ /** Keyframes on the config knobs (animations.gallery.animations). */
9
+ keyframes?: AnimationOptions[];
10
+ /** Pointer bindings on the config knobs (mouseMove.gallery). */
11
+ mouseMove?: MouseMoveDomain;
12
+ }
13
+ /**
14
+ * Pictures as a fine wire mesh lifted by their own brightness: inactive ones are a flat grey wire grid, the active one rises into relief and fills with colour panels behind a soft wave; near the cursor the panels lift away to the wire. Use for tech, data, architecture and engineering showcases.
15
+ */
16
+ declare const WireReliefGallery: React.FC<WireReliefGalleryProps>;
17
+ export default WireReliefGallery;
18
+ //# sourceMappingURL=WireReliefGallery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WireReliefGallery.d.ts","sourceRoot":"","sources":["../../../src/components/gallery/WireReliefGallery.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAShE,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC5D,MAAM,EAAE,uBAAuB,CAAC;IAChC,6FAA6F;IAC7F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,gEAAgE;IAChE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAGvD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DEFAULT_GALLERY_OBJECTS, GALLERY_OBJECTS_ANIMATABLE } from '@3driseai/3drise-core';
3
+ import GalleryVariant from './kit/GalleryVariant.js';
4
+ import * as LOOK from './looks/wireRelief.js';
5
+ /**
6
+ * Pictures as a fine wire mesh lifted by their own brightness: inactive ones are a flat grey wire grid, the active one rises into relief and fills with colour panels behind a soft wave; near the cursor the panels lift away to the wire. Use for tech, data, architecture and engineering showcases.
7
+ */
8
+ const WireReliefGallery = ({ config, ...rest }) => (_jsx(GalleryVariant, { look: LOOK, defaults: DEFAULT_GALLERY_OBJECTS.wireRelief, animatable: GALLERY_OBJECTS_ANIMATABLE.wireRelief, config: config, ...rest }));
9
+ export default WireReliefGallery;
@@ -0,0 +1,46 @@
1
+ export {};
2
+ export type { LightThreadsGalleryProps } from './LightThreadsGallery';
3
+ export { default as LightThreadsGallery } from './LightThreadsGallery';
4
+ export type { SilkGalleryProps } from './SilkGallery';
5
+ export { default as SilkGallery } from './SilkGallery';
6
+ export type { ParticleShiftGalleryProps } from './ParticleShiftGallery';
7
+ export { default as ParticleShiftGallery } from './ParticleShiftGallery';
8
+ export type { GlassPanesGalleryProps } from './GlassPanesGallery';
9
+ export { default as GlassPanesGallery } from './GlassPanesGallery';
10
+ export type { HaloGalleryProps } from './HaloGallery';
11
+ export { default as HaloGallery } from './HaloGallery';
12
+ export type { LoomGalleryProps } from './LoomGallery';
13
+ export { default as LoomGallery } from './LoomGallery';
14
+ export type { BasicCarouselGalleryProps } from './BasicCarouselGallery';
15
+ export { default as BasicCarouselGallery } from './BasicCarouselGallery';
16
+ export type { PaperLanternsGalleryProps } from './PaperLanternsGallery';
17
+ export { default as PaperLanternsGallery } from './PaperLanternsGallery';
18
+ export type { PinscreenGalleryProps } from './PinscreenGallery';
19
+ export { default as PinscreenGallery } from './PinscreenGallery';
20
+ export type { DepthLayersGalleryProps } from './DepthLayersGallery';
21
+ export { default as DepthLayersGallery } from './DepthLayersGallery';
22
+ export type { ContourLinesGalleryProps } from './ContourLinesGallery';
23
+ export { default as ContourLinesGallery } from './ContourLinesGallery';
24
+ export type { PrismSplitGalleryProps } from './PrismSplitGallery';
25
+ export { default as PrismSplitGallery } from './PrismSplitGallery';
26
+ export type { EngravingGalleryProps } from './EngravingGallery';
27
+ export { default as EngravingGallery } from './EngravingGallery';
28
+ export type { SlatsGalleryProps } from './SlatsGallery';
29
+ export { default as SlatsGallery } from './SlatsGallery';
30
+ export type { FoldGalleryProps } from './FoldGallery';
31
+ export { default as FoldGallery } from './FoldGallery';
32
+ export type { WireReliefGalleryProps } from './WireReliefGallery';
33
+ export { default as WireReliefGallery } from './WireReliefGallery';
34
+ export type { TerracesGalleryProps } from './TerracesGallery';
35
+ export { default as TerracesGallery } from './TerracesGallery';
36
+ export type { ShadowBoxGalleryProps } from './ShadowBoxGallery';
37
+ export { default as ShadowBoxGallery } from './ShadowBoxGallery';
38
+ export type { PopUpGalleryProps } from './PopUpGallery';
39
+ export { default as PopUpGallery } from './PopUpGallery';
40
+ export type { RidgelinesGalleryProps } from './RidgelinesGallery';
41
+ export { default as RidgelinesGallery } from './RidgelinesGallery';
42
+ export type { FlowLinesGalleryProps } from './FlowLinesGallery';
43
+ export { default as FlowLinesGallery } from './FlowLinesGallery';
44
+ export type { StrataGalleryProps } from './StrataGallery';
45
+ export { default as StrataGallery } from './StrataGallery';
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/gallery/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export { default as LightThreadsGallery } from './LightThreadsGallery.js';
2
+ export { default as SilkGallery } from './SilkGallery.js';
3
+ export { default as ParticleShiftGallery } from './ParticleShiftGallery.js';
4
+ export { default as GlassPanesGallery } from './GlassPanesGallery.js';
5
+ export { default as HaloGallery } from './HaloGallery.js';
6
+ export { default as LoomGallery } from './LoomGallery.js';
7
+ export { default as BasicCarouselGallery } from './BasicCarouselGallery.js';
8
+ export { default as PaperLanternsGallery } from './PaperLanternsGallery.js';
9
+ export { default as PinscreenGallery } from './PinscreenGallery.js';
10
+ export { default as DepthLayersGallery } from './DepthLayersGallery.js';
11
+ export { default as ContourLinesGallery } from './ContourLinesGallery.js';
12
+ export { default as PrismSplitGallery } from './PrismSplitGallery.js';
13
+ export { default as EngravingGallery } from './EngravingGallery.js';
14
+ export { default as SlatsGallery } from './SlatsGallery.js';
15
+ export { default as FoldGallery } from './FoldGallery.js';
16
+ export { default as WireReliefGallery } from './WireReliefGallery.js';
17
+ export { default as TerracesGallery } from './TerracesGallery.js';
18
+ export { default as ShadowBoxGallery } from './ShadowBoxGallery.js';
19
+ export { default as PopUpGallery } from './PopUpGallery.js';
20
+ export { default as RidgelinesGallery } from './RidgelinesGallery.js';
21
+ export { default as FlowLinesGallery } from './FlowLinesGallery.js';
22
+ export { default as StrataGallery } from './StrataGallery.js';
@@ -0,0 +1,68 @@
1
+ import React from 'react';
2
+ import * as THREE from 'three';
3
+ import type { AnimationOptions, MouseMoveDomain } from '@3driseai/3drise-core';
4
+ import type { ObjectReadyProps } from '../../../types/objectReady';
5
+ export interface GalleryPointer {
6
+ x: number;
7
+ y: number;
8
+ nx: number;
9
+ ny: number;
10
+ }
11
+ export interface GalleryLookInstance {
12
+ object: THREE.Object3D;
13
+ /** An invisible plane over the active picture's slot (clicks, "over the gallery"). */
14
+ pickMesh?: THREE.Object3D;
15
+ controls: {
16
+ next(): void;
17
+ prev(): void;
18
+ goTo(i: number): void;
19
+ jump(i: number): void;
20
+ readonly index: number;
21
+ readonly count: number;
22
+ readonly busy: boolean;
23
+ setTexture(tex: THREE.DataArrayTexture, count: number): void;
24
+ dragBegin?(x: number): void;
25
+ dragMove?(x: number): void;
26
+ dragEnd?(dt: number): void;
27
+ /** The picture under the cursor (-1 = none), for looks with a hover state (Paper Lanterns' glow). */
28
+ hover?(i: number): void;
29
+ };
30
+ /** Looks whose pictures are separate clickable things (Paper Lanterns): the picture a hit is on, else
31
+ * undefined. A click on one goes to it; without this a click right / left of the centre goes next / prev. */
32
+ pickPicture?(hit: {
33
+ object: THREE.Object3D;
34
+ instanceId?: number;
35
+ }): number | undefined;
36
+ apply(k: Record<string, unknown>): void;
37
+ update(dt: number, pointer: GalleryPointer | null, state?: {
38
+ dpr: number;
39
+ h: number;
40
+ }): void;
41
+ dispose(): void;
42
+ }
43
+ export interface GalleryLook {
44
+ DEFAULTS: Record<string, unknown>;
45
+ STRUCTURAL: readonly string[];
46
+ createUniforms(): Record<string, {
47
+ value: unknown;
48
+ }>;
49
+ build(u: Record<string, {
50
+ value: unknown;
51
+ }>, c: Record<string, unknown>): GalleryLookInstance;
52
+ }
53
+ export interface GalleryVariantProps extends ObjectReadyProps {
54
+ look: GalleryLook;
55
+ /** The variant's defaults from core (DEFAULT_GALLERY_OBJECTS[key]). */
56
+ defaults: Record<string, unknown>;
57
+ /** The variant's animatable knobs from core (GALLERY_OBJECTS_ANIMATABLE[key]). */
58
+ animatable: readonly {
59
+ value: string;
60
+ }[];
61
+ config: Record<string, unknown>;
62
+ id?: string;
63
+ keyframes?: AnimationOptions[];
64
+ mouseMove?: MouseMoveDomain;
65
+ }
66
+ declare const GalleryVariant: React.FC<GalleryVariantProps>;
67
+ export default GalleryVariant;
68
+ //# sourceMappingURL=GalleryVariant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GalleryVariant.d.ts","sourceRoot":"","sources":["../../../../src/components/gallery/kit/GalleryVariant.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,231 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
3
+ import * as THREE from 'three';
4
+ import { useFrame, useThree } from '@react-three/fiber';
5
+ import { withConfigDefaults } from '../../../utils/configAnimations.js';
6
+ import { useObjectReady } from '../../../hooks/useObjectReady.js';
7
+ import { useConfigDriver } from '../../../hooks/useConfigDriver.js';
8
+ import GalleryRuntime from '../../../galleryRuntime.js';
9
+ import { loadPictureArray, pictureTexture, placeholderPictures } from './pictures.js';
10
+ import { createFeeds } from './feeds.js';
11
+ const PLACEHOLDERS = 6;
12
+ const NAV_KEYS = ['autoplay', 'navigation', 'feeds'];
13
+ const GalleryVariant = ({ look, defaults, animatable, config, id, keyframes, mouseMove, onObjectReady, onObjectDispose }) => {
14
+ const rootRef = useRef(null);
15
+ useObjectReady(rootRef, config, onObjectReady, onObjectDispose);
16
+ const { gl, camera, size, events, scene } = useThree();
17
+ const cfg = useMemo(() => withConfigDefaults(defaults, config), [defaults, config]);
18
+ const STRUCTURAL = look.STRUCTURAL;
19
+ const ALLOWED = useMemo(() => new Set(animatable.map((a) => a.value)), [animatable]);
20
+ const uniforms = useMemo(() => look.createUniforms(), [look]);
21
+ // ---- the look: rebuilt on a structural change only (imageUrls only reloads the pictures)
22
+ const buildKey = STRUCTURAL.filter((k) => k !== 'imageUrls').map((k) => JSON.stringify(cfg[k])).join('|');
23
+ // the look never runs its own autoplay, never leans toward the cursor (a mouse-move binding on the object's
24
+ // rotation does that, configurably), and structural keys never go live
25
+ const toLook = (m) => {
26
+ const out = {};
27
+ for (const [k, v] of Object.entries(m))
28
+ if (!STRUCTURAL.includes(k) && !NAV_KEYS.includes(k))
29
+ out[k] = v;
30
+ out.autoplay = 0;
31
+ out.lean = 0;
32
+ return out;
33
+ };
34
+ const instance = useMemo(() => look.build(uniforms, { ...look.DEFAULTS, ...cfg, autoplay: 0, lean: 0 }), [look, uniforms, buildKey]); // eslint-disable-line react-hooks/exhaustive-deps
35
+ useEffect(() => () => instance.dispose(), [instance]);
36
+ const instRef = useRef(instance);
37
+ instRef.current = instance;
38
+ // ---- pictures
39
+ const urls = Array.isArray(cfg.imageUrls) ? cfg.imageUrls.filter((u) => typeof u === 'string' && u) : [];
40
+ const urlsKey = urls.join('\n');
41
+ const aspect = Number(cfg.aspect) || 1.5;
42
+ const [pictures, setPictures] = useState(null);
43
+ useEffect(() => {
44
+ let alive = true;
45
+ const sources = urls.length ? urls : placeholderPictures(PLACEHOLDERS, aspect);
46
+ loadPictureArray(sources, aspect).then((p) => { if (alive)
47
+ setPictures(p); }).catch(() => { });
48
+ return () => { alive = false; };
49
+ }, [urlsKey, aspect]); // eslint-disable-line react-hooks/exhaustive-deps
50
+ const nav = useRef({ index: 0, paused: false, autoT: 0, lastIndex: -1, dragging: false, autoplay: Number(cfg.autoplay) || 0 });
51
+ useEffect(() => {
52
+ if (!pictures)
53
+ return;
54
+ const keep = nav.current.lastIndex >= 0 ? nav.current.index : 0;
55
+ instance.controls.setTexture(pictureTexture(pictures), pictures.count);
56
+ instance.controls.jump(Math.min(keep, Math.max(0, pictures.count - 1)));
57
+ }, [instance, pictures]);
58
+ // ---- config: committed + live + keyframes + pointer bindings, through one push
59
+ useLayoutEffect(() => { instance.apply(toLook(cfg)); nav.current.autoplay = Number(cfg.autoplay) || 0; }, [instance, cfg]); // eslint-disable-line react-hooks/exhaustive-deps
60
+ const push = useCallback((merged) => { instRef.current.apply(toLook(merged)); if (merged.autoplay !== undefined)
61
+ nav.current.autoplay = Number(merged.autoplay) || 0; }, []); // eslint-disable-line react-hooks/exhaustive-deps
62
+ useConfigDriver({ rootRef, id, family: 'gallery', base: cfg, structural: STRUCTURAL, allowed: ALLOWED, keyframes, mouseMove, push });
63
+ // ---- navigation: one stable controls object over whichever look is current
64
+ const urlsRef = useRef(urls);
65
+ urlsRef.current = urls;
66
+ const controls = useMemo(() => {
67
+ const c = () => instRef.current.controls;
68
+ const wrapI = (i) => { const n = c().count; return n ? ((Math.round(i) % n) + n) % n : 0; };
69
+ return {
70
+ next() { nav.current.autoT = 0; c().next(); },
71
+ prev() { nav.current.autoT = 0; c().prev(); },
72
+ goTo(i) { nav.current.autoT = 0; c().goTo(wrapI(i)); },
73
+ jump(i) { nav.current.autoT = 0; c().jump(wrapI(i)); },
74
+ pause() { nav.current.paused = true; },
75
+ resume() { nav.current.paused = false; nav.current.autoT = 0; },
76
+ get index() { return c().index; },
77
+ get count() { return c().count; },
78
+ get busy() { return c().busy; },
79
+ get paused() { return nav.current.paused; },
80
+ get currentUrl() { return urlsRef.current[c().index]; },
81
+ };
82
+ }, []);
83
+ useEffect(() => {
84
+ const root = rootRef.current;
85
+ if (!id) {
86
+ if (root)
87
+ root.userData.gallery = controls;
88
+ return () => { if (root)
89
+ delete root.userData.gallery; };
90
+ }
91
+ return GalleryRuntime.register(id, controls, root);
92
+ }, [id, controls]);
93
+ // ---- feeds: the active picture on other objects too (config.feeds; ./feeds.ts). Only real pictures are sent
94
+ const feeds = useMemo(() => createFeeds(scene), [scene]);
95
+ useEffect(() => () => feeds.dispose(), [feeds]);
96
+ const feedIds = Array.isArray(cfg.feeds) ? cfg.feeds.filter((f) => typeof f === 'string' && f && f !== id) : [];
97
+ const feedRef = useRef({ ids: feedIds, t: 0 });
98
+ feedRef.current.ids = feedIds;
99
+ // ---- the cursor
100
+ const ptr = useRef({ inside: false, ndc: new THREE.Vector2(), down: null });
101
+ const ray = useMemo(() => new THREE.Raycaster(), []);
102
+ const tmp = useMemo(() => ({ inv: new THREE.Matrix4(), hit: new THREE.Vector3(), plane: new THREE.Plane(new THREE.Vector3(0, 0, 1), 0) }), []);
103
+ /** The cursor on the gallery's own z = 0 plane, in gallery units (null if the ray misses it). */
104
+ const localHit = useCallback((ndc) => {
105
+ const root = rootRef.current;
106
+ if (!root)
107
+ return null;
108
+ ray.setFromCamera(ndc, camera);
109
+ root.updateWorldMatrix(true, false);
110
+ tmp.inv.copy(root.matrixWorld).invert();
111
+ ray.ray.applyMatrix4(tmp.inv);
112
+ return ray.ray.intersectPlane(tmp.plane, tmp.hit) ? tmp.hit.clone() : null;
113
+ }, [camera, ray, tmp]);
114
+ useEffect(() => {
115
+ const el = (events.connected ?? gl.domElement);
116
+ const toNdc = (e) => { const r = el.getBoundingClientRect(); ptr.current.ndc.set(((e.clientX - r.left) / r.width) * 2 - 1, -((e.clientY - r.top) / r.height) * 2 + 1); };
117
+ const move = (e) => {
118
+ toNdc(e);
119
+ ptr.current.inside = true;
120
+ const d = ptr.current.down, c = instRef.current.controls;
121
+ if (!d || cfg.navigation !== 'drag' || !c.dragBegin)
122
+ return;
123
+ const h = localHit(ptr.current.ndc);
124
+ if (!d.drag && Math.hypot(e.clientX - d.cx, e.clientY - d.cy) > 6) {
125
+ d.drag = true;
126
+ nav.current.dragging = true;
127
+ c.dragBegin(d.x);
128
+ }
129
+ if (d.drag && h) {
130
+ c.dragMove?.(h.x);
131
+ d.t = performance.now();
132
+ }
133
+ };
134
+ const leave = () => { ptr.current.inside = false; };
135
+ const up = () => {
136
+ const d = ptr.current.down;
137
+ ptr.current.down = null;
138
+ if (!d)
139
+ return;
140
+ const c = instRef.current.controls;
141
+ if (d.drag) {
142
+ nav.current.dragging = false;
143
+ nav.current.autoT = 0;
144
+ c.dragEnd?.((performance.now() - d.t) / 1000 + 1 / 60);
145
+ }
146
+ else if (cfg.navigation === 'click' || cfg.navigation === 'drag') {
147
+ if (d.pick !== undefined) {
148
+ if (d.pick !== controls.index)
149
+ controls.goTo(d.pick);
150
+ } // a click on a picture brings it in
151
+ else if (!instRef.current.pickPicture)
152
+ (d.x >= 0 ? controls.next : controls.prev)();
153
+ }
154
+ };
155
+ el.addEventListener('pointermove', move, { passive: true });
156
+ el.addEventListener('pointerleave', leave, { passive: true });
157
+ window.addEventListener('pointerup', up, { passive: true });
158
+ return () => { el.removeEventListener('pointermove', move); el.removeEventListener('pointerleave', leave); window.removeEventListener('pointerup', up); };
159
+ }, [gl, events, cfg.navigation, controls, localHit]);
160
+ const onPointerDown = useCallback((e) => {
161
+ if (cfg.navigation !== 'click' && cfg.navigation !== 'drag')
162
+ return;
163
+ const root = rootRef.current;
164
+ if (!root || e.button !== 0)
165
+ return;
166
+ if (ptr.current.down?.ev === e.nativeEvent)
167
+ return; // R3F calls this once per hit: the nearest one counts
168
+ const p = root.worldToLocal(e.point.clone());
169
+ const pick = instRef.current.pickPicture?.({ object: e.object, instanceId: e.instanceId });
170
+ ptr.current.down = { cx: e.nativeEvent.clientX, cy: e.nativeEvent.clientY, x: p.x, drag: false, t: performance.now(), pick, ev: e.nativeEvent };
171
+ }, [cfg.navigation]);
172
+ // the picture under the cursor, for looks with a hover state
173
+ const hovered = useRef(-1), hoverEv = useRef(null);
174
+ const onPointerHover = useCallback((e) => {
175
+ const inst = instRef.current;
176
+ if (!inst.pickPicture || !inst.controls.hover || hoverEv.current === e.nativeEvent)
177
+ return; // the nearest hit only
178
+ hoverEv.current = e.nativeEvent;
179
+ const i = inst.pickPicture({ object: e.object, instanceId: e.instanceId }) ?? -1;
180
+ if (i !== hovered.current) {
181
+ hovered.current = i;
182
+ inst.controls.hover(i);
183
+ }
184
+ }, []);
185
+ const onPointerLeave = useCallback(() => {
186
+ if (hovered.current < 0)
187
+ return;
188
+ hovered.current = -1;
189
+ instRef.current.controls.hover?.(-1);
190
+ }, []);
191
+ useFrame((_, delta) => {
192
+ const dt = Math.min(delta, 0.1);
193
+ const inst = instRef.current;
194
+ let pointer = null;
195
+ if (ptr.current.inside) {
196
+ const h = localHit(ptr.current.ndc);
197
+ if (h)
198
+ pointer = { x: h.x, y: h.y, nx: ptr.current.ndc.x, ny: ptr.current.ndc.y };
199
+ }
200
+ const n = inst.controls.count, a = nav.current.autoplay;
201
+ if (a > 0 && n > 1 && !nav.current.paused && !nav.current.dragging && !ptr.current.down) {
202
+ nav.current.autoT += dt;
203
+ if (nav.current.autoT >= a)
204
+ controls.next();
205
+ }
206
+ else if (a <= 0)
207
+ nav.current.autoT = 0;
208
+ inst.update(dt, pointer, { dpr: gl.getPixelRatio(), h: size.height });
209
+ // every change of index is reported once
210
+ const i = inst.controls.index;
211
+ nav.current.index = i;
212
+ if (i !== nav.current.lastIndex) {
213
+ const first = nav.current.lastIndex < 0;
214
+ nav.current.lastIndex = i;
215
+ nav.current.autoT = 0;
216
+ if (!first && id)
217
+ GalleryRuntime.emitChange(id);
218
+ feedRef.current.t = 1; // sync the feeds now
219
+ }
220
+ const fr = feedRef.current;
221
+ fr.t += dt;
222
+ if (fr.t >= 0.25) {
223
+ fr.t = 0;
224
+ feeds.sync(fr.ids, pictures && urlsRef.current.length ? urlsRef.current[i] : null);
225
+ }
226
+ });
227
+ if (!cfg.enabled)
228
+ return null;
229
+ return (_jsx("group", { ref: rootRef, onPointerDown: onPointerDown, onPointerMove: onPointerHover, onPointerOut: onPointerLeave, children: _jsx("primitive", { object: instance.object }) }));
230
+ };
231
+ export default GalleryVariant;
@@ -0,0 +1,7 @@
1
+ import * as THREE from 'three';
2
+ export declare function createFeeds(scene: THREE.Object3D): {
3
+ /** Bring every target in line: `ids` fed with `url` (null = no picture: release them all). */
4
+ sync(ids: readonly string[], url: string | null | undefined): void;
5
+ dispose(): void;
6
+ };
7
+ //# sourceMappingURL=feeds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/components/gallery/kit/feeds.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA4B/B,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ;IAwBzC,8FAA8F;cACpF,SAAS,MAAM,EAAE,OAAO,MAAM,GAAG,IAAI,GAAG,SAAS;;EAOlE"}