@solidstarters/solid-core-ui 1.1.6 → 1.1.7

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 (153) hide show
  1. package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
  2. package/dist/components/auth/SolidChangeForcePassword.js +7 -7
  3. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  4. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  5. package/dist/components/auth/SolidForgotPassword.js +9 -4
  6. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  7. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  8. package/dist/components/auth/SolidLogin.js +13 -6
  9. package/dist/components/auth/SolidLogin.js.map +1 -1
  10. package/dist/components/common/BackButton.d.ts +2 -0
  11. package/dist/components/common/BackButton.d.ts.map +1 -0
  12. package/dist/components/common/BackButton.js +17 -0
  13. package/dist/components/common/BackButton.js.map +1 -0
  14. package/dist/components/common/CancelButton.js +2 -2
  15. package/dist/components/common/CancelButton.js.map +1 -1
  16. package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
  17. package/dist/components/common/DropzonePlaceholder.js +2 -1
  18. package/dist/components/common/DropzonePlaceholder.js.map +1 -1
  19. package/dist/components/common/FileReaderExt.d.ts +4 -0
  20. package/dist/components/common/FileReaderExt.d.ts.map +1 -0
  21. package/dist/components/common/FileReaderExt.js +15 -0
  22. package/dist/components/common/FileReaderExt.js.map +1 -0
  23. package/dist/components/common/GeneralSettings.d.ts +4 -0
  24. package/dist/components/common/GeneralSettings.d.ts.map +1 -0
  25. package/dist/components/common/GeneralSettings.js +139 -0
  26. package/dist/components/common/GeneralSettings.js.map +1 -0
  27. package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -1
  28. package/dist/components/common/SingleSelectAutoCompleteField.js +1 -1
  29. package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -1
  30. package/dist/components/common/SolidFormStepper.d.ts +2 -0
  31. package/dist/components/common/SolidFormStepper.d.ts.map +1 -0
  32. package/dist/components/common/SolidFormStepper.js +6 -0
  33. package/dist/components/common/SolidFormStepper.js.map +1 -0
  34. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  35. package/dist/components/core/form/SolidFormView.js +83 -54
  36. package/dist/components/core/form/SolidFormView.js.map +1 -1
  37. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  38. package/dist/components/core/form/fields/SolidBooleanField.js +4 -4
  39. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  40. package/dist/components/core/form/fields/SolidDateField.d.ts.map +1 -1
  41. package/dist/components/core/form/fields/SolidDateField.js +7 -7
  42. package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
  43. package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
  44. package/dist/components/core/form/fields/SolidDateTimeField.js +7 -7
  45. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  46. package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
  47. package/dist/components/core/form/fields/SolidDecimalField.js +4 -4
  48. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  49. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  50. package/dist/components/core/form/fields/SolidIntegerField.js +4 -4
  51. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  52. package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
  53. package/dist/components/core/form/fields/SolidJsonField.js +2 -2
  54. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  55. package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
  56. package/dist/components/core/form/fields/SolidLongTextField.js +2 -2
  57. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  58. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  59. package/dist/components/core/form/fields/SolidMediaMultipleField.js +11 -11
  60. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  61. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  62. package/dist/components/core/form/fields/SolidMediaSingleField.js +13 -13
  63. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  64. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  65. package/dist/components/core/form/fields/SolidRichTextField.js +2 -2
  66. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  67. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  68. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +4 -4
  69. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  70. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  71. package/dist/components/core/form/fields/SolidSelectionStaticField.js +4 -4
  72. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  73. package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
  74. package/dist/components/core/form/fields/SolidShortTextField.js +2 -2
  75. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  76. package/dist/components/core/form/fields/SolidTimeField.d.ts.map +1 -1
  77. package/dist/components/core/form/fields/SolidTimeField.js +7 -7
  78. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  79. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  80. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +15 -14
  81. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  82. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  83. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +2 -2
  84. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  85. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +2 -2
  86. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  87. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  88. package/dist/components/core/model/CreateModel.js +15 -11
  89. package/dist/components/core/model/CreateModel.js.map +1 -1
  90. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  91. package/dist/components/core/model/FieldMetaData.js +6 -6
  92. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  93. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  94. package/dist/components/core/model/FieldMetaDataForm.js +167 -152
  95. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  96. package/dist/components/core/model/FieldSelector.d.ts.map +1 -1
  97. package/dist/components/core/model/FieldSelector.js +1 -1
  98. package/dist/components/core/model/FieldSelector.js.map +1 -1
  99. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  100. package/dist/components/core/model/ModelMetaData.js +46 -42
  101. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  102. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  103. package/dist/components/core/module/CreateModule.js +98 -60
  104. package/dist/components/core/module/CreateModule.js.map +1 -1
  105. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  106. package/dist/components/core/users/CreateUser.js +18 -15
  107. package/dist/components/core/users/CreateUser.js.map +1 -1
  108. package/dist/index.d.ts +5 -0
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +5 -0
  111. package/dist/index.js.map +1 -1
  112. package/dist/redux/api/solidSettingsApi.d.ts +9 -0
  113. package/dist/redux/api/solidSettingsApi.d.ts.map +1 -0
  114. package/dist/redux/api/solidSettingsApi.js +40 -0
  115. package/dist/redux/api/solidSettingsApi.js.map +1 -0
  116. package/package.json +1 -1
  117. package/src/components/auth/SolidChangeForcePassword.tsx +2 -3
  118. package/src/components/auth/SolidForgotPassword.tsx +9 -4
  119. package/src/components/auth/SolidLogin.tsx +21 -12
  120. package/src/components/common/BackButton.tsx +27 -0
  121. package/src/components/common/CancelButton.tsx +2 -2
  122. package/src/components/common/DropzonePlaceholder.tsx +11 -3
  123. package/src/components/common/FileReaderExt.tsx +18 -0
  124. package/src/components/common/GeneralSettings.tsx +286 -0
  125. package/src/components/common/SingleSelectAutoCompleteField.tsx +0 -1
  126. package/src/components/common/SolidFormStepper.tsx +12 -0
  127. package/src/components/core/form/SolidFormView.tsx +201 -186
  128. package/src/components/core/form/fields/SolidBooleanField.tsx +3 -7
  129. package/src/components/core/form/fields/SolidDateField.tsx +2 -8
  130. package/src/components/core/form/fields/SolidDateTimeField.tsx +19 -24
  131. package/src/components/core/form/fields/SolidDecimalField.tsx +2 -7
  132. package/src/components/core/form/fields/SolidIntegerField.tsx +17 -22
  133. package/src/components/core/form/fields/SolidJsonField.tsx +15 -19
  134. package/src/components/core/form/fields/SolidLongTextField.tsx +19 -24
  135. package/src/components/core/form/fields/SolidMediaMultipleField.tsx +47 -51
  136. package/src/components/core/form/fields/SolidMediaSingleField.tsx +47 -51
  137. package/src/components/core/form/fields/SolidRichTextField.tsx +3 -7
  138. package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +2 -7
  139. package/src/components/core/form/fields/SolidSelectionStaticField.tsx +20 -25
  140. package/src/components/core/form/fields/SolidShortTextField.tsx +18 -23
  141. package/src/components/core/form/fields/SolidTimeField.tsx +19 -24
  142. package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +51 -52
  143. package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +20 -25
  144. package/src/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +6 -5
  145. package/src/components/core/model/CreateModel.tsx +68 -53
  146. package/src/components/core/model/FieldMetaData.tsx +16 -21
  147. package/src/components/core/model/FieldMetaDataForm.tsx +802 -896
  148. package/src/components/core/model/FieldSelector.tsx +10 -15
  149. package/src/components/core/model/ModelMetaData.tsx +364 -356
  150. package/src/components/core/module/CreateModule.tsx +327 -295
  151. package/src/components/core/users/CreateUser.tsx +175 -167
  152. package/src/index.ts +5 -2
  153. package/src/redux/api/solidSettingsApi.tsx +47 -0
@@ -0,0 +1,286 @@
1
+ "use client"
2
+ import { useCreateSolidSettingsMutation, useUpdateSolidSettingsMutation } from '@/redux/api/solidSettingsApi';
3
+ import { useFormik } from 'formik';
4
+ import { Button } from 'primereact/button';
5
+ import { InputText } from 'primereact/inputtext';
6
+ import { SelectButton } from 'primereact/selectbutton';
7
+ import { Toast } from 'primereact/toast';
8
+ import { useRef } from 'react'
9
+
10
+ export const GeneralSettings = ({ solidSettingsData }: { solidSettingsData: any }) => {
11
+ console.log("solidSettingsData", solidSettingsData);
12
+
13
+ const [updateSolidSettings] = useUpdateSolidSettingsMutation();
14
+ const [
15
+ createSolidSettings,
16
+ ] = useCreateSolidSettingsMutation();
17
+ const toast = useRef<Toast>(null);
18
+
19
+ const showToast = (severity: "success" | "error", summary: string, detail: string) => {
20
+ toast.current?.show({
21
+ severity,
22
+ summary,
23
+ detail,
24
+ life: 3000,
25
+ });
26
+ };
27
+ const initialValues = {
28
+ iamAllowPublicRegistration: solidSettingsData?.data?.records?.[0]?.iamAllowPublicRegistration || false,
29
+ iamPasswordRegistrationEnabled: solidSettingsData?.data?.records?.[0]?.iamPasswordRegistrationEnabled || false,
30
+ iamPasswordLessRegistrationEnabled: solidSettingsData?.data?.records?.[0]?.iamPasswordLessRegistrationEnabled || false,
31
+ iamGoogleOAuthEnabled: solidSettingsData?.data?.records?.[0]?.iamGoogleOAuthEnabled || false,
32
+ shouldQueueEmails: solidSettingsData?.data?.records?.[0]?.shouldQueueEmails || false,
33
+ shouldQueueSms: solidSettingsData?.data?.records?.[0]?.shouldQueueSms || false,
34
+ authPagesTheme: solidSettingsData?.data?.records?.[0]?.authPagesTheme || "light",
35
+ authPagesLayout: solidSettingsData?.data?.records?.[0]?.authPagesLayout || "center",
36
+ appTnc: solidSettingsData?.data?.records?.[0]?.appTnc || "",
37
+ appPrivacyPolicy: solidSettingsData?.data?.records?.[0]?.appPrivacyPolicy || "",
38
+ iamDefaultRole: solidSettingsData?.data?.records?.[0]?.iamDefaultRole || "Admin",
39
+ appTitle: solidSettingsData?.data?.records?.[0]?.appTitle || "SolidX",
40
+ appDescription: solidSettingsData?.data?.records?.[0]?.appDescription || "appDescription",
41
+ };
42
+ const formik = useFormik({
43
+ initialValues: initialValues,
44
+ enableReinitialize: true,
45
+ onSubmit: async (values) => {
46
+ console.log("Formik Values:", formik.values);
47
+ try {
48
+ const formData = new FormData()
49
+ Object.entries(values).forEach(([key, value]) => {
50
+ if (typeof value === "boolean") {
51
+ formData.append(key, value ? "true" : "");
52
+ } else {
53
+ formData.append(key, value.toString().toLowerCase());
54
+ }
55
+ });
56
+ if (solidSettingsData?.data?.records?.length > 0) {
57
+ await updateSolidSettings({
58
+ id: solidSettingsData?.data?.records?.[0]?.id,
59
+ data: formData,
60
+ }).unwrap()
61
+ showToast("success", "Success", "General Settings Updated");
62
+ } else {
63
+ createSolidSettings(formData)
64
+ showToast("success", "Success", "General Settings Created");
65
+ }
66
+ } catch (error) {
67
+ showToast("error", "Failed", "Something went wrong");
68
+ }
69
+ },
70
+ })
71
+
72
+ const booleanOptions = [
73
+ { label: "True", value: true },
74
+ { label: "False", value: false },
75
+ ]
76
+
77
+ const justifyOptions = [
78
+ { icon: 'pi pi-align-left', value: 'left' },
79
+ { icon: 'pi pi-align-center', value: 'Center' },
80
+ { icon: 'pi pi-align-right', value: 'Right' },
81
+ ];
82
+
83
+ const justifyTemplate = (option: any) => {
84
+ return <i className={option.icon}></i>;
85
+ }
86
+
87
+ return (
88
+ <div className="page-parent-wrapper p-4">
89
+ <Toast ref={toast} />
90
+ <h3>General Settings</h3>
91
+ <div className="formgrid grid">
92
+ <div className="col-7">
93
+ <form onSubmit={formik.handleSubmit}>
94
+ <div className="formgrid grid">
95
+ <div className="col-6 mt-3">
96
+ <div className="formgrid grid align-items-center">
97
+ <div className="col-5">
98
+ <label className="form-field-label">Allow Public Registration</label>
99
+ </div>
100
+ <div className="col-7">
101
+ <SelectButton
102
+ name="iamAllowPublicRegistration"
103
+ value={formik.values.iamAllowPublicRegistration}
104
+ onChange={(e) => formik.setFieldValue("iamAllowPublicRegistration", e.value)}
105
+ options={booleanOptions}
106
+ optionLabel="label"
107
+ optionValue="value"
108
+ />
109
+ </div>
110
+ </div>
111
+ </div>
112
+
113
+ <div className="col-6 mt-3">
114
+ <div className="formgrid grid align-items-center">
115
+ <div className="col-5">
116
+ <label className="form-field-label">Password Registration Enabled</label>
117
+ </div>
118
+ <div className="col-7">
119
+ <SelectButton
120
+ name="iamPasswordRegistrationEnabled"
121
+ value={formik.values.iamPasswordRegistrationEnabled}
122
+ onChange={(e) => formik.setFieldValue("iamPasswordRegistrationEnabled", e.value)}
123
+ options={booleanOptions}
124
+ optionLabel="label"
125
+ optionValue="value"
126
+ />
127
+ </div>
128
+ </div>
129
+ </div>
130
+
131
+ <div className="col-6 mt-3">
132
+ <div className="formgrid grid align-items-center">
133
+ <div className="col-5">
134
+ <label className="form-field-label">Passwordless Registration Enabled</label>
135
+ </div>
136
+ <div className="col-7">
137
+ <SelectButton
138
+ name="iamPasswordLessRegistrationEnabled"
139
+ value={formik.values.iamPasswordLessRegistrationEnabled}
140
+ onChange={(e) => formik.setFieldValue("iamPasswordLessRegistrationEnabled", e.value)}
141
+ options={booleanOptions}
142
+ optionLabel="label"
143
+ optionValue="value"
144
+ />
145
+ </div>
146
+ </div>
147
+ </div>
148
+
149
+ <div className="col-6 mt-3">
150
+ <div className="formgrid grid align-items-center">
151
+ <div className="col-5">
152
+ <label className="form-field-label">Google OAuth Enabled</label>
153
+ </div>
154
+ <div className="col-7">
155
+ <SelectButton
156
+ name="iamGoogleOAuthEnabled"
157
+ value={formik.values.iamGoogleOAuthEnabled}
158
+ onChange={(e) => formik.setFieldValue("iamGoogleOAuthEnabled", e.value)}
159
+ options={booleanOptions}
160
+ optionLabel="label"
161
+ optionValue="value"
162
+ />
163
+ </div>
164
+ </div>
165
+ </div>
166
+
167
+ <div className="col-6 mt-3">
168
+ <div className="formgrid grid align-items-center">
169
+ <div className="col-5">
170
+ <label className="form-field-label">Use queue for sending emails</label>
171
+ </div>
172
+ <div className="col-7">
173
+ <SelectButton
174
+ name="shouldQueueEmails"
175
+ value={formik.values.shouldQueueEmails}
176
+ onChange={(e) => formik.setFieldValue("shouldQueueEmails", e.value)}
177
+ options={booleanOptions}
178
+ optionLabel="label"
179
+ optionValue="value"
180
+ />
181
+ </div>
182
+ </div>
183
+ </div>
184
+
185
+ <div className="col-6 mt-3">
186
+ <div className="formgrid grid align-items-center">
187
+ <div className="col-5">
188
+ <label className="form-field-label">Use queue for sending SMS</label>
189
+ </div>
190
+ <div className="col-7">
191
+ <SelectButton
192
+ name="shouldQueueSms"
193
+ onChange={(e) => formik.setFieldValue("shouldQueueSms", e.value)}
194
+ value={formik.values.shouldQueueSms}
195
+ options={booleanOptions}
196
+ optionLabel="label"
197
+ optionValue="value"
198
+ />
199
+ </div>
200
+ </div>
201
+ </div>
202
+
203
+ <div className="col-6 mt-3">
204
+ <div className="formgrid grid align-items-center">
205
+ <div className="col-5">
206
+ <label className="form-field-label">Authentication Pages Theme</label>
207
+ </div>
208
+ <div className="col-7">
209
+ <div className="theme-buttons mt-2">
210
+ <Button
211
+ type="button"
212
+ label="Solid Light"
213
+ outlined={formik.values.authPagesTheme !== "light"}
214
+ onClick={() => formik.setFieldValue("authPagesTheme", "light")}
215
+ />
216
+ <Button
217
+ type="button"
218
+ label="Solid Dark"
219
+ outlined={formik.values.authPagesTheme !== "dark"}
220
+ onClick={() => formik.setFieldValue("authPagesTheme", "dark")}
221
+ />
222
+ </div>
223
+ </div>
224
+ </div>
225
+ </div>
226
+ <div className="col-6 mt-3">
227
+ <div className="formgrid grid align-items-center">
228
+ <div className="col-5">
229
+ <label className="form-field-label">Authentication Pages Theme</label>
230
+ </div>
231
+ <div className="col-7">
232
+ <SelectButton
233
+ name="authPagesLayout"
234
+ value={
235
+ formik.values.authPagesLayout === "left"
236
+ ? "left"
237
+ : formik.values.authPagesLayout.charAt(0).toUpperCase() + formik.values.authPagesLayout.slice(1)
238
+ }
239
+ onChange={(e) => formik.setFieldValue("authPagesLayout", e.value)}
240
+ itemTemplate={justifyTemplate}
241
+ optionLabel="value"
242
+ options={justifyOptions}
243
+ />
244
+ </div>
245
+ </div>
246
+ </div>
247
+ <div className="col-6 mt-3">
248
+ <div className="formgrid grid align-items-center">
249
+ <div className="col-5">
250
+ <label className="form-field-label">Terms and Conditions Link</label>
251
+ </div>
252
+ <div className="col-7">
253
+ <InputText
254
+ type="text"
255
+ id="appTnc"
256
+ name="appTnc"
257
+ onChange={formik.handleChange}
258
+ value={formik.values.appTnc}
259
+ />
260
+ </div>
261
+ </div>
262
+ </div>
263
+ <div className="col-6 mt-3">
264
+ <div className="formgrid grid align-items-center">
265
+ <div className="col-5">
266
+ <label className="form-field-label">Privacy Policy Link</label>
267
+ </div>
268
+ <div className="col-7">
269
+ <InputText
270
+ type="text"
271
+ id="appPrivacyPolicy"
272
+ name="appPrivacyPolicy"
273
+ onChange={formik.handleChange}
274
+ value={formik.values.appPrivacyPolicy}
275
+ />
276
+ </div>
277
+ </div>
278
+ </div>
279
+ </div>
280
+ <Button type="submit" label="Save" className="mt-3" />
281
+ </form>
282
+ </div>
283
+ </div>
284
+ </div>
285
+ )
286
+ }
@@ -35,7 +35,6 @@ export const SingleSelectAutoCompleteField = ({ disabled, formik, isFormFieldVal
35
35
  invalid={isFormFieldValid(formik, fieldName)}
36
36
  completeMethod={searchItems}
37
37
  virtualScrollerOptions={{ itemSize: 38 }}
38
- className="w-full small-input"
39
38
  // style={{
40
39
  // maxHeight: 39.67
41
40
  // }}
@@ -0,0 +1,12 @@
1
+ import { Button } from 'primereact/button'
2
+ import React from 'react'
3
+
4
+ export const SolidFormStepper = () => {
5
+ return (
6
+ <div className='flex justify-content-end'>
7
+ <Button type='button' severity='secondary' className='solid-step-button btn-step-first'>Step 1</Button>
8
+ <Button type='button' className='solid-step-button btn-step'>Step 2</Button>
9
+ <Button type='button' className='solid-step-button btn-step-last'>Step 3</Button>
10
+ </div>
11
+ )
12
+ }