@react-fabric/form 1.0.0-beta.33 → 1.0.0-beta.35

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 (69) hide show
  1. package/dist/cjs/builder/FormField.js +3 -3
  2. package/dist/cjs/builder/SchemaEditor.js +43 -404
  3. package/dist/cjs/builder/components/AddSchemaFields.js +62 -0
  4. package/dist/cjs/builder/components/SchemaArrayForm.js +144 -0
  5. package/dist/cjs/builder/components/SchemaField.js +411 -0
  6. package/dist/cjs/form/Form.js +11 -8
  7. package/dist/cjs/index.js +1 -0
  8. package/dist/cjs/input/ColorInput.js +1 -1
  9. package/dist/cjs/input/DateInput.js +2 -2
  10. package/dist/cjs/input/File.js +1 -1
  11. package/dist/cjs/input/Hidden.js +1 -1
  12. package/dist/cjs/input/Input.js +1 -1
  13. package/dist/cjs/input/Number.js +1 -1
  14. package/dist/cjs/input/Password.js +1 -1
  15. package/dist/cjs/input/RangeSlider.js +1 -1
  16. package/dist/cjs/input/Search.js +1 -1
  17. package/dist/cjs/input/Slider.js +1 -1
  18. package/dist/cjs/input/Textarea.js +1 -1
  19. package/dist/cjs/types/schema.js +2 -0
  20. package/dist/esm/builder/FormField.js +3 -3
  21. package/dist/esm/builder/SchemaEditor.js +45 -406
  22. package/dist/esm/builder/components/AddSchemaFields.js +62 -0
  23. package/dist/esm/builder/components/SchemaArrayForm.js +144 -0
  24. package/dist/esm/builder/components/SchemaField.js +411 -0
  25. package/dist/esm/form/Form.js +11 -8
  26. package/dist/esm/index.js +1 -1
  27. package/dist/esm/input/ColorInput.js +1 -1
  28. package/dist/esm/input/DateInput.js +2 -2
  29. package/dist/esm/input/File.js +1 -1
  30. package/dist/esm/input/Hidden.js +1 -1
  31. package/dist/esm/input/Input.js +1 -1
  32. package/dist/esm/input/Number.js +1 -1
  33. package/dist/esm/input/Password.js +1 -1
  34. package/dist/esm/input/RangeSlider.js +1 -1
  35. package/dist/esm/input/Search.js +1 -1
  36. package/dist/esm/input/Slider.js +1 -1
  37. package/dist/esm/input/Textarea.js +1 -1
  38. package/dist/esm/types/schema.js +2 -1
  39. package/dist/types/builder/SchemaEditor.d.ts +2 -10
  40. package/dist/types/builder/components/AddSchemaFields.d.ts +2 -0
  41. package/dist/types/builder/components/SchemaArrayForm.d.ts +2 -0
  42. package/dist/types/builder/components/SchemaField.d.ts +10 -0
  43. package/dist/types/form/Form.d.ts +1 -5
  44. package/dist/types/index.d.ts +1 -1
  45. package/dist/types/input/ColorInput.d.ts +1 -1
  46. package/dist/types/types/index.d.ts +1 -1
  47. package/dist/types/types/schema.d.ts +26 -0
  48. package/package.json +5 -5
  49. package/src/builder/FormField.tsx +3 -3
  50. package/src/builder/SchemaEditor.tsx +24 -398
  51. package/src/builder/components/AddSchemaFields.tsx +74 -0
  52. package/src/builder/components/SchemaArrayForm.tsx +158 -0
  53. package/src/builder/components/SchemaField.tsx +432 -0
  54. package/src/form/Form.tsx +6 -9
  55. package/src/index.ts +6 -1
  56. package/src/input/ArrayInput.tsx +1 -0
  57. package/src/input/ColorInput.tsx +5 -2
  58. package/src/input/DateInput.tsx +2 -2
  59. package/src/input/File.tsx +1 -1
  60. package/src/input/Hidden.tsx +4 -3
  61. package/src/input/Input.tsx +1 -1
  62. package/src/input/Number.tsx +1 -1
  63. package/src/input/Password.tsx +1 -1
  64. package/src/input/RangeSlider.tsx +1 -1
  65. package/src/input/Search.tsx +1 -1
  66. package/src/input/Slider.tsx +1 -1
  67. package/src/input/Textarea.tsx +1 -1
  68. package/src/types/index.ts +1 -1
  69. package/src/types/schema.ts +30 -0
@@ -21,6 +21,7 @@
21
21
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
  */
23
23
 
24
+ import { type Elements } from "@react-fabric/core/dist/types/types";
24
25
  import { type DateLike } from "@react-fabric/date";
25
26
 
26
27
  export enum DATA_TYPES {
@@ -36,6 +37,8 @@ export enum DATA_TYPES {
36
37
  SCHEMA = "schema",
37
38
  }
38
39
 
40
+ export const SCHEMA_CUSTOM_LIST = "--CUSTOM--";
41
+
39
42
  interface SingleValue {
40
43
  multiple?: false;
41
44
  minItems?: never;
@@ -122,3 +125,30 @@ export interface ChildSchema extends BaseSchema {
122
125
 
123
126
  export type SchemaDef = SchemaType | (ChildSchema & ValueType);
124
127
  export type FormSchema = SchemaDef[];
128
+
129
+ export interface SchemaEditorProps {
130
+ /**
131
+ * default form schema
132
+ */
133
+ schemaDef: FormSchema;
134
+ /**
135
+ * is dynamic schema (allow add/remove)
136
+ */
137
+ dynamic?: boolean;
138
+ /**
139
+ * acceptable list of data types
140
+ */
141
+ acceptableTypes?: DATA_TYPES[];
142
+
143
+ /**
144
+ * available option lists in application
145
+ */
146
+ optionLists?: string[];
147
+
148
+ /**
149
+ * footer actions
150
+ */
151
+ children?: Elements<JSX.Element> | Array<Elements<JSX.Element>>;
152
+
153
+ onChange: (schema: FormSchema) => void;
154
+ }