@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 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-xl p-1 gap-0.5", children: [
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-lg hover:bg-background/80 transition-all duration-200"),
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-lg hover:bg-background/80 font-medium transition-all duration-200"),
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-lg hover:bg-background/80 transition-all duration-200"),
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-lg font-medium transition-all duration-200 gap-1.5"),
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-xl p-1 gap-0.5", children: ["month", "week", "day"].map((v) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
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-lg font-medium transition-all duration-200 gap-1.5",
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(width, maxVisual) : width;
10537
- const isClipped = shouldCompact && width > visualWidth + 1;
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: { left, top: layout.baseTop, width, height: layout.eventHeight }
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,