@solidstarters/solid-core-ui 1.1.23 → 1.1.25

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 (52) hide show
  1. package/dist/components/core/form/SolidFormLayouts.d.ts.map +1 -1
  2. package/dist/components/core/form/SolidFormLayouts.js +15 -7
  3. package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
  4. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  5. package/dist/components/core/form/SolidFormView.js +41 -15
  6. package/dist/components/core/form/SolidFormView.js.map +1 -1
  7. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  8. package/dist/components/core/form/fields/SolidSelectionStaticField.js +1 -1
  9. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  10. package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
  11. package/dist/components/core/form/fields/SolidShortTextField.js +18 -13
  12. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  13. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +1 -1
  14. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  15. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +2 -2
  16. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  17. package/dist/components/core/form/widgets/CustomHtml.d.ts +3 -0
  18. package/dist/components/core/form/widgets/CustomHtml.d.ts.map +1 -0
  19. package/dist/components/core/form/widgets/CustomHtml.js +15 -0
  20. package/dist/components/core/form/widgets/CustomHtml.js.map +1 -0
  21. package/dist/components/core/model/CreateModel.js +4 -2
  22. package/dist/components/core/model/CreateModel.js.map +1 -1
  23. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  24. package/dist/components/core/model/FieldMetaData.js +5 -1
  25. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  26. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  27. package/dist/components/core/model/FieldMetaDataForm.js +6 -6
  28. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  29. package/dist/components/layout/AppSidebar.js +21 -20
  30. package/dist/components/layout/AppSidebar.js.map +1 -1
  31. package/dist/helpers/registry.d.ts.map +1 -1
  32. package/dist/helpers/registry.js +6 -0
  33. package/dist/helpers/registry.js.map +1 -1
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js.map +1 -1
  37. package/package.json +3 -1
  38. package/src/components/core/form/SolidFormLayouts.tsx +15 -7
  39. package/src/components/core/form/SolidFormView.tsx +63 -16
  40. package/src/components/core/form/fields/SolidSelectionStaticField.tsx +1 -0
  41. package/src/components/core/form/fields/SolidShortTextField.tsx +49 -25
  42. package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +1 -1
  43. package/src/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +2 -2
  44. package/src/components/core/form/widgets/CustomHtml.tsx +19 -0
  45. package/src/components/core/model/CreateModel.tsx +4 -4
  46. package/src/components/core/model/FieldMetaData.tsx +5 -1
  47. package/src/components/core/model/FieldMetaDataForm.tsx +5 -7
  48. package/src/components/layout/AppSidebar.tsx +1 -1
  49. package/src/helpers/registry.ts +13 -1
  50. package/src/index.ts +2 -1
  51. package/src/types/index.d.ts +4 -2
  52. package/src/types/solid-core.d.ts +12 -4
@@ -59,7 +59,11 @@ const FieldMetaData = ({ setIsDirty, modelMetaData, fieldMetaData, setFieldMetaD
59
59
 
60
60
  // Function to delete a row
61
61
  const deleteRow = (rowData: any) => {
62
- setFieldMetaData((prevData: any) => prevData.filter((item: any) => item.name !== rowData.name)); // Remove the row from the data array
62
+ setFieldMetaData((prevData: any) => {
63
+ const updatedData = prevData.filter((item: any) => item.name !== rowData.name);
64
+ setIsDirty(true); // Ensure dirty state is updated immediately
65
+ return updatedData;
66
+ });
63
67
  };
64
68
 
65
69
  // Template for the trash (delete) icon column
@@ -109,7 +109,6 @@ const SelectionStaticValues = ({ enumValue, onUpdate, onDelete, onAdd }: any) =>
109
109
  <Button
110
110
  icon="pi pi-plus"
111
111
  size="small"
112
- className="small-button"
113
112
  onClick={onAdd}
114
113
  type="button"
115
114
  />
@@ -118,7 +117,6 @@ const SelectionStaticValues = ({ enumValue, onUpdate, onDelete, onAdd }: any) =>
118
117
  <Button
119
118
  icon="pi pi-trash"
120
119
  size="small"
121
- className="small-button"
122
120
  onClick={onDelete}
123
121
  outlined
124
122
  severity="danger"
@@ -1189,7 +1187,7 @@ const FieldMetaDataForm = ({ setIsDirty, modelMetaData, fieldMetaData, setFieldM
1189
1187
  >
1190
1188
  <div className="formgrid grid">
1191
1189
  {currentFields.includes("displayName") && (
1192
- <div className="field col-6 flex-flex-column gap-2">
1190
+ <div className="field col-6 flex-flex-column gap-2 mt-2">
1193
1191
  <label htmlFor="displayName" className="form-field-label">
1194
1192
  Display Name
1195
1193
  </label>
@@ -1408,7 +1406,7 @@ const FieldMetaDataForm = ({ setIsDirty, modelMetaData, fieldMetaData, setFieldM
1408
1406
  </div>
1409
1407
  )}
1410
1408
  {currentFields.includes("defaultValue") && (
1411
- <div className="field col-6 flex-flex-column gap-2">
1409
+ <div className="field col-6 flex-flex-column gap-2 mt-3">
1412
1410
  <label
1413
1411
  htmlFor="defaultValue"
1414
1412
  className="form-field-label"
@@ -1472,7 +1470,7 @@ const FieldMetaDataForm = ({ setIsDirty, modelMetaData, fieldMetaData, setFieldM
1472
1470
  value={formik.values.defaultValue ? formik.values.defaultValue : "false"}
1473
1471
  onChange={(e) => formik.setFieldValue("defaultValue", e.value)} // Custom handling for boolean input
1474
1472
  options={booleanOptions}
1475
- className={classNames(" flex boolean-switch", {
1473
+ className={classNames("", {
1476
1474
  "p-invalid": isFormFieldValid(formik, "defaultValue"),
1477
1475
  })}
1478
1476
  />
@@ -1657,7 +1655,7 @@ const FieldMetaDataForm = ({ setIsDirty, modelMetaData, fieldMetaData, setFieldM
1657
1655
  formik.setFieldValue("mediaEmbedded", e.value);
1658
1656
  }}
1659
1657
  options={booleanOptions}
1660
- className={classNames(" flex boolean-switch", {
1658
+ className={classNames("", {
1661
1659
  "p-invalid": isFormFieldValid(
1662
1660
  formik,
1663
1661
  "mediaEmbedded"
@@ -2425,7 +2423,7 @@ const FieldMetaDataForm = ({ setIsDirty, modelMetaData, fieldMetaData, setFieldM
2425
2423
  )}
2426
2424
  {(currentFields.includes("regexPattern") || currentFields.includes("min") || currentFields.includes("max") || currentFields.includes("ormType")) && ormTypeOptions && selectedType.value !== 'relation' &&
2427
2425
  <>
2428
- <p className="form-wrapper-heading text-base">Validations</p>
2426
+ <p className="form-wrapper-heading text-base mt-3">Validations</p>
2429
2427
  <div className="formgrid grid">
2430
2428
  {(currentFields.includes("regexPattern") && selectedType.value === "password") &&
2431
2429
  <>
@@ -178,7 +178,7 @@ const AppSidebar = () => {
178
178
  })}
179
179
  </div>
180
180
 
181
- {/* <UserProfileMenu></UserProfileMenu> */}
181
+ <UserProfileMenu></UserProfileMenu>
182
182
  </div>
183
183
  {currentMenu && (
184
184
  <div className={`sidebar-right ${visibleNavbar ? "open" : ""}`}>
@@ -1,3 +1,4 @@
1
+ import { CustomHtml } from "@/components/core/form/widgets/CustomHtml";
1
2
  import React from "react";
2
3
 
3
4
  type ExtensionRegistry = {
@@ -49,4 +50,15 @@ export const getExtensionComponent = (name: string): React.ComponentType<any> |
49
50
  export const getExtensionFunction = (name: string) => {
50
51
  // console.log(`Registry state: `, extensionRegistry);
51
52
  return extensionRegistry.functions[name];
52
- };
53
+ };
54
+
55
+
56
+ // Register all the dynamic widget & functions from inside solid-core-ui
57
+ // Common
58
+ registerExtensionComponent("CustomHtml", CustomHtml);
59
+
60
+
61
+ // ModuleMetadata
62
+
63
+
64
+ // ModelMetadata
package/src/index.ts CHANGED
@@ -629,7 +629,8 @@ export type {
629
629
  LayoutNode,
630
630
  LayoutNodeType,
631
631
  SolidUiEvents,
632
- SolidUiEvent
632
+ SolidUiEvent,
633
+ SolidFormWidgetProps
633
634
  } from '@/types';
634
635
  export { GeneralSettings } from '@/components/common/GeneralSettings';
635
636
 
@@ -25,7 +25,8 @@ import {
25
25
  LayoutNode,
26
26
  LayoutNodeType,
27
27
  SolidUiEvents,
28
- SolidUiEvent
28
+ SolidUiEvent,
29
+ SolidFormWidgetProps
29
30
  } from './solid-core';
30
31
 
31
32
  type ChildContainerProps = {
@@ -54,5 +55,6 @@ export type {
54
55
  LayoutNode,
55
56
  LayoutNodeType,
56
57
  SolidUiEvents,
57
- SolidUiEvent
58
+ SolidUiEvent,
59
+ SolidFormWidgetProps
58
60
  };
@@ -70,7 +70,7 @@ export type LayoutAttribute = {
70
70
  };
71
71
 
72
72
  // Generic representation of any node in our layout
73
- export type LayoutNodeType = "form" | "sheet" | "notebook" | "page" | "row" | "column" | "field";
73
+ export type LayoutNodeType = "form" | "sheet" | "notebook" | "page" | "row" | "column" | "field" | "div" | "p" | "span" | "h1" | "h2" | "h3";
74
74
  export type LayoutNode = {
75
75
  type: LayoutNodeType;
76
76
  attrs: LayoutAttribute;
@@ -78,11 +78,19 @@ export type LayoutNode = {
78
78
  };
79
79
 
80
80
  // Event type
81
- export type SolidUiEvents = "onFieldChange" | "onFieldBlur";
81
+ export type SolidUiEvents = "onFieldChange" | "onFieldBlur" | "onCustomWidgetRender";
82
82
  export type SolidUiEvent = {
83
83
  type: SolidUiEvents;
84
- modifiedField: string;
85
- modifiedFieldValue: any;
84
+ modifiedField?: string;
85
+ modifiedFieldValue?: any;
86
+ // This comes from Formik...
87
+ formData: Record<string, any>;
88
+ viewMetadata: SolidView;
89
+ fieldsMetadata: FieldsMetadata;
90
+ };
91
+
92
+ export type SolidFormWidgetProps = {
93
+ field: any;
86
94
  // This comes from Formik...
87
95
  formData: Record<string, any>;
88
96
  viewMetadata: SolidView;