rsuite 5.26.1 → 5.28.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 (53) hide show
  1. package/Button/styles/index.less +12 -1
  2. package/CHANGELOG.md +21 -0
  3. package/cjs/Button/Button.d.ts +4 -0
  4. package/cjs/Button/Button.js +18 -9
  5. package/cjs/Message/Message.d.ts +4 -0
  6. package/cjs/Message/Message.js +8 -2
  7. package/cjs/Notification/Notification.d.ts +3 -0
  8. package/cjs/Notification/Notification.js +8 -2
  9. package/cjs/Picker/PickerToggleTrigger.js +1 -1
  10. package/cjs/Schema/Schema.d.ts +2 -1
  11. package/cjs/Schema/Schema.js +2 -1
  12. package/cjs/locales/hu_HU.d.ts +117 -0
  13. package/cjs/locales/hu_HU.js +89 -0
  14. package/cjs/locales/index.d.ts +1 -0
  15. package/cjs/locales/index.js +5 -1
  16. package/cjs/toaster/ToastContainer.d.ts +6 -1
  17. package/cjs/toaster/ToastContainer.js +12 -5
  18. package/cjs/toaster/ToastContext.d.ts +6 -0
  19. package/cjs/toaster/ToastContext.js +16 -0
  20. package/cjs/toaster/toaster.js +7 -5
  21. package/cjs/toaster/useToaster.js +1 -1
  22. package/dist/rsuite-rtl.css +38 -5
  23. package/dist/rsuite-rtl.min.css +1 -1
  24. package/dist/rsuite-rtl.min.css.map +1 -1
  25. package/dist/rsuite.css +38 -5
  26. package/dist/rsuite.js +21 -10
  27. package/dist/rsuite.js.map +1 -1
  28. package/dist/rsuite.min.css +1 -1
  29. package/dist/rsuite.min.css.map +1 -1
  30. package/dist/rsuite.min.js +1 -1
  31. package/dist/rsuite.min.js.map +1 -1
  32. package/esm/Button/Button.d.ts +4 -0
  33. package/esm/Button/Button.js +18 -9
  34. package/esm/Message/Message.d.ts +4 -0
  35. package/esm/Message/Message.js +8 -3
  36. package/esm/Notification/Notification.d.ts +3 -0
  37. package/esm/Notification/Notification.js +8 -3
  38. package/esm/Picker/PickerToggleTrigger.js +1 -1
  39. package/esm/Schema/Schema.d.ts +2 -1
  40. package/esm/Schema/Schema.js +3 -2
  41. package/esm/locales/hu_HU.d.ts +117 -0
  42. package/esm/locales/hu_HU.js +79 -0
  43. package/esm/locales/index.d.ts +1 -0
  44. package/esm/locales/index.js +1 -0
  45. package/esm/toaster/ToastContainer.d.ts +6 -1
  46. package/esm/toaster/ToastContainer.js +11 -5
  47. package/esm/toaster/ToastContext.d.ts +6 -0
  48. package/esm/toaster/ToastContext.js +6 -0
  49. package/esm/toaster/toaster.js +7 -5
  50. package/esm/toaster/useToaster.js +1 -1
  51. package/locales/hu_HU/package.json +7 -0
  52. package/package.json +2 -2
  53. package/styles/variables.less +3 -0
@@ -8,7 +8,8 @@
8
8
 
9
9
  // Default Button
10
10
  .rs-btn {
11
- display: inline-block;
11
+ display: inline-flex;
12
+ align-items: center;
12
13
  margin-bottom: 0; // For input.btn
13
14
  font-weight: @btn-font-weight;
14
15
  text-align: center;
@@ -52,6 +53,16 @@
52
53
  .with-ripple();
53
54
  }
54
55
 
56
+ .rs-btn-start-icon {
57
+ line-height: 0; // Eliminate whitespace
58
+ margin-right: @btn-icon-gap;
59
+ }
60
+
61
+ .rs-btn-end-icon {
62
+ line-height: 0; // Eliminate whitespace
63
+ margin-left: @btn-icon-gap;
64
+ }
65
+
55
66
  // Appearance variants
56
67
  // --------------------------------------------------
57
68
 
package/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ # [5.28.0](https://github.com/rsuite/rsuite/compare/v5.27.0...v5.28.0) (2023-02-24)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **DateRangePicker:** fix lifecycle for Picker Toggle ([#3074](https://github.com/rsuite/rsuite/issues/3074)) ([f46717b](https://github.com/rsuite/rsuite/commit/f46717b4b464513d64b226faba9a6d8bacc52678))
6
+
7
+ ### Features
8
+
9
+ - **i18n:** added Hungarian locale (hu_HU) ([#3075](https://github.com/rsuite/rsuite/issues/3075)) ([4df03c2](https://github.com/rsuite/rsuite/commit/4df03c24660dc6b09417c562da0e1ffe68103bad))
10
+
11
+ # [5.27.0](https://github.com/rsuite/rsuite/compare/v5.26.1...v5.27.0) (2023-02-17)
12
+
13
+ ### Bug Fixes
14
+
15
+ - **Message,Notification:** duration property migrated to `toaster.push` option ([#3065](https://github.com/rsuite/rsuite/issues/3065)) ([f18cc32](https://github.com/rsuite/rsuite/commit/f18cc32e4822fa3596b350efe0dc31f286b3918b))
16
+ - **Schema:** add missing Types.MixedType ([#3058](https://github.com/rsuite/rsuite/issues/3058)) ([b6c9654](https://github.com/rsuite/rsuite/commit/b6c965449f5eb1d13b72b02cfd16f454bc942c90))
17
+
18
+ ### Features
19
+
20
+ - **Button:** add startIcon and endIcon props ([#3067](https://github.com/rsuite/rsuite/issues/3067)) ([d3e967e](https://github.com/rsuite/rsuite/commit/d3e967e3be84ab6f76eb5a2415989a4f592c6674))
21
+
1
22
  ## [5.26.1](https://github.com/rsuite/rsuite/compare/v5.26.0...v5.26.1) (2023-02-09)
2
23
 
3
24
  ### Bug Fixes
@@ -21,6 +21,10 @@ export interface ButtonProps extends WithAsProps, React.HTMLAttributes<HTMLEleme
21
21
  disabled?: boolean;
22
22
  /** Ripple after button click */
23
23
  ripple?: boolean;
24
+ /** The icon element placed _before_ the button text */
25
+ startIcon?: React.ReactNode;
26
+ /** The icon element placed _after_ the button text */
27
+ endIcon?: React.ReactNode;
24
28
  /** Defines HTML button type attribute */
25
29
  type?: 'button' | 'reset' | 'submit';
26
30
  }
@@ -25,7 +25,7 @@ var _Ripple = _interopRequireDefault(require("../Ripple"));
25
25
 
26
26
  var _utils = require("../utils");
27
27
 
28
- var _templateObject;
28
+ var _templateObject, _templateObject2, _templateObject3;
29
29
 
30
30
  var Button = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
31
31
  var as = props.as,
@@ -43,8 +43,10 @@ var Button = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
43
43
  _props$ripple = props.ripple,
44
44
  ripple = _props$ripple === void 0 ? true : _props$ripple,
45
45
  sizeProp = props.size,
46
+ startIcon = props.startIcon,
47
+ endIcon = props.endIcon,
46
48
  typeProp = props.type,
47
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "active", "appearance", "block", "className", "children", "classPrefix", "color", "disabled", "loading", "ripple", "size", "type"]);
49
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "active", "appearance", "block", "className", "children", "classPrefix", "color", "disabled", "loading", "ripple", "size", "startIcon", "endIcon", "type"]);
48
50
  var buttonGroup = (0, _react.useContext)(_ButtonGroup.ButtonGroupContext);
49
51
  var size = sizeProp !== null && sizeProp !== void 0 ? sizeProp : buttonGroup === null || buttonGroup === void 0 ? void 0 : buttonGroup.size;
50
52
 
@@ -59,11 +61,18 @@ var Button = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
59
61
  loading: loading,
60
62
  block: block
61
63
  }));
62
- var rippleElement = ripple && !(0, _utils.isOneOf)(appearance, ['link', 'ghost']) ? /*#__PURE__*/_react.default.createElement(_Ripple.default, null) : null;
63
-
64
- var spin = /*#__PURE__*/_react.default.createElement("span", {
65
- className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["spin"])))
66
- });
64
+ var renderButtonContent = (0, _react.useCallback)(function () {
65
+ var spin = /*#__PURE__*/_react.default.createElement("span", {
66
+ className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["spin"])))
67
+ });
68
+
69
+ var rippleElement = ripple && !(0, _utils.isOneOf)(appearance, ['link', 'ghost']) ? /*#__PURE__*/_react.default.createElement(_Ripple.default, null) : null;
70
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, loading && spin, startIcon ? /*#__PURE__*/_react.default.createElement("span", {
71
+ className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["start-icon"])))
72
+ }, startIcon) : null, children, endIcon ? /*#__PURE__*/_react.default.createElement("span", {
73
+ className: prefix(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["end-icon"])))
74
+ }, endIcon) : null, rippleElement);
75
+ }, [appearance, children, endIcon, loading, prefix, ripple, startIcon]);
67
76
 
68
77
  if (rest.href) {
69
78
  return /*#__PURE__*/_react.default.createElement(_SafeAnchor.default, (0, _extends2.default)({}, rest, {
@@ -72,7 +81,7 @@ var Button = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
72
81
  "aria-disabled": disabled,
73
82
  disabled: disabled,
74
83
  className: classes
75
- }), loading && spin, children, rippleElement);
84
+ }), renderButtonContent());
76
85
  }
77
86
 
78
87
  var Component = as || 'button';
@@ -85,7 +94,7 @@ var Button = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
85
94
  disabled: disabled,
86
95
  "aria-disabled": disabled,
87
96
  className: classes
88
- }), loading && spin, children, rippleElement);
97
+ }), renderButtonContent());
89
98
  });
90
99
 
91
100
  Button.displayName = 'Button';
@@ -9,6 +9,10 @@ export interface MessageProps extends WithAsProps {
9
9
  * Delay automatic removal of messages.
10
10
  * When set to 0, the message is not automatically removed.
11
11
  * (Unit: milliseconds)
12
+ *
13
+ * @default 2000
14
+ * @deprecated Use `toaster.push(<Message />, { duration: 2000 })` instead.
15
+ *
12
16
  */
13
17
  duration?: number;
14
18
  /** The title of the message */
@@ -21,6 +21,8 @@ var _utils = require("../utils");
21
21
 
22
22
  var _CloseButton = _interopRequireDefault(require("../CloseButton"));
23
23
 
24
+ var _ToastContext = _interopRequireDefault(require("../toaster/ToastContext"));
25
+
24
26
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
25
27
 
26
28
  var Message = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
@@ -52,9 +54,13 @@ var Message = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
52
54
  merge = _useClassNames.merge,
53
55
  prefix = _useClassNames.prefix;
54
56
 
55
- var isMounted = (0, _utils.useIsMounted)(); // Timed close message
57
+ var isMounted = (0, _utils.useIsMounted)();
58
+
59
+ var _useContext = (0, _react.useContext)(_ToastContext.default),
60
+ usedToaster = _useContext.usedToaster; // Timed close message
61
+
56
62
 
57
- var _useTimeout = (0, _utils.useTimeout)(onClose, duration, duration > 0),
63
+ var _useTimeout = (0, _utils.useTimeout)(onClose, duration, usedToaster && duration > 0),
58
64
  clear = _useTimeout.clear;
59
65
 
60
66
  var handleClose = (0, _react.useCallback)(function (event) {
@@ -8,6 +8,9 @@ export interface NotificationProps extends WithAsProps {
8
8
  * Delay automatic removal of messages.
9
9
  * When set to 0, the message is not automatically removed.
10
10
  * (Unit: milliseconds)
11
+ *
12
+ * @default 4500
13
+ * @deprecated Use `toaster.push(<Notification />, { duration: 4500 })` instead.
11
14
  */
12
15
  duration?: number;
13
16
  /**
@@ -21,6 +21,8 @@ var _utils = require("../utils");
21
21
 
22
22
  var _CloseButton = _interopRequireDefault(require("../CloseButton"));
23
23
 
24
+ var _ToastContext = _interopRequireDefault(require("../toaster/ToastContext"));
25
+
24
26
  var _templateObject, _templateObject2;
25
27
 
26
28
  var Notification = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
@@ -47,9 +49,13 @@ var Notification = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
47
49
  merge = _useClassNames.merge,
48
50
  prefix = _useClassNames.prefix;
49
51
 
50
- var isMounted = (0, _utils.useIsMounted)(); // Timed close message
52
+ var isMounted = (0, _utils.useIsMounted)();
53
+
54
+ var _useContext = (0, _react.useContext)(_ToastContext.default),
55
+ usedToaster = _useContext.usedToaster; // Timed close message
56
+
51
57
 
52
- var _useTimeout = (0, _utils.useTimeout)(onClose, duration, duration > 0),
58
+ var _useTimeout = (0, _utils.useTimeout)(onClose, duration, usedToaster && duration > 0),
53
59
  clear = _useTimeout.clear; // Click to trigger to close the message
54
60
 
55
61
 
@@ -34,7 +34,7 @@ var PickerToggleTrigger = /*#__PURE__*/_react.default.forwardRef(function (props
34
34
  var _useCustom = (0, _utils.useCustom)(),
35
35
  rtl = _useCustom.rtl;
36
36
 
37
- return /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, (0, _extends2.default)({}, rest, pickerTriggerProps, {
37
+ return /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, (0, _extends2.default)({}, pickerTriggerProps, rest, {
38
38
  disabled: pickerTriggerProps.disabled || pickerTriggerProps.loading,
39
39
  ref: ref,
40
40
  trigger: trigger,
@@ -1,4 +1,4 @@
1
- import { SchemaModel, StringType, NumberType, ArrayType, DateType, ObjectType, BooleanType } from 'schema-typed';
1
+ import { SchemaModel, StringType, NumberType, ArrayType, DateType, ObjectType, BooleanType, MixedType } from 'schema-typed';
2
2
  declare const SchemaTyped: {
3
3
  Model: typeof SchemaModel;
4
4
  Types: {
@@ -8,6 +8,7 @@ declare const SchemaTyped: {
8
8
  DateType: typeof DateType;
9
9
  ObjectType: typeof ObjectType;
10
10
  BooleanType: typeof BooleanType;
11
+ MixedType: typeof MixedType;
11
12
  };
12
13
  };
13
14
  export default SchemaTyped;
@@ -13,7 +13,8 @@ var SchemaTyped = {
13
13
  ArrayType: _schemaTyped.ArrayType,
14
14
  DateType: _schemaTyped.DateType,
15
15
  ObjectType: _schemaTyped.ObjectType,
16
- BooleanType: _schemaTyped.BooleanType
16
+ BooleanType: _schemaTyped.BooleanType,
17
+ MixedType: _schemaTyped.MixedType
17
18
  }
18
19
  };
19
20
  var _default = SchemaTyped;
@@ -0,0 +1,117 @@
1
+ declare const _default: {
2
+ common: {
3
+ loading: string;
4
+ emptyMessage: string;
5
+ };
6
+ Plaintext: {
7
+ unfilled: string;
8
+ notSelected: string;
9
+ notUploaded: string;
10
+ };
11
+ Pagination: {
12
+ more: string;
13
+ prev: string;
14
+ next: string;
15
+ first: string;
16
+ last: string;
17
+ limit: string;
18
+ total: string;
19
+ skip: string;
20
+ };
21
+ Calendar: {
22
+ sunday: string;
23
+ monday: string;
24
+ tuesday: string;
25
+ wednesday: string;
26
+ thursday: string;
27
+ friday: string;
28
+ saturday: string;
29
+ ok: string;
30
+ today: string;
31
+ yesterday: string;
32
+ hours: string;
33
+ minutes: string;
34
+ seconds: string;
35
+ /**
36
+ * Format of the string is based on Unicode Technical Standard #35:
37
+ * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
38
+ **/
39
+ formattedMonthPattern: string;
40
+ formattedDayPattern: string;
41
+ dateLocale: any;
42
+ };
43
+ DatePicker: {
44
+ sunday: string;
45
+ monday: string;
46
+ tuesday: string;
47
+ wednesday: string;
48
+ thursday: string;
49
+ friday: string;
50
+ saturday: string;
51
+ ok: string;
52
+ today: string;
53
+ yesterday: string;
54
+ hours: string;
55
+ minutes: string;
56
+ seconds: string;
57
+ /**
58
+ * Format of the string is based on Unicode Technical Standard #35:
59
+ * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
60
+ **/
61
+ formattedMonthPattern: string;
62
+ formattedDayPattern: string;
63
+ dateLocale: any;
64
+ };
65
+ DateRangePicker: {
66
+ last7Days: string;
67
+ sunday: string;
68
+ monday: string;
69
+ tuesday: string;
70
+ wednesday: string;
71
+ thursday: string;
72
+ friday: string;
73
+ saturday: string;
74
+ ok: string;
75
+ today: string;
76
+ yesterday: string;
77
+ hours: string;
78
+ minutes: string;
79
+ seconds: string;
80
+ /**
81
+ * Format of the string is based on Unicode Technical Standard #35:
82
+ * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
83
+ **/
84
+ formattedMonthPattern: string;
85
+ formattedDayPattern: string;
86
+ dateLocale: any;
87
+ };
88
+ Picker: {
89
+ noResultsText: string;
90
+ placeholder: string;
91
+ searchPlaceholder: string;
92
+ checkAll: string;
93
+ };
94
+ InputPicker: {
95
+ newItem: string;
96
+ createOption: string;
97
+ };
98
+ Uploader: {
99
+ inited: string;
100
+ progress: string;
101
+ error: string;
102
+ complete: string;
103
+ emptyFile: string;
104
+ upload: string;
105
+ };
106
+ CloseButton: {
107
+ closeLabel: string;
108
+ };
109
+ Breadcrumb: {
110
+ expandText: string;
111
+ };
112
+ Toggle: {
113
+ on: string;
114
+ off: string;
115
+ };
116
+ };
117
+ export default _default;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _hu = _interopRequireDefault(require("date-fns/locale/hu"));
11
+
12
+ var Calendar = {
13
+ sunday: 'V',
14
+ monday: 'H',
15
+ tuesday: 'K',
16
+ wednesday: 'Sze',
17
+ thursday: 'Cs',
18
+ friday: 'P',
19
+ saturday: 'Szo',
20
+ ok: 'Rendben',
21
+ today: 'Ma',
22
+ yesterday: 'Tegnap',
23
+ hours: 'Óra',
24
+ minutes: 'Perc',
25
+ seconds: 'Másodperc',
26
+
27
+ /**
28
+ * Format of the string is based on Unicode Technical Standard #35:
29
+ * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
30
+ **/
31
+ formattedMonthPattern: 'yyyy MMM',
32
+ formattedDayPattern: 'yyyy MMM dd',
33
+ dateLocale: _hu.default
34
+ };
35
+ var _default = {
36
+ common: {
37
+ loading: 'Betöltés...',
38
+ emptyMessage: 'Nem található adat'
39
+ },
40
+ Plaintext: {
41
+ unfilled: 'Kitöltetlen',
42
+ notSelected: 'Nincs kiválasztva',
43
+ notUploaded: 'Nincs feltöltve'
44
+ },
45
+ Pagination: {
46
+ more: 'Több',
47
+ prev: 'Előző',
48
+ next: 'Következő',
49
+ first: 'Első',
50
+ last: 'Utolsó',
51
+ limit: '{0} / oldal',
52
+ total: 'Összes sor: {0}',
53
+ skip: 'Lapozz ide: {0}'
54
+ },
55
+ Calendar: Calendar,
56
+ DatePicker: (0, _extends2.default)({}, Calendar),
57
+ DateRangePicker: (0, _extends2.default)({}, Calendar, {
58
+ last7Days: 'Utolsó 7 nap'
59
+ }),
60
+ Picker: {
61
+ noResultsText: 'Nincs találat',
62
+ placeholder: 'Válassza ki',
63
+ searchPlaceholder: 'Keresés',
64
+ checkAll: 'Összes'
65
+ },
66
+ InputPicker: {
67
+ newItem: 'Új elem',
68
+ createOption: 'Opció létrehozása "{0}"'
69
+ },
70
+ Uploader: {
71
+ inited: 'Kezdés',
72
+ progress: 'Feltöltés',
73
+ error: 'Hiba',
74
+ complete: 'Befejezett',
75
+ emptyFile: 'Üres',
76
+ upload: 'Feltöltés'
77
+ },
78
+ CloseButton: {
79
+ closeLabel: 'Bezárás'
80
+ },
81
+ Breadcrumb: {
82
+ expandText: 'Útvonal megjelenítése'
83
+ },
84
+ Toggle: {
85
+ on: 'Be',
86
+ off: 'Ki'
87
+ }
88
+ };
89
+ exports.default = _default;
@@ -7,6 +7,7 @@ export { default as enUS } from './en_US';
7
7
  export { default as esAR } from './es_AR';
8
8
  export { default as esES } from './es_ES';
9
9
  export { default as fiFI } from './fi_FI';
10
+ export { default as huHU } from './hu_HU';
10
11
  export { default as itIT } from './it_IT';
11
12
  export { default as kkKZ } from './kk_KZ';
12
13
  export { default as koKR } from './ko_KR';
@@ -3,7 +3,7 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  exports.__esModule = true;
6
- exports.frFR = exports.faIR = exports.zhTW = exports.zhCN = exports.trTR = exports.svSE = exports.ruRU = exports.ptBR = exports.nlNL = exports.koKR = exports.kkKZ = exports.itIT = exports.fiFI = exports.esES = exports.esAR = exports.enUS = exports.enGB = exports.deDE = exports.daDK = exports.arEG = void 0;
6
+ exports.frFR = exports.faIR = exports.zhTW = exports.zhCN = exports.trTR = exports.svSE = exports.ruRU = exports.ptBR = exports.nlNL = exports.koKR = exports.kkKZ = exports.itIT = exports.huHU = exports.fiFI = exports.esES = exports.esAR = exports.enUS = exports.enGB = exports.deDE = exports.daDK = exports.arEG = void 0;
7
7
 
8
8
  var _ar_EG = _interopRequireDefault(require("./ar_EG"));
9
9
 
@@ -37,6 +37,10 @@ var _fi_FI = _interopRequireDefault(require("./fi_FI"));
37
37
 
38
38
  exports.fiFI = _fi_FI.default;
39
39
 
40
+ var _hu_HU = _interopRequireDefault(require("./hu_HU"));
41
+
42
+ exports.huHU = _hu_HU.default;
43
+
40
44
  var _it_IT = _interopRequireDefault(require("./it_IT"));
41
45
 
42
46
  exports.itIT = _it_IT.default;
@@ -7,11 +7,16 @@ export interface ToastContainerProps extends WithAsProps {
7
7
  placement?: PlacementType;
8
8
  /** Set the message to appear in the specified container */
9
9
  container?: HTMLElement | (() => HTMLElement);
10
+ /** The number of milliseconds to wait before automatically closing a message. */
11
+ duration?: number;
10
12
  callback?: (ref: React.RefObject<ToastContainerInstance>) => void;
11
13
  }
14
+ interface PushOptions {
15
+ duration?: number;
16
+ }
12
17
  export interface ToastContainerInstance {
13
18
  root: HTMLElement;
14
- push: (message: React.ReactNode) => string;
19
+ push: (message: React.ReactNode, options?: PushOptions) => string;
15
20
  remove: (key: string) => void;
16
21
  clear: () => void;
17
22
  destroy: () => void;
@@ -21,6 +21,8 @@ var _Transition = _interopRequireDefault(require("../Animation/Transition"));
21
21
 
22
22
  var _utils = require("../utils");
23
23
 
24
+ var _ToastContext = _interopRequireDefault(require("./ToastContext"));
25
+
24
26
  var toastPlacements = ['topCenter', 'bottomCenter', 'topStart', 'topEnd', 'bottomStart', 'bottomEnd'];
25
27
  exports.toastPlacements = toastPlacements;
26
28
 
@@ -36,14 +38,14 @@ var useMessages = function useMessages() {
36
38
 
37
39
  return key;
38
40
  }, [messages]);
39
- var push = (0, _react.useCallback)(function (message) {
41
+ var push = (0, _react.useCallback)(function (message, options) {
40
42
  var key = (0, _utils.guid)();
41
43
  setMessages(function (prevMessages) {
42
- return [].concat(prevMessages, [{
44
+ return [].concat(prevMessages, [(0, _extends2.default)({
43
45
  key: key,
44
46
  visible: true,
45
47
  node: message
46
- }]);
48
+ }, options)]);
47
49
  });
48
50
  return key;
49
51
  }, []);
@@ -133,6 +135,7 @@ var ToastContainer = /*#__PURE__*/_react.default.forwardRef(function (props, ref
133
135
  rest = (0, _objectWithoutPropertiesLoose2.default)(transitionProps, ["className"]);
134
136
  return /*#__PURE__*/_react.default.cloneElement(item.node, (0, _extends2.default)({}, rest, {
135
137
  ref: ref,
138
+ duration: item.duration,
136
139
  // Remove the message after the specified time.
137
140
  onClose: (0, _utils.createChainedFunction)((_item$node = item.node) === null || _item$node === void 0 ? void 0 : (_item$node$props = _item$node.props) === null || _item$node$props === void 0 ? void 0 : _item$node$props.onClose, function () {
138
141
  return remove(item.key);
@@ -141,13 +144,17 @@ var ToastContainer = /*#__PURE__*/_react.default.forwardRef(function (props, ref
141
144
  }));
142
145
  });
143
146
  });
144
- return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
147
+ return /*#__PURE__*/_react.default.createElement(_ToastContext.default.Provider, {
148
+ value: {
149
+ usedToaster: true
150
+ }
151
+ }, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
145
152
  ref: function ref(selfRef) {
146
153
  rootRef.current = selfRef;
147
154
  callback === null || callback === void 0 ? void 0 : callback(selfRef);
148
155
  },
149
156
  className: classes
150
- }), elements);
157
+ }), elements));
151
158
  });
152
159
 
153
160
  ToastContainer.getInstance = function (props) {
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface ToastContextProps {
3
+ usedToaster?: boolean;
4
+ }
5
+ declare const ToastContext: React.Context<ToastContextProps>;
6
+ export default ToastContext;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var ToastContext = /*#__PURE__*/_react.default.createContext({
11
+ usedToaster: false
12
+ });
13
+
14
+ ToastContext.displayName = 'ToastContext';
15
+ var _default = ToastContext;
16
+ exports.default = _default;
@@ -7,6 +7,8 @@ exports.default = void 0;
7
7
 
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
 
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+
10
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
13
 
12
14
  var _ToastContainer = _interopRequireDefault(require("./ToastContainer"));
@@ -68,23 +70,23 @@ var toaster = function toaster(message) {
68
70
  };
69
71
 
70
72
  toaster.push = function (message, options) {
71
- var _options;
72
-
73
73
  if (options === void 0) {
74
74
  options = {};
75
75
  }
76
76
 
77
- var containerId = (_options = options) === null || _options === void 0 ? void 0 : _options.placement;
77
+ var _options = options,
78
+ containerId = _options.placement,
79
+ restOptions = (0, _objectWithoutPropertiesLoose2.default)(_options, ["placement"]);
78
80
  var container = getContainer(containerId);
79
81
 
80
82
  if (container !== null && container !== void 0 && container.current) {
81
- return container.current.push(message);
83
+ return container.current.push(message, restOptions);
82
84
  }
83
85
 
84
86
  return createContainer(containerId !== null && containerId !== void 0 ? containerId : '', options).then(function (ref) {
85
87
  var _ref$current;
86
88
 
87
- return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.push(message);
89
+ return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.push(message, restOptions);
88
90
  });
89
91
  };
90
92
 
@@ -22,7 +22,7 @@ var useToaster = function useToaster() {
22
22
  var _toasters$current;
23
23
 
24
24
  var customToaster = toasters === null || toasters === void 0 ? 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');
25
- return customToaster ? customToaster.push(message) : _toaster.default.push(message, options);
25
+ return customToaster ? customToaster.push(message, options) : _toaster.default.push(message, options);
26
26
  },
27
27
  remove: function remove(key) {
28
28
  toasters ? Array.from(toasters.current).forEach(function (_ref) {