rsuite 5.75.0 → 5.76.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/Image/package.json +7 -0
  3. package/Image/styles/index.css +33 -0
  4. package/Image/styles/index.less +34 -0
  5. package/cjs/Carousel/Carousel.js +1 -0
  6. package/cjs/CustomProvider/CustomProvider.d.ts +13 -15
  7. package/cjs/CustomProvider/CustomProvider.js +6 -4
  8. package/cjs/CustomProvider/types.d.ts +2 -0
  9. package/cjs/Image/Image.d.ts +42 -0
  10. package/cjs/Image/Image.js +102 -0
  11. package/cjs/Image/ImageWrapper.d.ts +1 -0
  12. package/cjs/Image/ImageWrapper.js +10 -0
  13. package/cjs/Image/hooks/useImage.d.ts +14 -0
  14. package/cjs/Image/hooks/useImage.js +68 -0
  15. package/cjs/Image/index.d.ts +3 -0
  16. package/cjs/Image/index.js +8 -0
  17. package/cjs/index.d.ts +2 -0
  18. package/cjs/index.js +4 -2
  19. package/cjs/internals/utils/getDOMNode.js +2 -1
  20. package/cjs/internals/utils/index.d.ts +0 -1
  21. package/cjs/internals/utils/index.js +1 -4
  22. package/cjs/toaster/ToastContainer.d.ts +6 -6
  23. package/cjs/toaster/ToastContainer.js +48 -38
  24. package/cjs/toaster/render.d.ts +3 -0
  25. package/cjs/toaster/render.js +43 -0
  26. package/cjs/toaster/toaster.js +33 -20
  27. package/cjs/useToaster/useToaster.js +10 -5
  28. package/dist/rsuite-no-reset-rtl.css +34 -0
  29. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  30. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  31. package/dist/rsuite-no-reset.css +34 -0
  32. package/dist/rsuite-no-reset.min.css +1 -1
  33. package/dist/rsuite-no-reset.min.css.map +1 -1
  34. package/dist/rsuite-rtl.css +34 -0
  35. package/dist/rsuite-rtl.min.css +1 -1
  36. package/dist/rsuite-rtl.min.css.map +1 -1
  37. package/dist/rsuite.css +34 -0
  38. package/dist/rsuite.js +63 -19
  39. package/dist/rsuite.js.map +1 -1
  40. package/dist/rsuite.min.css +1 -1
  41. package/dist/rsuite.min.css.map +1 -1
  42. package/dist/rsuite.min.js +1 -1
  43. package/dist/rsuite.min.js.map +1 -1
  44. package/esm/Carousel/Carousel.js +1 -0
  45. package/esm/CustomProvider/CustomProvider.d.ts +13 -15
  46. package/esm/CustomProvider/CustomProvider.js +7 -5
  47. package/esm/CustomProvider/types.d.ts +2 -0
  48. package/esm/Image/Image.d.ts +42 -0
  49. package/esm/Image/Image.js +97 -0
  50. package/esm/Image/ImageWrapper.d.ts +1 -0
  51. package/esm/Image/ImageWrapper.js +6 -0
  52. package/esm/Image/hooks/useImage.d.ts +14 -0
  53. package/esm/Image/hooks/useImage.js +63 -0
  54. package/esm/Image/index.d.ts +3 -0
  55. package/esm/Image/index.js +3 -0
  56. package/esm/index.d.ts +2 -0
  57. package/esm/index.js +1 -0
  58. package/esm/internals/utils/getDOMNode.js +2 -1
  59. package/esm/internals/utils/index.d.ts +0 -1
  60. package/esm/internals/utils/index.js +0 -1
  61. package/esm/toaster/ToastContainer.d.ts +6 -6
  62. package/esm/toaster/ToastContainer.js +49 -39
  63. package/esm/toaster/render.d.ts +3 -0
  64. package/esm/toaster/render.js +35 -0
  65. package/esm/toaster/toaster.js +31 -20
  66. package/esm/useToaster/useToaster.js +10 -5
  67. package/package.json +1 -1
  68. package/styles/index.less +1 -0
@@ -3,22 +3,25 @@
3
3
 
4
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
5
  exports.__esModule = true;
6
- exports.toastPlacements = exports.default = void 0;
6
+ exports.toastPlacements = exports.defaultToasterContainer = exports.default = void 0;
7
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
8
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
7
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
8
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
11
  var _react = _interopRequireWildcard(require("react"));
10
- var _reactDom = require("react-dom");
11
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
13
  var _kebabCase = _interopRequireDefault(require("lodash/kebabCase"));
13
14
  var _Transition = _interopRequireDefault(require("../Animation/Transition"));
14
15
  var _hooks = require("../internals/hooks");
15
16
  var _utils = require("../internals/utils");
16
17
  var _ToastContext = _interopRequireDefault(require("./ToastContext"));
17
- var _excluded = ["as", "className", "classPrefix", "placement", "callback"],
18
+ var _render = require("./render");
19
+ var _excluded = ["as", "className", "classPrefix", "placement"],
18
20
  _excluded2 = ["className"],
19
21
  _excluded3 = ["container"];
20
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
23
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
+ var defaultToasterContainer = exports.defaultToasterContainer = document.body;
22
25
  var toastPlacements = exports.toastPlacements = ['topCenter', 'bottomCenter', 'topStart', 'topEnd', 'bottomStart', 'bottomEnd'];
23
26
  var useMessages = function useMessages() {
24
27
  var _useState = (0, _react.useState)([]),
@@ -87,7 +90,6 @@ var useMessages = function useMessages() {
87
90
  };
88
91
  };
89
92
  var ToastContainer = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
90
- var rootRef = (0, _react.useRef)();
91
93
  var _props$as = props.as,
92
94
  Component = _props$as === void 0 ? 'div' : _props$as,
93
95
  className = props.className,
@@ -95,7 +97,6 @@ var ToastContainer = /*#__PURE__*/_react.default.forwardRef(function (props, ref
95
97
  classPrefix = _props$classPrefix === void 0 ? 'toast-container' : _props$classPrefix,
96
98
  _props$placement = props.placement,
97
99
  placement = _props$placement === void 0 ? 'topCenter' : _props$placement,
98
- callback = props.callback,
99
100
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
100
101
  var _useClassNames = (0, _hooks.useClassNames)(classPrefix),
101
102
  withClassPrefix = _useClassNames.withClassPrefix,
@@ -109,7 +110,6 @@ var ToastContainer = /*#__PURE__*/_react.default.forwardRef(function (props, ref
109
110
  messages = _useMessages.messages;
110
111
  (0, _react.useImperativeHandle)(ref, function () {
111
112
  return {
112
- root: rootRef.current,
113
113
  push: push,
114
114
  clear: clear,
115
115
  remove: remove
@@ -118,9 +118,15 @@ var ToastContainer = /*#__PURE__*/_react.default.forwardRef(function (props, ref
118
118
  var elements = messages.map(function (item) {
119
119
  var mouseReset = item.mouseReset,
120
120
  duration = item.duration,
121
- node = item.node,
122
- container = item.container;
123
- var toastWithTransition = /*#__PURE__*/_react.default.createElement(_Transition.default, {
121
+ node = item.node;
122
+ return /*#__PURE__*/_react.default.createElement(_ToastContext.default.Provider, {
123
+ value: {
124
+ usedToaster: true,
125
+ mouseReset: mouseReset,
126
+ duration: duration
127
+ },
128
+ key: item.key
129
+ }, /*#__PURE__*/_react.default.createElement(_Transition.default, {
124
130
  in: item.visible,
125
131
  exitedClassName: rootPrefix('toast-fade-exited'),
126
132
  exitingClassName: rootPrefix('toast-fade-exiting'),
@@ -139,40 +145,44 @@ var ToastContainer = /*#__PURE__*/_react.default.forwardRef(function (props, ref
139
145
  }),
140
146
  className: merge(rootPrefix('toast'), (_node$props2 = node.props) === null || _node$props2 === void 0 ? void 0 : _node$props2.className, transitionClassName)
141
147
  }));
142
- });
143
- return /*#__PURE__*/_react.default.createElement(_ToastContext.default.Provider, {
144
- value: {
145
- usedToaster: true,
146
- mouseReset: mouseReset,
147
- duration: duration
148
- },
149
- key: item.key
150
- }, container ? /*#__PURE__*/(0, _reactDom.createPortal)(toastWithTransition, typeof container === 'function' ? container() : container) : toastWithTransition);
148
+ }));
151
149
  });
152
150
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
153
- ref: function ref(selfRef) {
154
- rootRef.current = selfRef;
155
- callback === null || callback === void 0 || callback(selfRef);
156
- },
157
151
  className: classes
158
152
  }), elements);
159
153
  });
160
- ToastContainer.getInstance = function (props) {
161
- var container = props.container,
162
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded3);
163
- var containerRef = /*#__PURE__*/_react.default.createRef();
164
- var containerElement = (typeof container === 'function' ? container() : container) || document.body;
165
- return new Promise(function (resolve) {
166
- var renderCallback = function renderCallback() {
167
- resolve([containerRef, unmount]);
168
- };
169
- var _render = (0, _utils.render)(/*#__PURE__*/_react.default.createElement(ToastContainer, (0, _extends2.default)({}, rest, {
170
- ref: containerRef,
171
- callback: renderCallback
172
- })), containerElement),
173
- unmount = _render.unmount;
174
- });
175
- };
154
+ ToastContainer.getInstance = /*#__PURE__*/function () {
155
+ var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(props) {
156
+ var container, rest, getRefResolve, getRefPromise, containerRef, containerId;
157
+ return _regenerator.default.wrap(function _callee$(_context) {
158
+ while (1) switch (_context.prev = _context.next) {
159
+ case 0:
160
+ container = props.container, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded3);
161
+ getRefResolve = null;
162
+ getRefPromise = new Promise(function (res) {
163
+ getRefResolve = res;
164
+ });
165
+ containerRef = /*#__PURE__*/_react.default.createRef(); // promise containerId & containerRef all have value
166
+ containerId = (0, _render.render)(/*#__PURE__*/_react.default.createElement(ToastContainer, (0, _extends2.default)({}, rest, {
167
+ ref: function ref(_ref3) {
168
+ containerRef.current = _ref3;
169
+ getRefResolve && getRefResolve();
170
+ }
171
+ })), container);
172
+ _context.next = 7;
173
+ return getRefPromise;
174
+ case 7:
175
+ return _context.abrupt("return", [containerRef, containerId]);
176
+ case 8:
177
+ case "end":
178
+ return _context.stop();
179
+ }
180
+ }, _callee);
181
+ }));
182
+ return function (_x) {
183
+ return _ref2.apply(this, arguments);
184
+ };
185
+ }();
176
186
  ToastContainer.displayName = 'ToastContainer';
177
187
  ToastContainer.propTypes = {
178
188
  className: _propTypes.default.string,
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const toasterKeyOfContainerElement = "toasterId";
3
+ export declare function render(element: React.ReactElement<any>, container: HTMLElement): string;
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.render = render;
7
+ exports.toasterKeyOfContainerElement = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _utils = require("../internals/utils");
10
+ var ReactDOM = _interopRequireWildcard(require("react-dom"));
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ var majorVersion = parseInt(_react.default.version);
14
+ var SuperposedReactDOM = ReactDOM;
15
+ var toasterKeyOfContainerElement = exports.toasterKeyOfContainerElement = 'toasterId';
16
+ function render(element, container) {
17
+ var mountElement = document.createElement('div');
18
+ mountElement.className = 'rs-toaster-mount-element';
19
+ var containerElement = container;
20
+
21
+ // Add the detached element to the root
22
+ containerElement.appendChild(mountElement);
23
+ var newContainerId = (0, _utils.guid)();
24
+ if (!containerElement[toasterKeyOfContainerElement]) {
25
+ // attach the containerId to the containerElement
26
+ containerElement[toasterKeyOfContainerElement] = newContainerId;
27
+ }
28
+ if (majorVersion >= 18) {
29
+ /**
30
+ * ignore react 18 warnings
31
+ * Warning: You are importing createRoot from "react-dom" which is not supported. You should instead import it from "react-dom/client".
32
+ */
33
+ ReactDOM['__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED'].usingClientEntryPoint = true;
34
+ var createRoot = SuperposedReactDOM.createRoot;
35
+ var root = createRoot(mountElement, {
36
+ identifierPrefix: 'rs-root-'
37
+ });
38
+ root.render(element);
39
+ } else {
40
+ SuperposedReactDOM.render(element, mountElement);
41
+ }
42
+ return containerElement[toasterKeyOfContainerElement];
43
+ }
@@ -5,17 +5,20 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  exports.__esModule = true;
6
6
  exports.default = void 0;
7
7
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _ToastContainer = _interopRequireDefault(require("./ToastContainer"));
11
- var _excluded = ["placement"];
12
- var defaultContainerId = 'default';
11
+ var _ToastContainer = _interopRequireWildcard(require("./ToastContainer"));
12
+ var _render = require("./render");
13
+ var _excluded = ["placement", "container"];
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
16
  var containers = new Map();
14
17
 
15
18
  /**
16
- * Create a container by Id.
17
- * @param containerId
18
- * @param options
19
+ * Create a container instance.
20
+ * @param placement
21
+ * @param props
19
22
  */
20
23
  function createContainer(_x, _x2) {
21
24
  return _createContainer.apply(this, arguments);
@@ -23,10 +26,11 @@ function createContainer(_x, _x2) {
23
26
  /**
24
27
  * Get the container by ID. Use default ID when ID is not available.
25
28
  * @param containerId
29
+ * @param placement
26
30
  */
27
31
  function _createContainer() {
28
- _createContainer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(containerId, props) {
29
- var _yield$ToastContainer, container;
32
+ _createContainer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(placement, props) {
33
+ var _yield$ToastContainer, container, containerId;
30
34
  return _regenerator.default.wrap(function _callee$(_context) {
31
35
  while (1) switch (_context.prev = _context.next) {
32
36
  case 0:
@@ -35,9 +39,10 @@ function _createContainer() {
35
39
  case 2:
36
40
  _yield$ToastContainer = _context.sent;
37
41
  container = _yield$ToastContainer[0];
38
- containers.set(containerId || defaultContainerId, container);
42
+ containerId = _yield$ToastContainer[1];
43
+ containers.set(containerId + "_" + placement, container);
39
44
  return _context.abrupt("return", container);
40
- case 6:
45
+ case 7:
41
46
  case "end":
42
47
  return _context.stop();
43
48
  }
@@ -45,11 +50,8 @@ function _createContainer() {
45
50
  }));
46
51
  return _createContainer.apply(this, arguments);
47
52
  }
48
- function getContainer(containerId) {
49
- if (containers.size == 0) {
50
- return null;
51
- }
52
- return containers.get(containerId || defaultContainerId);
53
+ function getContainer(containerId, placement) {
54
+ return containers.get(containerId + "_" + placement);
53
55
  }
54
56
  var _toaster = function toaster(message) {
55
57
  return _toaster.push(message);
@@ -59,13 +61,24 @@ _toaster.push = function (message, options) {
59
61
  options = {};
60
62
  }
61
63
  var _options = options,
62
- containerId = _options.placement,
64
+ _options$placement = _options.placement,
65
+ placement = _options$placement === void 0 ? 'topCenter' : _options$placement,
66
+ container = _options.container,
63
67
  restOptions = (0, _objectWithoutPropertiesLoose2.default)(_options, _excluded);
64
- var container = getContainer(containerId);
65
- if (container !== null && container !== void 0 && container.current) {
66
- return container.current.push(message, restOptions);
68
+ var containerElement = (typeof container === 'function' ? container() : container) || _ToastContainer.defaultToasterContainer;
69
+ var containerElementId = containerElement[_render.toasterKeyOfContainerElement];
70
+ if (containerElementId) {
71
+ var existedContainer = getContainer(containerElementId, placement);
72
+ if (existedContainer) {
73
+ var _existedContainer$cur;
74
+ return (_existedContainer$cur = existedContainer.current) === null || _existedContainer$cur === void 0 ? void 0 : _existedContainer$cur.push(message, restOptions);
75
+ }
67
76
  }
68
- return createContainer(containerId !== null && containerId !== void 0 ? containerId : '', options).then(function (ref) {
77
+ var newOptions = (0, _extends2.default)({}, options, {
78
+ container: containerElement,
79
+ placement: placement
80
+ });
81
+ return createContainer(placement, newOptions).then(function (ref) {
69
82
  var _ref$current;
70
83
  return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.push(message, restOptions);
71
84
  });
@@ -19,7 +19,8 @@ var _CustomProvider = require("../CustomProvider/CustomProvider");
19
19
  */
20
20
  var useToaster = function useToaster() {
21
21
  var _useContext = (0, _react.useContext)(_CustomProvider.CustomContext),
22
- toasters = _useContext.toasters;
22
+ toasters = _useContext.toasters,
23
+ toastContainer = _useContext.toastContainer;
23
24
  return (0, _react.useMemo)(function () {
24
25
  return {
25
26
  /**
@@ -31,9 +32,13 @@ var useToaster = function useToaster() {
31
32
  * @returns The key of the toast message.
32
33
  */
33
34
  push: function push(message, options) {
34
- var _toasters$current;
35
- var customToaster = toasters === null || toasters === void 0 || (_toasters$current = toasters.current) === null || _toasters$current === void 0 ? void 0 : _toasters$current.get((options === null || options === void 0 ? void 0 : options.placement) || 'topCenter');
36
- return customToaster ? customToaster.push(message, options) : _toaster.default.push(message, options);
35
+ var container = (typeof (options === null || options === void 0 ? void 0 : options.container) === 'function' ? options === null || options === void 0 ? void 0 : options.container() : options === null || options === void 0 ? void 0 : options.container) || toastContainer;
36
+ if (container === toastContainer) {
37
+ var _toasters$current;
38
+ return toasters === null || toasters === void 0 || (_toasters$current = toasters.current) === null || _toasters$current === void 0 || (_toasters$current = _toasters$current.get((options === null || options === void 0 ? void 0 : options.placement) || 'topCenter')) === null || _toasters$current === void 0 ? void 0 : _toasters$current.push(message, options);
39
+ } else {
40
+ return _toaster.default.push(message, options);
41
+ }
37
42
  },
38
43
  /**
39
44
  * Remove a toast message.
@@ -55,6 +60,6 @@ var useToaster = function useToaster() {
55
60
  }) : _toaster.default.clear();
56
61
  }
57
62
  };
58
- }, [toasters]);
63
+ }, [toastContainer, toasters]);
59
64
  };
60
65
  var _default = exports.default = useToaster;
@@ -8254,6 +8254,40 @@ label:hover .rs-checkbox-control .rs-checkbox-inner::before {
8254
8254
  .rs-btn-icon-circle {
8255
8255
  border-radius: 50% !important;
8256
8256
  }
8257
+ .rs-image {
8258
+ --rs-object-fit: cover;
8259
+ --rs-object-position: initial;
8260
+ -o-object-fit: var(--rs-object-fit);
8261
+ object-fit: var(--rs-object-fit);
8262
+ -o-object-position: var(--rs-object-position);
8263
+ object-position: var(--rs-object-position);
8264
+ max-width: 100%;
8265
+ }
8266
+ .rs-image-rounded {
8267
+ border-radius: 6px;
8268
+ }
8269
+ .rs-image-circle {
8270
+ border-radius: 50%;
8271
+ }
8272
+ .rs-image-bordered {
8273
+ border: 1px solid #e5e5ea;
8274
+ border: 1px solid var(--rs-border-primary);
8275
+ }
8276
+ .rs-image-zoomed {
8277
+ -webkit-transition: -webkit-transform 0.3s ease-in-out;
8278
+ transition: -webkit-transform 0.3s ease-in-out;
8279
+ transition: transform 0.3s ease-in-out;
8280
+ transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
8281
+ cursor: pointer;
8282
+ }
8283
+ .rs-image-zoomed:hover {
8284
+ -webkit-transform: matrix(1.25, 0, 0, 1.25, 0, 0);
8285
+ transform: matrix(1.25, 0, 0, 1.25, 0, 0);
8286
+ }
8287
+ .rs-image-wrapper {
8288
+ position: relative;
8289
+ overflow: hidden;
8290
+ }
8257
8291
  .rs-input {
8258
8292
  display: block;
8259
8293
  width: 100%;