@clyrex-digital/clyrex-controls-dev 0.8.1-dev.20260808070128 → 0.8.1-dev.20260808073515

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.
@@ -0,0 +1,76 @@
1
+ "use client";
2
+
3
+ // src/components/controls/view/TimeUntilStartsClient.tsx
4
+ import { useState, useEffect } from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var TimeUntilStartsClient = (props) => {
7
+ const calculateTimeDifference = (startDate) => {
8
+ const now = /* @__PURE__ */ new Date();
9
+ const nowUtc = new Date(now.getTime() + now.getTimezoneOffset() * 6e4);
10
+ const startDateUtc = new Date(startDate);
11
+ const diffMs = startDateUtc.getTime() - nowUtc.getTime();
12
+ const isPast = diffMs < 0;
13
+ const absoluteDiffMs = Math.abs(diffMs);
14
+ const diffDays = Math.floor(absoluteDiffMs / (1e3 * 60 * 60 * 24));
15
+ const diffHours = Math.floor(
16
+ absoluteDiffMs % (1e3 * 60 * 60 * 24) / (1e3 * 60 * 60)
17
+ );
18
+ const diffMinutes = Math.floor(
19
+ absoluteDiffMs % (1e3 * 60 * 60) / (1e3 * 60)
20
+ );
21
+ if (absoluteDiffMs < 6e4) {
22
+ return "Just now";
23
+ }
24
+ let timeParts = [
25
+ { value: diffDays, unit: "days" },
26
+ { value: diffHours, unit: "hours" },
27
+ { value: diffMinutes, unit: "minutes" }
28
+ ];
29
+ timeParts = timeParts.filter((part) => part.value > 0);
30
+ if (isPast) {
31
+ if (diffDays > 0) {
32
+ return `${diffDays} day(s) ago`;
33
+ } else if (diffHours > 0) {
34
+ return `${diffHours} hour(s) ago`;
35
+ } else if (diffMinutes > 0) {
36
+ return `${diffMinutes} minute(s) ago`;
37
+ } else {
38
+ return "Just now";
39
+ }
40
+ } else {
41
+ if (timeParts.length > 2) {
42
+ timeParts = timeParts.slice(0, 2);
43
+ }
44
+ const displayString = timeParts.map((part) => `${part.value} ${part.unit}`).join(" ");
45
+ return displayString ? `Starting in ${displayString}` : "Started";
46
+ }
47
+ };
48
+ const isValidDate = (date) => {
49
+ return !isNaN(Date.parse(date));
50
+ };
51
+ const [timeUntilStart, setTimeUntilStart] = useState(() => {
52
+ if (props.value && isValidDate(props.value)) {
53
+ return calculateTimeDifference(props.value);
54
+ }
55
+ return "";
56
+ });
57
+ useEffect(() => {
58
+ if (props.value && isValidDate(props.value)) {
59
+ setTimeUntilStart(calculateTimeDifference(props.value));
60
+ const initialTimeout = setTimeout(() => {
61
+ const interval = setInterval(() => {
62
+ setTimeUntilStart(calculateTimeDifference(props.value));
63
+ }, 6e4);
64
+ return () => clearInterval(interval);
65
+ }, 5e3);
66
+ return () => clearTimeout(initialTimeout);
67
+ } else {
68
+ setTimeUntilStart("");
69
+ }
70
+ }, [props.value]);
71
+ return /* @__PURE__ */ jsx("div", { children: timeUntilStart });
72
+ };
73
+ var TimeUntilStartsClient_default = TimeUntilStartsClient;
74
+ export {
75
+ TimeUntilStartsClient_default as default
76
+ };
@@ -0,0 +1,78 @@
1
+ "use client";
2
+
3
+ "use client";
4
+
5
+ // src/components/controls/view/TimeUntilStartsClient.tsx
6
+ import { useState, useEffect } from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+ var TimeUntilStartsClient = (props) => {
9
+ const calculateTimeDifference = (startDate) => {
10
+ const now = /* @__PURE__ */ new Date();
11
+ const nowUtc = new Date(now.getTime() + now.getTimezoneOffset() * 6e4);
12
+ const startDateUtc = new Date(startDate);
13
+ const diffMs = startDateUtc.getTime() - nowUtc.getTime();
14
+ const isPast = diffMs < 0;
15
+ const absoluteDiffMs = Math.abs(diffMs);
16
+ const diffDays = Math.floor(absoluteDiffMs / (1e3 * 60 * 60 * 24));
17
+ const diffHours = Math.floor(
18
+ absoluteDiffMs % (1e3 * 60 * 60 * 24) / (1e3 * 60 * 60)
19
+ );
20
+ const diffMinutes = Math.floor(
21
+ absoluteDiffMs % (1e3 * 60 * 60) / (1e3 * 60)
22
+ );
23
+ if (absoluteDiffMs < 6e4) {
24
+ return "Just now";
25
+ }
26
+ let timeParts = [
27
+ { value: diffDays, unit: "days" },
28
+ { value: diffHours, unit: "hours" },
29
+ { value: diffMinutes, unit: "minutes" }
30
+ ];
31
+ timeParts = timeParts.filter((part) => part.value > 0);
32
+ if (isPast) {
33
+ if (diffDays > 0) {
34
+ return `${diffDays} day(s) ago`;
35
+ } else if (diffHours > 0) {
36
+ return `${diffHours} hour(s) ago`;
37
+ } else if (diffMinutes > 0) {
38
+ return `${diffMinutes} minute(s) ago`;
39
+ } else {
40
+ return "Just now";
41
+ }
42
+ } else {
43
+ if (timeParts.length > 2) {
44
+ timeParts = timeParts.slice(0, 2);
45
+ }
46
+ const displayString = timeParts.map((part) => `${part.value} ${part.unit}`).join(" ");
47
+ return displayString ? `Starting in ${displayString}` : "Started";
48
+ }
49
+ };
50
+ const isValidDate = (date) => {
51
+ return !isNaN(Date.parse(date));
52
+ };
53
+ const [timeUntilStart, setTimeUntilStart] = useState(() => {
54
+ if (props.value && isValidDate(props.value)) {
55
+ return calculateTimeDifference(props.value);
56
+ }
57
+ return "";
58
+ });
59
+ useEffect(() => {
60
+ if (props.value && isValidDate(props.value)) {
61
+ setTimeUntilStart(calculateTimeDifference(props.value));
62
+ const initialTimeout = setTimeout(() => {
63
+ const interval = setInterval(() => {
64
+ setTimeUntilStart(calculateTimeDifference(props.value));
65
+ }, 6e4);
66
+ return () => clearInterval(interval);
67
+ }, 5e3);
68
+ return () => clearTimeout(initialTimeout);
69
+ } else {
70
+ setTimeUntilStart("");
71
+ }
72
+ }, [props.value]);
73
+ return /* @__PURE__ */ jsx("div", { children: timeUntilStart });
74
+ };
75
+ var TimeUntilStartsClient_default = TimeUntilStartsClient;
76
+ export {
77
+ TimeUntilStartsClient_default as default
78
+ };
package/dist/index.js CHANGED
@@ -823,6 +823,89 @@ var init_DateTimeViewClient = __esm({
823
823
  }
824
824
  });
825
825
 
826
+ // src/components/controls/view/TimeUntilStartsClient.tsx
827
+ var TimeUntilStartsClient_exports = {};
828
+ __export(TimeUntilStartsClient_exports, {
829
+ default: () => TimeUntilStartsClient_default
830
+ });
831
+ var import_react15, import_jsx_runtime18, TimeUntilStartsClient, TimeUntilStartsClient_default;
832
+ var init_TimeUntilStartsClient = __esm({
833
+ "src/components/controls/view/TimeUntilStartsClient.tsx"() {
834
+ "use strict";
835
+ "use client";
836
+ import_react15 = require("react");
837
+ import_jsx_runtime18 = require("react/jsx-runtime");
838
+ TimeUntilStartsClient = (props) => {
839
+ const calculateTimeDifference = (startDate) => {
840
+ const now = /* @__PURE__ */ new Date();
841
+ const nowUtc = new Date(now.getTime() + now.getTimezoneOffset() * 6e4);
842
+ const startDateUtc = new Date(startDate);
843
+ const diffMs = startDateUtc.getTime() - nowUtc.getTime();
844
+ const isPast = diffMs < 0;
845
+ const absoluteDiffMs = Math.abs(diffMs);
846
+ const diffDays = Math.floor(absoluteDiffMs / (1e3 * 60 * 60 * 24));
847
+ const diffHours = Math.floor(
848
+ absoluteDiffMs % (1e3 * 60 * 60 * 24) / (1e3 * 60 * 60)
849
+ );
850
+ const diffMinutes = Math.floor(
851
+ absoluteDiffMs % (1e3 * 60 * 60) / (1e3 * 60)
852
+ );
853
+ if (absoluteDiffMs < 6e4) {
854
+ return "Just now";
855
+ }
856
+ let timeParts = [
857
+ { value: diffDays, unit: "days" },
858
+ { value: diffHours, unit: "hours" },
859
+ { value: diffMinutes, unit: "minutes" }
860
+ ];
861
+ timeParts = timeParts.filter((part) => part.value > 0);
862
+ if (isPast) {
863
+ if (diffDays > 0) {
864
+ return `${diffDays} day(s) ago`;
865
+ } else if (diffHours > 0) {
866
+ return `${diffHours} hour(s) ago`;
867
+ } else if (diffMinutes > 0) {
868
+ return `${diffMinutes} minute(s) ago`;
869
+ } else {
870
+ return "Just now";
871
+ }
872
+ } else {
873
+ if (timeParts.length > 2) {
874
+ timeParts = timeParts.slice(0, 2);
875
+ }
876
+ const displayString = timeParts.map((part) => `${part.value} ${part.unit}`).join(" ");
877
+ return displayString ? `Starting in ${displayString}` : "Started";
878
+ }
879
+ };
880
+ const isValidDate = (date) => {
881
+ return !isNaN(Date.parse(date));
882
+ };
883
+ const [timeUntilStart, setTimeUntilStart] = (0, import_react15.useState)(() => {
884
+ if (props.value && isValidDate(props.value)) {
885
+ return calculateTimeDifference(props.value);
886
+ }
887
+ return "";
888
+ });
889
+ (0, import_react15.useEffect)(() => {
890
+ if (props.value && isValidDate(props.value)) {
891
+ setTimeUntilStart(calculateTimeDifference(props.value));
892
+ const initialTimeout = setTimeout(() => {
893
+ const interval = setInterval(() => {
894
+ setTimeUntilStart(calculateTimeDifference(props.value));
895
+ }, 6e4);
896
+ return () => clearInterval(interval);
897
+ }, 5e3);
898
+ return () => clearTimeout(initialTimeout);
899
+ } else {
900
+ setTimeUntilStart("");
901
+ }
902
+ }, [props.value]);
903
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { children: timeUntilStart });
904
+ };
905
+ TimeUntilStartsClient_default = TimeUntilStartsClient;
906
+ }
907
+ });
908
+
826
909
  // src/components/controls/edit/MultilineTextInput.tsx
827
910
  var import_react17, import_jsx_runtime20, MultilineTextInput, MultilineTextInput_default;
828
911
  var init_MultilineTextInput = __esm({
@@ -5045,75 +5128,10 @@ var DateTimeView = (0, import_dynamic3.default)(() => Promise.resolve().then(()
5045
5128
  var DateTimeVew_default = DateTimeView;
5046
5129
 
5047
5130
  // src/components/controls/view/TimeUntilStarts.tsx
5048
- var import_react15 = require("react");
5049
- var import_jsx_runtime18 = require("react/jsx-runtime");
5050
- var TimeUntilStarts = (props) => {
5051
- const calculateTimeDifference = (startDate) => {
5052
- const now = /* @__PURE__ */ new Date();
5053
- const nowUtc = new Date(now.getTime() + now.getTimezoneOffset() * 6e4);
5054
- const startDateUtc = new Date(startDate);
5055
- const diffMs = startDateUtc.getTime() - nowUtc.getTime();
5056
- const isPast = diffMs < 0;
5057
- const absoluteDiffMs = Math.abs(diffMs);
5058
- const diffDays = Math.floor(absoluteDiffMs / (1e3 * 60 * 60 * 24));
5059
- const diffHours = Math.floor(
5060
- absoluteDiffMs % (1e3 * 60 * 60 * 24) / (1e3 * 60 * 60)
5061
- );
5062
- const diffMinutes = Math.floor(
5063
- absoluteDiffMs % (1e3 * 60 * 60) / (1e3 * 60)
5064
- );
5065
- if (absoluteDiffMs < 6e4) {
5066
- return "Just now";
5067
- }
5068
- let timeParts = [
5069
- { value: diffDays, unit: "days" },
5070
- { value: diffHours, unit: "hours" },
5071
- { value: diffMinutes, unit: "minutes" }
5072
- ];
5073
- timeParts = timeParts.filter((part) => part.value > 0);
5074
- if (isPast) {
5075
- if (diffDays > 0) {
5076
- return `${diffDays} day(s) ago`;
5077
- } else if (diffHours > 0) {
5078
- return `${diffHours} hour(s) ago`;
5079
- } else if (diffMinutes > 0) {
5080
- return `${diffMinutes} minute(s) ago`;
5081
- } else {
5082
- return "Just now";
5083
- }
5084
- } else {
5085
- if (timeParts.length > 2) {
5086
- timeParts = timeParts.slice(0, 2);
5087
- }
5088
- const displayString = timeParts.map((part) => `${part.value} ${part.unit}`).join(" ");
5089
- return displayString ? `Starting in ${displayString}` : "Started";
5090
- }
5091
- };
5092
- const isValidDate = (date) => {
5093
- return !isNaN(Date.parse(date));
5094
- };
5095
- const [timeUntilStart, setTimeUntilStart] = (0, import_react15.useState)(() => {
5096
- if (props.value && isValidDate(props.value)) {
5097
- return calculateTimeDifference(props.value);
5098
- }
5099
- return "";
5100
- });
5101
- (0, import_react15.useEffect)(() => {
5102
- if (props.value && isValidDate(props.value)) {
5103
- setTimeUntilStart(calculateTimeDifference(props.value));
5104
- const initialTimeout = setTimeout(() => {
5105
- const interval = setInterval(() => {
5106
- setTimeUntilStart(calculateTimeDifference(props.value));
5107
- }, 6e4);
5108
- return () => clearInterval(interval);
5109
- }, 5e3);
5110
- return () => clearTimeout(initialTimeout);
5111
- } else {
5112
- setTimeUntilStart("");
5113
- }
5114
- }, [props.value]);
5115
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { children: timeUntilStart });
5116
- };
5131
+ var import_dynamic4 = __toESM(require("next/dynamic"));
5132
+ var TimeUntilStarts = (0, import_dynamic4.default)(() => Promise.resolve().then(() => (init_TimeUntilStartsClient(), TimeUntilStartsClient_exports)), {
5133
+ ssr: false
5134
+ });
5117
5135
  var TimeUntilStarts_default = TimeUntilStarts;
5118
5136
 
5119
5137
  // src/components/controls/view/ViewControl.tsx
@@ -5139,7 +5157,7 @@ var ViewControl = (props) => {
5139
5157
  [ViewControlTypes_default.status]: StatusView_default,
5140
5158
  [ViewControlTypes_default.statusBg]: StatusBgView_default,
5141
5159
  [ViewControlTypes_default.progressIndicator]: ProgressIndicator_default,
5142
- // [ViewControlTypes.timeUntilStarts]: TimeUntilStarts,
5160
+ [ViewControlTypes_default.timeUntilStarts]: TimeUntilStarts_default,
5143
5161
  // [ViewControlTypes.timeUntilStartsStyled]: TimeUntilStartsStyled,
5144
5162
  [ViewControlTypes_default.aiGeneratedSummary]: AiGeneratedSummary_default,
5145
5163
  [ViewControlTypes_default.booleanView]: BooleanView_default,
@@ -5151,8 +5169,8 @@ var ViewControl = (props) => {
5151
5169
  var ViewControl_default = ViewControl;
5152
5170
 
5153
5171
  // src/components/controls/edit/InputControl.tsx
5154
- var import_dynamic4 = __toESM(require("next/dynamic"));
5155
- var InputControl2 = (0, import_dynamic4.default)(() => Promise.resolve().then(() => (init_InputControlClient(), InputControlClient_exports)), {
5172
+ var import_dynamic5 = __toESM(require("next/dynamic"));
5173
+ var InputControl2 = (0, import_dynamic5.default)(() => Promise.resolve().then(() => (init_InputControlClient(), InputControlClient_exports)), {
5156
5174
  ssr: false
5157
5175
  });
5158
5176
  var InputControl_default = InputControl2;
@@ -5250,9 +5268,9 @@ var import_react43 = __toESM(require("react"));
5250
5268
 
5251
5269
  // src/components/pageRenderingEngine/nodes/ImageNode.tsx
5252
5270
  init_AssetUtility();
5253
- var import_dynamic5 = __toESM(require("next/dynamic"));
5271
+ var import_dynamic6 = __toESM(require("next/dynamic"));
5254
5272
  var import_jsx_runtime54 = require("react/jsx-runtime");
5255
- var HlsPlayer3 = (0, import_dynamic5.default)(() => Promise.resolve().then(() => (init_HlsPlayer(), HlsPlayer_exports)), { ssr: false });
5273
+ var HlsPlayer3 = (0, import_dynamic6.default)(() => Promise.resolve().then(() => (init_HlsPlayer(), HlsPlayer_exports)), { ssr: false });
5256
5274
  var getNestedValue = (obj, path) => {
5257
5275
  if (!obj || !path) return void 0;
5258
5276
  return path.split(".").reduce((current, key) => {
@@ -5360,9 +5378,9 @@ var ImageNode_default = ImageNode;
5360
5378
  // src/components/pageRenderingEngine/nodes/LinkNode.tsx
5361
5379
  init_StyleTypes();
5362
5380
  init_Hyperlink();
5363
- var import_dynamic6 = __toESM(require("next/dynamic"));
5381
+ var import_dynamic7 = __toESM(require("next/dynamic"));
5364
5382
  var import_jsx_runtime56 = require("react/jsx-runtime");
5365
- var LinkNodeButton2 = (0, import_dynamic6.default)(() => Promise.resolve().then(() => (init_LinkNodeButton(), LinkNodeButton_exports)), {
5383
+ var LinkNodeButton2 = (0, import_dynamic7.default)(() => Promise.resolve().then(() => (init_LinkNodeButton(), LinkNodeButton_exports)), {
5366
5384
  ssr: false
5367
5385
  });
5368
5386
  function getNestedValue2(obj, path) {
@@ -5795,9 +5813,9 @@ var QuoteNode_default = QuoteNode;
5795
5813
 
5796
5814
  // src/components/pageRenderingEngine/nodes/CodeNode.tsx
5797
5815
  var import_react50 = __toESM(require("react"));
5798
- var import_dynamic7 = __toESM(require("next/dynamic"));
5816
+ var import_dynamic8 = __toESM(require("next/dynamic"));
5799
5817
  var import_jsx_runtime66 = require("react/jsx-runtime");
5800
- var CopyButton2 = (0, import_dynamic7.default)(() => Promise.resolve().then(() => (init_CopyButton(), CopyButton_exports)), {
5818
+ var CopyButton2 = (0, import_dynamic8.default)(() => Promise.resolve().then(() => (init_CopyButton(), CopyButton_exports)), {
5801
5819
  ssr: false,
5802
5820
  // optional: fallback UI while loading
5803
5821
  loading: () => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-gray-400 text-xs", children: "Copy" })
@@ -5934,13 +5952,13 @@ var WidgetNode = (props) => {
5934
5952
  var WidgetNode_default = WidgetNode;
5935
5953
 
5936
5954
  // src/components/pageRenderingEngine/nodes/DivContainer.tsx
5937
- var import_dynamic10 = __toESM(require("next/dynamic"));
5955
+ var import_dynamic11 = __toESM(require("next/dynamic"));
5938
5956
  var import_react56 = __toESM(require("react"));
5939
5957
 
5940
5958
  // src/components/pageRenderingEngine/nodes/EmbedNode.tsx
5941
- var import_dynamic8 = __toESM(require("next/dynamic"));
5959
+ var import_dynamic9 = __toESM(require("next/dynamic"));
5942
5960
  var import_jsx_runtime71 = require("react/jsx-runtime");
5943
- var IframeClient2 = (0, import_dynamic8.default)(() => Promise.resolve().then(() => (init_IframeClient(), IframeClient_exports)), {
5961
+ var IframeClient2 = (0, import_dynamic9.default)(() => Promise.resolve().then(() => (init_IframeClient(), IframeClient_exports)), {
5944
5962
  ssr: false
5945
5963
  });
5946
5964
  var EmbedNode = (props) => {
@@ -6182,9 +6200,9 @@ var NoDataFound_default = NoDataFound;
6182
6200
 
6183
6201
  // src/components/pageRenderingEngine/nodes/ImageGalleryNode.tsx
6184
6202
  init_AssetUtility();
6185
- var import_dynamic9 = __toESM(require("next/dynamic"));
6203
+ var import_dynamic10 = __toESM(require("next/dynamic"));
6186
6204
  var import_jsx_runtime73 = require("react/jsx-runtime");
6187
- var HlsPlayer4 = (0, import_dynamic9.default)(() => Promise.resolve().then(() => (init_HlsPlayer(), HlsPlayer_exports)), { ssr: false });
6205
+ var HlsPlayer4 = (0, import_dynamic10.default)(() => Promise.resolve().then(() => (init_HlsPlayer(), HlsPlayer_exports)), { ssr: false });
6188
6206
  var deviceToMediaQuery = (device) => {
6189
6207
  switch (device) {
6190
6208
  case "lg":
@@ -7033,8 +7051,8 @@ var DocumentNode_default = DocumentNode;
7033
7051
 
7034
7052
  // src/components/pageRenderingEngine/nodes/DivContainer.tsx
7035
7053
  var import_jsx_runtime77 = require("react/jsx-runtime");
7036
- var Pagination2 = (0, import_dynamic10.default)(() => Promise.resolve().then(() => (init_Pagination(), Pagination_exports)), { ssr: true });
7037
- var Slider2 = (0, import_dynamic10.default)(() => Promise.resolve().then(() => (init_Slider(), Slider_exports)), {
7054
+ var Pagination2 = (0, import_dynamic11.default)(() => Promise.resolve().then(() => (init_Pagination(), Pagination_exports)), { ssr: true });
7055
+ var Slider2 = (0, import_dynamic11.default)(() => Promise.resolve().then(() => (init_Slider(), Slider_exports)), {
7038
7056
  ssr: false
7039
7057
  });
7040
7058
  function toCamelCase(str) {