@bigbinary/neeto-molecules 3.16.39 → 3.16.41

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/README.md CHANGED
@@ -20,6 +20,7 @@ https://neeto-molecules.neeto.com/
20
20
  - [CardLayout](./docs/components/CardLayout.md)
21
21
  - [Codeblock](./docs/components/Codeblock.md)
22
22
  - [Columns](./docs/components/Columns.md)
23
+ - [ConfigurePageSidebar](./docs/components/ConfigurePageSidebar.md)
23
24
  - [ConfirmationModal](./docs/components/ConfirmationModal.md)
24
25
  - [Container](./docs/components/Container.md)
25
26
  - [CopyToClipboardButton](./docs/components/CopyToClipboardButton.md)
package/dist/BoardView.js CHANGED
@@ -15,9 +15,6 @@ n(css,{});
15
15
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
16
16
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
17
17
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
18
- // Customised collision detection algorithm based on `closestCenter` implementation for dnd-kit
19
- // Extracts collisions by respecting `accepts` property
20
-
21
18
  var distanceBetween = function distanceBetween(p1, p2) {
22
19
  return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
23
20
  };
@@ -32,14 +29,25 @@ var centerOfRectangle = function centerOfRectangle(rect) {
32
29
  var matchType = function matchType(draggable, droppable) {
33
30
  return droppable.data.current.accepts.includes(draggable.data.current.type);
34
31
  };
35
-
36
- // `active` attribute from the `dnd-kit` is unreliable since the data can be lost on unmount during a drag.
32
+ var matchDirection = function matchDirection(direction, droppable, reference) {
33
+ var matchX = function matchX() {
34
+ return reference.x > droppable.left && reference.x < droppable.left + droppable.width;
35
+ };
36
+ var matchY = function matchY() {
37
+ return reference.y > droppable.top && reference.y < droppable.top + droppable.height;
38
+ };
39
+ if (direction === "vertical") return matchX();else if (direction === "horizontal") return matchY();
40
+ return true;
41
+ };
37
42
  var closestCenter = function closestCenter(_ref) {
38
43
  var active = _ref.active;
39
44
  return function (_ref2) {
45
+ var _active$data$current;
40
46
  var collisionRect = _ref2.collisionRect,
41
47
  droppableRects = _ref2.droppableRects,
42
- droppableContainers = _ref2.droppableContainers;
48
+ droppableContainers = _ref2.droppableContainers,
49
+ pointerCoordinates = _ref2.pointerCoordinates;
50
+ var direction = (_active$data$current = active.data.current) === null || _active$data$current === void 0 ? void 0 : _active$data$current.direction;
43
51
  var centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);
44
52
  var minDistance = Number.POSITIVE_INFINITY;
45
53
  var collision = {
@@ -53,7 +61,7 @@ var closestCenter = function closestCenter(_ref) {
53
61
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
54
62
  var droppableContainer = _step.value;
55
63
  var rect = droppableRects.get(droppableContainer.id);
56
- if (!rect || droppableContainer.id === active.id) continue;else if (!matchType(active, droppableContainer)) continue;
64
+ if (!rect || droppableContainer.id === active.id) continue;else if (!matchType(active, droppableContainer)) continue;else if (!matchDirection(direction, rect, pointerCoordinates)) continue;
57
65
  var distance = distanceBetween(centerOfRectangle(rect), centerRect);
58
66
  if (distance < minDistance) {
59
67
  minDistance = distance;
@@ -113,7 +121,8 @@ var DragDropContainer$1 = function DragDropContainer(_ref) {
113
121
  var _useDraggable = useDraggable({
114
122
  data: _objectSpread$3(_objectSpread$3({}, data), {}, {
115
123
  index: index,
116
- type: DRAGGABLE_TYPES.ITEM
124
+ type: DRAGGABLE_TYPES.ITEM,
125
+ direction: "vertical"
117
126
  }),
118
127
  id: "draggable-item--".concat(id)
119
128
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"BoardView.js","sources":["../src/components/BoardView/closestCenter.js","../src/components/BoardView/constants.js","../src/components/BoardView/Overlay.jsx","../src/components/BoardView/Indicator.jsx","../src/components/BoardView/Item/Container.jsx","../src/components/BoardView/Item/Placeholder.jsx","../src/components/BoardView/Section/index.jsx","../src/components/BoardView/Section/Container.jsx","../src/components/BoardView/Section/Placeholder.jsx","../src/components/BoardView/index.jsx"],"sourcesContent":["// Customised collision detection algorithm based on `closestCenter` implementation for dnd-kit\n// Extracts collisions by respecting `accepts` property\n\nconst distanceBetween = (p1, p2) =>\n Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n\nconst centerOfRectangle = (rect, left = rect.left, top = rect.top) => ({\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5,\n});\n\nconst matchType = (draggable, droppable) =>\n droppable.data.current.accepts.includes(draggable.data.current.type);\n\n// `active` attribute from the `dnd-kit` is unreliable since the data can be lost on unmount during a drag.\nexport const closestCenter =\n ({ active }) =>\n ({ collisionRect, droppableRects, droppableContainers }) => {\n const centerRect = centerOfRectangle(\n collisionRect,\n collisionRect.left,\n collisionRect.top\n );\n\n let minDistance = Number.POSITIVE_INFINITY;\n let collision = { id: undefined };\n\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const droppableContainer of droppableContainers) {\n const rect = droppableRects.get(droppableContainer.id);\n\n if (!rect || droppableContainer.id === active.id) continue;\n else if (!matchType(active, droppableContainer)) continue;\n\n const distance = distanceBetween(centerOfRectangle(rect), centerRect);\n if (distance < minDistance) {\n minDistance = distance;\n collision = {\n id: droppableContainer.id,\n data: { droppableContainer, value: distance },\n };\n }\n }\n\n return [collision];\n };\n","export const DRAGGABLE_TYPES = { SECTION: \"section\", ITEM: \"item\" };\n","import { DragOverlay } from \"@dnd-kit/core\";\n\nimport { DRAGGABLE_TYPES } from \"./constants\";\n\nconst DndOverlay = ({ props, state }) => {\n const { renderSectionOverlay, renderItemOverlay } = props;\n const data = state.active?.data.current || {};\n\n return (\n <DragOverlay>\n {data.type === DRAGGABLE_TYPES.ITEM && renderItemOverlay?.(data)}\n {data.type === DRAGGABLE_TYPES.SECTION && renderSectionOverlay?.(data)}\n </DragOverlay>\n );\n};\n\nexport default DndOverlay;\n","import classNames from \"classnames\";\n\nconst DndIndicator = ({ layout = \"vertical\" }) => (\n <div\n className={classNames(\n \"neeto-ui-rounded-xl neeto-ui-bg-accent-600 absolute\",\n {\n \"-bottom-3 left-0 right-0 h-1\": layout === \"horizontal\",\n \"-right-2 bottom-0 top-0 w-1\": layout === \"vertical\",\n }\n )}\n />\n);\n\nexport default DndIndicator;\n","import { useRef } from \"react\";\n\nimport { useDraggable, useDroppable } from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport { useInView } from \"react-intersection-observer\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst DragDropContainer = ({ id, index, data, render }) => {\n const {\n attributes,\n listeners,\n isDragging,\n setNodeRef: setDraggableNodeRef,\n } = useDraggable({\n data: { ...data, index, type: DRAGGABLE_TYPES.ITEM },\n id: `draggable-item--${id}`,\n });\n\n const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.ITEM], index: index + 1 },\n id: `droppable-item--${id}`,\n });\n\n const isIndicatorVisible = !isDragging && isOver;\n\n return (\n <div\n className={classNames(\"relative h-full w-full\", {\n \"opacity-65\": isDragging,\n })}\n ref={node => {\n setDraggableNodeRef(node);\n setDroppableNodeRef(node);\n }}\n {...attributes}\n {...listeners}\n >\n {render()}\n {isIndicatorVisible && <DndIndicator layout=\"horizontal\" />}\n </div>\n );\n};\n\nconst ItemContainer = props => {\n const mutables = useRef({ containerHeight: 128 }).current;\n\n const [setViewRef, inView] = useInView({\n onChange: (inView, entry) => {\n if (inView) return; // We need the last height value when elements moves out.\n mutables.containerHeight = entry.target.clientHeight;\n },\n });\n\n return (\n <div\n className=\"neeto-molecules-boardview-section__card relative shrink-0\"\n id={props.id}\n style={{ height: inView ? undefined : mutables.containerHeight }}\n ref={node => {\n setViewRef(node);\n }}\n >\n {inView && <DragDropContainer {...props} />}\n </div>\n );\n};\n\nexport default ItemContainer;\n","import { useId } from \"react\";\n\nimport { useDroppable } from \"@dnd-kit/core\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst ItemPlaceholder = ({ data, index = 0 }) => {\n const id = useId();\n\n const { isOver, setNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.ITEM], index },\n id: `droppable-item--${id}`,\n });\n\n return (\n <div className=\"relative\" ref={setNodeRef}>\n {isOver && <DndIndicator layout=\"horizontal\" />}\n </div>\n );\n};\n\nexport default ItemPlaceholder;\n","import { forwardRef } from \"react\";\n\nimport PropTypes from \"prop-types\";\n\nimport ItemContainer from \"../Item/Container\";\nimport ItemPlaceholder from \"../Item/Placeholder\";\n\nconst Section = forwardRef(({ section, items, renderItem }, ref) => (\n <div\n {...{ ref }}\n className=\"neeto-molecules-boardview-section__body relative min-h-0 flex-1 basis-0 overflow-y-auto\"\n >\n <ItemPlaceholder data={{ section }} />\n {items.map((item, index) => (\n <ItemContainer\n {...{ index }}\n data={{ section, item }}\n id={`${section.id}--${item.id}`}\n key={`${section.id}--${item.id}`}\n render={() => renderItem({ index, item, section })}\n />\n ))}\n </div>\n));\n\nSection.displayName = \"Section\";\nSection.propTypes = {\n /** A reference to the section container element. */\n // eslint-disable-next-line react/no-unused-prop-types\n ref: PropTypes.any,\n\n /** The current section data */\n section: PropTypes.shape({ id: PropTypes.string.isRequired }).isRequired,\n\n /** An array of items belonging to the current section. */\n items: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.string.isRequired }))\n .isRequired,\n\n /** A function that renders the content of each item in the list. */\n renderItem: PropTypes.func.isRequired,\n};\n\nexport default Section;\n","import { useDraggable, useDroppable } from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport { useInView } from \"react-intersection-observer\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst DragDropContainer = ({ id, index, data, render }) => {\n const {\n attributes,\n listeners,\n isDragging,\n setNodeRef: setDraggableNodeRef,\n } = useDraggable({\n data: { ...data, type: DRAGGABLE_TYPES.SECTION, index },\n id: `draggable-section--${id}`,\n });\n\n const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.SECTION], index: index + 1 },\n id: `droppable-section--${id}`,\n });\n\n const isIndicatorVisible = !isDragging && isOver;\n\n return (\n <div\n {...listeners}\n {...attributes}\n className={classNames(\"relative h-full w-full flex-col\", {\n \"opacity-65\": isDragging,\n })}\n ref={node => {\n setDraggableNodeRef(node);\n setDroppableNodeRef(node);\n }}\n >\n {render()}\n {isIndicatorVisible && <DndIndicator layout=\"vertical\" />}\n </div>\n );\n};\n\nconst SectionContainer = props => {\n const [setViewRef, inView] = useInView();\n\n return (\n <div\n className=\"neeto-molecules-boardview-section relative mr-3 h-full last-of-type:mr-0\"\n ref={node => {\n setViewRef(node);\n }}\n >\n {inView && <DragDropContainer {...props} />}\n </div>\n );\n};\n\nexport default SectionContainer;\n","import { useId } from \"react\";\n\nimport { useDroppable } from \"@dnd-kit/core\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst SectionPlaceholder = ({ data, index = 0 }) => {\n const id = useId();\n\n const { isOver, setNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.SECTION], index },\n id: `droppable-section--${id}`,\n });\n\n return (\n <div className=\"relative\" ref={setNodeRef}>\n {isOver && <DndIndicator layout=\"vertical\" />}\n </div>\n );\n};\n\nexport default SectionPlaceholder;\n","import { forwardRef, useState } from \"react\";\n\nimport {\n DndContext,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport \"./boardview.scss\";\nimport { closestCenter } from \"./closestCenter\";\nimport { DRAGGABLE_TYPES } from \"./constants\";\nimport DndOverlay from \"./Overlay\";\nimport Section from \"./Section\";\nimport SectionContainer from \"./Section/Container\";\nimport SectionPlaceholder from \"./Section/Placeholder\";\n\nconst sensorConfig = { activationConstraint: { distance: 8 } };\nconst measuringConfig = { droppable: { frequency: 500 } };\n\nconst BoardView = forwardRef((props, ref) => {\n const { sections, onMoveSection, onMoveItem, renderSection, className } =\n props;\n\n const [dragState, setDragState] = useState({});\n const sensors = useSensors(useSensor(PointerSensor, sensorConfig));\n\n const onDragEnd = drag => {\n const active = dragState.active.data.current;\n const over = drag.over?.data.current;\n if (!active || !over) return;\n\n if (active.type === DRAGGABLE_TYPES.ITEM) {\n onMoveItem?.(active, over);\n } else if (active.type === DRAGGABLE_TYPES.SECTION) {\n onMoveSection?.(active, over);\n }\n };\n\n return (\n <DndContext\n {...{ onDragEnd, sensors }}\n collisionDetection={closestCenter(dragState)}\n measuring={measuringConfig}\n onDragStart={setDragState}\n >\n <div\n {...{ ref }}\n className={classNames(\n \"neeto-molecules-boardview-outer-wrapper flex w-full flex-1 overflow-x-auto\",\n className\n )}\n >\n <SectionPlaceholder />\n {sections.map((section, index) => (\n <SectionContainer\n {...{ index }}\n data={{ section }}\n id={section.id}\n key={section.id}\n render={() => renderSection({ index, section })}\n />\n ))}\n </div>\n <DndOverlay {...{ props }} state={dragState} />\n </DndContext>\n );\n});\n\nBoardView.displayName = \"BoardView\";\nBoardView.Section = Section;\nBoardView.propTypes = {\n /** A reference to the container element. */\n // eslint-disable-next-line react/no-unused-prop-types\n ref: PropTypes.any,\n\n /**\n An array of sections, each defined by an object with an `id` string.\n */\n sections: PropTypes.arrayOf(\n PropTypes.shape({ id: PropTypes.string.isRequired })\n ).isRequired,\n\n /** function to render each section content in the board view */\n renderSection: PropTypes.func.isRequired,\n\n /** A function to render a drag overlay for individual sections (drag preview) */\n // eslint-disable-next-line react/no-unused-prop-types\n renderSectionOverlay: PropTypes.func.isRequired,\n\n /** A function to render a drag overlay for individual items (drag preview) */\n // eslint-disable-next-line react/no-unused-prop-types\n renderItemOverlay: PropTypes.func.isRequired,\n\n /** Callback function triggered when a section is reordered */\n onMoveSection: PropTypes.func,\n\n /** Callback function triggered when an item is moved */\n onMoveItem: PropTypes.func,\n /**\n * Additional classes passed on to the board view.\n */\n className: PropTypes.string,\n};\n\nexport default BoardView;\n"],"names":["distanceBetween","p1","p2","Math","sqrt","pow","x","y","centerOfRectangle","rect","left","arguments","length","undefined","top","width","height","matchType","draggable","droppable","data","current","accepts","includes","type","closestCenter","_ref","active","_ref2","collisionRect","droppableRects","droppableContainers","centerRect","minDistance","Number","POSITIVE_INFINITY","collision","id","_iterator","_createForOfIteratorHelper","_step","s","n","done","droppableContainer","value","get","distance","err","e","f","DRAGGABLE_TYPES","SECTION","ITEM","DndOverlay","_state$active","props","state","renderSectionOverlay","renderItemOverlay","_jsxs","DragOverlay","children","DndIndicator","_ref$layout","layout","_jsx","className","classNames","DragDropContainer","index","render","_useDraggable","useDraggable","_objectSpread","concat","attributes","listeners","isDragging","setDraggableNodeRef","setNodeRef","_useDroppable","useDroppable","isOver","setDroppableNodeRef","isIndicatorVisible","ref","node","ItemContainer","mutables","useRef","containerHeight","_useInView","useInView","onChange","inView","entry","target","clientHeight","_useInView2","_slicedToArray","setViewRef","style","ItemPlaceholder","_ref$index","useId","Section","forwardRef","section","items","renderItem","map","item","_createElement","key","displayName","propTypes","PropTypes","any","shape","string","isRequired","arrayOf","func","SectionContainer","SectionPlaceholder","sensorConfig","activationConstraint","measuringConfig","frequency","BoardView","sections","onMoveSection","onMoveItem","renderSection","_useState","useState","_useState2","dragState","setDragState","sensors","useSensors","useSensor","PointerSensor","onDragEnd","drag","_drag$over","over","DndContext","collisionDetection","measuring","onDragStart"],"mappings":"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"}
1
+ {"version":3,"file":"BoardView.js","sources":["../src/components/BoardView/closestCenter.js","../src/components/BoardView/constants.js","../src/components/BoardView/Overlay.jsx","../src/components/BoardView/Indicator.jsx","../src/components/BoardView/Item/Container.jsx","../src/components/BoardView/Item/Placeholder.jsx","../src/components/BoardView/Section/index.jsx","../src/components/BoardView/Section/Container.jsx","../src/components/BoardView/Section/Placeholder.jsx","../src/components/BoardView/index.jsx"],"sourcesContent":["const distanceBetween = (p1, p2) =>\n Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n\nconst centerOfRectangle = (rect, left = rect.left, top = rect.top) => ({\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5,\n});\n\nconst matchType = (draggable, droppable) =>\n droppable.data.current.accepts.includes(draggable.data.current.type);\n\nconst matchDirection = (direction, droppable, reference) => {\n const matchX = () =>\n reference.x > droppable.left &&\n reference.x < droppable.left + droppable.width;\n\n const matchY = () =>\n reference.y > droppable.top &&\n reference.y < droppable.top + droppable.height;\n\n if (direction === \"vertical\") return matchX();\n else if (direction === \"horizontal\") return matchY();\n\n return true;\n};\nexport const closestCenter =\n ({ active }) =>\n ({\n collisionRect,\n droppableRects,\n droppableContainers,\n pointerCoordinates,\n }) => {\n const direction = active.data.current?.direction;\n const centerRect = centerOfRectangle(\n collisionRect,\n collisionRect.left,\n collisionRect.top\n );\n\n let minDistance = Number.POSITIVE_INFINITY;\n let collision = { id: undefined };\n\n // eslint-disable-next-line @bigbinary/neeto/use-array-methods\n for (const droppableContainer of droppableContainers) {\n const rect = droppableRects.get(droppableContainer.id);\n\n if (!rect || droppableContainer.id === active.id) continue;\n else if (!matchType(active, droppableContainer)) continue;\n else if (!matchDirection(direction, rect, pointerCoordinates)) continue;\n\n const distance = distanceBetween(centerOfRectangle(rect), centerRect);\n if (distance < minDistance) {\n minDistance = distance;\n collision = {\n id: droppableContainer.id,\n data: { droppableContainer, value: distance },\n };\n }\n }\n\n return [collision];\n };\n","export const DRAGGABLE_TYPES = { SECTION: \"section\", ITEM: \"item\" };\n","import { DragOverlay } from \"@dnd-kit/core\";\n\nimport { DRAGGABLE_TYPES } from \"./constants\";\n\nconst DndOverlay = ({ props, state }) => {\n const { renderSectionOverlay, renderItemOverlay } = props;\n const data = state.active?.data.current || {};\n\n return (\n <DragOverlay>\n {data.type === DRAGGABLE_TYPES.ITEM && renderItemOverlay?.(data)}\n {data.type === DRAGGABLE_TYPES.SECTION && renderSectionOverlay?.(data)}\n </DragOverlay>\n );\n};\n\nexport default DndOverlay;\n","import classNames from \"classnames\";\n\nconst DndIndicator = ({ layout = \"vertical\" }) => (\n <div\n className={classNames(\n \"neeto-ui-rounded-xl neeto-ui-bg-accent-600 absolute\",\n {\n \"-bottom-3 left-0 right-0 h-1\": layout === \"horizontal\",\n \"-right-2 bottom-0 top-0 w-1\": layout === \"vertical\",\n }\n )}\n />\n);\n\nexport default DndIndicator;\n","import { useRef } from \"react\";\n\nimport { useDraggable, useDroppable } from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport { useInView } from \"react-intersection-observer\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst DragDropContainer = ({ id, index, data, render }) => {\n const {\n attributes,\n listeners,\n isDragging,\n setNodeRef: setDraggableNodeRef,\n } = useDraggable({\n data: { ...data, index, type: DRAGGABLE_TYPES.ITEM, direction: \"vertical\" },\n id: `draggable-item--${id}`,\n });\n\n const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.ITEM], index: index + 1 },\n id: `droppable-item--${id}`,\n });\n\n const isIndicatorVisible = !isDragging && isOver;\n\n return (\n <div\n className={classNames(\"relative h-full w-full\", {\n \"opacity-65\": isDragging,\n })}\n ref={node => {\n setDraggableNodeRef(node);\n setDroppableNodeRef(node);\n }}\n {...attributes}\n {...listeners}\n >\n {render()}\n {isIndicatorVisible && <DndIndicator layout=\"horizontal\" />}\n </div>\n );\n};\n\nconst ItemContainer = props => {\n const mutables = useRef({ containerHeight: 128 }).current;\n\n const [setViewRef, inView] = useInView({\n onChange: (inView, entry) => {\n if (inView) return; // We need the last height value when elements moves out.\n mutables.containerHeight = entry.target.clientHeight;\n },\n });\n\n return (\n <div\n className=\"neeto-molecules-boardview-section__card relative shrink-0\"\n id={props.id}\n style={{ height: inView ? undefined : mutables.containerHeight }}\n ref={node => {\n setViewRef(node);\n }}\n >\n {inView && <DragDropContainer {...props} />}\n </div>\n );\n};\n\nexport default ItemContainer;\n","import { useId } from \"react\";\n\nimport { useDroppable } from \"@dnd-kit/core\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst ItemPlaceholder = ({ data, index = 0 }) => {\n const id = useId();\n\n const { isOver, setNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.ITEM], index },\n id: `droppable-item--${id}`,\n });\n\n return (\n <div className=\"relative\" ref={setNodeRef}>\n {isOver && <DndIndicator layout=\"horizontal\" />}\n </div>\n );\n};\n\nexport default ItemPlaceholder;\n","import { forwardRef } from \"react\";\n\nimport PropTypes from \"prop-types\";\n\nimport ItemContainer from \"../Item/Container\";\nimport ItemPlaceholder from \"../Item/Placeholder\";\n\nconst Section = forwardRef(({ section, items, renderItem }, ref) => (\n <div\n {...{ ref }}\n className=\"neeto-molecules-boardview-section__body relative min-h-0 flex-1 basis-0 overflow-y-auto\"\n >\n <ItemPlaceholder data={{ section }} />\n {items.map((item, index) => (\n <ItemContainer\n {...{ index }}\n data={{ section, item }}\n id={`${section.id}--${item.id}`}\n key={`${section.id}--${item.id}`}\n render={() => renderItem({ index, item, section })}\n />\n ))}\n </div>\n));\n\nSection.displayName = \"Section\";\nSection.propTypes = {\n /** A reference to the section container element. */\n // eslint-disable-next-line react/no-unused-prop-types\n ref: PropTypes.any,\n\n /** The current section data */\n section: PropTypes.shape({ id: PropTypes.string.isRequired }).isRequired,\n\n /** An array of items belonging to the current section. */\n items: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.string.isRequired }))\n .isRequired,\n\n /** A function that renders the content of each item in the list. */\n renderItem: PropTypes.func.isRequired,\n};\n\nexport default Section;\n","import { useDraggable, useDroppable } from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport { useInView } from \"react-intersection-observer\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst DragDropContainer = ({ id, index, data, render }) => {\n const {\n attributes,\n listeners,\n isDragging,\n setNodeRef: setDraggableNodeRef,\n } = useDraggable({\n data: { ...data, type: DRAGGABLE_TYPES.SECTION, index },\n id: `draggable-section--${id}`,\n });\n\n const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.SECTION], index: index + 1 },\n id: `droppable-section--${id}`,\n });\n\n const isIndicatorVisible = !isDragging && isOver;\n\n return (\n <div\n {...listeners}\n {...attributes}\n className={classNames(\"relative h-full w-full flex-col\", {\n \"opacity-65\": isDragging,\n })}\n ref={node => {\n setDraggableNodeRef(node);\n setDroppableNodeRef(node);\n }}\n >\n {render()}\n {isIndicatorVisible && <DndIndicator layout=\"vertical\" />}\n </div>\n );\n};\n\nconst SectionContainer = props => {\n const [setViewRef, inView] = useInView();\n\n return (\n <div\n className=\"neeto-molecules-boardview-section relative mr-3 h-full last-of-type:mr-0\"\n ref={node => {\n setViewRef(node);\n }}\n >\n {inView && <DragDropContainer {...props} />}\n </div>\n );\n};\n\nexport default SectionContainer;\n","import { useId } from \"react\";\n\nimport { useDroppable } from \"@dnd-kit/core\";\n\nimport { DRAGGABLE_TYPES } from \"../constants\";\nimport DndIndicator from \"../Indicator\";\n\nconst SectionPlaceholder = ({ data, index = 0 }) => {\n const id = useId();\n\n const { isOver, setNodeRef } = useDroppable({\n data: { ...data, accepts: [DRAGGABLE_TYPES.SECTION], index },\n id: `droppable-section--${id}`,\n });\n\n return (\n <div className=\"relative\" ref={setNodeRef}>\n {isOver && <DndIndicator layout=\"vertical\" />}\n </div>\n );\n};\n\nexport default SectionPlaceholder;\n","import { forwardRef, useState } from \"react\";\n\nimport {\n DndContext,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport \"./boardview.scss\";\nimport { closestCenter } from \"./closestCenter\";\nimport { DRAGGABLE_TYPES } from \"./constants\";\nimport DndOverlay from \"./Overlay\";\nimport Section from \"./Section\";\nimport SectionContainer from \"./Section/Container\";\nimport SectionPlaceholder from \"./Section/Placeholder\";\n\nconst sensorConfig = { activationConstraint: { distance: 8 } };\nconst measuringConfig = { droppable: { frequency: 500 } };\n\nconst BoardView = forwardRef((props, ref) => {\n const { sections, onMoveSection, onMoveItem, renderSection, className } =\n props;\n\n const [dragState, setDragState] = useState({});\n const sensors = useSensors(useSensor(PointerSensor, sensorConfig));\n\n const onDragEnd = drag => {\n const active = dragState.active.data.current;\n const over = drag.over?.data.current;\n if (!active || !over) return;\n\n if (active.type === DRAGGABLE_TYPES.ITEM) {\n onMoveItem?.(active, over);\n } else if (active.type === DRAGGABLE_TYPES.SECTION) {\n onMoveSection?.(active, over);\n }\n };\n\n return (\n <DndContext\n {...{ onDragEnd, sensors }}\n collisionDetection={closestCenter(dragState)}\n measuring={measuringConfig}\n onDragStart={setDragState}\n >\n <div\n {...{ ref }}\n className={classNames(\n \"neeto-molecules-boardview-outer-wrapper flex w-full flex-1 overflow-x-auto\",\n className\n )}\n >\n <SectionPlaceholder />\n {sections.map((section, index) => (\n <SectionContainer\n {...{ index }}\n data={{ section }}\n id={section.id}\n key={section.id}\n render={() => renderSection({ index, section })}\n />\n ))}\n </div>\n <DndOverlay {...{ props }} state={dragState} />\n </DndContext>\n );\n});\n\nBoardView.displayName = \"BoardView\";\nBoardView.Section = Section;\nBoardView.propTypes = {\n /** A reference to the container element. */\n // eslint-disable-next-line react/no-unused-prop-types\n ref: PropTypes.any,\n\n /**\n An array of sections, each defined by an object with an `id` string.\n */\n sections: PropTypes.arrayOf(\n PropTypes.shape({ id: PropTypes.string.isRequired })\n ).isRequired,\n\n /** function to render each section content in the board view */\n renderSection: PropTypes.func.isRequired,\n\n /** A function to render a drag overlay for individual sections (drag preview) */\n // eslint-disable-next-line react/no-unused-prop-types\n renderSectionOverlay: PropTypes.func.isRequired,\n\n /** A function to render a drag overlay for individual items (drag preview) */\n // eslint-disable-next-line react/no-unused-prop-types\n renderItemOverlay: PropTypes.func.isRequired,\n\n /** Callback function triggered when a section is reordered */\n onMoveSection: PropTypes.func,\n\n /** Callback function triggered when an item is moved */\n onMoveItem: PropTypes.func,\n /**\n * Additional classes passed on to the board view.\n */\n className: PropTypes.string,\n};\n\nexport default BoardView;\n"],"names":["distanceBetween","p1","p2","Math","sqrt","pow","x","y","centerOfRectangle","rect","left","arguments","length","undefined","top","width","height","matchType","draggable","droppable","data","current","accepts","includes","type","matchDirection","direction","reference","matchX","matchY","closestCenter","_ref","active","_ref2","_active$data$current","collisionRect","droppableRects","droppableContainers","pointerCoordinates","centerRect","minDistance","Number","POSITIVE_INFINITY","collision","id","_iterator","_createForOfIteratorHelper","_step","s","n","done","droppableContainer","value","get","distance","err","e","f","DRAGGABLE_TYPES","SECTION","ITEM","DndOverlay","_state$active","props","state","renderSectionOverlay","renderItemOverlay","_jsxs","DragOverlay","children","DndIndicator","_ref$layout","layout","_jsx","className","classNames","DragDropContainer","index","render","_useDraggable","useDraggable","_objectSpread","concat","attributes","listeners","isDragging","setDraggableNodeRef","setNodeRef","_useDroppable","useDroppable","isOver","setDroppableNodeRef","isIndicatorVisible","ref","node","ItemContainer","mutables","useRef","containerHeight","_useInView","useInView","onChange","inView","entry","target","clientHeight","_useInView2","_slicedToArray","setViewRef","style","ItemPlaceholder","_ref$index","useId","Section","forwardRef","section","items","renderItem","map","item","_createElement","key","displayName","propTypes","PropTypes","any","shape","string","isRequired","arrayOf","func","SectionContainer","SectionPlaceholder","sensorConfig","activationConstraint","measuringConfig","frequency","BoardView","sections","onMoveSection","onMoveItem","renderSection","_useState","useState","_useState2","dragState","setDragState","sensors","useSensors","useSensor","PointerSensor","onDragEnd","drag","_drag$over","over","DndContext","collisionDetection","measuring","onDragStart"],"mappings":"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"}
package/dist/Builder.js CHANGED
@@ -130,15 +130,13 @@ var ElementContainer = function ElementContainer(_ref) {
130
130
  onSelect = _ref.onSelect,
131
131
  isDraggingOver = _ref.isDraggingOver,
132
132
  isAddingNewElement = _ref.isAddingNewElement,
133
- setVisiblePanel = _ref.setVisiblePanel,
134
- isPrimaryPanel = _ref.isPrimaryPanel;
133
+ setVisiblePanel = _ref.setVisiblePanel;
135
134
  var isCreatableElement = isCreatable(element.value);
136
135
  if (isDragDisabled) {
137
136
  return /*#__PURE__*/jsx(Element, _objectSpread$3(_objectSpread$3({}, _objectSpread$3(_objectSpread$3({}, element), {}, {
138
137
  disabledElementTooltip: disabledElementTooltip,
139
138
  isAddingNewElement: isAddingNewElement,
140
139
  isDragDisabled: isDragDisabled,
141
- isPrimaryPanel: isPrimaryPanel,
142
140
  setVisiblePanel: setVisiblePanel
143
141
  })), {}, {
144
142
  isCreatable: isCreatableElement,
@@ -165,7 +163,6 @@ var ElementContainer = function ElementContainer(_ref) {
165
163
  isAddingNewElement: isAddingNewElement,
166
164
  isDragDisabled: isDragDisabled,
167
165
  isDraggingOver: isDraggingOver,
168
- isPrimaryPanel: isPrimaryPanel,
169
166
  setVisiblePanel: setVisiblePanel
170
167
  })), {}, {
171
168
  isCreatable: isCreatableElement,
@@ -177,7 +174,6 @@ var ElementContainer = function ElementContainer(_ref) {
177
174
  disabledElementTooltip: null
178
175
  }, _objectSpread$3(_objectSpread$3({}, element), {}, {
179
176
  isAddingNewElement: isAddingNewElement,
180
- isPrimaryPanel: isPrimaryPanel,
181
177
  setVisiblePanel: setVisiblePanel
182
178
  })), {}, {
183
179
  isCreatable: false,
@@ -196,8 +192,7 @@ var Section = function Section(_ref) {
196
192
  isDragDisabled = _ref.isDragElementsDisabled,
197
193
  isDraggingOver = _ref.isDraggingOver,
198
194
  isAddingNewElement = _ref.isAddingNewElement,
199
- setVisiblePanel = _ref.setVisiblePanel,
200
- isPrimaryPanel = _ref.isPrimaryPanel;
195
+ setVisiblePanel = _ref.setVisiblePanel;
201
196
  if (isEmpty(elements)) {
202
197
  return null;
203
198
  }
@@ -213,7 +208,6 @@ var Section = function Section(_ref) {
213
208
  isCreatable: isCreatable,
214
209
  isDragDisabled: isDragDisabled,
215
210
  isDraggingOver: isDraggingOver,
216
- isPrimaryPanel: isPrimaryPanel,
217
211
  onSelect: onSelect,
218
212
  setVisiblePanel: setVisiblePanel,
219
213
  index: element.elementIndex,
@@ -230,8 +224,7 @@ var SectionsContainer = function SectionsContainer(_ref) {
230
224
  filteredSections = _ref.filteredSections,
231
225
  isAddingNewElement = _ref.isAddingNewElement,
232
226
  onSelect = _ref.onSelect,
233
- setVisiblePanel = _ref.setVisiblePanel,
234
- isPrimaryPanel = _ref.isPrimaryPanel;
227
+ setVisiblePanel = _ref.setVisiblePanel;
235
228
  if (isEmpty(filteredSections)) {
236
229
  return /*#__PURE__*/jsx(NoResults$1, {});
237
230
  }
@@ -241,7 +234,6 @@ var SectionsContainer = function SectionsContainer(_ref) {
241
234
  return /*#__PURE__*/createElement(Section, _objectSpread$2(_objectSpread$2({}, _objectSpread$2({
242
235
  isAddingNewElement: isAddingNewElement,
243
236
  isDragElementsDisabled: isDragElementsDisabled,
244
- isPrimaryPanel: isPrimaryPanel,
245
237
  onSelect: onSelect,
246
238
  setVisiblePanel: setVisiblePanel
247
239
  }, section)), {}, {
@@ -260,7 +252,6 @@ var SectionsContainer = function SectionsContainer(_ref) {
260
252
  return /*#__PURE__*/createElement(Section, _objectSpread$2(_objectSpread$2({}, _objectSpread$2({
261
253
  isAddingNewElement: isAddingNewElement,
262
254
  isDragElementsDisabled: isDragElementsDisabled,
263
- isPrimaryPanel: isPrimaryPanel,
264
255
  onSelect: onSelect,
265
256
  setVisiblePanel: setVisiblePanel
266
257
  }, section)), {}, {
@@ -275,9 +266,7 @@ var SectionsContainer = function SectionsContainer(_ref) {
275
266
 
276
267
  var TitleBar$1 = withT(function (_ref) {
277
268
  var t = _ref.t,
278
- setVisiblePanel = _ref.setVisiblePanel,
279
- isSelectedElementsEmpty = _ref.isSelectedElementsEmpty,
280
- isPrimaryPanel = _ref.isPrimaryPanel;
269
+ setVisiblePanel = _ref.setVisiblePanel;
281
270
  return /*#__PURE__*/jsxs("div", {
282
271
  className: "flex items-center justify-between p-6 pb-1",
283
272
  "data-testid": "elements-panel-title",
@@ -287,12 +276,11 @@ var TitleBar$1 = withT(function (_ref) {
287
276
  style: "h3",
288
277
  weight: "semibold",
289
278
  children: t("neetoMolecules.builderSidebar.addNewElement")
290
- }), !isSelectedElementsEmpty && /*#__PURE__*/jsx(Button, {
279
+ }), /*#__PURE__*/jsx(Button, {
291
280
  "data-cy": "cancel-button",
292
281
  icon: Close,
293
282
  size: "medium",
294
283
  style: "text",
295
- label: isPrimaryPanel ? t("neetoMolecules.builderSidebar.myElements") : null,
296
284
  onClick: function onClick() {
297
285
  return setVisiblePanel(PANEL_TYPES.SUMMARY);
298
286
  }
@@ -307,9 +295,7 @@ var ElementList = function ElementList(_ref) {
307
295
  _ref$elementSections = _ref.elementSections,
308
296
  elementSections = _ref$elementSections === void 0 ? [] : _ref$elementSections,
309
297
  onSelect = _ref.onSelect,
310
- isSelectedElementsEmpty = _ref.isSelectedElementsEmpty,
311
298
  isDragElementsDisabled = _ref.isDragElementsDisabled,
312
- isPrimaryPanel = _ref.isPrimaryPanel,
313
299
  isAddingNewElement = _ref.isAddingNewElement;
314
300
  var _useTranslation = useTranslation(),
315
301
  t = _useTranslation.t;
@@ -333,8 +319,6 @@ var ElementList = function ElementList(_ref) {
333
319
  }, [searchString, elementSections]);
334
320
  return /*#__PURE__*/jsxs(Fragment, {
335
321
  children: [/*#__PURE__*/jsx(TitleBar$1, {
336
- isPrimaryPanel: isPrimaryPanel,
337
- isSelectedElementsEmpty: isSelectedElementsEmpty,
338
322
  setVisiblePanel: setVisiblePanel
339
323
  }), /*#__PURE__*/jsxs("div", {
340
324
  className: "mb-1 px-6",
@@ -359,7 +343,6 @@ var ElementList = function ElementList(_ref) {
359
343
  filteredSections: filteredSections,
360
344
  isAddingNewElement: isAddingNewElement,
361
345
  isDragElementsDisabled: isDragElementsDisabled,
362
- isPrimaryPanel: isPrimaryPanel,
363
346
  onSelect: onSelect,
364
347
  setVisiblePanel: setVisiblePanel
365
348
  })
@@ -455,8 +438,7 @@ var TitleBar = withT(function (_ref) {
455
438
  showElementsFillButton = _ref.showElementsFillButton,
456
439
  isAddingAllElements = _ref.isAddingAllElements,
457
440
  addAllElements = _ref.addAllElements,
458
- isAddingNewElement = _ref.isAddingNewElement,
459
- isPrimaryPanel = _ref.isPrimaryPanel;
441
+ isAddingNewElement = _ref.isAddingNewElement;
460
442
  return /*#__PURE__*/jsxs("div", {
461
443
  className: "flex items-center justify-between p-6 pb-1",
462
444
  "data-testid": "selected-elements-title",
@@ -474,10 +456,10 @@ var TitleBar = withT(function (_ref) {
474
456
  disabled: isLoading,
475
457
  icon: Plus,
476
458
  iconPosition: "left",
459
+ label: t("neetoMolecules.builderSidebar.addNewElement"),
477
460
  loading: isAddingNewElement,
478
461
  size: "small",
479
462
  style: "link",
480
- label: isPrimaryPanel ? t("neetoMolecules.builderSidebar.addNewElement") : t("neetoMolecules.builderSidebar.back"),
481
463
  onClick: function onClick() {
482
464
  return setVisiblePanel(PANEL_TYPES.ELEMENTS);
483
465
  }
@@ -507,7 +489,6 @@ var SelectedElementsList = function SelectedElementsList(_ref) {
507
489
  selectedElementId = _ref.selectedElementId,
508
490
  selectedElements = _ref.selectedElements,
509
491
  setVisiblePanel = _ref.setVisiblePanel,
510
- isPrimaryPanel = _ref.isPrimaryPanel,
511
492
  fixedLastElement = _ref.fixedLastElement,
512
493
  fixedFirstElement = _ref.fixedFirstElement,
513
494
  selectedElementActions = _ref.selectedElementActions,
@@ -536,7 +517,6 @@ var SelectedElementsList = function SelectedElementsList(_ref) {
536
517
  addAllElements: addAllElements,
537
518
  isAddingAllElements: isAddingAllElements,
538
519
  isAddingNewElement: isAddingNewElement,
539
- isPrimaryPanel: isPrimaryPanel,
540
520
  setVisiblePanel: setVisiblePanel,
541
521
  showElementsFillButton: showElementsFillButton
542
522
  }), /*#__PURE__*/jsxs(Body, {
@@ -624,10 +604,8 @@ var ElementsPanel = function ElementsPanel(_ref) {
624
604
  _ref$showElementsFill = _ref.showElementsFillButton,
625
605
  showElementsFillButton = _ref$showElementsFill === void 0 ? false : _ref$showElementsFill,
626
606
  _ref$isAddingNewEleme = _ref.isAddingNewElement,
627
- isAddingNewElement = _ref$isAddingNewEleme === void 0 ? false : _ref$isAddingNewEleme,
628
- _ref$primaryPanel = _ref.primaryPanel,
629
- primaryPanel = _ref$primaryPanel === void 0 ? PANEL_TYPES.SUMMARY : _ref$primaryPanel;
630
- var _useState = useState(primaryPanel),
607
+ isAddingNewElement = _ref$isAddingNewEleme === void 0 ? false : _ref$isAddingNewEleme;
608
+ var _useState = useState(PANEL_TYPES.SUMMARY),
631
609
  _useState2 = _slicedToArray(_useState, 2),
632
610
  visiblePanel = _useState2[0],
633
611
  setVisiblePanel = _useState2[1];
@@ -674,14 +652,12 @@ var ElementsPanel = function ElementsPanel(_ref) {
674
652
  selectedElementId: selectedElementId,
675
653
  selectedElements: selectedElements,
676
654
  setVisiblePanel: setVisiblePanel,
677
- showElementsFillButton: showElementsFillButton,
678
- isPrimaryPanel: primaryPanel === PANEL_TYPES.SUMMARY
655
+ showElementsFillButton: showElementsFillButton
679
656
  }) : /*#__PURE__*/jsx(ElementList, {
680
657
  elementSections: elementSections,
681
658
  isAddingNewElement: isAddingNewElement,
682
659
  isDragElementsDisabled: isDragElementsDisabled,
683
660
  setVisiblePanel: setVisiblePanel,
684
- isPrimaryPanel: primaryPanel === PANEL_TYPES.ELEMENTS,
685
661
  onSelect: handleAddElement
686
662
  })
687
663
  })