@mirai/ui 2.0.6 → 2.0.8

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.
Files changed (118) hide show
  1. package/build/components/Action/Action.js +1 -2
  2. package/build/components/Action/Action.js.map +1 -1
  3. package/build/components/Action/Action.module.css +4 -0
  4. package/build/components/Action/__tests__/__snapshots__/Action.test.js.snap +21 -32
  5. package/build/components/Button/Button.js +1 -2
  6. package/build/components/Button/Button.js.map +1 -1
  7. package/build/components/Button/Button.module.css +27 -27
  8. package/build/components/Button/__tests__/__snapshots__/Button.test.js.snap +49 -60
  9. package/build/components/Calendar/Calendar.Month.js +1 -0
  10. package/build/components/Calendar/Calendar.Month.js.map +1 -1
  11. package/build/components/Calendar/Calendar.Weekdays.js +1 -0
  12. package/build/components/Calendar/Calendar.Weekdays.js.map +1 -1
  13. package/build/components/Calendar/Calendar.js +3 -0
  14. package/build/components/Calendar/Calendar.js.map +1 -1
  15. package/build/components/Calendar/__tests__/__snapshots__/Calendar.test.jsx.snap +18348 -18226
  16. package/build/components/Form/Form.js +1 -2
  17. package/build/components/Form/Form.js.map +1 -1
  18. package/build/components/Form/__tests__/__snapshots__/Form.test.jsx.snap +9 -15
  19. package/build/components/InputDate/InputDate.js +1 -2
  20. package/build/components/InputDate/InputDate.js.map +1 -1
  21. package/build/components/InputDate/__tests__/__snapshots__/InputDate.test.js.snap +42 -67
  22. package/build/components/InputNumber/InputNumber.js +5 -4
  23. package/build/components/InputNumber/InputNumber.js.map +1 -1
  24. package/build/components/InputNumber/__tests__/__snapshots__/InputNumber.test.js.snap +195 -240
  25. package/build/components/InputOption/InputOption.js +3 -3
  26. package/build/components/InputOption/InputOption.js.map +1 -1
  27. package/build/components/InputOption/__tests__/__snapshots__/InputOption.test.js.snap +80 -100
  28. package/build/components/InputPhone/InputPhone.js +10 -5
  29. package/build/components/InputPhone/InputPhone.js.map +1 -1
  30. package/build/components/InputPhone/__tests__/__snapshots__/InputPhone.test.js.snap +339 -421
  31. package/build/components/InputSelect/InputSelect.js +4 -2
  32. package/build/components/InputSelect/InputSelect.js.map +1 -1
  33. package/build/components/InputSelect/__tests__/__snapshots__/InputSelect.test.js.snap +115 -115
  34. package/build/components/InputText/InputText.js +4 -3
  35. package/build/components/InputText/InputText.js.map +1 -1
  36. package/build/components/InputText/__tests__/__snapshots__/InputText.test.js.snap +133 -156
  37. package/build/components/Menu/Menu.js +1 -2
  38. package/build/components/Menu/Menu.js.map +1 -1
  39. package/build/components/Menu/__tests__/__snapshots__/Menu.test.jsx.snap +69 -77
  40. package/build/components/Modal/Modal.js +10 -7
  41. package/build/components/Modal/Modal.js.map +1 -1
  42. package/build/components/Modal/__tests__/__snapshots__/Modal.test.js.snap +78 -92
  43. package/build/components/Notification/Notification.js +1 -2
  44. package/build/components/Notification/Notification.js.map +1 -1
  45. package/build/components/Notification/__tests__/__snapshots__/Notification.test.js.snap +288 -327
  46. package/build/components/Progress/Progress.js +2 -3
  47. package/build/components/Progress/Progress.js.map +1 -1
  48. package/build/components/Progress/__tests__/__snapshots__/Progress.test.jsx.snap +18 -31
  49. package/build/components/Slider/Slider.js +8 -5
  50. package/build/components/Slider/Slider.js.map +1 -1
  51. package/build/components/Slider/Slider.module.css +3 -3
  52. package/build/components/Slider/__tests__/__snapshots__/Slider.test.js.snap +349 -464
  53. package/build/components/Table/Table.Filter.js +1 -0
  54. package/build/components/Table/Table.Filter.js.map +1 -1
  55. package/build/components/Table/Table.Row.js +0 -1
  56. package/build/components/Table/Table.Row.js.map +1 -1
  57. package/build/components/Table/Table.js +1 -2
  58. package/build/components/Table/Table.js.map +1 -1
  59. package/build/components/Table/__tests__/__snapshots__/Table.ColumnFilter.test.js.snap +222 -222
  60. package/build/components/Table/__tests__/__snapshots__/Table.test.js.snap +1092 -1516
  61. package/build/components/Tooltip/Tooltip.js +1 -2
  62. package/build/components/Tooltip/Tooltip.js.map +1 -1
  63. package/build/components/Tooltip/__tests__/__snapshots__/Tooltip.test.jsx.snap +48 -48
  64. package/build/components/components.customElements.js +6 -0
  65. package/build/components/components.customElements.js.map +1 -0
  66. package/build/components/index.js +1 -0
  67. package/build/components/index.js.map +1 -1
  68. package/build/helpers/CustomElement.js +39 -0
  69. package/build/helpers/CustomElement.js.map +1 -0
  70. package/build/helpers/index.js +11 -0
  71. package/build/helpers/index.js.map +1 -1
  72. package/build/primitives/Checkbox/Checkbox.js +4 -3
  73. package/build/primitives/Checkbox/Checkbox.js.map +1 -1
  74. package/build/primitives/Checkbox/__tests__/__snapshots__/Checkbox.test.js.snap +20 -35
  75. package/build/primitives/Icon/Icon.js +1 -2
  76. package/build/primitives/Icon/Icon.js.map +1 -1
  77. package/build/primitives/Icon/__tests__/__snapshots__/Icon.test.js.snap +82 -108
  78. package/build/primitives/Input/Input.js +0 -1
  79. package/build/primitives/Input/Input.js.map +1 -1
  80. package/build/primitives/Layer/Layer.js +8 -5
  81. package/build/primitives/Layer/Layer.js.map +1 -1
  82. package/build/primitives/Layer/__tests__/__snapshots__/Layer.test.js.snap +58 -58
  83. package/build/primitives/Pressable/Pressable.js +7 -5
  84. package/build/primitives/Pressable/Pressable.js.map +1 -1
  85. package/build/primitives/Pressable/Pressable.module.css +8 -0
  86. package/build/primitives/Pressable/__tests__/__snapshots__/Pressable.test.js.snap +11 -11
  87. package/build/primitives/Primitive/Primitive.constants.js +18 -2
  88. package/build/primitives/Primitive/Primitive.constants.js.map +1 -1
  89. package/build/primitives/Primitive/Primitive.js +13 -3
  90. package/build/primitives/Primitive/Primitive.js.map +1 -1
  91. package/build/primitives/Primitive/__tests__/__snapshots__/Primitive.test.js.snap +18 -12
  92. package/build/primitives/Primitive/helpers/getTag.js +3 -24
  93. package/build/primitives/Primitive/helpers/getTag.js.map +1 -1
  94. package/build/primitives/Radio/Radio.js +4 -3
  95. package/build/primitives/Radio/Radio.js.map +1 -1
  96. package/build/primitives/Radio/__tests__/__snapshots__/Radio.test.js.snap +21 -39
  97. package/build/primitives/ScrollView/ScrollView.js +8 -4
  98. package/build/primitives/ScrollView/ScrollView.js.map +1 -1
  99. package/build/primitives/ScrollView/ScrollView.module.css +1 -1
  100. package/build/primitives/ScrollView/__tests__/__snapshots__/ScrollView.test.js.snap +20 -20
  101. package/build/primitives/Select/Select.js +1 -2
  102. package/build/primitives/Select/Select.js.map +1 -1
  103. package/build/primitives/Select/__tests__/__snapshots__/Select.test.js.snap +0 -35
  104. package/build/primitives/Switch/Switch.js +1 -2
  105. package/build/primitives/Switch/Switch.js.map +1 -1
  106. package/build/primitives/Switch/__tests__/__snapshots__/Switch.test.js.snap +40 -60
  107. package/build/primitives/Text/Text.js +0 -1
  108. package/build/primitives/Text/Text.js.map +1 -1
  109. package/build/primitives/Text/Text.module.css +0 -4
  110. package/build/primitives/Text/__tests__/__snapshots__/Text.test.js.snap +62 -62
  111. package/build/primitives/View/View.js +5 -3
  112. package/build/primitives/View/View.js.map +1 -1
  113. package/build/primitives/View/__tests__/__snapshots__/View.test.js.snap +10 -10
  114. package/build/primitives/index.js +1 -0
  115. package/build/primitives/index.js.map +1 -1
  116. package/build/primitives/primitives.customElements.js +20 -0
  117. package/build/primitives/primitives.customElements.js.map +1 -0
  118. package/package.json +1 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`component:<Menu> inherit:className 1`] = `
4
4
  <DocumentFragment>
5
- <ui_menu
5
+ <ui-menu
6
6
  class="container"
7
7
  />
8
8
  </DocumentFragment>
@@ -10,75 +10,75 @@ exports[`component:<Menu> inherit:className 1`] = `
10
10
 
11
11
  exports[`component:<Menu> prop:Template 1`] = `
12
12
  <DocumentFragment>
13
- <ui_menu
13
+ <ui-menu
14
14
  class="container"
15
15
  >
16
- <button
16
+ <ui-button
17
17
  class="pressable button"
18
18
  tabindex="0"
19
19
  >
20
20
  Action
21
- </button>
22
- </ui_menu>
21
+ </ui-button>
22
+ </ui-menu>
23
23
  </DocumentFragment>
24
24
  `;
25
25
 
26
26
  exports[`component:<Menu> prop:children 1`] = `
27
27
  <DocumentFragment>
28
- <ui_menu
28
+ <ui-menu
29
29
  class="container"
30
30
  >
31
- <button
31
+ <ui-button
32
32
  class="pressable button"
33
33
  tabindex="0"
34
34
  >
35
35
  Action
36
- </button>
37
- </ui_menu>
36
+ </ui-button>
37
+ </ui-menu>
38
38
  </DocumentFragment>
39
39
  `;
40
40
 
41
41
  exports[`component:<Menu> prop:options & visible 1`] = `
42
42
  <DocumentFragment>
43
- <ui_menu
43
+ <ui-menu
44
44
  class="container"
45
45
  >
46
- <button
46
+ <ui-button
47
47
  class="pressable button"
48
48
  tabindex="0"
49
49
  >
50
50
  Action
51
- </button>
52
- </ui_menu>
53
- <ui_menu_content
51
+ </ui-button>
52
+ </ui-menu>
53
+ <ui-menu-content
54
54
  class="layer"
55
55
  style="left: 0px; top: 0px;"
56
56
  >
57
57
  <div
58
58
  class="menu visible"
59
59
  >
60
- <ui_pressable
60
+ <ui-pressable
61
61
  class="pressable option divider"
62
62
  tabindex="0"
63
63
  >
64
- <ui_view
64
+ <ui-view
65
65
  class="view row wide content"
66
66
  >
67
- <ui_text
67
+ <ui-text
68
68
  class="text paragraph label"
69
69
  >
70
70
  Lorem Ipsum...
71
- </ui_text>
72
- </ui_view>
73
- </ui_pressable>
74
- <ui_pressable
71
+ </ui-text>
72
+ </ui-view>
73
+ </ui-pressable>
74
+ <ui-pressable
75
75
  class="pressable option value"
76
76
  tabindex="0"
77
77
  >
78
- <ui_view
78
+ <ui-view
79
79
  class="view row wide content"
80
80
  >
81
- <ui_icon
81
+ <ui-icon
82
82
  class="icon headline-3 icon"
83
83
  >
84
84
  <svg
@@ -98,23 +98,23 @@ exports[`component:<Menu> prop:options & visible 1`] = `
98
98
  d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"
99
99
  />
100
100
  </svg>
101
- </ui_icon>
102
- <ui_text
101
+ </ui-icon>
102
+ <ui-text
103
103
  class="text paragraph label"
104
104
  >
105
105
  Item 1
106
- </ui_text>
107
- </ui_view>
108
- </ui_pressable>
109
- <ui_pressable
106
+ </ui-text>
107
+ </ui-view>
108
+ </ui-pressable>
109
+ <ui-pressable
110
110
  class="pressable option value disabled"
111
111
  data-testid="two"
112
112
  tabindex="0"
113
113
  >
114
- <ui_view
114
+ <ui-view
115
115
  class="view row wide content"
116
116
  >
117
- <ui_icon
117
+ <ui-icon
118
118
  class="icon headline-3 icon"
119
119
  >
120
120
  <svg
@@ -134,117 +134,109 @@ exports[`component:<Menu> prop:options & visible 1`] = `
134
134
  d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"
135
135
  />
136
136
  </svg>
137
- </ui_icon>
138
- <ui_text
137
+ </ui-icon>
138
+ <ui-text
139
139
  class="text paragraph label"
140
140
  >
141
141
  Item 2
142
- </ui_text>
143
- </ui_view>
144
- </ui_pressable>
145
- <ui_pressable
142
+ </ui-text>
143
+ </ui-view>
144
+ </ui-pressable>
145
+ <ui-pressable
146
146
  class="pressable option value divider"
147
147
  tabindex="0"
148
148
  >
149
- <ui_view
149
+ <ui-view
150
150
  class="view row wide content"
151
151
  >
152
- <ui_text
152
+ <ui-text
153
153
  class="text paragraph label"
154
154
  >
155
155
  Item 3
156
- </ui_text>
157
- </ui_view>
158
- </ui_pressable>
159
- <ui_pressable
156
+ </ui-text>
157
+ </ui-view>
158
+ </ui-pressable>
159
+ <ui-pressable
160
160
  class="pressable option value"
161
161
  tabindex="0"
162
162
  >
163
- <ui_view
163
+ <ui-view
164
164
  class="view row wide content"
165
165
  >
166
- <ui_text
166
+ <ui-text
167
167
  class="text paragraph label"
168
168
  >
169
169
  Item 4
170
- </ui_text>
171
- <button
170
+ </ui-text>
171
+ <ui-button
172
172
  class="pressable button small"
173
173
  tabindex="0"
174
174
  >
175
175
  Add
176
- </button>
177
- </ui_view>
178
- </ui_pressable>
179
- <ui_pressable
176
+ </ui-button>
177
+ </ui-view>
178
+ </ui-pressable>
179
+ <ui-pressable
180
180
  class="pressable option"
181
181
  tabindex="0"
182
182
  >
183
- <ui_view
183
+ <ui-view
184
184
  class="view row wide content"
185
185
  >
186
- <button
186
+ <ui-button
187
187
  class="pressable button"
188
188
  tabindex="0"
189
189
  >
190
190
  Add
191
- </button>
192
- </ui_view>
193
- </ui_pressable>
191
+ </ui-button>
192
+ </ui-view>
193
+ </ui-pressable>
194
194
  </div>
195
- </ui_menu_content>
195
+ </ui-menu-content>
196
196
  </DocumentFragment>
197
197
  `;
198
198
 
199
199
  exports[`component:<Menu> prop:options 1`] = `
200
200
  <DocumentFragment>
201
- <ui_menu
201
+ <ui-menu
202
202
  class="container"
203
203
  >
204
- <button
204
+ <ui-button
205
205
  class="pressable button"
206
206
  tabindex="0"
207
207
  >
208
208
  Action
209
- </button>
210
- </ui_menu>
209
+ </ui-button>
210
+ </ui-menu>
211
211
  </DocumentFragment>
212
212
  `;
213
213
 
214
214
  exports[`component:<Menu> prop:title 1`] = `
215
215
  <DocumentFragment>
216
- <ui_menu
216
+ <ui-menu
217
217
  class="container"
218
218
  >
219
- <button
219
+ <ui-button
220
220
  class="pressable button"
221
221
  tabindex="0"
222
222
  >
223
223
  Action
224
- </button>
225
- </ui_menu>
226
- <ui_menu_content
224
+ </ui-button>
225
+ </ui-menu>
226
+ <ui-menu-content
227
227
  class="layer"
228
228
  style="left: 0px; top: 0px;"
229
229
  >
230
230
  <div
231
231
  class="menu visible"
232
232
  />
233
- </ui_menu_content>
233
+ </ui-menu-content>
234
234
  </DocumentFragment>
235
235
  `;
236
236
 
237
237
  exports[`component:<Menu> renders 1`] = `
238
238
  <DocumentFragment>
239
- <ui_menu
240
- class="container"
241
- />
242
- </DocumentFragment>
243
- `;
244
-
245
- exports[`component:<Menu> tag 1`] = `
246
- <DocumentFragment>
247
- <ui_tag
239
+ <ui-menu
248
240
  class="container"
249
241
  />
250
242
  </DocumentFragment>
@@ -252,7 +244,7 @@ exports[`component:<Menu> tag 1`] = `
252
244
 
253
245
  exports[`component:<Menu> testId 1`] = `
254
246
  <DocumentFragment>
255
- <ui_menu
247
+ <ui-menu
256
248
  class="container"
257
249
  data-testid="mirai"
258
250
  />
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.Modal = void 0;
8
- var _dataSources = require("@mirai/data-sources");
9
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
9
  var _react = _interopRequireWildcard(require("react"));
11
10
  var _reactDom = _interopRequireDefault(require("react-dom"));
@@ -34,6 +33,11 @@ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefine
34
33
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
34
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
36
35
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
36
+ // import { Event } from '@mirai/data-sources';
37
+ var Event = {
38
+ publish: function publish() {},
39
+ subscribe: function subscribe() {}
40
+ };
37
41
  var Modal = function Modal(_ref) {
38
42
  var _ref$blur = _ref.blur,
39
43
  blur = _ref$blur === void 0 ? false : _ref$blur,
@@ -72,7 +76,7 @@ var Modal = function Modal(_ref) {
72
76
  setDataset = _useState2[1];
73
77
  (0, _react.useEffect)(function () {
74
78
  if (!visible || !onClose) return;
75
- _dataSources.Event.publish(_Modal.EVENT_VISIBLE, {
79
+ Event.publish(_Modal.EVENT_VISIBLE, {
76
80
  visible: visible,
77
81
  displayName: displayName
78
82
  });
@@ -101,7 +105,7 @@ var Modal = function Modal(_ref) {
101
105
  var _ref$current;
102
106
  var target = event.target;
103
107
  if (onOverflow && !((_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contains(target))) {
104
- _dataSources.Event.publish(_Modal.EVENT_VISIBLE, {
108
+ Event.publish(_Modal.EVENT_VISIBLE, {
105
109
  visible: false,
106
110
  displayName: displayName
107
111
  });
@@ -109,7 +113,7 @@ var Modal = function Modal(_ref) {
109
113
  }
110
114
  };
111
115
  var handleClose = function handleClose(event) {
112
- _dataSources.Event.publish(_Modal.EVENT_VISIBLE, {
116
+ Event.publish(_Modal.EVENT_VISIBLE, {
113
117
  visible: false,
114
118
  displayName: displayName
115
119
  });
@@ -122,8 +126,7 @@ var Modal = function Modal(_ref) {
122
126
  var testId = others.testId;
123
127
  return renderer( /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
124
128
  preventDefault: preventDefault,
125
- role: "".concat(others.role || 'modal', "-overflow"),
126
- tag: "".concat(others.tag || 'modal', "_overflow"),
129
+ tag: "modal-overflow",
127
130
  onPress: visible && overflow ? handleOverflow : undefined,
128
131
  className: (0, _helpers.styles)(_ModalModule.default.container, isDesktop && mobileBehavior && _ModalModule.default.mobileBehavior, overflow && _ModalModule.default.overflow, overflow && blur && _ModalModule.default.blur, visible && _ModalModule.default.visible, onOverflow && _ModalModule.default.onOverflow),
129
132
  style: {
@@ -133,7 +136,7 @@ var Modal = function Modal(_ref) {
133
136
  }, /*#__PURE__*/_react.default.createElement(_primitives.View, _extends({}, others, {
134
137
  fit: true,
135
138
  ref: ref,
136
- role: others.role || 'modal',
139
+ tag: "modal",
137
140
  className: (0, _helpers.styles)(_ModalModule.default.modal, !fit && _ModalModule.default.calcWidth, visible && _ModalModule.default.visible, others.className),
138
141
  "aria-hidden": visible ? 'false' : 'true'
139
142
  }), (title || onBack || onClose) && /*#__PURE__*/_react.default.createElement(_primitives.View, {
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","names":["Modal","blur","children","displayName","fit","mobileBehavior","overflow","portal","preventDefault","title","visible","onBack","onClose","onOverflow","aria","buttonBack","ariaBack","buttonClose","ariaClose","others","useDevice","isDesktop","isMobile","height","ref","useRef","useState","dataset","setDataset","useEffect","Event","publish","EVENT_VISIBLE","handleKeydown","event","key","handleClose","document","addEventListener","removeEventListener","body","miraiModal","undefined","handleOverflow","target","current","contains","defaultDirection","Theme","getDirection","DIRECTION_TYPE","LEFT","renderer","IS_JEST","jsx","ReactDOM","createPortal","testId","role","tag","styles","style","container","modal","calcWidth","className","header","reverse","hideBack","hideClose","ICON","icon","button","CLOSE","EXPAND_MORE","React","Children","map","child","index","cloneElement","props","propTypes","PropTypes","bool","node","string","func","shape"],"sources":["../../../src/components/Modal/Modal.jsx"],"sourcesContent":["import { Event } from '@mirai/data-sources';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Button } from '../../components';\nimport { IS_JEST, styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, Pressable, Text, View } from '../../primitives';\nimport { DIRECTION_TYPE, Theme } from '../../theme';\nimport { EVENT_VISIBLE } from './Modal.constants';\nimport style from './Modal.module.css';\n\nconst Modal = ({\n blur = false,\n children,\n displayName,\n fit = false,\n mobileBehavior = false,\n overflow = true,\n portal = false,\n preventDefault = true,\n title,\n visible,\n onBack,\n onClose,\n onOverflow,\n aria: { buttonBack: ariaBack = 'Back', buttonClose: ariaClose = 'Close' } = {},\n ...others\n}) => {\n const { isDesktop, isMobile, height } = useDevice();\n const ref = useRef();\n\n const [dataset, setDataset] = useState();\n\n useEffect(() => {\n if (!visible || !onClose) return;\n Event.publish(EVENT_VISIBLE, { visible, displayName });\n\n const handleKeydown = (event) => event.key === 'Escape' && handleClose();\n\n document.addEventListener('keydown', handleKeydown);\n return () => document.removeEventListener('keydown', handleKeydown);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n useEffect(() => {\n if (visible && !dataset) {\n setDataset(true);\n document.body.dataset.miraiModal = true;\n }\n\n return () => {\n if (visible && dataset) {\n setDataset(undefined);\n delete document.body.dataset.miraiModal;\n }\n };\n }, [dataset, visible]);\n\n const handleOverflow = (event) => {\n const { target } = event;\n\n if (onOverflow && !ref.current?.contains(target)) {\n Event.publish(EVENT_VISIBLE, { visible: false, displayName });\n onOverflow(event);\n }\n };\n\n const handleClose = (event) => {\n Event.publish(EVENT_VISIBLE, { visible: false, displayName });\n onClose(event);\n };\n\n const defaultDirection = Theme.getDirection() === DIRECTION_TYPE.LEFT;\n const renderer = IS_JEST || !portal ? (jsx) => jsx : ReactDOM.createPortal;\n const { testId } = others;\n\n return renderer(\n <Pressable\n preventDefault={preventDefault}\n role={`${others.role || 'modal'}-overflow`}\n tag={`${others.tag || 'modal'}_overflow`}\n onPress={visible && overflow ? handleOverflow : undefined}\n className={styles(\n style.container,\n isDesktop && mobileBehavior && style.mobileBehavior,\n overflow && style.overflow,\n overflow && blur && style.blur,\n visible && style.visible,\n onOverflow && style.onOverflow,\n )}\n style={{ height }}\n testId={testId ? `${testId}-overflow` : undefined}\n >\n <View\n {...others}\n fit\n ref={ref}\n role={others.role || 'modal'}\n className={styles(style.modal, !fit && style.calcWidth, visible && style.visible, others.className)}\n aria-hidden={visible ? 'false' : 'true'}\n >\n {(title || onBack || onClose) && (\n <View\n row\n className={styles(\n style.header,\n !defaultDirection && style.reverse,\n !onBack && style.hideBack,\n !onClose && style.hideClose,\n )}\n >\n {onBack && (\n <Button\n small\n squared\n transparent\n onPress={onBack}\n aria-label={ariaBack}\n testId={testId ? `${testId}-button-back` : undefined}\n >\n <Icon value={ICON.LEFT} className={style.icon} />\n </Button>\n )}\n {title && (\n <Text headline={!isMobile} className={style.title}>\n {title}\n </Text>\n )}\n {onClose && (\n <Button\n small\n squared\n transparent\n onPress={handleClose}\n className={style.button}\n aria-label={ariaClose}\n testId={testId ? `${testId}-button-close` : undefined}\n >\n <Icon value={isDesktop || title !== undefined ? ICON.CLOSE : ICON.EXPAND_MORE} className={style.icon} />\n </Button>\n )}\n </View>\n )}\n\n {React.Children.map(children, (child, index) =>\n !child || child === null\n ? null\n : React.cloneElement(child, { key: child.key || index, ...child.props, role: 'modal-content' }),\n )}\n </View>\n </Pressable>,\n document.body,\n );\n};\n\nModal.displayName = 'Component:Modal';\n\nModal.propTypes = {\n blur: PropTypes.bool,\n children: PropTypes.node,\n displayName: PropTypes.string,\n fit: PropTypes.bool,\n mobileBehavior: PropTypes.bool,\n overflow: PropTypes.bool,\n portal: PropTypes.bool,\n preventDefault: PropTypes.bool,\n title: PropTypes.string,\n visible: PropTypes.bool,\n onBack: PropTypes.func,\n onClose: PropTypes.func,\n onOverflow: PropTypes.func,\n aria: PropTypes.shape({\n buttonBack: PropTypes.string,\n buttonClose: PropTypes.string,\n }),\n};\n\nexport { Modal };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","names":["Event","publish","subscribe","Modal","blur","children","displayName","fit","mobileBehavior","overflow","portal","preventDefault","title","visible","onBack","onClose","onOverflow","aria","buttonBack","ariaBack","buttonClose","ariaClose","others","useDevice","isDesktop","isMobile","height","ref","useRef","useState","dataset","setDataset","useEffect","EVENT_VISIBLE","handleKeydown","event","key","handleClose","document","addEventListener","removeEventListener","body","miraiModal","undefined","handleOverflow","target","current","contains","defaultDirection","Theme","getDirection","DIRECTION_TYPE","LEFT","renderer","IS_JEST","jsx","ReactDOM","createPortal","testId","styles","style","container","modal","calcWidth","className","header","reverse","hideBack","hideClose","ICON","icon","button","CLOSE","EXPAND_MORE","React","Children","map","child","index","cloneElement","props","role","propTypes","PropTypes","bool","node","string","func","shape"],"sources":["../../../src/components/Modal/Modal.jsx"],"sourcesContent":["// import { Event } from '@mirai/data-sources';\nconst Event = {\n publish: () => {},\n subscribe: () => {},\n};\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Button } from '../../components';\nimport { IS_JEST, styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, Pressable, Text, View } from '../../primitives';\nimport { DIRECTION_TYPE, Theme } from '../../theme';\nimport { EVENT_VISIBLE } from './Modal.constants';\nimport style from './Modal.module.css';\n\nconst Modal = ({\n blur = false,\n children,\n displayName,\n fit = false,\n mobileBehavior = false,\n overflow = true,\n portal = false,\n preventDefault = true,\n title,\n visible,\n onBack,\n onClose,\n onOverflow,\n aria: { buttonBack: ariaBack = 'Back', buttonClose: ariaClose = 'Close' } = {},\n ...others\n}) => {\n const { isDesktop, isMobile, height } = useDevice();\n const ref = useRef();\n\n const [dataset, setDataset] = useState();\n\n useEffect(() => {\n if (!visible || !onClose) return;\n Event.publish(EVENT_VISIBLE, { visible, displayName });\n\n const handleKeydown = (event) => event.key === 'Escape' && handleClose();\n\n document.addEventListener('keydown', handleKeydown);\n return () => document.removeEventListener('keydown', handleKeydown);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n useEffect(() => {\n if (visible && !dataset) {\n setDataset(true);\n document.body.dataset.miraiModal = true;\n }\n\n return () => {\n if (visible && dataset) {\n setDataset(undefined);\n delete document.body.dataset.miraiModal;\n }\n };\n }, [dataset, visible]);\n\n const handleOverflow = (event) => {\n const { target } = event;\n\n if (onOverflow && !ref.current?.contains(target)) {\n Event.publish(EVENT_VISIBLE, { visible: false, displayName });\n onOverflow(event);\n }\n };\n\n const handleClose = (event) => {\n Event.publish(EVENT_VISIBLE, { visible: false, displayName });\n onClose(event);\n };\n\n const defaultDirection = Theme.getDirection() === DIRECTION_TYPE.LEFT;\n const renderer = IS_JEST || !portal ? (jsx) => jsx : ReactDOM.createPortal;\n const { testId } = others;\n\n return renderer(\n <Pressable\n preventDefault={preventDefault}\n tag=\"modal-overflow\"\n onPress={visible && overflow ? handleOverflow : undefined}\n className={styles(\n style.container,\n isDesktop && mobileBehavior && style.mobileBehavior,\n overflow && style.overflow,\n overflow && blur && style.blur,\n visible && style.visible,\n onOverflow && style.onOverflow,\n )}\n style={{ height }}\n testId={testId ? `${testId}-overflow` : undefined}\n >\n <View\n {...others}\n fit\n ref={ref}\n tag=\"modal\"\n className={styles(style.modal, !fit && style.calcWidth, visible && style.visible, others.className)}\n aria-hidden={visible ? 'false' : 'true'}\n >\n {(title || onBack || onClose) && (\n <View\n row\n className={styles(\n style.header,\n !defaultDirection && style.reverse,\n !onBack && style.hideBack,\n !onClose && style.hideClose,\n )}\n >\n {onBack && (\n <Button\n small\n squared\n transparent\n onPress={onBack}\n aria-label={ariaBack}\n testId={testId ? `${testId}-button-back` : undefined}\n >\n <Icon value={ICON.LEFT} className={style.icon} />\n </Button>\n )}\n {title && (\n <Text headline={!isMobile} className={style.title}>\n {title}\n </Text>\n )}\n {onClose && (\n <Button\n small\n squared\n transparent\n onPress={handleClose}\n className={style.button}\n aria-label={ariaClose}\n testId={testId ? `${testId}-button-close` : undefined}\n >\n <Icon value={isDesktop || title !== undefined ? ICON.CLOSE : ICON.EXPAND_MORE} className={style.icon} />\n </Button>\n )}\n </View>\n )}\n\n {React.Children.map(children, (child, index) =>\n !child || child === null\n ? null\n : React.cloneElement(child, { key: child.key || index, ...child.props, role: 'modal-content' }),\n )}\n </View>\n </Pressable>,\n document.body,\n );\n};\n\nModal.displayName = 'Component:Modal';\n\nModal.propTypes = {\n blur: PropTypes.bool,\n children: PropTypes.node,\n displayName: PropTypes.string,\n fit: PropTypes.bool,\n mobileBehavior: PropTypes.bool,\n overflow: PropTypes.bool,\n portal: PropTypes.bool,\n preventDefault: PropTypes.bool,\n title: PropTypes.string,\n visible: PropTypes.bool,\n onBack: PropTypes.func,\n onClose: PropTypes.func,\n onOverflow: PropTypes.func,\n aria: PropTypes.shape({\n buttonBack: PropTypes.string,\n buttonClose: PropTypes.string,\n }),\n};\n\nexport { Modal };\n"],"mappings":"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"}