rsuite 6.0.0-canary-20250319 → 6.0.0-canary-20250320

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 (73) hide show
  1. package/Form/styles/index.css +0 -13
  2. package/Form/styles/index.less +0 -16
  3. package/FormControl/styles/index.css +10 -15
  4. package/FormControl/styles/index.less +11 -13
  5. package/FormControlLabel/styles/index.css +1 -1
  6. package/FormControlLabel/styles/index.less +1 -1
  7. package/FormGroup/styles/index.css +14 -20
  8. package/FormGroup/styles/index.less +15 -4
  9. package/FormStack/package.json +7 -0
  10. package/FormStack/styles/index.css +27 -0
  11. package/FormStack/styles/index.less +15 -0
  12. package/cjs/CustomProvider/types.d.ts +2 -0
  13. package/cjs/Form/Form.d.ts +10 -1
  14. package/cjs/Form/Form.js +32 -21
  15. package/cjs/FormControl/FormControl.d.ts +3 -2
  16. package/cjs/FormControl/FormControl.js +4 -2
  17. package/cjs/FormControlLabel/FormControlLabel.d.ts +2 -2
  18. package/cjs/FormControlLabel/FormControlLabel.js +4 -2
  19. package/cjs/FormErrorMessage/FormErrorMessage.d.ts +3 -2
  20. package/cjs/FormErrorMessage/FormErrorMessage.js +4 -2
  21. package/cjs/FormGroup/FormGroup.d.ts +2 -2
  22. package/cjs/FormGroup/FormGroup.js +5 -2
  23. package/cjs/FormHelpText/FormHelpText.d.ts +2 -2
  24. package/cjs/FormHelpText/FormHelpText.js +6 -3
  25. package/cjs/FormStack/FormStack.d.ts +27 -0
  26. package/cjs/FormStack/FormStack.js +50 -0
  27. package/cjs/FormStack/index.d.ts +4 -0
  28. package/cjs/FormStack/index.js +11 -0
  29. package/cjs/Schema/Schema.d.ts +1 -0
  30. package/cjs/Schema/Schema.js +8 -0
  31. package/cjs/Stack/Stack.d.ts +3 -2
  32. package/cjs/index.d.ts +1 -0
  33. package/cjs/index.js +6 -0
  34. package/dist/rsuite-no-reset-rtl.css +76 -76
  35. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  36. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  37. package/dist/rsuite-no-reset.css +76 -76
  38. package/dist/rsuite-no-reset.min.css +1 -1
  39. package/dist/rsuite-no-reset.min.css.map +1 -1
  40. package/dist/rsuite-rtl.css +76 -76
  41. package/dist/rsuite-rtl.min.css +1 -1
  42. package/dist/rsuite-rtl.min.css.map +1 -1
  43. package/dist/rsuite.css +76 -76
  44. package/dist/rsuite.js +30 -19
  45. package/dist/rsuite.js.map +1 -1
  46. package/dist/rsuite.min.css +1 -1
  47. package/dist/rsuite.min.css.map +1 -1
  48. package/dist/rsuite.min.js +1 -1
  49. package/dist/rsuite.min.js.map +1 -1
  50. package/esm/CustomProvider/types.d.ts +2 -0
  51. package/esm/Form/Form.d.ts +10 -1
  52. package/esm/Form/Form.js +30 -21
  53. package/esm/FormControl/FormControl.d.ts +3 -2
  54. package/esm/FormControl/FormControl.js +4 -2
  55. package/esm/FormControlLabel/FormControlLabel.d.ts +2 -2
  56. package/esm/FormControlLabel/FormControlLabel.js +4 -2
  57. package/esm/FormErrorMessage/FormErrorMessage.d.ts +3 -2
  58. package/esm/FormErrorMessage/FormErrorMessage.js +4 -2
  59. package/esm/FormGroup/FormGroup.d.ts +2 -2
  60. package/esm/FormGroup/FormGroup.js +5 -2
  61. package/esm/FormHelpText/FormHelpText.d.ts +2 -2
  62. package/esm/FormHelpText/FormHelpText.js +6 -3
  63. package/esm/FormStack/FormStack.d.ts +27 -0
  64. package/esm/FormStack/FormStack.js +45 -0
  65. package/esm/FormStack/index.d.ts +4 -0
  66. package/esm/FormStack/index.js +8 -0
  67. package/esm/Schema/Schema.d.ts +1 -0
  68. package/esm/Schema/Schema.js +1 -0
  69. package/esm/Stack/Stack.d.ts +3 -2
  70. package/esm/index.d.ts +1 -0
  71. package/esm/index.js +1 -0
  72. package/package.json +1 -1
  73. package/styles/index.less +4 -3
@@ -9,6 +9,7 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _HelpOutline = _interopRequireDefault(require("@rsuite/icons/HelpOutline"));
10
10
  var _Tooltip = _interopRequireDefault(require("../Tooltip"));
11
11
  var _Whisper = _interopRequireDefault(require("../Whisper"));
12
+ var _Box = _interopRequireDefault(require("../internals/Box"));
12
13
  var _utils = require("../internals/utils");
13
14
  var _hooks = require("../internals/hooks");
14
15
  var _FormGroup = require("../FormGroup");
@@ -25,7 +26,7 @@ const FormHelpText = (0, _utils.forwardRef)((props, ref) => {
25
26
  propsWithDefaults
26
27
  } = (0, _CustomProvider.useCustom)('FormHelpText', props);
27
28
  const {
28
- as: Component = 'span',
29
+ as = 'span',
29
30
  classPrefix = 'form-help-text',
30
31
  className,
31
32
  tooltip,
@@ -47,7 +48,8 @@ const FormHelpText = (0, _utils.forwardRef)((props, ref) => {
47
48
  speaker: /*#__PURE__*/_react.default.createElement(_Tooltip.default, (0, _extends2.default)({
48
49
  id: id
49
50
  }, rest), children)
50
- }, /*#__PURE__*/_react.default.createElement(Component, {
51
+ }, /*#__PURE__*/_react.default.createElement(_Box.default, {
52
+ as: as,
51
53
  role: "img",
52
54
  "aria-label": "help",
53
55
  className: classes
@@ -55,7 +57,8 @@ const FormHelpText = (0, _utils.forwardRef)((props, ref) => {
55
57
  "aria-hidden": true
56
58
  })));
57
59
  }
58
- return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
60
+ return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
61
+ as: as,
59
62
  id: id
60
63
  }, rest, {
61
64
  ref: ref,
@@ -0,0 +1,27 @@
1
+ import { BoxProps } from '../internals/Box';
2
+ export interface FormStackProps extends BoxProps {
3
+ /**
4
+ * Set the layout of the elements within the form.
5
+ * 'horizontal': Left and right columns layout.
6
+ * 'vertical': Top and bottom layout.
7
+ * 'inline': Elements are placed inline.
8
+ */
9
+ layout?: 'horizontal' | 'vertical' | 'inline';
10
+ /**
11
+ * The fluid property allows the form elements to fill 100% of the container width.
12
+ * Only valid in vertical layouts.
13
+ */
14
+ fluid?: boolean;
15
+ /**
16
+ * Define the spacing between immediate children.
17
+ * Can be a number, string, or an array of numbers/strings for responsive spacing.
18
+ */
19
+ spacing?: number | string | (number | string)[];
20
+ }
21
+ /**
22
+ * The `<Form.Stack>` component is a quick layout component through Flexbox,
23
+ * supporting vertical and horizontal stacking, custom spacing and line wrapping.
24
+ * @see https://rsuitejs.com/components/form/
25
+ */
26
+ declare const FormStack: import("../internals/types").InternalRefForwardingComponent<"span", FormStackProps, never> & Record<string, never>;
27
+ export default FormStack;
@@ -0,0 +1,50 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _Box = _interopRequireDefault(require("../internals/Box"));
10
+ var _utils = require("../internals/utils");
11
+ var _hooks = require("../internals/hooks");
12
+ var _CustomProvider = require("../CustomProvider");
13
+ /**
14
+ * The `<Form.Stack>` component is a quick layout component through Flexbox,
15
+ * supporting vertical and horizontal stacking, custom spacing and line wrapping.
16
+ * @see https://rsuitejs.com/components/form/
17
+ */
18
+ const FormStack = (0, _utils.forwardRef)((props, ref) => {
19
+ const {
20
+ propsWithDefaults
21
+ } = (0, _CustomProvider.useCustom)('FormStack', props);
22
+ const {
23
+ as,
24
+ classPrefix = 'form-stack',
25
+ className,
26
+ children,
27
+ layout = 'vertical',
28
+ fluid,
29
+ spacing,
30
+ style,
31
+ ...rest
32
+ } = propsWithDefaults;
33
+ const {
34
+ withPrefix,
35
+ merge,
36
+ cssVar
37
+ } = (0, _hooks.useStyles)(classPrefix);
38
+ const classes = merge(className, withPrefix(layout, {
39
+ fluid
40
+ }));
41
+ const styles = (0, _utils.mergeStyles)(style, cssVar('spacing', spacing, _utils.getCssValue));
42
+ return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
43
+ as: as,
44
+ ref: ref,
45
+ style: styles,
46
+ className: classes
47
+ }, rest), children);
48
+ });
49
+ FormStack.displayName = 'FormStack';
50
+ var _default = exports.default = FormStack;
@@ -0,0 +1,4 @@
1
+ import FormStack from './FormStack';
2
+ export type { FormStackProps } from './FormStack';
3
+ export { FormStack };
4
+ export default FormStack;
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _FormStack = _interopRequireDefault(require("./FormStack"));
8
+ exports.FormStack = _FormStack.default;
9
+ // export types
10
+ // export components
11
+ var _default = exports.default = _FormStack.default;
@@ -17,4 +17,5 @@ declare const SchemaTyped: {
17
17
  MixedType: typeof MixedType;
18
18
  };
19
19
  };
20
+ export { SchemaModel as Model, StringType, NumberType, ArrayType, DateType, ObjectType, BooleanType, MixedType };
20
21
  export default SchemaTyped;
@@ -4,6 +4,14 @@
4
4
  exports.__esModule = true;
5
5
  exports.default = void 0;
6
6
  var _schemaTyped = require("schema-typed");
7
+ exports.Model = _schemaTyped.SchemaModel;
8
+ exports.StringType = _schemaTyped.StringType;
9
+ exports.NumberType = _schemaTyped.NumberType;
10
+ exports.ArrayType = _schemaTyped.ArrayType;
11
+ exports.DateType = _schemaTyped.DateType;
12
+ exports.ObjectType = _schemaTyped.ObjectType;
13
+ exports.BooleanType = _schemaTyped.BooleanType;
14
+ exports.MixedType = _schemaTyped.MixedType;
7
15
  /**
8
16
  * SchemaTyped is a wrapper of schema-typed library to provide a more friendly API.
9
17
  * It is used to validate the data of the model.
@@ -1,5 +1,6 @@
1
1
  import React, { CSSProperties } from 'react';
2
- import type { WithAsProps, ResponsiveValue } from '../internals/types';
2
+ import { BoxProps } from '../internals/Box';
3
+ import type { ResponsiveValue } from '../internals/types';
3
4
  interface DeprecatedStackProps {
4
5
  /**
5
6
  * Define the alignment of the children in the stack on the inline axis
@@ -12,7 +13,7 @@ interface DeprecatedStackProps {
12
13
  */
13
14
  alignItems?: CSSProperties['alignItems'];
14
15
  }
15
- export interface StackProps extends WithAsProps, DeprecatedStackProps {
16
+ export interface StackProps extends BoxProps, DeprecatedStackProps {
16
17
  /** Define the alignment of the children in the stack on the cross axis */
17
18
  align?: CSSProperties['alignItems'];
18
19
  /** The direction of the children in the stack */
package/cjs/index.d.ts CHANGED
@@ -33,6 +33,7 @@ export * from './Breadcrumb';
33
33
  export * from './Pagination';
34
34
  export * from './Steps';
35
35
  export * from './Form';
36
+ export * from './FormStack';
36
37
  export * from './FormGroup';
37
38
  export * from './FormErrorMessage';
38
39
  export * from './FormControlLabel';
package/cjs/index.js CHANGED
@@ -212,6 +212,12 @@ Object.keys(_Form).forEach(function (key) {
212
212
  if (key in exports && exports[key] === _Form[key]) return;
213
213
  exports[key] = _Form[key];
214
214
  });
215
+ var _FormStack = require("./FormStack");
216
+ Object.keys(_FormStack).forEach(function (key) {
217
+ if (key === "default" || key === "__esModule") return;
218
+ if (key in exports && exports[key] === _FormStack[key]) return;
219
+ exports[key] = _FormStack[key];
220
+ });
215
221
  var _FormGroup = require("./FormGroup");
216
222
  Object.keys(_FormGroup).forEach(function (key) {
217
223
  if (key === "default" || key === "__esModule") return;
@@ -3858,9 +3858,6 @@ label:hover .rs-checkbox-control .rs-checkbox-inner::before {
3858
3858
  .rs-content {
3859
3859
  flex: 1 1 auto;
3860
3860
  }
3861
- .rs-form-plaintext .rs-form-control-label {
3862
- color: var(--rs-text-secondary);
3863
- }
3864
3861
  .rs-picker-toolbar {
3865
3862
  padding: 10px;
3866
3863
  border-top: 1px solid var(--rs-divider-border);
@@ -4954,30 +4951,72 @@ label:hover .rs-checkbox-control .rs-checkbox-inner::before {
4954
4951
  .rs-footer {
4955
4952
  flex: 0 0 auto;
4956
4953
  }
4957
- .rs-form {
4958
- --rs-form-direction: column;
4959
- --rs-form-spacing: calc(var(--rs-spacing) * 4);
4954
+ .rs-form-stack {
4955
+ --rs-form-stack-dir: column;
4956
+ --rs-form-stack-spacing: calc(var(--rs-spacing) * 4);
4957
+ display: flex;
4958
+ flex-direction: var(--rs-form-stack-dir);
4959
+ gap: var(--rs-form-stack-spacing);
4960
+ align-items: flex-start;
4961
+ }
4962
+ .rs-form-stack-inline {
4963
+ --rs-form-stack-dir: row;
4964
+ }
4965
+ .rs-form-group {
4966
+ position: relative;
4967
+ display: flex;
4968
+ flex-direction: var(--rs-form-group-direction);
4969
+ gap: var(--rs-form-group-spacing);
4970
+ }
4971
+ .rs-form-group .rs-input {
4972
+ display: inline-block;
4973
+ }
4974
+ .rs-form-group textarea.rs-input {
4975
+ vertical-align: bottom;
4976
+ }
4977
+ .rs-form-stack-vertical .rs-form-group .rs-form-control-label {
4978
+ display: block;
4979
+ }
4980
+ .rs-form-stack {
4960
4981
  --rs-form-group-spacing: var(--rs-spacing);
4961
4982
  --rs-form-group-direction: column;
4962
- display: flex;
4963
- flex-direction: var(--rs-form-direction);
4964
- gap: var(--rs-form-spacing);
4965
4983
  }
4966
- .rs-form-inline {
4967
- --rs-form-direction: row;
4984
+ .rs-form-stack-horizontal {
4985
+ --rs-form-control-label-width: 170px;
4986
+ --rs-form-group-spacing: calc(var(--rs-spacing) * 3);
4987
+ --rs-form-group-direction: row;
4988
+ }
4989
+ .rs-form-stack-horizontal .rs-form-group {
4990
+ align-items: baseline;
4991
+ }
4992
+ .rs-form-stack-horizontal .rs-form-group .rs-form-control-label {
4993
+ display: inline-block;
4994
+ font-size: var(--rs-font-size-sm);
4995
+ width: var(--rs-form-control-label-width);
4996
+ text-align: end;
4997
+ }
4998
+ .rs-form-stack-horizontal .rs-form-group .rs-btn-toolbar {
4999
+ padding-inline-start: calc(var(--rs-form-control-label-width) + var(--rs-form-group-spacing));
5000
+ }
5001
+ .rs-form-stack-inline {
5002
+ --rs-form-group-direction: row;
5003
+ --rs-form-group-spacing: calc(var(--rs-spacing) * 3);
5004
+ }
5005
+ .rs-form-stack-inline .rs-form-group {
5006
+ align-items: center;
4968
5007
  }
4969
- .rs-form-fluid .rs-form-control-wrapper {
5008
+ .rs-form-stack-fluid .rs-form-group {
4970
5009
  width: 100%;
4971
5010
  }
4972
- .rs-form-fluid .rs-form-control-wrapper > .rs-input-number,
4973
- .rs-form-fluid .rs-form-control-wrapper > .rs-input {
5011
+ .rs-form-stack-fluid .rs-form-control-wrapper {
4974
5012
  width: 100%;
4975
5013
  }
4976
- .rs-form-fluid.rs-form-vertical .rs-form-group .rs-input-group {
5014
+ .rs-form-stack-fluid .rs-form-control-wrapper > .rs-input-number,
5015
+ .rs-form-stack-fluid .rs-form-control-wrapper > .rs-input {
4977
5016
  width: 100%;
4978
5017
  }
4979
- .rs-form-fluid.rs-form-vertical .rs-form-group .rs-form-control-wrapper {
4980
- max-width: 100%;
5018
+ .rs-form-stack-fluid.rs-form-stack-vertical .rs-form-group .rs-input-group {
5019
+ width: 100%;
4981
5020
  }
4982
5021
  .rs-form-control-wrapper {
4983
5022
  position: relative;
@@ -4990,24 +5029,22 @@ label:hover .rs-checkbox-control .rs-checkbox-inner::before {
4990
5029
  pointer-events: none;
4991
5030
  touch-action: none;
4992
5031
  }
4993
- .rs-form-vertical .rs-form-group .rs-input-group {
5032
+ .rs-form-stack-vertical .rs-form-group .rs-input-group {
4994
5033
  width: 300px;
4995
5034
  }
4996
- .rs-form-vertical .rs-form-group .rs-form-control-wrapper {
5035
+ .rs-form-stack-vertical .rs-form-group .rs-form-control-wrapper {
4997
5036
  display: inline-block;
4998
- max-width: -moz-max-content;
4999
- max-width: max-content;
5000
5037
  }
5001
- .rs-form-horizontal .rs-form-group .rs-form-control-wrapper {
5038
+ .rs-form-stack-horizontal .rs-form-group .rs-form-control-wrapper {
5002
5039
  float: inline-start;
5003
5040
  }
5004
- .rs-form-horizontal .rs-form-group .rs-form-control-wrapper + .rs-form-help-text {
5041
+ .rs-form-stack-horizontal .rs-form-group .rs-form-control-wrapper + .rs-form-help-text {
5005
5042
  clear: both;
5006
5043
  }
5007
- .rs-form-inline .rs-form-group .rs-form-control-wrapper {
5044
+ .rs-form-stack-inline .rs-form-group .rs-form-control-wrapper {
5008
5045
  display: inline-block;
5009
5046
  }
5010
- .rs-form-inline .rs-form-group .rs-sr-only + .rs-form-control-wrapper {
5047
+ .rs-form-stack-inline .rs-form-group .rs-sr-only + .rs-form-control-wrapper {
5011
5048
  margin-inline-start: 0;
5012
5049
  }
5013
5050
  .rs-input-group > .rs-form-control > .rs-input {
@@ -5015,45 +5052,8 @@ label:hover .rs-checkbox-control .rs-checkbox-inner::before {
5015
5052
  border: none;
5016
5053
  outline: none;
5017
5054
  }
5018
- .rs-form-group {
5019
- position: relative;
5020
- display: flex;
5021
- flex-direction: var(--rs-form-group-direction);
5022
- gap: var(--rs-form-group-spacing);
5023
- }
5024
- .rs-form-group .rs-input {
5025
- display: inline-block;
5026
- }
5027
- .rs-form-group textarea.rs-input {
5028
- vertical-align: bottom;
5029
- }
5030
- .rs-form-vertical .rs-form-group .rs-form-control-label {
5031
- display: block;
5032
- }
5033
- .rs-form-horizontal {
5034
- --rs-form-control-label-width: 170px;
5035
- --rs-form-group-spacing: calc(var(--rs-spacing) * 3);
5036
- --rs-form-group-direction: row;
5037
- }
5038
- .rs-form-horizontal .rs-form-group {
5039
- align-items: baseline;
5040
- }
5041
- .rs-form-horizontal .rs-form-group .rs-form-control-label {
5042
- display: inline-block;
5043
- font-size: var(--rs-font-size-sm);
5044
- width: var(--rs-form-control-label-width);
5045
- text-align: end;
5046
- }
5047
- .rs-form-horizontal .rs-form-group .rs-btn-toolbar {
5048
- padding-inline-start: calc(var(--rs-form-control-label-width) + var(--rs-form-group-spacing));
5049
- }
5050
- .rs-form-inline {
5051
- --rs-form-spacing: calc(var(--rs-spacing) * 4);
5052
- --rs-form-group-direction: row;
5053
- --rs-form-group-spacing: calc(var(--rs-spacing) * 3);
5054
- }
5055
- .rs-form-inline .rs-form-group {
5056
- align-items: center;
5055
+ [data-rs='form'][data-plaintext='true'] .rs-form-control-label {
5056
+ color: var(--rs-text-secondary);
5057
5057
  }
5058
5058
  @keyframes errorMessageSlideUpIn {
5059
5059
  0% {
@@ -5238,6 +5238,18 @@ label:hover .rs-checkbox-control .rs-checkbox-inner::before {
5238
5238
  .rs-form-error-message-wrapper:where([data-placement='left-end'], [data-placement='right-end']) .rs-form-error-message-arrow::after {
5239
5239
  bottom: 4px;
5240
5240
  }
5241
+ .rs-form-help-text {
5242
+ display: block;
5243
+ color: var(--rs-text-secondary);
5244
+ min-height: 20px;
5245
+ line-height: 1.66666667;
5246
+ font-size: var(--rs-font-size-xs);
5247
+ }
5248
+ .rs-form-help-text-tooltip {
5249
+ display: inline-flex;
5250
+ align-items: center;
5251
+ font-size: var(--rs-font-size-md);
5252
+ }
5241
5253
  :root {
5242
5254
  --rs-grid-gutter: calc(var(--rs-spacing) * 3);
5243
5255
  --rs-row-gutter: calc(var(--rs-grid-gutter) / -2);
@@ -7817,18 +7829,6 @@ label:hover .rs-checkbox-control .rs-checkbox-inner::before {
7817
7829
  .rs-header {
7818
7830
  flex: 0 0 auto;
7819
7831
  }
7820
- .rs-form-help-text {
7821
- display: block;
7822
- color: var(--rs-text-secondary);
7823
- min-height: 20px;
7824
- line-height: 1.66666667;
7825
- font-size: var(--rs-font-size-xs);
7826
- }
7827
- .rs-form-help-text-tooltip {
7828
- display: inline-flex;
7829
- align-items: center;
7830
- font-size: var(--rs-font-size-md);
7831
- }
7832
7832
  .rs-btn-icon {
7833
7833
  padding: calc((var(--rs-btn-size) - var(--rs-btn-icon-size)) / 2);
7834
7834
  line-height: var(--rs-btn-icon-size);