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
@@ -11,16 +11,3 @@
11
11
  *[class*='rs-']::after {
12
12
  box-sizing: border-box;
13
13
  }
14
- :root {
15
- --rs-spacing: 0.25rem;
16
- }
17
- .rs-form {
18
- --rs-form-direction: column;
19
- --rs-form-spacing: calc(var(--rs-spacing) * 4);
20
- display: flex;
21
- flex-direction: var(--rs-form-direction);
22
- gap: var(--rs-form-spacing);
23
- }
24
- .rs-form-inline {
25
- --rs-form-direction: row;
26
- }
@@ -1,17 +1 @@
1
1
  @import '../../styles/common.less';
2
-
3
- // Form
4
-
5
- .rs-form {
6
- --rs-form-direction: column;
7
- --rs-form-spacing: calc(var(--rs-spacing) * 4);
8
- --rs-form-group-spacing: var(--rs-spacing);
9
- --rs-form-group-direction: column;
10
- display: flex;
11
- flex-direction: var(--rs-form-direction);
12
- gap: var(--rs-form-spacing);
13
- }
14
-
15
- .rs-form-inline {
16
- --rs-form-direction: row;
17
- }
@@ -14,19 +14,16 @@
14
14
  :root {
15
15
  --rs-radius-none: 0;
16
16
  }
17
- .rs-form-fluid .rs-form-control-wrapper {
17
+ .rs-form-stack-fluid .rs-form-control-wrapper {
18
18
  width: 100%;
19
19
  }
20
- .rs-form-fluid .rs-form-control-wrapper > .rs-input-number,
21
- .rs-form-fluid .rs-form-control-wrapper > .rs-input {
20
+ .rs-form-stack-fluid .rs-form-control-wrapper > .rs-input-number,
21
+ .rs-form-stack-fluid .rs-form-control-wrapper > .rs-input {
22
22
  width: 100%;
23
23
  }
24
- .rs-form-fluid.rs-form-vertical .rs-form-group .rs-input-group {
24
+ .rs-form-stack-fluid.rs-form-stack-vertical .rs-form-group .rs-input-group {
25
25
  width: 100%;
26
26
  }
27
- .rs-form-fluid.rs-form-vertical .rs-form-group .rs-form-control-wrapper {
28
- max-width: 100%;
29
- }
30
27
  .rs-form-control-wrapper {
31
28
  position: relative;
32
29
  }
@@ -38,24 +35,22 @@
38
35
  pointer-events: none;
39
36
  touch-action: none;
40
37
  }
41
- .rs-form-vertical .rs-form-group .rs-input-group {
38
+ .rs-form-stack-vertical .rs-form-group .rs-input-group {
42
39
  width: 300px;
43
40
  }
44
- .rs-form-vertical .rs-form-group .rs-form-control-wrapper {
41
+ .rs-form-stack-vertical .rs-form-group .rs-form-control-wrapper {
45
42
  display: inline-block;
46
- max-width: -moz-max-content;
47
- max-width: max-content;
48
43
  }
49
- .rs-form-horizontal .rs-form-group .rs-form-control-wrapper {
44
+ .rs-form-stack-horizontal .rs-form-group .rs-form-control-wrapper {
50
45
  float: inline-start;
51
46
  }
52
- .rs-form-horizontal .rs-form-group .rs-form-control-wrapper + .rs-form-help-text {
47
+ .rs-form-stack-horizontal .rs-form-group .rs-form-control-wrapper + .rs-form-help-text {
53
48
  clear: both;
54
49
  }
55
- .rs-form-inline .rs-form-group .rs-form-control-wrapper {
50
+ .rs-form-stack-inline .rs-form-group .rs-form-control-wrapper {
56
51
  display: inline-block;
57
52
  }
58
- .rs-form-inline .rs-form-group .rs-sr-only + .rs-form-control-wrapper {
53
+ .rs-form-stack-inline .rs-form-group .rs-sr-only + .rs-form-control-wrapper {
59
54
  margin-inline-start: 0;
60
55
  }
61
56
  .rs-input-group > .rs-form-control > .rs-input {
@@ -1,7 +1,7 @@
1
1
  @import '../../styles/common.less';
2
2
 
3
3
  // Full container.
4
- .rs-form-fluid {
4
+ .rs-form-stack-fluid {
5
5
  .rs-form-control-wrapper {
6
6
  width: 100%;
7
7
 
@@ -11,13 +11,10 @@
11
11
  }
12
12
  }
13
13
 
14
- &.rs-form-vertical .rs-form-group {
14
+ &.rs-form-stack-vertical .rs-form-group {
15
15
  .rs-input-group {
16
16
  width: 100%;
17
17
  }
18
- .rs-form-control-wrapper {
19
- max-width: 100%;
20
- }
21
18
  }
22
19
  }
23
20
 
@@ -38,13 +35,14 @@
38
35
  }
39
36
 
40
37
  // Vertical forms
41
- .rs-form-vertical .rs-form-group .rs-input-group {
42
- width: @form-control-width;
43
- }
38
+ .rs-form-stack-vertical .rs-form-group {
39
+ .rs-input-group {
40
+ width: @form-control-width;
41
+ }
44
42
 
45
- .rs-form-vertical .rs-form-group .rs-form-control-wrapper {
46
- display: inline-block;
47
- max-width: max-content;
43
+ .rs-form-control-wrapper {
44
+ display: inline-block;
45
+ }
48
46
  }
49
47
 
50
48
  // Horizontal forms
@@ -52,7 +50,7 @@
52
50
  // Horizontal forms are built on grid classes and allow you to create forms with
53
51
  // labels on the left and inputs on the right.
54
52
 
55
- .rs-form-horizontal .rs-form-group {
53
+ .rs-form-stack-horizontal .rs-form-group {
56
54
  .rs-form-control-wrapper {
57
55
  float: inline-start;
58
56
  }
@@ -63,7 +61,7 @@
63
61
  }
64
62
 
65
63
  // Inline
66
- .rs-form-inline .rs-form-group {
64
+ .rs-form-stack-inline .rs-form-group {
67
65
  .rs-form-control-wrapper {
68
66
  display: inline-block;
69
67
  }
@@ -27,6 +27,6 @@
27
27
  --rs-gray-600: #3c3f43;
28
28
  --rs-text-secondary: var(--rs-gray-200);
29
29
  }
30
- .rs-form-plaintext .rs-form-control-label {
30
+ [data-rs='form'][data-plaintext='true'] .rs-form-control-label {
31
31
  color: var(--rs-text-secondary);
32
32
  }
@@ -2,6 +2,6 @@
2
2
 
3
3
  // FormControlLabel
4
4
 
5
- .rs-form-plaintext .rs-form-control-label {
5
+ [data-rs='form'][data-plaintext='true'] .rs-form-control-label {
6
6
  color: var(--rs-text-secondary);
7
7
  }
@@ -15,18 +15,6 @@
15
15
  --rs-font-size-sm: 0.875rem;
16
16
  --rs-spacing: 0.25rem;
17
17
  }
18
- .rs-form {
19
- --rs-form-direction: column;
20
- --rs-form-spacing: calc(var(--rs-spacing) * 4);
21
- --rs-form-group-spacing: var(--rs-spacing);
22
- --rs-form-group-direction: column;
23
- display: flex;
24
- flex-direction: var(--rs-form-direction);
25
- gap: var(--rs-form-spacing);
26
- }
27
- .rs-form-inline {
28
- --rs-form-direction: row;
29
- }
30
18
  .rs-form-group {
31
19
  position: relative;
32
20
  display: flex;
@@ -39,31 +27,37 @@
39
27
  .rs-form-group textarea.rs-input {
40
28
  vertical-align: bottom;
41
29
  }
42
- .rs-form-vertical .rs-form-group .rs-form-control-label {
30
+ .rs-form-stack-vertical .rs-form-group .rs-form-control-label {
43
31
  display: block;
44
32
  }
45
- .rs-form-horizontal {
33
+ .rs-form-stack {
34
+ --rs-form-group-spacing: var(--rs-spacing);
35
+ --rs-form-group-direction: column;
36
+ }
37
+ .rs-form-stack-horizontal {
46
38
  --rs-form-control-label-width: 170px;
47
39
  --rs-form-group-spacing: calc(var(--rs-spacing) * 3);
48
40
  --rs-form-group-direction: row;
49
41
  }
50
- .rs-form-horizontal .rs-form-group {
42
+ .rs-form-stack-horizontal .rs-form-group {
51
43
  align-items: baseline;
52
44
  }
53
- .rs-form-horizontal .rs-form-group .rs-form-control-label {
45
+ .rs-form-stack-horizontal .rs-form-group .rs-form-control-label {
54
46
  display: inline-block;
55
47
  font-size: var(--rs-font-size-sm);
56
48
  width: var(--rs-form-control-label-width);
57
49
  text-align: end;
58
50
  }
59
- .rs-form-horizontal .rs-form-group .rs-btn-toolbar {
51
+ .rs-form-stack-horizontal .rs-form-group .rs-btn-toolbar {
60
52
  padding-inline-start: calc(var(--rs-form-control-label-width) + var(--rs-form-group-spacing));
61
53
  }
62
- .rs-form-inline {
63
- --rs-form-spacing: calc(var(--rs-spacing) * 4);
54
+ .rs-form-stack-inline {
64
55
  --rs-form-group-direction: row;
65
56
  --rs-form-group-spacing: calc(var(--rs-spacing) * 3);
66
57
  }
67
- .rs-form-inline .rs-form-group {
58
+ .rs-form-stack-inline .rs-form-group {
68
59
  align-items: center;
69
60
  }
61
+ .rs-form-stack-fluid .rs-form-group {
62
+ width: 100%;
63
+ }
@@ -21,18 +21,23 @@
21
21
  }
22
22
 
23
23
  // Vertical forms
24
- .rs-form-vertical .rs-form-group {
24
+ .rs-form-stack-vertical .rs-form-group {
25
25
  .rs-form-control-label {
26
26
  display: block;
27
27
  }
28
28
  }
29
29
 
30
+ .rs-form-stack {
31
+ --rs-form-group-spacing: var(--rs-spacing);
32
+ --rs-form-group-direction: column;
33
+ }
34
+
30
35
  // Horizontal forms
31
36
  //
32
37
  // Horizontal forms are built on grid classes and allow you to create forms with
33
38
  // labels on the left and inputs on the right.
34
39
 
35
- .rs-form-horizontal {
40
+ .rs-form-stack-horizontal {
36
41
  --rs-form-control-label-width: @form-control-label-width;
37
42
  --rs-form-group-spacing: calc(var(--rs-spacing) * 3);
38
43
  --rs-form-group-direction: row;
@@ -54,11 +59,17 @@
54
59
  }
55
60
 
56
61
  // Inline
57
- .rs-form-inline {
58
- --rs-form-spacing: calc(var(--rs-spacing) * 4);
62
+ .rs-form-stack-inline {
59
63
  --rs-form-group-direction: row;
60
64
  --rs-form-group-spacing: calc(var(--rs-spacing) * 3);
65
+
61
66
  .rs-form-group {
62
67
  align-items: center;
63
68
  }
64
69
  }
70
+
71
+ .rs-form-stack-fluid {
72
+ .rs-form-group {
73
+ width: 100%;
74
+ }
75
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "rsuite/FormStack",
3
+ "private": true,
4
+ "main": "../cjs/FormStack/index.js",
5
+ "module": "../esm/FormStack/index.js",
6
+ "types": "../esm/FormStack/index.d.ts"
7
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Map mixin
3
+ * @param {string} @size-name - The size name
4
+ * @param {string} @suffix - The suffix
5
+ */
6
+ /* stylelint-disable */
7
+ *[class*='rs-'] {
8
+ box-sizing: border-box;
9
+ }
10
+ *[class*='rs-']::before,
11
+ *[class*='rs-']::after {
12
+ box-sizing: border-box;
13
+ }
14
+ :root {
15
+ --rs-spacing: 0.25rem;
16
+ }
17
+ .rs-form-stack {
18
+ --rs-form-stack-dir: column;
19
+ --rs-form-stack-spacing: calc(var(--rs-spacing) * 4);
20
+ display: flex;
21
+ flex-direction: var(--rs-form-stack-dir);
22
+ gap: var(--rs-form-stack-spacing);
23
+ align-items: flex-start;
24
+ }
25
+ .rs-form-stack-inline {
26
+ --rs-form-stack-dir: row;
27
+ }
@@ -0,0 +1,15 @@
1
+ @import '../../styles/common';
2
+
3
+ .rs-form-stack {
4
+ --rs-form-stack-dir: column;
5
+ --rs-form-stack-spacing: calc(var(--rs-spacing) * 4);
6
+
7
+ display: flex;
8
+ flex-direction: var(--rs-form-stack-dir);
9
+ gap: var(--rs-form-stack-spacing);
10
+ align-items: flex-start;
11
+ }
12
+
13
+ .rs-form-stack-inline {
14
+ --rs-form-stack-dir: row;
15
+ }
@@ -42,6 +42,7 @@ import type { FormControlLabelProps } from '../FormControlLabel';
42
42
  import type { FormErrorMessageProps } from '../FormErrorMessage';
43
43
  import type { FormGroupProps } from '../FormGroup';
44
44
  import type { FormHelpTextProps } from '../FormHelpText';
45
+ import type { FormStackProps } from '../FormStack';
45
46
  import type { GridProps } from '../Grid';
46
47
  import type { HeaderProps } from '../Header';
47
48
  import type { HeadingProps } from '../Heading';
@@ -155,6 +156,7 @@ export interface ReactSuiteComponents {
155
156
  FormErrorMessage: ComponentProps<FormErrorMessageProps>;
156
157
  FormGroup: ComponentProps<FormGroupProps>;
157
158
  FormHelpText: ComponentProps<FormHelpTextProps>;
159
+ FormStack: ComponentProps<FormStackProps>;
158
160
  Grid: ComponentProps<GridProps>;
159
161
  Header: ComponentProps<HeaderProps>;
160
162
  Heading: ComponentProps<HeadingProps>;
@@ -102,10 +102,19 @@ declare const Form: import("../internals/types").InternalRefForwardingComponent<
102
102
  [x: string]: string | undefined;
103
103
  }>> | undefined;
104
104
  }, never> & {
105
+ Stack: import("../internals/types").InternalRefForwardingComponent<"span", import("../FormStack").FormStackProps, never> & Record<string, never>;
105
106
  Control: FormControlComponent;
106
- ControlLabel: import("../internals/types").InternalRefForwardingComponent<"label", import("../FormControlLabel").FormControlLabelProps, never> & Record<string, never>;
107
+ Label: import("../internals/types").InternalRefForwardingComponent<"label", import("../FormControlLabel").FormControlLabelProps, never> & Record<string, never>;
107
108
  ErrorMessage: import("../internals/types").InternalRefForwardingComponent<"div", import("../FormErrorMessage").FormErrorMessageProps, never> & Record<string, never>;
108
109
  Group: import("../internals/types").InternalRefForwardingComponent<"div", import("../FormGroup").FormGroupProps, never> & Record<string, never>;
110
+ Text: import("../internals/types").InternalRefForwardingComponent<"span", import("../FormHelpText").FormHelpTextProps, never> & Record<string, never>;
111
+ /**
112
+ * @deprecated Use `Form.Label` instead
113
+ */
114
+ ControlLabel: import("../internals/types").InternalRefForwardingComponent<"label", import("../FormControlLabel").FormControlLabelProps, never> & Record<string, never>;
115
+ /**
116
+ * @deprecated Use `Form.Text` instead
117
+ */
109
118
  HelpText: import("../internals/types").InternalRefForwardingComponent<"span", import("../FormHelpText").FormHelpTextProps, never> & Record<string, never>;
110
119
  };
111
120
  export default Form;
package/cjs/Form/Form.js CHANGED
@@ -5,28 +5,40 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  exports.__esModule = true;
6
6
  exports.default = void 0;
7
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
  var _FormControl = _interopRequireDefault(require("../FormControl"));
10
10
  var _FormControlLabel = _interopRequireDefault(require("../FormControlLabel"));
11
11
  var _FormErrorMessage = _interopRequireDefault(require("../FormErrorMessage"));
12
12
  var _FormGroup = _interopRequireDefault(require("../FormGroup"));
13
13
  var _FormHelpText = _interopRequireDefault(require("../FormHelpText"));
14
+ var _FormStack = _interopRequireDefault(require("../FormStack"));
15
+ var _Box = _interopRequireDefault(require("../internals/Box"));
14
16
  var _useSchemaModel = _interopRequireDefault(require("./hooks/useSchemaModel"));
15
17
  var _useFormValidate = _interopRequireDefault(require("./hooks/useFormValidate"));
16
18
  var _useFormValue = _interopRequireDefault(require("./hooks/useFormValue"));
17
- var _useFormClassNames = _interopRequireDefault(require("./hooks/useFormClassNames"));
18
19
  var _useFormRef = _interopRequireDefault(require("./hooks/useFormRef"));
19
20
  var _utils = require("../internals/utils");
20
21
  var _schemaTyped = require("schema-typed");
21
22
  var _hooks = require("../internals/hooks");
22
23
  var _FormContext = require("./FormContext");
23
24
  var _CustomProvider = require("../CustomProvider");
25
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
26
+ 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
27
  const defaultSchema = (0, _schemaTyped.SchemaModel)({});
25
28
  const Subcomponents = {
29
+ Stack: _FormStack.default,
26
30
  Control: _FormControl.default,
27
- ControlLabel: _FormControlLabel.default,
31
+ Label: _FormControlLabel.default,
28
32
  ErrorMessage: _FormErrorMessage.default,
29
33
  Group: _FormGroup.default,
34
+ Text: _FormHelpText.default,
35
+ /**
36
+ * @deprecated Use `Form.Label` instead
37
+ */
38
+ ControlLabel: _FormControlLabel.default,
39
+ /**
40
+ * @deprecated Use `Form.Text` instead
41
+ */
30
42
  HelpText: _FormHelpText.default
31
43
  };
32
44
 
@@ -40,18 +52,16 @@ const Form = (0, _utils.forwardRef)((props, ref) => {
40
52
  } = (0, _CustomProvider.useCustom)('Form', props);
41
53
  const {
42
54
  checkTrigger = 'change',
43
- classPrefix = 'form',
44
55
  errorFromContext = true,
45
56
  formDefaultValue = {},
46
57
  formValue: controlledFormValue,
47
58
  formError: controlledFormError,
48
- fluid,
49
59
  nestedField = false,
50
- layout = 'vertical',
60
+ fluid,
61
+ layout,
51
62
  model: formModel = defaultSchema,
52
63
  readOnly,
53
64
  plaintext,
54
- className,
55
65
  children,
56
66
  disabled,
57
67
  onSubmit,
@@ -95,15 +105,6 @@ const Form = (0, _utils.forwardRef)((props, ref) => {
95
105
  resetErrors,
96
106
  cleanErrorForField
97
107
  } = (0, _useFormValidate.default)(controlledFormError, formValidateProps);
98
- const classes = (0, _useFormClassNames.default)({
99
- classPrefix,
100
- className,
101
- fluid,
102
- layout,
103
- readOnly,
104
- plaintext,
105
- disabled
106
- });
107
108
  const submit = (0, _hooks.useEventCallback)(event => {
108
109
  // Check the form before submitting
109
110
  if (check()) {
@@ -177,16 +178,26 @@ const Form = (0, _utils.forwardRef)((props, ref) => {
177
178
  checkFieldForNextValue,
178
179
  checkFieldAsyncForNextValue
179
180
  };
180
- return /*#__PURE__*/_react.default.createElement("form", (0, _extends2.default)({}, rest, {
181
+ const formChild = (0, _react.useMemo)(() => {
182
+ return fluid || layout ? /*#__PURE__*/_react.default.createElement(_FormStack.default, {
183
+ fluid: fluid,
184
+ layout: layout
185
+ }, children) : children;
186
+ }, [fluid, children, layout]);
187
+ return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
188
+ as: "form",
189
+ "data-rs": "form",
190
+ "data-disabled": disabled,
191
+ "data-readonly": readOnly,
192
+ "data-plaintext": plaintext,
181
193
  ref: formRef,
182
194
  onSubmit: handleSubmit,
183
- onReset: handleReset,
184
- className: classes
185
- }), /*#__PURE__*/_react.default.createElement(_FormContext.FormProvider, {
195
+ onReset: handleReset
196
+ }, rest), /*#__PURE__*/_react.default.createElement(_FormContext.FormProvider, {
186
197
  value: formContextValue
187
198
  }, /*#__PURE__*/_react.default.createElement(_FormContext.FormValueProvider, {
188
199
  value: formValue
189
- }, children)));
200
+ }, formChild)));
190
201
  }, Subcomponents);
191
202
  Form.displayName = 'Form';
192
203
  var _default = exports.default = Form;
@@ -1,12 +1,13 @@
1
1
  import React from 'react';
2
2
  import Input from '../Input';
3
+ import { BoxProps } from '../internals/Box';
3
4
  import type { CheckType } from 'schema-typed';
4
- import type { PlacementCorners, FormControlBaseProps, WithAsProps, CheckTriggerType } from '../internals/types';
5
+ import type { PlacementCorners, FormControlBaseProps, CheckTriggerType } from '../internals/types';
5
6
  /**
6
7
  * Props that FormControl passes to its accepter
7
8
  */
8
9
  export type FormControlAccepterProps<ValueType = any> = FormControlBaseProps<ValueType>;
9
- export interface FormControlProps<ValueType = any> extends WithAsProps, Omit<React.HTMLAttributes<HTMLFormElement>, 'value' | 'onChange'> {
10
+ export interface FormControlProps<ValueType = any> extends BoxProps, Omit<React.HTMLAttributes<HTMLFormElement>, 'value' | 'onChange'> {
10
11
  /** Proxied components */
11
12
  accepter?: React.ElementType;
12
13
  /**
@@ -12,6 +12,7 @@ var _FormContext = _interopRequireWildcard(require("../Form/FormContext"));
12
12
  var _useRegisterModel = _interopRequireDefault(require("./hooks/useRegisterModel"));
13
13
  var _useField = _interopRequireDefault(require("./hooks/useField"));
14
14
  var _Toggle = _interopRequireDefault(require("../Toggle"));
15
+ var _Box = _interopRequireDefault(require("../internals/Box"));
15
16
  var _utils = require("../internals/utils");
16
17
  var _hooks = require("../internals/hooks");
17
18
  var _FormGroup = require("../FormGroup");
@@ -45,7 +46,7 @@ const FormControl = (0, _utils.forwardRef)((props, ref) => {
45
46
  checkFieldAsyncForNextValue
46
47
  } = (0, _react.useContext)(_FormContext.default);
47
48
  const {
48
- as: Component = 'div',
49
+ as,
49
50
  accepter: AccepterComponent = _Input.default,
50
51
  classPrefix = 'form-control',
51
52
  checkAsync,
@@ -133,7 +134,8 @@ const FormControl = (0, _utils.forwardRef)((props, ref) => {
133
134
  // need to distinguish between undefined and null
134
135
  [valueKey]: fieldValue === undefined ? defaultValue : fieldValue
135
136
  };
136
- return /*#__PURE__*/_react.default.createElement(Component, {
137
+ return /*#__PURE__*/_react.default.createElement(_Box.default, {
138
+ as: as,
137
139
  className: classes,
138
140
  ref: ref,
139
141
  "data-testid": "form-control-wrapper"
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import type { WithAsProps } from '../internals/types';
3
- export interface FormControlLabelProps extends WithAsProps, React.LabelHTMLAttributes<HTMLLabelElement> {
2
+ import { BoxProps } from '../internals/Box';
3
+ export interface FormControlLabelProps extends BoxProps, React.LabelHTMLAttributes<HTMLLabelElement> {
4
4
  /** Attribute of the html label tag, defaults to the controlId of the FormGroup */
5
5
  htmlFor?: string;
6
6
  }
@@ -6,6 +6,7 @@ exports.__esModule = true;
6
6
  exports.default = void 0;
7
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _Box = _interopRequireDefault(require("../internals/Box"));
9
10
  var _hooks = require("../internals/hooks");
10
11
  var _utils = require("../internals/utils");
11
12
  var _CustomProvider = require("../CustomProvider");
@@ -23,7 +24,7 @@ const FormControlLabel = (0, _utils.forwardRef)((props, ref) => {
23
24
  controlId
24
25
  } = (0, _FormGroup.useFormGroup)();
25
26
  const {
26
- as: Component = 'label',
27
+ as = 'label',
27
28
  classPrefix = 'form-control-label',
28
29
  htmlFor = controlId,
29
30
  className,
@@ -35,7 +36,8 @@ const FormControlLabel = (0, _utils.forwardRef)((props, ref) => {
35
36
  merge
36
37
  } = (0, _hooks.useStyles)(classPrefix);
37
38
  const classes = merge(className, withPrefix());
38
- return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
39
+ return /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
40
+ as: as,
39
41
  id: id,
40
42
  htmlFor: htmlFor
41
43
  }, rest, {
@@ -1,5 +1,6 @@
1
- import type { PlacementCorners, WithAsProps } from '../internals/types';
2
- export interface FormErrorMessageProps extends WithAsProps {
1
+ import { BoxProps } from '../internals/Box';
2
+ import type { PlacementCorners } from '../internals/types';
3
+ export interface FormErrorMessageProps extends BoxProps {
3
4
  /** Show error messages */
4
5
  show?: boolean;
5
6
  /** The placement of error messages */
@@ -6,6 +6,7 @@ exports.__esModule = true;
6
6
  exports.default = void 0;
7
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _Box = _interopRequireDefault(require("../internals/Box"));
9
10
  var _hooks = require("../internals/hooks");
10
11
  var _utils = require("../internals/utils");
11
12
  var _CustomProvider = require("../CustomProvider");
@@ -18,7 +19,7 @@ const FormErrorMessage = (0, _utils.forwardRef)((props, ref) => {
18
19
  propsWithDefaults
19
20
  } = (0, _CustomProvider.useCustom)('FormErrorMessage', props);
20
21
  const {
21
- as: Component = 'div',
22
+ as,
22
23
  classPrefix = 'form-error-message',
23
24
  className,
24
25
  show,
@@ -33,7 +34,8 @@ const FormErrorMessage = (0, _utils.forwardRef)((props, ref) => {
33
34
  } = (0, _hooks.useStyles)(classPrefix);
34
35
  const classes = withPrefix('show');
35
36
  const wrapperClasses = merge(className, prefix('wrapper'));
36
- return show ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
37
+ return show ? /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
38
+ as: as,
37
39
  ref: ref,
38
40
  "data-placement": (0, _utils.kebabPlace)(placement),
39
41
  className: wrapperClasses
@@ -1,5 +1,5 @@
1
- import type { WithAsProps } from '../internals/types';
2
- export interface FormGroupProps extends WithAsProps {
1
+ import { BoxProps } from '../internals/Box';
2
+ export interface FormGroupProps extends BoxProps {
3
3
  /**
4
4
  * Sets id on `<Form.Control>` and `htmlFor` on `<Form.ControlLabel>`.
5
5
  * And generate ʻaria-labelledby` and ʻaria-describedby` for `<Form.Control>`.
@@ -6,6 +6,7 @@ exports.__esModule = true;
6
6
  exports.useFormGroup = exports.default = void 0;
7
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
8
  var _react = _interopRequireWildcard(require("react"));
9
+ var _Box = _interopRequireDefault(require("../internals/Box"));
9
10
  var _utils = require("../internals/utils");
10
11
  var _hooks = require("../internals/hooks");
11
12
  var _CustomProvider = require("../CustomProvider");
@@ -49,7 +50,7 @@ const FormGroup = (0, _utils.forwardRef)((props, ref) => {
49
50
  propsWithDefaults
50
51
  } = (0, _CustomProvider.useCustom)('FormGroup', props);
51
52
  const {
52
- as: Component = 'div',
53
+ as,
53
54
  classPrefix = 'form-group',
54
55
  controlId: controlIdProp,
55
56
  className,
@@ -66,7 +67,9 @@ const FormGroup = (0, _utils.forwardRef)((props, ref) => {
66
67
  }), [controlId]);
67
68
  return /*#__PURE__*/_react.default.createElement(FormGroupContext.Provider, {
68
69
  value: contextValue
69
- }, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
70
+ }, /*#__PURE__*/_react.default.createElement(_Box.default, (0, _extends2.default)({
71
+ as: as
72
+ }, rest, {
70
73
  ref: ref,
71
74
  className: classes,
72
75
  role: "group"
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import type { WithAsProps } from '../internals/types';
3
- export interface FormHelpTextProps extends WithAsProps, React.HTMLAttributes<HTMLSpanElement> {
2
+ import { BoxProps } from '../internals/Box';
3
+ export interface FormHelpTextProps extends BoxProps, React.HTMLAttributes<HTMLSpanElement> {
4
4
  /** Whether to show through the Tooltip component */
5
5
  tooltip?: boolean;
6
6
  }