@clyrex-digital/clyrex-controls-dev 0.8.1-dev.20260923103910 → 0.8.1-dev.20260924080906

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.
@@ -3,7 +3,7 @@
3
3
  "use client";
4
4
  import {
5
5
  OdataBuilder
6
- } from "./chunk-PXALEYS6.mjs";
6
+ } from "./chunk-K6GGVJCI.mjs";
7
7
  import {
8
8
  Hyperlink,
9
9
  Icon_default
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-6PW2RLUJ.mjs";
5
5
  import {
6
6
  OdataBuilder
7
- } from "./chunk-HUCNBVQV.mjs";
7
+ } from "./chunk-I3ND2ZRE.mjs";
8
8
  import {
9
9
  Hyperlink
10
10
  } from "./chunk-2R26M6CK.mjs";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  // src/components/Slider.tsx
4
- import React, { useState, useEffect, Children, cloneElement } from "react";
4
+ import React, { useState, useEffect, Children, cloneElement, useRef } from "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  var Slider = ({
7
7
  children,
@@ -30,6 +30,8 @@ var Slider = ({
30
30
  typeof initialSlidesToShow === "number" ? initialSlidesToShow : initialSlidesToShow.large
31
31
  );
32
32
  const [isPlaying, setIsPlaying] = useState(autoplay);
33
+ const trackRef = useRef(null);
34
+ console.log("trackRef:", trackRef);
33
35
  useEffect(() => {
34
36
  if (typeof initialSlidesToShow === "number") {
35
37
  setSlidesToShowState(initialSlidesToShow);
@@ -50,6 +52,34 @@ var Slider = ({
50
52
  }, [initialSlidesToShow]);
51
53
  useEffect(() => {
52
54
  if (!autoplay) return;
55
+ const activeSlideElement = trackRef.current?.children[currentSlide];
56
+ const videoElement = activeSlideElement?.querySelector("video");
57
+ if (videoElement) {
58
+ videoElement.loop = false;
59
+ if (videoElement.ended) {
60
+ videoElement.currentTime = 0;
61
+ }
62
+ videoElement.play().catch(() => {
63
+ });
64
+ const handleTimeUpdate = () => {
65
+ if (videoElement.duration && !isNaN(videoElement.duration)) {
66
+ const pct = videoElement.currentTime / videoElement.duration * 100;
67
+ }
68
+ };
69
+ const handleVideoEnded = () => {
70
+ nextSlide();
71
+ };
72
+ const handleVideoError = () => {
73
+ nextSlide();
74
+ };
75
+ videoElement.addEventListener("ended", handleVideoEnded, { once: true });
76
+ videoElement.addEventListener("error", handleVideoError, { once: true });
77
+ return () => {
78
+ videoElement.removeEventListener("ended", handleVideoEnded);
79
+ videoElement.removeEventListener("error", handleVideoError);
80
+ videoElement.pause();
81
+ };
82
+ }
53
83
  const timer = setInterval(() => {
54
84
  if (isPlaying) {
55
85
  nextSlide();
@@ -160,6 +190,7 @@ var Slider = ({
160
190
  /* @__PURE__ */ jsx(
161
191
  "div",
162
192
  {
193
+ ref: trackRef,
163
194
  className: "flex h-full",
164
195
  style: {
165
196
  transition: transition ? "transform 0.5s ease" : "none",
@@ -3,7 +3,7 @@
3
3
  "use client";
4
4
 
5
5
  // src/components/Slider.tsx
6
- import React, { useState, useEffect, Children, cloneElement } from "react";
6
+ import React, { useState, useEffect, Children, cloneElement, useRef } from "react";
7
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
8
  var Slider = ({
9
9
  children,
@@ -32,6 +32,8 @@ var Slider = ({
32
32
  typeof initialSlidesToShow === "number" ? initialSlidesToShow : initialSlidesToShow.large
33
33
  );
34
34
  const [isPlaying, setIsPlaying] = useState(autoplay);
35
+ const trackRef = useRef(null);
36
+ console.log("trackRef:", trackRef);
35
37
  useEffect(() => {
36
38
  if (typeof initialSlidesToShow === "number") {
37
39
  setSlidesToShowState(initialSlidesToShow);
@@ -52,6 +54,34 @@ var Slider = ({
52
54
  }, [initialSlidesToShow]);
53
55
  useEffect(() => {
54
56
  if (!autoplay) return;
57
+ const activeSlideElement = trackRef.current?.children[currentSlide];
58
+ const videoElement = activeSlideElement?.querySelector("video");
59
+ if (videoElement) {
60
+ videoElement.loop = false;
61
+ if (videoElement.ended) {
62
+ videoElement.currentTime = 0;
63
+ }
64
+ videoElement.play().catch(() => {
65
+ });
66
+ const handleTimeUpdate = () => {
67
+ if (videoElement.duration && !isNaN(videoElement.duration)) {
68
+ const pct = videoElement.currentTime / videoElement.duration * 100;
69
+ }
70
+ };
71
+ const handleVideoEnded = () => {
72
+ nextSlide();
73
+ };
74
+ const handleVideoError = () => {
75
+ nextSlide();
76
+ };
77
+ videoElement.addEventListener("ended", handleVideoEnded, { once: true });
78
+ videoElement.addEventListener("error", handleVideoError, { once: true });
79
+ return () => {
80
+ videoElement.removeEventListener("ended", handleVideoEnded);
81
+ videoElement.removeEventListener("error", handleVideoError);
82
+ videoElement.pause();
83
+ };
84
+ }
55
85
  const timer = setInterval(() => {
56
86
  if (isPlaying) {
57
87
  nextSlide();
@@ -162,6 +192,7 @@ var Slider = ({
162
192
  /* @__PURE__ */ jsx(
163
193
  "div",
164
194
  {
195
+ ref: trackRef,
165
196
  className: "flex h-full",
166
197
  style: {
167
198
  transition: transition ? "transform 0.5s ease" : "none",
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-HRDHAIZF.mjs";
4
4
 
5
5
  // src/clients/OdataBuilder.tsx
6
- var encodeFilter = (filter) => encodeURIComponent(filter.replace(/'/g, '"'));
6
+ var encodeFilter = (filter) => encodeURIComponent(filter);
7
7
  var OdataBuilder = class {
8
8
  constructor(url) {
9
9
  this.baseUrl = url;
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-F4DNLPFN.mjs";
6
6
 
7
7
  // src/clients/OdataBuilder.tsx
8
- var encodeFilter = (filter) => encodeURIComponent(filter.replace(/'/g, '"'));
8
+ var encodeFilter = (filter) => encodeURIComponent(filter);
9
9
  var OdataBuilder = class {
10
10
  constructor(url) {
11
11
  this.baseUrl = url;
package/dist/index.js CHANGED
@@ -5267,7 +5267,7 @@ var init_OdataBuilder = __esm({
5267
5267
  "src/clients/OdataBuilder.tsx"() {
5268
5268
  "use strict";
5269
5269
  init_InputControlType();
5270
- encodeFilter = (filter) => encodeURIComponent(filter.replace(/'/g, '"'));
5270
+ encodeFilter = (filter) => encodeURIComponent(filter);
5271
5271
  OdataBuilder = class {
5272
5272
  constructor(url) {
5273
5273
  this.baseUrl = url;
@@ -6096,6 +6096,8 @@ var init_Slider = __esm({
6096
6096
  typeof initialSlidesToShow === "number" ? initialSlidesToShow : initialSlidesToShow.large
6097
6097
  );
6098
6098
  const [isPlaying, setIsPlaying] = (0, import_react60.useState)(autoplay);
6099
+ const trackRef = (0, import_react60.useRef)(null);
6100
+ console.log("trackRef:", trackRef);
6099
6101
  (0, import_react60.useEffect)(() => {
6100
6102
  if (typeof initialSlidesToShow === "number") {
6101
6103
  setSlidesToShowState(initialSlidesToShow);
@@ -6116,6 +6118,34 @@ var init_Slider = __esm({
6116
6118
  }, [initialSlidesToShow]);
6117
6119
  (0, import_react60.useEffect)(() => {
6118
6120
  if (!autoplay) return;
6121
+ const activeSlideElement = trackRef.current?.children[currentSlide];
6122
+ const videoElement = activeSlideElement?.querySelector("video");
6123
+ if (videoElement) {
6124
+ videoElement.loop = false;
6125
+ if (videoElement.ended) {
6126
+ videoElement.currentTime = 0;
6127
+ }
6128
+ videoElement.play().catch(() => {
6129
+ });
6130
+ const handleTimeUpdate = () => {
6131
+ if (videoElement.duration && !isNaN(videoElement.duration)) {
6132
+ const pct = videoElement.currentTime / videoElement.duration * 100;
6133
+ }
6134
+ };
6135
+ const handleVideoEnded = () => {
6136
+ nextSlide();
6137
+ };
6138
+ const handleVideoError = () => {
6139
+ nextSlide();
6140
+ };
6141
+ videoElement.addEventListener("ended", handleVideoEnded, { once: true });
6142
+ videoElement.addEventListener("error", handleVideoError, { once: true });
6143
+ return () => {
6144
+ videoElement.removeEventListener("ended", handleVideoEnded);
6145
+ videoElement.removeEventListener("error", handleVideoError);
6146
+ videoElement.pause();
6147
+ };
6148
+ }
6119
6149
  const timer = setInterval(() => {
6120
6150
  if (isPlaying) {
6121
6151
  nextSlide();
@@ -6226,6 +6256,7 @@ var init_Slider = __esm({
6226
6256
  /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
6227
6257
  "div",
6228
6258
  {
6259
+ ref: trackRef,
6229
6260
  className: "flex h-full",
6230
6261
  style: {
6231
6262
  transition: transition ? "transform 0.5s ease" : "none",
package/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-TKDSRAM6.mjs";
6
6
  import {
7
7
  OdataBuilder
8
- } from "./chunk-PXALEYS6.mjs";
8
+ } from "./chunk-K6GGVJCI.mjs";
9
9
  import {
10
10
  InputControl_default
11
11
  } from "./chunk-XDTWUEVR.mjs";
@@ -2419,11 +2419,11 @@ var GoogleMapNode_default = GoogleMapNode;
2419
2419
 
2420
2420
  // src/components/pageRenderingEngine/nodes/DivContainer.tsx
2421
2421
  import { jsx as jsx37, jsxs as jsxs15 } from "react/jsx-runtime";
2422
- var Pagination = dynamic13(() => import("./Pagination-GVFES3JQ.mjs"), { ssr: true });
2422
+ var Pagination = dynamic13(() => import("./Pagination-STOHS3LO.mjs"), { ssr: true });
2423
2423
  var DataBindingControls = dynamic13(() => import("./DataBindingControls-SLNZLI3I.mjs"), {
2424
2424
  ssr: true
2425
2425
  });
2426
- var Slider = dynamic13(() => import("./Slider-IVPJBPE5.mjs"), {
2426
+ var Slider = dynamic13(() => import("./Slider-JZ5CNHEW.mjs"), {
2427
2427
  ssr: false
2428
2428
  });
2429
2429
  function toCamelCase(str) {
package/dist/server.js CHANGED
@@ -3185,7 +3185,7 @@ var init_OdataBuilder = __esm({
3185
3185
  "src/clients/OdataBuilder.tsx"() {
3186
3186
  "use strict";
3187
3187
  init_InputControlType();
3188
- encodeFilter = (filter) => encodeURIComponent(filter.replace(/'/g, '"'));
3188
+ encodeFilter = (filter) => encodeURIComponent(filter);
3189
3189
  OdataBuilder = class {
3190
3190
  constructor(url) {
3191
3191
  this.baseUrl = url;
@@ -6094,6 +6094,8 @@ var init_Slider = __esm({
6094
6094
  typeof initialSlidesToShow === "number" ? initialSlidesToShow : initialSlidesToShow.large
6095
6095
  );
6096
6096
  const [isPlaying, setIsPlaying] = (0, import_react60.useState)(autoplay);
6097
+ const trackRef = (0, import_react60.useRef)(null);
6098
+ console.log("trackRef:", trackRef);
6097
6099
  (0, import_react60.useEffect)(() => {
6098
6100
  if (typeof initialSlidesToShow === "number") {
6099
6101
  setSlidesToShowState(initialSlidesToShow);
@@ -6114,6 +6116,34 @@ var init_Slider = __esm({
6114
6116
  }, [initialSlidesToShow]);
6115
6117
  (0, import_react60.useEffect)(() => {
6116
6118
  if (!autoplay) return;
6119
+ const activeSlideElement = trackRef.current?.children[currentSlide];
6120
+ const videoElement = activeSlideElement?.querySelector("video");
6121
+ if (videoElement) {
6122
+ videoElement.loop = false;
6123
+ if (videoElement.ended) {
6124
+ videoElement.currentTime = 0;
6125
+ }
6126
+ videoElement.play().catch(() => {
6127
+ });
6128
+ const handleTimeUpdate = () => {
6129
+ if (videoElement.duration && !isNaN(videoElement.duration)) {
6130
+ const pct = videoElement.currentTime / videoElement.duration * 100;
6131
+ }
6132
+ };
6133
+ const handleVideoEnded = () => {
6134
+ nextSlide();
6135
+ };
6136
+ const handleVideoError = () => {
6137
+ nextSlide();
6138
+ };
6139
+ videoElement.addEventListener("ended", handleVideoEnded, { once: true });
6140
+ videoElement.addEventListener("error", handleVideoError, { once: true });
6141
+ return () => {
6142
+ videoElement.removeEventListener("ended", handleVideoEnded);
6143
+ videoElement.removeEventListener("error", handleVideoError);
6144
+ videoElement.pause();
6145
+ };
6146
+ }
6117
6147
  const timer = setInterval(() => {
6118
6148
  if (isPlaying) {
6119
6149
  nextSlide();
@@ -6224,6 +6254,7 @@ var init_Slider = __esm({
6224
6254
  /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
6225
6255
  "div",
6226
6256
  {
6257
+ ref: trackRef,
6227
6258
  className: "flex h-full",
6228
6259
  style: {
6229
6260
  transition: transition ? "transform 0.5s ease" : "none",
package/dist/server.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  OdataBuilder
3
- } from "./chunk-HUCNBVQV.mjs";
3
+ } from "./chunk-I3ND2ZRE.mjs";
4
4
  import {
5
5
  Hyperlink
6
6
  } from "./chunk-2R26M6CK.mjs";
@@ -2387,11 +2387,11 @@ var GoogleMapNode_default = GoogleMapNode;
2387
2387
 
2388
2388
  // src/components/pageRenderingEngine/nodes/DivContainer.tsx
2389
2389
  import { jsx as jsx37, jsxs as jsxs15 } from "react/jsx-runtime";
2390
- var Pagination = dynamic13(() => import("./Pagination-TCXNZ73R.mjs"), { ssr: true });
2390
+ var Pagination = dynamic13(() => import("./Pagination-V53JCR6P.mjs"), { ssr: true });
2391
2391
  var DataBindingControls = dynamic13(() => import("./DataBindingControls-UDRT7JFF.mjs"), {
2392
2392
  ssr: true
2393
2393
  });
2394
- var Slider = dynamic13(() => import("./Slider-QIGKP6AE.mjs"), {
2394
+ var Slider = dynamic13(() => import("./Slider-3JMZZWGT.mjs"), {
2395
2395
  ssr: false
2396
2396
  });
2397
2397
  function toCamelCase(str) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clyrex-digital/clyrex-controls-dev",
3
- "version": "0.8.1-dev.20260923103910",
3
+ "version": "0.8.1-dev.20260924080906",
4
4
  "description": "Reusable React components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",