react-align 1.1.7 → 2.0.3

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.
@@ -1,13 +1,13 @@
1
- import React__default, { useContext, createContext, createElement, useRef, useState, useMemo, useCallback } from 'react';
2
- import { DndProvider, useDrop, useDrag } from 'react-dnd';
3
- import { HTML5Backend } from 'react-dnd-html5-backend';
1
+ import React__default, { useContext, createContext, useState, useCallback, createElement, useMemo } from 'react';
2
+ import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';
4
3
  import { css } from 'glamor';
5
4
 
6
- var EditorModeContext = /*#__PURE__*/createContext({
7
- enabled: undefined
5
+ var Context = /*#__PURE__*/createContext({
6
+ editing: false,
7
+ isDragging: false
8
8
  });
9
- var useEditorMode = function useEditorMode() {
10
- return useContext(EditorModeContext);
9
+ var useAlignContext = function useAlignContext() {
10
+ return useContext(Context);
11
11
  };
12
12
 
13
13
  function styleInject(css, ref) {
@@ -37,25 +37,45 @@ function styleInject(css, ref) {
37
37
  }
38
38
  }
39
39
 
40
- var css_248z = ".wrapper{height:100%}.section,.wrapper{display:flex;justify-content:space-between}.section{flex-direction:column}.area{border:1px solid transparent;border-radius:8px;box-sizing:border-box;display:flex;position:relative}.area-transition-in{transition:all .3s ease-in-out,min-height .5s ease-in-out .2s,min-width .5s ease-in-out .2s}.area-transition-out{transition:all .3s ease-in-out .4s,min-height .5s ease-in-out .2s,min-width .5s ease-in-out .2s}.item{border:1px solid transparent;border-radius:6px;box-sizing:border-box;margin:6px}.vertical{flex-direction:column}.vertical-r{flex-direction:column-reverse}.horizontal{flex-direction:row}.horizontal-r{flex-direction:row-reverse}.stretch{flex:auto}.middle{flex-grow:0;flex:auto}.just-centered{justify-content:center}.just-end{justify-content:flex-end}.end{align-items:flex-end}.hide{display:none}";
40
+ var css_248z = ".wrapper{height:100%}.section,.wrapper{display:flex;justify-content:space-between}.section{flex-direction:column}.area{border:1px solid transparent;border-radius:8px;box-sizing:border-box;display:flex;position:relative}.area-transition-in{transition:all .3s ease-in-out,min-height .5s ease-in-out .2s,min-width .5s ease-in-out .2s}.area-transition-out{transition:all .3s ease-in-out .4s,min-height .5s ease-in-out .2s,min-width .5s ease-in-out .2s}.item{border:1px solid transparent;border-radius:6px;box-sizing:border-box;margin:6px;min-height:40px;min-width:70px;position:relative}.stretch{flex:auto}.middle{flex-grow:0;flex:auto}.just-centered{justify-content:center}.just-end{justify-content:flex-end}.end{align-items:flex-end}.hide{display:none}.overlay{background:rgba(0,0,0,.6);bottom:0;box-sizing:border-box;left:0;position:absolute;right:0;top:0}.overlay-buttons{box-sizing:border-box;display:flex;justify-content:space-between;padding:6px}";
41
41
  styleInject(css_248z);
42
42
 
43
43
  var GridWrapper = function GridWrapper(_ref) {
44
44
  var className = _ref.className,
45
- enabled = _ref.enabled,
45
+ editing = _ref.editing,
46
46
  vertical = _ref.vertical,
47
47
  stretch = _ref.stretch,
48
- styles = _ref.styles,
49
- editorStyles = _ref.editorStyles,
50
- children = _ref.children;
48
+ style = _ref.style,
49
+ editorStyle = _ref.editorStyle,
50
+ children = _ref.children,
51
+ onMove = _ref.onMove,
52
+ onAlignChange = _ref.onAlignChange,
53
+ onExtend = _ref.onExtend;
54
+
55
+ var _useState = useState(false),
56
+ isDragging = _useState[0],
57
+ setDragging = _useState[1];
58
+
59
+ var handleDragStart = useCallback(function () {
60
+ setDragging(true);
61
+ }, []);
62
+ var handleDragEnd = useCallback(function (result, _provided) {
63
+ setDragging(false);
64
+ if (!result.destination || result.reason !== 'DROP' || result.destination.droppableId === result.source.droppableId && result.destination.index === result.source.index) return;
65
+ onMove == null ? void 0 : onMove(result.draggableId, result.destination.droppableId, result.destination.index, result.source.droppableId, result.source.index);
66
+ }, [onMove]);
51
67
  return React__default.createElement("div", {
52
68
  className: "wrapper " + className + " " + (vertical && 'vertical') + " " + (stretch && 'stretch'),
53
- style: enabled ? editorStyles : styles
54
- }, React__default.createElement(DndProvider, {
55
- backend: HTML5Backend
56
- }, React__default.createElement(EditorModeContext.Provider, {
69
+ style: editing ? editorStyle : style
70
+ }, React__default.createElement(DragDropContext, {
71
+ onDragStart: handleDragStart,
72
+ onDragEnd: handleDragEnd
73
+ }, React__default.createElement(Context.Provider, {
57
74
  value: {
58
- enabled: enabled
75
+ editing: !!editing,
76
+ onAlignChange: onAlignChange,
77
+ onExtend: onExtend,
78
+ isDragging: isDragging
59
79
  }
60
80
  }, children)));
61
81
  };
@@ -78,26 +98,41 @@ function _extends() {
78
98
  return _extends.apply(this, arguments);
79
99
  }
80
100
 
101
+ function _objectWithoutPropertiesLoose(source, excluded) {
102
+ if (source == null) return {};
103
+ var target = {};
104
+ var sourceKeys = Object.keys(source);
105
+ var key, i;
106
+
107
+ for (i = 0; i < sourceKeys.length; i++) {
108
+ key = sourceKeys[i];
109
+ if (excluded.indexOf(key) >= 0) continue;
110
+ target[key] = source[key];
111
+ }
112
+
113
+ return target;
114
+ }
115
+
81
116
  var GridSection = function GridSection(_ref) {
82
117
  var className = _ref.className,
83
118
  horizontal = _ref.horizontal,
84
119
  stretch = _ref.stretch,
85
120
  fixedWidth = _ref.fixedWidth,
86
121
  fixedHeight = _ref.fixedHeight,
87
- styles = _ref.styles,
88
- editorStyles = _ref.editorStyles,
122
+ style = _ref.style,
123
+ editorStyle = _ref.editorStyle,
89
124
  children = _ref.children;
90
125
 
91
- var _useEditorMode = useEditorMode(),
92
- enabled = _useEditorMode.enabled;
126
+ var _useAlignContext = useAlignContext(),
127
+ enabled = _useAlignContext.editing;
93
128
 
94
- var stylesFromProps = enabled ? editorStyles : styles;
95
129
  return React__default.createElement("div", {
96
- className: "section " + className + " " + (horizontal && 'horizontal') + " " + (stretch && 'stretch'),
97
- style: _extends({}, stylesFromProps, {
98
- height: fixedHeight + 'px',
130
+ className: "section " + className + " " + (horizontal ? 'horizontal' : '') + " " + (stretch ? 'stretch' : ''),
131
+ style: _extends({}, enabled ? editorStyle : style, typeof fixedHeight === 'number' ? {
132
+ height: fixedHeight + 'px'
133
+ } : {}, typeof fixedWidth === 'number' ? {
99
134
  width: fixedWidth + 'px'
100
- })
135
+ } : {})
101
136
  }, children);
102
137
  };
103
138
 
@@ -393,285 +428,42 @@ var Icon = function Icon(_ref) {
393
428
  var className = _ref.className,
394
429
  name = _ref.name,
395
430
  size = _ref.size,
396
- onClick = _ref.onClick,
397
- styles = _ref.styles;
431
+ style = _ref.style,
432
+ onClick = _ref.onClick;
398
433
  var LocalIconComponent = Icons[name];
399
434
  return React__default.createElement(LocalIconComponent, Object.assign({
400
435
  className: className
401
436
  }, IconStyles(size), {
402
- style: styles,
437
+ style: style,
403
438
  onClick: onClick
404
439
  }));
405
440
  };
406
441
 
407
- var ItemType = {
408
- ITEM: 'react-align_item',
409
- GROUP: 'react-align_group'
410
- };
411
- function GridItem(_ref) {
412
- var className = _ref.className,
413
- children = _ref.children,
414
- id = _ref.id,
415
- index = _ref.index,
416
- extendable = _ref.extendable,
417
- extended = _ref.extended,
418
- draggable = _ref.draggable,
419
- onReorder = _ref.onReorder,
420
- onMoveArea = _ref.onMoveArea,
421
- onExtend = _ref.onExtend,
422
- location = _ref.location,
423
- end = _ref.end,
424
- vertical = _ref.vertical,
425
- styles = _ref.styles,
426
- editorStyles = _ref.editorStyles,
427
- iconSize = _ref.iconSize,
428
- _ref$iconColor = _ref.iconColor,
429
- iconColor = _ref$iconColor === void 0 ? 'rgb(255, 255, 255)' : _ref$iconColor;
430
- var ref = useRef(null);
431
-
432
- var _useEditorMode = useEditorMode(),
433
- enabled = _useEditorMode.enabled;
434
-
435
- var _useState = useState(false),
436
- isHovered = _useState[0],
437
- setHovered = _useState[1];
438
-
439
- var dragIndexRef = useRef();
440
-
441
- var handleExtend = function handleExtend() {
442
- if (!extendable || !onExtend) return;
443
- setHovered(false);
444
- onExtend(id, !extended);
445
- }; // ***************************************
446
- // Drag n drop logic
447
-
448
-
449
- var _useDrop = useDrop({
450
- accept: [ItemType.ITEM, ItemType.GROUP],
451
- collect: function collect(monitor) {
452
- return {
453
- handlerId: monitor.getHandlerId()
454
- };
455
- },
456
- hover: function hover(item, monitor) {
457
- var _ref$current;
458
-
459
- if (!ref.current || !enabled || draggable) {
460
- return;
461
- }
462
-
463
- var dragIndex = item.index;
464
- var hoverIndex = index;
465
-
466
- if (dragIndex === hoverIndex) {
467
- return;
468
- }
469
-
470
- var hoverBoundingRect = (_ref$current = ref.current) == null ? void 0 : _ref$current.getBoundingClientRect();
471
- var hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
472
- var hoverMiddleX = (hoverBoundingRect.right - hoverBoundingRect.left) / 2;
473
- var clientOffset = monitor.getClientOffset();
474
- if (!clientOffset) return;
475
- var hoverClientY = clientOffset.y - hoverBoundingRect.top;
476
- var hoverClientX = clientOffset.x - hoverBoundingRect.left;
477
-
478
- if (vertical) {
479
- if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {
480
- return;
481
- }
482
-
483
- if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {
484
- return;
485
- }
486
- } else {
487
- if (dragIndex < hoverIndex && hoverClientX < hoverMiddleX) {
488
- return;
489
- }
490
-
491
- if (dragIndex > hoverIndex && hoverClientX > hoverMiddleX) {
492
- return;
493
- }
494
- }
495
-
496
- dragIndexRef.current = dragIndex;
497
- },
498
- drop: function drop(item) {
499
- if (dragIndexRef.current !== undefined) {
500
- onReorder == null ? void 0 : onReorder(item.id, location, dragIndexRef.current, index);
501
- dragIndexRef.current = undefined;
502
- }
503
- }
504
- }),
505
- handlerId = _useDrop[0].handlerId,
506
- drop = _useDrop[1];
507
-
508
- var _useDrag = useDrag({
509
- type: ItemType.ITEM,
510
- item: {
511
- id: id,
512
- index: index
513
- },
514
- canDrag: draggable != null ? draggable : enabled,
515
- end: function end(item, monitor) {
516
- var dropResults = monitor.getDropResult();
517
-
518
- if (dropResults && dropResults.location !== location) {
519
- onMoveArea == null ? void 0 : onMoveArea(item.id, dropResults.location, location);
520
- }
521
- },
522
- collect: function collect(monitor) {
523
- return {
524
- isDragging: monitor.isDragging()
525
- };
526
- }
527
- }, [dragIndexRef]),
528
- isDragging = _useDrag[0].isDragging,
529
- drag = _useDrag[1],
530
- preview = _useDrag[2];
531
-
532
- preview(drop(ref)); // ***************************************
533
- // ***************************************
534
- // External styles for editorMode or the vanilla grid
535
-
536
- var stylesFromProps = enabled ? editorStyles : styles;
537
- var itemStyles = useMemo(function () {
538
- return {
539
- opacity: isDragging ? 0.5 : 1,
540
- minHeight: isHovered && enabled ? '40px' : undefined,
541
- width: !vertical && extended ? '100%' : undefined,
542
- minWidth: isHovered && enabled ? extendable ? '70px' : '30px' : undefined,
543
- height: vertical && extended ? '100%' : undefined
544
- };
545
- }, [isDragging, isHovered, enabled, vertical, extended, extendable]);
546
- var containerStyle = useMemo(function () {
547
- return {
548
- position: 'relative',
549
- display: 'inline-block',
550
- minHeight: isHovered && enabled ? '40px' : undefined,
551
- width: !vertical && extended ? '100%' : undefined,
552
- minWidth: isHovered && enabled ? extendable ? '70px' : '30px' : undefined,
553
- height: vertical && extended ? '100%' : undefined
554
- };
555
- }, [isHovered, enabled, vertical, extended, extendable]);
556
- var overlayStyles = {
557
- position: 'absolute',
558
- top: '0',
559
- left: '0',
560
- width: '100%',
561
- height: '100%',
562
- boxSizing: 'border-box',
563
- background: 'rgba(0,0,0,0.6)',
564
- borderRadius: '6px'
565
- };
566
- var buttonStyles = useMemo(function () {
567
- return {
568
- display: 'flex',
569
- alignItems: end ? 'end' : 'start',
570
- justifyContent: 'space-between',
571
- padding: '6px',
572
- "float": end ? 'right' : 'left'
573
- };
574
- }, [end]); // ***************************************
575
-
576
- var childrenWithParentProps = React__default.Children.map(children, function (child) {
577
- return React__default.cloneElement(child, {
578
- extended: extended
579
- });
580
- });
581
- return React__default.createElement("div", {
582
- id: id,
583
- ref: ref,
584
- "data-handler-id": handlerId,
585
- className: className + " item",
586
- style: _extends({}, itemStyles, stylesFromProps),
587
- onMouseEnter: function onMouseEnter() {
588
- return setHovered(true);
589
- },
590
- onMouseLeave: function onMouseLeave() {
591
- return setHovered(false);
592
- }
593
- }, React__default.createElement("div", {
594
- style: containerStyle
595
- }, (draggable != null ? draggable : enabled) && isHovered && React__default.createElement("div", {
596
- style: overlayStyles
597
- }, React__default.createElement("div", {
598
- style: buttonStyles
599
- }, React__default.createElement("div", {
600
- ref: drag
601
- }, React__default.createElement(Icon, {
602
- name: "moveArrows",
603
- size: iconSize,
604
- styles: {
605
- color: iconColor
606
- }
607
- })), extendable && React__default.createElement(Icon, {
608
- name: vertical ? 'verticalExtend' : 'horizontalExtend',
609
- size: iconSize,
610
- styles: {
611
- color: iconColor,
612
- marginLeft: '8px'
613
- },
614
- onClick: handleExtend
615
- }))), childrenWithParentProps));
616
- }
617
-
442
+ var alignments = ['start', 'centered', 'end'];
618
443
  function GridArea(_ref) {
619
- var className = _ref.className,
444
+ var id = _ref.id,
445
+ className = _ref.className,
620
446
  vertical = _ref.vertical,
621
- reverse = _ref.reverse,
622
447
  stretch = _ref.stretch,
623
448
  end = _ref.end,
624
- droppable = _ref.droppable,
449
+ disabled = _ref.disabled,
625
450
  align = _ref.align,
626
451
  onAlignChange = _ref.onAlignChange,
627
- location = _ref.location,
628
452
  children = _ref.children,
629
- styles = _ref.styles,
630
- editorStyles = _ref.editorStyles,
453
+ style = _ref.style,
454
+ editorStyle = _ref.editorStyle,
631
455
  _ref$iconColor = _ref.iconColor,
632
456
  iconColor = _ref$iconColor === void 0 ? '#FFFFFF' : _ref$iconColor;
633
457
 
634
- var _useEditorMode = useEditorMode(),
635
- enabled = _useEditorMode.enabled;
636
-
637
- var handleAlignChange = useCallback(function (align) {
638
- switch (align) {
639
- case 'start':
640
- onAlignChange == null ? void 0 : onAlignChange('centered');
641
- break;
642
-
643
- case 'centered':
644
- onAlignChange == null ? void 0 : onAlignChange('end');
645
- break;
646
-
647
- default:
648
- onAlignChange == null ? void 0 : onAlignChange('start');
649
- break;
650
- }
651
- }, [onAlignChange]); // ***************************************
652
- // Drop logic
653
-
654
- var _useDrop = useDrop(function () {
655
- return {
656
- accept: [ItemType.ITEM, ItemType.GROUP],
657
- drop: function drop() {
658
- return {
659
- location: location
660
- };
661
- },
662
- collect: function collect(monitor) {
663
- return {
664
- isOver: monitor.isOver()
665
- };
666
- }
667
- };
668
- }),
669
- isOver = _useDrop[0].isOver,
670
- drop = _useDrop[1]; // ***************************************
671
- // ***************************************
672
- // Internal styles used
673
-
458
+ var _useAlignContext = useAlignContext(),
459
+ enabled = _useAlignContext.editing,
460
+ onAlignChange2 = _useAlignContext.onAlignChange;
674
461
 
462
+ var handleAlignChange = useCallback(function () {
463
+ var a = alignments[(align ? alignments.indexOf(align) + 1 : 0) % alignments.length];
464
+ onAlignChange == null ? void 0 : onAlignChange(a);
465
+ onAlignChange2 == null ? void 0 : onAlignChange2(id, a);
466
+ }, [align, onAlignChange, onAlignChange2, id]);
675
467
  var buttonStyle = useMemo(function () {
676
468
  return {
677
469
  position: 'absolute',
@@ -679,44 +471,158 @@ function GridArea(_ref) {
679
471
  right: vertical ? !end ? 0 : undefined : '50%',
680
472
  bottom: !vertical && !end ? 0 : vertical ? '50%' : undefined,
681
473
  top: vertical ? '50%' : end ? 0 : undefined,
682
- opacity: (droppable != null ? droppable : enabled) && align ? 1 : 0,
474
+ opacity: !disabled && enabled && align ? 1 : 0,
475
+ pointerEvents: !disabled && enabled && align ? 'auto' : 'none',
683
476
  transition: 'all 0.5s ease-in-out'
684
477
  };
685
- }, [vertical, end, droppable, enabled, align]);
686
- var mainStyles = useMemo(function () {
687
- return {
688
- opacity: isOver ? 0.8 : 1,
689
- minHeight: !React__default.Children.count(children) && !enabled ? '0px' : '26px',
690
- minWidth: !React__default.Children.count(children) && !enabled ? '0px' : '46px'
691
- };
692
- }, [isOver, children, enabled]);
693
- var stylesFromProps = enabled ? editorStyles : styles; // ***************************************
694
- // Rebuilds the GridItem children to receive their parent GridArea's 'end' and 'vertical' values.
478
+ }, [vertical, end, disabled, enabled, align]); // Rebuilds the GridItem children to receive their parent GridArea's 'end' and 'vertical' values.
695
479
  // Used to know where to align the overlay buttons (end) and how to extend the GridItems (vertical).
696
480
 
697
- var childrenWithParentProps = React__default.Children.map(children, function (child) {
698
- return React__default.cloneElement(child, {
699
- end: end,
700
- vertical: vertical,
701
- location: location
481
+ var childrenWithParentProps = useMemo(function () {
482
+ return React__default.Children.map(children, function (child) {
483
+ return React__default.cloneElement(child, {
484
+ end: end,
485
+ vertical: vertical
486
+ });
702
487
  });
488
+ }, [children, end, vertical]);
489
+ return React__default.createElement(Droppable, {
490
+ droppableId: id,
491
+ direction: vertical ? 'vertical' : 'horizontal',
492
+ isDropDisabled: disabled
493
+ }, function (provided, snapshot) {
494
+ return React__default.createElement("div", Object.assign({
495
+ ref: provided.innerRef
496
+ }, provided.droppableProps, {
497
+ className: [className, 'area', stretch && 'stretch', end && 'end', align === 'centered' ? 'just-centered' : align === 'end' ? 'just-end' : 'start', enabled ? 'area-transition-in' : 'area-transition-out'].filter(Boolean).join(' '),
498
+ style: _extends({
499
+ flexDirection: vertical ? 'column' : 'row',
500
+ minHeight: !React__default.Children.count(children) && !enabled ? '0px' : '26px',
501
+ minWidth: !React__default.Children.count(children) && !enabled ? '0px' : '46px',
502
+ opacity: snapshot.isDraggingOver ? 0.8 : 1
503
+ }, enabled ? editorStyle : style)
504
+ }), childrenWithParentProps, provided.placeholder, React__default.createElement("div", {
505
+ style: buttonStyle
506
+ }, React__default.createElement("div", {
507
+ onClick: handleAlignChange,
508
+ style: {
509
+ cursor: 'pointer'
510
+ }
511
+ }, React__default.createElement(Icon, {
512
+ name: align === 'centered' ? vertical ? 'alignCenterV' : 'alignCenter' : align === 'end' ? vertical ? 'alignEndV' : 'alignEnd' : vertical ? 'alignStartV' : 'alignStart',
513
+ style: {
514
+ color: iconColor
515
+ }
516
+ }))));
517
+ });
518
+ }
519
+
520
+ function GridItem(_ref) {
521
+ var className = _ref.className,
522
+ children = _ref.children,
523
+ id = _ref.id,
524
+ index = _ref.index,
525
+ _ref$extendable = _ref.extendable,
526
+ extendable = _ref$extendable === void 0 ? false : _ref$extendable,
527
+ _ref$extended = _ref.extended,
528
+ extended = _ref$extended === void 0 ? false : _ref$extended,
529
+ _ref$disabled = _ref.disabled,
530
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
531
+ style = _ref.style,
532
+ editorStyle = _ref.editorStyle,
533
+ iconSize = _ref.iconSize,
534
+ _ref$iconColor = _ref.iconColor,
535
+ iconColor = _ref$iconColor === void 0 ? 'rgb(255, 255, 255)' : _ref$iconColor,
536
+ props = _objectWithoutPropertiesLoose(_ref, ["className", "children", "id", "index", "extendable", "extended", "disabled", "style", "editorStyle", "iconSize", "iconColor"]);
537
+
538
+ var end = props.end,
539
+ vertical = props.vertical;
540
+
541
+ var _useAlignContext = useAlignContext(),
542
+ editing = _useAlignContext.editing,
543
+ isDragging = _useAlignContext.isDragging,
544
+ onExtend = _useAlignContext.onExtend;
545
+
546
+ var _useState = useState(false),
547
+ isHovered = _useState[0],
548
+ setHovered = _useState[1];
549
+
550
+ var handleExtend = useCallback(function () {
551
+ if (!extendable) return;
552
+ setHovered(false);
553
+ onExtend == null ? void 0 : onExtend(id, !extended);
554
+ }, [extendable, onExtend, extended, id]);
555
+ var buttonStyles = useMemo(function () {
556
+ return {
557
+ alignItems: end ? 'end' : 'start',
558
+ "float": end ? 'right' : 'left'
559
+ };
560
+ }, [end]);
561
+ var ctx = useMemo(function () {
562
+ return {
563
+ id: id,
564
+ editing: editing,
565
+ isDragging: isDragging,
566
+ isHovered: isHovered,
567
+ extended: extended,
568
+ extendable: extendable,
569
+ disabled: disabled,
570
+ index: index
571
+ };
572
+ }, [disabled, editing, extendable, extended, id, index, isDragging, isHovered]);
573
+ return React__default.createElement(Draggable, {
574
+ draggableId: id,
575
+ index: index,
576
+ isDragDisabled: disabled
577
+ }, function (provided, snapshot) {
578
+ return React__default.createElement("div", Object.assign({
579
+ ref: provided.innerRef
580
+ }, provided.draggableProps, {
581
+ className: className + " item",
582
+ style: _extends({
583
+ flex: extended && !snapshot.isDragging ? 'auto' : undefined,
584
+ opacity: snapshot.isDragging ? 0.5 : 1
585
+ }, editing ? editorStyle : style, provided.draggableProps.style),
586
+ onMouseEnter: function onMouseEnter() {
587
+ return setHovered(true);
588
+ },
589
+ onMouseLeave: function onMouseLeave() {
590
+ return setHovered(false);
591
+ }
592
+ }), React__default.createElement("div", {
593
+ style: {
594
+ width: '100%',
595
+ height: '100%',
596
+ pointerEvents: editing ? 'none' : undefined
597
+ }
598
+ }, typeof children === 'function' ? children(ctx) : children), React__default.createElement("div", {
599
+ className: "overlay",
600
+ style: {
601
+ display: !disabled && editing && isHovered && (snapshot.isDragging || !isDragging) ? 'block' : 'none'
602
+ }
603
+ }, React__default.createElement("div", {
604
+ className: "overlay-buttons",
605
+ style: buttonStyles
606
+ }, React__default.createElement("div", Object.assign({}, provided.dragHandleProps), React__default.createElement(Icon, {
607
+ name: "moveArrows",
608
+ size: iconSize,
609
+ style: {
610
+ color: iconColor
611
+ }
612
+ })), extendable && React__default.createElement("div", {
613
+ style: {
614
+ cursor: 'pointer',
615
+ marginLeft: '8px'
616
+ },
617
+ onClick: handleExtend
618
+ }, React__default.createElement(Icon, {
619
+ name: vertical ? 'verticalExtend' : 'horizontalExtend',
620
+ size: iconSize,
621
+ style: {
622
+ color: iconColor
623
+ }
624
+ })))));
703
625
  });
704
- return React__default.createElement("div", {
705
- ref: drop,
706
- className: "\n " + className + "\n area\n " + (stretch && 'stretch') + "\n " + (end && 'end') + "\n " + (align === 'centered' ? 'just-centered' : align === 'end' ? 'just-end' : 'start') + "\n " + (vertical ? reverse ? 'vertical-r' : 'vertical' : reverse ? 'horizontal-r' : 'horizontal') + "\n " + (enabled ? 'area-transition-in' : 'area-transition-out') + "\n ",
707
- style: _extends({}, mainStyles, stylesFromProps)
708
- }, childrenWithParentProps, React__default.createElement("div", {
709
- style: buttonStyle
710
- }, React__default.createElement(Icon, {
711
- name: align === 'centered' ? vertical ? 'alignCenterV' : 'alignCenter' : align === 'end' ? vertical ? 'alignEndV' : 'alignEnd' : vertical ? 'alignStartV' : 'alignStart',
712
- styles: {
713
- color: iconColor,
714
- cursor: (droppable != null ? droppable : enabled) && align && !!React__default.Children.count(children) ? 'pointer' : 'default'
715
- },
716
- onClick: (droppable != null ? droppable : enabled) && align && !!React__default.Children.count(children) ? function () {
717
- return handleAlignChange(align);
718
- } : undefined
719
- })));
720
626
  }
721
627
 
722
628
  export { GridArea, GridItem, GridSection, GridWrapper, Icon };