@trops/dash-core 0.1.271 → 0.1.273

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.esm.js CHANGED
@@ -23945,6 +23945,7 @@ var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
23945
23945
  var cellNumber = _ref.cellNumber,
23946
23946
  gridContainerId = _ref.gridContainerId,
23947
23947
  onMoveWidgetToCell = _ref.onMoveWidgetToCell,
23948
+ onDropWidgetFromSidebar = _ref.onDropWidgetFromSidebar,
23948
23949
  hasSpan = _ref.hasSpan,
23949
23950
  children = _ref.children,
23950
23951
  padding = _ref.padding;
@@ -23968,42 +23969,52 @@ var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
23968
23969
  drag = _useDrag2[1];
23969
23970
  var _useDrop = useDrop(function () {
23970
23971
  return {
23971
- accept: GRID_CELL_WIDGET_TYPE,
23972
- canDrop: function canDrop(dragItem) {
23972
+ accept: [GRID_CELL_WIDGET_TYPE, SIDEBAR_WIDGET_TYPE],
23973
+ canDrop: function canDrop(dragItem, monitor) {
23974
+ var itemType = monitor.getItemType();
23975
+ if (itemType === SIDEBAR_WIDGET_TYPE) return true;
23973
23976
  if (dragItem.gridContainerId !== gridContainerId) return false;
23974
23977
  if (dragItem.cellNumber === cellNumber) return false;
23975
23978
  if (dragItem.hasSpan || hasSpan) return false;
23976
23979
  return true;
23977
23980
  },
23978
- drop: function drop(dragItem) {
23979
- if (onMoveWidgetToCell) onMoveWidgetToCell(gridContainerId, dragItem.cellNumber, cellNumber);
23981
+ drop: function drop(dragItem, monitor) {
23982
+ var itemType = monitor.getItemType();
23983
+ if (itemType === SIDEBAR_WIDGET_TYPE) {
23984
+ if (onDropWidgetFromSidebar) onDropWidgetFromSidebar(gridContainerId, cellNumber, dragItem.widgetKey);
23985
+ } else {
23986
+ if (onMoveWidgetToCell) onMoveWidgetToCell(gridContainerId, dragItem.cellNumber, cellNumber);
23987
+ }
23980
23988
  },
23981
23989
  collect: function collect(monitor) {
23982
23990
  return {
23983
23991
  isOver: monitor.isOver(),
23984
- canDrop: monitor.canDrop()
23992
+ canDrop: monitor.canDrop(),
23993
+ itemType: monitor.getItemType()
23985
23994
  };
23986
23995
  }
23987
23996
  };
23988
- }, [cellNumber, gridContainerId, onMoveWidgetToCell, hasSpan]),
23997
+ }, [cellNumber, gridContainerId, onMoveWidgetToCell, onDropWidgetFromSidebar, hasSpan]),
23989
23998
  _useDrop2 = _slicedToArray(_useDrop, 2),
23990
23999
  _useDrop2$ = _useDrop2[0],
23991
24000
  isOver = _useDrop2$.isOver,
23992
24001
  canDrop = _useDrop2$.canDrop,
24002
+ itemType = _useDrop2$.itemType,
23993
24003
  drop = _useDrop2[1];
24004
+ var isSidebarDrop = itemType === SIDEBAR_WIDGET_TYPE;
23994
24005
  return /*#__PURE__*/jsxs("div", {
23995
24006
  ref: function ref(node) {
23996
24007
  return drag(drop(node));
23997
24008
  },
23998
- className: "flex-1 min-h-0 overflow-auto ".concat(padding, " ").concat(isDragging ? "opacity-30" : "", " ").concat(isOver && canDrop ? "ring-2 ring-blue-500 ring-inset" : ""),
24009
+ className: "flex-1 min-h-0 overflow-auto relative ".concat(padding, " ").concat(isDragging ? "opacity-30" : "", " ").concat(isOver && canDrop ? isSidebarDrop ? "ring-2 ring-green-500 ring-inset" : "ring-2 ring-blue-500 ring-inset" : ""),
23999
24010
  style: {
24000
24011
  cursor: "grab"
24001
24012
  },
24002
24013
  children: [children, isOver && canDrop && /*#__PURE__*/jsx("div", {
24003
- className: "absolute inset-0 flex items-center justify-center bg-blue-600/30 rounded pointer-events-none",
24014
+ className: "absolute inset-0 flex items-center justify-center ".concat(isSidebarDrop ? "bg-green-600/30" : "bg-blue-600/30", " rounded pointer-events-none"),
24004
24015
  children: /*#__PURE__*/jsx("span", {
24005
- className: "text-sm font-bold text-blue-200",
24006
- children: "Swap"
24016
+ className: "text-sm font-bold ".concat(isSidebarDrop ? "text-green-200" : "text-blue-200"),
24017
+ children: isSidebarDrop ? "Drop here" : "Swap"
24007
24018
  })
24008
24019
  })]
24009
24020
  });
@@ -25076,6 +25087,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
25076
25087
  cellNumber: cellNumber,
25077
25088
  gridContainerId: id,
25078
25089
  onMoveWidgetToCell: onMoveWidgetToCell,
25090
+ onDropWidgetFromSidebar: onDropWidgetFromSidebar,
25079
25091
  hasSpan: !!(cellDef.span && (cellDef.span.row && cellDef.span.row > 1 || cellDef.span.col && cellDef.span.col > 1)),
25080
25092
  padding: "p-3",
25081
25093
  children: renderedWidget
@@ -26608,13 +26620,6 @@ function isWidgetResolvable(componentKey) {
26608
26620
  if (m[componentKey] && typeof m[componentKey].component === "function") {
26609
26621
  return true;
26610
26622
  }
26611
- // Fallback: match by config.name (mirrors getComponent's name fallback)
26612
- for (var _i = 0, _Object$keys = Object.keys(m); _i < _Object$keys.length; _i++) {
26613
- var key = _Object$keys[_i];
26614
- if (m[key].name === componentKey && typeof m[key].component === "function") {
26615
- return true;
26616
- }
26617
- }
26618
26623
  return false;
26619
26624
  }
26620
26625
 
@@ -29487,20 +29492,6 @@ var ComponentManager = {
29487
29492
  var m = this.componentMap();
29488
29493
  // Try exact match first (works for both scoped ids and legacy names)
29489
29494
  var cmp = component in m ? m[component] : null;
29490
-
29491
- // Fallback: scan by config.name for backward compatibility
29492
- // Handles saved layouts that reference old-style names (e.g., "AnalogClockWidget")
29493
- // when the widget is now registered under a scoped id (e.g., "trops.clock.AnalogClockWidget")
29494
- if (cmp === null) {
29495
- for (var _i = 0, _Object$keys = Object.keys(m); _i < _Object$keys.length; _i++) {
29496
- var key = _Object$keys[_i];
29497
- if (m[key].name === component) {
29498
- cmp = m[key];
29499
- cmp["componentName"] = key;
29500
- return cmp;
29501
- }
29502
- }
29503
- }
29504
29495
  if (cmp !== null) {
29505
29496
  cmp["componentName"] = component;
29506
29497
  return cmp;