@pixpilot/formily-shadcn 0.9.1 → 0.11.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 (145) hide show
  1. package/README.md +102 -1
  2. package/dist/components/array-base/components/array-item-label.cjs +1 -1
  3. package/dist/components/array-base/components/array-item-label.js +1 -1
  4. package/dist/components/checkbox.d.ts +2 -2
  5. package/dist/components/column.d.ts +2 -2
  6. package/dist/components/context/context.d.cts +1 -1
  7. package/dist/components/context/context.d.ts +1 -1
  8. package/dist/components/context/form-context.d.cts +52 -19
  9. package/dist/components/context/form-context.d.ts +52 -19
  10. package/dist/components/context/index.d.cts +1 -1
  11. package/dist/components/context/index.d.ts +1 -1
  12. package/dist/components/date-picker.d.cts +3 -3
  13. package/dist/components/date-picker.d.ts +3 -3
  14. package/dist/components/file-upload/file-upload-inline.d.cts +8 -8
  15. package/dist/components/file-upload/file-upload-inline.d.ts +8 -8
  16. package/dist/components/file-upload/file-upload.d.cts +8 -8
  17. package/dist/components/file-upload/file-upload.d.ts +8 -8
  18. package/dist/components/file-upload/use-file-upload-feedback.cjs +2 -2
  19. package/dist/components/file-upload/use-file-upload-feedback.js +2 -2
  20. package/dist/components/form-grid.d.cts +2 -2
  21. package/dist/components/form-grid.d.ts +2 -2
  22. package/dist/components/form-item/base-form-item.cjs +85 -0
  23. package/dist/components/form-item/base-form-item.d.cts +2 -0
  24. package/dist/components/form-item/base-form-item.d.ts +2 -0
  25. package/dist/components/form-item/base-form-item.js +80 -0
  26. package/dist/components/form-item/connected-form-item.cjs +47 -0
  27. package/dist/components/form-item/connected-form-item.d.cts +13 -0
  28. package/dist/components/form-item/connected-form-item.d.ts +13 -0
  29. package/dist/components/form-item/connected-form-item.js +44 -0
  30. package/dist/components/form-item/form-item-description-popover.cjs +42 -0
  31. package/dist/components/form-item/form-item-description-popover.js +37 -0
  32. package/dist/components/form-item/form-item-label.cjs +29 -0
  33. package/dist/components/form-item/form-item-label.js +25 -0
  34. package/dist/components/form-item/form-item-types.d.cts +23 -0
  35. package/dist/components/form-item/form-item-types.d.ts +23 -0
  36. package/dist/components/form-item/form-item.cjs +2 -0
  37. package/dist/components/form-item/form-item.d.cts +4 -0
  38. package/dist/components/form-item/form-item.d.ts +4 -0
  39. package/dist/components/form-item/form-item.js +2 -0
  40. package/dist/components/form-item/index.cjs +3 -0
  41. package/dist/components/form-item/index.d.cts +4 -0
  42. package/dist/components/form-item/index.d.ts +4 -0
  43. package/dist/components/form-item/index.js +3 -0
  44. package/dist/components/form-item/spacing-config.cjs +24 -0
  45. package/dist/components/form-item/spacing-config.js +23 -0
  46. package/dist/components/form-items-container.cjs +3 -5
  47. package/dist/components/form-items-container.js +3 -5
  48. package/dist/components/form.cjs +5 -14
  49. package/dist/components/form.d.cts +4 -7
  50. package/dist/components/form.d.ts +2 -5
  51. package/dist/components/form.js +5 -14
  52. package/dist/components/icon-picker.cjs +2 -2
  53. package/dist/components/icon-picker.d.cts +3 -3
  54. package/dist/components/icon-picker.d.ts +3 -3
  55. package/dist/components/icon-picker.js +2 -2
  56. package/dist/components/input.d.cts +2 -2
  57. package/dist/components/input.d.ts +2 -2
  58. package/dist/components/json-schema-form-renderer/index.cjs +4 -0
  59. package/dist/components/json-schema-form-renderer/index.d.cts +5 -0
  60. package/dist/components/json-schema-form-renderer/index.d.ts +5 -0
  61. package/dist/components/json-schema-form-renderer/index.js +4 -0
  62. package/dist/components/json-schema-form-renderer/json-schema-form-basic.cjs +35 -0
  63. package/dist/components/json-schema-form-renderer/json-schema-form-basic.d.cts +14 -0
  64. package/dist/components/json-schema-form-renderer/json-schema-form-basic.d.ts +14 -0
  65. package/dist/components/json-schema-form-renderer/json-schema-form-basic.js +32 -0
  66. package/dist/components/json-schema-form-renderer/json-schema-form-extended.cjs +35 -0
  67. package/dist/components/json-schema-form-renderer/json-schema-form-extended.d.cts +14 -0
  68. package/dist/components/json-schema-form-renderer/json-schema-form-extended.d.ts +14 -0
  69. package/dist/components/json-schema-form-renderer/json-schema-form-extended.js +32 -0
  70. package/dist/components/json-schema-form-renderer/json-schema-form-renderer.cjs +57 -0
  71. package/dist/components/json-schema-form-renderer/json-schema-form-renderer.d.cts +7 -0
  72. package/dist/components/json-schema-form-renderer/json-schema-form-renderer.d.ts +7 -0
  73. package/dist/components/json-schema-form-renderer/json-schema-form-renderer.js +51 -0
  74. package/dist/components/json-schema-form-renderer/json-schema-form.cjs +36 -0
  75. package/dist/components/json-schema-form-renderer/json-schema-form.d.cts +14 -0
  76. package/dist/components/json-schema-form-renderer/json-schema-form.d.ts +14 -0
  77. package/dist/components/json-schema-form-renderer/json-schema-form.js +33 -0
  78. package/dist/components/json-schema-form-renderer/types.d.cts +23 -0
  79. package/dist/components/json-schema-form-renderer/types.d.ts +23 -0
  80. package/dist/components/number-input.d.cts +2 -2
  81. package/dist/components/number-input.d.ts +2 -2
  82. package/dist/components/object-container.cjs +42 -9
  83. package/dist/components/object-container.js +43 -10
  84. package/dist/components/radio.d.cts +2 -2
  85. package/dist/components/radio.d.ts +2 -2
  86. package/dist/components/rich-text-editor.cjs +1 -1
  87. package/dist/components/rich-text-editor.js +1 -1
  88. package/dist/components/row.d.cts +2 -2
  89. package/dist/components/row.d.ts +2 -2
  90. package/dist/components/schema-field/index.d.cts +3 -3
  91. package/dist/components/schema-field/index.d.ts +3 -3
  92. package/dist/components/schema-field/index.js +3 -3
  93. package/dist/components/schema-field/schema-field-basics.cjs +67 -24
  94. package/dist/components/schema-field/schema-field-basics.d.cts +283 -198
  95. package/dist/components/schema-field/schema-field-basics.d.ts +283 -198
  96. package/dist/components/schema-field/schema-field-basics.js +65 -23
  97. package/dist/components/schema-field/schema-field-extended.cjs +23 -8
  98. package/dist/components/schema-field/schema-field-extended.d.cts +442 -307
  99. package/dist/components/schema-field/schema-field-extended.d.ts +442 -307
  100. package/dist/components/schema-field/schema-field-extended.js +23 -9
  101. package/dist/components/schema-field/schema-field.cjs +23 -8
  102. package/dist/components/schema-field/schema-field.d.cts +338 -237
  103. package/dist/components/schema-field/schema-field.d.ts +338 -237
  104. package/dist/components/schema-field/schema-field.js +23 -9
  105. package/dist/components/separator.d.ts +2 -2
  106. package/dist/components/slider.d.cts +2 -2
  107. package/dist/components/slider.d.ts +2 -2
  108. package/dist/components/switch.d.ts +2 -2
  109. package/dist/components/tags-input-inline.d.cts +2 -2
  110. package/dist/components/tags-input-inline.d.ts +2 -2
  111. package/dist/components/textarea.d.ts +2 -2
  112. package/dist/hooks/index.js +1 -1
  113. package/dist/hooks/use-form-context.cjs +5 -0
  114. package/dist/hooks/use-form-context.js +5 -1
  115. package/dist/hooks/use-label.cjs +9 -2
  116. package/dist/hooks/use-label.js +9 -2
  117. package/dist/index.cjs +17 -6
  118. package/dist/index.d.cts +14 -6
  119. package/dist/index.d.ts +14 -6
  120. package/dist/index.js +11 -6
  121. package/dist/types/form-item.d.cts +5 -0
  122. package/dist/types/form-item.d.ts +5 -0
  123. package/dist/types/form.d.cts +0 -6
  124. package/dist/types/form.d.ts +0 -6
  125. package/dist/utils/extract-components.cjs +11 -0
  126. package/dist/utils/extract-components.js +10 -0
  127. package/dist/utils/extract-fields-decorators.cjs +37 -0
  128. package/dist/utils/extract-fields-decorators.js +36 -0
  129. package/dist/utils/index.cjs +2 -0
  130. package/dist/utils/index.js +3 -1
  131. package/dist/utils/resolve-responsive-space.cjs +45 -89
  132. package/dist/utils/resolve-responsive-space.js +42 -83
  133. package/dist/utils/transform-schema.cjs +9 -2
  134. package/dist/utils/transform-schema.js +9 -2
  135. package/dist/utils/validate-schema-components.cjs +45 -0
  136. package/dist/utils/validate-schema-components.js +43 -0
  137. package/package.json +4 -3
  138. package/dist/components/form-item.cjs +0 -118
  139. package/dist/components/form-item.d.cts +0 -22
  140. package/dist/components/form-item.d.ts +0 -22
  141. package/dist/components/form-item.js +0 -112
  142. package/dist/components/json-schema-form-renderer.cjs +0 -31
  143. package/dist/components/json-schema-form-renderer.d.cts +0 -15
  144. package/dist/components/json-schema-form-renderer.d.ts +0 -15
  145. package/dist/components/json-schema-form-renderer.js +0 -27
@@ -1,19 +1,33 @@
1
1
  import { Combobox as Combobox$1 } from "../combobox.js";
2
+ import { extractComponents } from "../../utils/extract-components.js";
2
3
  import { Slider as Slider$1 } from "../slider.js";
3
4
  import { TagsInputInLine } from "../tags-input-inline.js";
4
- import { SchemaFieldBasicComponents } from "./schema-field-basics.js";
5
+ import { basicComponentRegistry } from "./schema-field-basics.js";
5
6
  import { createSchemaField } from "@formily/react";
6
7
  import { TagsInput } from "@pixpilot/shadcn-ui";
7
8
 
8
9
  //#region src/components/schema-field/schema-field.tsx
9
- const schemaFieldComponents = {
10
- ...SchemaFieldBasicComponents,
11
- Combobox: Combobox$1,
12
- TagsInput,
13
- TagsInputInLine,
14
- Slider: Slider$1
10
+ const defaultComponentRegistry = {
11
+ ...basicComponentRegistry,
12
+ Combobox: {
13
+ component: Combobox$1,
14
+ decorator: "FormItem"
15
+ },
16
+ TagsInput: {
17
+ component: TagsInput,
18
+ decorator: "FormItem"
19
+ },
20
+ TagsInputInLine: {
21
+ component: TagsInputInLine,
22
+ decorator: "FormItem"
23
+ },
24
+ Slider: {
25
+ component: Slider$1,
26
+ decorator: "FormItem"
27
+ }
15
28
  };
16
- const SchemaField = createSchemaField({ components: schemaFieldComponents });
29
+ const defaultComponents = extractComponents(defaultComponentRegistry);
30
+ const SchemaField = createSchemaField({ components: defaultComponents });
17
31
 
18
32
  //#endregion
19
- export { SchemaField, schemaFieldComponents };
33
+ export { SchemaField, defaultComponentRegistry, defaultComponents };
@@ -1,4 +1,4 @@
1
- import * as react18 from "react";
1
+ import * as react14 from "react";
2
2
  import * as _radix_ui_react_separator0 from "@radix-ui/react-separator";
3
3
 
4
4
  //#region src/components/separator.d.ts
@@ -6,6 +6,6 @@ import * as _radix_ui_react_separator0 from "@radix-ui/react-separator";
6
6
  * Formily-connected Separator component
7
7
  * A visual divider for content sections
8
8
  */
9
- declare const Separator: react18.ForwardRefExoticComponent<Omit<Partial<_radix_ui_react_separator0.SeparatorProps & react18.RefAttributes<HTMLDivElement>>, "ref"> & react18.RefAttributes<unknown>>;
9
+ declare const Separator: react14.ForwardRefExoticComponent<Omit<Partial<_radix_ui_react_separator0.SeparatorProps & react14.RefAttributes<HTMLDivElement>>, "ref"> & react14.RefAttributes<unknown>>;
10
10
  //#endregion
11
11
  export { Separator };
@@ -1,4 +1,4 @@
1
- import * as react17 from "react";
1
+ import * as react22 from "react";
2
2
  import { SliderProps } from "@pixpilot/shadcn-ui";
3
3
 
4
4
  //#region src/components/slider.d.ts
@@ -7,6 +7,6 @@ import { SliderProps } from "@pixpilot/shadcn-ui";
7
7
  * Formily-connected Slider component
8
8
  * Range input for selecting numeric values
9
9
  */
10
- declare const Slider: react17.ForwardRefExoticComponent<Omit<Partial<SliderProps>, "ref"> & react17.RefAttributes<unknown>>;
10
+ declare const Slider: react22.ForwardRefExoticComponent<Omit<Partial<SliderProps>, "ref"> & react22.RefAttributes<unknown>>;
11
11
  //#endregion
12
12
  export { Slider };
@@ -1,4 +1,4 @@
1
- import * as react24 from "react";
1
+ import * as react26 from "react";
2
2
  import { SliderProps } from "@pixpilot/shadcn-ui";
3
3
 
4
4
  //#region src/components/slider.d.ts
@@ -7,6 +7,6 @@ import { SliderProps } from "@pixpilot/shadcn-ui";
7
7
  * Formily-connected Slider component
8
8
  * Range input for selecting numeric values
9
9
  */
10
- declare const Slider$1: react24.ForwardRefExoticComponent<Omit<Partial<SliderProps>, "ref"> & react24.RefAttributes<unknown>>;
10
+ declare const Slider$1: react26.ForwardRefExoticComponent<Omit<Partial<SliderProps>, "ref"> & react26.RefAttributes<unknown>>;
11
11
  //#endregion
12
12
  export { Slider$1 as Slider };
@@ -1,4 +1,4 @@
1
- import * as react21 from "react";
1
+ import * as react17 from "react";
2
2
  import * as _radix_ui_react_switch0 from "@radix-ui/react-switch";
3
3
 
4
4
  //#region src/components/switch.d.ts
@@ -6,6 +6,6 @@ import * as _radix_ui_react_switch0 from "@radix-ui/react-switch";
6
6
  * Formily-connected Switch component
7
7
  * Toggle switch for boolean values
8
8
  */
9
- declare const Switch: react21.ForwardRefExoticComponent<Omit<Partial<_radix_ui_react_switch0.SwitchProps & react21.RefAttributes<HTMLButtonElement>>, "ref"> & react21.RefAttributes<unknown>>;
9
+ declare const Switch: react17.ForwardRefExoticComponent<Omit<Partial<_radix_ui_react_switch0.SwitchProps & react17.RefAttributes<HTMLButtonElement>>, "ref"> & react17.RefAttributes<unknown>>;
10
10
  //#endregion
11
11
  export { Switch };
@@ -1,4 +1,4 @@
1
- import * as react22 from "react";
1
+ import * as react17 from "react";
2
2
  import * as _pixpilot_shadcn_ui0 from "@pixpilot/shadcn-ui";
3
3
 
4
4
  //#region src/components/tags-input-inline.d.ts
@@ -10,6 +10,6 @@ import * as _pixpilot_shadcn_ui0 from "@pixpilot/shadcn-ui";
10
10
  * Based on DiceUI's tags-input for inline tag editing with keyboard navigation
11
11
  * and validation support.
12
12
  */
13
- declare const TagsInputInLine: react22.ForwardRefExoticComponent<Partial<_pixpilot_shadcn_ui0.TagsInputProps> & react22.RefAttributes<unknown>>;
13
+ declare const TagsInputInLine: react17.ForwardRefExoticComponent<Partial<_pixpilot_shadcn_ui0.TagsInputProps> & react17.RefAttributes<unknown>>;
14
14
  //#endregion
15
15
  export { TagsInputInLine };
@@ -1,4 +1,4 @@
1
- import * as react26 from "react";
1
+ import * as react20 from "react";
2
2
  import * as _pixpilot_shadcn_ui0 from "@pixpilot/shadcn-ui";
3
3
 
4
4
  //#region src/components/tags-input-inline.d.ts
@@ -10,6 +10,6 @@ import * as _pixpilot_shadcn_ui0 from "@pixpilot/shadcn-ui";
10
10
  * Based on DiceUI's tags-input for inline tag editing with keyboard navigation
11
11
  * and validation support.
12
12
  */
13
- declare const TagsInputInLine: react26.ForwardRefExoticComponent<Partial<_pixpilot_shadcn_ui0.TagsInputProps> & react26.RefAttributes<unknown>>;
13
+ declare const TagsInputInLine: react20.ForwardRefExoticComponent<Partial<_pixpilot_shadcn_ui0.TagsInputProps> & react20.RefAttributes<unknown>>;
14
14
  //#endregion
15
15
  export { TagsInputInLine };
@@ -1,9 +1,9 @@
1
- import * as react0 from "react";
1
+ import * as react22 from "react";
2
2
 
3
3
  //#region src/components/textarea.d.ts
4
4
  /**
5
5
  * Formily-connected Textarea component
6
6
  */
7
- declare const Textarea: react0.ForwardRefExoticComponent<Omit<Partial<react0.ClassAttributes<HTMLTextAreaElement> & react0.TextareaHTMLAttributes<HTMLTextAreaElement>>, "ref"> & react0.RefAttributes<unknown>>;
7
+ declare const Textarea: react22.ForwardRefExoticComponent<Omit<Partial<react22.ClassAttributes<HTMLTextAreaElement> & react22.TextareaHTMLAttributes<HTMLTextAreaElement>>, "ref"> & react22.RefAttributes<unknown>>;
8
8
  //#endregion
9
9
  export { Textarea };
@@ -1,3 +1,3 @@
1
1
  import { useDescription } from "./use-description.js";
2
- import { useFormContext } from "./use-form-context.js";
2
+ import { useFormConfig, useFormContext } from "./use-form-context.js";
3
3
  import { useLabel } from "./use-label.js";
@@ -8,6 +8,11 @@ react = require_rolldown_runtime.__toESM(react);
8
8
  function useFormContext() {
9
9
  return (0, react.use)(require_form_context.FormContext);
10
10
  }
11
+ function useFormConfig() {
12
+ const { settings } = useFormContext();
13
+ return settings || {};
14
+ }
11
15
 
12
16
  //#endregion
17
+ exports.useFormConfig = useFormConfig;
13
18
  exports.useFormContext = useFormContext;
@@ -6,6 +6,10 @@ import { use } from "react";
6
6
  function useFormContext() {
7
7
  return use(FormContext);
8
8
  }
9
+ function useFormConfig() {
10
+ const { settings } = useFormContext();
11
+ return settings || {};
12
+ }
9
13
 
10
14
  //#endregion
11
- export { useFormContext };
15
+ export { useFormConfig, useFormContext };
@@ -1,17 +1,24 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_use_form_context = require('./use-form-context.cjs');
2
3
  let __formily_react = require("@formily/react");
3
4
  __formily_react = require_rolldown_runtime.__toESM(__formily_react);
4
5
  let __pixpilot_string = require("@pixpilot/string");
5
6
  __pixpilot_string = require_rolldown_runtime.__toESM(__pixpilot_string);
6
7
 
7
8
  //#region src/hooks/use-label.ts
9
+ function shouldHaveLabel(value) {
10
+ if (typeof value === "boolean" && value === false) return false;
11
+ return true;
12
+ }
8
13
  function useLabel(label) {
9
14
  const schema = (0, __formily_react.useFieldSchema)();
10
15
  const name = schema.name;
11
16
  const title = schema.title;
17
+ const { useFieldNameAsLabel } = require_use_form_context.useFormConfig().label || {};
18
+ if (!shouldHaveLabel(label) || !shouldHaveLabel(title)) return null;
12
19
  if (label != null) return label;
13
- if (title != null) return typeof title === "string" ? (0, __pixpilot_string.toCapitalCase)(title) : title;
14
- if (name != null) return typeof name === "string" ? (0, __pixpilot_string.toCapitalCase)(name) : name;
20
+ if (title != null) return title;
21
+ if (name != null && useFieldNameAsLabel) return typeof name === "string" ? (0, __pixpilot_string.toCapitalCase)(name) : name;
15
22
  return null;
16
23
  }
17
24
 
@@ -1,14 +1,21 @@
1
+ import { useFormConfig } from "./use-form-context.js";
1
2
  import { useFieldSchema } from "@formily/react";
2
3
  import { toCapitalCase } from "@pixpilot/string";
3
4
 
4
5
  //#region src/hooks/use-label.ts
6
+ function shouldHaveLabel(value) {
7
+ if (typeof value === "boolean" && value === false) return false;
8
+ return true;
9
+ }
5
10
  function useLabel(label) {
6
11
  const schema = useFieldSchema();
7
12
  const name = schema.name;
8
13
  const title = schema.title;
14
+ const { useFieldNameAsLabel } = useFormConfig().label || {};
15
+ if (!shouldHaveLabel(label) || !shouldHaveLabel(title)) return null;
9
16
  if (label != null) return label;
10
- if (title != null) return typeof title === "string" ? toCapitalCase(title) : title;
11
- if (name != null) return typeof name === "string" ? toCapitalCase(name) : name;
17
+ if (title != null) return title;
18
+ if (name != null && useFieldNameAsLabel) return typeof name === "string" ? toCapitalCase(name) : name;
12
19
  return null;
13
20
  }
14
21
 
package/dist/index.cjs CHANGED
@@ -14,7 +14,8 @@ const require_file_upload_inline = require('./components/file-upload/file-upload
14
14
  require('./components/file-upload/index.cjs');
15
15
  const require_form = require('./components/form.cjs');
16
16
  const require_form_grid = require('./components/form-grid.cjs');
17
- const require_form_item = require('./components/form-item.cjs');
17
+ const require_connected_form_item = require('./components/form-item/connected-form-item.cjs');
18
+ require('./components/form-item/index.cjs');
18
19
  const require_icon_picker = require('./components/icon-picker.cjs');
19
20
  const require_input = require('./components/input.cjs');
20
21
  const require_slider = require('./components/slider.cjs');
@@ -31,7 +32,11 @@ const require_schema_field = require('./components/schema-field/schema-field.cjs
31
32
  const require_rich_text_editor = require('./components/rich-text-editor.cjs');
32
33
  const require_schema_field_extended = require('./components/schema-field/schema-field-extended.cjs');
33
34
  require('./components/schema-field/index.cjs');
34
- const require_json_schema_form_renderer = require('./components/json-schema-form-renderer.cjs');
35
+ const require_json_schema_form_renderer = require('./components/json-schema-form-renderer/json-schema-form-renderer.cjs');
36
+ const require_json_schema_form = require('./components/json-schema-form-renderer/json-schema-form.cjs');
37
+ const require_json_schema_form_basic = require('./components/json-schema-form-renderer/json-schema-form-basic.cjs');
38
+ const require_json_schema_form_extended = require('./components/json-schema-form-renderer/json-schema-form-extended.cjs');
39
+ require('./components/json-schema-form-renderer/index.cjs');
35
40
  let __formily_react = require("@formily/react");
36
41
  __formily_react = require_rolldown_runtime.__toESM(__formily_react);
37
42
  let __formily_core = require("@formily/core");
@@ -61,7 +66,7 @@ Object.defineProperty(exports, 'FormConsumer', {
61
66
  }
62
67
  });
63
68
  exports.FormGrid = require_form_grid.FormGrid;
64
- exports.FormItem = require_form_item.FormItem;
69
+ exports.FormItem = require_connected_form_item.FormItem;
65
70
  Object.defineProperty(exports, 'FormProvider', {
66
71
  enumerable: true,
67
72
  get: function () {
@@ -70,6 +75,9 @@ Object.defineProperty(exports, 'FormProvider', {
70
75
  });
71
76
  exports.IconPicker = require_icon_picker.IconPicker;
72
77
  exports.Input = require_input.Input;
78
+ exports.JsonSchemaForm = require_json_schema_form.JsonSchemaForm;
79
+ exports.JsonSchemaFormBasic = require_json_schema_form_basic.JsonSchemaFormBasic;
80
+ exports.JsonSchemaFormExtended = require_json_schema_form_extended.JsonSchemaFormExtended;
73
81
  exports.JsonSchemaFormRenderer = require_json_schema_form_renderer.JsonSchemaFormRenderer;
74
82
  exports.NumberInput = require_number_input.NumberInput;
75
83
  Object.defineProperty(exports, 'ObjectField', {
@@ -82,7 +90,6 @@ exports.Radio = require_radio.Radio;
82
90
  exports.RichTextEditor = require_rich_text_editor.RichTextEditor;
83
91
  exports.Row = require_row.Row;
84
92
  exports.SchemaField = require_schema_field.SchemaField;
85
- exports.SchemaFieldBasicComponents = require_schema_field_basics.SchemaFieldBasicComponents;
86
93
  exports.SchemaFieldBasics = require_schema_field_basics.SchemaFieldBasics;
87
94
  exports.SchemaFieldExtended = require_schema_field_extended.SchemaFieldExtended;
88
95
  exports.Select = require_select.Select;
@@ -97,11 +104,15 @@ Object.defineProperty(exports, 'VoidField', {
97
104
  return __formily_react.VoidField;
98
105
  }
99
106
  });
107
+ exports.basicComponentRegistry = require_schema_field_basics.basicComponentRegistry;
108
+ exports.basicComponents = require_schema_field_basics.basicComponents;
100
109
  Object.defineProperty(exports, 'createForm', {
101
110
  enumerable: true,
102
111
  get: function () {
103
112
  return __formily_core.createForm;
104
113
  }
105
114
  });
106
- exports.schemaFieldComponents = require_schema_field.schemaFieldComponents;
107
- exports.schemaFieldExtendedComponents = require_schema_field_extended.schemaFieldExtendedComponents;
115
+ exports.defaultComponentRegistry = require_schema_field.defaultComponentRegistry;
116
+ exports.defaultComponents = require_schema_field.defaultComponents;
117
+ exports.extendedComponentRegistry = require_schema_field_extended.extendedComponentRegistry;
118
+ exports.extendedComponents = require_schema_field_extended.extendedComponents;
package/dist/index.d.cts CHANGED
@@ -8,23 +8,31 @@ import "./components/array-collapse/index.cjs";
8
8
  import { Checkbox } from "./components/checkbox.cjs";
9
9
  import { Column } from "./components/column.cjs";
10
10
  import { Combobox } from "./components/combobox.cjs";
11
+ import { FormLayoutOptions } from "./components/context/form-context.cjs";
12
+ import "./components/context/index.cjs";
11
13
  import { DatePicker } from "./components/date-picker.cjs";
12
14
  import { FileUpload } from "./components/file-upload/file-upload.cjs";
13
15
  import { FileUploadInline } from "./components/file-upload/file-upload-inline.cjs";
14
16
  import "./components/file-upload/index.cjs";
15
17
  import { Form } from "./components/form.cjs";
16
18
  import { FormGrid } from "./components/form-grid.cjs";
17
- import { FormItem } from "./components/form-item.cjs";
19
+ import { FormItem } from "./components/form-item/connected-form-item.cjs";
20
+ import "./components/form-item/index.cjs";
18
21
  import { IconPicker } from "./components/icon-picker.cjs";
19
22
  import { Input } from "./components/input.cjs";
20
- import { JsonSchemaFormRenderer, JsonSchemaFormRendererProps } from "./components/json-schema-form-renderer.cjs";
23
+ import { JsonSchemaFormComponent, JsonSchemaFormComponents, JsonSchemaFormProps, JsonSchemaFormRendererProps } from "./components/json-schema-form-renderer/types.cjs";
24
+ import { JsonSchemaForm } from "./components/json-schema-form-renderer/json-schema-form.cjs";
25
+ import { JsonSchemaFormBasic } from "./components/json-schema-form-renderer/json-schema-form-basic.cjs";
26
+ import { JsonSchemaFormExtended } from "./components/json-schema-form-renderer/json-schema-form-extended.cjs";
27
+ import { JsonSchemaFormRenderer } from "./components/json-schema-form-renderer/json-schema-form-renderer.cjs";
28
+ import "./components/json-schema-form-renderer/index.cjs";
21
29
  import { NumberInput } from "./components/number-input.cjs";
22
30
  import { ConnectedRadio, Radio } from "./components/radio.cjs";
23
31
  import { RichTextEditor } from "./components/rich-text-editor.cjs";
24
32
  import { Row } from "./components/row.cjs";
25
- import { SchemaField, schemaFieldComponents } from "./components/schema-field/schema-field.cjs";
26
- import { SchemaFieldBasicComponents, SchemaFieldBasics } from "./components/schema-field/schema-field-basics.cjs";
27
- import { SchemaFieldExtended, schemaFieldExtendedComponents } from "./components/schema-field/schema-field-extended.cjs";
33
+ import { SchemaField, defaultComponentRegistry, defaultComponents } from "./components/schema-field/schema-field.cjs";
34
+ import { SchemaFieldBasics, basicComponentRegistry, basicComponents } from "./components/schema-field/schema-field-basics.cjs";
35
+ import { SchemaFieldExtended, extendedComponentRegistry, extendedComponents } from "./components/schema-field/schema-field-extended.cjs";
28
36
  import "./components/schema-field/index.cjs";
29
37
  import { Select } from "./components/select.cjs";
30
38
  import { Separator } from "./components/separator.cjs";
@@ -34,4 +42,4 @@ import { TagsInputInLine } from "./components/tags-input-inline.cjs";
34
42
  import { Textarea } from "./components/textarea.cjs";
35
43
  import { Field, FormConsumer, FormProvider, ISchema, ObjectField, VoidField } from "@formily/react";
36
44
  import { Form as IForm, createForm } from "@formily/core";
37
- export { ArrayBase, type ArrayBaseMixins, ArrayCards, ArrayCollapse, Checkbox, Column, Combobox, ConnectedRadio, DatePicker, Field, FileUpload, FileUploadInline, Form, FormConsumer, FormGrid, FormItem, FormProvider, type IArrayBaseOperationProps, type IArrayBaseProps, type IForm, type ISchema, IconPicker, Input, JsonSchemaFormRenderer, JsonSchemaFormRendererProps, NumberInput, ObjectField, Radio, RichTextEditor, Row, SchemaField, SchemaFieldBasicComponents, SchemaFieldBasics, SchemaFieldExtended, Select, Separator, Slider, Switch, TagsInputInLine, Textarea, VoidField, createForm, schemaFieldComponents, schemaFieldExtendedComponents };
45
+ export { ArrayBase, type ArrayBaseMixins, ArrayCards, ArrayCollapse, Checkbox, Column, Combobox, ConnectedRadio, DatePicker, Field, FileUpload, FileUploadInline, Form, FormConsumer, FormGrid, FormItem, type FormLayoutOptions, FormProvider, type IArrayBaseOperationProps, type IArrayBaseProps, type IForm, type ISchema, IconPicker, Input, JsonSchemaForm, JsonSchemaFormBasic, JsonSchemaFormComponent, JsonSchemaFormComponents, JsonSchemaFormExtended, JsonSchemaFormProps, JsonSchemaFormRenderer, JsonSchemaFormRendererProps, NumberInput, ObjectField, Radio, RichTextEditor, Row, SchemaField, SchemaFieldBasics, SchemaFieldExtended, Select, Separator, Slider, Switch, TagsInputInLine, Textarea, VoidField, basicComponentRegistry, basicComponents, createForm, defaultComponentRegistry, defaultComponents, extendedComponentRegistry, extendedComponents };
package/dist/index.d.ts CHANGED
@@ -8,23 +8,31 @@ import "./components/array-collapse/index.js";
8
8
  import { Checkbox } from "./components/checkbox.js";
9
9
  import { Column } from "./components/column.js";
10
10
  import { Combobox } from "./components/combobox.js";
11
+ import { FormLayoutOptions } from "./components/context/form-context.js";
12
+ import "./components/context/index.js";
11
13
  import { DatePicker } from "./components/date-picker.js";
12
14
  import { FileUpload } from "./components/file-upload/file-upload.js";
13
15
  import { FileUploadInline } from "./components/file-upload/file-upload-inline.js";
14
16
  import "./components/file-upload/index.js";
15
17
  import { Form } from "./components/form.js";
16
18
  import { FormGrid } from "./components/form-grid.js";
17
- import { FormItem } from "./components/form-item.js";
19
+ import { FormItem } from "./components/form-item/connected-form-item.js";
20
+ import "./components/form-item/index.js";
18
21
  import { IconPicker } from "./components/icon-picker.js";
19
22
  import { Input } from "./components/input.js";
20
- import { JsonSchemaFormRenderer, JsonSchemaFormRendererProps } from "./components/json-schema-form-renderer.js";
23
+ import { JsonSchemaFormComponent, JsonSchemaFormComponents, JsonSchemaFormProps, JsonSchemaFormRendererProps } from "./components/json-schema-form-renderer/types.js";
24
+ import { JsonSchemaForm } from "./components/json-schema-form-renderer/json-schema-form.js";
25
+ import { JsonSchemaFormBasic } from "./components/json-schema-form-renderer/json-schema-form-basic.js";
26
+ import { JsonSchemaFormExtended } from "./components/json-schema-form-renderer/json-schema-form-extended.js";
27
+ import { JsonSchemaFormRenderer } from "./components/json-schema-form-renderer/json-schema-form-renderer.js";
28
+ import "./components/json-schema-form-renderer/index.js";
21
29
  import { NumberInput } from "./components/number-input.js";
22
30
  import { ConnectedRadio, Radio } from "./components/radio.js";
23
31
  import { RichTextEditor } from "./components/rich-text-editor.js";
24
32
  import { Row } from "./components/row.js";
25
- import { SchemaField, schemaFieldComponents } from "./components/schema-field/schema-field.js";
26
- import { SchemaFieldBasicComponents, SchemaFieldBasics } from "./components/schema-field/schema-field-basics.js";
27
- import { SchemaFieldExtended, schemaFieldExtendedComponents } from "./components/schema-field/schema-field-extended.js";
33
+ import { SchemaField, defaultComponentRegistry, defaultComponents } from "./components/schema-field/schema-field.js";
34
+ import { SchemaFieldBasics, basicComponentRegistry, basicComponents } from "./components/schema-field/schema-field-basics.js";
35
+ import { SchemaFieldExtended, extendedComponentRegistry, extendedComponents } from "./components/schema-field/schema-field-extended.js";
28
36
  import "./components/schema-field/index.js";
29
37
  import { Select } from "./components/select.js";
30
38
  import { Separator } from "./components/separator.js";
@@ -34,4 +42,4 @@ import { TagsInputInLine } from "./components/tags-input-inline.js";
34
42
  import { Textarea } from "./components/textarea.js";
35
43
  import { Field, FormConsumer, FormProvider, ISchema, ObjectField, VoidField } from "@formily/react";
36
44
  import { Form as IForm, createForm } from "@formily/core";
37
- export { ArrayBase, type ArrayBaseMixins, ArrayCards, ArrayCollapse, Checkbox, Column, Combobox, ConnectedRadio, DatePicker, Field, FileUpload, FileUploadInline, Form, FormConsumer, FormGrid, FormItem, FormProvider, type IArrayBaseOperationProps, type IArrayBaseProps, type IForm, type ISchema, IconPicker, Input, JsonSchemaFormRenderer, JsonSchemaFormRendererProps, NumberInput, ObjectField, Radio, RichTextEditor, Row, SchemaField, SchemaFieldBasicComponents, SchemaFieldBasics, SchemaFieldExtended, Select, Separator, Slider, Switch, TagsInputInLine, Textarea, VoidField, createForm, schemaFieldComponents, schemaFieldExtendedComponents };
45
+ export { ArrayBase, type ArrayBaseMixins, ArrayCards, ArrayCollapse, Checkbox, Column, Combobox, ConnectedRadio, DatePicker, Field, FileUpload, FileUploadInline, Form, FormConsumer, FormGrid, FormItem, type FormLayoutOptions, FormProvider, type IArrayBaseOperationProps, type IArrayBaseProps, type IForm, type ISchema, IconPicker, Input, JsonSchemaForm, JsonSchemaFormBasic, JsonSchemaFormComponent, JsonSchemaFormComponents, JsonSchemaFormExtended, JsonSchemaFormProps, JsonSchemaFormRenderer, JsonSchemaFormRendererProps, NumberInput, ObjectField, Radio, RichTextEditor, Row, SchemaField, SchemaFieldBasics, SchemaFieldExtended, Select, Separator, Slider, Switch, TagsInputInLine, Textarea, VoidField, basicComponentRegistry, basicComponents, createForm, defaultComponentRegistry, defaultComponents, extendedComponentRegistry, extendedComponents };
package/dist/index.js CHANGED
@@ -13,7 +13,8 @@ import { FileUploadInline } from "./components/file-upload/file-upload-inline.js
13
13
  import "./components/file-upload/index.js";
14
14
  import { Form } from "./components/form.js";
15
15
  import { FormGrid } from "./components/form-grid.js";
16
- import { FormItem } from "./components/form-item.js";
16
+ import { FormItem } from "./components/form-item/connected-form-item.js";
17
+ import "./components/form-item/index.js";
17
18
  import { IconPicker } from "./components/icon-picker.js";
18
19
  import { Input } from "./components/input.js";
19
20
  import { Slider } from "./components/slider.js";
@@ -25,13 +26,17 @@ import { Select } from "./components/select.js";
25
26
  import { Separator } from "./components/separator.js";
26
27
  import { Switch } from "./components/switch.js";
27
28
  import { Textarea } from "./components/textarea.js";
28
- import { SchemaFieldBasicComponents, SchemaFieldBasics } from "./components/schema-field/schema-field-basics.js";
29
- import { SchemaField, schemaFieldComponents } from "./components/schema-field/schema-field.js";
29
+ import { SchemaFieldBasics, basicComponentRegistry, basicComponents } from "./components/schema-field/schema-field-basics.js";
30
+ import { SchemaField, defaultComponentRegistry, defaultComponents } from "./components/schema-field/schema-field.js";
30
31
  import { RichTextEditor } from "./components/rich-text-editor.js";
31
- import { SchemaFieldExtended, schemaFieldExtendedComponents } from "./components/schema-field/schema-field-extended.js";
32
+ import { SchemaFieldExtended, extendedComponentRegistry, extendedComponents } from "./components/schema-field/schema-field-extended.js";
32
33
  import "./components/schema-field/index.js";
33
- import { JsonSchemaFormRenderer } from "./components/json-schema-form-renderer.js";
34
+ import { JsonSchemaFormRenderer } from "./components/json-schema-form-renderer/json-schema-form-renderer.js";
35
+ import { JsonSchemaForm } from "./components/json-schema-form-renderer/json-schema-form.js";
36
+ import { JsonSchemaFormBasic } from "./components/json-schema-form-renderer/json-schema-form-basic.js";
37
+ import { JsonSchemaFormExtended } from "./components/json-schema-form-renderer/json-schema-form-extended.js";
38
+ import "./components/json-schema-form-renderer/index.js";
34
39
  import { Field, FormConsumer, FormProvider, ObjectField, VoidField } from "@formily/react";
35
40
  import { createForm } from "@formily/core";
36
41
 
37
- export { ArrayBase, ArrayCards, ArrayCollapse, Checkbox, Column, Combobox, ConnectedRadio, DatePicker, Field, FileUpload, FileUploadInline, Form, FormConsumer, FormGrid, FormItem, FormProvider, IconPicker, Input, JsonSchemaFormRenderer, NumberInput, ObjectField, Radio, RichTextEditor, Row, SchemaField, SchemaFieldBasicComponents, SchemaFieldBasics, SchemaFieldExtended, Select, Separator, Slider, Switch, TagsInputInLine, Textarea, VoidField, createForm, schemaFieldComponents, schemaFieldExtendedComponents };
42
+ export { ArrayBase, ArrayCards, ArrayCollapse, Checkbox, Column, Combobox, ConnectedRadio, DatePicker, Field, FileUpload, FileUploadInline, Form, FormConsumer, FormGrid, FormItem, FormProvider, IconPicker, Input, JsonSchemaForm, JsonSchemaFormBasic, JsonSchemaFormExtended, JsonSchemaFormRenderer, NumberInput, ObjectField, Radio, RichTextEditor, Row, SchemaField, SchemaFieldBasics, SchemaFieldExtended, Select, Separator, Slider, Switch, TagsInputInLine, Textarea, VoidField, basicComponentRegistry, basicComponents, createForm, defaultComponentRegistry, defaultComponents, extendedComponentRegistry, extendedComponents };
@@ -0,0 +1,5 @@
1
+ //#region src/types/form-item.d.ts
2
+ type DescriptionPlacement = 'top' | 'bottom' | 'popover';
3
+ type LabelPlacement = 'top' | 'bottom' | 'start' | 'end';
4
+ //#endregion
5
+ export { DescriptionPlacement, LabelPlacement };
@@ -0,0 +1,5 @@
1
+ //#region src/types/form-item.d.ts
2
+ type DescriptionPlacement = 'top' | 'bottom' | 'popover';
3
+ type LabelPlacement = 'top' | 'bottom' | 'start' | 'end';
4
+ //#endregion
5
+ export { DescriptionPlacement, LabelPlacement };
@@ -1,12 +1,6 @@
1
1
  //#region src/types/form.d.ts
2
- type Space = 'sm' | 'md' | 'lg';
3
2
  interface FormSpace {
4
3
  density?: 'compact' | 'normal' | 'comfortable' | 'responsive';
5
- responsive?: {
6
- mobile?: Space;
7
- tablet?: Space;
8
- desktop?: Space;
9
- };
10
4
  }
11
5
  //#endregion
12
6
  export { FormSpace };
@@ -1,12 +1,6 @@
1
1
  //#region src/types/form.d.ts
2
- type Space = 'sm' | 'md' | 'lg';
3
2
  interface FormSpace {
4
3
  density?: 'compact' | 'normal' | 'comfortable' | 'responsive';
5
- responsive?: {
6
- mobile?: Space;
7
- tablet?: Space;
8
- desktop?: Space;
9
- };
10
4
  }
11
5
  //#endregion
12
6
  export { FormSpace };
@@ -0,0 +1,11 @@
1
+
2
+ //#region src/utils/extract-components.ts
3
+ /**
4
+ * Extracts React components from FormComponentConfig records
5
+ */
6
+ function extractComponents(configs) {
7
+ return Object.fromEntries(Object.entries(configs).map(([key, config]) => [key, config.component]));
8
+ }
9
+
10
+ //#endregion
11
+ exports.extractComponents = extractComponents;
@@ -0,0 +1,10 @@
1
+ //#region src/utils/extract-components.ts
2
+ /**
3
+ * Extracts React components from FormComponentConfig records
4
+ */
5
+ function extractComponents(configs) {
6
+ return Object.fromEntries(Object.entries(configs).map(([key, config]) => [key, config.component]));
7
+ }
8
+
9
+ //#endregion
10
+ export { extractComponents };
@@ -0,0 +1,37 @@
1
+
2
+ //#region src/utils/extract-fields-decorators.ts
3
+ /**
4
+ * Extracts decorator mappings from field configurations.
5
+ *
6
+ * This utility function takes a fields configuration object where each field
7
+ * can optionally define a decorator string, and returns a flat record of
8
+ * field name to decorator mappings.
9
+ *
10
+ * @param fields - The fields configuration with optional decorators
11
+ * @returns Record mapping component names to their decorators
12
+ *
13
+ * @example
14
+ * const fields = {
15
+ * Input: {
16
+ * component: InputComponent,
17
+ * decorator: 'FormItem',
18
+ * },
19
+ * CustomInput: {
20
+ * component: CustomInputComponent,
21
+ * decorator: 'CustomDecorator',
22
+ * },
23
+ * };
24
+ *
25
+ * const decorators = extractFieldsDecorators(fields);
26
+ * // Result: { Input: 'FormItem', CustomInput: 'CustomDecorator' }
27
+ */
28
+ function extractFieldsDecorators(fields) {
29
+ const fieldsDecorators = {};
30
+ if (fields) Object.entries(fields).forEach(([key, field]) => {
31
+ if (field.decorator != null) fieldsDecorators[key] = field.decorator;
32
+ });
33
+ return fieldsDecorators;
34
+ }
35
+
36
+ //#endregion
37
+ exports.extractFieldsDecorators = extractFieldsDecorators;
@@ -0,0 +1,36 @@
1
+ //#region src/utils/extract-fields-decorators.ts
2
+ /**
3
+ * Extracts decorator mappings from field configurations.
4
+ *
5
+ * This utility function takes a fields configuration object where each field
6
+ * can optionally define a decorator string, and returns a flat record of
7
+ * field name to decorator mappings.
8
+ *
9
+ * @param fields - The fields configuration with optional decorators
10
+ * @returns Record mapping component names to their decorators
11
+ *
12
+ * @example
13
+ * const fields = {
14
+ * Input: {
15
+ * component: InputComponent,
16
+ * decorator: 'FormItem',
17
+ * },
18
+ * CustomInput: {
19
+ * component: CustomInputComponent,
20
+ * decorator: 'CustomDecorator',
21
+ * },
22
+ * };
23
+ *
24
+ * const decorators = extractFieldsDecorators(fields);
25
+ * // Result: { Input: 'FormItem', CustomInput: 'CustomDecorator' }
26
+ */
27
+ function extractFieldsDecorators(fields) {
28
+ const fieldsDecorators = {};
29
+ if (fields) Object.entries(fields).forEach(([key, field]) => {
30
+ if (field.decorator != null) fieldsDecorators[key] = field.decorator;
31
+ });
32
+ return fieldsDecorators;
33
+ }
34
+
35
+ //#endregion
36
+ export { extractFieldsDecorators };
@@ -1,6 +1,7 @@
1
1
  const require_has_error = require('./has-error.cjs');
2
2
  const require_validate_array_item_fields = require('./validate-array-item-fields.cjs');
3
3
  const require_create_panel_state_manager = require('./create-panel-state-manager.cjs');
4
+ const require_extract_fields_decorators = require('./extract-fields-decorators.cjs');
4
5
  const require_for_each_schema = require('./for-each-schema.cjs');
5
6
  const require_get_array_item_info = require('./get-array-item-info.cjs');
6
7
  const require_get_default_value = require('./get-default-value.cjs');
@@ -8,3 +9,4 @@ const require_has_array_item_errors = require('./has-array-item-errors.cjs');
8
9
  const require_resolve_responsive_space = require('./resolve-responsive-space.cjs');
9
10
  const require_transform_schema = require('./transform-schema.cjs');
10
11
  require('./use-array-item-editor.cjs');
12
+ const require_validate_schema_components = require('./validate-schema-components.cjs');
@@ -1,10 +1,12 @@
1
1
  import { fieldsHasError, filedHasError } from "./has-error.js";
2
2
  import { validateArrayItemFields } from "./validate-array-item-fields.js";
3
3
  import { createPanelStateManager } from "./create-panel-state-manager.js";
4
+ import { extractFieldsDecorators } from "./extract-fields-decorators.js";
4
5
  import { forEachSchema } from "./for-each-schema.js";
5
6
  import { getArrayItemInfo } from "./get-array-item-info.js";
6
7
  import { getDefaultValue, getSchemaDefaultValue } from "./get-default-value.js";
7
8
  import { hasArrayItemErrors } from "./has-array-item-errors.js";
8
- import { autoResponsiveGapClasses, autoResponsiveSpaceClasses, getGapClass, getSpaceClass, isResponsiveDensity, resolveResponsiveGapClass, resolveResponsiveSpace, resolveResponsiveSpaceClass } from "./resolve-responsive-space.js";
9
+ import { gapYConfig, resolveResponsiveGapClass, resolveResponsiveSpaceClass, resolveSpacingClass, spaceYConfig } from "./resolve-responsive-space.js";
9
10
  import { transformSchema } from "./transform-schema.js";
10
11
  import "./use-array-item-editor.js";
12
+ import { validateSchemaComponents } from "./validate-schema-components.js";