@acoustte-digital-services/digitalstore-controls-dev 0.8.1-dev.20260722074927 → 0.8.1-dev.20260722075037

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,14 @@
1
+ "use client";
2
+ import {
3
+ DateViewClient_default
4
+ } from "./chunk-DKW4DXCU.mjs";
5
+
6
+ // src/components/controls/view/DateTimeViewClient.tsx
7
+ import { jsx } from "react/jsx-runtime";
8
+ var DateTimeViewClient = (props) => {
9
+ return /* @__PURE__ */ jsx(DateViewClient_default, { ...props, controlType: "datetime" });
10
+ };
11
+ var DateTimeViewClient_default = DateTimeViewClient;
12
+ export {
13
+ DateTimeViewClient_default as default
14
+ };
@@ -0,0 +1,16 @@
1
+ "use client";
2
+
3
+ "use client";
4
+ import {
5
+ DateViewClient_default
6
+ } from "./chunk-YBNWT4TV.mjs";
7
+
8
+ // src/components/controls/view/DateTimeViewClient.tsx
9
+ import { jsx } from "react/jsx-runtime";
10
+ var DateTimeViewClient = (props) => {
11
+ return /* @__PURE__ */ jsx(DateViewClient_default, { ...props, controlType: "datetime" });
12
+ };
13
+ var DateTimeViewClient_default = DateTimeViewClient;
14
+ export {
15
+ DateTimeViewClient_default as default
16
+ };
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import {
3
+ DateViewClient_default
4
+ } from "./chunk-DKW4DXCU.mjs";
5
+ export {
6
+ DateViewClient_default as default
7
+ };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+
3
+ "use client";
4
+ import {
5
+ DateViewClient_default
6
+ } from "./chunk-YBNWT4TV.mjs";
7
+ export {
8
+ DateViewClient_default as default
9
+ };
@@ -0,0 +1,120 @@
1
+ // src/components/controls/view/DateViewClient.tsx
2
+ import { useEffect, useState } from "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ var dateFormatter = new Intl.DateTimeFormat("en", {
5
+ day: "2-digit",
6
+ month: "short",
7
+ year: "numeric"
8
+ });
9
+ var timeFormatterNoSeconds = new Intl.DateTimeFormat("en", {
10
+ hour: "2-digit",
11
+ minute: "2-digit"
12
+ });
13
+ var timeFormatterWithSeconds = new Intl.DateTimeFormat("en", {
14
+ hour: "2-digit",
15
+ minute: "2-digit",
16
+ second: "2-digit"
17
+ });
18
+ var dateTimeFormatterNoSeconds = new Intl.DateTimeFormat("en", {
19
+ day: "2-digit",
20
+ month: "short",
21
+ year: "numeric",
22
+ hour: "2-digit",
23
+ minute: "2-digit"
24
+ });
25
+ var dateTimeFormatterWithSeconds = new Intl.DateTimeFormat("en", {
26
+ day: "2-digit",
27
+ month: "short",
28
+ year: "numeric",
29
+ hour: "2-digit",
30
+ minute: "2-digit",
31
+ second: "2-digit"
32
+ });
33
+ var DateViewClient = (props) => {
34
+ const [timeZoneAbbr, setTimeZoneAbbr] = useState("");
35
+ useEffect(() => {
36
+ const parts = new Intl.DateTimeFormat("en", {
37
+ timeZoneName: "short"
38
+ }).formatToParts(/* @__PURE__ */ new Date());
39
+ const abbr = parts.find((part) => part.type === "timeZoneName")?.value || "";
40
+ setTimeZoneAbbr(abbr);
41
+ }, []);
42
+ const toUtcDate = (dateString) => {
43
+ const s = dateString.trim();
44
+ if (!s) {
45
+ throw new Error("Empty date string");
46
+ }
47
+ const iso = s.replace(" ", "T");
48
+ const hasTimeZone = /Z$/i.test(iso) || /[+-]\d{2}:\d{2}$/.test(iso);
49
+ const utc = hasTimeZone ? iso : `${iso}Z`;
50
+ const date = new Date(utc);
51
+ if (Number.isNaN(date.getTime())) {
52
+ throw new Error(`Invalid date: ${dateString}`);
53
+ }
54
+ return date;
55
+ };
56
+ const formatDate = (date) => {
57
+ return dateFormatter.format(date);
58
+ };
59
+ const formatTime = (date) => {
60
+ return date.getSeconds() === 0 ? timeFormatterNoSeconds.format(date) : timeFormatterWithSeconds.format(date);
61
+ };
62
+ const formatDateTime = (date) => {
63
+ return date.getSeconds() === 0 ? dateTimeFormatterNoSeconds.format(date) : dateTimeFormatterWithSeconds.format(date);
64
+ };
65
+ const getTimePeriod = (date) => {
66
+ const hours = date.getHours();
67
+ if (hours >= 5 && hours < 8) return "Early Morning";
68
+ if (hours >= 8 && hours < 12) return "Morning";
69
+ if (hours >= 12 && hours < 14) return "Noon";
70
+ if (hours >= 14 && hours < 17) return "Afternoon";
71
+ if (hours >= 17 && hours < 20) return "Evening";
72
+ if (hours >= 20 && hours < 22) return "Late Evening";
73
+ return "Night";
74
+ };
75
+ const getRelativeTime = (dateString) => {
76
+ const now = /* @__PURE__ */ new Date();
77
+ const utcDate = toUtcDate(dateString);
78
+ const diffMs = now.getTime() - utcDate.getTime();
79
+ const diffSec = Math.floor(diffMs / 1e3);
80
+ const diffMin = Math.floor(diffSec / 60);
81
+ const diffHr = Math.floor(diffMin / 60);
82
+ const diffDay = Math.floor(diffHr / 24);
83
+ if (diffSec < 60) return "Just now";
84
+ if (diffMin < 60) return `${diffMin} minute${diffMin > 1 ? "s" : ""} ago`;
85
+ if (diffHr < 24) return `${diffHr} hour${diffHr > 1 ? "s" : ""} ago`;
86
+ if (diffDay < 7) return `${diffDay} day${diffDay > 1 ? "s" : ""} ago`;
87
+ return formatDate(utcDate);
88
+ };
89
+ const parseAndFormatDate = (dateString, format) => {
90
+ if (format === "relative") {
91
+ return getRelativeTime(dateString);
92
+ }
93
+ const utcDate = toUtcDate(dateString);
94
+ switch (props.controlType) {
95
+ case "date":
96
+ return formatDate(utcDate);
97
+ case "time":
98
+ return `${formatTime(utcDate)} ${timeZoneAbbr} (${getTimePeriod(
99
+ utcDate
100
+ )})`;
101
+ default:
102
+ return formatDateTime(utcDate);
103
+ }
104
+ };
105
+ let localDateTime = "";
106
+ try {
107
+ localDateTime = parseAndFormatDate(props.value, props.format);
108
+ } catch (error) {
109
+ console.error("Error parsing date:", props.value, error);
110
+ }
111
+ return /* @__PURE__ */ jsxs("div", { className: "inline-flex flex-wrap gap-1", children: [
112
+ /* @__PURE__ */ jsx("span", { children: localDateTime }),
113
+ !props.format && props.controlType !== "date" && props.controlType !== "datetime" && timeZoneAbbr && /* @__PURE__ */ jsx("span", { children: timeZoneAbbr })
114
+ ] });
115
+ };
116
+ var DateViewClient_default = DateViewClient;
117
+
118
+ export {
119
+ DateViewClient_default
120
+ };
@@ -0,0 +1,123 @@
1
+ "use client";
2
+
3
+
4
+ // src/components/controls/view/DateViewClient.tsx
5
+ import { useEffect, useState } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ var dateFormatter = new Intl.DateTimeFormat("en", {
8
+ day: "2-digit",
9
+ month: "short",
10
+ year: "numeric"
11
+ });
12
+ var timeFormatterNoSeconds = new Intl.DateTimeFormat("en", {
13
+ hour: "2-digit",
14
+ minute: "2-digit"
15
+ });
16
+ var timeFormatterWithSeconds = new Intl.DateTimeFormat("en", {
17
+ hour: "2-digit",
18
+ minute: "2-digit",
19
+ second: "2-digit"
20
+ });
21
+ var dateTimeFormatterNoSeconds = new Intl.DateTimeFormat("en", {
22
+ day: "2-digit",
23
+ month: "short",
24
+ year: "numeric",
25
+ hour: "2-digit",
26
+ minute: "2-digit"
27
+ });
28
+ var dateTimeFormatterWithSeconds = new Intl.DateTimeFormat("en", {
29
+ day: "2-digit",
30
+ month: "short",
31
+ year: "numeric",
32
+ hour: "2-digit",
33
+ minute: "2-digit",
34
+ second: "2-digit"
35
+ });
36
+ var DateViewClient = (props) => {
37
+ const [timeZoneAbbr, setTimeZoneAbbr] = useState("");
38
+ useEffect(() => {
39
+ const parts = new Intl.DateTimeFormat("en", {
40
+ timeZoneName: "short"
41
+ }).formatToParts(/* @__PURE__ */ new Date());
42
+ const abbr = parts.find((part) => part.type === "timeZoneName")?.value || "";
43
+ setTimeZoneAbbr(abbr);
44
+ }, []);
45
+ const toUtcDate = (dateString) => {
46
+ const s = dateString.trim();
47
+ if (!s) {
48
+ throw new Error("Empty date string");
49
+ }
50
+ const iso = s.replace(" ", "T");
51
+ const hasTimeZone = /Z$/i.test(iso) || /[+-]\d{2}:\d{2}$/.test(iso);
52
+ const utc = hasTimeZone ? iso : `${iso}Z`;
53
+ const date = new Date(utc);
54
+ if (Number.isNaN(date.getTime())) {
55
+ throw new Error(`Invalid date: ${dateString}`);
56
+ }
57
+ return date;
58
+ };
59
+ const formatDate = (date) => {
60
+ return dateFormatter.format(date);
61
+ };
62
+ const formatTime = (date) => {
63
+ return date.getSeconds() === 0 ? timeFormatterNoSeconds.format(date) : timeFormatterWithSeconds.format(date);
64
+ };
65
+ const formatDateTime = (date) => {
66
+ return date.getSeconds() === 0 ? dateTimeFormatterNoSeconds.format(date) : dateTimeFormatterWithSeconds.format(date);
67
+ };
68
+ const getTimePeriod = (date) => {
69
+ const hours = date.getHours();
70
+ if (hours >= 5 && hours < 8) return "Early Morning";
71
+ if (hours >= 8 && hours < 12) return "Morning";
72
+ if (hours >= 12 && hours < 14) return "Noon";
73
+ if (hours >= 14 && hours < 17) return "Afternoon";
74
+ if (hours >= 17 && hours < 20) return "Evening";
75
+ if (hours >= 20 && hours < 22) return "Late Evening";
76
+ return "Night";
77
+ };
78
+ const getRelativeTime = (dateString) => {
79
+ const now = /* @__PURE__ */ new Date();
80
+ const utcDate = toUtcDate(dateString);
81
+ const diffMs = now.getTime() - utcDate.getTime();
82
+ const diffSec = Math.floor(diffMs / 1e3);
83
+ const diffMin = Math.floor(diffSec / 60);
84
+ const diffHr = Math.floor(diffMin / 60);
85
+ const diffDay = Math.floor(diffHr / 24);
86
+ if (diffSec < 60) return "Just now";
87
+ if (diffMin < 60) return `${diffMin} minute${diffMin > 1 ? "s" : ""} ago`;
88
+ if (diffHr < 24) return `${diffHr} hour${diffHr > 1 ? "s" : ""} ago`;
89
+ if (diffDay < 7) return `${diffDay} day${diffDay > 1 ? "s" : ""} ago`;
90
+ return formatDate(utcDate);
91
+ };
92
+ const parseAndFormatDate = (dateString, format) => {
93
+ if (format === "relative") {
94
+ return getRelativeTime(dateString);
95
+ }
96
+ const utcDate = toUtcDate(dateString);
97
+ switch (props.controlType) {
98
+ case "date":
99
+ return formatDate(utcDate);
100
+ case "time":
101
+ return `${formatTime(utcDate)} ${timeZoneAbbr} (${getTimePeriod(
102
+ utcDate
103
+ )})`;
104
+ default:
105
+ return formatDateTime(utcDate);
106
+ }
107
+ };
108
+ let localDateTime = "";
109
+ try {
110
+ localDateTime = parseAndFormatDate(props.value, props.format);
111
+ } catch (error) {
112
+ console.error("Error parsing date:", props.value, error);
113
+ }
114
+ return /* @__PURE__ */ jsxs("div", { className: "inline-flex flex-wrap gap-1", children: [
115
+ /* @__PURE__ */ jsx("span", { children: localDateTime }),
116
+ !props.format && props.controlType !== "date" && props.controlType !== "datetime" && timeZoneAbbr && /* @__PURE__ */ jsx("span", { children: timeZoneAbbr })
117
+ ] });
118
+ };
119
+ var DateViewClient_default = DateViewClient;
120
+
121
+ export {
122
+ DateViewClient_default
123
+ };
package/dist/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  "use strict";
2
4
  var __create = Object.create;
3
5
  var __defProp = Object.defineProperty;
@@ -35,13 +37,42 @@ var DateViewClient_exports = {};
35
37
  __export(DateViewClient_exports, {
36
38
  default: () => DateViewClient_default
37
39
  });
38
- var import_react2, import_jsx_runtime2, DateViewClient, DateViewClient_default;
40
+ var import_react2, import_jsx_runtime2, dateFormatter, timeFormatterNoSeconds, timeFormatterWithSeconds, dateTimeFormatterNoSeconds, dateTimeFormatterWithSeconds, DateViewClient, DateViewClient_default;
39
41
  var init_DateViewClient = __esm({
40
42
  "src/components/controls/view/DateViewClient.tsx"() {
41
43
  "use strict";
42
44
  "use client";
43
45
  import_react2 = require("react");
44
46
  import_jsx_runtime2 = require("react/jsx-runtime");
47
+ dateFormatter = new Intl.DateTimeFormat("en", {
48
+ day: "2-digit",
49
+ month: "short",
50
+ year: "numeric"
51
+ });
52
+ timeFormatterNoSeconds = new Intl.DateTimeFormat("en", {
53
+ hour: "2-digit",
54
+ minute: "2-digit"
55
+ });
56
+ timeFormatterWithSeconds = new Intl.DateTimeFormat("en", {
57
+ hour: "2-digit",
58
+ minute: "2-digit",
59
+ second: "2-digit"
60
+ });
61
+ dateTimeFormatterNoSeconds = new Intl.DateTimeFormat("en", {
62
+ day: "2-digit",
63
+ month: "short",
64
+ year: "numeric",
65
+ hour: "2-digit",
66
+ minute: "2-digit"
67
+ });
68
+ dateTimeFormatterWithSeconds = new Intl.DateTimeFormat("en", {
69
+ day: "2-digit",
70
+ month: "short",
71
+ year: "numeric",
72
+ hour: "2-digit",
73
+ minute: "2-digit",
74
+ second: "2-digit"
75
+ });
45
76
  DateViewClient = (props) => {
46
77
  const [timeZoneAbbr, setTimeZoneAbbr] = (0, import_react2.useState)("");
47
78
  (0, import_react2.useEffect)(() => {
@@ -66,37 +97,13 @@ var init_DateViewClient = __esm({
66
97
  return date;
67
98
  };
68
99
  const formatDate = (date) => {
69
- return new Intl.DateTimeFormat("en", {
70
- day: "2-digit",
71
- month: "short",
72
- year: "numeric"
73
- }).format(date);
100
+ return dateFormatter.format(date);
74
101
  };
75
102
  const formatTime = (date) => {
76
- return date.getSeconds() === 0 ? new Intl.DateTimeFormat("en", {
77
- hour: "2-digit",
78
- minute: "2-digit"
79
- }).format(date) : new Intl.DateTimeFormat("en", {
80
- hour: "2-digit",
81
- minute: "2-digit",
82
- second: "2-digit"
83
- }).format(date);
103
+ return date.getSeconds() === 0 ? timeFormatterNoSeconds.format(date) : timeFormatterWithSeconds.format(date);
84
104
  };
85
105
  const formatDateTime = (date) => {
86
- return date.getSeconds() === 0 ? new Intl.DateTimeFormat("en", {
87
- day: "2-digit",
88
- month: "short",
89
- year: "numeric",
90
- hour: "2-digit",
91
- minute: "2-digit"
92
- }).format(date) : new Intl.DateTimeFormat("en", {
93
- day: "2-digit",
94
- month: "short",
95
- year: "numeric",
96
- hour: "2-digit",
97
- minute: "2-digit",
98
- second: "2-digit"
99
- }).format(date);
106
+ return date.getSeconds() === 0 ? dateTimeFormatterNoSeconds.format(date) : dateTimeFormatterWithSeconds.format(date);
100
107
  };
101
108
  const getTimePeriod = (date) => {
102
109
  const hours = date.getHours();
package/dist/index.mjs CHANGED
@@ -76,7 +76,7 @@ var NumberView_default = NumberView;
76
76
 
77
77
  // src/components/controls/view/DateView.tsx
78
78
  import dynamic from "next/dynamic";
79
- var DateView = dynamic(() => import("./DateViewClient-ELEHLGWS.mjs"), {
79
+ var DateView = dynamic(() => import("./DateViewClient-4CTEMOMJ.mjs"), {
80
80
  ssr: false
81
81
  });
82
82
  var DateView_default = DateView;
@@ -366,7 +366,7 @@ var AiGeneratedSummary_default = AiGeneratedSummary;
366
366
 
367
367
  // src/components/controls/view/DateTimeVew.tsx
368
368
  import dynamic3 from "next/dynamic";
369
- var DateTimeView = dynamic3(() => import("./DateTimeViewClient-22GW4AD7.mjs"), {
369
+ var DateTimeView = dynamic3(() => import("./DateTimeViewClient-K5FE5VSN.mjs"), {
370
370
  ssr: false
371
371
  });
372
372
  var DateTimeVew_default = DateTimeView;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acoustte-digital-services/digitalstore-controls-dev",
3
- "version": "0.8.1-dev.20260722074927",
3
+ "version": "0.8.1-dev.20260722075037",
4
4
  "description": "Reusable React components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",