@flamingo-stack/openframe-frontend-core 0.0.170 → 0.0.171-snapshot.20260513130829

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.
@@ -26355,14 +26355,15 @@ function CompactAssigneeDropdown({
26355
26355
  "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"
26356
26356
  ),
26357
26357
  children: [
26358
- /* @__PURE__ */ jsx235("div", { className: "p-[var(--spacing-system-xs)] border-b border-ods-border", children: /* @__PURE__ */ jsx235(
26358
+ /* @__PURE__ */ jsx235("div", { className: "border-b border-ods-border", children: /* @__PURE__ */ jsx235(
26359
26359
  Input,
26360
26360
  {
26361
26361
  autoFocus: true,
26362
26362
  value: search,
26363
26363
  onChange: (e) => setSearch(e.target.value),
26364
26364
  placeholder: "Search users...",
26365
- startAdornment: /* @__PURE__ */ jsx235(SearchIcon, { className: "size-4 text-ods-text-secondary" })
26365
+ startAdornment: /* @__PURE__ */ jsx235(SearchIcon, { className: "size-4 text-ods-text-secondary" }),
26366
+ className: "rounded-none border-0"
26366
26367
  }
26367
26368
  ) }),
26368
26369
  /* @__PURE__ */ jsx235("div", { className: "max-h-80 overflow-y-auto py-[var(--spacing-system-xs)]", role: "listbox", children: isLoading ? /* @__PURE__ */ jsx235("div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "Loading\u2026" }) : orderedOptions.length === 0 ? /* @__PURE__ */ jsx235("div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "No users found" }) : orderedOptions.map((opt) => {
@@ -32473,7 +32474,9 @@ import {
32473
32474
  DragOverlay,
32474
32475
  KeyboardSensor,
32475
32476
  PointerSensor,
32476
- closestCenter,
32477
+ closestCorners,
32478
+ pointerWithin,
32479
+ rectIntersection,
32477
32480
  useSensor,
32478
32481
  useSensors
32479
32482
  } from "@dnd-kit/core";
@@ -32494,7 +32497,6 @@ function BoardColumnHeader({
32494
32497
  onToggleCollapse,
32495
32498
  onAddTicket
32496
32499
  }) {
32497
- const textColor = getReadableTextColor(column.color);
32498
32500
  const count = column.total ?? column.tickets.length;
32499
32501
  const useStatusVariant = !!getTicketStatusConfig(column.id).icon;
32500
32502
  if (collapsed) {
@@ -32504,18 +32506,19 @@ function BoardColumnHeader({
32504
32506
  {
32505
32507
  variant: "transparent",
32506
32508
  size: "icon",
32507
- className: "h-8 w-8 p-0",
32509
+ className: "h-8 w-8 md:h-8 md:w-8 p-0",
32508
32510
  onClick: onToggleCollapse,
32509
32511
  "aria-label": "Expand column",
32510
32512
  children: /* @__PURE__ */ jsx291(Arrow02RightIcon, { className: "h-6 w-6 text-ods-text-secondary" })
32511
32513
  }
32512
32514
  ),
32513
32515
  /* @__PURE__ */ jsx291(
32514
- "div",
32516
+ TicketStatusTag,
32515
32517
  {
32516
- className: "inline-flex items-center justify-center whitespace-nowrap rounded-md p-[var(--spacing-system-xsf)] text-h5 rotate-180",
32517
- style: { backgroundColor: column.color, color: textColor, writingMode: "vertical-rl" },
32518
- children: column.label
32518
+ status: column.id,
32519
+ label: column.label,
32520
+ color: useStatusVariant ? void 0 : column.color,
32521
+ className: "h-auto [writing-mode:vertical-rl]"
32519
32522
  }
32520
32523
  ),
32521
32524
  /* @__PURE__ */ jsx291("span", { className: "text-h5", style: { color: column.color }, children: count })
@@ -32546,7 +32549,7 @@ function BoardColumnHeader({
32546
32549
  {
32547
32550
  variant: "transparent",
32548
32551
  size: "icon",
32549
- className: "h-8 w-8 p-0",
32552
+ className: "h-8 w-8 md:h-8 md:w-8 p-0",
32550
32553
  onClick: onToggleCollapse,
32551
32554
  "aria-label": "Collapse column",
32552
32555
  children: /* @__PURE__ */ jsx291(Arrow02LeftIcon, { className: "h-6 w-6 text-ods-text-secondary" })
@@ -32557,7 +32560,7 @@ function BoardColumnHeader({
32557
32560
  {
32558
32561
  variant: "transparent",
32559
32562
  size: "icon",
32560
- className: "h-8 w-8 p-0",
32563
+ className: "h-8 w-8 md:h-8 md:w-8 p-0",
32561
32564
  onClick: onAddTicket,
32562
32565
  "aria-label": "Add ticket",
32563
32566
  children: /* @__PURE__ */ jsx291(PlusIcon, { className: "h-6 w-6 text-ods-text-secondary" })
@@ -32928,6 +32931,30 @@ function Board({
32928
32931
  useSensor(PointerSensor, { activationConstraint: { distance: 6 } }),
32929
32932
  useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates })
32930
32933
  );
32934
+ const collisionDetection = React101.useCallback((args) => {
32935
+ const pointer = pointerWithin(args);
32936
+ const intersections = pointer.length > 0 ? pointer : rectIntersection(args);
32937
+ const ticketHit = intersections.find(
32938
+ (c) => c.data?.droppableContainer?.data?.current?.type === "ticket"
32939
+ );
32940
+ if (ticketHit) return [ticketHit];
32941
+ const columnHit = intersections.find(
32942
+ (c) => c.data?.droppableContainer?.data?.current?.type === "column"
32943
+ );
32944
+ if (columnHit) {
32945
+ const columnId = columnHit.data?.droppableContainer?.data?.current?.columnId;
32946
+ const ticketsInColumn = args.droppableContainers.filter((c) => {
32947
+ const d = c.data.current;
32948
+ return d?.type === "ticket" && d.columnId === columnId;
32949
+ });
32950
+ if (ticketsInColumn.length > 0) {
32951
+ const closest = closestCorners({ ...args, droppableContainers: ticketsInColumn });
32952
+ if (closest.length > 0) return closest;
32953
+ }
32954
+ return [columnHit];
32955
+ }
32956
+ return closestCorners(args);
32957
+ }, []);
32931
32958
  const handleDragStart = (e) => {
32932
32959
  const id = String(e.active.id);
32933
32960
  const located = locate(items, id);
@@ -32946,9 +32973,10 @@ function Board({
32946
32973
  const fromColumnId = locate(items, activeId)?.columnId;
32947
32974
  const toColumnId = overData?.columnId;
32948
32975
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
32949
- const isReturnToOrigin = dragOriginRef.current?.fromColumnId === toColumnId;
32976
+ const origin = dragOriginRef.current;
32977
+ const isReturnToOrigin = origin?.fromColumnId === toColumnId;
32950
32978
  const targetCol = items.find((c) => c.id === toColumnId);
32951
- const blockedBySource = !isReturnToOrigin && !!targetCol?.allowedFromColumns && !targetCol.allowedFromColumns.includes(fromColumnId);
32979
+ const blockedBySource = !isReturnToOrigin && !!targetCol?.allowedFromColumns && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
32952
32980
  if (targetCol?.dropDisabled && !isReturnToOrigin || blockedBySource) return;
32953
32981
  setItems((prev) => {
32954
32982
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
@@ -32964,7 +32992,7 @@ function Board({
32964
32992
  } else {
32965
32993
  const activeRect = active.rect.current.translated;
32966
32994
  const overRect = over.rect;
32967
- const isBelow = !!activeRect && activeRect.top + activeRect.height / 2 > overRect.top + overRect.height / 2;
32995
+ const isBelow = !!activeRect && activeRect.top > overRect.top + overRect.height / 2;
32968
32996
  toIndex = overIndex + (isBelow ? 1 : 0);
32969
32997
  }
32970
32998
  }
@@ -33038,7 +33066,7 @@ function Board({
33038
33066
  DndContext,
33039
33067
  {
33040
33068
  sensors,
33041
- collisionDetection: closestCenter,
33069
+ collisionDetection,
33042
33070
  onDragStart: handleDragStart,
33043
33071
  onDragOver: handleDragOver,
33044
33072
  onDragEnd: handleDragEnd,
@@ -33736,4 +33764,4 @@ export {
33736
33764
  TMCG_SOCIAL_PLATFORMS,
33737
33765
  assets
33738
33766
  };
33739
- //# sourceMappingURL=chunk-M7DP7XDQ.js.map
33767
+ //# sourceMappingURL=chunk-FEEPEOW2.js.map