@mirai/ui 1.1.0-f → 1.1.2

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 (186) hide show
  1. package/README.md +109 -60
  2. package/build/components/Action/Action.js +1 -1
  3. package/build/components/Action/Action.js.map +1 -1
  4. package/build/components/Action/Action.module.css +4 -7
  5. package/build/components/Action/Action.stories.js +1 -1
  6. package/build/components/Action/Action.stories.js.map +1 -1
  7. package/build/components/Action/__tests__/__snapshots__/Action.test.js.snap +26 -40
  8. package/build/components/Button/Button.module.css +31 -33
  9. package/build/components/Button/Button.stories.js +9 -0
  10. package/build/components/Button/Button.stories.js.map +1 -1
  11. package/build/components/Button/__tests__/__snapshots__/Button.test.js.snap +21 -30
  12. package/build/components/Calendar/Calendar.Month.js +12 -8
  13. package/build/components/Calendar/Calendar.Month.js.map +1 -1
  14. package/build/components/Calendar/Calendar.Week.js +7 -10
  15. package/build/components/Calendar/Calendar.Week.js.map +1 -1
  16. package/build/components/Calendar/Calendar.js +10 -2
  17. package/build/components/Calendar/Calendar.js.map +1 -1
  18. package/build/components/Calendar/Calendar.module.css +8 -9
  19. package/build/components/Calendar/__tests__/__snapshots__/Calendar.test.jsx.snap +15768 -15800
  20. package/build/components/Form/Form.constants.js +1 -1
  21. package/build/components/Form/Form.constants.js.map +1 -1
  22. package/build/components/Form/Form.js +3 -1
  23. package/build/components/Form/Form.js.map +1 -1
  24. package/build/components/Form/Form.stories.js +6 -1
  25. package/build/components/Form/Form.stories.js.map +1 -1
  26. package/build/components/Form/__tests__/__snapshots__/Form.test.jsx.snap +9 -9
  27. package/build/components/InputDate/__tests__/__snapshots__/InputDate.test.js.snap +42 -42
  28. package/build/components/InputNumber/InputNumber.js +2 -1
  29. package/build/components/InputNumber/InputNumber.js.map +1 -1
  30. package/build/components/InputNumber/__tests__/__snapshots__/InputNumber.test.js.snap +138 -153
  31. package/build/components/InputOption/InputOption.js +8 -1
  32. package/build/components/InputOption/InputOption.js.map +1 -1
  33. package/build/components/InputOption/InputOption.module.css +13 -2
  34. package/build/components/InputOption/InputOption.stories.js +2 -1
  35. package/build/components/InputOption/InputOption.stories.js.map +1 -1
  36. package/build/components/InputOption/__tests__/__snapshots__/InputOption.test.js.snap +96 -90
  37. package/build/components/InputPhone/InputPhone.js +23 -20
  38. package/build/components/InputPhone/InputPhone.js.map +1 -1
  39. package/build/components/InputPhone/InputPhone.module.css +19 -6
  40. package/build/components/InputPhone/InputPhone.stories.js +3 -3
  41. package/build/components/InputPhone/InputPhone.stories.js.map +1 -1
  42. package/build/components/InputPhone/__tests__/__snapshots__/InputPhone.test.js.snap +410 -410
  43. package/build/components/InputPhone/helpers/index.js +11 -0
  44. package/build/components/InputPhone/helpers/index.js.map +1 -1
  45. package/build/components/InputPhone/helpers/sanitizePrefixes.js +24 -0
  46. package/build/components/InputPhone/helpers/sanitizePrefixes.js.map +1 -0
  47. package/build/components/InputSelect/InputSelect.js +3 -5
  48. package/build/components/InputSelect/InputSelect.js.map +1 -1
  49. package/build/components/InputSelect/InputSelect.stories.js +1 -0
  50. package/build/components/InputSelect/InputSelect.stories.js.map +1 -1
  51. package/build/components/InputSelect/__tests__/__snapshots__/InputSelect.test.js.snap +136 -136
  52. package/build/components/InputSelect/partials/InputSelect.Expand.js +23 -0
  53. package/build/components/InputSelect/partials/InputSelect.Expand.js.map +1 -0
  54. package/build/components/InputSelect/partials/index.js +17 -0
  55. package/build/components/InputSelect/partials/index.js.map +1 -0
  56. package/build/components/InputText/InputText.js +6 -4
  57. package/build/components/InputText/InputText.js.map +1 -1
  58. package/build/components/InputText/InputText.module.css +18 -6
  59. package/build/components/InputText/InputText.stories.js +7 -2
  60. package/build/components/InputText/InputText.stories.js.map +1 -1
  61. package/build/components/InputText/__tests__/__snapshots__/InputText.test.js.snap +142 -143
  62. package/build/components/Menu/__tests__/__snapshots__/Menu.test.jsx.snap +72 -70
  63. package/build/components/Modal/Modal.js +15 -8
  64. package/build/components/Modal/Modal.js.map +1 -1
  65. package/build/components/Modal/Modal.module.css +30 -14
  66. package/build/components/Modal/Modal.stories.js +1 -0
  67. package/build/components/Modal/Modal.stories.js.map +1 -1
  68. package/build/components/Modal/__tests__/__snapshots__/Modal.test.js.snap +92 -98
  69. package/build/components/Notification/Notification.js +20 -12
  70. package/build/components/Notification/Notification.js.map +1 -1
  71. package/build/components/Notification/Notification.module.css +44 -58
  72. package/build/components/Notification/Notification.stories.js +15 -2
  73. package/build/components/Notification/Notification.stories.js.map +1 -1
  74. package/build/components/Notification/__tests__/__snapshots__/Notification.test.js.snap +600 -254
  75. package/build/components/Progress/Progress.js +2 -0
  76. package/build/components/Progress/Progress.js.map +1 -1
  77. package/build/components/Progress/__tests__/__snapshots__/Progress.test.jsx.snap +18 -18
  78. package/build/components/Slider/Slider.constants.js +3 -1
  79. package/build/components/Slider/Slider.constants.js.map +1 -1
  80. package/build/components/Slider/Slider.js +67 -66
  81. package/build/components/Slider/Slider.js.map +1 -1
  82. package/build/components/Slider/Slider.module.css +55 -52
  83. package/build/components/Slider/Slider.stories.js +9 -6
  84. package/build/components/Slider/Slider.stories.js.map +1 -1
  85. package/build/components/Slider/__tests__/__snapshots__/Slider.test.js.snap +714 -333
  86. package/build/components/Table/Table.ColumnFilter.js +17 -14
  87. package/build/components/Table/Table.ColumnFilter.js.map +1 -1
  88. package/build/components/Table/Table.Row.js +2 -1
  89. package/build/components/Table/Table.Row.js.map +1 -1
  90. package/build/components/Table/Table.constants.js +3 -1
  91. package/build/components/Table/Table.constants.js.map +1 -1
  92. package/build/components/Table/Table.js +54 -17
  93. package/build/components/Table/Table.js.map +1 -1
  94. package/build/components/Table/Table.module.css +12 -6
  95. package/build/components/Table/Table.stories.js +39 -19
  96. package/build/components/Table/Table.stories.js.map +1 -1
  97. package/build/components/Table/Table.stories.module.css +4 -5
  98. package/build/components/Table/__tests__/__snapshots__/Table.ColumnFilter.test.js.snap +221 -240
  99. package/build/components/Table/__tests__/__snapshots__/Table.test.js.snap +1725 -1085
  100. package/build/components/Table/helpers/exists.js +2 -3
  101. package/build/components/Table/helpers/exists.js.map +1 -1
  102. package/build/components/Table/helpers/select.js +24 -16
  103. package/build/components/Table/helpers/select.js.map +1 -1
  104. package/build/components/Tooltip/Tooltip.js +29 -6
  105. package/build/components/Tooltip/Tooltip.js.map +1 -1
  106. package/build/components/Tooltip/__tests__/__snapshots__/Tooltip.test.jsx.snap +51 -44
  107. package/build/components/index.js +11 -0
  108. package/build/components/index.js.map +1 -1
  109. package/build/helpers/getInputPhoneErrors.js +3 -2
  110. package/build/helpers/getInputPhoneErrors.js.map +1 -1
  111. package/build/hooks/useDevice.js +1 -1
  112. package/build/hooks/useDevice.js.map +1 -1
  113. package/build/primitives/Checkbox/Checkbox.js +4 -3
  114. package/build/primitives/Checkbox/Checkbox.js.map +1 -1
  115. package/build/primitives/Checkbox/Checkbox.module.css +43 -6
  116. package/build/primitives/Checkbox/__tests__/__snapshots__/Checkbox.test.js.snap +47 -16
  117. package/build/primitives/Icon/Icon.constants.js +43 -21
  118. package/build/primitives/Icon/Icon.constants.js.map +1 -1
  119. package/build/primitives/Icon/Icon.js +15 -5
  120. package/build/primitives/Icon/Icon.js.map +1 -1
  121. package/build/primitives/Icon/Icon.module.css +32 -19
  122. package/build/primitives/Icon/Icon.stories.js +5 -0
  123. package/build/primitives/Icon/Icon.stories.js.map +1 -1
  124. package/build/primitives/Icon/__tests__/__snapshots__/Icon.test.js.snap +291 -100
  125. package/build/primitives/Input/Input.js +9 -3
  126. package/build/primitives/Input/Input.js.map +1 -1
  127. package/build/primitives/Input/Input.stories.js +2 -0
  128. package/build/primitives/Input/Input.stories.js.map +1 -1
  129. package/build/primitives/Input/__tests__/__snapshots__/Input.test.js.snap +22 -0
  130. package/build/primitives/Layer/Layer.js +11 -5
  131. package/build/primitives/Layer/Layer.js.map +1 -1
  132. package/build/primitives/Layer/Layer.module.css +4 -0
  133. package/build/primitives/Layer/__tests__/__snapshots__/Layer.test.js.snap +78 -42
  134. package/build/primitives/Layer/helpers/index.js +11 -0
  135. package/build/primitives/Layer/helpers/index.js.map +1 -1
  136. package/build/primitives/Layer/helpers/isComponentFixed.js +32 -0
  137. package/build/primitives/Layer/helpers/isComponentFixed.js.map +1 -0
  138. package/build/primitives/Pressable/Pressable.constants.js +1 -1
  139. package/build/primitives/Pressable/Pressable.constants.js.map +1 -1
  140. package/build/primitives/Pressable/Pressable.js +3 -7
  141. package/build/primitives/Pressable/Pressable.js.map +1 -1
  142. package/build/primitives/Pressable/Pressable.module.css +0 -1
  143. package/build/primitives/Pressable/__tests__/__snapshots__/Pressable.test.js.snap +10 -14
  144. package/build/primitives/Primitive/Primitive.js +2 -2
  145. package/build/primitives/Primitive/Primitive.js.map +1 -1
  146. package/build/primitives/Primitive/__tests__/__snapshots__/Primitive.test.js.snap +7 -7
  147. package/build/primitives/Primitive/helpers/index.js +0 -11
  148. package/build/primitives/Primitive/helpers/index.js.map +1 -1
  149. package/build/primitives/Radio/Radio.js +1 -1
  150. package/build/primitives/Radio/Radio.js.map +1 -1
  151. package/build/primitives/Radio/Radio.module.css +20 -2
  152. package/build/primitives/Radio/__tests__/__snapshots__/Radio.test.js.snap +21 -21
  153. package/build/primitives/ScrollView/ScrollView.js +1 -1
  154. package/build/primitives/ScrollView/ScrollView.js.map +1 -1
  155. package/build/primitives/ScrollView/ScrollView.module.css +1 -0
  156. package/build/primitives/ScrollView/ScrollView.stories.js +5 -6
  157. package/build/primitives/ScrollView/ScrollView.stories.js.map +1 -1
  158. package/build/primitives/ScrollView/__tests__/__snapshots__/ScrollView.test.js.snap +20 -20
  159. package/build/primitives/Select/Select.js +13 -6
  160. package/build/primitives/Select/Select.js.map +1 -1
  161. package/build/primitives/Select/Select.stories.js +1 -0
  162. package/build/primitives/Select/Select.stories.js.map +1 -1
  163. package/build/primitives/Select/__tests__/__snapshots__/Select.test.js.snap +36 -0
  164. package/build/primitives/Switch/Switch.js +5 -3
  165. package/build/primitives/Switch/Switch.js.map +1 -1
  166. package/build/primitives/Switch/Switch.module.css +35 -7
  167. package/build/primitives/Switch/Switch.stories.js +1 -0
  168. package/build/primitives/Switch/Switch.stories.js.map +1 -1
  169. package/build/primitives/Switch/__tests__/__snapshots__/Switch.test.js.snap +88 -25
  170. package/build/primitives/Text/Text.js +12 -5
  171. package/build/primitives/Text/Text.js.map +1 -1
  172. package/build/primitives/Text/Text.module.css +29 -14
  173. package/build/primitives/Text/Text.stories.js +4 -0
  174. package/build/primitives/Text/Text.stories.js.map +1 -1
  175. package/build/primitives/Text/__tests__/__snapshots__/Text.test.js.snap +78 -38
  176. package/build/primitives/View/View.js +1 -1
  177. package/build/primitives/View/View.js.map +1 -1
  178. package/build/primitives/View/__tests__/__snapshots__/View.test.js.snap +10 -10
  179. package/build/theme/default.theme.css +54 -53
  180. package/build/theme/theme.constants.js +3 -1
  181. package/build/theme/theme.constants.js.map +1 -1
  182. package/build/theme/theme.js +34 -11
  183. package/build/theme/theme.js.map +1 -1
  184. package/package.json +4 -5
  185. package/build/primitives/Primitive/helpers/getTag.js +0 -33
  186. package/build/primitives/Primitive/helpers/getTag.js.map +0 -1
@@ -26,6 +26,7 @@ var Progress = function Progress(_ref) {
26
26
  role: others.role || 'progress',
27
27
  className: (0, _helpers.styles)(_ProgressModule.default.progress, visible && _ProgressModule.default.visible, others.className)
28
28
  }), /*#__PURE__*/_react.default.createElement(_primitives.View, {
29
+ role: "progress-value",
29
30
  className: (0, _helpers.styles)(_ProgressModule.default.value, indeterminate && _ProgressModule.default.indeterminate),
30
31
  style: !indeterminate ? {
31
32
  width: "".concat(value, "%")
@@ -33,6 +34,7 @@ var Progress = function Progress(_ref) {
33
34
  }));
34
35
  };
35
36
  exports.Progress = Progress;
37
+ Progress.displayName = 'Component:Progress';
36
38
  Progress.propTypes = {
37
39
  indeterminate: _propTypes.default.bool,
38
40
  value: _propTypes.default.number,
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.js","names":["Progress","indeterminate","value","visible","others","role","styles","style","progress","className","width","undefined","propTypes","PropTypes","bool","number"],"sources":["../../../src/components/Progress/Progress.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { View } from '../../primitives';\nimport style from './Progress.module.css';\n\nconst Progress = ({ indeterminate = false, value = 0, visible = false, ...others }) => (\n <View\n {...others}\n role={others.role || 'progress'}\n className={styles(style.progress, visible && style.visible, others.className)}\n >\n <View\n className={styles(style.value, indeterminate && style.indeterminate)}\n style={!indeterminate ? { width: `${value}%` } : undefined}\n />\n </View>\n);\n\nProgress.propTypes = {\n indeterminate: PropTypes.bool,\n value: PropTypes.number,\n visible: PropTypes.bool,\n};\n\nexport { Progress };\n"],"mappings":";;;;;;AAAA;AACA;AAEA;AACA;AACA;AAA0C;AAAA;AAAA;AAAA;AAAA;AAE1C,IAAMA,QAAQ,GAAG,SAAXA,QAAQ;EAAA,8BAAMC,aAAa;IAAbA,aAAa,mCAAG,KAAK;IAAA,kBAAEC,KAAK;IAALA,KAAK,2BAAG,CAAC;IAAA,oBAAEC,OAAO;IAAPA,OAAO,6BAAG,KAAK;IAAKC,MAAM;EAAA,oBAC9E,6BAAC,gBAAI,eACCA,MAAM;IACV,IAAI,EAAEA,MAAM,CAACC,IAAI,IAAI,UAAW;IAChC,SAAS,EAAE,IAAAC,eAAM,EAACC,uBAAK,CAACC,QAAQ,EAAEL,OAAO,IAAII,uBAAK,CAACJ,OAAO,EAAEC,MAAM,CAACK,SAAS;EAAE,iBAE9E,6BAAC,gBAAI;IACH,SAAS,EAAE,IAAAH,eAAM,EAACC,uBAAK,CAACL,KAAK,EAAED,aAAa,IAAIM,uBAAK,CAACN,aAAa,CAAE;IACrE,KAAK,EAAE,CAACA,aAAa,GAAG;MAAES,KAAK,YAAKR,KAAK;IAAI,CAAC,GAAGS;EAAU,EAC3D,CACG;AAAA,CACR;AAAC;AAEFX,QAAQ,CAACY,SAAS,GAAG;EACnBX,aAAa,EAAEY,kBAAS,CAACC,IAAI;EAC7BZ,KAAK,EAAEW,kBAAS,CAACE,MAAM;EACvBZ,OAAO,EAAEU,kBAAS,CAACC;AACrB,CAAC"}
1
+ {"version":3,"file":"Progress.js","names":["Progress","indeterminate","value","visible","others","role","styles","style","progress","className","width","undefined","displayName","propTypes","PropTypes","bool","number"],"sources":["../../../src/components/Progress/Progress.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { View } from '../../primitives';\nimport style from './Progress.module.css';\n\nconst Progress = ({ indeterminate = false, value = 0, visible = false, ...others }) => (\n <View\n {...others}\n role={others.role || 'progress'}\n className={styles(style.progress, visible && style.visible, others.className)}\n >\n <View\n role=\"progress-value\"\n className={styles(style.value, indeterminate && style.indeterminate)}\n style={!indeterminate ? { width: `${value}%` } : undefined}\n />\n </View>\n);\n\nProgress.displayName = 'Component:Progress';\n\nProgress.propTypes = {\n indeterminate: PropTypes.bool,\n value: PropTypes.number,\n visible: PropTypes.bool,\n};\n\nexport { Progress };\n"],"mappings":";;;;;;AAAA;AACA;AAEA;AACA;AACA;AAA0C;AAAA;AAAA;AAAA;AAAA;AAE1C,IAAMA,QAAQ,GAAG,SAAXA,QAAQ;EAAA,8BAAMC,aAAa;IAAbA,aAAa,mCAAG,KAAK;IAAA,kBAAEC,KAAK;IAALA,KAAK,2BAAG,CAAC;IAAA,oBAAEC,OAAO;IAAPA,OAAO,6BAAG,KAAK;IAAKC,MAAM;EAAA,oBAC9E,6BAAC,gBAAI,eACCA,MAAM;IACV,IAAI,EAAEA,MAAM,CAACC,IAAI,IAAI,UAAW;IAChC,SAAS,EAAE,IAAAC,eAAM,EAACC,uBAAK,CAACC,QAAQ,EAAEL,OAAO,IAAII,uBAAK,CAACJ,OAAO,EAAEC,MAAM,CAACK,SAAS;EAAE,iBAE9E,6BAAC,gBAAI;IACH,IAAI,EAAC,gBAAgB;IACrB,SAAS,EAAE,IAAAH,eAAM,EAACC,uBAAK,CAACL,KAAK,EAAED,aAAa,IAAIM,uBAAK,CAACN,aAAa,CAAE;IACrE,KAAK,EAAE,CAACA,aAAa,GAAG;MAAES,KAAK,YAAKR,KAAK;IAAI,CAAC,GAAGS;EAAU,EAC3D,CACG;AAAA,CACR;AAAC;AAEFX,QAAQ,CAACY,WAAW,GAAG,oBAAoB;AAE3CZ,QAAQ,CAACa,SAAS,GAAG;EACnBZ,aAAa,EAAEa,kBAAS,CAACC,IAAI;EAC7Bb,KAAK,EAAEY,kBAAS,CAACE,MAAM;EACvBb,OAAO,EAAEW,kBAAS,CAACC;AACrB,CAAC"}
@@ -2,78 +2,78 @@
2
2
 
3
3
  exports[`component:<Progress> inherit:className 1`] = `
4
4
  <DocumentFragment>
5
- <ui_view
5
+ <div
6
6
  class="view progress mirai"
7
7
  >
8
- <ui_view
8
+ <div
9
9
  class="view value"
10
10
  style="width: 0%;"
11
11
  />
12
- </ui_view>
12
+ </div>
13
13
  </DocumentFragment>
14
14
  `;
15
15
 
16
16
  exports[`component:<Progress> prop:indeterminate 1`] = `
17
17
  <DocumentFragment>
18
- <ui_view
18
+ <div
19
19
  class="view progress"
20
20
  >
21
- <ui_view
21
+ <div
22
22
  class="view value indeterminate"
23
23
  />
24
- </ui_view>
24
+ </div>
25
25
  </DocumentFragment>
26
26
  `;
27
27
 
28
28
  exports[`component:<Progress> prop:value 1`] = `
29
29
  <DocumentFragment>
30
- <ui_view
30
+ <div
31
31
  class="view progress"
32
32
  >
33
- <ui_view
33
+ <div
34
34
  class="view value"
35
35
  style="width: 50%;"
36
36
  />
37
- </ui_view>
37
+ </div>
38
38
  </DocumentFragment>
39
39
  `;
40
40
 
41
41
  exports[`component:<Progress> prop:visible 1`] = `
42
42
  <DocumentFragment>
43
- <ui_view
43
+ <div
44
44
  class="view progress visible"
45
45
  >
46
- <ui_view
46
+ <div
47
47
  class="view value"
48
48
  style="width: 50%;"
49
49
  />
50
- </ui_view>
50
+ </div>
51
51
  </DocumentFragment>
52
52
  `;
53
53
 
54
54
  exports[`component:<Progress> renders 1`] = `
55
55
  <DocumentFragment>
56
- <ui_view
56
+ <div
57
57
  class="view progress"
58
58
  >
59
- <ui_view
59
+ <div
60
60
  class="view value"
61
61
  style="width: 0%;"
62
62
  />
63
- </ui_view>
63
+ </div>
64
64
  </DocumentFragment>
65
65
  `;
66
66
 
67
67
  exports[`component:<Progress> testId 1`] = `
68
68
  <DocumentFragment>
69
- <ui_view
69
+ <div
70
70
  class="view progress"
71
71
  data-testid="mirai"
72
72
  >
73
- <ui_view
73
+ <div
74
74
  class="view value"
75
75
  style="width: 0%;"
76
76
  />
77
- </ui_view>
77
+ </div>
78
78
  </DocumentFragment>
79
79
  `;
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.PRELOAD_IMAGES = void 0;
6
+ exports.SCROLL_DELAY = exports.PRELOAD_IMAGES = void 0;
7
7
  var PRELOAD_IMAGES = 2;
8
8
  exports.PRELOAD_IMAGES = PRELOAD_IMAGES;
9
+ var SCROLL_DELAY = 1000;
10
+ exports.SCROLL_DELAY = SCROLL_DELAY;
9
11
  //# sourceMappingURL=Slider.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.constants.js","names":["PRELOAD_IMAGES"],"sources":["../../../src/components/Slider/Slider.constants.js"],"sourcesContent":["const PRELOAD_IMAGES = 2;\n\nexport { PRELOAD_IMAGES };\n"],"mappings":";;;;;;AAAA,IAAMA,cAAc,GAAG,CAAC;AAAC"}
1
+ {"version":3,"file":"Slider.constants.js","names":["PRELOAD_IMAGES","SCROLL_DELAY"],"sources":["../../../src/components/Slider/Slider.constants.js"],"sourcesContent":["const PRELOAD_IMAGES = 2;\n\nconst SCROLL_DELAY = 1000;\n\nexport { PRELOAD_IMAGES, SCROLL_DELAY };\n"],"mappings":";;;;;;AAAA,IAAMA,cAAc,GAAG,CAAC;AAAC;AAEzB,IAAMC,YAAY,GAAG,IAAI;AAAC"}
@@ -10,10 +10,11 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _helpers = require("../../helpers");
11
11
  var _hooks = require("../../hooks");
12
12
  var _primitives = require("../../primitives");
13
- var _helpers2 = require("./helpers");
13
+ var _theme = require("../../theme");
14
+ var _Progress = require("../Progress");
14
15
  var _Slider = require("./Slider.constants");
15
16
  var _SliderModule = _interopRequireDefault(require("./Slider.module.css"));
16
- var _excluded = ["auto", "captions", "fullScreen", "height", "images", "index", "thumbnails", "width", "onChange", "onFullScreen"];
17
+ var _excluded = ["auto", "behavior", "captions", "height", "images", "index", "indicator", "replay", "width", "onChange", "onCounter"];
17
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -36,38 +37,36 @@ var timeout;
36
37
  var Slider = function Slider(_ref) {
37
38
  var _ref$auto = _ref.auto,
38
39
  auto = _ref$auto === void 0 ? false : _ref$auto,
40
+ _ref$behavior = _ref.behavior,
41
+ behavior = _ref$behavior === void 0 ? 'smooth' : _ref$behavior,
39
42
  _ref$captions = _ref.captions,
40
43
  captions = _ref$captions === void 0 ? [] : _ref$captions,
41
- _ref$fullScreen = _ref.fullScreen,
42
- propFullScreen = _ref$fullScreen === void 0 ? false : _ref$fullScreen,
43
44
  _ref$height = _ref.height,
44
45
  propHeight = _ref$height === void 0 ? 240 : _ref$height,
45
46
  _ref$images = _ref.images,
46
47
  images = _ref$images === void 0 ? [] : _ref$images,
47
48
  _ref$index = _ref.index,
48
49
  propIndex = _ref$index === void 0 ? 0 : _ref$index,
49
- _ref$thumbnails = _ref.thumbnails,
50
- thumbnails = _ref$thumbnails === void 0 ? [] : _ref$thumbnails,
50
+ _ref$indicator = _ref.indicator,
51
+ indicator = _ref$indicator === void 0 ? false : _ref$indicator,
52
+ _ref$replay = _ref.replay,
53
+ replay = _ref$replay === void 0 ? true : _ref$replay,
51
54
  _ref$width = _ref.width,
52
55
  propWidth = _ref$width === void 0 ? 320 : _ref$width,
53
56
  _ref$onChange = _ref.onChange,
54
57
  onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
55
- _ref$onFullScreen = _ref.onFullScreen,
56
- onFullScreen = _ref$onFullScreen === void 0 ? function () {} : _ref$onFullScreen,
58
+ onCounter = _ref.onCounter,
57
59
  others = _objectWithoutProperties(_ref, _excluded);
58
60
  var _useDevice = (0, _hooks.useDevice)(),
59
- screenHeight = _useDevice.height,
60
- isDesktop = _useDevice.isDesktop,
61
- isLandscape = _useDevice.isLandscape,
62
- screenWidth = _useDevice.width;
63
- var _useState = (0, _react.useState)(false),
61
+ isDesktop = _useDevice.isDesktop;
62
+ var _useState = (0, _react.useState)(true),
64
63
  _useState2 = _slicedToArray(_useState, 2),
65
- focus = _useState2[0],
66
- setFocus = _useState2[1];
67
- var _useState3 = (0, _react.useState)(propFullScreen),
64
+ disabledScroll = _useState2[0],
65
+ setDisabledScroll = _useState2[1];
66
+ var _useState3 = (0, _react.useState)(false),
68
67
  _useState4 = _slicedToArray(_useState3, 2),
69
- fullScreen = _useState4[0],
70
- setFullScreen = _useState4[1];
68
+ focus = _useState4[0],
69
+ setFocus = _useState4[1];
71
70
  var _useState5 = (0, _react.useState)(propIndex),
72
71
  _useState6 = _slicedToArray(_useState5, 2),
73
72
  index = _useState6[0],
@@ -84,23 +83,28 @@ var Slider = function Slider(_ref) {
84
83
 
85
84
  // eslint-disable-next-line react-hooks/exhaustive-deps
86
85
  (0, _react.useEffect)(function () {
87
- return onChange(index);
86
+ clearTimeout(timeout);
87
+ timeout = setTimeout(function () {
88
+ return setDisabledScroll(false);
89
+ }, _Slider.SCROLL_DELAY);
90
+ onChange(index);
91
+ // eslint-disable-next-line react-hooks/exhaustive-deps
88
92
  }, [index]);
89
-
90
- // eslint-disable-next-line react-hooks/exhaustive-deps
91
- (0, _react.useEffect)(function () {
92
- return onFullScreen(fullScreen);
93
- }, [fullScreen]);
94
- var height = fullScreen ? screenHeight * (isLandscape ? 0.9 : 0.4) : propHeight;
95
- var width = fullScreen ? screenWidth * (isLandscape ? 0.85 : 0.9) : propWidth;
93
+ var height = propHeight;
94
+ var width = propWidth;
95
+ var handleIndex = function handleIndex(nextIndex) {
96
+ setDisabledScroll(true);
97
+ setIndex(Math.abs(nextIndex) === images.length ? 0 : Math.abs(nextIndex) * (defaultDirection ? 1 : -1));
98
+ };
96
99
  var handleScroll = function handleScroll() {
97
100
  var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
98
101
  x = _ref2.x;
99
- clearTimeout(timeout);
100
- timeout = setTimeout(function () {
101
- setIndex(x < width ? 0 : Math.round(x / width));
102
- }, (0, _helpers2.getMotionExpand)());
102
+ var nextIndex = x < width ? 0 : Math.round(x / width);
103
+ if (nextIndex !== index) setIndex(nextIndex);
103
104
  };
105
+ var defaultDirection = _theme.Theme.getDirection() === _theme.DIRECTION_TYPE.LEFT;
106
+ var hasImages = images.length > 1;
107
+ var isEnd = Math.abs(index) >= images.length - 1;
104
108
  return /*#__PURE__*/_react.default.createElement(_primitives.View, _extends({}, others, {
105
109
  role: "slider",
106
110
  onMouseEnter: isDesktop ? function () {
@@ -109,23 +113,25 @@ var Slider = function Slider(_ref) {
109
113
  onMouseLeave: isDesktop ? function () {
110
114
  return setFocus(false);
111
115
  } : undefined,
112
- className: (0, _helpers.styles)(_SliderModule.default.slider, fullScreen && _SliderModule.default.fullScreen, others.className),
113
- style: _objectSpread(_objectSpread({}, !fullScreen ? others.style : undefined), {}, {
114
- width: fullScreen ? screenWidth : width
116
+ className: (0, _helpers.styles)(_SliderModule.default.container, others.className),
117
+ style: _objectSpread(_objectSpread({}, others.style), {}, {
118
+ width: width
115
119
  })
116
- }), !fullScreen && /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
120
+ }), hasImages && /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
117
121
  onPress: function onPress() {
118
- return setIndex(index - 1);
122
+ return handleIndex(index - 1);
119
123
  },
120
- className: (0, _helpers.styles)(_SliderModule.default.button, (index <= 0 || isDesktop && !focus) && _SliderModule.default.hide, _SliderModule.default.back)
124
+ className: (0, _helpers.styles)(_SliderModule.default.button, ((defaultDirection ? index <= 0 : replay ? false : isEnd) || isDesktop && !focus) && _SliderModule.default.hide, _SliderModule.default.first)
121
125
  }, /*#__PURE__*/_react.default.createElement(_primitives.Icon, {
122
- value: _primitives.ICON.LEFT
126
+ value: replay && !defaultDirection && isEnd ? _primitives.ICON.REPLAY : _primitives.ICON.LEFT
123
127
  })), /*#__PURE__*/_react.default.createElement(_primitives.ScrollView, {
128
+ behavior: behavior,
124
129
  horizontal: true,
130
+ scrollEventThrottle: _Slider.SCROLL_DELAY,
125
131
  scrollTo: index * Math.floor(width),
126
132
  snap: true,
127
133
  width: width,
128
- onScroll: handleScroll,
134
+ onScroll: disabledScroll ? undefined : handleScroll,
129
135
  className: _SliderModule.default.scrollView
130
136
  }, images.map(function (image, imageIndex) {
131
137
  return /*#__PURE__*/_react.default.createElement(_primitives.View, {
@@ -133,12 +139,9 @@ var Slider = function Slider(_ref) {
133
139
  className: _SliderModule.default.item
134
140
  }, /*#__PURE__*/_react.default.createElement(_primitives.View, {
135
141
  role: "image",
136
- onClick: function onClick() {
137
- return setFullScreen(!fullScreen);
138
- },
139
142
  className: _SliderModule.default.image,
140
143
  style: {
141
- backgroundImage: fullScreen || imageIndex >= index - _Slider.PRELOAD_IMAGES && imageIndex <= index + _Slider.PRELOAD_IMAGES ? "url(".concat(image, ")") : undefined,
144
+ backgroundImage: replay || imageIndex >= Math.abs(index) - _Slider.PRELOAD_IMAGES && imageIndex <= Math.abs(index) + _Slider.PRELOAD_IMAGES ? "url(".concat(image, ")") : undefined,
142
145
  height: height,
143
146
  width: width
144
147
  }
@@ -147,44 +150,42 @@ var Slider = function Slider(_ref) {
147
150
  }, /*#__PURE__*/_react.default.createElement(_primitives.Text, {
148
151
  bold: true,
149
152
  small: true,
150
- className: _SliderModule.default.text
153
+ className: [_SliderModule.default.overlay, _SliderModule.default.text]
151
154
  }, captions[imageIndex])));
152
- })), !fullScreen && /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
155
+ })), hasImages && /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
153
156
  onPress: function onPress() {
154
- return setIndex(index + 1);
157
+ return handleIndex(index + 1);
155
158
  },
156
- className: (0, _helpers.styles)(_SliderModule.default.button, (index >= images.length - 1 || isDesktop && !focus) && _SliderModule.default.hide && _SliderModule.default.hide, _SliderModule.default.forward)
159
+ className: (0, _helpers.styles)(_SliderModule.default.button, ((defaultDirection ? replay ? false : isEnd : index === 0) || isDesktop && !focus) && _SliderModule.default.hide, _SliderModule.default.second)
157
160
  }, /*#__PURE__*/_react.default.createElement(_primitives.Icon, {
158
- value: _primitives.ICON.RIGHT
159
- })), fullScreen && /*#__PURE__*/_react.default.createElement(_primitives.ScrollView, {
160
- horizontal: true,
161
- snap: true,
162
- className: _SliderModule.default.thumbnails
163
- }, images.map(function (image, imageIndex) {
164
- return /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
165
- key: imageIndex,
166
- onPress: function onPress() {
167
- return setIndex(imageIndex);
168
- },
169
- className: (0, _helpers.styles)(_SliderModule.default.thumbnail, index === imageIndex && _SliderModule.default.active),
170
- style: {
171
- backgroundImage: "url(".concat(thumbnails[imageIndex] || image, ")")
172
- }
173
- });
174
- })));
161
+ value: replay && defaultDirection && index === images.length - 1 ? _primitives.ICON.REPLAY : _primitives.ICON.RIGHT
162
+ })), hasImages && onCounter && /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
163
+ onPress: onCounter,
164
+ className: (0, _helpers.styles)(_SliderModule.default.overlay, _SliderModule.default.counter, !defaultDirection && _SliderModule.default.reverse)
165
+ }, /*#__PURE__*/_react.default.createElement(_primitives.Icon, {
166
+ action: true,
167
+ value: _primitives.ICON.PHOTO_LIBRARY
168
+ }), /*#__PURE__*/_react.default.createElement(_primitives.Text, {
169
+ bold: true,
170
+ small: true
171
+ }, images.length)), indicator && /*#__PURE__*/_react.default.createElement(_Progress.Progress, {
172
+ value: index * 100 / (images.length - 1),
173
+ className: (0, _helpers.styles)(_SliderModule.default.progress, index > 0 && _SliderModule.default.visible)
174
+ }));
175
175
  };
176
176
  exports.Slider = Slider;
177
177
  Slider.displayName = 'Component:Slider';
178
178
  Slider.propTypes = {
179
179
  auto: _propTypes.default.bool,
180
+ behavior: _propTypes.default.string,
180
181
  captions: _propTypes.default.arrayOf(_propTypes.default.string),
181
- fullScreen: _propTypes.default.bool,
182
182
  height: _propTypes.default.number.isRequired,
183
183
  images: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
184
184
  index: _propTypes.default.number,
185
- thumbnails: _propTypes.default.arrayOf(_propTypes.default.string),
185
+ indicator: _propTypes.default.bool,
186
+ replay: _propTypes.default.bool,
186
187
  width: _propTypes.default.number.isRequired,
187
188
  onChange: _propTypes.default.func,
188
- onFullScreen: _propTypes.default.func
189
+ onCounter: _propTypes.default.func
189
190
  };
190
191
  //# sourceMappingURL=Slider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","names":["interval","timeout","Slider","auto","captions","fullScreen","propFullScreen","height","propHeight","images","index","propIndex","thumbnails","width","propWidth","onChange","onFullScreen","others","useDevice","screenHeight","isDesktop","isLandscape","screenWidth","useState","focus","setFocus","setFullScreen","setIndex","useEffect","setInterval","length","clearInterval","handleScroll","x","clearTimeout","setTimeout","Math","round","getMotionExpand","undefined","styles","style","slider","className","button","hide","back","ICON","LEFT","floor","scrollView","map","image","imageIndex","item","backgroundImage","PRELOAD_IMAGES","caption","text","forward","RIGHT","thumbnail","active","displayName","propTypes","PropTypes","bool","arrayOf","string","number","isRequired","func"],"sources":["../../../src/components/Slider/Slider.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, ScrollView, Pressable, Text, View } from '../../primitives';\nimport { getMotionExpand } from './helpers';\nimport { PRELOAD_IMAGES } from './Slider.constants';\nimport style from './Slider.module.css';\n\nlet interval;\nlet timeout;\n\nconst Slider = ({\n auto = false,\n captions = [],\n fullScreen: propFullScreen = false,\n height: propHeight = 240,\n images = [],\n index: propIndex = 0,\n thumbnails = [],\n width: propWidth = 320,\n onChange = () => {},\n onFullScreen = () => {},\n ...others\n}) => {\n const { height: screenHeight, isDesktop, isLandscape, width: screenWidth } = useDevice();\n\n const [focus, setFocus] = useState(false);\n const [fullScreen, setFullScreen] = useState(propFullScreen);\n const [index, setIndex] = useState(propIndex);\n\n useEffect(() => {\n if (auto) interval = setInterval(() => setIndex(index < images.length - 1 ? index + 1 : 0), 2000);\n return () => clearInterval(interval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [auto, index]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => onChange(index), [index]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => onFullScreen(fullScreen), [fullScreen]);\n\n const height = fullScreen ? screenHeight * (isLandscape ? 0.9 : 0.4) : propHeight;\n\n const width = fullScreen ? screenWidth * (isLandscape ? 0.85 : 0.9) : propWidth;\n\n const handleScroll = ({ x } = {}) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n setIndex(x < width ? 0 : Math.round(x / width));\n }, getMotionExpand());\n };\n\n return (\n <View\n {...others}\n role=\"slider\"\n onMouseEnter={isDesktop ? () => setFocus(true) : undefined}\n onMouseLeave={isDesktop ? () => setFocus(false) : undefined}\n className={styles(style.slider, fullScreen && style.fullScreen, others.className)}\n style={{ ...(!fullScreen ? others.style : undefined), width: fullScreen ? screenWidth : width }}\n >\n {!fullScreen && (\n <Pressable\n onPress={() => setIndex(index - 1)}\n className={styles(style.button, (index <= 0 || (isDesktop && !focus)) && style.hide, style.back)}\n >\n <Icon value={ICON.LEFT} />\n </Pressable>\n )}\n\n <ScrollView\n horizontal\n scrollTo={index * Math.floor(width)}\n snap\n width={width}\n onScroll={handleScroll}\n className={style.scrollView}\n >\n {images.map((image, imageIndex) => (\n <View key={imageIndex} className={style.item}>\n <View\n role=\"image\"\n onClick={() => setFullScreen(!fullScreen)}\n className={style.image}\n style={{\n backgroundImage:\n fullScreen || (imageIndex >= index - PRELOAD_IMAGES && imageIndex <= index + PRELOAD_IMAGES)\n ? `url(${image})`\n : undefined,\n height,\n width,\n }}\n />\n {captions[imageIndex] && (\n <View className={style.caption}>\n <Text bold small className={style.text}>\n {captions[imageIndex]}\n </Text>\n </View>\n )}\n </View>\n ))}\n </ScrollView>\n\n {!fullScreen && (\n <Pressable\n onPress={() => setIndex(index + 1)}\n className={styles(\n style.button,\n (index >= images.length - 1 || (isDesktop && !focus)) && style.hide && style.hide,\n style.forward,\n )}\n >\n <Icon value={ICON.RIGHT} />\n </Pressable>\n )}\n\n {fullScreen && (\n <ScrollView horizontal snap className={style.thumbnails}>\n {images.map((image, imageIndex) => (\n <Pressable\n key={imageIndex}\n onPress={() => setIndex(imageIndex)}\n className={styles(style.thumbnail, index === imageIndex && style.active)}\n style={{ backgroundImage: `url(${thumbnails[imageIndex] || image})` }}\n />\n ))}\n </ScrollView>\n )}\n </View>\n );\n};\n\nSlider.displayName = 'Component:Slider';\n\nSlider.propTypes = {\n auto: PropTypes.bool,\n captions: PropTypes.arrayOf(PropTypes.string),\n fullScreen: PropTypes.bool,\n height: PropTypes.number.isRequired,\n images: PropTypes.arrayOf(PropTypes.string).isRequired,\n index: PropTypes.number,\n thumbnails: PropTypes.arrayOf(PropTypes.string),\n width: PropTypes.number.isRequired,\n onChange: PropTypes.func,\n onFullScreen: PropTypes.func,\n};\n\nexport { Slider };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Slider.js","names":["interval","timeout","Slider","auto","behavior","captions","height","propHeight","images","index","propIndex","indicator","replay","width","propWidth","onChange","onCounter","others","useDevice","isDesktop","useState","disabledScroll","setDisabledScroll","focus","setFocus","setIndex","useEffect","setInterval","length","clearInterval","clearTimeout","setTimeout","SCROLL_DELAY","handleIndex","nextIndex","Math","abs","defaultDirection","handleScroll","x","round","Theme","getDirection","DIRECTION_TYPE","LEFT","hasImages","isEnd","undefined","styles","style","container","className","button","hide","first","ICON","REPLAY","floor","scrollView","map","image","imageIndex","item","backgroundImage","PRELOAD_IMAGES","caption","overlay","text","second","RIGHT","counter","reverse","PHOTO_LIBRARY","progress","visible","displayName","propTypes","PropTypes","bool","string","arrayOf","number","isRequired","func"],"sources":["../../../src/components/Slider/Slider.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, ScrollView, Pressable, Text, View } from '../../primitives';\nimport { DIRECTION_TYPE, Theme } from '../../theme';\nimport { Progress } from '../Progress';\nimport { PRELOAD_IMAGES, SCROLL_DELAY } from './Slider.constants';\nimport style from './Slider.module.css';\n\nlet interval;\nlet timeout;\n\nconst Slider = ({\n auto = false,\n behavior = 'smooth',\n captions = [],\n height: propHeight = 240,\n images = [],\n index: propIndex = 0,\n indicator = false,\n replay = true,\n width: propWidth = 320,\n onChange = () => {},\n onCounter,\n ...others\n}) => {\n const { isDesktop } = useDevice();\n\n const [disabledScroll, setDisabledScroll] = useState(true);\n const [focus, setFocus] = useState(false);\n const [index, setIndex] = useState(propIndex);\n\n useEffect(() => {\n if (auto) interval = setInterval(() => setIndex(index < images.length - 1 ? index + 1 : 0), 2000);\n return () => clearInterval(interval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [auto, index]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n clearTimeout(timeout);\n timeout = setTimeout(() => setDisabledScroll(false), SCROLL_DELAY);\n\n onChange(index);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [index]);\n\n const height = propHeight;\n\n const width = propWidth;\n\n const handleIndex = (nextIndex) => {\n setDisabledScroll(true);\n setIndex(Math.abs(nextIndex) === images.length ? 0 : Math.abs(nextIndex) * (defaultDirection ? 1 : -1));\n };\n\n const handleScroll = ({ x } = {}) => {\n const nextIndex = x < width ? 0 : Math.round(x / width);\n\n if (nextIndex !== index) setIndex(nextIndex);\n };\n\n const defaultDirection = Theme.getDirection() === DIRECTION_TYPE.LEFT;\n const hasImages = images.length > 1;\n const isEnd = Math.abs(index) >= images.length - 1;\n\n return (\n <View\n {...others}\n role=\"slider\"\n onMouseEnter={isDesktop ? () => setFocus(true) : undefined}\n onMouseLeave={isDesktop ? () => setFocus(false) : undefined}\n className={styles(style.container, others.className)}\n style={{ ...others.style, width }}\n >\n {hasImages && (\n <Pressable\n onPress={() => handleIndex(index - 1)}\n className={styles(\n style.button,\n ((defaultDirection ? index <= 0 : replay ? false : isEnd) || (isDesktop && !focus)) && style.hide,\n style.first,\n )}\n >\n <Icon value={replay && !defaultDirection && isEnd ? ICON.REPLAY : ICON.LEFT} />\n </Pressable>\n )}\n\n <ScrollView\n behavior={behavior}\n horizontal\n scrollEventThrottle={SCROLL_DELAY}\n scrollTo={index * Math.floor(width)}\n snap\n width={width}\n onScroll={disabledScroll ? undefined : handleScroll}\n className={style.scrollView}\n >\n {images.map((image, imageIndex) => (\n <View key={imageIndex} className={style.item}>\n <View\n role=\"image\"\n className={style.image}\n style={{\n backgroundImage:\n replay ||\n (imageIndex >= Math.abs(index) - PRELOAD_IMAGES && imageIndex <= Math.abs(index) + PRELOAD_IMAGES)\n ? `url(${image})`\n : undefined,\n height,\n width,\n }}\n />\n {captions[imageIndex] && (\n <View className={style.caption}>\n <Text bold small className={[style.overlay, style.text]}>\n {captions[imageIndex]}\n </Text>\n </View>\n )}\n </View>\n ))}\n </ScrollView>\n\n {hasImages && (\n <Pressable\n onPress={() => handleIndex(index + 1)}\n className={styles(\n style.button,\n ((defaultDirection ? (replay ? false : isEnd) : index === 0) || (isDesktop && !focus)) && style.hide,\n style.second,\n )}\n >\n <Icon value={replay && defaultDirection && index === images.length - 1 ? ICON.REPLAY : ICON.RIGHT} />\n </Pressable>\n )}\n\n {hasImages && onCounter && (\n <Pressable\n onPress={onCounter}\n className={styles(style.overlay, style.counter, !defaultDirection && style.reverse)}\n >\n <Icon action value={ICON.PHOTO_LIBRARY} />\n <Text bold small>\n {images.length}\n </Text>\n </Pressable>\n )}\n\n {indicator && (\n <Progress\n value={(index * 100) / (images.length - 1)}\n className={styles(style.progress, index > 0 && style.visible)}\n />\n )}\n </View>\n );\n};\n\nSlider.displayName = 'Component:Slider';\n\nSlider.propTypes = {\n auto: PropTypes.bool,\n behavior: PropTypes.string,\n captions: PropTypes.arrayOf(PropTypes.string),\n height: PropTypes.number.isRequired,\n images: PropTypes.arrayOf(PropTypes.string).isRequired,\n index: PropTypes.number,\n indicator: PropTypes.bool,\n replay: PropTypes.bool,\n width: PropTypes.number.isRequired,\n onChange: PropTypes.func,\n onCounter: PropTypes.func,\n};\n\nexport { Slider };\n"],"mappings":"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"}
@@ -1,24 +1,15 @@
1
- .slider {
1
+ .container {
2
2
  align-items: center;
3
3
  justify-content: center;
4
4
  overflow: hidden;
5
5
  position: relative;
6
6
  }
7
7
 
8
- .slider.fullScreen {
9
- background-color: var(--mirai-ui-slider-background);
10
- height: 100vh;
11
- justify-content: center;
12
- left: 0;
13
- position: fixed;
14
- top: 0;
15
- width: 100vw;
16
- }
17
-
18
8
  .button {
19
9
  align-items: center;
20
- background-color: var(--mirai-ui-slider-overlay);
10
+ background-color: var(--mirai-ui-slider-button);
21
11
  border-radius: 50%;
12
+ box-shadow: var(--mirai-ui-modal-shadow);
22
13
  display: flex;
23
14
  height: var(--mirai-ui-button-squared);
24
15
  justify-content: center;
@@ -33,20 +24,16 @@
33
24
  transform: scale(0);
34
25
  }
35
26
 
36
- .button > * {
37
- color: var(--mirai-ui-slider-color);
38
- }
39
-
40
- .button.back {
41
- left: var(--mirai-ui-space-M);
27
+ .button > [data-role='icon'] {
28
+ color: var(--mirai-ui-slider-button-icon);
42
29
  }
43
30
 
44
- .button.forward {
45
- right: var(--mirai-ui-space-M);
31
+ .button.first {
32
+ left: var(--mirai-ui-space-S);
46
33
  }
47
34
 
48
- .fullScreen .scrollView {
49
- gap: var(--mirai-ui-space-M);
35
+ .button.second {
36
+ right: var(--mirai-ui-space-S);
50
37
  }
51
38
 
52
39
  .item {
@@ -54,17 +41,13 @@
54
41
  }
55
42
 
56
43
  .item .image {
57
- background-color: var(--mirai-ui-content-background);
44
+ background-color: var(--mirai-ui-content-border);
45
+ background-position: center;
58
46
  background-size: cover;
59
- cursor: pointer;
60
47
  height: 100%;
61
48
  width: 100%;
62
49
  }
63
50
 
64
- .fullScreen .item .image {
65
- border-radius: var(--mirai-ui-slider-border-radius);
66
- }
67
-
68
51
  .item .caption {
69
52
  align-items: center;
70
53
  bottom: var(--mirai-ui-space-S);
@@ -74,45 +57,65 @@
74
57
  }
75
58
 
76
59
  .item .caption .text {
77
- background-color: var(--mirai-ui-slider-overlay);
78
- border-radius: var(--mirai-ui-slider-border-radius);
79
- color: var(--mirai-ui-slider-color);
80
- padding: calc(var(--mirai-ui-space-XS) / 2) var(--mirai-ui-space-XS);
60
+ color: var(--mirai-ui-slider-overlay-color);
61
+ }
62
+
63
+ .counter {
64
+ align-items: center;
65
+ bottom: var(--mirai-ui-space-S);
66
+ display: flex;
67
+ flex-direction: row;
68
+ gap: var(--mirai-ui-space-XXS);
69
+ position: absolute;
81
70
  }
82
71
 
83
- .thumbnails {
84
- margin-top: var(--mirai-ui-space-S);
85
- gap: var(--mirai-ui-space-S);
86
- max-width: 90vw;
72
+ .counter:not(.reverse) {
73
+ right: var(--mirai-ui-space-S);
87
74
  }
88
75
 
89
- .thumbnail {
90
- background-size: cover;
76
+ .counter.reverse {
77
+ left: var(--mirai-ui-space-S);
78
+ }
79
+
80
+ .counter [data-role] {
81
+ color: var(--mirai-ui-slider-color);
82
+ }
83
+
84
+ .overlay {
85
+ background-color: var(--mirai-ui-slider-overlay);
91
86
  border-radius: var(--mirai-ui-slider-border-radius);
92
- min-height: var(--mirai-ui-space-XL);
93
- opacity: 0.66;
94
- transition: all var(--mirai-ui-motion-collapse) var(--mirai-ui-motion-easing);
95
- width: var(--mirai-ui-space-XXL);
96
- min-width: var(--mirai-ui-space-XXL);
87
+ padding: var(--mirai-ui-space-XXS) var(--mirai-ui-space-XS);
88
+ }
89
+
90
+ .overlay [data-role] {
91
+ color: var(--mirai-ui-slider-overlay-color);
97
92
  }
98
93
 
99
- .thumbnail:hover {
100
- opacity: 1;
94
+ .progress {
95
+ background-color: var(--mirai-ui-slider-overlay);
96
+ bottom: 0;
97
+ height: 0;
98
+ left: 0;
99
+ position: absolute;
100
+ right: 0;
101
101
  }
102
102
 
103
- .thumbnail.active {
104
- box-shadow: inset 0 0 0 2px var(--mirai-ui-slider-color);
105
- opacity: 1;
103
+ .progress.visible {
104
+ height: calc(var(--mirai-ui-space-XS) / 1);
106
105
  }
107
106
 
108
107
  /* S */
109
108
  @media only screen and (max-width: 430px) {
110
- .thumbnails {
111
- position: absolute;
112
- bottom: var(--mirai-ui-space-M);
113
- }
114
109
  }
115
110
 
116
111
  /* M & L */
117
112
  @media only screen and (min-width: 431px) {
113
+ .item .caption {
114
+ transition: opacity var(--mirai-ui-motion-collapse) var(--mirai-ui-motion-easing);
115
+ opacity: 0;
116
+ }
117
+
118
+ .item:hover .caption {
119
+ opacity: 1;
120
+ }
118
121
  }
@@ -22,12 +22,12 @@ var Story = function Story(props) {
22
22
  }
23
23
  return (_console = console).log.apply(_console, ['onChange'].concat(params));
24
24
  },
25
- onFullScreen: function onFullScreen() {
25
+ onCounter: function onCounter() {
26
26
  var _console2;
27
27
  for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
28
28
  params[_key2] = arguments[_key2];
29
29
  }
30
- return (_console2 = console).log.apply(_console2, ['onFullScreen'].concat(params));
30
+ return (_console2 = console).log.apply(_console2, ['onCounter'].concat(params));
31
31
  }
32
32
  }));
33
33
  };
@@ -35,17 +35,20 @@ exports.Story = Story;
35
35
  Story.storyName = 'Slider';
36
36
  Story.args = {
37
37
  auto: false,
38
+ behavior: 'smooth',
38
39
  captions: ['javi', 'jose', undefined, 'victor', 'svet', 'mario2'],
39
- height: 200,
40
- index: 1,
40
+ height: 208,
41
41
  images: ['https://picsum.photos/seed/@soyjavi/1024/768', 'https://picsum.photos/seed/@jose/1024/768', 'https://picsum.photos/seed/@mario1/1024/768', 'https://picsum.photos/seed/@victor/1024/768', 'https://picsum.photos/seed/@svet/1024/768', 'https://picsum.photos/seed/@mario2/1024/768', 'https://picsum.photos/seed/1/1024/768', 'https://picsum.photos/seed/2/1024/768', 'https://picsum.photos/seed/3/1024/768', 'https://picsum.photos/seed/4/1024/768', 'https://picsum.photos/seed/5/1024/768', 'https://picsum.photos/seed/6/1024/768', 'https://picsum.photos/seed/7/1024/768', 'https://picsum.photos/seed/8/1024/768', 'https://picsum.photos/seed/9/1024/768', 'https://picsum.photos/seed/10/1024/768', 'https://picsum.photos/seed/11/1024/768', 'https://picsum.photos/seed/12/1024/768'],
42
42
  fullScreen: false,
43
43
  thumbnails: ['https://picsum.photos/seed/@soyjavi/128/128', 'https://picsum.photos/seed/@jose/128/128', 'https://picsum.photos/seed/@mario1/128/128', 'https://picsum.photos/seed/@victor/128/128', 'https://picsum.photos/seed/@svet/128/128', 'https://picsum.photos/seed/@mario2/128/128', 'https://picsum.photos/seed/1/128/128', 'https://picsum.photos/seed/2/128/128', 'https://picsum.photos/seed/3/128/128', 'https://picsum.photos/seed/4/128/128', 'https://picsum.photos/seed/5/128/128', 'https://picsum.photos/seed/6/128/128', 'https://picsum.photos/seed/7/128/128', 'https://picsum.photos/seed/8/128/128', 'https://picsum.photos/seed/9/128/128', 'https://picsum.photos/seed/10/128/128', 'https://picsum.photos/seed/11/128/128', 'https://picsum.photos/seed/12/128/128'],
44
- width: 320,
44
+ index: 0,
45
+ indicator: true,
46
+ replay: true,
47
+ width: 408,
45
48
  // inherited properties
46
49
  testId: 'test-story',
47
50
  style: {
48
- borderRadius: 16
51
+ borderRadius: 2
49
52
  }
50
53
  };
51
54
  Story.argTypes = {};