@underverse-ui/underverse 0.2.110 → 0.2.111
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 +21 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +21 -12
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -8897,7 +8897,7 @@ function CalendarTimelineHeader(props) {
|
|
|
8897
8897
|
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "sticky top-0 z-30 bg-linear-to-b from-background via-background to-background/95 border-b border-border/40 backdrop-blur-xl", children: [
|
|
8898
8898
|
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: cn("flex items-center justify-between gap-4", sizeConfig.headerPaddingClass), children: [
|
|
8899
8899
|
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex items-center gap-1.5 min-w-0", children: [
|
|
8900
|
-
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex items-center bg-muted/40 rounded-
|
|
8900
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex items-center bg-muted/40 rounded-full p-1 gap-0.5", children: [
|
|
8901
8901
|
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
8902
8902
|
Button_default,
|
|
8903
8903
|
{
|
|
@@ -8905,7 +8905,7 @@ function CalendarTimelineHeader(props) {
|
|
|
8905
8905
|
size: "icon",
|
|
8906
8906
|
onClick: () => navigate(-1),
|
|
8907
8907
|
"aria-label": labels.prev,
|
|
8908
|
-
className: cn(sizeConfig.controlButtonIconClass, "rounded-
|
|
8908
|
+
className: cn(sizeConfig.controlButtonIconClass, "rounded-full hover:bg-background/80 transition-all duration-200"),
|
|
8909
8909
|
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_lucide_react18.ChevronLeft, { className: "h-4 w-4" })
|
|
8910
8910
|
}
|
|
8911
8911
|
),
|
|
@@ -8915,7 +8915,7 @@ function CalendarTimelineHeader(props) {
|
|
|
8915
8915
|
variant: "ghost",
|
|
8916
8916
|
size: "sm",
|
|
8917
8917
|
onClick: goToday,
|
|
8918
|
-
className: cn(sizeConfig.controlButtonTextClass, "rounded-
|
|
8918
|
+
className: cn(sizeConfig.controlButtonTextClass, "rounded-full hover:bg-background/80 font-medium transition-all duration-200"),
|
|
8919
8919
|
children: labels.today
|
|
8920
8920
|
}
|
|
8921
8921
|
),
|
|
@@ -8926,7 +8926,7 @@ function CalendarTimelineHeader(props) {
|
|
|
8926
8926
|
size: "icon",
|
|
8927
8927
|
onClick: () => navigate(1),
|
|
8928
8928
|
"aria-label": labels.next,
|
|
8929
|
-
className: cn(sizeConfig.controlButtonIconClass, "rounded-
|
|
8929
|
+
className: cn(sizeConfig.controlButtonIconClass, "rounded-full hover:bg-background/80 transition-all duration-200"),
|
|
8930
8930
|
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_lucide_react18.ChevronRight, { className: "h-4 w-4" })
|
|
8931
8931
|
}
|
|
8932
8932
|
)
|
|
@@ -8942,11 +8942,11 @@ function CalendarTimelineHeader(props) {
|
|
|
8942
8942
|
icon: import_lucide_react18.Plus,
|
|
8943
8943
|
disabled: newEventDisabled,
|
|
8944
8944
|
onClick: onNewEventClick,
|
|
8945
|
-
className: cn(sizeConfig.controlButtonTextClass, "rounded-
|
|
8945
|
+
className: cn(sizeConfig.controlButtonTextClass, "rounded-full font-medium transition-all duration-200 gap-1.5"),
|
|
8946
8946
|
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "hidden sm:inline", children: newEventLabel })
|
|
8947
8947
|
}
|
|
8948
8948
|
) : null,
|
|
8949
|
-
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "flex items-center bg-muted/40 rounded-
|
|
8949
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "flex items-center bg-muted/40 rounded-full p-1 gap-0.5", children: ["month", "week", "day"].map((v) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
8950
8950
|
Button_default,
|
|
8951
8951
|
{
|
|
8952
8952
|
variant: activeView === v ? "default" : "ghost",
|
|
@@ -8954,7 +8954,7 @@ function CalendarTimelineHeader(props) {
|
|
|
8954
8954
|
onClick: () => setView(v),
|
|
8955
8955
|
className: cn(
|
|
8956
8956
|
sizeConfig.controlButtonTextClass,
|
|
8957
|
-
"rounded-
|
|
8957
|
+
"rounded-full font-medium transition-all duration-200 gap-1.5",
|
|
8958
8958
|
activeView === v ? "bg-primary text-primary-foreground shadow-sm shadow-primary/25" : "hover:bg-background/80 text-muted-foreground hover:text-foreground"
|
|
8959
8959
|
),
|
|
8960
8960
|
children: [
|
|
@@ -10389,7 +10389,7 @@ function CalendarTimeline({
|
|
|
10389
10389
|
"div",
|
|
10390
10390
|
{
|
|
10391
10391
|
className: cn(
|
|
10392
|
-
"border border-border/40 rounded-2xl overflow-hidden bg-background/95 backdrop-blur-sm",
|
|
10392
|
+
"border border-border/40 rounded-2xl md:rounded-3xl overflow-hidden bg-background/95 backdrop-blur-sm",
|
|
10393
10393
|
"shadow-sm hover:shadow-md transition-shadow duration-300",
|
|
10394
10394
|
densityClass,
|
|
10395
10395
|
className
|
|
@@ -10531,16 +10531,19 @@ function CalendarTimeline({
|
|
|
10531
10531
|
const resource = resourceById.get(ev.resourceId);
|
|
10532
10532
|
const tooltipTitle = ev.title || ev.id;
|
|
10533
10533
|
const shouldCompact = activeView === "day" && dayEventStyle === "compact";
|
|
10534
|
+
const eventInsetX = 2;
|
|
10535
|
+
const leftInset = left + eventInsetX;
|
|
10536
|
+
const widthInset = Math.max(1, width - eventInsetX * 2);
|
|
10534
10537
|
const defaultMaxVisual = clamp4(Math.round(fixedSlotWidth * 1.2), 160, 360);
|
|
10535
10538
|
const maxVisual = clamp4(Math.round(dayEventMaxWidth ?? defaultMaxVisual), 80, 1200);
|
|
10536
|
-
const visualWidth = shouldCompact ? Math.min(
|
|
10537
|
-
const isClipped = shouldCompact &&
|
|
10539
|
+
const visualWidth = shouldCompact ? Math.min(widthInset, maxVisual) : widthInset;
|
|
10540
|
+
const isClipped = shouldCompact && widthInset > visualWidth + 1;
|
|
10538
10541
|
const block = /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
10539
10542
|
"div",
|
|
10540
10543
|
{
|
|
10541
10544
|
className: cn("absolute select-none cursor-pointer", isPreview && "z-10"),
|
|
10542
10545
|
"data-uv-ct-event": true,
|
|
10543
|
-
style: { left, top, width, height: layout.eventHeight },
|
|
10546
|
+
style: { left: leftInset, top, width: widthInset, height: layout.eventHeight },
|
|
10544
10547
|
role: "button",
|
|
10545
10548
|
tabIndex: 0,
|
|
10546
10549
|
"aria-label": aria,
|
|
@@ -10625,11 +10628,17 @@ function CalendarTimeline({
|
|
|
10625
10628
|
const endIdx = clamp4(binarySearchFirstGE(slotStarts, preview.end), startIdx + 1, slots.length);
|
|
10626
10629
|
const left = slotLefts[startIdx] ?? 0;
|
|
10627
10630
|
const width = Math.max(1, (slotLefts[endIdx] ?? 0) - (slotLefts[startIdx] ?? 0));
|
|
10631
|
+
const eventInsetX = 2;
|
|
10628
10632
|
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
10629
10633
|
"div",
|
|
10630
10634
|
{
|
|
10631
10635
|
className: "absolute rounded-lg border-2 border-dashed border-primary/60 bg-primary/10 backdrop-blur-sm animate-pulse",
|
|
10632
|
-
style: {
|
|
10636
|
+
style: {
|
|
10637
|
+
left: left + eventInsetX,
|
|
10638
|
+
top: layout.baseTop,
|
|
10639
|
+
width: Math.max(1, width - eventInsetX * 2),
|
|
10640
|
+
height: layout.eventHeight
|
|
10641
|
+
}
|
|
10633
10642
|
}
|
|
10634
10643
|
);
|
|
10635
10644
|
})() : null,
|