@dhis2-ui/modal 7.7.10 → 7.9.1

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.
@@ -23,56 +23,47 @@ var _react = _interopRequireDefault(require("react"));
23
23
 
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
 
26
- const scrollBoxCard = {
26
+ const resolveLayerStyles = hide => ({
27
27
  styles: /*#__PURE__*/_react.default.createElement(_style.default, {
28
- id: "2814715826"
29
- }, [`div.jsx-2814715826{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:calc(100vh - ${2 * _uiConstants.spacersNum.dp64}px);max-width:calc(100vw - ${2 * _uiConstants.spacersNum.dp64}px);}`]),
30
- className: "jsx-2814715826"
31
- };
32
- const centeredContent = {
33
- styles: /*#__PURE__*/_react.default.createElement(_style.default, {
34
- id: "1378205604"
35
- }, [`.top.jsx-1378205604{padding-top:${_uiConstants.spacers.dp64};}`, `.bottom.jsx-1378205604{padding-bottom:${_uiConstants.spacers.dp64};}`]),
36
- className: "jsx-1378205604"
37
- };
38
- const layerStyles = {
39
- styles: /*#__PURE__*/_react.default.createElement(_style.default, {
40
- id: "427720588"
41
- }, ["div.jsx-427720588{display:none;}"]),
42
- className: "jsx-427720588"
43
- };
28
+ id: "1884450060",
29
+ dynamic: [_uiConstants.spacers.dp64, hide ? 'none' : 'block']
30
+ }, [`div.__jsx-style-dynamic-selector{padding:${_uiConstants.spacers.dp64};display:${hide ? 'none' : 'block'};}`]),
31
+ className: _style.default.dynamic([["1884450060", [_uiConstants.spacers.dp64, hide ? 'none' : 'block']]])
32
+ });
44
33
 
45
34
  const Modal = ({
46
35
  children,
47
36
  className,
48
37
  dataTest,
49
38
  hide,
39
+ fluid,
50
40
  large,
51
41
  onClose,
52
42
  position,
53
43
  small
54
44
  }) => {
45
+ const layerStyles = resolveLayerStyles(hide);
55
46
  return /*#__PURE__*/_react.default.createElement(_layer.Layer, {
56
47
  onClick: onClose,
57
- className: hide ? layerStyles.className : '',
48
+ className: layerStyles.className,
58
49
  translucent: !hide
59
50
  }, /*#__PURE__*/_react.default.createElement(_center.Center, {
60
- position: position,
61
- className: centeredContent.className
51
+ position: position
62
52
  }, /*#__PURE__*/_react.default.createElement("aside", {
63
53
  role: "dialog",
64
54
  "aria-modal": "true",
65
55
  "data-test": dataTest,
66
- className: _style.default.dynamic([["2700832039", [2 * _uiConstants.spacersNum.dp64, 2 * _uiConstants.spacersNum.dp64]]]) + " " + ((0, _classnames.default)(className, {
56
+ className: _style.default.dynamic([["1701687214", [2 * _uiConstants.spacersNum.dp64, 2 * _uiConstants.spacersNum.dp64, 2 * _uiConstants.spacersNum.dp64, 2 * _uiConstants.spacersNum.dp64]]]) + " " + ((0, _classnames.default)(className, {
67
57
  small,
68
- large
58
+ large,
59
+ fluid
69
60
  }) || "")
70
- }, /*#__PURE__*/_react.default.createElement(_card.Card, {
71
- className: scrollBoxCard.className
72
- }, children)), scrollBoxCard.styles, layerStyles.styles, centeredContent.styles), /*#__PURE__*/_react.default.createElement(_style.default, {
73
- id: "2700832039",
74
- dynamic: [2 * _uiConstants.spacersNum.dp64, 2 * _uiConstants.spacersNum.dp64]
75
- }, [`aside.__jsx-style-dynamic-selector{overflow-y:hidden;height:auto;max-height:calc(100vh - ${2 * _uiConstants.spacersNum.dp64}px);max-width:calc(100vw - ${2 * _uiConstants.spacersNum.dp64}px);width:600px;}`, "aside.small.__jsx-style-dynamic-selector{width:400px;}", "aside.large.__jsx-style-dynamic-selector{width:800px;}"]));
61
+ }, /*#__PURE__*/_react.default.createElement(_card.Card, null, /*#__PURE__*/_react.default.createElement("div", {
62
+ className: _style.default.dynamic([["1701687214", [2 * _uiConstants.spacersNum.dp64, 2 * _uiConstants.spacersNum.dp64, 2 * _uiConstants.spacersNum.dp64, 2 * _uiConstants.spacersNum.dp64]]])
63
+ }, children))), layerStyles.styles), /*#__PURE__*/_react.default.createElement(_style.default, {
64
+ id: "1701687214",
65
+ dynamic: [2 * _uiConstants.spacersNum.dp64, 2 * _uiConstants.spacersNum.dp64, 2 * _uiConstants.spacersNum.dp64, 2 * _uiConstants.spacersNum.dp64]
66
+ }, [`div.__jsx-style-dynamic-selector{padding:24px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:column;-ms-flex-flow:column;flex-flow:column;max-width:calc(100vw - ${2 * _uiConstants.spacersNum.dp64}px);max-height:calc(100vh - ${2 * _uiConstants.spacersNum.dp64}px);}`, `aside.__jsx-style-dynamic-selector{height:auto;width:600px;max-width:calc(100vw - ${2 * _uiConstants.spacersNum.dp64}px);max-height:calc(100vh - ${2 * _uiConstants.spacersNum.dp64}px);}`, "aside.small.__jsx-style-dynamic-selector{width:400px;}", "aside.large.__jsx-style-dynamic-selector{width:800px;}", "aside.fluid.__jsx-style-dynamic-selector{width:auto;}"]));
76
67
  };
77
68
 
78
69
  exports.Modal = Modal;
@@ -84,6 +75,7 @@ Modal.propTypes = {
84
75
  children: _propTypes.default.node,
85
76
  className: _propTypes.default.string,
86
77
  dataTest: _propTypes.default.string,
78
+ fluid: _propTypes.default.bool,
87
79
  hide: _propTypes.default.bool,
88
80
  large: _uiConstants.sharedPropTypes.sizePropType,
89
81
  position: _uiConstants.sharedPropTypes.insideAlignmentPropType,
@@ -3,10 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ModalThatHidesWithStatefulComponens = exports.LargeModalWithMoreNestedModals = exports.LargeWithSelectComponent = exports.SmallLongTitle = exports.BottomScrollable = exports.MiddleScrollable = exports.TopScrollable = exports.SmallClickableScreenCover = exports.SmallDestructivePrimary = exports.SmallContentPrimary = exports.LargeTitleContentPrimary = exports.MediumTitleContentAction = exports.SmallTitleContentAction = exports.AlignmentBottom = exports.AlignmentMiddle = exports.DefaultContent = exports.default = void 0;
6
+ exports.FluidBottom = exports.FluidMiddle = exports.FluidTop = exports.ModalThatHidesWithStatefulComponens = exports.LargeModalWithMoreNestedModals = exports.LargeWithSelectComponent = exports.SmallLongTitle = exports.BottomScrollable = exports.MiddleScrollable = exports.TopScrollable = exports.SmallClickableScreenCover = exports.SmallDestructivePrimary = exports.SmallContentPrimary = exports.FluidTitleContentPrimary = exports.LargeTitleContentPrimary = exports.MediumTitleContentAction = exports.SmallTitleContentAction = exports.AlignmentBottom = exports.AlignmentMiddle = exports.DefaultContent = exports.default = void 0;
7
7
 
8
8
  var _style = _interopRequireDefault(require("styled-jsx/style"));
9
9
 
10
+ var _box = require("@dhis2-ui/box");
11
+
10
12
  var _button = require("@dhis2-ui/button");
11
13
 
12
14
  var _menu = require("@dhis2-ui/menu");
@@ -121,9 +123,9 @@ const AlignmentBottom = args => /*#__PURE__*/_react.default.createElement(_modal
121
123
  exports.AlignmentBottom = AlignmentBottom;
122
124
  AlignmentBottom.args = {
123
125
  onClose,
124
- alignment: 'bottom'
126
+ position: 'bottom'
125
127
  };
126
- AlignmentBottom.storyName = 'Alignment: Bottom';
128
+ AlignmentBottom.storyName = 'Position: Bottom';
127
129
 
128
130
  const SmallTitleContentAction = args => /*#__PURE__*/_react.default.createElement(_modal.Modal, args, /*#__PURE__*/_react.default.createElement(_index.ModalTitle, null, "This is a small modal with title, content and primary action"), /*#__PURE__*/_react.default.createElement(_index.ModalContent, null, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."), /*#__PURE__*/_react.default.createElement(_index.ModalActions, null, /*#__PURE__*/_react.default.createElement(_button.ButtonStrip, {
129
131
  end: true
@@ -180,6 +182,38 @@ LargeTitleContentPrimary.args = {
180
182
  };
181
183
  LargeTitleContentPrimary.storyName = 'Large: Title, Content, Primary';
182
184
 
185
+ const FluidTitleContentPrimary = args => /*#__PURE__*/_react.default.createElement(_modal.Modal, args, /*#__PURE__*/_react.default.createElement(_index.ModalTitle, null, "This is a modal using custom dimensions, with title, content and primary action"), /*#__PURE__*/_react.default.createElement(_index.ModalContent, null, /*#__PURE__*/_react.default.createElement("div", {
186
+ style: {
187
+ display: 'flex',
188
+ flexFlow: 'row wrap'
189
+ }
190
+ }, /*#__PURE__*/_react.default.createElement("div", {
191
+ style: {
192
+ width: '600px',
193
+ backgroundColor: '#fea'
194
+ }
195
+ }, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."), /*#__PURE__*/_react.default.createElement("div", {
196
+ style: {
197
+ width: '300px',
198
+ backgroundColor: '#eaf'
199
+ }
200
+ }, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."))), /*#__PURE__*/_react.default.createElement(_index.ModalActions, null, /*#__PURE__*/_react.default.createElement(_button.ButtonStrip, {
201
+ end: true
202
+ }, /*#__PURE__*/_react.default.createElement(_button.Button, {
203
+ onClick: say('Button secondary'),
204
+ secondary: true
205
+ }, "Secondary action"), /*#__PURE__*/_react.default.createElement(_button.Button, {
206
+ onClick: say('Button primary'),
207
+ primary: true
208
+ }, "Primary action"))));
209
+
210
+ exports.FluidTitleContentPrimary = FluidTitleContentPrimary;
211
+ FluidTitleContentPrimary.args = {
212
+ fluid: true,
213
+ position: 'top'
214
+ };
215
+ FluidTitleContentPrimary.storyName = 'Fluid (Custom sizes): Title, Content, Primary';
216
+
183
217
  const SmallContentPrimary = args => /*#__PURE__*/_react.default.createElement(_modal.Modal, args, /*#__PURE__*/_react.default.createElement(_index.ModalContent, null, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."), /*#__PURE__*/_react.default.createElement(_index.ModalActions, null, /*#__PURE__*/_react.default.createElement(_button.ButtonStrip, {
184
218
  end: true
185
219
  }, /*#__PURE__*/_react.default.createElement(_button.Button, {
@@ -589,4 +623,64 @@ const ModalThatHidesWithStatefulComponens = () => {
589
623
  }, "Hide modal")))));
590
624
  };
591
625
 
592
- exports.ModalThatHidesWithStatefulComponens = ModalThatHidesWithStatefulComponens;
626
+ exports.ModalThatHidesWithStatefulComponens = ModalThatHidesWithStatefulComponens;
627
+
628
+ const FluidTop = args => /*#__PURE__*/_react.default.createElement(_modal.Modal, args, /*#__PURE__*/_react.default.createElement(_index.ModalTitle, null, "This is a modal using custom dimensions, with title, content and primary action"), /*#__PURE__*/_react.default.createElement(_index.ModalContent, null, /*#__PURE__*/_react.default.createElement(_box.Box, {
629
+ width: "666px",
630
+ height: "666px"
631
+ }, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.")), /*#__PURE__*/_react.default.createElement(_index.ModalActions, null, /*#__PURE__*/_react.default.createElement(_button.ButtonStrip, {
632
+ end: true
633
+ }, /*#__PURE__*/_react.default.createElement(_button.Button, {
634
+ onClick: say('Button secondary'),
635
+ secondary: true
636
+ }, "Secondary action"), /*#__PURE__*/_react.default.createElement(_button.Button, {
637
+ onClick: say('Button primary'),
638
+ primary: true
639
+ }, "Primary action"))));
640
+
641
+ exports.FluidTop = FluidTop;
642
+ FluidTop.args = {
643
+ fluid: true,
644
+ position: 'top'
645
+ };
646
+ FluidTop.storyName = 'Fluid (Top)';
647
+
648
+ const FluidMiddle = args => /*#__PURE__*/_react.default.createElement(_modal.Modal, args, /*#__PURE__*/_react.default.createElement(_index.ModalTitle, null, "This is a modal using custom dimensions, with title, content and primary action"), /*#__PURE__*/_react.default.createElement(_index.ModalContent, null, /*#__PURE__*/_react.default.createElement(_box.Box, {
649
+ width: "666px",
650
+ height: "666px"
651
+ }, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.")), /*#__PURE__*/_react.default.createElement(_index.ModalActions, null, /*#__PURE__*/_react.default.createElement(_button.ButtonStrip, {
652
+ end: true
653
+ }, /*#__PURE__*/_react.default.createElement(_button.Button, {
654
+ onClick: say('Button secondary'),
655
+ secondary: true
656
+ }, "Secondary action"), /*#__PURE__*/_react.default.createElement(_button.Button, {
657
+ onClick: say('Button primary'),
658
+ primary: true
659
+ }, "Primary action"))));
660
+
661
+ exports.FluidMiddle = FluidMiddle;
662
+ FluidMiddle.args = {
663
+ fluid: true,
664
+ position: 'middle'
665
+ };
666
+ FluidMiddle.storyName = 'Fluid (Middle)';
667
+
668
+ const FluidBottom = args => /*#__PURE__*/_react.default.createElement(_modal.Modal, args, /*#__PURE__*/_react.default.createElement(_index.ModalTitle, null, "This is a modal using custom dimensions, with title, content and primary action"), /*#__PURE__*/_react.default.createElement(_index.ModalContent, null, /*#__PURE__*/_react.default.createElement(_box.Box, {
669
+ width: "666px",
670
+ height: "666px"
671
+ }, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.")), /*#__PURE__*/_react.default.createElement(_index.ModalActions, null, /*#__PURE__*/_react.default.createElement(_button.ButtonStrip, {
672
+ end: true
673
+ }, /*#__PURE__*/_react.default.createElement(_button.Button, {
674
+ onClick: say('Button secondary'),
675
+ secondary: true
676
+ }, "Secondary action"), /*#__PURE__*/_react.default.createElement(_button.Button, {
677
+ onClick: say('Button primary'),
678
+ primary: true
679
+ }, "Primary action"))));
680
+
681
+ exports.FluidBottom = FluidBottom;
682
+ FluidBottom.args = {
683
+ fluid: true,
684
+ position: 'bottom'
685
+ };
686
+ FluidBottom.storyName = 'Fluid (Bottom)';
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var _react = require("@testing-library/react");
4
+
5
+ var _react2 = _interopRequireDefault(require("react"));
6
+
7
+ var _modal = require("./modal.js");
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+
11
+ describe('Modal', () => {
12
+ describe('Regular dimensions', () => {
13
+ it('has the correct dimension styles in its default state', () => {
14
+ (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_modal.Modal, null));
15
+
16
+ const modalEl = _react.screen.getByRole('dialog');
17
+
18
+ const style = window.getComputedStyle(modalEl);
19
+ expect(style.height).toBe('auto');
20
+ expect(style.maxHeight).toBe('calc(100vh - 128px)');
21
+ expect(style.maxWidth).toBe('calc(100vw - 128px)');
22
+ expect(style.width).toBe('600px');
23
+ });
24
+ it('has the correct dimension styles when the "small" prop is provided', () => {
25
+ (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_modal.Modal, {
26
+ small: true
27
+ }));
28
+
29
+ const modalEl = _react.screen.getByRole('dialog');
30
+
31
+ console.log('modalEl.outerWidth', modalEl.offsetWidth);
32
+ const style = window.getComputedStyle(modalEl);
33
+ expect(style.height).toBe('auto');
34
+ expect(style.maxHeight).toBe('calc(100vh - 128px)');
35
+ expect(style.maxWidth).toBe('calc(100vw - 128px)');
36
+ expect(style.width).toBe('400px');
37
+ });
38
+ it('has the correct dimension styles when the "large" prop is provided', () => {
39
+ (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_modal.Modal, {
40
+ large: true
41
+ }));
42
+
43
+ const modalEl = _react.screen.getByRole('dialog');
44
+
45
+ const style = window.getComputedStyle(modalEl);
46
+ expect(style.height).toBe('auto');
47
+ expect(style.maxHeight).toBe('calc(100vh - 128px)');
48
+ expect(style.maxWidth).toBe('calc(100vw - 128px)');
49
+ expect(style.width).toBe('800px');
50
+ });
51
+ it('has the correct dimension styles when the "fluid" prop is provided', () => {
52
+ (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_modal.Modal, {
53
+ fluid: true
54
+ }));
55
+
56
+ const modalEl = _react.screen.getByRole('dialog');
57
+
58
+ const style = window.getComputedStyle(modalEl);
59
+ expect(style.height).toBe('auto');
60
+ expect(style.maxHeight).toBe('calc(100vh - 128px)');
61
+ expect(style.maxWidth).toBe('calc(100vw - 128px)');
62
+ expect(style.width).toBe('auto');
63
+ });
64
+ });
65
+ });
@@ -20,11 +20,11 @@ const ModalActions = ({
20
20
  dataTest
21
21
  }) => /*#__PURE__*/_react.default.createElement("div", {
22
22
  "data-test": dataTest,
23
- className: _style.default.dynamic([["1459377348", [_uiConstants.spacers.dp24, _uiConstants.spacers.dp24, _uiConstants.spacers.dp24]]])
23
+ className: _style.default.dynamic([["2674552674", [_uiConstants.spacers.dp16]]])
24
24
  }, children, /*#__PURE__*/_react.default.createElement(_style.default, {
25
- id: "1459377348",
26
- dynamic: [_uiConstants.spacers.dp24, _uiConstants.spacers.dp24, _uiConstants.spacers.dp24]
27
- }, [`div.__jsx-style-dynamic-selector{padding:0 ${_uiConstants.spacers.dp24} ${_uiConstants.spacers.dp24} ${_uiConstants.spacers.dp24};display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;}`]));
25
+ id: "2674552674",
26
+ dynamic: [_uiConstants.spacers.dp16]
27
+ }, [`div.__jsx-style-dynamic-selector{-webkit-order:3;-ms-flex-order:3;order:3;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end;margin:${_uiConstants.spacers.dp16} 0 0;}`]));
28
28
 
29
29
  exports.ModalActions = ModalActions;
30
30
  ModalActions.defaultProps = {
@@ -7,8 +7,6 @@ exports.ModalContent = void 0;
7
7
 
8
8
  var _style = _interopRequireDefault(require("styled-jsx/style"));
9
9
 
10
- var _uiConstants = require("@dhis2/ui-constants");
11
-
12
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
11
 
14
12
  var _react = _interopRequireDefault(require("react"));
@@ -21,11 +19,10 @@ const ModalContent = ({
21
19
  dataTest
22
20
  }) => /*#__PURE__*/_react.default.createElement("div", {
23
21
  "data-test": dataTest,
24
- className: _style.default.dynamic([["936713121", [_uiConstants.spacers.dp24, _uiConstants.spacers.dp24]]]) + " " + (className || "")
22
+ className: "jsx-3719215021" + " " + (className || "")
25
23
  }, children, /*#__PURE__*/_react.default.createElement(_style.default, {
26
- id: "936713121",
27
- dynamic: [_uiConstants.spacers.dp24, _uiConstants.spacers.dp24]
28
- }, [`div.__jsx-style-dynamic-selector{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin:${_uiConstants.spacers.dp24} 0;padding:0 ${_uiConstants.spacers.dp24};overflow-y:auto;}`]));
24
+ id: "3719215021"
25
+ }, ["div.jsx-3719215021{-webkit-order:2;-ms-flex-order:2;order:2;-webkit-box-flex:2;-webkit-flex-grow:2;-ms-flex-positive:2;flex-grow:2;overflow-y:auto;}"]));
29
26
 
30
27
  exports.ModalContent = ModalContent;
31
28
  ModalContent.defaultProps = {
@@ -22,11 +22,11 @@ const ModalTitle = ({
22
22
  dataTest
23
23
  }) => /*#__PURE__*/_react.default.createElement("h1", {
24
24
  "data-test": dataTest,
25
- className: _style.default.dynamic([["3436098789", [_uiConstants.colors.grey900, _uiConstants.spacers.dp24, _uiConstants.spacers.dp24, _uiConstants.spacers.dp24]]]) + " " + ((0, _classnames.default)('title') || "")
25
+ className: _style.default.dynamic([["4169842822", [_uiConstants.colors.grey900, _uiConstants.spacers.dp12]]]) + " " + ((0, _classnames.default)('title') || "")
26
26
  }, children, /*#__PURE__*/_react.default.createElement(_style.default, {
27
- id: "3436098789",
28
- dynamic: [_uiConstants.colors.grey900, _uiConstants.spacers.dp24, _uiConstants.spacers.dp24, _uiConstants.spacers.dp24]
29
- }, [`h1.__jsx-style-dynamic-selector{color:${_uiConstants.colors.grey900};font-size:20px;font-weight:500;line-height:24px;margin:0;padding:${_uiConstants.spacers.dp24} ${_uiConstants.spacers.dp24} 0 ${_uiConstants.spacers.dp24};}`]));
27
+ id: "4169842822",
28
+ dynamic: [_uiConstants.colors.grey900, _uiConstants.spacers.dp12]
29
+ }, [`h1.__jsx-style-dynamic-selector{-webkit-order:1;-ms-flex-order:1;order:1;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;color:${_uiConstants.colors.grey900};font-size:20px;font-weight:500;line-height:24px;margin:0 0 ${_uiConstants.spacers.dp12};}`]));
30
30
 
31
31
  exports.ModalTitle = ModalTitle;
32
32
  ModalTitle.defaultProps = {
@@ -6,55 +6,48 @@ import { spacers, spacersNum, sharedPropTypes } from '@dhis2/ui-constants';
6
6
  import cx from 'classnames';
7
7
  import PropTypes from 'prop-types';
8
8
  import React from 'react';
9
- const scrollBoxCard = {
10
- styles: /*#__PURE__*/React.createElement(_JSXStyle, {
11
- id: "2814715826"
12
- }, [`div.jsx-2814715826{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:calc(100vh - ${2 * spacersNum.dp64}px);max-width:calc(100vw - ${2 * spacersNum.dp64}px);}`]),
13
- className: "jsx-2814715826"
14
- };
15
- const centeredContent = {
16
- styles: /*#__PURE__*/React.createElement(_JSXStyle, {
17
- id: "1378205604"
18
- }, [`.top.jsx-1378205604{padding-top:${spacers.dp64};}`, `.bottom.jsx-1378205604{padding-bottom:${spacers.dp64};}`]),
19
- className: "jsx-1378205604"
20
- };
21
- const layerStyles = {
9
+
10
+ const resolveLayerStyles = hide => ({
22
11
  styles: /*#__PURE__*/React.createElement(_JSXStyle, {
23
- id: "427720588"
24
- }, ["div.jsx-427720588{display:none;}"]),
25
- className: "jsx-427720588"
26
- };
12
+ id: "1884450060",
13
+ dynamic: [spacers.dp64, hide ? 'none' : 'block']
14
+ }, [`div.__jsx-style-dynamic-selector{padding:${spacers.dp64};display:${hide ? 'none' : 'block'};}`]),
15
+ className: _JSXStyle.dynamic([["1884450060", [spacers.dp64, hide ? 'none' : 'block']]])
16
+ });
17
+
27
18
  export const Modal = ({
28
19
  children,
29
20
  className,
30
21
  dataTest,
31
22
  hide,
23
+ fluid,
32
24
  large,
33
25
  onClose,
34
26
  position,
35
27
  small
36
28
  }) => {
29
+ const layerStyles = resolveLayerStyles(hide);
37
30
  return /*#__PURE__*/React.createElement(Layer, {
38
31
  onClick: onClose,
39
- className: hide ? layerStyles.className : '',
32
+ className: layerStyles.className,
40
33
  translucent: !hide
41
34
  }, /*#__PURE__*/React.createElement(Center, {
42
- position: position,
43
- className: centeredContent.className
35
+ position: position
44
36
  }, /*#__PURE__*/React.createElement("aside", {
45
37
  role: "dialog",
46
38
  "aria-modal": "true",
47
39
  "data-test": dataTest,
48
- className: _JSXStyle.dynamic([["2700832039", [2 * spacersNum.dp64, 2 * spacersNum.dp64]]]) + " " + (cx(className, {
40
+ className: _JSXStyle.dynamic([["1701687214", [2 * spacersNum.dp64, 2 * spacersNum.dp64, 2 * spacersNum.dp64, 2 * spacersNum.dp64]]]) + " " + (cx(className, {
49
41
  small,
50
- large
42
+ large,
43
+ fluid
51
44
  }) || "")
52
- }, /*#__PURE__*/React.createElement(Card, {
53
- className: scrollBoxCard.className
54
- }, children)), scrollBoxCard.styles, layerStyles.styles, centeredContent.styles), /*#__PURE__*/React.createElement(_JSXStyle, {
55
- id: "2700832039",
56
- dynamic: [2 * spacersNum.dp64, 2 * spacersNum.dp64]
57
- }, [`aside.__jsx-style-dynamic-selector{overflow-y:hidden;height:auto;max-height:calc(100vh - ${2 * spacersNum.dp64}px);max-width:calc(100vw - ${2 * spacersNum.dp64}px);width:600px;}`, "aside.small.__jsx-style-dynamic-selector{width:400px;}", "aside.large.__jsx-style-dynamic-selector{width:800px;}"]));
45
+ }, /*#__PURE__*/React.createElement(Card, null, /*#__PURE__*/React.createElement("div", {
46
+ className: _JSXStyle.dynamic([["1701687214", [2 * spacersNum.dp64, 2 * spacersNum.dp64, 2 * spacersNum.dp64, 2 * spacersNum.dp64]]])
47
+ }, children))), layerStyles.styles), /*#__PURE__*/React.createElement(_JSXStyle, {
48
+ id: "1701687214",
49
+ dynamic: [2 * spacersNum.dp64, 2 * spacersNum.dp64, 2 * spacersNum.dp64, 2 * spacersNum.dp64]
50
+ }, [`div.__jsx-style-dynamic-selector{padding:24px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:column;-ms-flex-flow:column;flex-flow:column;max-width:calc(100vw - ${2 * spacersNum.dp64}px);max-height:calc(100vh - ${2 * spacersNum.dp64}px);}`, `aside.__jsx-style-dynamic-selector{height:auto;width:600px;max-width:calc(100vw - ${2 * spacersNum.dp64}px);max-height:calc(100vh - ${2 * spacersNum.dp64}px);}`, "aside.small.__jsx-style-dynamic-selector{width:400px;}", "aside.large.__jsx-style-dynamic-selector{width:800px;}", "aside.fluid.__jsx-style-dynamic-selector{width:auto;}"]));
58
51
  };
59
52
  Modal.defaultProps = {
60
53
  dataTest: 'dhis2-uicore-modal',
@@ -64,6 +57,7 @@ Modal.propTypes = {
64
57
  children: PropTypes.node,
65
58
  className: PropTypes.string,
66
59
  dataTest: PropTypes.string,
60
+ fluid: PropTypes.bool,
67
61
  hide: PropTypes.bool,
68
62
  large: sharedPropTypes.sizePropType,
69
63
  position: sharedPropTypes.insideAlignmentPropType,
@@ -1,4 +1,5 @@
1
1
  import _JSXStyle from "styled-jsx/style";
2
+ import { Box } from '@dhis2-ui/box';
2
3
  import { Button, ButtonStrip } from '@dhis2-ui/button';
3
4
  import { FlyoutMenu, MenuDivider, MenuItem, MenuSectionHeader } from '@dhis2-ui/menu';
4
5
  import { SingleSelect, SingleSelectOption } from '@dhis2-ui/select';
@@ -89,9 +90,9 @@ AlignmentMiddle.storyName = 'Alignment: Middle';
89
90
  export const AlignmentBottom = args => /*#__PURE__*/React.createElement(Modal, args, /*#__PURE__*/React.createElement(ModalContent, null, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."));
90
91
  AlignmentBottom.args = {
91
92
  onClose,
92
- alignment: 'bottom'
93
+ position: 'bottom'
93
94
  };
94
- AlignmentBottom.storyName = 'Alignment: Bottom';
95
+ AlignmentBottom.storyName = 'Position: Bottom';
95
96
  export const SmallTitleContentAction = args => /*#__PURE__*/React.createElement(Modal, args, /*#__PURE__*/React.createElement(ModalTitle, null, "This is a small modal with title, content and primary action"), /*#__PURE__*/React.createElement(ModalContent, null, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."), /*#__PURE__*/React.createElement(ModalActions, null, /*#__PURE__*/React.createElement(ButtonStrip, {
96
97
  end: true
97
98
  }, /*#__PURE__*/React.createElement(Button, {
@@ -138,6 +139,35 @@ LargeTitleContentPrimary.args = {
138
139
  large: true
139
140
  };
140
141
  LargeTitleContentPrimary.storyName = 'Large: Title, Content, Primary';
142
+ export const FluidTitleContentPrimary = args => /*#__PURE__*/React.createElement(Modal, args, /*#__PURE__*/React.createElement(ModalTitle, null, "This is a modal using custom dimensions, with title, content and primary action"), /*#__PURE__*/React.createElement(ModalContent, null, /*#__PURE__*/React.createElement("div", {
143
+ style: {
144
+ display: 'flex',
145
+ flexFlow: 'row wrap'
146
+ }
147
+ }, /*#__PURE__*/React.createElement("div", {
148
+ style: {
149
+ width: '600px',
150
+ backgroundColor: '#fea'
151
+ }
152
+ }, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."), /*#__PURE__*/React.createElement("div", {
153
+ style: {
154
+ width: '300px',
155
+ backgroundColor: '#eaf'
156
+ }
157
+ }, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."))), /*#__PURE__*/React.createElement(ModalActions, null, /*#__PURE__*/React.createElement(ButtonStrip, {
158
+ end: true
159
+ }, /*#__PURE__*/React.createElement(Button, {
160
+ onClick: say('Button secondary'),
161
+ secondary: true
162
+ }, "Secondary action"), /*#__PURE__*/React.createElement(Button, {
163
+ onClick: say('Button primary'),
164
+ primary: true
165
+ }, "Primary action"))));
166
+ FluidTitleContentPrimary.args = {
167
+ fluid: true,
168
+ position: 'top'
169
+ };
170
+ FluidTitleContentPrimary.storyName = 'Fluid (Custom sizes): Title, Content, Primary';
141
171
  export const SmallContentPrimary = args => /*#__PURE__*/React.createElement(Modal, args, /*#__PURE__*/React.createElement(ModalContent, null, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."), /*#__PURE__*/React.createElement(ModalActions, null, /*#__PURE__*/React.createElement(ButtonStrip, {
142
172
  end: true
143
173
  }, /*#__PURE__*/React.createElement(Button, {
@@ -519,4 +549,55 @@ export const ModalThatHidesWithStatefulComponens = () => {
519
549
  onClick: () => setHide(true),
520
550
  primary: true
521
551
  }, "Hide modal")))));
522
- };
552
+ };
553
+ export const FluidTop = args => /*#__PURE__*/React.createElement(Modal, args, /*#__PURE__*/React.createElement(ModalTitle, null, "This is a modal using custom dimensions, with title, content and primary action"), /*#__PURE__*/React.createElement(ModalContent, null, /*#__PURE__*/React.createElement(Box, {
554
+ width: "666px",
555
+ height: "666px"
556
+ }, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.")), /*#__PURE__*/React.createElement(ModalActions, null, /*#__PURE__*/React.createElement(ButtonStrip, {
557
+ end: true
558
+ }, /*#__PURE__*/React.createElement(Button, {
559
+ onClick: say('Button secondary'),
560
+ secondary: true
561
+ }, "Secondary action"), /*#__PURE__*/React.createElement(Button, {
562
+ onClick: say('Button primary'),
563
+ primary: true
564
+ }, "Primary action"))));
565
+ FluidTop.args = {
566
+ fluid: true,
567
+ position: 'top'
568
+ };
569
+ FluidTop.storyName = 'Fluid (Top)';
570
+ export const FluidMiddle = args => /*#__PURE__*/React.createElement(Modal, args, /*#__PURE__*/React.createElement(ModalTitle, null, "This is a modal using custom dimensions, with title, content and primary action"), /*#__PURE__*/React.createElement(ModalContent, null, /*#__PURE__*/React.createElement(Box, {
571
+ width: "666px",
572
+ height: "666px"
573
+ }, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.")), /*#__PURE__*/React.createElement(ModalActions, null, /*#__PURE__*/React.createElement(ButtonStrip, {
574
+ end: true
575
+ }, /*#__PURE__*/React.createElement(Button, {
576
+ onClick: say('Button secondary'),
577
+ secondary: true
578
+ }, "Secondary action"), /*#__PURE__*/React.createElement(Button, {
579
+ onClick: say('Button primary'),
580
+ primary: true
581
+ }, "Primary action"))));
582
+ FluidMiddle.args = {
583
+ fluid: true,
584
+ position: 'middle'
585
+ };
586
+ FluidMiddle.storyName = 'Fluid (Middle)';
587
+ export const FluidBottom = args => /*#__PURE__*/React.createElement(Modal, args, /*#__PURE__*/React.createElement(ModalTitle, null, "This is a modal using custom dimensions, with title, content and primary action"), /*#__PURE__*/React.createElement(ModalContent, null, /*#__PURE__*/React.createElement(Box, {
588
+ width: "666px",
589
+ height: "666px"
590
+ }, "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.")), /*#__PURE__*/React.createElement(ModalActions, null, /*#__PURE__*/React.createElement(ButtonStrip, {
591
+ end: true
592
+ }, /*#__PURE__*/React.createElement(Button, {
593
+ onClick: say('Button secondary'),
594
+ secondary: true
595
+ }, "Secondary action"), /*#__PURE__*/React.createElement(Button, {
596
+ onClick: say('Button primary'),
597
+ primary: true
598
+ }, "Primary action"))));
599
+ FluidBottom.args = {
600
+ fluid: true,
601
+ position: 'bottom'
602
+ };
603
+ FluidBottom.storyName = 'Fluid (Bottom)';
@@ -0,0 +1,50 @@
1
+ import { render, screen } from '@testing-library/react';
2
+ import React from 'react';
3
+ import { Modal } from './modal.js';
4
+ describe('Modal', () => {
5
+ describe('Regular dimensions', () => {
6
+ it('has the correct dimension styles in its default state', () => {
7
+ render( /*#__PURE__*/React.createElement(Modal, null));
8
+ const modalEl = screen.getByRole('dialog');
9
+ const style = window.getComputedStyle(modalEl);
10
+ expect(style.height).toBe('auto');
11
+ expect(style.maxHeight).toBe('calc(100vh - 128px)');
12
+ expect(style.maxWidth).toBe('calc(100vw - 128px)');
13
+ expect(style.width).toBe('600px');
14
+ });
15
+ it('has the correct dimension styles when the "small" prop is provided', () => {
16
+ render( /*#__PURE__*/React.createElement(Modal, {
17
+ small: true
18
+ }));
19
+ const modalEl = screen.getByRole('dialog');
20
+ console.log('modalEl.outerWidth', modalEl.offsetWidth);
21
+ const style = window.getComputedStyle(modalEl);
22
+ expect(style.height).toBe('auto');
23
+ expect(style.maxHeight).toBe('calc(100vh - 128px)');
24
+ expect(style.maxWidth).toBe('calc(100vw - 128px)');
25
+ expect(style.width).toBe('400px');
26
+ });
27
+ it('has the correct dimension styles when the "large" prop is provided', () => {
28
+ render( /*#__PURE__*/React.createElement(Modal, {
29
+ large: true
30
+ }));
31
+ const modalEl = screen.getByRole('dialog');
32
+ const style = window.getComputedStyle(modalEl);
33
+ expect(style.height).toBe('auto');
34
+ expect(style.maxHeight).toBe('calc(100vh - 128px)');
35
+ expect(style.maxWidth).toBe('calc(100vw - 128px)');
36
+ expect(style.width).toBe('800px');
37
+ });
38
+ it('has the correct dimension styles when the "fluid" prop is provided', () => {
39
+ render( /*#__PURE__*/React.createElement(Modal, {
40
+ fluid: true
41
+ }));
42
+ const modalEl = screen.getByRole('dialog');
43
+ const style = window.getComputedStyle(modalEl);
44
+ expect(style.height).toBe('auto');
45
+ expect(style.maxHeight).toBe('calc(100vh - 128px)');
46
+ expect(style.maxWidth).toBe('calc(100vw - 128px)');
47
+ expect(style.width).toBe('auto');
48
+ });
49
+ });
50
+ });
@@ -7,11 +7,11 @@ export const ModalActions = ({
7
7
  dataTest
8
8
  }) => /*#__PURE__*/React.createElement("div", {
9
9
  "data-test": dataTest,
10
- className: _JSXStyle.dynamic([["1459377348", [spacers.dp24, spacers.dp24, spacers.dp24]]])
10
+ className: _JSXStyle.dynamic([["2674552674", [spacers.dp16]]])
11
11
  }, children, /*#__PURE__*/React.createElement(_JSXStyle, {
12
- id: "1459377348",
13
- dynamic: [spacers.dp24, spacers.dp24, spacers.dp24]
14
- }, [`div.__jsx-style-dynamic-selector{padding:0 ${spacers.dp24} ${spacers.dp24} ${spacers.dp24};display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;}`]));
12
+ id: "2674552674",
13
+ dynamic: [spacers.dp16]
14
+ }, [`div.__jsx-style-dynamic-selector{-webkit-order:3;-ms-flex-order:3;order:3;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end;margin:${spacers.dp16} 0 0;}`]));
15
15
  ModalActions.defaultProps = {
16
16
  dataTest: 'dhis2-uicore-modalactions'
17
17
  };
@@ -1,5 +1,4 @@
1
1
  import _JSXStyle from "styled-jsx/style";
2
- import { spacers } from '@dhis2/ui-constants';
3
2
  import PropTypes from 'prop-types';
4
3
  import React from 'react';
5
4
  export const ModalContent = ({
@@ -8,11 +7,10 @@ export const ModalContent = ({
8
7
  dataTest
9
8
  }) => /*#__PURE__*/React.createElement("div", {
10
9
  "data-test": dataTest,
11
- className: _JSXStyle.dynamic([["936713121", [spacers.dp24, spacers.dp24]]]) + " " + (className || "")
10
+ className: "jsx-3719215021" + " " + (className || "")
12
11
  }, children, /*#__PURE__*/React.createElement(_JSXStyle, {
13
- id: "936713121",
14
- dynamic: [spacers.dp24, spacers.dp24]
15
- }, [`div.__jsx-style-dynamic-selector{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin:${spacers.dp24} 0;padding:0 ${spacers.dp24};overflow-y:auto;}`]));
12
+ id: "3719215021"
13
+ }, ["div.jsx-3719215021{-webkit-order:2;-ms-flex-order:2;order:2;-webkit-box-flex:2;-webkit-flex-grow:2;-ms-flex-positive:2;flex-grow:2;overflow-y:auto;}"]));
16
14
  ModalContent.defaultProps = {
17
15
  dataTest: 'dhis2-uicore-modalcontent'
18
16
  };
@@ -8,11 +8,11 @@ export const ModalTitle = ({
8
8
  dataTest
9
9
  }) => /*#__PURE__*/React.createElement("h1", {
10
10
  "data-test": dataTest,
11
- className: _JSXStyle.dynamic([["3436098789", [colors.grey900, spacers.dp24, spacers.dp24, spacers.dp24]]]) + " " + (cx('title') || "")
11
+ className: _JSXStyle.dynamic([["4169842822", [colors.grey900, spacers.dp12]]]) + " " + (cx('title') || "")
12
12
  }, children, /*#__PURE__*/React.createElement(_JSXStyle, {
13
- id: "3436098789",
14
- dynamic: [colors.grey900, spacers.dp24, spacers.dp24, spacers.dp24]
15
- }, [`h1.__jsx-style-dynamic-selector{color:${colors.grey900};font-size:20px;font-weight:500;line-height:24px;margin:0;padding:${spacers.dp24} ${spacers.dp24} 0 ${spacers.dp24};}`]));
13
+ id: "4169842822",
14
+ dynamic: [colors.grey900, spacers.dp12]
15
+ }, [`h1.__jsx-style-dynamic-selector{-webkit-order:1;-ms-flex-order:1;order:1;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;color:${colors.grey900};font-size:20px;font-weight:500;line-height:24px;margin:0 0 ${spacers.dp12};}`]));
16
16
  ModalTitle.defaultProps = {
17
17
  dataTest: 'dhis2-uicore-modaltitle'
18
18
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhis2-ui/modal",
3
- "version": "7.7.10",
3
+ "version": "7.9.1",
4
4
  "description": "UI Modal",
5
5
  "repository": {
6
6
  "type": "git",
@@ -32,11 +32,11 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@dhis2/prop-types": "^3.0.0-beta.1",
35
- "@dhis2-ui/card": "7.7.10",
36
- "@dhis2-ui/center": "7.7.10",
37
- "@dhis2-ui/layer": "7.7.10",
38
- "@dhis2-ui/portal": "7.7.10",
39
- "@dhis2/ui-constants": "7.7.10",
35
+ "@dhis2-ui/card": "7.9.1",
36
+ "@dhis2-ui/center": "7.9.1",
37
+ "@dhis2-ui/layer": "7.9.1",
38
+ "@dhis2-ui/portal": "7.9.1",
39
+ "@dhis2/ui-constants": "7.9.1",
40
40
  "classnames": "^2.3.1",
41
41
  "prop-types": "^15.7.2"
42
42
  },