@mirai/ui 1.0.0

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 (150) hide show
  1. package/README.md +349 -0
  2. package/build/components/Button/Button.js +44 -0
  3. package/build/components/Button/Button.js.map +1 -0
  4. package/build/components/Button/Button.module.css +79 -0
  5. package/build/components/Button/__tests__/__snapshots__/Button.test.js.snap +113 -0
  6. package/build/components/Button/index.js +19 -0
  7. package/build/components/Button/index.js.map +1 -0
  8. package/build/components/Calendar/Calendar.Month.js +101 -0
  9. package/build/components/Calendar/Calendar.Month.js.map +1 -0
  10. package/build/components/Calendar/Calendar.Week.js +144 -0
  11. package/build/components/Calendar/Calendar.Week.js.map +1 -0
  12. package/build/components/Calendar/Calendar.constants.js +11 -0
  13. package/build/components/Calendar/Calendar.constants.js.map +1 -0
  14. package/build/components/Calendar/Calendar.js +146 -0
  15. package/build/components/Calendar/Calendar.js.map +1 -0
  16. package/build/components/Calendar/Calendar.module.css +96 -0
  17. package/build/components/Calendar/__tests__/__snapshots__/Calendar.test.jsx.snap +17853 -0
  18. package/build/components/Calendar/helpers/getFirstDateOfMonth.js +16 -0
  19. package/build/components/Calendar/helpers/getFirstDateOfMonth.js.map +1 -0
  20. package/build/components/Calendar/helpers/getFirstDateOfWeek.js +20 -0
  21. package/build/components/Calendar/helpers/getFirstDateOfWeek.js.map +1 -0
  22. package/build/components/Calendar/helpers/getHeader.js +23 -0
  23. package/build/components/Calendar/helpers/getHeader.js.map +1 -0
  24. package/build/components/Calendar/helpers/getToday.js +15 -0
  25. package/build/components/Calendar/helpers/getToday.js.map +1 -0
  26. package/build/components/Calendar/helpers/getWeekNumber.js +17 -0
  27. package/build/components/Calendar/helpers/getWeekNumber.js.map +1 -0
  28. package/build/components/Calendar/helpers/getWeekdays.js +27 -0
  29. package/build/components/Calendar/helpers/getWeekdays.js.map +1 -0
  30. package/build/components/Calendar/helpers/index.js +97 -0
  31. package/build/components/Calendar/helpers/index.js.map +1 -0
  32. package/build/components/Calendar/helpers/isJest.js +9 -0
  33. package/build/components/Calendar/helpers/isJest.js.map +1 -0
  34. package/build/components/Calendar/index.js +19 -0
  35. package/build/components/Calendar/index.js.map +1 -0
  36. package/build/components/Form/Form.js +184 -0
  37. package/build/components/Form/Form.js.map +1 -0
  38. package/build/components/Form/__tests__/__snapshots__/Form.test.jsx.snap +47 -0
  39. package/build/components/Form/helpers/getChildrenErrors.js +47 -0
  40. package/build/components/Form/helpers/getChildrenErrors.js.map +1 -0
  41. package/build/components/Form/helpers/getChildrenValues.js +46 -0
  42. package/build/components/Form/helpers/getChildrenValues.js.map +1 -0
  43. package/build/components/Form/helpers/getField.js +17 -0
  44. package/build/components/Form/helpers/getField.js.map +1 -0
  45. package/build/components/Form/helpers/groupState.js +29 -0
  46. package/build/components/Form/helpers/groupState.js.map +1 -0
  47. package/build/components/Form/helpers/index.js +58 -0
  48. package/build/components/Form/helpers/index.js.map +1 -0
  49. package/build/components/Form/index.js +19 -0
  50. package/build/components/Form/index.js.map +1 -0
  51. package/build/components/InputNumber/InputNumber.js +71 -0
  52. package/build/components/InputNumber/InputNumber.js.map +1 -0
  53. package/build/components/InputNumber/InputNumber.module.css +13 -0
  54. package/build/components/InputNumber/__tests__/__snapshots__/InputNumber.test.js.snap +616 -0
  55. package/build/components/InputNumber/index.js +19 -0
  56. package/build/components/InputNumber/index.js.map +1 -0
  57. package/build/components/InputText/InputText.js +100 -0
  58. package/build/components/InputText/InputText.js.map +1 -0
  59. package/build/components/InputText/InputText.module.css +68 -0
  60. package/build/components/InputText/__tests__/__snapshots__/InputText.test.js.snap +212 -0
  61. package/build/components/InputText/index.js +19 -0
  62. package/build/components/InputText/index.js.map +1 -0
  63. package/build/components/Modal/Modal.js +50 -0
  64. package/build/components/Modal/Modal.js.map +1 -0
  65. package/build/components/Modal/Modal.module.css +70 -0
  66. package/build/components/Modal/__tests__/__snapshots__/Modal.test.js.snap +150 -0
  67. package/build/components/Modal/index.js +19 -0
  68. package/build/components/Modal/index.js.map +1 -0
  69. package/build/components/index.js +84 -0
  70. package/build/components/index.js.map +1 -0
  71. package/build/helpers/getInputErrors.js +45 -0
  72. package/build/helpers/getInputErrors.js.map +1 -0
  73. package/build/helpers/index.js +32 -0
  74. package/build/helpers/index.js.map +1 -0
  75. package/build/helpers/isValidDate.js +58 -0
  76. package/build/helpers/isValidDate.js.map +1 -0
  77. package/build/helpers/isValidEmail.js +15 -0
  78. package/build/helpers/isValidEmail.js.map +1 -0
  79. package/build/helpers/isValidPhone.js +25 -0
  80. package/build/helpers/isValidPhone.js.map +1 -0
  81. package/build/helpers/styles.js +21 -0
  82. package/build/helpers/styles.js.map +1 -0
  83. package/build/hooks/helpers/getNavigator.js +33 -0
  84. package/build/hooks/helpers/getNavigator.js.map +1 -0
  85. package/build/hooks/helpers/getResolution.js +22 -0
  86. package/build/hooks/helpers/getResolution.js.map +1 -0
  87. package/build/hooks/helpers/index.js +32 -0
  88. package/build/hooks/helpers/index.js.map +1 -0
  89. package/build/hooks/index.js +19 -0
  90. package/build/hooks/index.js.map +1 -0
  91. package/build/hooks/useDevice.js +48 -0
  92. package/build/hooks/useDevice.js.map +1 -0
  93. package/build/index.js +71 -0
  94. package/build/index.js.map +1 -0
  95. package/build/primitives/Icon/Icon.constants.js +27 -0
  96. package/build/primitives/Icon/Icon.constants.js.map +1 -0
  97. package/build/primitives/Icon/Icon.js +34 -0
  98. package/build/primitives/Icon/Icon.js.map +1 -0
  99. package/build/primitives/Icon/Icon.module.css +11 -0
  100. package/build/primitives/Icon/__tests__/__snapshots__/Icon.test.js.snap +133 -0
  101. package/build/primitives/Icon/index.js +31 -0
  102. package/build/primitives/Icon/index.js.map +1 -0
  103. package/build/primitives/Input/Input.js +66 -0
  104. package/build/primitives/Input/Input.js.map +1 -0
  105. package/build/primitives/Input/Input.module.css +25 -0
  106. package/build/primitives/Input/__tests__/__snapshots__/Input.test.js.snap +74 -0
  107. package/build/primitives/Input/helpers/index.js +19 -0
  108. package/build/primitives/Input/helpers/index.js.map +1 -0
  109. package/build/primitives/Input/helpers/parseValue.js +17 -0
  110. package/build/primitives/Input/helpers/parseValue.js.map +1 -0
  111. package/build/primitives/Input/index.js +19 -0
  112. package/build/primitives/Input/index.js.map +1 -0
  113. package/build/primitives/Pressable/Pressable.constants.js +9 -0
  114. package/build/primitives/Pressable/Pressable.constants.js.map +1 -0
  115. package/build/primitives/Pressable/Pressable.js +50 -0
  116. package/build/primitives/Pressable/Pressable.js.map +1 -0
  117. package/build/primitives/Pressable/Pressable.module.css +18 -0
  118. package/build/primitives/Pressable/__tests__/__snapshots__/Pressable.test.js.snap +53 -0
  119. package/build/primitives/Pressable/index.js +19 -0
  120. package/build/primitives/Pressable/index.js.map +1 -0
  121. package/build/primitives/ScrollView/ScrollView.js +89 -0
  122. package/build/primitives/ScrollView/ScrollView.js.map +1 -0
  123. package/build/primitives/ScrollView/ScrollView.module.css +35 -0
  124. package/build/primitives/ScrollView/__tests__/__snapshots__/ScrollView.test.js.snap +535 -0
  125. package/build/primitives/ScrollView/index.js +19 -0
  126. package/build/primitives/ScrollView/index.js.map +1 -0
  127. package/build/primitives/Text/Text.js +40 -0
  128. package/build/primitives/Text/Text.js.map +1 -0
  129. package/build/primitives/Text/Text.module.css +36 -0
  130. package/build/primitives/Text/__tests__/__snapshots__/Text.test.js.snap +102 -0
  131. package/build/primitives/Text/index.js +19 -0
  132. package/build/primitives/Text/index.js.map +1 -0
  133. package/build/primitives/View/View.js +36 -0
  134. package/build/primitives/View/View.js.map +1 -0
  135. package/build/primitives/View/View.module.css +16 -0
  136. package/build/primitives/View/__tests__/__snapshots__/View.test.js.snap +62 -0
  137. package/build/primitives/View/index.js +19 -0
  138. package/build/primitives/View/index.js.map +1 -0
  139. package/build/primitives/index.js +84 -0
  140. package/build/primitives/index.js.map +1 -0
  141. package/build/theme/default.theme.css +37 -0
  142. package/build/theme/helpers/camelcase.js +16 -0
  143. package/build/theme/helpers/camelcase.js.map +1 -0
  144. package/build/theme/helpers/index.js +19 -0
  145. package/build/theme/helpers/index.js.map +1 -0
  146. package/build/theme/index.js +19 -0
  147. package/build/theme/index.js.map +1 -0
  148. package/build/theme/theme.js +43 -0
  149. package/build/theme/theme.js.map +1 -0
  150. package/package.json +51 -0
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.InputText = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _helpers = require("../../helpers");
19
+
20
+ var _primitives = require("../../primitives");
21
+
22
+ var _InputTextModule = _interopRequireDefault(require("./InputText.module.css"));
23
+
24
+ var _excluded = ["disabled", "error", "hint", "label", "type", "onChange", "onEnter", "onLeave"];
25
+
26
+ var InputText = function InputText(_ref) {
27
+ var _others$value;
28
+
29
+ var disabled = _ref.disabled,
30
+ error = _ref.error,
31
+ hint = _ref.hint,
32
+ label = _ref.label,
33
+ type = _ref.type,
34
+ _ref$onChange = _ref.onChange,
35
+ onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
36
+ _ref$onEnter = _ref.onEnter,
37
+ onEnter = _ref$onEnter === void 0 ? function () {} : _ref$onEnter,
38
+ _ref$onLeave = _ref.onLeave,
39
+ onLeave = _ref$onLeave === void 0 ? function () {} : _ref$onLeave,
40
+ others = (0, _objectWithoutProperties2.default)(_ref, _excluded);
41
+
42
+ var _useState = (0, _react.useState)(false),
43
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
44
+ focus = _useState2[0],
45
+ setFocus = _useState2[1];
46
+
47
+ var _useState3 = (0, _react.useState)(true),
48
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
49
+ password = _useState4[0],
50
+ setPassword = _useState4[1];
51
+
52
+ var handleChange = function handleChange(value, event) {
53
+ onChange(value, event);
54
+ };
55
+
56
+ var handleEnter = function handleEnter(event) {
57
+ setFocus(true);
58
+ onEnter(event);
59
+ };
60
+
61
+ var handleLeave = function handleLeave() {
62
+ setFocus(false);
63
+ onLeave(event);
64
+ };
65
+
66
+ var has = {
67
+ value: others.value !== undefined && ((_others$value = others.value) === null || _others$value === void 0 ? void 0 : _others$value.length) > 0
68
+ };
69
+ var is = {
70
+ password: type === 'password'
71
+ };
72
+ return /*#__PURE__*/_react.default.createElement(_primitives.View, {
73
+ className: (0, _helpers.styles)(_InputTextModule.default.inputText, others.className)
74
+ }, label && /*#__PURE__*/_react.default.createElement(_primitives.Text, {
75
+ className: (0, _helpers.styles)(_InputTextModule.default.text, _InputTextModule.default.label, focus && _InputTextModule.default.focus, error && _InputTextModule.default.error, (focus || error || has.value) && _InputTextModule.default.value)
76
+ }, label), /*#__PURE__*/_react.default.createElement(_primitives.View, {
77
+ className: (0, _helpers.styles)(_InputTextModule.default.content)
78
+ }, /*#__PURE__*/_react.default.createElement(_primitives.Input, Object.assign({}, others, {
79
+ disabled: disabled,
80
+ type: !is.password || password ? type : 'text',
81
+ value: others.value || '',
82
+ className: (0, _helpers.styles)(_InputTextModule.default.input, error && _InputTextModule.default.error),
83
+ onChange: handleChange,
84
+ onEnter: handleEnter,
85
+ onLeave: handleLeave
86
+ })), is.password && !disabled && /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
87
+ className: _InputTextModule.default.pressable,
88
+ onPress: function onPress() {
89
+ return setPassword(!password);
90
+ }
91
+ }, /*#__PURE__*/_react.default.createElement(_primitives.Icon, {
92
+ name: password ? 'EyeClose' : 'EyeOpen'
93
+ }))), hint && /*#__PURE__*/_react.default.createElement(_primitives.Text, {
94
+ small: true,
95
+ className: (0, _helpers.styles)(_InputTextModule.default.text, _InputTextModule.default.hint, error && _InputTextModule.default.error)
96
+ }, hint));
97
+ };
98
+
99
+ exports.InputText = InputText;
100
+ //# sourceMappingURL=InputText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/InputText/InputText.jsx"],"names":["InputText","disabled","error","hint","label","type","onChange","onEnter","onLeave","others","focus","setFocus","password","setPassword","handleChange","value","event","handleEnter","handleLeave","has","undefined","length","is","style","inputText","className","text","content","input","pressable"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Icon, Input, Pressable, Text, View } from '../../primitives';\nimport style from './InputText.module.css';\n\nconst InputText = ({\n disabled,\n error,\n hint,\n label,\n type,\n onChange = () => {},\n onEnter = () => {},\n onLeave = () => {},\n ...others\n}) => {\n const [focus, setFocus] = useState(false);\n const [password, setPassword] = useState(true);\n\n const handleChange = (value, event) => {\n onChange(value, event);\n };\n\n const handleEnter = (event) => {\n setFocus(true);\n onEnter(event);\n };\n\n const handleLeave = () => {\n setFocus(false);\n onLeave(event);\n };\n\n const has = {\n value: others.value !== undefined && others.value?.length > 0,\n };\n const is = { password: type === 'password' };\n\n return (\n <View className={styles(style.inputText, others.className)}>\n {label && (\n <Text\n className={styles(\n style.text,\n style.label,\n focus && style.focus,\n error && style.error,\n (focus || error || has.value) && style.value,\n )}\n >\n {label}\n </Text>\n )}\n\n <View className={styles(style.content)}>\n <Input\n {...others}\n disabled={disabled}\n type={!is.password || password ? type : 'text'}\n value={others.value || ''}\n className={styles(style.input, error && style.error)}\n onChange={handleChange}\n onEnter={handleEnter}\n onLeave={handleLeave}\n />\n {is.password && !disabled && (\n <Pressable className={style.pressable} onPress={() => setPassword(!password)}>\n <Icon name={password ? 'EyeClose' : 'EyeOpen'} />\n </Pressable>\n )}\n </View>\n\n {hint && (\n <Text small className={styles(style.text, style.hint, error && style.error)}>\n {hint}\n </Text>\n )}\n </View>\n );\n};\n\nInputText.propTypes = {\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n hint: PropTypes.string,\n label: PropTypes.string,\n multiLine: PropTypes.bool,\n name: PropTypes.string.isRequired,\n type: PropTypes.string,\n onChange: PropTypes.func,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n};\n\nexport { InputText };\n"],"file":"InputText.js"}
@@ -0,0 +1,68 @@
1
+ :root {
2
+ --mirai-ui-input-field-border: solid 1px var(--mirai-ui-lighten);
3
+ --mirai-ui-input-field-focus: var(--mirai-ui-accent);
4
+ --mirai-ui-input-field-padding-x: var(--mirai-ui-space-S);
5
+ --mirai-ui-input-field-padding-y: var(--mirai-ui-space-M);
6
+ --mirai-ui-input-field-radius: var(--mirai-ui-border-radius);
7
+ }
8
+
9
+ .inputText {
10
+ position: relative;
11
+ margin-bottom: var(--mirai-ui-input-field-padding-y);
12
+ }
13
+
14
+ .input {
15
+ border: var(--mirai-ui-input-field-border);
16
+ border-radius: var(--mirai-ui-input-field-radius);
17
+ padding: var(--mirai-ui-input-field-padding-y) var(--mirai-ui-input-field-padding-x);
18
+ }
19
+
20
+ .input::placeholder {
21
+ color: var(--mirai-ui-base);
22
+ }
23
+
24
+ .input.error {
25
+ border-color: var(--mirai-ui-error);
26
+ }
27
+
28
+ .input:not(.error):focus {
29
+ border-color: var(--mirai-ui-input-field-focus);
30
+ }
31
+
32
+ .text {
33
+ color: var(--mirai-ui-lighten);
34
+ }
35
+
36
+ .text.focus {
37
+ color: var(--mirai-ui-input-field-focus);
38
+ }
39
+
40
+ .text.error {
41
+ color: var(--mirai-ui-error);
42
+ }
43
+
44
+ .label {
45
+ background-color: var(--mirai-ui-base);
46
+ font-size: var(--mirai-ui-input-font-size);
47
+ margin: 0 calc(var(--mirai-ui-input-field-padding-x) / 2);
48
+ padding: 0 calc(var(--mirai-ui-input-field-padding-x) / 2);
49
+ pointer-events: none;
50
+ position: absolute;
51
+ top: var(--mirai-ui-input-field-padding-y);
52
+ transition: all var(--mirai-ui-motion-expand) var(--mirai-ui-motion-easing);
53
+ }
54
+
55
+ .label.value {
56
+ font-size: var(--mirai-ui-font-size-small);
57
+ top: calc(calc(var(--mirai-ui-input-field-padding-y) * -1) + calc(var(--mirai-ui-input-field-padding-y) / 2));
58
+ }
59
+
60
+ .pressable {
61
+ position: absolute;
62
+ right: var(--mirai-ui-input-field-padding-x);
63
+ top: var(--mirai-ui-input-field-padding-y);
64
+ }
65
+
66
+ .hint {
67
+ margin: calc(var(--mirai-ui-input-field-padding-x) / 4) var(--mirai-ui-input-field-padding-x);
68
+ }
@@ -0,0 +1,212 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`component:<InputText> inherit:className 1`] = `
4
+ <DocumentFragment>
5
+ <div
6
+ class="view inputText mirai"
7
+ >
8
+ <div
9
+ class="view content"
10
+ >
11
+ <input
12
+ class="input input"
13
+ name="name"
14
+ type="text"
15
+ value=""
16
+ />
17
+ </div>
18
+ </div>
19
+ </DocumentFragment>
20
+ `;
21
+
22
+ exports[`component:<InputText> prop:disabled 1`] = `
23
+ <DocumentFragment>
24
+ <div
25
+ class="view inputText"
26
+ >
27
+ <div
28
+ class="view content"
29
+ >
30
+ <input
31
+ class="input input"
32
+ disabled=""
33
+ name="name"
34
+ type="text"
35
+ value=""
36
+ />
37
+ </div>
38
+ </div>
39
+ </DocumentFragment>
40
+ `;
41
+
42
+ exports[`component:<InputText> prop:error 1`] = `
43
+ <DocumentFragment>
44
+ <div
45
+ class="view inputText"
46
+ >
47
+ <div
48
+ class="view content"
49
+ >
50
+ <input
51
+ class="input input error"
52
+ name="name"
53
+ type="text"
54
+ value=""
55
+ />
56
+ </div>
57
+ </div>
58
+ </DocumentFragment>
59
+ `;
60
+
61
+ exports[`component:<InputText> prop:hint 1`] = `
62
+ <DocumentFragment>
63
+ <div
64
+ class="view inputText"
65
+ >
66
+ <div
67
+ class="view content"
68
+ >
69
+ <input
70
+ class="input input"
71
+ name="name"
72
+ type="text"
73
+ value=""
74
+ />
75
+ </div>
76
+ <span
77
+ class="text small text hint"
78
+ >
79
+ hint
80
+ </span>
81
+ </div>
82
+ </DocumentFragment>
83
+ `;
84
+
85
+ exports[`component:<InputText> prop:label 1`] = `
86
+ <DocumentFragment>
87
+ <div
88
+ class="view inputText"
89
+ >
90
+ <span
91
+ class="text paragraph text label"
92
+ >
93
+ label
94
+ </span>
95
+ <div
96
+ class="view content"
97
+ >
98
+ <input
99
+ class="input input"
100
+ name="name"
101
+ type="text"
102
+ value=""
103
+ />
104
+ </div>
105
+ </div>
106
+ </DocumentFragment>
107
+ `;
108
+
109
+ exports[`component:<InputText> prop:multiLine 1`] = `
110
+ <DocumentFragment>
111
+ <div
112
+ class="view inputText"
113
+ >
114
+ <div
115
+ class="view content"
116
+ >
117
+ <textarea
118
+ class="input input"
119
+ name="name"
120
+ type="text"
121
+ />
122
+ </div>
123
+ </div>
124
+ </DocumentFragment>
125
+ `;
126
+
127
+ exports[`component:<InputText> prop:type 1`] = `
128
+ <DocumentFragment>
129
+ <div
130
+ class="view inputText"
131
+ >
132
+ <div
133
+ class="view content"
134
+ >
135
+ <input
136
+ class="input input"
137
+ name="name"
138
+ type="password"
139
+ value=""
140
+ />
141
+ <button
142
+ class="pressable pressable"
143
+ >
144
+ <span
145
+ class="icon"
146
+ >
147
+ <svg
148
+ fill="none"
149
+ height="1em"
150
+ stroke="currentColor"
151
+ stroke-linecap="round"
152
+ stroke-linejoin="round"
153
+ stroke-width="2"
154
+ viewBox="0 0 24 24"
155
+ width="1em"
156
+ xmlns="http://www.w3.org/2000/svg"
157
+ >
158
+ <path
159
+ d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"
160
+ />
161
+ <line
162
+ x1="1"
163
+ x2="23"
164
+ y1="1"
165
+ y2="23"
166
+ />
167
+ </svg>
168
+ </span>
169
+ </button>
170
+ </div>
171
+ </div>
172
+ </DocumentFragment>
173
+ `;
174
+
175
+ exports[`component:<InputText> renders 1`] = `
176
+ <DocumentFragment>
177
+ <div
178
+ class="view inputText"
179
+ >
180
+ <div
181
+ class="view content"
182
+ >
183
+ <input
184
+ class="input input"
185
+ name="name"
186
+ type="text"
187
+ value=""
188
+ />
189
+ </div>
190
+ </div>
191
+ </DocumentFragment>
192
+ `;
193
+
194
+ exports[`component:<InputText> testID 1`] = `
195
+ <DocumentFragment>
196
+ <div
197
+ class="view inputText"
198
+ >
199
+ <div
200
+ class="view content"
201
+ >
202
+ <input
203
+ class="input input"
204
+ data-testid="mirai"
205
+ name="name"
206
+ type="text"
207
+ value=""
208
+ />
209
+ </div>
210
+ </div>
211
+ </DocumentFragment>
212
+ `;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _InputText = require("./InputText");
8
+
9
+ Object.keys(_InputText).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _InputText[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _InputText[key];
16
+ }
17
+ });
18
+ });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/InputText/index.js"],"names":[],"mappings":";;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './InputText';\n"],"file":"index.js"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Modal = void 0;
9
+
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _helpers = require("../../helpers");
15
+
16
+ var _hooks = require("../../hooks");
17
+
18
+ var _primitives = require("../../primitives");
19
+
20
+ var _ModalModule = _interopRequireDefault(require("./Modal.module.css"));
21
+
22
+ var _excluded = ["children", "visible", "onClose"];
23
+
24
+ var Modal = function Modal(_ref) {
25
+ var children = _ref.children,
26
+ visible = _ref.visible,
27
+ onClose = _ref.onClose,
28
+ others = (0, _objectWithoutProperties2.default)(_ref, _excluded);
29
+
30
+ var _useDevice = (0, _hooks.useDevice)(),
31
+ isDesktop = _useDevice.isDesktop;
32
+
33
+ return /*#__PURE__*/_react.default.createElement(_primitives.View, {
34
+ row: true,
35
+ className: (0, _helpers.styles)(_ModalModule.default.overflow, visible && _ModalModule.default.visible)
36
+ }, /*#__PURE__*/_react.default.createElement(_primitives.View, Object.assign({}, others, {
37
+ fit: true,
38
+ className: (0, _helpers.styles)(_ModalModule.default.modal, visible && _ModalModule.default.visible, others.className)
39
+ }), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, onClose && /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
40
+ className: _ModalModule.default.pressable,
41
+ onPress: onClose
42
+ }, /*#__PURE__*/_react.default.createElement(_primitives.Icon, {
43
+ name: isDesktop ? 'Close' : 'CloseArrow',
44
+ className: _ModalModule.default.icon
45
+ })), children)));
46
+ };
47
+
48
+ exports.Modal = Modal;
49
+ Modal.displayName = 'Component:Modal';
50
+ //# sourceMappingURL=Modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Modal/Modal.jsx"],"names":["Modal","children","visible","onClose","others","isDesktop","style","overflow","modal","className","pressable","icon","displayName"],"mappings":";;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,KAAK,GAAG,SAARA,KAAQ,OAA+C;AAAA,MAA5CC,QAA4C,QAA5CA,QAA4C;AAAA,MAAlCC,OAAkC,QAAlCA,OAAkC;AAAA,MAAzBC,OAAyB,QAAzBA,OAAyB;AAAA,MAAbC,MAAa;;AAC3D,mBAAsB,uBAAtB;AAAA,MAAQC,SAAR,cAAQA,SAAR;;AAEA,sBACE,6BAAC,gBAAD;AAAM,IAAA,GAAG,MAAT;AAAU,IAAA,SAAS,EAAE,qBAAOC,qBAAMC,QAAb,EAAuBL,OAAO,IAAII,qBAAMJ,OAAxC;AAArB,kBACE,6BAAC,gBAAD,oBAAUE,MAAV;AAAkB,IAAA,GAAG,MAArB;AAAsB,IAAA,SAAS,EAAE,qBAAOE,qBAAME,KAAb,EAAoBN,OAAO,IAAII,qBAAMJ,OAArC,EAA8CE,MAAM,CAACK,SAArD;AAAjC,mBACE,4DACGN,OAAO,iBACN,6BAAC,qBAAD;AAAW,IAAA,SAAS,EAAEG,qBAAMI,SAA5B;AAAuC,IAAA,OAAO,EAAEP;AAAhD,kBACE,6BAAC,gBAAD;AAAM,IAAA,IAAI,EAAEE,SAAS,GAAG,OAAH,GAAa,YAAlC;AAAgD,IAAA,SAAS,EAAEC,qBAAMK;AAAjE,IADF,CAFJ,EAMGV,QANH,CADF,CADF,CADF;AAcD,CAjBD;;;AAmBAD,KAAK,CAACY,WAAN,GAAoB,iBAApB","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, Pressable, View } from '../../primitives';\nimport style from './Modal.module.css';\n\nconst Modal = ({ children, visible, onClose, ...others }) => {\n const { isDesktop } = useDevice();\n\n return (\n <View row className={styles(style.overflow, visible && style.visible)}>\n <View {...others} fit className={styles(style.modal, visible && style.visible, others.className)}>\n <>\n {onClose && (\n <Pressable className={style.pressable} onPress={onClose}>\n <Icon name={isDesktop ? 'Close' : 'CloseArrow'} className={style.icon} />\n </Pressable>\n )}\n {children}\n </>\n </View>\n </View>\n );\n};\n\nModal.displayName = 'Component:Modal';\n\nModal.propTypes = {\n children: PropTypes.node,\n visible: PropTypes.bool,\n onClose: PropTypes.func,\n};\n\nexport { Modal };\n"],"file":"Modal.js"}
@@ -0,0 +1,70 @@
1
+ :root {
2
+ --mirai-ui-modal-background: var(--mirai-ui-base);
3
+ --mirai-ui-modal-overflow: rgba(0, 0, 0, 0.2);
4
+ --mirai-ui-modal-icon: var(--mirai-ui-space-L);
5
+ }
6
+
7
+ .modal {
8
+ background-color: var(--mirai-ui-modal-background);
9
+ opacity: 0;
10
+ pointer-events: none;
11
+ transform: scale(0.9);
12
+ transition: all var(--mirai-ui-motion-expand) var(--mirai-ui-motion-easing);
13
+ }
14
+
15
+ .modal.visible {
16
+ opacity: 1;
17
+ pointer-events: all;
18
+ transform: scale(1);
19
+ }
20
+
21
+ .overflow {
22
+ align-items: center;
23
+ background-color: var(--mirai-ui-modal-overflow);
24
+ height: 100vh;
25
+ justify-content: center;
26
+ left: 0;
27
+ opacity: 0;
28
+ pointer-events: none;
29
+ position: absolute;
30
+ transition: opacity var(--mirai-ui-motion-expand) var(--mirai-ui-motion-easing);
31
+ top: 0;
32
+ width: 100vw;
33
+ z-index: 1000;
34
+ }
35
+
36
+ .overflow.visible {
37
+ opacity: 1;
38
+ }
39
+
40
+ .pressable {
41
+ align-self: flex-end;
42
+ padding: var(--mirai-ui-space-XS);
43
+ }
44
+
45
+ .icon {
46
+ font-size: var(--mirai-ui-modal-icon);
47
+ line-height: var(--mirai-ui-modal-icon);
48
+ height: var(--mirai-ui-modal-icon);
49
+ width: var(--mirai-ui-modal-icon);
50
+ }
51
+
52
+ @media only screen and (max-width: 600px) {
53
+ .overflow {
54
+ align-items: flex-end;
55
+ align-content: flex-end;
56
+ }
57
+
58
+ .modal {
59
+ opacity: 1;
60
+ transform: translateY(110%);
61
+ }
62
+
63
+ .modal.visible {
64
+ transform: translateY(0%);
65
+ }
66
+
67
+ .pressable {
68
+ align-self: center;
69
+ }
70
+ }
@@ -0,0 +1,150 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`component:<Modal> Mobile environment prop:onClose 1`] = `
4
+ <DocumentFragment>
5
+ <div
6
+ class="view row overflow visible"
7
+ >
8
+ <div
9
+ class="view fit modal visible"
10
+ >
11
+ <button
12
+ class="pressable pressable"
13
+ >
14
+ <span
15
+ class="icon icon"
16
+ >
17
+ <svg
18
+ fill="none"
19
+ height="1em"
20
+ stroke="currentColor"
21
+ stroke-linecap="round"
22
+ stroke-linejoin="round"
23
+ stroke-width="2"
24
+ viewBox="0 0 24 24"
25
+ width="1em"
26
+ xmlns="http://www.w3.org/2000/svg"
27
+ >
28
+ <polyline
29
+ points="6 9 12 15 18 9"
30
+ />
31
+ </svg>
32
+ </span>
33
+ </button>
34
+ </div>
35
+ </div>
36
+ </DocumentFragment>
37
+ `;
38
+
39
+ exports[`component:<Modal> Mobile environment prop:visible 1`] = `
40
+ <DocumentFragment>
41
+ <div
42
+ class="view row overflow visible"
43
+ >
44
+ <div
45
+ class="view fit modal visible"
46
+ />
47
+ </div>
48
+ </DocumentFragment>
49
+ `;
50
+
51
+ exports[`component:<Modal> inherit:className 1`] = `
52
+ <DocumentFragment>
53
+ <div
54
+ class="view row overflow"
55
+ >
56
+ <div
57
+ class="view fit modal mirai"
58
+ />
59
+ </div>
60
+ </DocumentFragment>
61
+ `;
62
+
63
+ exports[`component:<Modal> prop:children 1`] = `
64
+ <DocumentFragment>
65
+ <div
66
+ class="view row overflow"
67
+ >
68
+ <div
69
+ class="view fit modal"
70
+ >
71
+ <span>
72
+ children
73
+ </span>
74
+ </div>
75
+ </div>
76
+ </DocumentFragment>
77
+ `;
78
+
79
+ exports[`component:<Modal> prop:onClose 1`] = `
80
+ <DocumentFragment>
81
+ <div
82
+ class="view row overflow visible"
83
+ >
84
+ <div
85
+ class="view fit modal visible"
86
+ >
87
+ <button
88
+ class="pressable pressable"
89
+ >
90
+ <span
91
+ class="icon icon"
92
+ >
93
+ <svg
94
+ fill="none"
95
+ height="1em"
96
+ stroke="currentColor"
97
+ stroke-linecap="round"
98
+ stroke-linejoin="round"
99
+ stroke-width="2"
100
+ viewBox="0 0 24 24"
101
+ width="1em"
102
+ xmlns="http://www.w3.org/2000/svg"
103
+ >
104
+ <polyline
105
+ points="6 9 12 15 18 9"
106
+ />
107
+ </svg>
108
+ </span>
109
+ </button>
110
+ </div>
111
+ </div>
112
+ </DocumentFragment>
113
+ `;
114
+
115
+ exports[`component:<Modal> prop:visible 1`] = `
116
+ <DocumentFragment>
117
+ <div
118
+ class="view row overflow visible"
119
+ >
120
+ <div
121
+ class="view fit modal visible"
122
+ />
123
+ </div>
124
+ </DocumentFragment>
125
+ `;
126
+
127
+ exports[`component:<Modal> renders 1`] = `
128
+ <DocumentFragment>
129
+ <div
130
+ class="view row overflow"
131
+ >
132
+ <div
133
+ class="view fit modal"
134
+ />
135
+ </div>
136
+ </DocumentFragment>
137
+ `;
138
+
139
+ exports[`component:<Modal> testID 1`] = `
140
+ <DocumentFragment>
141
+ <div
142
+ class="view row overflow"
143
+ >
144
+ <div
145
+ class="view fit modal"
146
+ data-testid="mirai"
147
+ />
148
+ </div>
149
+ </DocumentFragment>
150
+ `;