@flamingo-stack/openframe-frontend-core 0.0.177 → 0.0.178-snapshot.20260514174355

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 (69) hide show
  1. package/dist/{chunk-C6ZMI4UB.cjs → chunk-4TM2SBMX.cjs} +884 -1513
  2. package/dist/chunk-4TM2SBMX.cjs.map +1 -0
  3. package/dist/{chunk-WX7PT5C7.cjs → chunk-ALW3D72O.cjs} +61 -2
  4. package/dist/chunk-ALW3D72O.cjs.map +1 -0
  5. package/dist/{chunk-KB2N44BY.js → chunk-FMWHOUFE.js} +61 -2
  6. package/dist/chunk-FMWHOUFE.js.map +1 -0
  7. package/dist/{chunk-6LDN3CIY.js → chunk-ZMQP3UZJ.js} +3701 -4330
  8. package/dist/chunk-ZMQP3UZJ.js.map +1 -0
  9. package/dist/components/features/entity-video-section.d.ts +54 -0
  10. package/dist/components/features/entity-video-section.d.ts.map +1 -0
  11. package/dist/components/features/index.cjs +17 -3
  12. package/dist/components/features/index.cjs.map +1 -1
  13. package/dist/components/features/index.d.ts +4 -2
  14. package/dist/components/features/index.d.ts.map +1 -1
  15. package/dist/components/features/index.js +22 -8
  16. package/dist/components/features/video-bites-display.d.ts +38 -0
  17. package/dist/components/features/video-bites-display.d.ts.map +1 -0
  18. package/dist/components/features/video-ratio-tabs.d.ts +62 -0
  19. package/dist/components/features/video-ratio-tabs.d.ts.map +1 -0
  20. package/dist/components/features/video.d.ts +94 -0
  21. package/dist/components/features/video.d.ts.map +1 -0
  22. package/dist/components/index.cjs +17 -3
  23. package/dist/components/index.cjs.map +1 -1
  24. package/dist/components/index.js +22 -8
  25. package/dist/components/media-carousel.d.ts.map +1 -1
  26. package/dist/components/navigation/index.cjs +3 -3
  27. package/dist/components/navigation/index.js +2 -2
  28. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  29. package/dist/components/ui/index.cjs +3 -3
  30. package/dist/components/ui/index.js +2 -2
  31. package/dist/hooks/index.cjs +4 -2
  32. package/dist/hooks/index.cjs.map +1 -1
  33. package/dist/hooks/index.d.ts +1 -0
  34. package/dist/hooks/index.d.ts.map +1 -1
  35. package/dist/hooks/index.js +3 -1
  36. package/dist/hooks/use-near-viewport.d.ts +42 -0
  37. package/dist/hooks/use-near-viewport.d.ts.map +1 -0
  38. package/dist/index.cjs +19 -3
  39. package/dist/index.cjs.map +1 -1
  40. package/dist/index.js +24 -8
  41. package/package.json +2 -2
  42. package/src/components/features/entity-video-section.tsx +175 -0
  43. package/src/components/features/index.ts +9 -2
  44. package/src/components/features/video-bites-display.tsx +216 -0
  45. package/src/components/features/video-ratio-tabs.tsx +174 -0
  46. package/src/components/features/video.tsx +474 -0
  47. package/src/components/media-carousel.tsx +43 -236
  48. package/src/components/shared/product-release/release-detail-page.tsx +26 -19
  49. package/src/hooks/index.ts +3 -0
  50. package/src/hooks/use-near-viewport.ts +118 -0
  51. package/dist/chunk-6LDN3CIY.js.map +0 -1
  52. package/dist/chunk-C6ZMI4UB.cjs.map +0 -1
  53. package/dist/chunk-KB2N44BY.js.map +0 -1
  54. package/dist/chunk-WX7PT5C7.cjs.map +0 -1
  55. package/dist/components/features/video-player.d.ts +0 -47
  56. package/dist/components/features/video-player.d.ts.map +0 -1
  57. package/dist/components/features/youtube-embed.d.ts +0 -17
  58. package/dist/components/features/youtube-embed.d.ts.map +0 -1
  59. package/dist/utils/lite-youtube-embed-stub.d.ts +0 -8
  60. package/dist/utils/lite-youtube-embed-stub.d.ts.map +0 -1
  61. package/dist/utils/lite-youtube-embed.d.ts +0 -9
  62. package/dist/utils/lite-youtube-embed.d.ts.map +0 -1
  63. package/src/components/features/.video-player.md +0 -44
  64. package/src/components/features/.youtube-embed.md +0 -40
  65. package/src/components/features/__tests__/video-player.test.tsx +0 -142
  66. package/src/components/features/video-player.tsx +0 -1030
  67. package/src/components/features/youtube-embed.tsx +0 -275
  68. package/src/utils/lite-youtube-embed-stub.tsx +0 -21
  69. package/src/utils/lite-youtube-embed.tsx +0 -46
@@ -3052,6 +3052,64 @@ function useNatsClient(clientOptions, options = {}) {
3052
3052
  };
3053
3053
  }
3054
3054
 
3055
+ // src/hooks/use-near-viewport.ts
3056
+ import { useEffect as useEffect16, useRef as useRef11, useState as useState21, useCallback as useCallback12 } from "react";
3057
+ var observers = /* @__PURE__ */ new Map();
3058
+ var subscribers = /* @__PURE__ */ new WeakMap();
3059
+ function getObserverFor(rootMargin) {
3060
+ const existing = observers.get(rootMargin);
3061
+ if (existing) return existing;
3062
+ const io = new IntersectionObserver(
3063
+ (entries) => {
3064
+ entries.forEach((entry) => {
3065
+ if (!entry.isIntersecting) return;
3066
+ const cb = subscribers.get(entry.target);
3067
+ if (cb) {
3068
+ cb();
3069
+ io.unobserve(entry.target);
3070
+ subscribers.delete(entry.target);
3071
+ }
3072
+ });
3073
+ },
3074
+ { rootMargin }
3075
+ );
3076
+ observers.set(rootMargin, io);
3077
+ return io;
3078
+ }
3079
+ function useNearViewport(rootMargin = "500px") {
3080
+ const [isNear, setIsNear] = useState21(false);
3081
+ const elRef = useRef11(null);
3082
+ const ref = useCallback12(
3083
+ (node) => {
3084
+ const prev = elRef.current;
3085
+ if (prev) {
3086
+ const stillOurs = subscribers.get(prev);
3087
+ if (stillOurs) {
3088
+ subscribers.delete(prev);
3089
+ observers.get(rootMargin)?.unobserve(prev);
3090
+ }
3091
+ }
3092
+ elRef.current = node;
3093
+ if (!node) return;
3094
+ const cb = () => setIsNear(true);
3095
+ subscribers.set(node, cb);
3096
+ getObserverFor(rootMargin).observe(node);
3097
+ },
3098
+ [rootMargin]
3099
+ );
3100
+ useEffect16(() => {
3101
+ return () => {
3102
+ const el = elRef.current;
3103
+ if (!el) return;
3104
+ if (subscribers.get(el)) {
3105
+ subscribers.delete(el);
3106
+ observers.get(rootMargin)?.unobserve(el);
3107
+ }
3108
+ };
3109
+ }, [rootMargin]);
3110
+ return { ref, isNear };
3111
+ }
3112
+
3055
3113
  export {
3056
3114
  useAutoLimitTags,
3057
3115
  platformIcons,
@@ -3133,6 +3191,7 @@ export {
3133
3191
  createSearchParams,
3134
3192
  useCursorPaginationState,
3135
3193
  createNatsClient,
3136
- useNatsClient
3194
+ useNatsClient,
3195
+ useNearViewport
3137
3196
  };
3138
- //# sourceMappingURL=chunk-KB2N44BY.js.map
3197
+ //# sourceMappingURL=chunk-FMWHOUFE.js.map