@underverse-ui/underverse 0.2.88 → 0.2.90
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.
- package/dist/index.cjs +103 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +30 -1
- package/dist/index.d.ts +30 -1
- package/dist/index.js +103 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -730,6 +730,7 @@ var defaultTranslations = {
|
|
|
730
730
|
month: "Month",
|
|
731
731
|
week: "Week",
|
|
732
732
|
day: "Day",
|
|
733
|
+
resourcesHeader: "Resources",
|
|
733
734
|
expandGroup: "Expand group",
|
|
734
735
|
collapseGroup: "Collapse group",
|
|
735
736
|
more: "+{n} more"
|
|
@@ -805,6 +806,7 @@ var defaultTranslations = {
|
|
|
805
806
|
month: "Th\xE1ng",
|
|
806
807
|
week: "Tu\u1EA7n",
|
|
807
808
|
day: "Ng\xE0y",
|
|
809
|
+
resourcesHeader: "T\xE0i nguy\xEAn",
|
|
808
810
|
expandGroup: "M\u1EDF nh\xF3m",
|
|
809
811
|
collapseGroup: "Thu g\u1ECDn nh\xF3m",
|
|
810
812
|
more: "+{n} th\xEAm"
|
|
@@ -880,6 +882,7 @@ var defaultTranslations = {
|
|
|
880
882
|
month: "\uC6D4",
|
|
881
883
|
week: "\uC8FC",
|
|
882
884
|
day: "\uC77C",
|
|
885
|
+
resourcesHeader: "\uB9AC\uC18C\uC2A4",
|
|
883
886
|
expandGroup: "\uADF8\uB8F9 \uD3BC\uCE58\uAE30",
|
|
884
887
|
collapseGroup: "\uADF8\uB8F9 \uC811\uAE30",
|
|
885
888
|
more: "+{n}\uAC1C \uB354"
|
|
@@ -955,6 +958,7 @@ var defaultTranslations = {
|
|
|
955
958
|
month: "\u6708",
|
|
956
959
|
week: "\u9031",
|
|
957
960
|
day: "\u65E5",
|
|
961
|
+
resourcesHeader: "\u30EA\u30BD\u30FC\u30B9",
|
|
958
962
|
expandGroup: "\u30B0\u30EB\u30FC\u30D7\u3092\u5C55\u958B",
|
|
959
963
|
collapseGroup: "\u30B0\u30EB\u30FC\u30D7\u3092\u6298\u308A\u305F\u305F\u3080",
|
|
960
964
|
more: "+{n}\u4EF6"
|
|
@@ -5755,11 +5759,6 @@ var ScrollArea = (0, import_react14.forwardRef)(
|
|
|
5755
5759
|
);
|
|
5756
5760
|
ScrollArea.displayName = "ScrollArea";
|
|
5757
5761
|
|
|
5758
|
-
// ../../components/ui/DatePicker.tsx
|
|
5759
|
-
var React23 = __toESM(require("react"), 1);
|
|
5760
|
-
var import_react15 = require("react");
|
|
5761
|
-
var import_lucide_react14 = require("lucide-react");
|
|
5762
|
-
|
|
5763
5762
|
// ../../lib/utils/date.ts
|
|
5764
5763
|
function formatDateShort(date) {
|
|
5765
5764
|
if (!date) return "";
|
|
@@ -5773,6 +5772,9 @@ function formatDateShort(date) {
|
|
|
5773
5772
|
}
|
|
5774
5773
|
|
|
5775
5774
|
// ../../components/ui/DatePicker.tsx
|
|
5775
|
+
var import_lucide_react14 = require("lucide-react");
|
|
5776
|
+
var React23 = __toESM(require("react"), 1);
|
|
5777
|
+
var import_react15 = require("react");
|
|
5776
5778
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
5777
5779
|
var DatePicker = ({
|
|
5778
5780
|
id,
|
|
@@ -8007,6 +8009,15 @@ function CalendarTimeline({
|
|
|
8007
8009
|
resources,
|
|
8008
8010
|
events,
|
|
8009
8011
|
size = "md",
|
|
8012
|
+
enableEventSheet,
|
|
8013
|
+
eventSheetSize = "md",
|
|
8014
|
+
renderEventSheet,
|
|
8015
|
+
selectedEventId,
|
|
8016
|
+
defaultSelectedEventId,
|
|
8017
|
+
onSelectedEventIdChange,
|
|
8018
|
+
eventSheetOpen,
|
|
8019
|
+
defaultEventSheetOpen,
|
|
8020
|
+
onEventSheetOpenChange,
|
|
8010
8021
|
view,
|
|
8011
8022
|
defaultView = "month",
|
|
8012
8023
|
onViewChange,
|
|
@@ -8047,6 +8058,28 @@ function CalendarTimeline({
|
|
|
8047
8058
|
const detectedLocale = useLocale();
|
|
8048
8059
|
const resolvedLocale = React28.useMemo(() => localeToBCP47(locale ?? detectedLocale), [locale, detectedLocale]);
|
|
8049
8060
|
const resolvedTimeZone = React28.useMemo(() => timeZone ?? Intl.DateTimeFormat().resolvedOptions().timeZone ?? "UTC", [timeZone]);
|
|
8061
|
+
const effectiveEnableEventSheet = enableEventSheet ?? Boolean(renderEventSheet);
|
|
8062
|
+
const isControlledSelectedEventId = selectedEventId !== void 0;
|
|
8063
|
+
const [internalSelectedEventId, setInternalSelectedEventId] = React28.useState(defaultSelectedEventId ?? null);
|
|
8064
|
+
const activeSelectedEventId = isControlledSelectedEventId ? selectedEventId : internalSelectedEventId;
|
|
8065
|
+
const setSelectedEventId = React28.useCallback(
|
|
8066
|
+
(next) => {
|
|
8067
|
+
if (!isControlledSelectedEventId) setInternalSelectedEventId(next);
|
|
8068
|
+
onSelectedEventIdChange?.(next);
|
|
8069
|
+
},
|
|
8070
|
+
[isControlledSelectedEventId, onSelectedEventIdChange]
|
|
8071
|
+
);
|
|
8072
|
+
const isControlledEventSheetOpen = eventSheetOpen !== void 0;
|
|
8073
|
+
const [internalEventSheetOpen, setInternalEventSheetOpen] = React28.useState(defaultEventSheetOpen ?? false);
|
|
8074
|
+
const activeEventSheetOpen = isControlledEventSheetOpen ? Boolean(eventSheetOpen) : internalEventSheetOpen;
|
|
8075
|
+
const setEventSheetOpen = React28.useCallback(
|
|
8076
|
+
(next) => {
|
|
8077
|
+
if (!isControlledEventSheetOpen) setInternalEventSheetOpen(next);
|
|
8078
|
+
onEventSheetOpenChange?.(next);
|
|
8079
|
+
if (!next) setSelectedEventId(null);
|
|
8080
|
+
},
|
|
8081
|
+
[isControlledEventSheetOpen, onEventSheetOpenChange, setSelectedEventId]
|
|
8082
|
+
);
|
|
8050
8083
|
const sizeConfig = React28.useMemo(() => {
|
|
8051
8084
|
const cfgBySize = {
|
|
8052
8085
|
sm: {
|
|
@@ -8263,6 +8296,31 @@ function CalendarTimeline({
|
|
|
8263
8296
|
for (const r of resources) map.set(r.id, r);
|
|
8264
8297
|
return map;
|
|
8265
8298
|
}, [resources]);
|
|
8299
|
+
const selectedEvent = React28.useMemo(() => {
|
|
8300
|
+
if (!activeSelectedEventId) return null;
|
|
8301
|
+
const found = normalizedEvents.find((e) => e.id === activeSelectedEventId);
|
|
8302
|
+
return found ?? null;
|
|
8303
|
+
}, [activeSelectedEventId, normalizedEvents]);
|
|
8304
|
+
const selectedResource = React28.useMemo(() => {
|
|
8305
|
+
if (!selectedEvent) return void 0;
|
|
8306
|
+
return resourceById.get(selectedEvent.resourceId);
|
|
8307
|
+
}, [resourceById, selectedEvent]);
|
|
8308
|
+
const selectedTimeText = React28.useMemo(() => {
|
|
8309
|
+
if (!selectedEvent) return "";
|
|
8310
|
+
return formatters?.eventTime?.({
|
|
8311
|
+
start: selectedEvent._start,
|
|
8312
|
+
end: selectedEvent._end,
|
|
8313
|
+
locale: resolvedLocale,
|
|
8314
|
+
timeZone: resolvedTimeZone,
|
|
8315
|
+
view: activeView
|
|
8316
|
+
}) ?? defaultEventTime({ start: selectedEvent._start, end: selectedEvent._end, locale: resolvedLocale, timeZone: resolvedTimeZone, view: activeView });
|
|
8317
|
+
}, [activeView, formatters, resolvedLocale, resolvedTimeZone, selectedEvent]);
|
|
8318
|
+
React28.useEffect(() => {
|
|
8319
|
+
if (!effectiveEnableEventSheet) return;
|
|
8320
|
+
if (activeEventSheetOpen && activeSelectedEventId && !selectedEvent) {
|
|
8321
|
+
setEventSheetOpen(false);
|
|
8322
|
+
}
|
|
8323
|
+
}, [activeEventSheetOpen, activeSelectedEventId, effectiveEnableEventSheet, selectedEvent, setEventSheetOpen]);
|
|
8266
8324
|
const leftRef = React28.useRef(null);
|
|
8267
8325
|
const bodyRef = React28.useRef(null);
|
|
8268
8326
|
const headerRef = React28.useRef(null);
|
|
@@ -8731,7 +8789,13 @@ function CalendarTimeline({
|
|
|
8731
8789
|
role: "button",
|
|
8732
8790
|
tabIndex: 0,
|
|
8733
8791
|
"aria-label": aria,
|
|
8734
|
-
onClick: () =>
|
|
8792
|
+
onClick: () => {
|
|
8793
|
+
onEventClick?.(ev);
|
|
8794
|
+
if (effectiveEnableEventSheet) {
|
|
8795
|
+
setSelectedEventId(ev.id);
|
|
8796
|
+
setEventSheetOpen(true);
|
|
8797
|
+
}
|
|
8798
|
+
},
|
|
8735
8799
|
onDoubleClick: () => onEventDoubleClick?.(ev),
|
|
8736
8800
|
onPointerDown: (e) => onPointerDownEvent(e, ev, "move"),
|
|
8737
8801
|
children: [
|
|
@@ -8797,7 +8861,35 @@ function CalendarTimeline({
|
|
|
8797
8861
|
]
|
|
8798
8862
|
}
|
|
8799
8863
|
)
|
|
8800
|
-
] })
|
|
8864
|
+
] }),
|
|
8865
|
+
effectiveEnableEventSheet && selectedEvent ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
8866
|
+
Sheet,
|
|
8867
|
+
{
|
|
8868
|
+
open: activeEventSheetOpen,
|
|
8869
|
+
onOpenChange: setEventSheetOpen,
|
|
8870
|
+
side: "right",
|
|
8871
|
+
size: eventSheetSize,
|
|
8872
|
+
title: selectedEvent.title ?? "Event",
|
|
8873
|
+
description: selectedTimeText || void 0,
|
|
8874
|
+
children: renderEventSheet ? renderEventSheet({
|
|
8875
|
+
event: selectedEvent,
|
|
8876
|
+
resource: selectedResource,
|
|
8877
|
+
close: () => setEventSheetOpen(false),
|
|
8878
|
+
locale: resolvedLocale,
|
|
8879
|
+
timeZone: resolvedTimeZone,
|
|
8880
|
+
view: activeView
|
|
8881
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "space-y-3", children: [
|
|
8882
|
+
selectedResource?.label ? /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { children: [
|
|
8883
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "text-xs text-muted-foreground", children: t("resourcesHeader") }),
|
|
8884
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "font-medium", children: selectedResource.label })
|
|
8885
|
+
] }) : null,
|
|
8886
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { children: [
|
|
8887
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "text-xs text-muted-foreground", children: "ID" }),
|
|
8888
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "font-mono text-xs break-all", children: selectedEvent.id })
|
|
8889
|
+
] })
|
|
8890
|
+
] })
|
|
8891
|
+
}
|
|
8892
|
+
) : null
|
|
8801
8893
|
]
|
|
8802
8894
|
}
|
|
8803
8895
|
);
|
|
@@ -16051,6 +16143,7 @@ var en_default = {
|
|
|
16051
16143
|
month: "Month",
|
|
16052
16144
|
week: "Week",
|
|
16053
16145
|
day: "Day",
|
|
16146
|
+
resourcesHeader: "Resources",
|
|
16054
16147
|
expandGroup: "Expand group",
|
|
16055
16148
|
collapseGroup: "Collapse group",
|
|
16056
16149
|
more: "+{n} more"
|
|
@@ -16137,6 +16230,7 @@ var vi_default = {
|
|
|
16137
16230
|
month: "Th\xE1ng",
|
|
16138
16231
|
week: "Tu\u1EA7n",
|
|
16139
16232
|
day: "Ng\xE0y",
|
|
16233
|
+
resourcesHeader: "T\xE0i nguy\xEAn",
|
|
16140
16234
|
expandGroup: "M\u1EDF nh\xF3m",
|
|
16141
16235
|
collapseGroup: "Thu g\u1ECDn nh\xF3m",
|
|
16142
16236
|
more: "+{n} th\xEAm"
|
|
@@ -16223,6 +16317,7 @@ var ko_default = {
|
|
|
16223
16317
|
month: "\uC6D4",
|
|
16224
16318
|
week: "\uC8FC",
|
|
16225
16319
|
day: "\uC77C",
|
|
16320
|
+
resourcesHeader: "\uB9AC\uC18C\uC2A4",
|
|
16226
16321
|
expandGroup: "\uADF8\uB8F9 \uD3BC\uCE58\uAE30",
|
|
16227
16322
|
collapseGroup: "\uADF8\uB8F9 \uC811\uAE30",
|
|
16228
16323
|
more: "+{n}\uAC1C \uB354"
|
|
@@ -16309,6 +16404,7 @@ var ja_default = {
|
|
|
16309
16404
|
month: "\u6708",
|
|
16310
16405
|
week: "\u9031",
|
|
16311
16406
|
day: "\u65E5",
|
|
16407
|
+
resourcesHeader: "\u30EA\u30BD\u30FC\u30B9",
|
|
16312
16408
|
expandGroup: "\u30B0\u30EB\u30FC\u30D7\u3092\u5C55\u958B",
|
|
16313
16409
|
collapseGroup: "\u30B0\u30EB\u30FC\u30D7\u3092\u6298\u308A\u305F\u305F\u3080",
|
|
16314
16410
|
more: "+{n}\u4EF6"
|