@solidxai/core-ui 0.1.7-beta.4 → 0.1.7-beta.5

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 (221) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +1 -1
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +5 -3
  5. package/dist/components/auth/SolidLogin.js +3 -3
  6. package/dist/components/auth/SolidLogin.js.map +1 -1
  7. package/dist/components/auth/SolidLogin.tsx +2 -2
  8. package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
  9. package/dist/components/common/DropzonePlaceholder.js +1 -1
  10. package/dist/components/common/DropzonePlaceholder.js.map +1 -1
  11. package/dist/components/common/DropzonePlaceholder.tsx +8 -6
  12. package/dist/components/core/chatter/SolidChatter.d.ts +2 -1
  13. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  14. package/dist/components/core/chatter/SolidChatter.js +2 -4
  15. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  16. package/dist/components/core/chatter/SolidChatter.tsx +3 -4
  17. package/dist/components/core/chatter/SolidChatterHeader.d.ts +1 -0
  18. package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
  19. package/dist/components/core/chatter/SolidChatterHeader.js +2 -2
  20. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
  21. package/dist/components/core/chatter/SolidChatterHeader.tsx +4 -3
  22. package/dist/components/core/chatter/chatter.module.css +42 -32
  23. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.js +1 -1
  24. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.js.map +1 -1
  25. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.tsx +2 -2
  26. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +153 -30
  27. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.d.ts.map +1 -1
  28. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js +7 -7
  29. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js.map +1 -1
  30. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +9 -10
  31. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.d.ts.map +1 -1
  32. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.js +1 -1
  33. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.js.map +1 -1
  34. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.tsx +6 -4
  35. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.d.ts.map +1 -1
  36. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.js +1 -1
  37. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.js.map +1 -1
  38. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.tsx +3 -1
  39. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  40. package/dist/components/core/form/SolidFormActionHeader.js +13 -13
  41. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  42. package/dist/components/core/form/SolidFormActionHeader.tsx +21 -24
  43. package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
  44. package/dist/components/core/form/SolidFormFooter.js +1 -1
  45. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  46. package/dist/components/core/form/SolidFormFooter.tsx +0 -1
  47. package/dist/components/core/form/SolidFormUserViewLayout.js +1 -1
  48. package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
  49. package/dist/components/core/form/SolidFormUserViewLayout.tsx +1 -1
  50. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  51. package/dist/components/core/form/SolidFormView.js +22 -33
  52. package/dist/components/core/form/SolidFormView.js.map +1 -1
  53. package/dist/components/core/form/SolidFormView.tsx +38 -59
  54. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  55. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +12 -1
  56. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  57. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +1 -0
  58. package/dist/components/core/form/fields/SolidLongTextField.js +4 -4
  59. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  60. package/dist/components/core/form/fields/SolidLongTextField.tsx +4 -4
  61. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  62. package/dist/components/core/form/fields/SolidMediaMultipleField.js +14 -14
  63. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  64. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +35 -21
  65. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  66. package/dist/components/core/form/fields/SolidMediaSingleField.js +2 -2
  67. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  68. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +48 -34
  69. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  70. package/dist/components/core/form/fields/SolidPasswordField.js +2 -2
  71. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  72. package/dist/components/core/form/fields/SolidPasswordField.tsx +46 -42
  73. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  74. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +23 -27
  75. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  76. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +64 -66
  77. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  78. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +2 -6
  79. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  80. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +4 -7
  81. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  82. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +12 -15
  83. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  84. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +30 -16
  85. package/dist/components/core/form/fields/solidFields.module.css +86 -15
  86. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
  87. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
  88. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
  89. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
  90. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
  91. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
  92. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +18 -28
  93. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  94. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +52 -48
  95. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
  96. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
  97. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +111 -0
  98. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +1 -0
  99. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +122 -0
  100. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.d.ts.map +1 -1
  101. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js +1 -1
  102. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js.map +1 -1
  103. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +5 -4
  104. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  105. package/dist/components/core/kanban/KanbanBoard.js +11 -5
  106. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  107. package/dist/components/core/kanban/KanbanBoard.tsx +8 -0
  108. package/dist/components/core/kanban/KanbanCard.d.ts +1 -0
  109. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  110. package/dist/components/core/kanban/KanbanCard.js +4 -4
  111. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  112. package/dist/components/core/kanban/KanbanCard.tsx +5 -4
  113. package/dist/components/core/kanban/KanbanColumn.d.ts +2 -1
  114. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  115. package/dist/components/core/kanban/KanbanColumn.js +3 -3
  116. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  117. package/dist/components/core/kanban/KanbanColumn.tsx +4 -3
  118. package/dist/components/core/list/SolidDataTable.d.ts +1 -0
  119. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  120. package/dist/components/core/list/SolidDataTable.js +19 -2
  121. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  122. package/dist/components/core/list/SolidDataTable.tsx +30 -2
  123. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  124. package/dist/components/core/list/SolidListView.js +1 -1
  125. package/dist/components/core/list/SolidListView.js.map +1 -1
  126. package/dist/components/core/list/SolidListView.tsx +1 -0
  127. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  128. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  129. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
  130. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
  131. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
  132. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
  133. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
  134. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +3 -0
  135. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
  136. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +33 -0
  137. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +1 -0
  138. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +50 -0
  139. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +3 -0
  140. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +1 -0
  141. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +158 -0
  142. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +1 -0
  143. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +185 -0
  144. package/dist/components/core/locales/SolidChatterLocaleTabView.d.ts.map +1 -1
  145. package/dist/components/core/locales/SolidChatterLocaleTabView.js +7 -4
  146. package/dist/components/core/locales/SolidChatterLocaleTabView.js.map +1 -1
  147. package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +28 -11
  148. package/dist/components/core/locales/SolidLocale.js +4 -4
  149. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  150. package/dist/components/core/locales/SolidLocale.tsx +18 -18
  151. package/dist/components/core/locales/solid-locale.css +105 -7
  152. package/dist/components/core/model/CreateModel.js +2 -2
  153. package/dist/components/core/model/CreateModel.js.map +1 -1
  154. package/dist/components/core/model/CreateModel.tsx +2 -2
  155. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  156. package/dist/components/core/model/FieldMetaData.js +3 -3
  157. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  158. package/dist/components/core/model/FieldMetaData.tsx +45 -22
  159. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts +7 -0
  160. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts.map +1 -0
  161. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js +138 -0
  162. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js.map +1 -0
  163. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.tsx +246 -0
  164. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts +8 -0
  165. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts.map +1 -0
  166. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js +156 -0
  167. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js.map +1 -0
  168. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.tsx +184 -0
  169. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.d.ts +9 -0
  170. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.d.ts.map +1 -0
  171. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js +37 -0
  172. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js.map +1 -0
  173. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.tsx +111 -0
  174. package/dist/components/core/users/ApiKeysTab/index.d.ts +4 -0
  175. package/dist/components/core/users/ApiKeysTab/index.d.ts.map +1 -0
  176. package/dist/components/core/users/ApiKeysTab/index.js +4 -0
  177. package/dist/components/core/users/ApiKeysTab/index.js.map +1 -0
  178. package/dist/components/core/users/ApiKeysTab/index.ts +3 -0
  179. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  180. package/dist/components/layout/AppSidebar.js +75 -7
  181. package/dist/components/layout/AppSidebar.js.map +1 -1
  182. package/dist/components/layout/AppSidebar.tsx +84 -7
  183. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
  184. package/dist/components/shad-cn-ui/SolidCodeEditor.js +13 -7
  185. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
  186. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +22 -12
  187. package/dist/components/shad-cn-ui/SolidDialog.d.ts +2 -1
  188. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  189. package/dist/components/shad-cn-ui/SolidDialog.js +2 -2
  190. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  191. package/dist/components/shad-cn-ui/SolidDialog.tsx +6 -3
  192. package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
  193. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  194. package/dist/components/shad-cn-ui/SolidSelect.js +2 -2
  195. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  196. package/dist/components/shad-cn-ui/SolidSelect.tsx +3 -0
  197. package/dist/components/shad-cn-ui/SolidTextarea.d.ts +1 -1
  198. package/dist/components/shad-cn-ui/SolidTextarea.d.ts.map +1 -1
  199. package/dist/components/shad-cn-ui/SolidTextarea.js +3 -2
  200. package/dist/components/shad-cn-ui/SolidTextarea.js.map +1 -1
  201. package/dist/components/shad-cn-ui/SolidTextarea.tsx +17 -2
  202. package/dist/helpers/# no such endpoints exist, need to calle +3 -0
  203. package/dist/helpers/registry.d.ts.map +1 -1
  204. package/dist/helpers/registry.js +10 -0
  205. package/dist/helpers/registry.js.map +1 -1
  206. package/dist/helpers/registry.ts +16 -0
  207. package/dist/index.d.ts +3 -2
  208. package/dist/index.d.ts.map +1 -1
  209. package/dist/index.js +3 -2
  210. package/dist/index.js.map +1 -1
  211. package/dist/index.ts +71 -2
  212. package/dist/redux/api/apiKeyApi.d.ts +40 -0
  213. package/dist/redux/api/apiKeyApi.d.ts.map +1 -0
  214. package/dist/redux/api/apiKeyApi.js +36 -0
  215. package/dist/redux/api/apiKeyApi.js.map +1 -0
  216. package/dist/redux/api/apiKeyApi.ts +60 -0
  217. package/dist/resources/globals.css +628 -67
  218. package/dist/resources/shadcn-base.css +333 -7
  219. package/dist/resources/solid-responsive.css +6 -6
  220. package/dist/resources/themes/solid-dark-purple/theme.css +1 -1
  221. package/package.json +1 -1
@@ -45,7 +45,7 @@ import { SolidFormFooter } from "./SolidFormFooter";
45
45
  import { normalizeSolidFormActionPath } from "../../../helpers/routePaths";
46
46
  import { showToast } from "../../../redux/features/toastSlice";
47
47
  import { useDispatch } from "react-redux";
48
- import { SolidButton, SolidConfirmDialog, SolidPanel } from "../../shad-cn-ui";
48
+ import { SolidButton, SolidConfirmDialog } from "../../shad-cn-ui";
49
49
  import {
50
50
  SolidDialog,
51
51
  SolidDialogBody,
@@ -206,12 +206,13 @@ const SolidField = ({ formik, field, fieldMetadata, initialEntityData, solidForm
206
206
  };
207
207
 
208
208
  const SolidGroup = ({ children, attrs }: any) => {
209
-
210
- const className = attrs.className;
209
+ const className = ["solid-form-layout-group", attrs.label ? "solid-form-layout-group--labeled" : "", attrs.className]
210
+ .filter(Boolean)
211
+ .join(" ");
211
212
 
212
213
  return (
213
214
  <div className={className}>
214
- {attrs.label && <p>{attrs.label}</p>}
215
+ {attrs.label && <p className="solid-form-layout-label">{attrs.label}</p>}
215
216
  <div className="grid">{children}</div>
216
217
  </div>
217
218
  // <div className={className}>
@@ -230,8 +231,9 @@ const SolidGroup = ({ children, attrs }: any) => {
230
231
  };
231
232
 
232
233
  const SolidRow = ({ children, attrs }: any) => {
233
-
234
- const className = attrs.className;
234
+ const className = ["row", "solid-form-layout-row", attrs.label ? "solid-form-layout-row--labeled" : "", attrs.className]
235
+ .filter(Boolean)
236
+ .join(" ");
235
237
 
236
238
  return (
237
239
  // <div className={`row ${className}`}>
@@ -244,8 +246,8 @@ const SolidRow = ({ children, attrs }: any) => {
244
246
  // </div>
245
247
 
246
248
  // </div>
247
- <div className={`row ${className}`}>
248
- {attrs.label && <p >{attrs.label}</p>}
249
+ <div className={className}>
250
+ {attrs.label && <p className="solid-form-layout-label">{attrs.label}</p>}
249
251
  <div className="grid">{children}</div>
250
252
  </div>
251
253
  // <div>{children}</div>
@@ -253,43 +255,15 @@ const SolidRow = ({ children, attrs }: any) => {
253
255
  };
254
256
 
255
257
  const SolidColumn = ({ children, attrs }: any) => {
256
- const className = attrs.className;
258
+ const className = ["solid-form-layout-column", attrs.label ? "solid-form-layout-column--labeled" : "", attrs.className]
259
+ .filter(Boolean)
260
+ .join(" ");
257
261
 
258
262
  return (
259
- // first fieldset ui
260
-
261
- // <div className={`${className}`}>
262
- // <div className="s_group">
263
- // <fieldset>
264
- // {attrs.label && <p className="s_group_heading">{attrs.label}</p>}
265
- // <div className="grid">{children}</div>
266
- // </fieldset>
267
- // </div>
268
- // </div>
269
-
270
- //second fieldset ui
271
- // <div className={`${className}`}>
272
- // {attrs.label && <p>{attrs.label}</p>}
273
- // <div className="grid">{children}</div>
274
- // </div>
275
-
276
- //figma fieldset ui
277
- attrs.label ?
278
- <div className={`${className}`}>
279
- <SolidPanel header={attrs.label} className="solid-column-panel">
280
- <div className="grid">{children}</div>
281
- </SolidPanel>
282
- {/* <div className="p-fieldset">
283
- <div className="solid-fieldset-header">
284
- <div>{attrs.label}</div>
285
- </div>
286
- <div className="grid solid-fieldset-content">{children}</div>
287
- </div> */}
288
- </div>
289
- :
290
- <div className={`${className}`}>
291
- <div className="grid">{children}</div>
292
- </div>
263
+ <div className={className}>
264
+ {attrs.label && <p className="solid-form-layout-label">{attrs.label}</p>}
265
+ <div className="grid">{children}</div>
266
+ </div>
293
267
  );
294
268
  };
295
269
 
@@ -456,7 +430,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
456
430
  const [openLightbox, setOpenLightbox] = useState(false);
457
431
  const [lightboxUrls, setLightboxUrls] = useState([]);
458
432
  const [isShowChatter, setShowChatter] = useState(false);
459
- const [chatterLocaleWidth, setChatterLocaleWidth] = useState(380); // default width
433
+ const [chatterLocaleWidth, setChatterLocaleWidth] = useState(360);
460
434
  const [isResizingChatterLocale, setIsResizingChatterLocale] = useState(false);
461
435
  const [isSubmitting, setIsSubmitting] = useState(false);
462
436
 
@@ -508,14 +482,16 @@ const SolidFormView = (params: SolidFormViewProps) => {
508
482
  useEffect(() => {
509
483
  const stored = localStorage.getItem('chatter_locale_width');
510
484
  if (stored) {
511
- setChatterLocaleWidth(parseInt(stored, 10));
485
+ const parsed = parseInt(stored, 10);
486
+ const clampedWidth = Math.max(320, Math.min(parsed, 420));
487
+ setChatterLocaleWidth(clampedWidth);
512
488
  }
513
489
  }, []);
514
490
  useEffect(() => {
515
491
  const handleMouseMove = (e: MouseEvent) => {
516
492
  if (!isResizingChatterLocale) return;
517
493
  const newWidth = window.innerWidth - e.clientX;
518
- const clampedWidth = Math.max(280, Math.min(newWidth, 700));
494
+ const clampedWidth = Math.max(320, Math.min(newWidth, 420));
519
495
  setChatterLocaleWidth(clampedWidth);
520
496
  localStorage.setItem('chatter_locale_width', clampedWidth.toString());
521
497
  };
@@ -1225,7 +1201,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
1225
1201
 
1226
1202
  return (
1227
1203
  <div className="solid-form-wrapper">
1228
- <div className="solid-form-section" style={{ borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }}>
1204
+ <div className="solid-form-section">
1229
1205
  <div className="page-header solid-list-toolbar flex-column lg:flex-row">
1230
1206
  <div className="flex justify-content-between w-full solid-form-toolbar-row">
1231
1207
  <div className="flex gap-3 align-items-center solid-form-toolbar-left">
@@ -1659,7 +1635,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
1659
1635
 
1660
1636
  return (
1661
1637
  <div className="solid-form-wrapper">
1662
- <div className="solid-form-section" style={{ borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }} >
1638
+ <div className="solid-form-section">
1663
1639
  <form style={{ width: '100%' }} onSubmit={formik.handleSubmit}>
1664
1640
  <SolidFormActionHeader
1665
1641
  formik={formik}
@@ -1721,7 +1697,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
1721
1697
  size="sm"
1722
1698
  text
1723
1699
  className="chatter-collapse-btn"
1724
- style={{ width: 30, height: 30, aspectRatio: '1/1' }}
1700
+ style={{ width: 26, height: 26, aspectRatio: '1/1' }}
1725
1701
  onClick={() => setShowChatter(false)}
1726
1702
  />
1727
1703
  }
@@ -1766,18 +1742,21 @@ const SolidFormView = (params: SolidFormViewProps) => {
1766
1742
  }
1767
1743
 
1768
1744
  <SolidDialog
1769
- visible={isDeleteDialogVisible}
1770
- header="Confirm Delete"
1745
+ open={isDeleteDialogVisible}
1746
+ onOpenChange={setDeleteDialogVisible}
1771
1747
  className="solid-confirm-dialog"
1772
- onHide={() => setDeleteDialogVisible(false)}
1773
- footer={
1774
- <div className="flex justify-content-center gap-2">
1775
- <SolidButton label="Yes" icon="si si-check" className='small-button' severity="danger" autoFocus onClick={() => handleDeleteEntity()} />
1776
- <SolidButton label="No" icon="si si-times" className='small-button' variant="outline" onClick={onDeleteClose} />
1777
- </div>
1778
- }
1779
1748
  >
1780
- <p>Are you sure you want to delete?</p>
1749
+ <SolidDialogHeader className="solid-field-confirm-header">
1750
+ <SolidDialogTitle>Confirm Delete</SolidDialogTitle>
1751
+ <SolidDialogClose />
1752
+ </SolidDialogHeader>
1753
+ <SolidDialogBody className="solid-field-confirm-dialog-body">
1754
+ <p className="solid-field-confirm-message">Are you sure you want to delete?</p>
1755
+ </SolidDialogBody>
1756
+ <div className="solid-radix-dialog-footer solid-field-confirm-actions">
1757
+ <SolidButton label="Yes" icon="si si-check" variant="destructive" autoFocus onClick={() => handleDeleteEntity()} />
1758
+ <SolidButton label="No" icon="si si-times" variant="outline" onClick={onDeleteClose} />
1759
+ </div>
1781
1760
  </SolidDialog>
1782
1761
  <SolidDialog
1783
1762
  open={isLayoutDialogVisible}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormViewNormalHeaderButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewNormalHeaderButton.tsx"],"names":[],"mappings":"AAKA,UAAU,oCAAoC;IAC1C,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,qBAAqB,EAAE,GAAG,CAAC;IAC3B,uBAAuB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAChC;AAED,wBAAgB,+BAA+B,CAAC,EAC5C,MAAM,EACN,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,uBAAuB,EACvB,QAAQ,EACR,gBAAgB,EAChB,OAAmB,EACtB,EAAE,oCAAoC,kDAiDtC"}
1
+ {"version":3,"file":"SolidFormViewNormalHeaderButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewNormalHeaderButton.tsx"],"names":[],"mappings":"AAKA,UAAU,oCAAoC;IAC1C,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,qBAAqB,EAAE,GAAG,CAAC;IAC3B,uBAAuB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAChC;AAED,wBAAgB,+BAA+B,CAAC,EAC5C,MAAM,EACN,MAAM,EACN,MAAM,EACN,qBAAqB,EACrB,uBAAuB,EACvB,QAAQ,EACR,gBAAgB,EAChB,OAAmB,EACtB,EAAE,oCAAoC,kDAkDtC"}
@@ -1,3 +1,14 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
1
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
13
  import { hasAnyRole } from '../../../helpers/rolesHelper';
3
14
  import { useSession } from "../../../hooks/useSession";
@@ -27,6 +38,6 @@ export function SolidFormViewNormalHeaderButton(_a) {
27
38
  if (variant === "menu") {
28
39
  return (_jsxs("button", { type: "button", className: "solid-row-action-button ".concat(((_f = button === null || button === void 0 ? void 0 : button.attrs) === null || _f === void 0 ? void 0 : _f.className) ? (_g = button === null || button === void 0 ? void 0 : button.attrs) === null || _g === void 0 ? void 0 : _g.className : ''), onClick: handleClick, children: [((_h = button === null || button === void 0 ? void 0 : button.attrs) === null || _h === void 0 ? void 0 : _h.icon) && ((function () { var m = parseSolidIconMeta(button.attrs.icon); return m ? _jsx(SolidIcon, { name: m.name, spin: m.spin, className: "solid-row-action-button-icon" }) : _jsx("i", { className: "".concat(button.attrs.icon, " solid-row-action-button-icon") }); })()), _jsx("span", { className: "solid-row-action-button-label", children: button.attrs.label })] }));
29
40
  }
30
- return (_jsx("div", { children: _jsx(SolidButton, { type: "button", className: "w-full text-left gap-2 solid-icon-button ".concat(((_j = button === null || button === void 0 ? void 0 : button.attrs) === null || _j === void 0 ? void 0 : _j.className) ? (_k = button === null || button === void 0 ? void 0 : button.attrs) === null || _k === void 0 ? void 0 : _k.className : ''), label: button.attrs.label, size: "sm", iconPos: "left", icon: ((_l = button === null || button === void 0 ? void 0 : button.attrs) === null || _l === void 0 ? void 0 : _l.icon) ? (_m = button === null || button === void 0 ? void 0 : button.attrs) === null || _m === void 0 ? void 0 : _m.icon : "", onClick: handleClick }) }));
41
+ return (_jsx("div", { children: _jsx(SolidButton, __assign({ type: "button", className: "w-full text-left gap-2 solid-icon-button ".concat(((_j = button === null || button === void 0 ? void 0 : button.attrs) === null || _j === void 0 ? void 0 : _j.className) ? (_k = button === null || button === void 0 ? void 0 : button.attrs) === null || _k === void 0 ? void 0 : _k.className : '') }, button.attrs, { label: button.attrs.label, size: "sm", iconPos: "left", icon: ((_l = button === null || button === void 0 ? void 0 : button.attrs) === null || _l === void 0 ? void 0 : _l.icon) ? (_m = button === null || button === void 0 ? void 0 : button.attrs) === null || _m === void 0 ? void 0 : _m.icon : "", onClick: handleClick })) }));
31
42
  }
32
43
  //# sourceMappingURL=SolidFormViewNormalHeaderButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormViewNormalHeaderButton.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewNormalHeaderButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAa3E,MAAM,UAAU,+BAA+B,CAAC,EAST;;QARnC,MAAM,YAAA,EACN,MAAM,YAAA,EACN,MAAM,YAAA,EACN,qBAAqB,2BAAA,EACrB,uBAAuB,6BAAA,EACvB,QAAQ,cAAA,EACR,gBAAgB,sBAAA,EAChB,eAAmB,EAAnB,OAAO,mBAAG,SAAS,KAAA;IAGb,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAE3B,IAAM,OAAO,GAAG,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAA,IAAI,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,MAAM,MAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,CAAC;IAElI,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,OAAO,KAAI,KAAK;QAAE,OAAO,IAAI,CAAA;IAChD,IAAM,WAAW,GAAG;QAChB,IAAM,KAAK,GAAG;YACV,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC3B,MAAM,QAAA;YACN,MAAM,QAAA;YACN,qBAAqB,EAAE,qBAAqB,CAAC,IAAI;YACjD,QAAQ,UAAA;SACX,CAAC;QACF,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAC;IACzB,CAAC,CAAC;IAEF,IAAI,OAAO,KAAK,MAAM,EAAE;QACpB,OAAO,CACH,kBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,kCAA2B,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAE,EAChG,OAAO,EAAE,WAAW,aAEnB,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,KAAI,CACpB,CAAC,cAAQ,IAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAC,8BAA8B,GAAG,CAAC,CAAC,CAAC,YAAG,SAAS,EAAE,UAAG,MAAM,CAAC,KAAK,CAAC,IAAI,kCAA+B,GAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CACxO,EACD,eAAM,SAAS,EAAC,+BAA+B,YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,GAAQ,IACtE,CACZ,CAAC;KACL;IAED,OAAO,CACH,wBACI,KAAC,WAAW,IACR,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,mDAA4C,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAE,EACjH,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EACzB,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,MAAM,EACd,IAAI,EAAE,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EACpD,OAAO,EAAE,WAAW,GACtB,GACA,CACT,CAAC;AACN,CAAC","sourcesContent":["import { hasAnyRole } from '../../../helpers/rolesHelper';\nimport { useSession } from \"../../../hooks/useSession\";\nimport { SolidButton } from '../../shad-cn-ui';\nimport { SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui/SolidIcon\";\n\ninterface SolidFormViewNormalHeaderButtonProps {\n button: any;\n params: any;\n formik: any;\n solidFormViewMetaData: any;\n handleCustomButtonClick: (attrs: any, event: any) => void;\n formData: any;\n onActionComplete?: () => void;\n variant?: \"default\" | \"menu\";\n}\n\nexport function SolidFormViewNormalHeaderButton({\n button,\n params,\n formik,\n solidFormViewMetaData,\n handleCustomButtonClick,\n formData,\n onActionComplete,\n variant = \"default\"\n}: SolidFormViewNormalHeaderButtonProps) {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n\n if (!hasRole) return null;\n if (button?.attrs?.visible == false) return null\n const handleClick = () => {\n const event = {\n action: button.attrs.action,\n params,\n formik,\n solidFormViewMetaData: solidFormViewMetaData.data,\n formData\n };\n handleCustomButtonClick(button.attrs, event);\n onActionComplete?.();\n };\n\n if (variant === \"menu\") {\n return (\n <button\n type=\"button\"\n className={`solid-row-action-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}\n onClick={handleClick}\n >\n {button?.attrs?.icon && (\n (() => { const m = parseSolidIconMeta(button.attrs.icon); return m ? <SolidIcon name={m.name} spin={m.spin} className=\"solid-row-action-button-icon\" /> : <i className={`${button.attrs.icon} solid-row-action-button-icon`} />; })()\n )}\n <span className=\"solid-row-action-button-label\">{button.attrs.label}</span>\n </button>\n );\n }\n\n return (\n <div>\n <SolidButton\n type=\"button\"\n className={`w-full text-left gap-2 solid-icon-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}\n label={button.attrs.label}\n size=\"sm\"\n iconPos=\"left\"\n icon={button?.attrs?.icon ? button?.attrs?.icon : \"\"}\n onClick={handleClick}\n />\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidFormViewNormalHeaderButton.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormViewNormalHeaderButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import { hasAnyRole } from '../../../helpers/rolesHelper';\nimport { useSession } from \"../../../hooks/useSession\";\nimport { SolidButton } from '../../shad-cn-ui';\nimport { SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui/SolidIcon\";\n\ninterface SolidFormViewNormalHeaderButtonProps {\n button: any;\n params: any;\n formik: any;\n solidFormViewMetaData: any;\n handleCustomButtonClick: (attrs: any, event: any) => void;\n formData: any;\n onActionComplete?: () => void;\n variant?: \"default\" | \"menu\";\n}\n\nexport function SolidFormViewNormalHeaderButton({\n button,\n params,\n formik,\n solidFormViewMetaData,\n handleCustomButtonClick,\n formData,\n onActionComplete,\n variant = \"default\"\n}: SolidFormViewNormalHeaderButtonProps) {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n\n if (!hasRole) return null;\n if (button?.attrs?.visible == false) return null\n const handleClick = () => {\n const event = {\n action: button.attrs.action,\n params,\n formik,\n solidFormViewMetaData: solidFormViewMetaData.data,\n formData\n };\n handleCustomButtonClick(button.attrs, event);\n onActionComplete?.();\n };\n\n if (variant === \"menu\") {\n return (\n <button\n type=\"button\"\n className={`solid-row-action-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}\n onClick={handleClick}\n >\n {button?.attrs?.icon && (\n (() => { const m = parseSolidIconMeta(button.attrs.icon); return m ? <SolidIcon name={m.name} spin={m.spin} className=\"solid-row-action-button-icon\" /> : <i className={`${button.attrs.icon} solid-row-action-button-icon`} />; })()\n )}\n <span className=\"solid-row-action-button-label\">{button.attrs.label}</span>\n </button>\n );\n }\n\n return (\n <div>\n <SolidButton\n type=\"button\"\n className={`w-full text-left gap-2 solid-icon-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}\n {...button.attrs}\n label={button.attrs.label}\n size=\"sm\"\n iconPos=\"left\"\n icon={button?.attrs?.icon ? button?.attrs?.icon : \"\"}\n onClick={handleClick}\n />\n </div>\n );\n}\n"]}
@@ -64,6 +64,7 @@ export function SolidFormViewNormalHeaderButton({
64
64
  <SolidButton
65
65
  type="button"
66
66
  className={`w-full text-left gap-2 solid-icon-button ${button?.attrs?.className ? button?.attrs?.className : ''}`}
67
+ {...button.attrs}
67
68
  label={button.attrs.label}
68
69
  size="sm"
69
70
  iconPos="left"
@@ -25,7 +25,7 @@ import { useState } from "react";
25
25
  import { getExtensionComponent } from "../../../../helpers/registry";
26
26
  import { SolidFieldTooltip } from "../../../../components/common/SolidFieldTooltip";
27
27
  import { ERROR_MESSAGES } from "../../../../constants/error-messages";
28
- import { SolidButton, SolidDatePicker, SolidSelect, SolidInput, SolidCodeEditor, SolidIcon } from "../../../shad-cn-ui";
28
+ import { SolidButton, SolidDatePicker, SolidSelect, SolidInput, SolidCodeEditor, SolidIcon, SolidTextarea } from "../../../shad-cn-ui";
29
29
  import { parseSolidIconMeta } from "../../../shad-cn-ui/SolidIcon";
30
30
  import { SolidMessage } from "../../../shad-cn-ui/SolidMessage";
31
31
  var SolidLongTextField = /** @class */ (function () {
@@ -147,7 +147,7 @@ export var DefaultLongTextFormEditWidget = function (_a) {
147
147
  var formReadonly = (_l = (_k = (_j = solidFormViewMetaData.data.solidView) === null || _j === void 0 ? void 0 : _j.layout) === null || _k === void 0 ? void 0 : _k.attrs) === null || _l === void 0 ? void 0 : _l.readonly;
148
148
  var isFormFieldValid = function (formik, fieldName) { return formik.touched[fieldName] && formik.errors[fieldName]; };
149
149
  return (_jsxs("div", { className: styles.fieldWrapper, children: [showFieldLabel != false &&
150
- _jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: styles.fieldLabel, children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: "*" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsx("textarea", { readOnly: formReadonly || fieldReadonly || readOnlyPermission, disabled: formDisabled || fieldDisabled, id: fieldLayoutInfo.attrs.name, "aria-describedby": "".concat(fieldLayoutInfo.attrs.name, "-help"), onChange: function (e) { return fieldContext.onChange(e, 'onFieldChange'); }, value: formik.values[fieldLayoutInfo.attrs.name] || '', rows: 5, className: styles.fieldTextarea }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("p", { className: styles.fieldError, children: (_m = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _m === void 0 ? void 0 : _m.toString() }))] }));
150
+ _jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: styles.fieldLabel, children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: "*" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsx(SolidTextarea, { readOnly: formReadonly || fieldReadonly || readOnlyPermission, disabled: formDisabled || fieldDisabled, id: fieldLayoutInfo.attrs.name, "aria-describedby": "".concat(fieldLayoutInfo.attrs.name, "-help"), onChange: function (e) { return fieldContext.onChange(e, 'onFieldChange'); }, value: formik.values[fieldLayoutInfo.attrs.name] || '', rows: 5, className: styles.fieldTextarea }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("p", { className: styles.fieldError, children: (_m = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _m === void 0 ? void 0 : _m.toString() }))] }));
151
151
  };
152
152
  export var DynamicJsonEditorFormViewWidget = function (_a) {
153
153
  var _b, _c, _d, _e, _f;
@@ -193,7 +193,7 @@ export var DynamicJsonEditorFormViewWidget = function (_a) {
193
193
  return _jsx(SolidInput, { value: value, readOnly: true, disabled: true });
194
194
  }
195
195
  if (meta.type === "longText") {
196
- return (_jsx("textarea", { value: value, rows: 10, cols: 100, readOnly: true, className: styles.fieldTextarea }));
196
+ return (_jsx(SolidTextarea, { value: value, rows: 10, cols: 100, readOnly: true, className: styles.fieldTextarea }));
197
197
  }
198
198
  if (meta.type === "date" || meta.type === "datetime") {
199
199
  return (_jsx(SolidDatePicker, { selected: value ? new Date(value) : null, onChange: function () { }, showTimeSelect: meta.type === "datetime", disabled: true }));
@@ -281,7 +281,7 @@ export var DynamicJsonEditorFormEditWidget = function (_a) {
281
281
  return (_jsx(SolidInput, { value: value, onChange: function (e) { return handleChange(index, key, e.target.value); }, disabled: !!disabled, readOnly: !!readOnly }));
282
282
  }
283
283
  if (meta.type === "longText") {
284
- return (_jsx("textarea", { onChange: function (e) { return handleChange(index, key, e.target.value); }, value: value, rows: 10, cols: 100, className: styles.fieldTextarea }));
284
+ return (_jsx(SolidTextarea, { onChange: function (e) { return handleChange(index, key, e.target.value); }, value: value, rows: 10, cols: 100, className: styles.fieldTextarea }));
285
285
  }
286
286
  if (meta.type === "date" || meta.type === "datetime") {
287
287
  return (_jsx(SolidDatePicker, { selected: value ? new Date(value) : null, onChange: function (date) { return handleChange(index, key, date); }, showTimeSelect: meta.type === "datetime", disabled: !!disabled }));
@@ -1 +1 @@
1
- {"version":3,"file":"SolidLongTextField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidLongTextField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport * as Yup from 'yup';\nimport styles from './solidFields.module.css';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { SolidButton, SolidDatePicker, SolidSelect, SolidInput, SolidCodeEditor, SolidIcon } from \"../../../shad-cn-ui\";\nimport { parseSolidIconMeta } from \"../../../shad-cn-ui/SolidIcon\";\nimport { SolidMessage } from \"../../../shad-cn-ui/SolidMessage\";\n\n\nexport class SolidLongTextField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n if (value !== undefined && value !== null) {\n formData.append(fieldLayoutInfo.attrs.name, value);\n }\n }\n\n initialValue(): any {\n const fieldName = this.fieldContext.field.attrs.name;\n const fieldDefaultValue = this.fieldContext?.fieldMetadata?.defaultValue;\n\n const existingValue = this.fieldContext.data[fieldName];\n\n return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue || '';\n }\n\n validationSchema(): Yup.Schema {\n let schema: Yup.StringSchema<string | null | undefined> = Yup.string();\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n // 1. required \n if (fieldMetadata.required) {\n schema = schema.required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = schema.nullable(); // Allow null when not required\n }\n // 2. length (min/max)\n if (fieldMetadata.min && fieldMetadata.min > 0) {\n schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.FIELD_MINIMUM_CHARACTER(fieldLabel, fieldMetadata.min));\n }\n if (fieldMetadata.max && fieldMetadata.max > 0) {\n schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.FIELD_MAXIMUM_CHARACTER(fieldLabel, fieldMetadata.max));\n }\n // 3. regular expression\n if (fieldMetadata.regexPattern) {\n const regexPatternNotMatchingErrorMsg = fieldMetadata.regexPatternNotMatchingErrorMsg ?? `${fieldLabel} has invalid data.`\n schema = schema.matches(fieldMetadata.regexPattern, regexPatternNotMatchingErrorMsg);\n }\n\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldLayoutInfo = this.fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultLongTextFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultShortTextFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n return (\n <>\n <div className={className}>\n\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\n </>\n );\n }\n\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n\n}\n\nexport const DefaultLongTextFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n return (\n <div className={styles.fieldWrapper}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={styles.fieldLabel}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\">*</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <textarea\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled}\n id={fieldLayoutInfo.attrs.name}\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={(e: React.ChangeEvent<HTMLTextAreaElement>) => fieldContext.onChange(e, 'onFieldChange')}\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n rows={5}\n className={styles.fieldTextarea}\n />\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <p className={styles.fieldError}>{formik?.errors[fieldLayoutInfo.attrs.name]?.toString()}</p>\n )}\n </div>\n );\n}\n\nexport const DynamicJsonEditorFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n const readOnly = fieldLayoutInfo.attrs?.readonly || fieldContext.readOnly;\n const disabled = fieldLayoutInfo.attrs?.disabled;\n const value = formik.values[fieldLayoutInfo.attrs.name] || '';\n const codeLanguage = fieldLayoutInfo.attrs.editorLanguage || 'ts';\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n // Sample schema, this comes from the metadata...\n // {\n // key1: {\n // required: true,\n // type: \"string\",\n // },\n // key2: {\n // required: true,\n // type: \"selectionStatic\",\n // allowedValues: [\n // \"selection static val 1\",\n // \"selection static val 2\",\n // \"selection static val 3\",\n // \"selection static val 4\",\n // ],\n // },\n // };\n const fieldJsonSchema = fieldLayoutInfo.attrs?.jsonSchema;\n if (!fieldJsonSchema) {\n return <SolidMessage severity=\"error\" text=\"Field Layout Attributes are missing jsonSchema, cannot render with widget jsonEditor without specifying the schema\" />\n }\n const [data, setData] = useState(JSON.parse(value || '[]'));\n\n const renderInput = (value: any, key: string, index: number) => {\n // @ts-ignore\n const meta: any = fieldJsonSchema[key];\n if (!meta) return null;\n\n if (meta.type === \"string\" || meta.type === \"shortText\") {\n return <SolidInput value={value} readOnly disabled />;\n }\n if (meta.type === \"longText\") {\n return (\n <textarea value={value} rows={10} cols={100} readOnly className={styles.fieldTextarea} />\n );\n }\n if (meta.type === \"date\" || meta.type === \"datetime\") {\n return (\n <SolidDatePicker\n selected={value ? new Date(value) : null}\n onChange={() => { }}\n showTimeSelect={meta.type === \"datetime\"}\n disabled\n />\n );\n }\n\n if (meta.type === \"selectionStatic\") {\n return (\n <SolidSelect\n value={value}\n // @ts-ignore\n options={meta.allowedValues.map((v) => ({ label: v, value: v }))}\n placeholder=\"Select.\"\n disabled\n />\n );\n }\n\n return null;\n };\n\n return (\n <div className=\"mt-4\">\n {fieldLayoutInfo?.attrs?.showLabel !== false && (\n <label className={`${styles.fieldLabel} form-field-label mb-10`}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"p-4 border-round surface-card shadow-1\">\n\n <div className=\"flex flex-column gap-2\">\n {\n // @ts-ignore\n data.map((row, idx) => (\n <div\n key={idx}\n className={`flex ${fieldLayoutInfo.attrs?.className ? `flex-${fieldLayoutInfo.attrs?.className}` : 'flex-row'} border-1 border-round p-3 gap-2`}\n >\n {Object.keys(fieldJsonSchema).map((key) => (\n <div key={key} className=\"flex flex-column gap-1\">\n <label>{key.charAt(0).toUpperCase() + key.slice(1)}</label>\n {\n // @ts-ignore\n renderInput(row[key], key, idx)\n }\n </div>\n ))}\n\n </div>\n ))\n }\n </div>\n\n </div>\n </div>\n );\n}\n\nexport const DynamicJsonEditorFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n const readOnly = fieldLayoutInfo.attrs?.readonly || fieldContext.readOnly;\n const disabled = fieldLayoutInfo.attrs?.disabled;\n\n const value = formik.values[fieldLayoutInfo.attrs.name] || '';\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n // Sample schema, this comes from the metadata...\n // {\n // key1: {\n // required: true,\n // type: \"string\",\n // },\n // key2: {\n // required: true,\n // type: \"selectionStatic\",\n // allowedValues: [\n // \"selection static val 1\",\n // \"selection static val 2\",\n // \"selection static val 3\",\n // \"selection static val 4\",\n // ],\n // },\n // };\n const fieldJsonSchema = fieldLayoutInfo.attrs?.jsonSchema;\n if (!fieldJsonSchema) {\n return <SolidMessage severity=\"error\" text=\"Field Layout Attributes are missing jsonSchema, cannot render with widget jsonEditor without specifying the schema\" />\n }\n const [data, setData] = useState(JSON.parse(value || '[]'));\n\n const handleAllChange = (updated: any) => {\n setData(updated);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, JSON.stringify(updated));\n }\n\n const handleChange = (index: number, key: string, value: any) => {\n const updated = [...data];\n // @ts-ignore\n updated[index][key] = value;\n handleAllChange(updated);\n };\n\n const handleAdd = () => {\n const newItem = {};\n Object.keys(fieldJsonSchema).forEach((key) => {\n // @ts-ignore\n newItem[key] = \"\";\n });\n // @ts-ignore\n handleAllChange([...data, newItem]);\n };\n\n const handleRemove = (index: number) => {\n const updated = [...data];\n updated.splice(index, 1);\n handleAllChange(updated);\n };\n\n const renderInput = (value: any, key: string, index: number) => {\n // @ts-ignore\n const meta: any = fieldJsonSchema[key];\n if (!meta) return null;\n\n if (meta.type === \"string\" || meta.type === \"shortText\") {\n return (\n <SolidInput\n value={value}\n onChange={(e) => handleChange(index, key, e.target.value)}\n disabled={!!disabled}\n readOnly={!!readOnly}\n />\n );\n }\n\n if (meta.type === \"longText\") {\n return (\n <textarea\n onChange={(e) => handleChange(index, key, e.target.value)}\n value={value}\n rows={10}\n cols={100}\n className={styles.fieldTextarea}\n />\n );\n }\n\n if (meta.type === \"date\" || meta.type === \"datetime\") {\n return (\n <SolidDatePicker\n selected={value ? new Date(value) : null}\n onChange={(date: Date | null) => handleChange(index, key, date)}\n showTimeSelect={meta.type === \"datetime\"}\n disabled={!!disabled}\n />\n );\n }\n\n if (meta.type === \"selectionStatic\") {\n return (\n <SolidSelect\n value={value}\n // @ts-ignore\n options={meta.allowedValues.map((v) => ({ label: v, value: v }))}\n onChange={(e) => handleChange(index, key, e.value)}\n placeholder=\"Select.\"\n disabled={!!disabled}\n />\n );\n }\n\n return null;\n };\n\n return (\n <div className=\"mt-4\">\n {fieldLayoutInfo?.attrs?.showLabel !== false && (\n <label className={`${styles.fieldLabel} form-field-label mb-10`}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"p-4 border-round surface-card shadow-1\">\n <div className=\"flex justify-content-between align-items-center mb-3\">\n {!disabled && !readOnly ? (\n <SolidButton\n type=\"button\"\n leftIcon={<SolidIcon name=\"si-plus\" aria-hidden />}\n onClick={handleAdd}\n >\n Add\n </SolidButton>\n ) : null}\n </div>\n\n <div className=\"flex flex-column gap-2\">\n {\n // @ts-ignore\n data.map((row, idx) => (\n <div\n key={idx}\n className={`flex ${fieldLayoutInfo.attrs?.className ? `flex-${fieldLayoutInfo.attrs?.className}` : 'flex-row'} border-1 border-round p-3 gap-2`}\n >\n <div className=\"flex gap-3 align-items-center\">\n {Object.keys(fieldJsonSchema).map((key) => (\n <div key={key} className=\"flex flex-column gap-1\">\n <label>{key.charAt(0).toUpperCase() + key.slice(1)}</label>\n {\n // @ts-ignore\n renderInput(row[key], key, idx)\n }\n </div>\n ))}\n </div>\n {!disabled && !readOnly ? (\n <SolidButton\n type=\"button\"\n leftIcon={<SolidIcon name=\"si-minus\" aria-hidden />}\n className=\"ml-2 h-2rem w-2rem rounded-circle\"\n onClick={() => handleRemove(idx)}\n />\n ) : null}\n </div>\n ))\n }\n </div>\n\n {\n fieldLayoutInfo.attrs?.jsonSchemaShowPreview &&\n <pre className=\"mt-4 bg-gray-100 p-3 border-round overflow-auto\">\n {JSON.stringify(data, null, 2)}\n </pre>\n }\n </div>\n </div>\n );\n};\n\nexport const CodeEditorFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n const readOnly = fieldLayoutInfo.attrs?.readonly || fieldContext.readOnly;\n const disabled = fieldLayoutInfo.attrs?.disabled;\n const codeLanguage = fieldLayoutInfo.attrs.editorLanguage || 'ts';\n\n const value = formik.values[fieldLayoutInfo.attrs.name] || '';\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n return (\n <div className=\"mt-4\">\n {fieldLayoutInfo?.attrs?.showLabel !== false && (\n <label className={`${styles.fieldLabel} form-field-label mb-10`}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"border border-gray-300 rounded overflow-hidden\">\n <SolidCodeEditor\n value={value}\n onChange={(val) => formik.setFieldValue(fieldLayoutInfo.attrs.name, val)}\n height={fieldLayoutInfo.attrs?.height ?? \"200px\"}\n fontSize={fieldLayoutInfo.attrs?.fontSize ?? \"14px\"}\n readOnly={readOnly || disabled}\n language={codeLanguage}\n />\n </div>\n\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"mt-1\">\n <SolidMessage text={formik.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n};\n\nexport const DynamicSelectionStaticEditWidget = ({\n formik,\n fieldContext,\n}: SolidFormFieldWidgetProps) => {\n const fieldLayoutInfo = fieldContext.field;\n const fieldJsonSchema = fieldLayoutInfo.attrs.jsonSchema;\n const name = fieldLayoutInfo.attrs.name;\n const readOnly = fieldLayoutInfo.attrs?.readonly || fieldContext.readOnly;\n const disabled = fieldLayoutInfo.attrs?.disabled;\n\n const value = formik.values[name] || \"{}\";\n const [data, setData] = useState(JSON.parse(value || \"{}\"));\n\n const handleChange = (key: string, value: any) => {\n const updated = { ...data, [key]: value };\n setData(updated);\n formik.setFieldValue(name, JSON.stringify(updated));\n };\n\n const renderInput = (key: string) => {\n const meta: any = fieldJsonSchema[key];\n const val = data[key];\n\n if (meta?.type === \"selectionStatic\") {\n return (\n <SolidSelect\n value={val}\n options={meta.allowedValues.map((v: any) => ({\n label: v,\n value: v,\n }))}\n onChange={(e) => handleChange(key, e.value)}\n placeholder={meta.placeHolder || \"Select.\"}\n disabled={!!disabled}\n className=\"w-full\"\n />\n );\n }\n\n return null;\n };\n const shouldShowField = (key: string) => {\n const meta = fieldJsonSchema[key];\n\n if (!meta?.visibility) return true; // default show\n\n if (meta.visibility === \"parent\") {\n const parentKey = Object.keys(fieldJsonSchema)[0]; // assume first field is parent\n return !!data[parentKey]; // show only if parent has value\n }\n\n return true;\n };\n\n return (\n <div className=\"flex gap-3 align-items-center\">\n {Object.keys(fieldJsonSchema).map((key) => {\n const meta: any = fieldJsonSchema[key];\n if (!shouldShowField(key)) return null;\n return (\n <div key={key} className={\"flex flex-column gap-2 \" + (meta.className || '')}>\n {/*load prime header icon and headerText */}\n {(meta.headerText || meta.headerIcon) && (\n <div className=\"flex align-items-center gap-2\">\n {meta.headerIcon && (() => { const m = parseSolidIconMeta(meta.headerIcon); return m ? <SolidIcon name={m.name} spin={m.spin} /> : <i className={meta.headerIcon}></i>; })()}\n <span className=\"font-semibold form-field-label font-medium\">\n {meta.headerText ?? key}\n </span>\n </div>\n )}\n {/* Notes below input */}\n {meta.noteText && (\n <small className=\"text-secondary mt-2\">{meta.noteText}</small>\n )}\n {/*load note here */}\n <label className=\"form-field-label font-medium\">{key.charAt(0).toUpperCase() + key.slice(1)} {meta.required && <span className=\"text-red-500\">*</span>}</label>\n <div className=\"w-full mt-1 flex flex-row gap-2\">\n {renderInput(key)}\n </div>\n </div>\n );\n })}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidLongTextField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidLongTextField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport * as Yup from 'yup';\nimport styles from './solidFields.module.css';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { SolidButton, SolidDatePicker, SolidSelect, SolidInput, SolidCodeEditor, SolidIcon, SolidTextarea } from \"../../../shad-cn-ui\";\nimport { parseSolidIconMeta } from \"../../../shad-cn-ui/SolidIcon\";\nimport { SolidMessage } from \"../../../shad-cn-ui/SolidMessage\";\n\n\nexport class SolidLongTextField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n if (value !== undefined && value !== null) {\n formData.append(fieldLayoutInfo.attrs.name, value);\n }\n }\n\n initialValue(): any {\n const fieldName = this.fieldContext.field.attrs.name;\n const fieldDefaultValue = this.fieldContext?.fieldMetadata?.defaultValue;\n\n const existingValue = this.fieldContext.data[fieldName];\n\n return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue || '';\n }\n\n validationSchema(): Yup.Schema {\n let schema: Yup.StringSchema<string | null | undefined> = Yup.string();\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n // 1. required \n if (fieldMetadata.required) {\n schema = schema.required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = schema.nullable(); // Allow null when not required\n }\n // 2. length (min/max)\n if (fieldMetadata.min && fieldMetadata.min > 0) {\n schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.FIELD_MINIMUM_CHARACTER(fieldLabel, fieldMetadata.min));\n }\n if (fieldMetadata.max && fieldMetadata.max > 0) {\n schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.FIELD_MAXIMUM_CHARACTER(fieldLabel, fieldMetadata.max));\n }\n // 3. regular expression\n if (fieldMetadata.regexPattern) {\n const regexPatternNotMatchingErrorMsg = fieldMetadata.regexPatternNotMatchingErrorMsg ?? `${fieldLabel} has invalid data.`\n schema = schema.matches(fieldMetadata.regexPattern, regexPatternNotMatchingErrorMsg);\n }\n\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldLayoutInfo = this.fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultLongTextFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultShortTextFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n return (\n <>\n <div className={className}>\n\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\n </>\n );\n }\n\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n\n}\n\nexport const DefaultLongTextFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n return (\n <div className={styles.fieldWrapper}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={styles.fieldLabel}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\">*</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <SolidTextarea\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled}\n id={fieldLayoutInfo.attrs.name}\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={(e: React.ChangeEvent<HTMLTextAreaElement>) => fieldContext.onChange(e, 'onFieldChange')}\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n rows={5}\n className={styles.fieldTextarea}\n />\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <p className={styles.fieldError}>{formik?.errors[fieldLayoutInfo.attrs.name]?.toString()}</p>\n )}\n </div>\n );\n}\n\nexport const DynamicJsonEditorFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n const readOnly = fieldLayoutInfo.attrs?.readonly || fieldContext.readOnly;\n const disabled = fieldLayoutInfo.attrs?.disabled;\n const value = formik.values[fieldLayoutInfo.attrs.name] || '';\n const codeLanguage = fieldLayoutInfo.attrs.editorLanguage || 'ts';\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n // Sample schema, this comes from the metadata...\n // {\n // key1: {\n // required: true,\n // type: \"string\",\n // },\n // key2: {\n // required: true,\n // type: \"selectionStatic\",\n // allowedValues: [\n // \"selection static val 1\",\n // \"selection static val 2\",\n // \"selection static val 3\",\n // \"selection static val 4\",\n // ],\n // },\n // };\n const fieldJsonSchema = fieldLayoutInfo.attrs?.jsonSchema;\n if (!fieldJsonSchema) {\n return <SolidMessage severity=\"error\" text=\"Field Layout Attributes are missing jsonSchema, cannot render with widget jsonEditor without specifying the schema\" />\n }\n const [data, setData] = useState(JSON.parse(value || '[]'));\n\n const renderInput = (value: any, key: string, index: number) => {\n // @ts-ignore\n const meta: any = fieldJsonSchema[key];\n if (!meta) return null;\n\n if (meta.type === \"string\" || meta.type === \"shortText\") {\n return <SolidInput value={value} readOnly disabled />;\n }\n if (meta.type === \"longText\") {\n return (\n <SolidTextarea value={value} rows={10} cols={100} readOnly className={styles.fieldTextarea} />\n );\n }\n if (meta.type === \"date\" || meta.type === \"datetime\") {\n return (\n <SolidDatePicker\n selected={value ? new Date(value) : null}\n onChange={() => { }}\n showTimeSelect={meta.type === \"datetime\"}\n disabled\n />\n );\n }\n\n if (meta.type === \"selectionStatic\") {\n return (\n <SolidSelect\n value={value}\n // @ts-ignore\n options={meta.allowedValues.map((v) => ({ label: v, value: v }))}\n placeholder=\"Select.\"\n disabled\n />\n );\n }\n\n return null;\n };\n\n return (\n <div className=\"mt-4\">\n {fieldLayoutInfo?.attrs?.showLabel !== false && (\n <label className={`${styles.fieldLabel} form-field-label mb-10`}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"p-4 border-round surface-card shadow-1\">\n\n <div className=\"flex flex-column gap-2\">\n {\n // @ts-ignore\n data.map((row, idx) => (\n <div\n key={idx}\n className={`flex ${fieldLayoutInfo.attrs?.className ? `flex-${fieldLayoutInfo.attrs?.className}` : 'flex-row'} border-1 border-round p-3 gap-2`}\n >\n {Object.keys(fieldJsonSchema).map((key) => (\n <div key={key} className=\"flex flex-column gap-1\">\n <label>{key.charAt(0).toUpperCase() + key.slice(1)}</label>\n {\n // @ts-ignore\n renderInput(row[key], key, idx)\n }\n </div>\n ))}\n\n </div>\n ))\n }\n </div>\n\n </div>\n </div>\n );\n}\n\nexport const DynamicJsonEditorFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n const readOnly = fieldLayoutInfo.attrs?.readonly || fieldContext.readOnly;\n const disabled = fieldLayoutInfo.attrs?.disabled;\n\n const value = formik.values[fieldLayoutInfo.attrs.name] || '';\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n // Sample schema, this comes from the metadata...\n // {\n // key1: {\n // required: true,\n // type: \"string\",\n // },\n // key2: {\n // required: true,\n // type: \"selectionStatic\",\n // allowedValues: [\n // \"selection static val 1\",\n // \"selection static val 2\",\n // \"selection static val 3\",\n // \"selection static val 4\",\n // ],\n // },\n // };\n const fieldJsonSchema = fieldLayoutInfo.attrs?.jsonSchema;\n if (!fieldJsonSchema) {\n return <SolidMessage severity=\"error\" text=\"Field Layout Attributes are missing jsonSchema, cannot render with widget jsonEditor without specifying the schema\" />\n }\n const [data, setData] = useState(JSON.parse(value || '[]'));\n\n const handleAllChange = (updated: any) => {\n setData(updated);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, JSON.stringify(updated));\n }\n\n const handleChange = (index: number, key: string, value: any) => {\n const updated = [...data];\n // @ts-ignore\n updated[index][key] = value;\n handleAllChange(updated);\n };\n\n const handleAdd = () => {\n const newItem = {};\n Object.keys(fieldJsonSchema).forEach((key) => {\n // @ts-ignore\n newItem[key] = \"\";\n });\n // @ts-ignore\n handleAllChange([...data, newItem]);\n };\n\n const handleRemove = (index: number) => {\n const updated = [...data];\n updated.splice(index, 1);\n handleAllChange(updated);\n };\n\n const renderInput = (value: any, key: string, index: number) => {\n // @ts-ignore\n const meta: any = fieldJsonSchema[key];\n if (!meta) return null;\n\n if (meta.type === \"string\" || meta.type === \"shortText\") {\n return (\n <SolidInput\n value={value}\n onChange={(e) => handleChange(index, key, e.target.value)}\n disabled={!!disabled}\n readOnly={!!readOnly}\n />\n );\n }\n\n if (meta.type === \"longText\") {\n return (\n <SolidTextarea\n onChange={(e) => handleChange(index, key, e.target.value)}\n value={value}\n rows={10}\n cols={100}\n className={styles.fieldTextarea}\n />\n );\n }\n\n if (meta.type === \"date\" || meta.type === \"datetime\") {\n return (\n <SolidDatePicker\n selected={value ? new Date(value) : null}\n onChange={(date: Date | null) => handleChange(index, key, date)}\n showTimeSelect={meta.type === \"datetime\"}\n disabled={!!disabled}\n />\n );\n }\n\n if (meta.type === \"selectionStatic\") {\n return (\n <SolidSelect\n value={value}\n // @ts-ignore\n options={meta.allowedValues.map((v) => ({ label: v, value: v }))}\n onChange={(e) => handleChange(index, key, e.value)}\n placeholder=\"Select.\"\n disabled={!!disabled}\n />\n );\n }\n\n return null;\n };\n\n return (\n <div className=\"mt-4\">\n {fieldLayoutInfo?.attrs?.showLabel !== false && (\n <label className={`${styles.fieldLabel} form-field-label mb-10`}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"p-4 border-round surface-card shadow-1\">\n <div className=\"flex justify-content-between align-items-center mb-3\">\n {!disabled && !readOnly ? (\n <SolidButton\n type=\"button\"\n leftIcon={<SolidIcon name=\"si-plus\" aria-hidden />}\n onClick={handleAdd}\n >\n Add\n </SolidButton>\n ) : null}\n </div>\n\n <div className=\"flex flex-column gap-2\">\n {\n // @ts-ignore\n data.map((row, idx) => (\n <div\n key={idx}\n className={`flex ${fieldLayoutInfo.attrs?.className ? `flex-${fieldLayoutInfo.attrs?.className}` : 'flex-row'} border-1 border-round p-3 gap-2`}\n >\n <div className=\"flex gap-3 align-items-center\">\n {Object.keys(fieldJsonSchema).map((key) => (\n <div key={key} className=\"flex flex-column gap-1\">\n <label>{key.charAt(0).toUpperCase() + key.slice(1)}</label>\n {\n // @ts-ignore\n renderInput(row[key], key, idx)\n }\n </div>\n ))}\n </div>\n {!disabled && !readOnly ? (\n <SolidButton\n type=\"button\"\n leftIcon={<SolidIcon name=\"si-minus\" aria-hidden />}\n className=\"ml-2 h-2rem w-2rem rounded-circle\"\n onClick={() => handleRemove(idx)}\n />\n ) : null}\n </div>\n ))\n }\n </div>\n\n {\n fieldLayoutInfo.attrs?.jsonSchemaShowPreview &&\n <pre className=\"mt-4 bg-gray-100 p-3 border-round overflow-auto\">\n {JSON.stringify(data, null, 2)}\n </pre>\n }\n </div>\n </div>\n );\n};\n\nexport const CodeEditorFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n const readOnly = fieldLayoutInfo.attrs?.readonly || fieldContext.readOnly;\n const disabled = fieldLayoutInfo.attrs?.disabled;\n const codeLanguage = fieldLayoutInfo.attrs.editorLanguage || 'ts';\n\n const value = formik.values[fieldLayoutInfo.attrs.name] || '';\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n return (\n <div className=\"mt-4\">\n {fieldLayoutInfo?.attrs?.showLabel !== false && (\n <label className={`${styles.fieldLabel} form-field-label mb-10`}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"border border-gray-300 rounded overflow-hidden\">\n <SolidCodeEditor\n value={value}\n onChange={(val) => formik.setFieldValue(fieldLayoutInfo.attrs.name, val)}\n height={fieldLayoutInfo.attrs?.height ?? \"200px\"}\n fontSize={fieldLayoutInfo.attrs?.fontSize ?? \"14px\"}\n readOnly={readOnly || disabled}\n language={codeLanguage}\n />\n </div>\n\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"mt-1\">\n <SolidMessage text={formik.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n};\n\nexport const DynamicSelectionStaticEditWidget = ({\n formik,\n fieldContext,\n}: SolidFormFieldWidgetProps) => {\n const fieldLayoutInfo = fieldContext.field;\n const fieldJsonSchema = fieldLayoutInfo.attrs.jsonSchema;\n const name = fieldLayoutInfo.attrs.name;\n const readOnly = fieldLayoutInfo.attrs?.readonly || fieldContext.readOnly;\n const disabled = fieldLayoutInfo.attrs?.disabled;\n\n const value = formik.values[name] || \"{}\";\n const [data, setData] = useState(JSON.parse(value || \"{}\"));\n\n const handleChange = (key: string, value: any) => {\n const updated = { ...data, [key]: value };\n setData(updated);\n formik.setFieldValue(name, JSON.stringify(updated));\n };\n\n const renderInput = (key: string) => {\n const meta: any = fieldJsonSchema[key];\n const val = data[key];\n\n if (meta?.type === \"selectionStatic\") {\n return (\n <SolidSelect\n value={val}\n options={meta.allowedValues.map((v: any) => ({\n label: v,\n value: v,\n }))}\n onChange={(e) => handleChange(key, e.value)}\n placeholder={meta.placeHolder || \"Select.\"}\n disabled={!!disabled}\n className=\"w-full\"\n />\n );\n }\n\n return null;\n };\n const shouldShowField = (key: string) => {\n const meta = fieldJsonSchema[key];\n\n if (!meta?.visibility) return true; // default show\n\n if (meta.visibility === \"parent\") {\n const parentKey = Object.keys(fieldJsonSchema)[0]; // assume first field is parent\n return !!data[parentKey]; // show only if parent has value\n }\n\n return true;\n };\n\n return (\n <div className=\"flex gap-3 align-items-center\">\n {Object.keys(fieldJsonSchema).map((key) => {\n const meta: any = fieldJsonSchema[key];\n if (!shouldShowField(key)) return null;\n return (\n <div key={key} className={\"flex flex-column gap-2 \" + (meta.className || '')}>\n {/*load prime header icon and headerText */}\n {(meta.headerText || meta.headerIcon) && (\n <div className=\"flex align-items-center gap-2\">\n {meta.headerIcon && (() => { const m = parseSolidIconMeta(meta.headerIcon); return m ? <SolidIcon name={m.name} spin={m.spin} /> : <i className={meta.headerIcon}></i>; })()}\n <span className=\"font-semibold form-field-label font-medium\">\n {meta.headerText ?? key}\n </span>\n </div>\n )}\n {/* Notes below input */}\n {meta.noteText && (\n <small className=\"text-secondary mt-2\">{meta.noteText}</small>\n )}\n {/*load note here */}\n <label className=\"form-field-label font-medium\">{key.charAt(0).toUpperCase() + key.slice(1)} {meta.required && <span className=\"text-red-500\">*</span>}</label>\n <div className=\"w-full mt-1 flex flex-row gap-2\">\n {renderInput(key)}\n </div>\n </div>\n );\n })}\n </div>\n );\n};\n"]}
@@ -7,7 +7,7 @@ import { getExtensionComponent } from "../../../../helpers/registry";
7
7
  import { SolidFormFieldWidgetProps } from "../../../../types/solid-core";
8
8
  import { SolidFieldTooltip } from "../../../../components/common/SolidFieldTooltip";
9
9
  import { ERROR_MESSAGES } from "../../../../constants/error-messages";
10
- import { SolidButton, SolidDatePicker, SolidSelect, SolidInput, SolidCodeEditor, SolidIcon } from "../../../shad-cn-ui";
10
+ import { SolidButton, SolidDatePicker, SolidSelect, SolidInput, SolidCodeEditor, SolidIcon, SolidTextarea } from "../../../shad-cn-ui";
11
11
  import { parseSolidIconMeta } from "../../../shad-cn-ui/SolidIcon";
12
12
  import { SolidMessage } from "../../../shad-cn-ui/SolidMessage";
13
13
 
@@ -141,7 +141,7 @@ export const DefaultLongTextFormEditWidget = ({ formik, fieldContext }: SolidFor
141
141
  <SolidFieldTooltip fieldContext={fieldContext} />
142
142
  </label>
143
143
  }
144
- <textarea
144
+ <SolidTextarea
145
145
  readOnly={formReadonly || fieldReadonly || readOnlyPermission}
146
146
  disabled={formDisabled || fieldDisabled}
147
147
  id={fieldLayoutInfo.attrs.name}
@@ -204,7 +204,7 @@ export const DynamicJsonEditorFormViewWidget = ({ formik, fieldContext }: SolidF
204
204
  }
205
205
  if (meta.type === "longText") {
206
206
  return (
207
- <textarea value={value} rows={10} cols={100} readOnly className={styles.fieldTextarea} />
207
+ <SolidTextarea value={value} rows={10} cols={100} readOnly className={styles.fieldTextarea} />
208
208
  );
209
209
  }
210
210
  if (meta.type === "date" || meta.type === "datetime") {
@@ -355,7 +355,7 @@ export const DynamicJsonEditorFormEditWidget = ({ formik, fieldContext }: SolidF
355
355
 
356
356
  if (meta.type === "longText") {
357
357
  return (
358
- <textarea
358
+ <SolidTextarea
359
359
  onChange={(e) => handleChange(index, key, e.target.value)}
360
360
  value={value}
361
361
  rows={10}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMediaMultipleField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidMediaMultipleField.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAK3E,OAAO,EAA6B,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAKzG,qBAAa,uBAAwB,YAAW,WAAW;IAEvD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAyD;IACjF,OAAO,CAAC,eAAe,CAAC,CAA0B;gBACtC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,EAC/G,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;IAM7C,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAYnD,YAAY,IAAI,GAAG;IAKnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAiD9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAmC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAcjE;AAGD,eAAO,MAAM,kCAAkC,+DAAgE,8BAA8B,4CAqU5I,CAAA;AAED,eAAO,MAAM,kCAAkC,+DAAgE,8BAA8B,4CAiL5I,CAAA"}
1
+ {"version":3,"file":"SolidMediaMultipleField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidMediaMultipleField.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAK3E,OAAO,EAA6B,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAKzG,qBAAa,uBAAwB,YAAW,WAAW;IAEvD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAyD;IACjF,OAAO,CAAC,eAAe,CAAC,CAA0B;gBACtC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,EAC/G,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;IAM7C,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAYnD,YAAY,IAAI,GAAG;IAKnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAiD9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAmC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAcjE;AAGD,eAAO,MAAM,kCAAkC,+DAAgE,8BAA8B,4CA4U5I,CAAA;AAED,eAAO,MAAM,kCAAkC,+DAAgE,8BAA8B,4CAwL5I,CAAA"}