@donotdev/crud 0.0.6 → 0.0.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 (304) hide show
  1. package/README.md +18 -2
  2. package/dist/CrudService.d.ts +91 -8
  3. package/dist/CrudService.d.ts.map +1 -1
  4. package/dist/CrudService.js +1 -1
  5. package/dist/CrudStore.d.ts +45 -2
  6. package/dist/CrudStore.d.ts.map +1 -1
  7. package/dist/CrudStore.js +1 -1
  8. package/dist/FieldRegistry.d.ts +56 -20
  9. package/dist/FieldRegistry.d.ts.map +1 -1
  10. package/dist/FieldRegistry.js +1 -1
  11. package/dist/adapters/FirestoreAdapter.d.ts +4 -4
  12. package/dist/adapters/FirestoreAdapter.d.ts.map +1 -1
  13. package/dist/adapters/FirestoreAdapter.js +1 -1
  14. package/dist/adapters/FunctionsAdapter.d.ts +3 -2
  15. package/dist/adapters/FunctionsAdapter.d.ts.map +1 -1
  16. package/dist/adapters/FunctionsAdapter.js +1 -1
  17. package/dist/builtinFieldTypes.d.ts +4 -0
  18. package/dist/builtinFieldTypes.d.ts.map +1 -1
  19. package/dist/builtinFieldTypes.js +1 -1
  20. package/dist/components/CrudButton.d.ts +1 -1
  21. package/dist/components/CrudButton.d.ts.map +1 -1
  22. package/dist/components/CrudButton.js +1 -1
  23. package/dist/components/DisplayFieldRenderer.d.ts +15 -11
  24. package/dist/components/DisplayFieldRenderer.d.ts.map +1 -1
  25. package/dist/components/DisplayFieldRenderer.js +1 -1
  26. package/dist/components/EntityCardList.d.ts +27 -0
  27. package/dist/components/EntityCardList.d.ts.map +1 -0
  28. package/dist/components/EntityCardList.js +1 -0
  29. package/dist/components/EntityDisplayRenderer.d.ts +43 -0
  30. package/dist/components/EntityDisplayRenderer.d.ts.map +1 -0
  31. package/dist/components/EntityDisplayRenderer.js +1 -0
  32. package/dist/components/EntityFormRenderer.d.ts +21 -26
  33. package/dist/components/EntityFormRenderer.d.ts.map +1 -1
  34. package/dist/components/EntityFormRenderer.js +1 -5
  35. package/dist/components/EntityList.d.ts +24 -0
  36. package/dist/components/EntityList.d.ts.map +1 -0
  37. package/dist/components/EntityList.js +1 -0
  38. package/dist/components/FormFieldRenderer.d.ts +3 -10
  39. package/dist/components/FormFieldRenderer.d.ts.map +1 -1
  40. package/dist/components/FormFieldRenderer.js +1 -1
  41. package/dist/components/FormLayout.d.ts +1 -9
  42. package/dist/components/FormLayout.d.ts.map +1 -1
  43. package/dist/components/controlled/complex/ControlledAddressField.d.ts +8 -0
  44. package/dist/components/controlled/complex/ControlledAddressField.d.ts.map +1 -0
  45. package/dist/components/controlled/complex/ControlledAddressField.js +1 -0
  46. package/dist/components/controlled/complex/ControlledDateField.d.ts +8 -0
  47. package/dist/components/controlled/complex/ControlledDateField.d.ts.map +1 -0
  48. package/dist/components/controlled/complex/ControlledDateField.js +1 -0
  49. package/dist/components/controlled/complex/ControlledGeoPointField.d.ts +8 -0
  50. package/dist/components/controlled/complex/ControlledGeoPointField.d.ts.map +1 -0
  51. package/dist/components/controlled/complex/ControlledGeoPointField.js +1 -0
  52. package/dist/components/controlled/complex/ControlledMapField.d.ts +8 -0
  53. package/dist/components/controlled/complex/ControlledMapField.d.ts.map +1 -0
  54. package/dist/components/controlled/complex/ControlledMapField.js +1 -0
  55. package/dist/components/controlled/complex/ControlledMultiInputField.d.ts +8 -0
  56. package/dist/components/controlled/complex/ControlledMultiInputField.d.ts.map +1 -0
  57. package/dist/components/controlled/complex/ControlledMultiInputField.js +1 -0
  58. package/dist/components/controlled/complex/ControlledRichTextField.d.ts +8 -0
  59. package/dist/components/controlled/complex/ControlledRichTextField.d.ts.map +1 -0
  60. package/dist/components/controlled/complex/ControlledRichTextField.js +1 -0
  61. package/dist/components/controlled/complex/ControlledTimestampField.d.ts +8 -0
  62. package/dist/components/controlled/complex/ControlledTimestampField.d.ts.map +1 -0
  63. package/dist/components/controlled/complex/ControlledTimestampField.js +1 -0
  64. package/dist/components/controlled/complex/index.d.ts +8 -0
  65. package/dist/components/controlled/complex/index.d.ts.map +1 -0
  66. package/dist/components/controlled/complex/index.js +1 -0
  67. package/dist/components/controlled/file/ControlledDocumentField.d.ts +8 -0
  68. package/dist/components/controlled/file/ControlledDocumentField.d.ts.map +1 -0
  69. package/dist/components/controlled/file/ControlledDocumentField.js +1 -0
  70. package/dist/components/controlled/file/ControlledFileField.d.ts +8 -0
  71. package/dist/components/controlled/file/ControlledFileField.d.ts.map +1 -0
  72. package/dist/components/controlled/file/ControlledFileField.js +1 -0
  73. package/dist/components/controlled/file/ControlledImageField.d.ts +8 -0
  74. package/dist/components/controlled/file/ControlledImageField.d.ts.map +1 -0
  75. package/dist/components/controlled/file/ControlledImageField.js +1 -0
  76. package/dist/components/controlled/file/ControlledMultiDocumentField.d.ts +8 -0
  77. package/dist/components/controlled/file/ControlledMultiDocumentField.d.ts.map +1 -0
  78. package/dist/components/controlled/file/ControlledMultiDocumentField.js +1 -0
  79. package/dist/components/controlled/file/ControlledMultiFileField.d.ts +8 -0
  80. package/dist/components/controlled/file/ControlledMultiFileField.d.ts.map +1 -0
  81. package/dist/components/controlled/file/ControlledMultiFileField.js +1 -0
  82. package/dist/components/controlled/file/ControlledMultiImageField.d.ts +8 -0
  83. package/dist/components/controlled/file/ControlledMultiImageField.d.ts.map +1 -0
  84. package/dist/components/controlled/file/ControlledMultiImageField.js +1 -0
  85. package/dist/components/controlled/file/index.d.ts +7 -0
  86. package/dist/components/controlled/file/index.d.ts.map +1 -0
  87. package/dist/components/controlled/file/index.js +1 -0
  88. package/dist/components/controlled/index.d.ts +12 -0
  89. package/dist/components/controlled/index.d.ts.map +1 -0
  90. package/dist/components/controlled/index.js +1 -0
  91. package/dist/components/controlled/input/ControlledCheckboxField.d.ts +8 -0
  92. package/dist/components/controlled/input/ControlledCheckboxField.d.ts.map +1 -0
  93. package/dist/components/controlled/input/ControlledCheckboxField.js +1 -0
  94. package/dist/components/controlled/input/ControlledNumberField.d.ts +8 -0
  95. package/dist/components/controlled/input/ControlledNumberField.d.ts.map +1 -0
  96. package/dist/components/controlled/input/ControlledNumberField.js +1 -0
  97. package/dist/components/controlled/input/ControlledPasswordField.d.ts +8 -0
  98. package/dist/components/controlled/input/ControlledPasswordField.d.ts.map +1 -0
  99. package/dist/components/controlled/input/ControlledPasswordField.js +1 -0
  100. package/dist/components/controlled/input/ControlledPhoneField.d.ts +8 -0
  101. package/dist/components/controlled/input/ControlledPhoneField.d.ts.map +1 -0
  102. package/dist/components/controlled/input/ControlledPhoneField.js +1 -0
  103. package/dist/components/controlled/input/ControlledRangeField.d.ts +8 -0
  104. package/dist/components/controlled/input/ControlledRangeField.d.ts.map +1 -0
  105. package/dist/components/controlled/input/ControlledRangeField.js +1 -0
  106. package/dist/components/controlled/input/ControlledSwitchField.d.ts +8 -0
  107. package/dist/components/controlled/input/ControlledSwitchField.d.ts.map +1 -0
  108. package/dist/components/controlled/input/ControlledSwitchField.js +1 -0
  109. package/dist/components/controlled/input/ControlledTextField.d.ts +8 -0
  110. package/dist/components/controlled/input/ControlledTextField.d.ts.map +1 -0
  111. package/dist/components/controlled/input/ControlledTextField.js +1 -0
  112. package/dist/components/controlled/input/ControlledTextareaField.d.ts +8 -0
  113. package/dist/components/controlled/input/ControlledTextareaField.d.ts.map +1 -0
  114. package/dist/components/controlled/input/ControlledTextareaField.js +1 -0
  115. package/dist/components/controlled/input/index.d.ts +9 -0
  116. package/dist/components/controlled/input/index.d.ts.map +1 -0
  117. package/dist/components/controlled/input/index.js +1 -0
  118. package/dist/components/controlled/select/ControlledComboboxField.d.ts +9 -0
  119. package/dist/components/controlled/select/ControlledComboboxField.d.ts.map +1 -0
  120. package/dist/components/controlled/select/ControlledComboboxField.js +1 -0
  121. package/dist/components/controlled/select/ControlledDropdownField.d.ts +9 -0
  122. package/dist/components/controlled/select/ControlledDropdownField.d.ts.map +1 -0
  123. package/dist/components/controlled/select/ControlledDropdownField.js +1 -0
  124. package/dist/components/controlled/select/ControlledMultiDropdownField.d.ts +9 -0
  125. package/dist/components/controlled/select/ControlledMultiDropdownField.d.ts.map +1 -0
  126. package/dist/components/controlled/select/ControlledMultiDropdownField.js +1 -0
  127. package/dist/components/controlled/select/ControlledRadioField.d.ts +9 -0
  128. package/dist/components/controlled/select/ControlledRadioField.d.ts.map +1 -0
  129. package/dist/components/controlled/select/ControlledRadioField.js +1 -0
  130. package/dist/components/controlled/select/index.d.ts +5 -0
  131. package/dist/components/controlled/select/index.d.ts.map +1 -0
  132. package/dist/components/controlled/select/index.js +1 -0
  133. package/dist/components/controlled/types.d.ts +23 -0
  134. package/dist/components/controlled/types.d.ts.map +1 -0
  135. package/dist/components/controlled/types.js +1 -0
  136. package/dist/components/form/fields/AddressFieldComponent.d.ts.map +1 -1
  137. package/dist/components/form/fields/AddressFieldComponent.js +1 -1
  138. package/dist/components/form/fields/AvatarFieldComponent.d.ts +2 -2
  139. package/dist/components/form/fields/BadgeFieldComponent.d.ts +2 -2
  140. package/dist/components/form/fields/ButtonFieldComponent.d.ts +1 -9
  141. package/dist/components/form/fields/ButtonFieldComponent.d.ts.map +1 -1
  142. package/dist/components/form/fields/ButtonFieldComponent.js +1 -1
  143. package/dist/components/form/fields/ComboboxComponent.d.ts.map +1 -1
  144. package/dist/components/form/fields/CurrencyFieldComponent.d.ts +1 -9
  145. package/dist/components/form/fields/CurrencyFieldComponent.d.ts.map +1 -1
  146. package/dist/components/form/fields/CurrencyFieldComponent.js +1 -1
  147. package/dist/components/form/fields/DateFieldComponent.d.ts.map +1 -1
  148. package/dist/components/form/fields/DateFieldComponent.js +1 -1
  149. package/dist/components/form/fields/DocumentFieldComponent.d.ts +47 -0
  150. package/dist/components/form/fields/DocumentFieldComponent.d.ts.map +1 -0
  151. package/dist/components/form/fields/DocumentFieldComponent.js +1 -0
  152. package/dist/components/form/fields/DropdownComponent.d.ts.map +1 -1
  153. package/dist/components/form/fields/DropdownComponent.js +1 -1
  154. package/dist/components/form/fields/FileFieldComponent.d.ts +31 -15
  155. package/dist/components/form/fields/FileFieldComponent.d.ts.map +1 -1
  156. package/dist/components/form/fields/FileFieldComponent.js +1 -1
  157. package/dist/components/form/fields/GeoPointFieldComponent.d.ts.map +1 -1
  158. package/dist/components/form/fields/GeoPointFieldComponent.js +1 -1
  159. package/dist/components/form/fields/HiddenFieldComponent.d.ts +1 -1
  160. package/dist/components/form/fields/HiddenFieldComponent.d.ts.map +1 -1
  161. package/dist/components/form/fields/HiddenFieldComponent.js +1 -1
  162. package/dist/components/form/fields/ImageFieldComponent.d.ts +8 -14
  163. package/dist/components/form/fields/ImageFieldComponent.d.ts.map +1 -1
  164. package/dist/components/form/fields/ImageFieldComponent.js +1 -1
  165. package/dist/components/form/fields/MapFieldComponent.d.ts.map +1 -1
  166. package/dist/components/form/fields/MapFieldComponent.js +1 -1
  167. package/dist/components/form/fields/MultiDropdownComponent.js +1 -1
  168. package/dist/components/form/fields/MultiInputTextFieldComponent.d.ts +1 -9
  169. package/dist/components/form/fields/MultiInputTextFieldComponent.d.ts.map +1 -1
  170. package/dist/components/form/fields/MultiInputTextFieldComponent.js +1 -1
  171. package/dist/components/form/fields/NumberFieldComponent.d.ts +2 -0
  172. package/dist/components/form/fields/NumberFieldComponent.d.ts.map +1 -1
  173. package/dist/components/form/fields/NumberFieldComponent.js +1 -1
  174. package/dist/components/form/fields/PasswordFieldComponent.d.ts +1 -9
  175. package/dist/components/form/fields/PasswordFieldComponent.d.ts.map +1 -1
  176. package/dist/components/form/fields/PhoneNumberComponent.d.ts +1 -9
  177. package/dist/components/form/fields/PhoneNumberComponent.d.ts.map +1 -1
  178. package/dist/components/form/fields/PhoneNumberComponent.js +1 -1
  179. package/dist/components/form/fields/RadioFieldComponent.d.ts +1 -9
  180. package/dist/components/form/fields/RadioFieldComponent.d.ts.map +1 -1
  181. package/dist/components/form/fields/ReferenceFieldComponent.d.ts +33 -12
  182. package/dist/components/form/fields/ReferenceFieldComponent.d.ts.map +1 -1
  183. package/dist/components/form/fields/ReferenceFieldComponent.js +1 -1
  184. package/dist/components/form/fields/RichTextComponent.d.ts +32 -0
  185. package/dist/components/form/fields/RichTextComponent.d.ts.map +1 -0
  186. package/dist/components/form/fields/RichTextComponent.js +1 -0
  187. package/dist/components/form/fields/SwitchFieldComponent.d.ts.map +1 -1
  188. package/dist/components/form/fields/TextAreaComponent.d.ts +1 -9
  189. package/dist/components/form/fields/TextAreaComponent.d.ts.map +1 -1
  190. package/dist/components/form/fields/TextAreaComponent.js +1 -1
  191. package/dist/components/form/fields/TextFieldComponent.d.ts +1 -9
  192. package/dist/components/form/fields/TextFieldComponent.d.ts.map +1 -1
  193. package/dist/components/form/fields/index.d.ts +4 -2
  194. package/dist/components/form/fields/index.d.ts.map +1 -1
  195. package/dist/components/form/fields/index.js +1 -1
  196. package/dist/components/form/fields/internal/TiptapEditor.d.ts +13 -0
  197. package/dist/components/form/fields/internal/TiptapEditor.d.ts.map +1 -0
  198. package/dist/components/form/fields/internal/TiptapEditor.js +52 -0
  199. package/dist/components/form/index.d.ts +10 -0
  200. package/dist/components/form/index.d.ts.map +1 -0
  201. package/dist/components/form/index.js +1 -0
  202. package/dist/components/form/internal/ImageViewerDialog.d.ts +1 -1
  203. package/dist/components/form/internal/ImageViewerDialog.d.ts.map +1 -1
  204. package/dist/components/index.d.ts +8 -2
  205. package/dist/components/index.d.ts.map +1 -1
  206. package/dist/components/index.js +1 -1
  207. package/dist/contexts/UploadContext.d.ts +16 -0
  208. package/dist/contexts/UploadContext.d.ts.map +1 -0
  209. package/dist/contexts/UploadContext.js +1 -0
  210. package/dist/contexts/index.d.ts +3 -0
  211. package/dist/contexts/index.d.ts.map +1 -0
  212. package/dist/contexts/index.js +1 -0
  213. package/dist/forms/hooks/index.d.ts +2 -0
  214. package/dist/forms/hooks/index.d.ts.map +1 -1
  215. package/dist/forms/hooks/index.js +1 -1
  216. package/dist/forms/hooks/useController.d.ts +29 -0
  217. package/dist/forms/hooks/useController.d.ts.map +1 -0
  218. package/dist/forms/hooks/useController.js +1 -0
  219. package/dist/forms/hooks/useEntityField.d.ts.map +1 -1
  220. package/dist/forms/hooks/useEntityField.js +1 -1
  221. package/dist/forms/hooks/useEntityForm.d.ts +8 -76
  222. package/dist/forms/hooks/useEntityForm.d.ts.map +1 -1
  223. package/dist/forms/hooks/useEntityForm.js +1 -1
  224. package/dist/forms/index.d.ts +6 -4
  225. package/dist/forms/index.d.ts.map +1 -1
  226. package/dist/forms/index.js +1 -1
  227. package/dist/forms/types.d.ts +31 -5
  228. package/dist/forms/types.d.ts.map +1 -1
  229. package/dist/forms/utils/getFieldsForOperation.d.ts +5 -5
  230. package/dist/forms/utils/getFieldsForOperation.d.ts.map +1 -1
  231. package/dist/forms/utils/getFieldsForOperation.js +1 -1
  232. package/dist/forms/utils/index.d.ts +9 -5
  233. package/dist/forms/utils/index.d.ts.map +1 -1
  234. package/dist/forms/utils/index.js +1 -1
  235. package/dist/forms/utils/isFieldEditable.d.ts +0 -8
  236. package/dist/forms/utils/isFieldEditable.d.ts.map +1 -1
  237. package/dist/forms/utils/optionHelpers.d.ts +54 -0
  238. package/dist/forms/utils/optionHelpers.d.ts.map +1 -0
  239. package/dist/forms/utils/optionHelpers.js +1 -0
  240. package/dist/forms/utils/translateFieldLabel.d.ts +70 -0
  241. package/dist/forms/utils/translateFieldLabel.d.ts.map +1 -0
  242. package/dist/forms/utils/translateFieldLabel.js +1 -0
  243. package/dist/forms/utils/validateEntity.d.ts +5 -2
  244. package/dist/forms/utils/validateEntity.d.ts.map +1 -1
  245. package/dist/forms/utils/validateEntity.js +1 -1
  246. package/dist/hooks/index.d.ts +3 -0
  247. package/dist/hooks/index.d.ts.map +1 -0
  248. package/dist/hooks/index.js +1 -0
  249. package/dist/hooks/useFileUpload.d.ts +67 -0
  250. package/dist/hooks/useFileUpload.d.ts.map +1 -0
  251. package/dist/hooks/useFileUpload.js +1 -0
  252. package/dist/index.d.ts +15 -5
  253. package/dist/index.d.ts.map +1 -1
  254. package/dist/index.js +1 -1
  255. package/dist/stores/FormStore.d.ts +78 -0
  256. package/dist/stores/FormStore.d.ts.map +1 -0
  257. package/dist/stores/FormStore.js +1 -0
  258. package/dist/stores/UploadStore.d.ts +105 -0
  259. package/dist/stores/UploadStore.d.ts.map +1 -0
  260. package/dist/stores/UploadStore.js +1 -0
  261. package/dist/stores/index.d.ts +11 -0
  262. package/dist/stores/index.d.ts.map +1 -0
  263. package/dist/stores/index.js +1 -0
  264. package/dist/tsconfig.tsbuildinfo +1 -1
  265. package/dist/useCrud.d.ts +32 -74
  266. package/dist/useCrud.d.ts.map +1 -1
  267. package/dist/useCrud.js +1 -1
  268. package/dist/useCrudCardList.d.ts +62 -0
  269. package/dist/useCrudCardList.d.ts.map +1 -0
  270. package/dist/useCrudCardList.js +1 -0
  271. package/dist/useCrudList.d.ts +61 -0
  272. package/dist/useCrudList.d.ts.map +1 -0
  273. package/dist/useCrudList.js +1 -0
  274. package/dist/utils/fileStorage.d.ts +58 -0
  275. package/dist/utils/fileStorage.d.ts.map +1 -0
  276. package/dist/utils/fileStorage.js +1 -0
  277. package/dist/utils/imageProcessing.d.ts +1 -1
  278. package/dist/utils/imageProcessing.d.ts.map +1 -1
  279. package/dist/utils/imageProcessing.js +1 -1
  280. package/dist/utils/imageStorage.d.ts +1 -10
  281. package/dist/utils/imageStorage.d.ts.map +1 -1
  282. package/dist/utils/imageStorage.js +1 -1
  283. package/dist/utils/mergeWithOptimistic.d.ts +27 -0
  284. package/dist/utils/mergeWithOptimistic.d.ts.map +1 -0
  285. package/dist/utils/mergeWithOptimistic.js +1 -0
  286. package/dist/utils/uploadValidation.d.ts +37 -0
  287. package/dist/utils/uploadValidation.d.ts.map +1 -0
  288. package/dist/utils/uploadValidation.js +1 -0
  289. package/package.json +22 -5
  290. package/dist/components/ControlledFields.d.ts +0 -49
  291. package/dist/components/ControlledFields.d.ts.map +0 -1
  292. package/dist/components/ControlledFields.js +0 -1
  293. package/dist/context/FormUploadContext.d.ts +0 -36
  294. package/dist/context/FormUploadContext.d.ts.map +0 -1
  295. package/dist/context/FormUploadContext.js +0 -1
  296. package/dist/context/index.d.ts +0 -2
  297. package/dist/context/index.d.ts.map +0 -1
  298. package/dist/context/index.js +0 -1
  299. package/dist/forms/utils/createEntitySchema.d.ts +0 -53
  300. package/dist/forms/utils/createEntitySchema.d.ts.map +0 -1
  301. package/dist/forms/utils/createEntitySchema.js +0 -1
  302. package/dist/forms/utils/normalizeToFieldConfig.d.ts +0 -47
  303. package/dist/forms/utils/normalizeToFieldConfig.d.ts.map +0 -1
  304. package/dist/forms/utils/normalizeToFieldConfig.js +0 -1
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledTimestampField - Explicit controlled component for timestamp inputs
5
+ * Forwards Controller's ref for focus/validation (simple input)
6
+ */
7
+ export declare function ControlledTimestampField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledTimestampField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledTimestampField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledTimestampField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAsBd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{TimestampFieldComponent as p}from"../../form/fields";import{convertValidationRules as c}from"../types";function x(l){const{control:i,errors:n,fieldConfig:a,t:m}=l,{name:e,label:s,validation:r}=a;return t(d,{name:e,control:i,rules:r?c(r):void 0,render:({field:o})=>t(p,{...o,label:m(s),value:o.value??null,onChange:u=>o.onChange(u),error:!!n[e],helperText:n[e]?.message,required:r?.required})})}export{x as ControlledTimestampField};
@@ -0,0 +1,8 @@
1
+ export { ControlledAddressField } from './ControlledAddressField';
2
+ export { ControlledDateField } from './ControlledDateField';
3
+ export { ControlledGeoPointField } from './ControlledGeoPointField';
4
+ export { ControlledMapField } from './ControlledMapField';
5
+ export { ControlledMultiInputField } from './ControlledMultiInputField';
6
+ export { ControlledRichTextField } from './ControlledRichTextField';
7
+ export { ControlledTimestampField } from './ControlledTimestampField';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1 @@
1
+ import{ControlledAddressField as l}from"./ControlledAddressField";import{ControlledDateField as t}from"./ControlledDateField";import{ControlledGeoPointField as i}from"./ControlledGeoPointField";import{ControlledMapField as m}from"./ControlledMapField";import{ControlledMultiInputField as x}from"./ControlledMultiInputField";import{ControlledRichTextField as C}from"./ControlledRichTextField";import{ControlledTimestampField as a}from"./ControlledTimestampField";export{l as ControlledAddressField,t as ControlledDateField,i as ControlledGeoPointField,m as ControlledMapField,x as ControlledMultiInputField,C as ControlledRichTextField,a as ControlledTimestampField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledDocumentField - Explicit controlled component for document uploads
5
+ * NO ref forwarding - complex component (forwardRef) handles its own refs
6
+ */
7
+ export declare function ControlledDocumentField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledDocumentField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledDocumentField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/file/ControlledDocumentField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA2Bd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as a}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{DocumentFieldComponent as p}from"../../form/fields";import{convertValidationRules as f}from"../types";function v(i){const{control:m,errors:r,fieldConfig:n,t:s}=i,{name:e,label:u,validation:o}=n,t=n.options||{};return a(d,{name:e,control:m,rules:o?f(o):void 0,render:({field:l})=>a(p,{name:e,label:s(u),value:l.value??null,onChange:c=>l.onChange(c),error:!!r[e],helperText:r[e]?.message,required:o?.required,multiple:!1,maxFiles:1,maxSize:t.maxSize,storagePath:t.storagePath})})}export{v as ControlledDocumentField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledFileField - Explicit controlled component for file uploads
5
+ * NO ref forwarding - complex component (forwardRef) handles its own refs
6
+ */
7
+ export declare function ControlledFileField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledFileField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledFileField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/file/ControlledFileField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA2Bd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as i}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{FileFieldComponent as c}from"../../form/fields";import{convertValidationRules as f}from"../types";function F(a){const{control:s,errors:r,fieldConfig:n,t:m}=a,{name:e,label:u,validation:o}=n,l=n.options||{};return i(p,{name:e,control:s,rules:o?f(o):void 0,render:({field:t})=>i(c,{name:e,label:m(u),value:t.value??null,onChange:d=>t.onChange(d),error:!!r[e],helperText:r[e]?.message,required:o?.required,multiple:!1,maxFiles:1,maxSize:l.maxSize,storagePath:l.storagePath})})}export{F as ControlledFileField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledImageField - Explicit controlled component for image uploads
5
+ * NO ref forwarding - complex component (forwardRef) handles its own refs
6
+ */
7
+ export declare function ControlledImageField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledImageField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledImageField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/file/ControlledImageField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA2Bd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as a}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{ImageFieldComponent as c}from"../../form/fields";import{convertValidationRules as f}from"../types";function v(i){const{control:m,errors:r,fieldConfig:n,t:s}=i,{name:e,label:u,validation:o}=n,t=n.options||{};return a(p,{name:e,control:m,rules:o?f(o):void 0,render:({field:l})=>a(c,{name:e,label:s(u),value:l.value??null,onChange:d=>l.onChange(d),error:!!r[e],helperText:r[e]?.message,required:o?.required,multiple:!1,maxFiles:1,maxSize:t.maxSize,storagePath:t.storagePath})})}export{v as ControlledImageField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledMultiDocumentField - Explicit controlled component for multiple document uploads
5
+ * NO ref forwarding - complex component (forwardRef) handles its own refs
6
+ */
7
+ export declare function ControlledMultiDocumentField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledMultiDocumentField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledMultiDocumentField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/file/ControlledMultiDocumentField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAoCd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as l}from"react/jsx-runtime";import{Controller as x}from"react-hook-form";import{DocumentFieldComponent as d}from"../../form/fields";import{convertValidationRules as v}from"../types";function F(i){const{control:u,errors:t,fieldConfig:a,t:m}=i,{name:r,label:s,validation:o}=a,n=a.options||{};return l(x,{name:r,control:u,rules:o?v(o):void 0,render:({field:e})=>{const c=Array.isArray(e.value)?e.value:e.value?[e.value]:null;return l(d,{name:r,label:m(s),value:c,onChange:p=>e.onChange(p),error:!!t[r],helperText:t[r]?.message,required:o?.required,multiple:!0,maxFiles:n.maxFiles??10,maxSize:n.maxSize,storagePath:n.storagePath})}})}export{F as ControlledMultiDocumentField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledMultiFileField - Explicit controlled component for multiple file uploads
5
+ * NO ref forwarding - complex component (forwardRef) handles its own refs
6
+ */
7
+ export declare function ControlledMultiFileField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledMultiFileField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledMultiFileField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/file/ControlledMultiFileField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAoCd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as l}from"react/jsx-runtime";import{Controller as x}from"react-hook-form";import{FileFieldComponent as d}from"../../form/fields";import{convertValidationRules as v}from"../types";function f(i){const{control:s,errors:t,fieldConfig:a,t:u}=i,{name:r,label:m,validation:o}=a,n=a.options||{};return l(x,{name:r,control:s,rules:o?v(o):void 0,render:({field:e})=>{const p=Array.isArray(e.value)?e.value:e.value?[e.value]:null;return l(d,{name:r,label:u(m),value:p,onChange:c=>e.onChange(c),error:!!t[r],helperText:t[r]?.message,required:o?.required,multiple:!0,maxFiles:n.maxFiles??10,maxSize:n.maxSize,storagePath:n.storagePath})}})}export{f as ControlledMultiFileField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledMultiImageField - Explicit controlled component for multiple image uploads
5
+ * NO ref forwarding - complex component (forwardRef) handles its own refs
6
+ */
7
+ export declare function ControlledMultiImageField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledMultiImageField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledMultiImageField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/file/ControlledMultiImageField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAoCd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as l}from"react/jsx-runtime";import{Controller as g}from"react-hook-form";import{ImageFieldComponent as x}from"../../form/fields";import{convertValidationRules as d}from"../types";function F(i){const{control:m,errors:n,fieldConfig:t,t:s}=i,{name:r,label:u,validation:o}=t,a=t.options||{};return l(g,{name:r,control:m,rules:o?d(o):void 0,render:({field:e})=>{const p=Array.isArray(e.value)?e.value:e.value?[e.value]:null;return l(x,{name:r,label:s(u),value:p,onChange:c=>e.onChange(c),error:!!n[r],helperText:n[r]?.message,required:o?.required,multiple:!0,maxFiles:a.maxFiles??10,maxSize:a.maxSize,storagePath:a.storagePath})}})}export{F as ControlledMultiImageField};
@@ -0,0 +1,7 @@
1
+ export { ControlledDocumentField } from './ControlledDocumentField';
2
+ export { ControlledFileField } from './ControlledFileField';
3
+ export { ControlledImageField } from './ControlledImageField';
4
+ export { ControlledMultiDocumentField } from './ControlledMultiDocumentField';
5
+ export { ControlledMultiFileField } from './ControlledMultiFileField';
6
+ export { ControlledMultiImageField } from './ControlledMultiImageField';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/file/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1 @@
1
+ import{ControlledDocumentField as l}from"./ControlledDocumentField";import{ControlledFileField as t}from"./ControlledFileField";import{ControlledImageField as i}from"./ControlledImageField";import{ControlledMultiDocumentField as n}from"./ControlledMultiDocumentField";import{ControlledMultiFileField as f}from"./ControlledMultiFileField";import{ControlledMultiImageField as x}from"./ControlledMultiImageField";export{l as ControlledDocumentField,t as ControlledFileField,i as ControlledImageField,n as ControlledMultiDocumentField,f as ControlledMultiFileField,x as ControlledMultiImageField};
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview Controlled Fields
3
+ * @description Explicit controlled components for all field types, organized by category.
4
+ * All components use standard React Hook Form Controller pattern.
5
+ */
6
+ export type { ControlledFieldProps } from './types';
7
+ export { convertValidationRules, convertPatternToRegex } from './types';
8
+ export * from './input';
9
+ export * from './select';
10
+ export * from './file';
11
+ export * from './complex';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/controlled/index.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAGH,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGxE,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ import{convertValidationRules as e,convertPatternToRegex as t}from"./types";export*from"./input";export*from"./select";export*from"./file";export*from"./complex";export{t as convertPatternToRegex,e as convertValidationRules};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledCheckboxField - Explicit controlled component for checkbox inputs
5
+ * Uses standard React Hook Form Controller pattern
6
+ */
7
+ export declare function ControlledCheckboxField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledCheckboxField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledCheckboxField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/input/ControlledCheckboxField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAmBd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as r}from"react/jsx-runtime";import{Controller as m}from"react-hook-form";import{CheckboxFieldComponent as s}from"../../form/fields";import{convertValidationRules as u}from"../types";function b(n){const{control:t,errors:C,fieldConfig:l,t:i}=n,{name:a,label:c,validation:e}=l;return r(m,{name:a,control:t,rules:e?u(e):void 0,render:({field:o})=>r(s,{label:i(c),checked:!!o.value,onChange:d=>o.onChange(d.target.checked),required:e?.required})})}export{b as ControlledCheckboxField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledNumberField - Explicit controlled component for number inputs
5
+ * Forwards Controller's ref for focus/validation (simple input)
6
+ */
7
+ export declare function ControlledNumberField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledNumberField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledNumberField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/input/ControlledNumberField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA8Cd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as m}from"react/jsx-runtime";import{Controller as g}from"react-hook-form";import{NumberFieldComponent as h}from"../../form/fields";import{convertValidationRules as C}from"../types";function F(u){const{control:c,errors:t,fieldConfig:l,t:d,placeholder:v}=u,{name:r,label:p,validation:e}=l,i=l.options||{},o=i.fieldSpecific;return m(g,{name:r,control:c,rules:e?C(e):void 0,render:({field:n})=>{const f=a=>{if(a.target.value===""||a.target.value===null){n.onChange(null);return}try{const s=parseFloat(a.target.value);isNaN(s)||n.onChange(s)}catch{n.onChange(0)}};return m(h,{...n,label:d(p),value:n.value??void 0,onChange:f,error:!!t[r],helperText:t[r]?.message,required:e?.required,min:e?.min,max:e?.max,step:o?.mask==="currency"?.01:o?.mask==="mileage"?1:void 0,mask:o?.mask||"number",className:i.className})}})}export{F as ControlledNumberField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledPasswordField - Explicit controlled component for password inputs
5
+ * Forwards Controller's ref for focus/validation (simple input)
6
+ */
7
+ export declare function ControlledPasswordField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledPasswordField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledPasswordField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/input/ControlledPasswordField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAwBd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as a}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{PasswordFieldComponent as u}from"../../form/fields";import{convertValidationRules as f}from"../types";function x(t){const{control:s,errors:l,fieldConfig:i,t:d,placeholder:m}=t,{name:e,label:c,validation:o,options:n={}}=i;return a(p,{name:e,control:s,rules:o?f(o):void 0,render:({field:r})=>a(u,{...r,label:d(c),value:r.value??"",onChange:r.onChange,error:!!l[e],helperText:l[e]?.message,required:o?.required,placeholder:m||n.placeholder,className:n.className})})}export{x as ControlledPasswordField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledPhoneField - Explicit controlled component for phone inputs
5
+ * Forwards Controller's ref for focus/validation (simple input)
6
+ */
7
+ export declare function ControlledPhoneField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledPhoneField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledPhoneField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/input/ControlledPhoneField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAqBd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{PhoneNumberComponent as p}from"../../form/fields";import{convertValidationRules as c}from"../types";function h(l){const{control:a,errors:n,fieldConfig:i,t:m}=l,{name:e,label:s,validation:r}=i;return t(d,{name:e,control:a,rules:r?c(r):void 0,render:({field:o})=>t(p,{label:m(s),value:typeof o.value=="string"?o.value:"",onChange:u=>o.onChange(u.target.value||""),error:n[e]?.message,helperText:n[e]?.message,required:r?.required})})}export{h as ControlledPhoneField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledRangeField - Explicit controlled component for range inputs
5
+ * Forwards Controller's ref for focus/validation (simple input)
6
+ */
7
+ export declare function ControlledRangeField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledRangeField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledRangeField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/input/ControlledRangeField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAiCd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as a}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{RangeFieldComponent as f}from"../../form/fields";import{convertValidationRules as g}from"../types";function v(s){const{control:m,errors:t,fieldConfig:i,t:p}=s,{name:o,label:u,validation:e}=i,l=i.options||{},c=l.fieldSpecific;return a(d,{name:o,control:m,rules:e?g(e):void 0,render:({field:n})=>a(f,{label:p(u),value:n.value??void 0,onChange:r=>{typeof r=="number"?n.onChange(r):n.onChange(Number(r.target.value)||0)},error:!!t[o],helperText:t[o]?.message,required:e?.required,min:e?.min,max:e?.max,step:l.step,showValue:c?.showValue})})}export{v as ControlledRangeField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledSwitchField - Switch with custom value mapping
5
+ * Supports uncheckedValue/checkedValue for string values like 'Manual'/'Automatic'
6
+ */
7
+ export declare function ControlledSwitchField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledSwitchField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledSwitchField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/input/ControlledSwitchField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA8Cd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as i}from"react/jsx-runtime";import{Controller as V}from"react-hook-form";import{SwitchFieldComponent as x}from"../../form/fields";import"../types";function T(h){const{control:s,errors:u,fieldConfig:f,t:c,onChange:o}=h,{name:t,label:k,options:m={}}=f,e=m.fieldSpecific,p=e?.uncheckedValue??!1,l=e?.checkedValue??!0,d=e?.uncheckedLabel,r=e?.checkedLabel;return i(V,{name:t,control:s,render:({field:{value:C,onChange:b}})=>{const g=C===l,L=n=>{const a=n?l:p;b(a),o&&o(a)};return i(x,{label:c(k),checked:g,onChange:n=>L(n.target.checked),uncheckedLabel:d?c(d):void 0,checkedLabel:r?c(r):void 0,helperText:u[t]?.message})}})}export{T as ControlledSwitchField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledTextField - Explicit controlled component for text inputs
5
+ * Forwards Controller's ref for focus/validation (simple input)
6
+ */
7
+ export declare function ControlledTextField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledTextField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledTextField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/input/ControlledTextField.tsx"],"names":[],"mappings":"AAQA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA2Bd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as a}from"react/jsx-runtime";import{Controller as u}from"react-hook-form";import{TextFieldComponent as d}from"../../form/fields";import{convertValidationRules as h}from"../types";function v(s){const{control:m,errors:n,fieldConfig:e,t:i,placeholder:p}=s,{name:r,label:c,validation:o,options:l={}}=e;return a(u,{name:r,control:m,rules:o?h(o):void 0,render:({field:t})=>a(d,{...t,label:i(c),value:t.value??"",onChange:t.onChange,error:n[r]?.message,helperText:n[r]?.message,type:e.type==="email"?"email":e.type==="url"?"url":e.type==="color"?"color":"text",required:o?.required,placeholder:p||l.placeholder,maxLength:o?.maxLength,showCharCount:l.showCharCount,className:l.className})})}export{v as ControlledTextField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledTextareaField - Explicit controlled component for textarea inputs
5
+ * Forwards Controller's ref for focus/validation (simple input)
6
+ */
7
+ export declare function ControlledTextareaField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledTextareaField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledTextareaField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/input/ControlledTextareaField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA6Bd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as l}from"react/jsx-runtime";import{Controller as h}from"react-hook-form";import{TextAreaComponent as p}from"../../form/fields";import{convertValidationRules as d}from"../types";function v(s){const{control:i,errors:a,fieldConfig:t,t:m,placeholder:u}=s,{name:r,label:c,validation:o}=t,e=t.options||{};return l(h,{name:r,control:i,rules:o?d(o):void 0,render:({field:n})=>l(p,{...n,label:m(c),value:n.value??"",onChange:n.onChange,error:a[r]?.message,helperText:a[r]?.message,required:o?.required,placeholder:u||e.placeholder,maxLength:o?.maxLength,showCharCount:e.showCharCount,autoResize:e.autoResize,rows:e.rows,className:e.className})})}export{v as ControlledTextareaField};
@@ -0,0 +1,9 @@
1
+ export { ControlledCheckboxField } from './ControlledCheckboxField';
2
+ export { ControlledNumberField } from './ControlledNumberField';
3
+ export { ControlledPasswordField } from './ControlledPasswordField';
4
+ export { ControlledPhoneField } from './ControlledPhoneField';
5
+ export { ControlledRangeField } from './ControlledRangeField';
6
+ export { ControlledSwitchField } from './ControlledSwitchField';
7
+ export { ControlledTextField } from './ControlledTextField';
8
+ export { ControlledTextareaField } from './ControlledTextareaField';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/input/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1 @@
1
+ import{ControlledCheckboxField as r}from"./ControlledCheckboxField";import{ControlledNumberField as t}from"./ControlledNumberField";import{ControlledPasswordField as x}from"./ControlledPasswordField";import{ControlledPhoneField as i}from"./ControlledPhoneField";import{ControlledRangeField as C}from"./ControlledRangeField";import{ControlledSwitchField as p}from"./ControlledSwitchField";import{ControlledTextField as a}from"./ControlledTextField";import{ControlledTextareaField as b}from"./ControlledTextareaField";export{r as ControlledCheckboxField,t as ControlledNumberField,x as ControlledPasswordField,i as ControlledPhoneField,C as ControlledRangeField,p as ControlledSwitchField,a as ControlledTextField,b as ControlledTextareaField};
@@ -0,0 +1,9 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledComboboxField - Explicit controlled component for combobox inputs
5
+ * Forwards Controller's ref for focus/validation (simple input)
6
+ * Handles dynamic options and creatable mode
7
+ */
8
+ export declare function ControlledComboboxField(props: ControlledFieldProps): ReactElement;
9
+ //# sourceMappingURL=ControlledComboboxField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledComboboxField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/select/ControlledComboboxField.tsx"],"names":[],"mappings":"AASA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA2Ed"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as b}from"react/jsx-runtime";import{useMemo as h}from"react";import{Controller as j,useWatch as q,useFormContext as B}from"react-hook-form";import{translateLabel as F}from"../../../forms/utils";import{ComboboxComponent as P}from"../../form/fields";import{convertValidationRules as S}from"../types";function _(x){const{control:d,errors:c,fieldConfig:r,t:l,placeholder:g}=x,{name:s,label:O,validation:n,options:p={}}=r,f=B()?.setValue,o=q({control:d}),t="dependsOn"in r?r.dependsOn:void 0,V=t&&o?o[t.field]:void 0,m=h(()=>{const e=n?.options;return e?typeof e=="function"?e(o||{}):e:[]},[n?.options,o,V]),v=h(()=>m.map(e=>({...e,label:F(e.label,l)})),[m,l]),a=p.fieldSpecific;return b(j,{name:s,control:d,rules:n?S(n):void 0,render:({field:e})=>{const y=i=>{const C=typeof i=="string"?i:i.target.value;if(e.onChange(C),t&&f&&a?.setParentOnChange){const u=a.setParentOnChange(C,o||{});u!=null&&f(t.field,u,{shouldValidate:!0,shouldDirty:!0})}};return b(P,{...e,label:l(O),value:e.value??"",onChange:y,onBlur:e.onBlur,options:v,error:!!c[s],helperText:c[s]?.message,required:n?.required,placeholder:g||p.placeholder,creatable:a?.creatable??!1})}})}export{_ as ControlledComboboxField};
@@ -0,0 +1,9 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledDropdownField - Explicit controlled component for select/dropdown inputs
5
+ * Forwards Controller's ref for focus/validation (simple input)
6
+ * Handles dynamic options (function-based) and dependsOn logic
7
+ */
8
+ export declare function ControlledDropdownField(props: ControlledFieldProps): ReactElement;
9
+ //# sourceMappingURL=ControlledDropdownField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledDropdownField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/select/ControlledDropdownField.tsx"],"names":[],"mappings":"AASA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA4Ed"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as C}from"react/jsx-runtime";import{useMemo as g}from"react";import{Controller as w,useWatch as y,useFormContext as D}from"react-hook-form";import{translateLabel as S}from"../../../forms/utils";import{DropdownComponent as j}from"../../form/fields";import{convertValidationRules as q}from"../types";function _(h){const{control:u,errors:d,fieldConfig:r,t:s,onChange:B}=h,{name:i,label:O,validation:n,options:V={}}=r,p=D()?.setValue,o=y({control:u}),t="dependsOn"in r?r.dependsOn:void 0,x=t&&o?o[t.field]:void 0,f=g(()=>{const e=n?.options;return e?typeof e=="function"?e(o||{}):e:[]},[n?.options,o,x]),b=g(()=>f.map(e=>({...e,label:S(e.label,s)})),[f,s]),c=V.fieldSpecific;return C(w,{name:i,control:u,rules:n?q(n):void 0,render:({field:e})=>{const v=l=>{const m=typeof l=="string"?l:l.target.value;if(e.onChange(m),t&&p&&c?.setParentOnChange){const a=c.setParentOnChange(m,o||{});a!=null&&p(t.field,a,{shouldValidate:!0,shouldDirty:!0})}};return C(j,{label:s(O),value:e.value!==void 0&&e.value!==null?String(e.value):"",onChange:v,onBlur:e.onBlur,options:b,error:!!d[i],helperText:d[i]?.message,required:n?.required})}})}export{_ as ControlledDropdownField};
@@ -0,0 +1,9 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledMultiDropdownField - Explicit controlled component for multiselect inputs
5
+ * Forwards Controller's ref for focus/validation (simple input)
6
+ * Handles dynamic options
7
+ */
8
+ export declare function ControlledMultiDropdownField(props: ControlledFieldProps): ReactElement;
9
+ //# sourceMappingURL=ControlledMultiDropdownField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledMultiDropdownField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/select/ControlledMultiDropdownField.tsx"],"names":[],"mappings":"AASA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAmEd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as m}from"react/jsx-runtime";import{useMemo as c}from"react";import{Controller as y,useWatch as O}from"react-hook-form";import{translateLabel as b}from"../../../forms/utils";import{MultiDropdownComponent as x}from"../../form/fields";import{convertValidationRules as A}from"../types";function D(f){const{control:i,errors:u,fieldConfig:t,t:a}=f,{name:l,label:g,validation:n}=t,r=O({control:i}),p="dependsOn"in t?t.dependsOn:void 0,h=p&&r?r[p.field]:void 0,d=c(()=>{const e=n?.options;return e?typeof e=="function"?e(r||{}):e:[]},[n?.options,r,h]),C=c(()=>d.map(e=>({value:String(e.value),label:b(e.label,a)})),[d,a]);return m(y,{name:l,control:i,rules:n?A(n):void 0,render:({field:e})=>{const v=s=>{let o;if(Array.isArray(s))o=s;else try{o=JSON.parse(s.target.value)}catch{o=[]}e.onChange(o)};return m(x,{...e,label:a(g),value:Array.isArray(e.value)?e.value:[],onChange:v,onBlur:e.onBlur,options:C,error:!!u[l],helperText:u[l]?.message,required:n?.required})}})}export{D as ControlledMultiDropdownField};
@@ -0,0 +1,9 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledRadioField - Explicit controlled component for radio inputs
5
+ * Forwards Controller's ref for focus/validation (simple input)
6
+ * Handles dynamic options
7
+ */
8
+ export declare function ControlledRadioField(props: ControlledFieldProps): ReactElement;
9
+ //# sourceMappingURL=ControlledRadioField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledRadioField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/select/ControlledRadioField.tsx"],"names":[],"mappings":"AASA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAqDd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as p}from"react/jsx-runtime";import{useMemo as m}from"react";import{Controller as v,useWatch as O}from"react-hook-form";import{translateLabel as h}from"../../../forms/utils";import{RadioFieldComponent as x}from"../../form/fields";import{convertValidationRules as V}from"../types";function L(f){const{control:a,errors:l,fieldConfig:r,t}=f,{name:i,label:c,validation:n}=r,o=O({control:a}),d="dependsOn"in r?r.dependsOn:void 0,g=d&&o?o[d.field]:void 0,u=m(()=>{const e=n?.options;return e?typeof e=="function"?e(o||{}):e:[]},[n?.options,o,g]),C=m(()=>u.map(e=>({value:String(e.value),label:h(e.label,t)})),[u,t]);return p(v,{name:i,control:a,rules:n?V(n):void 0,render:({field:e})=>p(x,{...e,label:t(c),value:e.value??void 0,onChange:s=>{const b=typeof s=="string"?s:s.target.value;e.onChange(b)},options:C,error:!!l[i],helperText:l[i]?.message,required:n?.required})})}export{L as ControlledRadioField};
@@ -0,0 +1,5 @@
1
+ export { ControlledComboboxField } from './ControlledComboboxField';
2
+ export { ControlledDropdownField } from './ControlledDropdownField';
3
+ export { ControlledMultiDropdownField } from './ControlledMultiDropdownField';
4
+ export { ControlledRadioField } from './ControlledRadioField';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/select/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ import{ControlledComboboxField as l}from"./ControlledComboboxField";import{ControlledDropdownField as d}from"./ControlledDropdownField";import{ControlledMultiDropdownField as i}from"./ControlledMultiDropdownField";import{ControlledRadioField as p}from"./ControlledRadioField";export{l as ControlledComboboxField,d as ControlledDropdownField,i as ControlledMultiDropdownField,p as ControlledRadioField};
@@ -0,0 +1,23 @@
1
+ import type { EntityField, FieldType, ValueTypeForField } from '@donotdev/core';
2
+ import type { Control, FieldErrors, FieldValues, RegisterOptions } from 'react-hook-form';
3
+ /**
4
+ * Props for all controlled field components
5
+ */
6
+ export interface ControlledFieldProps<T extends FieldValues = FieldValues, FT extends FieldType = FieldType> {
7
+ /** Control object from react-hook-form - compatible with Controller and useController */
8
+ control: Control<T>;
9
+ errors: FieldErrors<T>;
10
+ fieldConfig: EntityField<FT>;
11
+ t: (key: string, options?: Record<string, unknown>) => string;
12
+ onChange?: (value: ValueTypeForField<FT>) => void;
13
+ placeholder?: string;
14
+ }
15
+ /**
16
+ * Convert pattern string to RegExp
17
+ */
18
+ export declare function convertPatternToRegex(pattern: string | RegExp | undefined): RegExp | undefined;
19
+ /**
20
+ * Convert validation rules to react-hook-form RegisterOptions
21
+ */
22
+ export declare function convertValidationRules(validation: any): RegisterOptions;
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/controlled/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,WAAW,EAEX,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,oBAAoB,CACnC,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,EAAE,SAAS,SAAS,GAAG,SAAS;IAEhC,yFAAyF;IACzF,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAC9D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GACnC,MAAM,GAAG,SAAS,CAgBpB;AAED;;GAEG;AAEH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,GAAG,GAAG,eAAe,CAkBvE"}
@@ -0,0 +1 @@
1
+ "use client";function f(e){if(e){if(e instanceof RegExp)return e;try{const n=/^\/(.*)\/([gimyus]*)$/.exec(e);if(n){const[,r,t]=n;if(r)return new RegExp(r,t)}return new RegExp(e)}catch{return}}}function u(e){if(!e)return{};const n={};return e.required!==void 0&&(n.required=e.required),e.min!==void 0&&(n.min=e.min),e.max!==void 0&&(n.max=e.max),e.minLength!==void 0&&(n.minLength=e.minLength),e.maxLength!==void 0&&(n.maxLength=e.maxLength),e.pattern&&typeof e.pattern=="string"&&(n.pattern={value:f(e.pattern)||/.*/,message:"Invalid format"}),n}export{f as convertPatternToRegex,u as convertValidationRules};
@@ -1 +1 @@
1
- {"version":3,"file":"AddressFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/AddressFieldComponent.tsx"],"names":[],"mappings":"AAgBA;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,KAAK,CAAC,EAAE;QACN,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,qBAAqB;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,qBAAqB,GAAI,iGAS5B,0BAA0B,4CAiS5B,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"AddressFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/AddressFieldComponent.tsx"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,KAAK,CAAC,EAAE;QACN,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,qBAAqB;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,qBAAqB,GAAI,iGAS5B,0BAA0B,4CAiS5B,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- import{jsx as r,jsxs as f}from"react/jsx-runtime";import{useState as S,useEffect as w,useRef as b,useMemo as D}from"react";import{Combobox as M,Stack as L}from"@donotdev/components";import{useTranslation as F,getPlatformEnvVar as W}from"@donotdev/core";import{MapPin as Y}from"lucide-react";const $=({label:C,value:d,onChange:P,enableGoogleMaps:j=!1,extractDistrictCode:O,error:l,helperText:u,required:x})=>{const{t:n}=F("dndev"),[c,m]=S(d?.formatted_address||""),[g,v]=S([]),[I,p]=S(!1),h=b(null),_=b(null),i=b(null),y=W("GOOGLE_MAPS_API_KEY")||"",s=j&&!!y,V=D(()=>g.map(e=>({value:e.place_id,label:e.description,description:e.structured_formatting?.secondary_text,content:f("div",{style:{display:"flex",alignItems:"center",gap:"var(--gap-sm)"},children:[r(Y,{style:{width:"var(--size-icon-sm)",height:"var(--size-icon-sm)"}}),f("div",{children:[r("div",{children:e.description}),e.structured_formatting?.secondary_text&&r("div",{style:{fontSize:"var(--font-size-xs)",color:"var(--muted-foreground)"},children:e.structured_formatting.secondary_text})]})]})})),[g]),G=e=>{_.current&&(p(!0),_.current.getDetails({placeId:e,fields:["formatted_address","geometry","address_components"]},(t,o)=>{if(p(!1),o===window.google?.maps?.places?.PlacesServiceStatus.OK&&t){const a=t.formatted_address||"",k=t.geometry?.location?.lat(),q=t.geometry?.location?.lng(),A={formatted_address:a,latitude:k,longitude:q};if(O&&t.address_components){const E=t.address_components.find(U=>U.types.includes("postal_code"))?.long_name||"",T=E.startsWith("92")?92:parseInt(E.slice(-2),10)||null;A.district_code=T}m(a),P(A)}}))};w(()=>{d?.formatted_address&&m(d.formatted_address)},[d]),w(()=>{if(!s)return;const e=()=>{if(window.google?.maps?.places){t();return}if(document.querySelector("#google-maps-script")){const a=setInterval(()=>{window.google?.maps?.places&&(clearInterval(a),t())},100);return}const o=document.createElement("script");o.id="google-maps-script",o.src=`https://maps.googleapis.com/maps/api/js?key=${y}&libraries=places`,o.async=!0,o.defer=!0,o.onload=()=>t(),document.head.appendChild(o)},t=()=>{window.google?.maps?.places&&(h.current=new window.google.maps.places.AutocompleteService,_.current=new window.google.maps.places.PlacesService(document.createElement("div")))};e()},[s,y]),w(()=>{if(!s||!c||!h.current){v([]);return}return i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{p(!0),h.current.getPlacePredictions({input:c,types:["geocode","establishment"]},(e,t)=>{p(!1),t===window.google?.maps?.places?.PlacesServiceStatus.OK&&e?v(e):v([])})},300),()=>{i.current&&clearTimeout(i.current)}},[s,c]);const K=e=>{m(e),P({formatted_address:e})},z=e=>{const t=Array.isArray(e)?e[0]||"":e;if(!s){K(t);return}g.some(a=>a.place_id===t)&&G(t)},R=e=>{s&&m(e)};return s?f(L,{gap:"tight",children:[r(M,{label:C,value:c,onValueChange:z,onSearchChange:R,placeholder:n("common.address_placeholder"),emptyMessage:n(I?"common.loading":"common.no_results"),options:V,required:x,variant:l?"destructive":void 0,isLoading:I,creatable:!0,createLabel:n("actions.use","Use")}),u&&r("p",{style:{fontSize:"var(--font-size-xs)",color:l?"var(--destructive-foreground)":"var(--muted-foreground)"},children:u})]}):f(L,{gap:"tight",children:[r(M,{label:C,value:c,onValueChange:z,placeholder:n("common.address_placeholder"),options:[],required:x,variant:l?"destructive":void 0,creatable:!0,createLabel:n("actions.use","Use")}),u&&r("p",{style:{fontSize:"var(--font-size-xs)",color:l?"var(--destructive-foreground)":"var(--muted-foreground)"},children:u})]})};var Z=$;export{Z as default};
1
+ import{jsx as r,jsxs as f}from"react/jsx-runtime";import{MapPin as D}from"lucide-react";import{useState as S,useEffect as w,useRef as b,useMemo as F}from"react";import{Combobox as M,Stack as L}from"@donotdev/components";import{useTranslation as W,getPlatformEnvVar as Y}from"@donotdev/core";const $=({label:C,value:d,onChange:P,enableGoogleMaps:j=!1,extractDistrictCode:O,error:l,helperText:u,required:x})=>{const{t:n}=W("dndev"),[c,m]=S(d?.formatted_address||""),[g,v]=S([]),[I,p]=S(!1),h=b(null),_=b(null),i=b(null),y=Y("GOOGLE_MAPS_API_KEY")||"",s=j&&!!y,V=F(()=>g.map(e=>({value:e.place_id,label:e.description,description:e.structured_formatting?.secondary_text,content:f("div",{style:{display:"flex",alignItems:"center",gap:"var(--gap-sm)"},children:[r(D,{style:{width:"var(--size-icon-sm)",height:"var(--size-icon-sm)"}}),f("div",{children:[r("div",{children:e.description}),e.structured_formatting?.secondary_text&&r("div",{style:{fontSize:"var(--font-size-xs)",color:"var(--muted-foreground)"},children:e.structured_formatting.secondary_text})]})]})})),[g]),G=e=>{_.current&&(p(!0),_.current.getDetails({placeId:e,fields:["formatted_address","geometry","address_components"]},(t,o)=>{if(p(!1),o===window.google?.maps?.places?.PlacesServiceStatus.OK&&t){const a=t.formatted_address||"",k=t.geometry?.location?.lat(),q=t.geometry?.location?.lng(),A={formatted_address:a,latitude:k,longitude:q};if(O&&t.address_components){const E=t.address_components.find(U=>U.types.includes("postal_code"))?.long_name||"",T=E.startsWith("92")?92:parseInt(E.slice(-2),10)||null;A.district_code=T}m(a),P(A)}}))};w(()=>{d?.formatted_address&&m(d.formatted_address)},[d]),w(()=>{if(!s)return;const e=()=>{if(window.google?.maps?.places){t();return}if(document.querySelector("#google-maps-script")){const a=setInterval(()=>{window.google?.maps?.places&&(clearInterval(a),t())},100);return}const o=document.createElement("script");o.id="google-maps-script",o.src=`https://maps.googleapis.com/maps/api/js?key=${y}&libraries=places`,o.async=!0,o.defer=!0,o.onload=()=>t(),document.head.appendChild(o)},t=()=>{window.google?.maps?.places&&(h.current=new window.google.maps.places.AutocompleteService,_.current=new window.google.maps.places.PlacesService(document.createElement("div")))};e()},[s,y]),w(()=>{if(!s||!c||!h.current){v([]);return}return i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{p(!0),h.current.getPlacePredictions({input:c,types:["geocode","establishment"]},(e,t)=>{p(!1),t===window.google?.maps?.places?.PlacesServiceStatus.OK&&e?v(e):v([])})},300),()=>{i.current&&clearTimeout(i.current)}},[s,c]);const K=e=>{m(e),P({formatted_address:e})},z=e=>{const t=Array.isArray(e)?e[0]||"":e;if(!s){K(t);return}g.some(a=>a.place_id===t)&&G(t)},R=e=>{s&&m(e)};return s?f(L,{gap:"tight",children:[r(M,{label:C,value:c,onValueChange:z,onSearchChange:R,placeholder:n("common.address_placeholder"),emptyMessage:n(I?"common.loading":"common.no_results"),options:V,required:x,variant:l?"destructive":void 0,isLoading:I,creatable:!0,createLabel:n("actions.use","Use")}),u&&r("p",{style:{fontSize:"var(--font-size-xs)",color:l?"var(--destructive-foreground)":"var(--muted-foreground)"},children:u})]}):f(L,{gap:"tight",children:[r(M,{label:C,value:c,onValueChange:z,placeholder:n("common.address_placeholder"),options:[],required:x,variant:l?"destructive":void 0,creatable:!0,createLabel:n("actions.use","Use")}),u&&r("p",{style:{fontSize:"var(--font-size-xs)",color:l?"var(--destructive-foreground)":"var(--muted-foreground)"},children:u})]})};var Z=$;export{Z as default};
@@ -7,11 +7,11 @@
7
7
  * @author AMBROISE PARK Consulting
8
8
  */
9
9
  import { Input } from '@donotdev/components';
10
- import type { FieldConfig } from '@donotdev/core';
10
+ import type { EntityField } from '@donotdev/core';
11
11
  import type { ComponentProps, ComponentType } from 'react';
12
12
  export interface AvatarFieldComponentProps extends Omit<ComponentProps<typeof Input>, 'value' | 'onChange'> {
13
13
  /** Field configuration */
14
- config: FieldConfig<'avatar'>;
14
+ config: EntityField<'avatar'>;
15
15
  /** Current value */
16
16
  value: string;
17
17
  /** Change handler */
@@ -7,11 +7,11 @@
7
7
  * @author AMBROISE PARK Consulting
8
8
  */
9
9
  import { Input } from '@donotdev/components';
10
- import type { FieldConfig } from '@donotdev/core';
10
+ import type { EntityField } from '@donotdev/core';
11
11
  import type { ComponentProps, ComponentType } from 'react';
12
12
  export interface BadgeFieldComponentProps extends Omit<ComponentProps<typeof Input>, 'value' | 'onChange'> {
13
13
  /** Field configuration */
14
- config: FieldConfig<'badge'>;
14
+ config: EntityField<'badge'>;
15
15
  /** Current value */
16
16
  value: string;
17
17
  /** Change handler */
@@ -1,13 +1,5 @@
1
- /**
2
- * @fileoverview ButtonFieldComponent
3
- * @description Button field component for form inputs
4
- *
5
- * @version 0.0.1
6
- * @since 0.0.1
7
- * @author AMBROISE PARK Consulting
8
- */
9
- import { type ComponentType } from 'react';
10
1
  import type { ButtonVariant } from '@donotdev/components';
2
+ import type { ComponentType } from 'react';
11
3
  export interface ButtonFieldComponentProps {
12
4
  /** The button label */
13
5
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/ButtonFieldComponent.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,yBAAyB;IACxC,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qBAAqB;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,oBAAoB,EAAE,aAAa,CAAC,yBAAyB,CAYlE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"ButtonFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/ButtonFieldComponent.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,WAAW,yBAAyB;IACxC,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qBAAqB;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,oBAAoB,EAAE,aAAa,CAAC,yBAAyB,CAYlE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- import{jsx as i}from"react/jsx-runtime";import"react";import{Button as m}from"@donotdev/components";const a=({label:t,type:o,onClick:r,variant:e,disabled:n=!1})=>i(m,{type:o,onClick:r,variant:e,disabled:n,children:t});var d=a;export{d as default};
1
+ import{jsx as i}from"react/jsx-runtime";import{Button as a}from"@donotdev/components";const l=({label:t,type:o,onClick:e,variant:n,disabled:r=!1})=>i(a,{type:o,onClick:e,variant:n,disabled:r,children:t});var m=l;export{m as default};