@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.js CHANGED
@@ -8722,7 +8722,7 @@ function CalendarTimelineHeader(props) {
8722
8722
  return /* @__PURE__ */ jsxs29("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: [
8723
8723
  /* @__PURE__ */ jsxs29("div", { className: cn("flex items-center justify-between gap-4", sizeConfig.headerPaddingClass), children: [
8724
8724
  /* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-1.5 min-w-0", children: [
8725
- /* @__PURE__ */ jsxs29("div", { className: "flex items-center bg-muted/40 rounded-xl p-1 gap-0.5", children: [
8725
+ /* @__PURE__ */ jsxs29("div", { className: "flex items-center bg-muted/40 rounded-full p-1 gap-0.5", children: [
8726
8726
  /* @__PURE__ */ jsx34(
8727
8727
  Button_default,
8728
8728
  {
@@ -8730,7 +8730,7 @@ function CalendarTimelineHeader(props) {
8730
8730
  size: "icon",
8731
8731
  onClick: () => navigate(-1),
8732
8732
  "aria-label": labels.prev,
8733
- className: cn(sizeConfig.controlButtonIconClass, "rounded-lg hover:bg-background/80 transition-all duration-200"),
8733
+ className: cn(sizeConfig.controlButtonIconClass, "rounded-full hover:bg-background/80 transition-all duration-200"),
8734
8734
  children: /* @__PURE__ */ jsx34(ChevronLeft4, { className: "h-4 w-4" })
8735
8735
  }
8736
8736
  ),
@@ -8740,7 +8740,7 @@ function CalendarTimelineHeader(props) {
8740
8740
  variant: "ghost",
8741
8741
  size: "sm",
8742
8742
  onClick: goToday,
8743
- className: cn(sizeConfig.controlButtonTextClass, "rounded-lg hover:bg-background/80 font-medium transition-all duration-200"),
8743
+ className: cn(sizeConfig.controlButtonTextClass, "rounded-full hover:bg-background/80 font-medium transition-all duration-200"),
8744
8744
  children: labels.today
8745
8745
  }
8746
8746
  ),
@@ -8751,7 +8751,7 @@ function CalendarTimelineHeader(props) {
8751
8751
  size: "icon",
8752
8752
  onClick: () => navigate(1),
8753
8753
  "aria-label": labels.next,
8754
- className: cn(sizeConfig.controlButtonIconClass, "rounded-lg hover:bg-background/80 transition-all duration-200"),
8754
+ className: cn(sizeConfig.controlButtonIconClass, "rounded-full hover:bg-background/80 transition-all duration-200"),
8755
8755
  children: /* @__PURE__ */ jsx34(ChevronRight5, { className: "h-4 w-4" })
8756
8756
  }
8757
8757
  )
@@ -8767,11 +8767,11 @@ function CalendarTimelineHeader(props) {
8767
8767
  icon: Plus,
8768
8768
  disabled: newEventDisabled,
8769
8769
  onClick: onNewEventClick,
8770
- className: cn(sizeConfig.controlButtonTextClass, "rounded-lg font-medium transition-all duration-200 gap-1.5"),
8770
+ className: cn(sizeConfig.controlButtonTextClass, "rounded-full font-medium transition-all duration-200 gap-1.5"),
8771
8771
  children: /* @__PURE__ */ jsx34("span", { className: "hidden sm:inline", children: newEventLabel })
8772
8772
  }
8773
8773
  ) : null,
8774
- /* @__PURE__ */ jsx34("div", { className: "flex items-center bg-muted/40 rounded-xl p-1 gap-0.5", children: ["month", "week", "day"].map((v) => /* @__PURE__ */ jsxs29(
8774
+ /* @__PURE__ */ jsx34("div", { className: "flex items-center bg-muted/40 rounded-full p-1 gap-0.5", children: ["month", "week", "day"].map((v) => /* @__PURE__ */ jsxs29(
8775
8775
  Button_default,
8776
8776
  {
8777
8777
  variant: activeView === v ? "default" : "ghost",
@@ -8779,7 +8779,7 @@ function CalendarTimelineHeader(props) {
8779
8779
  onClick: () => setView(v),
8780
8780
  className: cn(
8781
8781
  sizeConfig.controlButtonTextClass,
8782
- "rounded-lg font-medium transition-all duration-200 gap-1.5",
8782
+ "rounded-full font-medium transition-all duration-200 gap-1.5",
8783
8783
  activeView === v ? "bg-primary text-primary-foreground shadow-sm shadow-primary/25" : "hover:bg-background/80 text-muted-foreground hover:text-foreground"
8784
8784
  ),
8785
8785
  children: [
@@ -10214,7 +10214,7 @@ function CalendarTimeline({
10214
10214
  "div",
10215
10215
  {
10216
10216
  className: cn(
10217
- "border border-border/40 rounded-2xl overflow-hidden bg-background/95 backdrop-blur-sm",
10217
+ "border border-border/40 rounded-2xl md:rounded-3xl overflow-hidden bg-background/95 backdrop-blur-sm",
10218
10218
  "shadow-sm hover:shadow-md transition-shadow duration-300",
10219
10219
  densityClass,
10220
10220
  className
@@ -10356,16 +10356,19 @@ function CalendarTimeline({
10356
10356
  const resource = resourceById.get(ev.resourceId);
10357
10357
  const tooltipTitle = ev.title || ev.id;
10358
10358
  const shouldCompact = activeView === "day" && dayEventStyle === "compact";
10359
+ const eventInsetX = 2;
10360
+ const leftInset = left + eventInsetX;
10361
+ const widthInset = Math.max(1, width - eventInsetX * 2);
10359
10362
  const defaultMaxVisual = clamp4(Math.round(fixedSlotWidth * 1.2), 160, 360);
10360
10363
  const maxVisual = clamp4(Math.round(dayEventMaxWidth ?? defaultMaxVisual), 80, 1200);
10361
- const visualWidth = shouldCompact ? Math.min(width, maxVisual) : width;
10362
- const isClipped = shouldCompact && width > visualWidth + 1;
10364
+ const visualWidth = shouldCompact ? Math.min(widthInset, maxVisual) : widthInset;
10365
+ const isClipped = shouldCompact && widthInset > visualWidth + 1;
10363
10366
  const block = /* @__PURE__ */ jsxs33(
10364
10367
  "div",
10365
10368
  {
10366
10369
  className: cn("absolute select-none cursor-pointer", isPreview && "z-10"),
10367
10370
  "data-uv-ct-event": true,
10368
- style: { left, top, width, height: layout.eventHeight },
10371
+ style: { left: leftInset, top, width: widthInset, height: layout.eventHeight },
10369
10372
  role: "button",
10370
10373
  tabIndex: 0,
10371
10374
  "aria-label": aria,
@@ -10450,11 +10453,17 @@ function CalendarTimeline({
10450
10453
  const endIdx = clamp4(binarySearchFirstGE(slotStarts, preview.end), startIdx + 1, slots.length);
10451
10454
  const left = slotLefts[startIdx] ?? 0;
10452
10455
  const width = Math.max(1, (slotLefts[endIdx] ?? 0) - (slotLefts[startIdx] ?? 0));
10456
+ const eventInsetX = 2;
10453
10457
  return /* @__PURE__ */ jsx38(
10454
10458
  "div",
10455
10459
  {
10456
10460
  className: "absolute rounded-lg border-2 border-dashed border-primary/60 bg-primary/10 backdrop-blur-sm animate-pulse",
10457
- style: { left, top: layout.baseTop, width, height: layout.eventHeight }
10461
+ style: {
10462
+ left: left + eventInsetX,
10463
+ top: layout.baseTop,
10464
+ width: Math.max(1, width - eventInsetX * 2),
10465
+ height: layout.eventHeight
10466
+ }
10458
10467
  }
10459
10468
  );
10460
10469
  })() : null,