@donotdev/crud 0.0.7 → 0.0.9

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 (184) hide show
  1. package/dist/CrudService.d.ts +6 -54
  2. package/dist/CrudService.d.ts.map +1 -1
  3. package/dist/CrudService.js +1 -1
  4. package/dist/CrudStore.d.ts +1 -94
  5. package/dist/CrudStore.d.ts.map +1 -1
  6. package/dist/adapters/FirestoreAdapter.d.ts +3 -1
  7. package/dist/adapters/FirestoreAdapter.d.ts.map +1 -1
  8. package/dist/adapters/FirestoreAdapter.js +1 -1
  9. package/dist/adapters/FunctionsAdapter.d.ts +8 -1
  10. package/dist/adapters/FunctionsAdapter.d.ts.map +1 -1
  11. package/dist/adapters/FunctionsAdapter.js +1 -1
  12. package/dist/builtinFieldTypes.d.ts.map +1 -1
  13. package/dist/builtinFieldTypes.js +1 -1
  14. package/dist/components/EntityCardList.d.ts +5 -3
  15. package/dist/components/EntityCardList.d.ts.map +1 -1
  16. package/dist/components/EntityCardList.js +1 -1
  17. package/dist/components/EntityDisplayRenderer.d.ts +3 -3
  18. package/dist/components/EntityDisplayRenderer.d.ts.map +1 -1
  19. package/dist/components/EntityDisplayRenderer.js +1 -1
  20. package/dist/components/EntityFilters.d.ts +43 -0
  21. package/dist/components/EntityFilters.d.ts.map +1 -0
  22. package/dist/components/EntityFilters.js +1 -0
  23. package/dist/components/EntityFormRenderer.d.ts +22 -1
  24. package/dist/components/EntityFormRenderer.d.ts.map +1 -1
  25. package/dist/components/EntityFormRenderer.js +1 -1
  26. package/dist/components/EntityList.d.ts +12 -6
  27. package/dist/components/EntityList.d.ts.map +1 -1
  28. package/dist/components/EntityList.js +1 -1
  29. package/dist/components/FormFieldRenderer.d.ts.map +1 -1
  30. package/dist/components/controlled/complex/ControlledAddressField.d.ts +3 -0
  31. package/dist/components/controlled/complex/ControlledAddressField.d.ts.map +1 -1
  32. package/dist/components/controlled/complex/ControlledDateField.d.ts +3 -0
  33. package/dist/components/controlled/complex/ControlledDateField.d.ts.map +1 -1
  34. package/dist/components/controlled/complex/ControlledGeoPointField.d.ts +3 -0
  35. package/dist/components/controlled/complex/ControlledGeoPointField.d.ts.map +1 -1
  36. package/dist/components/controlled/complex/ControlledMapField.d.ts +3 -0
  37. package/dist/components/controlled/complex/ControlledMapField.d.ts.map +1 -1
  38. package/dist/components/controlled/complex/ControlledMultiInputField.d.ts +3 -0
  39. package/dist/components/controlled/complex/ControlledMultiInputField.d.ts.map +1 -1
  40. package/dist/components/controlled/complex/ControlledRichTextField.d.ts +3 -0
  41. package/dist/components/controlled/complex/ControlledRichTextField.d.ts.map +1 -1
  42. package/dist/components/controlled/complex/ControlledTimestampField.d.ts +3 -0
  43. package/dist/components/controlled/complex/ControlledTimestampField.d.ts.map +1 -1
  44. package/dist/components/controlled/complex/index.d.ts.map +1 -1
  45. package/dist/components/controlled/file/ControlledDocumentField.d.ts +3 -0
  46. package/dist/components/controlled/file/ControlledDocumentField.d.ts.map +1 -1
  47. package/dist/components/controlled/file/ControlledFileField.d.ts +3 -0
  48. package/dist/components/controlled/file/ControlledFileField.d.ts.map +1 -1
  49. package/dist/components/controlled/file/ControlledImageField.d.ts +3 -0
  50. package/dist/components/controlled/file/ControlledImageField.d.ts.map +1 -1
  51. package/dist/components/controlled/file/ControlledMultiDocumentField.d.ts +3 -0
  52. package/dist/components/controlled/file/ControlledMultiDocumentField.d.ts.map +1 -1
  53. package/dist/components/controlled/file/ControlledMultiFileField.d.ts +3 -0
  54. package/dist/components/controlled/file/ControlledMultiFileField.d.ts.map +1 -1
  55. package/dist/components/controlled/file/ControlledMultiImageField.d.ts +3 -0
  56. package/dist/components/controlled/file/ControlledMultiImageField.d.ts.map +1 -1
  57. package/dist/components/controlled/file/index.d.ts.map +1 -1
  58. package/dist/components/controlled/index.d.ts +4 -0
  59. package/dist/components/controlled/index.d.ts.map +1 -1
  60. package/dist/components/controlled/input/ControlledCheckboxField.d.ts +3 -0
  61. package/dist/components/controlled/input/ControlledCheckboxField.d.ts.map +1 -1
  62. package/dist/components/controlled/input/ControlledCheckboxField.js +1 -1
  63. package/dist/components/controlled/input/ControlledGdprConsentField.d.ts +8 -0
  64. package/dist/components/controlled/input/ControlledGdprConsentField.d.ts.map +1 -0
  65. package/dist/components/controlled/input/ControlledGdprConsentField.js +1 -0
  66. package/dist/components/controlled/input/ControlledNumberField.d.ts +3 -0
  67. package/dist/components/controlled/input/ControlledNumberField.d.ts.map +1 -1
  68. package/dist/components/controlled/input/ControlledPasswordField.d.ts +3 -0
  69. package/dist/components/controlled/input/ControlledPasswordField.d.ts.map +1 -1
  70. package/dist/components/controlled/input/ControlledPhoneField.d.ts +3 -0
  71. package/dist/components/controlled/input/ControlledPhoneField.d.ts.map +1 -1
  72. package/dist/components/controlled/input/ControlledRangeField.d.ts +3 -0
  73. package/dist/components/controlled/input/ControlledRangeField.d.ts.map +1 -1
  74. package/dist/components/controlled/input/ControlledSwitchField.d.ts +3 -0
  75. package/dist/components/controlled/input/ControlledSwitchField.d.ts.map +1 -1
  76. package/dist/components/controlled/input/ControlledTextField.d.ts +3 -0
  77. package/dist/components/controlled/input/ControlledTextField.d.ts.map +1 -1
  78. package/dist/components/controlled/input/ControlledTextareaField.d.ts +3 -0
  79. package/dist/components/controlled/input/ControlledTextareaField.d.ts.map +1 -1
  80. package/dist/components/controlled/input/index.d.ts +1 -0
  81. package/dist/components/controlled/input/index.d.ts.map +1 -1
  82. package/dist/components/controlled/input/index.js +1 -1
  83. package/dist/components/controlled/select/ControlledComboboxField.d.ts +4 -0
  84. package/dist/components/controlled/select/ControlledComboboxField.d.ts.map +1 -1
  85. package/dist/components/controlled/select/ControlledDropdownField.d.ts +4 -0
  86. package/dist/components/controlled/select/ControlledDropdownField.d.ts.map +1 -1
  87. package/dist/components/controlled/select/ControlledMultiDropdownField.d.ts +4 -0
  88. package/dist/components/controlled/select/ControlledMultiDropdownField.d.ts.map +1 -1
  89. package/dist/components/controlled/select/ControlledRadioField.d.ts +4 -0
  90. package/dist/components/controlled/select/ControlledRadioField.d.ts.map +1 -1
  91. package/dist/components/controlled/select/ControlledYearField.d.ts +9 -0
  92. package/dist/components/controlled/select/ControlledYearField.d.ts.map +1 -0
  93. package/dist/components/controlled/select/ControlledYearField.js +1 -0
  94. package/dist/components/controlled/select/index.d.ts +1 -0
  95. package/dist/components/controlled/select/index.d.ts.map +1 -1
  96. package/dist/components/controlled/select/index.js +1 -1
  97. package/dist/components/controlled/types.d.ts +6 -0
  98. package/dist/components/controlled/types.d.ts.map +1 -1
  99. package/dist/components/form/fields/CheckboxFieldComponent.d.ts +3 -3
  100. package/dist/components/form/fields/CheckboxFieldComponent.d.ts.map +1 -1
  101. package/dist/components/form/fields/DocumentFieldComponent.d.ts.map +1 -1
  102. package/dist/components/form/fields/FileFieldComponent.d.ts.map +1 -1
  103. package/dist/components/form/fields/GdprConsentFieldComponent.d.ts +26 -0
  104. package/dist/components/form/fields/GdprConsentFieldComponent.d.ts.map +1 -0
  105. package/dist/components/form/fields/GdprConsentFieldComponent.js +1 -0
  106. package/dist/components/form/fields/ImageFieldComponent.d.ts +4 -3
  107. package/dist/components/form/fields/ImageFieldComponent.d.ts.map +1 -1
  108. package/dist/components/form/fields/ImageFieldComponent.js +1 -1
  109. package/dist/components/form/fields/PhoneNumberComponent.d.ts.map +1 -1
  110. package/dist/components/form/fields/PhoneNumberComponent.js +1 -1
  111. package/dist/components/form/fields/RichTextComponent.d.ts +2 -21
  112. package/dist/components/form/fields/RichTextComponent.d.ts.map +1 -1
  113. package/dist/components/form/fields/TextAreaComponent.d.ts.map +1 -1
  114. package/dist/components/form/fields/TextAreaComponent.js +1 -1
  115. package/dist/components/form/fields/index.d.ts +3 -1
  116. package/dist/components/form/fields/index.d.ts.map +1 -1
  117. package/dist/components/form/fields/index.js +1 -1
  118. package/dist/components/form/fields/internal/TiptapEditor.d.ts +1 -1
  119. package/dist/components/form/fields/internal/TiptapEditor.d.ts.map +1 -1
  120. package/dist/components/form/fields/types.d.ts +33 -0
  121. package/dist/components/form/fields/types.d.ts.map +1 -0
  122. package/dist/components/form/fields/types.js +0 -0
  123. package/dist/components/form/internal/ImageViewerDialog.d.ts +2 -1
  124. package/dist/components/form/internal/ImageViewerDialog.d.ts.map +1 -1
  125. package/dist/components/form/internal/ImageViewerDialog.js +1 -1
  126. package/dist/components/index.d.ts +2 -0
  127. package/dist/components/index.d.ts.map +1 -1
  128. package/dist/components/index.js +1 -1
  129. package/dist/contexts/UploadContext.d.ts.map +1 -1
  130. package/dist/forms/hooks/useEntityForm.d.ts.map +1 -1
  131. package/dist/forms/hooks/useEntityForm.js +1 -1
  132. package/dist/forms/index.d.ts +2 -2
  133. package/dist/forms/index.d.ts.map +1 -1
  134. package/dist/forms/index.js +1 -1
  135. package/dist/forms/types.d.ts +15 -0
  136. package/dist/forms/types.d.ts.map +1 -1
  137. package/dist/forms/utils/index.d.ts +0 -2
  138. package/dist/forms/utils/index.d.ts.map +1 -1
  139. package/dist/forms/utils/index.js +1 -1
  140. package/dist/forms/utils/validateEntity.js +1 -1
  141. package/dist/hooks/useFileUpload.d.ts +1 -1
  142. package/dist/hooks/useFileUpload.d.ts.map +1 -1
  143. package/dist/hooks/useFileUpload.js +1 -1
  144. package/dist/hooks/useFormNavigationGuard.d.ts +34 -0
  145. package/dist/hooks/useFormNavigationGuard.d.ts.map +1 -0
  146. package/dist/hooks/useFormNavigationGuard.js +1 -0
  147. package/dist/hooks/useUnsavedChangesWarning.d.ts +51 -0
  148. package/dist/hooks/useUnsavedChangesWarning.d.ts.map +1 -0
  149. package/dist/hooks/useUnsavedChangesWarning.js +1 -0
  150. package/dist/index.d.ts +6 -4
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.js +1 -1
  153. package/dist/stores/FormStore.d.ts +17 -0
  154. package/dist/stores/FormStore.d.ts.map +1 -1
  155. package/dist/stores/FormStore.js +1 -1
  156. package/dist/stores/index.d.ts +1 -1
  157. package/dist/stores/index.d.ts.map +1 -1
  158. package/dist/stores/index.js +1 -1
  159. package/dist/tsconfig.tsbuildinfo +1 -1
  160. package/dist/types.d.ts +167 -0
  161. package/dist/types.d.ts.map +1 -0
  162. package/dist/types.js +0 -0
  163. package/dist/useCrud.d.ts +1 -2
  164. package/dist/useCrud.d.ts.map +1 -1
  165. package/dist/useCrud.js +1 -1
  166. package/dist/useCrudCardList.d.ts.map +1 -1
  167. package/dist/useCrudCardList.js +1 -1
  168. package/dist/useCrudList.d.ts +7 -0
  169. package/dist/useCrudList.d.ts.map +1 -1
  170. package/dist/useCrudList.js +1 -1
  171. package/dist/utils/fileStorage.d.ts +1 -1
  172. package/dist/utils/fileStorage.d.ts.map +1 -1
  173. package/dist/utils/imageStorage.d.ts +1 -1
  174. package/dist/utils/imageStorage.d.ts.map +1 -1
  175. package/dist/utils/imageUtils.d.ts +1 -1
  176. package/dist/utils/imageUtils.d.ts.map +1 -1
  177. package/dist/utils/mergeWithOptimistic.d.ts +1 -1
  178. package/dist/utils/mergeWithOptimistic.d.ts.map +1 -1
  179. package/dist/utils/uploadValidation.d.ts +1 -1
  180. package/dist/utils/uploadValidation.d.ts.map +1 -1
  181. package/package.json +17 -11
  182. package/dist/forms/utils/optionHelpers.d.ts +0 -54
  183. package/dist/forms/utils/optionHelpers.d.ts.map +0 -1
  184. package/dist/forms/utils/optionHelpers.js +0 -1
@@ -0,0 +1 @@
1
+ "use client";import{jsx as x,jsxs as E}from"react/jsx-runtime";import{useMemo as j}from"react";import{Button as k,Stack as A,Combobox as B,Slider as K,Grid as Q,RangeInput as W}from"@donotdev/components";import{useTranslation as _}from"@donotdev/core";import{translateFieldLabel as U,translateLabel as G}from"../forms/utils";function X(n,a,p){if(!a)return!0;if(typeof a=="object"&&"min"in a){const C=p==="date"||p==="datetime-local"||p==="timestamp";if(p==="number"||p==="range"){const c=a.min&&a.min!=="",g=a.max&&a.max!=="";if(c&&!g){if(n==null)return!1;const i=typeof n=="number"?n:Number(n);return isNaN(i)?!1:i>=Number(a.min)}if(!c&&g){if(n==null)return!0;const i=typeof n=="number"?n:Number(n);return isNaN(i)?!1:i<=Number(a.max)}if(c&&g){if(n==null)return!1;const i=typeof n=="number"?n:Number(n);return isNaN(i)?!1:i>=Number(a.min)&&i<=Number(a.max)}return!0}if(C){const c=a.min&&a.min!=="",g=a.max&&a.max!=="";if(c&&!g){if(n==null)return!1;const i=n instanceof Date?n:new Date(n);return isNaN(i.getTime())?!1:i>=new Date(a.min)}if(!c&&g){if(n==null)return!0;const i=n instanceof Date?n:new Date(n);return isNaN(i.getTime())?!1:i<=new Date(a.max)}if(c&&g){if(n==null)return!1;const i=n instanceof Date?n:new Date(n);return isNaN(i.getTime())?!1:i>=new Date(a.min)&&i<=new Date(a.max)}return!0}}return n==null?!1:String(n).toLowerCase().includes(String(a).toLowerCase())}function rn({entity:n,data:a,filters:p,onFiltersChange:C,fieldsToFilter:M}){const{t:c}=_("crud"),{t:g}=_(n.namespace),i=j(()=>M&&M.length>0?M:n.listFields||Object.keys(n.fields),[M,n.listFields,n.fields]),I=j(()=>{const t={};return i.forEach(e=>{const d=Object.fromEntries(Object.entries(p).filter(([l])=>l!==e));if(Object.keys(d).length===0){t[e]=a;return}t[e]=a.filter(l=>Object.entries(d).every(([w,F])=>{const b=l[w],h=n.fields[w]?.type||"text";return X(b,F,h)}))}),t},[a,p,n.fields,i]),P=j(()=>{const t={};return i.forEach(e=>{const d=n.fields[e];if(!d)return;const l=d.type||"text",w=l==="date"||l==="datetime-local"||l==="timestamp";if(l==="number"||l==="range"){const b=a.map(s=>s[e]).filter(s=>s!=null&&s!=="").map(s=>typeof s=="number"?s:Number(s)).filter(s=>!isNaN(s));b.length>0&&(t[e]={min:Math.min(...b),max:Math.max(...b)})}else if(w){const b=a.map(s=>s[e]).filter(s=>s!=null&&s!=="").map(s=>s instanceof Date?s:new Date(s)).filter(s=>!isNaN(s.getTime()));if(b.length>0){const s=new Date(Math.min(...b.map(O=>O.getTime()))),h=new Date(Math.max(...b.map(O=>O.getTime()))),Y=s.toISOString().split("T")[0],y=h.toISOString().split("T")[0];t[e]={min:Y||"",max:y||""}}}}),t},[a,n.fields,i]),D=(t,e)=>{const d={...p};if(!e||e==="")delete d[t];else if(typeof e=="object"&&"min"in e){const l=e.min&&e.min!=="",w=e.max&&e.max!=="";!l&&!w?delete d[t]:d[t]=e}else d[t]=e;C(d)},N=()=>{C({})},v=j(()=>i.length===0?null:i.map(t=>{const e=n.fields[t];if(!e)return null;const d=U(t,e,g),l=e.type||"text",w=l==="date"||l==="datetime-local"||l==="timestamp",F=l==="number"||l==="range",b=l==="year",s=l==="select"||l==="radio"||l==="combobox",h=p[t],y=typeof h=="object"&&h!==null&&"min"in h?h:{min:"",max:""};if(b){const u=e.validation?.min??1900,m=e.validation?.max??new Date().getFullYear()+10,o=[];for(let r=m;r>=u;r--)o.push({value:String(r),label:String(r)});return x("div",{style:{gridColumn:"span 2",gridRow:"span 1"},children:x(B,{label:d,value:typeof h=="string"?h:void 0,onValueChange:r=>{D(t,r==="all"||!r?"":String(r))},options:o,placeholder:c("filter.placeholder",{defaultValue:"Filter..."}),clearable:!0,creatable:!0})},t)}if(F){const u=P[t],m=u?.min??0,o=u?.max??100,r=y.min?Number(y.min):m,f=y.max?Number(y.max):o;return E(A,{gap:"tight",style:{gridColumn:"span 2",gridRow:"span 2"},children:[x(W,{type:"number",label:d,minPlaceholder:c("filter.min",{defaultValue:"Min"}),maxPlaceholder:c("filter.max",{defaultValue:"Max"}),minValue:y.min||"",maxValue:y.max||"",actualMin:m,actualMax:o,onChange:(S,J)=>{D(t,{min:S,max:J})},onClear:()=>D(t,void 0)}),x(K,{value:[r,f],min:m,max:o,step:1,onValueChange:S=>{D(t,{min:String(S[0]),max:String(S[1])})}})]},t)}if(w){const u=P[t],m=u?.min||"",o=u?.max||"";return E(A,{gap:"tight",style:{gridColumn:"span 2",gridRow:"span 2"},children:[x(W,{type:"date",label:d,minPlaceholder:c("filter.from",{defaultValue:"From"}),maxPlaceholder:c("filter.to",{defaultValue:"To"}),minValue:y.min||"",maxValue:y.max||"",actualMin:m,actualMax:o,min:m,max:o,onChange:(r,f)=>{D(t,{min:r,max:f})},onClear:()=>D(t,void 0)}),E(A,{direction:"row",gap:"tight",children:[x(k,{variant:"outline",display:"compact",onClick:()=>{const r=new Date().toISOString().split("T")[0];D(t,{min:r,max:r})},children:c("filter.today",{defaultValue:"Today"})}),x(k,{variant:"outline",display:"compact",onClick:()=>{const r=new Date,f=new Date(r);f.setDate(r.getDate()-r.getDay());const S=new Date(f);S.setDate(f.getDate()+6),D(t,{min:f.toISOString().split("T")[0],max:S.toISOString().split("T")[0]})},children:c("filter.thisWeek",{defaultValue:"This Week"})}),x(k,{variant:"outline",display:"compact",onClick:()=>{const r=new Date,f=new Date(r.getFullYear(),r.getMonth(),1),S=new Date(r.getFullYear(),r.getMonth()+1,0);D(t,{min:f.toISOString().split("T")[0],max:S.toISOString().split("T")[0]})},children:c("filter.thisMonth",{defaultValue:"This Month"})})]})]},t)}const L=s&&e.validation&&"options"in e.validation&&e.validation?Array.isArray(e.validation.options)?e.validation.options:typeof e.validation.options=="function"?e.validation.options():[]:[],H=I[t]||a,R=new Set;H.forEach(u=>{const m=u[t];m!=null&&R.add(String(m))});const T=[{value:"all",label:c("filter.selectPlaceholder",{defaultValue:"All"})}];if(L.length>0){const u=[],m=[];L.forEach(o=>{const r=typeof o=="string"?o:o.value,f=typeof o=="string"?o:o.label;R.has(r)?u.push({value:r,label:f}):m.push({value:r,label:f})}),u.sort((o,r)=>o.label.localeCompare(r.label)),m.sort((o,r)=>o.label.localeCompare(r.label)),u.forEach(o=>{T.push({value:o.value,label:G(o.label,g),disabled:!1})}),m.forEach(o=>{T.push({value:o.value,label:G(o.label,g),disabled:!0})})}else Array.from(R).sort().slice(0,100).forEach(u=>{T.push({value:u,label:u})});return x("div",{style:{gridColumn:"span 2",gridRow:"span 1"},children:x(B,{label:d,value:typeof h=="string"?h:void 0,onValueChange:u=>{D(t,u==="all"||!u?"":String(u))},options:T,placeholder:c("filter.placeholder",{defaultValue:"Filter..."}),clearable:!0})},t)}),[i,n.fields,a,p,g,c,I]);if(!v||v.length===0)return null;const q=v.filter(Boolean),z=Object.keys(p).length>0;return E(Q,{cols:[2,4,6,8],gap:"medium",style:{gridAutoRows:"min-content"},children:[q,x(k,{variant:"outline",onClick:N,disabled:!z,style:{gridColumn:"1 / -1",gridRow:"span 1"},children:c("filter.clear",{defaultValue:"Clear Filters"})})]})}export{rn as EntityFilters,X as matchesFilter};
@@ -46,6 +46,27 @@ interface EntityFormRendererProps<T extends Record<string, unknown> = Record<str
46
46
  * If not provided, one will be generated automatically.
47
47
  */
48
48
  formId?: string;
49
+ /**
50
+ * Cancel button text. If provided, shows a cancel button.
51
+ * If not provided but onCancel is provided, shows default "Cancel" text.
52
+ * Set to null to explicitly hide cancel button.
53
+ */
54
+ cancelText?: string | null;
55
+ /**
56
+ * Callback when cancel is clicked (after confirmation if dirty).
57
+ * If not provided, cancel just resets the form.
58
+ * If provided, cancel button will show (with cancelText or default "Cancel").
59
+ */
60
+ onCancel?: () => void;
61
+ /**
62
+ * Whether to show unsaved changes warning when navigating away.
63
+ * @default true
64
+ */
65
+ warnOnUnsavedChanges?: boolean;
66
+ /**
67
+ * Custom message for unsaved changes confirmation.
68
+ */
69
+ unsavedChangesMessage?: string;
49
70
  }
50
71
  /**
51
72
  * EntityFormRenderer - Dumb component that renders a form from entity definition.
@@ -60,6 +81,6 @@ interface EntityFormRendererProps<T extends Record<string, unknown> = Record<str
60
81
  * @since 0.0.1
61
82
  * @author AMBROISE PARK Consulting
62
83
  */
63
- export declare function EntityFormRenderer<T extends Record<string, any> = any>({ entity, onSubmit, t, className, submitText, loading, defaultValues, submitVariant, secondaryButtonText, secondaryButtonVariant, onSecondarySubmit, viewerRole, operation, autoSave, formId: externalFormId, }: EntityFormRendererProps<T>): import("react/jsx-runtime").JSX.Element;
84
+ export declare function EntityFormRenderer<T extends Record<string, any> = any>({ entity, onSubmit, t, className, submitText, loading, defaultValues, submitVariant, secondaryButtonText, secondaryButtonVariant, onSecondarySubmit, viewerRole, operation, autoSave, formId: externalFormId, cancelText, onCancel, warnOnUnsavedChanges, unsavedChangesMessage, }: EntityFormRendererProps<T>): import("react/jsx-runtime").JSX.Element;
64
85
  export default EntityFormRenderer;
65
86
  //# sourceMappingURL=EntityFormRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityFormRenderer.d.ts","sourceRoot":"","sources":["../../src/components/EntityFormRenderer.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAO7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,UAAU,uBAAuB,CAC/B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE3D,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,2BAA2B;IAC3B,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAC/D,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,4BAA4B;IAC5B,aAAa,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IACzE,4BAA4B;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+BAA+B;IAC/B,sBAAsB,CAAC,EACnB,SAAS,GACT,aAAa,GACb,SAAS,GACT,OAAO,GACP,MAAM,CAAC;IACX,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EACtE,MAAM,EACN,QAAQ,EACR,CAAC,EACD,SAAc,EACd,UAAU,EACV,OAAe,EACf,aAAa,EACb,aAAyB,EACzB,mBAAmB,EACnB,sBAAkC,EAClC,iBAAiB,EACjB,UAAU,EACV,SAA6C,EAC7C,QAAiC,EACjC,MAAM,EAAE,cAAc,GACvB,EAAE,uBAAuB,CAAC,CAAC,CAAC,2CAoK5B;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"EntityFormRenderer.d.ts","sourceRoot":"","sources":["../../src/components/EntityFormRenderer.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAY7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,UAAU,uBAAuB,CAC/B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE3D,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,2BAA2B;IAC3B,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAC/D,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,4BAA4B;IAC5B,aAAa,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IACzE,4BAA4B;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+BAA+B;IAC/B,sBAAsB,CAAC,EACnB,SAAS,GACT,aAAa,GACb,SAAS,GACT,OAAO,GACP,MAAM,CAAC;IACX,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EACtE,MAAM,EACN,QAAQ,EACR,CAAC,EACD,SAAc,EACd,UAAU,EACV,OAAe,EACf,aAAa,EACb,aAAyB,EACzB,mBAAmB,EACnB,sBAAkC,EAClC,iBAAiB,EACjB,UAAU,EACV,SAA6C,EAC7C,QAAiC,EACjC,MAAM,EAAE,cAAc,EACtB,UAAU,EACV,QAAQ,EACR,oBAA2B,EAC3B,qBAAqB,GACtB,EAAE,uBAAuB,CAAC,CAAC,CAAC,2CA+O5B;AAED,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as o,Fragment as z,jsxs as m}from"react/jsx-runtime";import{useEffect as D,useId as q,useMemo as A}from"react";import{FormProvider as B}from"react-hook-form";import{Button as g,Stack as G,Spinner as H}from"@donotdev/components";import{useTranslation as F}from"@donotdev/core";import{DisplayFieldRenderer as J}from"./DisplayFieldRenderer";import{FormFieldRenderer as K}from"./FormFieldRenderer";import{UploadProvider as O}from"../contexts/UploadContext";import{useEntityForm as Q}from"../forms/hooks/useEntityForm";function V({entity:a,onSubmit:T,t:S,className:w="",submitText:u,loading:C=!1,defaultValues:e,submitVariant:p="primary",secondaryButtonText:d,secondaryButtonVariant:I="outline",onSecondarySubmit:c,viewerRole:k,operation:l=e?"edit":"create",autoSave:N=l==="create",formId:j}){const P=q(),f=j??`entity-form-${a.name}-${P}`,$=`entity-${a.name.toLowerCase()}`,{t:E}=F($),{t:v}=F("crud"),s=S||E,b=Q(a,{formId:f,operation:l,defaultValues:e,viewerRole:k,t:s,autoSave:N}),{control:R,handleSubmit:h,formState:{errors:_},fields:L,formStatus:n,uploadProgress:i,cleanup:x}=b;D(()=>x,[x]);const M=C||l==="edit"&&!e,r=A(()=>n==="uploading"?{loading:!0,loadingText:i<100?`Uploading ${Math.round(i)}%...`:"Processing...",progress:i}:n==="validating"?{loading:!0,loadingText:"Validating..."}:n==="submitting"?{loading:!0,loadingText:"Saving..."}:{loading:!1},[n,i]);return o(B,{...b,children:o(O,{formId:f,children:m("div",{style:{position:"relative",width:"100%",gridColumn:"1 / -1",display:"contents"},children:[M&&o(H,{overlay:!0}),m("form",{onSubmit:h(T),noValidate:!0,className:w,style:{width:"100%",gridColumn:"1 / -1",display:"contents"},children:[L.map(({name:t,config:y,editable:U})=>U?o(K,{name:t,config:y,control:R,errors:_,t:s},t):o(J,{name:t,config:y,value:e?.[t],t:s},t)),o(G,{direction:d?"row":"column",gap:"tight",style:{gridColumn:"1 / -1",position:"sticky",bottom:0,backgroundColor:"var(--background)",borderTop:"1px solid var(--border)",paddingTop:"var(--gap-md)",paddingBottom:"var(--gap-md)",zIndex:10,marginTop:"var(--gap-lg)"},children:d?m(z,{children:[o(g,{type:"submit",loading:r.loading,loadingText:r.loadingText,progress:r.progress,variant:p,className:"dndev-w-full",children:u||v("form.submit",{defaultValue:"Submit"})}),o(g,{type:"button",onClick:()=>c&&h(c)(),loading:r.loading,loadingText:r.loadingText,progress:r.progress,variant:I,className:"dndev-w-full",children:d})]}):o(g,{type:"submit",loading:r.loading,loadingText:r.loadingText,progress:r.progress,variant:p,className:"dndev-w-full",children:u||v("form.submit",{defaultValue:"Submit"})})})]})]})})})}var ir=V;export{V as EntityFormRenderer,ir as default};
1
+ "use client";import{jsx as r,jsxs as f}from"react/jsx-runtime";import{useEffect as T,useId as Q,useMemo as p}from"react";import{FormProvider as X}from"react-hook-form";import{Button as v,Stack as Z,Spinner as ee}from"@donotdev/components";import{useTranslation as I}from"@donotdev/core";import{DisplayFieldRenderer as re}from"./DisplayFieldRenderer";import{FormFieldRenderer as oe}from"./FormFieldRenderer";import{UploadProvider as te}from"../contexts/UploadContext";import{useEntityForm as ne}from"../forms/hooks/useEntityForm";import{useUnsavedChangesWarning as ae,useConfirmNavigation as ie}from"../hooks/useUnsavedChangesWarning";import{useFormStore as se}from"../stores";function de({entity:u,onSubmit:V,t:k,className:D="",submitText:N,loading:j=!1,defaultValues:s,submitVariant:P="primary",secondaryButtonText:m,secondaryButtonVariant:E="outline",onSecondarySubmit:h,viewerRole:L,operation:c=s?"edit":"create",autoSave:R=c==="create",formId:U,cancelText:b,onCancel:$,warnOnUnsavedChanges:B=!0,unsavedChangesMessage:d}){const M=Q(),n=U??`entity-form-${u.name}-${M}`,{t:Y}=I(u.namespace),{t:e}=I("crud"),g=k||Y,y=ne(u,{formId:n,operation:c,defaultValues:s,viewerRole:L,t:g,autoSave:R}),{control:_,handleSubmit:x,formState:{errors:z},fields:A,formStatus:l,uploadProgress:a,cleanup:C,isDirty:i,resetForm:W}=y;T(()=>{n&&se.getState().setIsDirty(n,i)},[n,i]),T(()=>C,[C]);const q=p(()=>d||e("messages.unsavedChangesLeave",{defaultValue:"You have unsaved changes. Are you sure you want to leave?"}),[d,e]),G=p(()=>d||e("messages.unsavedChangesDiscard",{defaultValue:"You have unsaved changes. Discard them?"}),[d,e]);ae({isDirty:i,enabled:B,message:q});const H=ie(i,G),J=async()=>{i&&!await H()||(W(),$?.())},F=b!==null,S=b??e("form.cancel",{defaultValue:"Cancel"}),K=j||c==="edit"&&!s,o=p(()=>l==="uploading"?{loading:!0,loadingText:a<100?e("form.uploading",{progress:Math.round(a),defaultValue:`Uploading ${Math.round(a)}%...`}):e("form.processing",{defaultValue:"Processing..."}),progress:a}:l==="validating"?{loading:!0,loadingText:e("form.validating",{defaultValue:"Validating..."})}:l==="submitting"?{loading:!0,loadingText:e("form.saving",{defaultValue:"Saving..."})}:{loading:!1},[l,a,e]);return r(X,{...y,children:r(te,{formId:n,children:f("div",{style:{position:"relative",width:"100%",gridColumn:"1 / -1",display:"contents"},children:[K&&r(ee,{overlay:!0}),f("form",{onSubmit:x(V),noValidate:!0,className:D,style:{width:"100%",gridColumn:"1 / -1",display:"contents"},children:[A.map(({name:t,config:w,editable:O})=>O?r(oe,{name:t,config:w,control:_,errors:z,t:g},t):r(re,{name:t,config:w,value:s?.[t],t:g},t)),f(Z,{direction:m||F?"row":"column",gap:"tight",style:{gridColumn:"1 / -1",position:"sticky",bottom:0,backgroundColor:"var(--background)",borderTop:"1px solid var(--border)",paddingTop:"var(--gap-md)",paddingBottom:"var(--gap-md)",zIndex:10,marginTop:"var(--gap-lg)"},children:[F&&S&&r(v,{type:"button",onClick:J,disabled:o.loading,variant:"outline",className:"dndev-w-full",children:S}),m&&r(v,{type:"button",onClick:()=>h&&x(h)(),loading:o.loading,loadingText:o.loadingText,progress:o.progress,variant:E,className:"dndev-w-full",children:m}),r(v,{type:"submit",loading:o.loading,loadingText:o.loadingText,progress:o.progress,variant:P,className:"dndev-w-full",children:N||e("form.submit",{defaultValue:"Submit"})})]})]})]})})})}var Ce=de;export{de as EntityFormRenderer,Ce as default};
@@ -4,12 +4,18 @@ export interface EntityListProps {
4
4
  entity: Entity;
5
5
  /** Current user role (for UI toggle only - backend enforces security) */
6
6
  userRole?: string;
7
- /** Optional edit handler. If not provided, defaults to navigate(`/${entity.collection}/${id}`) */
8
- onEdit?: (id: string) => void;
9
- /** Optional view handler (row click). If not provided, defaults to navigate(`/${entity.collection}/${id}`) */
7
+ /** Edit handler - called when edit button is clicked */
8
+ onEdit: (id: string) => void;
9
+ /** View handler (row click) - called when row is clicked */
10
10
  onView?: (id: string) => void;
11
- /** Fields to show as filters (array of field names) */
12
- filterFields?: string[];
11
+ /** Create handler - called when "Add New" button is clicked */
12
+ onCreate?: () => void;
13
+ /** Hide filters section (default: false) */
14
+ hideFilters?: boolean;
15
+ /** Pagination mode: 'client' (default) or 'server' for massive datasets */
16
+ pagination?: 'client' | 'server';
17
+ /** Default page size (default: 10) */
18
+ defaultPageSize?: number;
13
19
  }
14
20
  /**
15
21
  * Entity List Component - Table view for admin/internal operations
@@ -20,5 +26,5 @@ export interface EntityListProps {
20
26
  * - Excel-like table display with formatted values
21
27
  * - Edit and Delete actions (admin only)
22
28
  */
23
- export declare function EntityList({ entity, userRole, onEdit, onView, filterFields, }: EntityListProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare function EntityList({ entity, userRole, onEdit, onView, onCreate, hideFilters, pagination, defaultPageSize, }: EntityListProps): import("react/jsx-runtime").JSX.Element;
24
30
  //# sourceMappingURL=EntityList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityList.d.ts","sourceRoot":"","sources":["../../src/components/EntityList.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAU7C,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kGAAkG;IAClG,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,8GAA8G;IAC9G,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,QAAkB,EAClB,MAAM,EACN,MAAM,EACN,YAAiB,GAClB,EAAE,eAAe,2CAsVjB"}
1
+ {"version":3,"file":"EntityList.d.ts","sourceRoot":"","sources":["../../src/components/EntityList.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAU7C,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,QAAkB,EAClB,MAAM,EACN,MAAM,EACN,QAAQ,EACR,WAAmB,EACnB,UAAqB,EACrB,eAAoB,GACrB,EAAE,eAAe,2CAqSjB"}
@@ -1 +1 @@
1
- "use client";import{jsx as i,jsxs as m,Fragment as K}from"react/jsx-runtime";import{RefreshCw as N,Plus as U,Trash2 as W,Edit as X,Search as Y}from"lucide-react";import{useMemo as y,useCallback as f,useState as I}from"react";import{DataTable as Z,Button as b,Stack as k,ActionButton as ee,Section as R,Input as _,Select as te}from"@donotdev/components";import{useTranslation as B}from"@donotdev/core";import{useNavigate as le}from"@donotdev/ui";import{translateFieldLabel as P}from"../forms/utils";import{useCrud as ae}from"../useCrud";import{useCrudList as ne}from"../useCrudList";import{formatValue as re}from"./DisplayFieldRenderer";function ve({entity:a,userRole:oe="guest",onEdit:w,onView:C,filterFields:h=[]}){const p=le(),{data:E,loading:v,mutate:x}=ne(a),{delete:j}=ae(a),{t}=B("crud"),L=E?.items||[],Q=`entity-${a.name.toLowerCase()}`,{t:c}=B(Q),[s,T]=I({}),[g,M]=I(""),q=f(async()=>{await x()},[x]),F=f(e=>{w?w(e):p(`/${a.collection}/${e}`)},[w,p,a.collection]),z=f(e=>{C?C(e):p(`/${a.collection}/${e}`)},[C,p,a.collection]),D=f(async e=>{await j(e)},[j]),V=f((e,o)=>{T(n=>({...n,[e]:o||void 0}))},[]),$=f(()=>{T({})},[]),O=y(()=>{let e=L;if(g){const o=g.toLowerCase();e=e.filter(n=>Object.values(n).some(l=>l==null?!1:String(l).toLowerCase().includes(o)))}return h.length>0&&Object.keys(s).length>0&&(e=e.filter(o=>Object.entries(s).every(([n,l])=>{if(!l)return!0;const r=o[n];if(r==null)return!1;const u=String(l).toLowerCase();return String(r).toLowerCase().includes(u)}))),e},[L,g,s,h.length]),G=y(()=>h.length===0?null:m(k,{direction:"row",wrap:"wrap",children:[h.map(e=>{const o=a.fields[e];if(!o)return null;const n=P(e,o,c),l=o.type||"text";if(l==="select"||l==="radio"){const r=o.validation?.options||[],u=Array.isArray(r)?r:typeof r=="function"?r():[];return i(te,{label:n,value:s[e]||"",onValueChange:d=>V(e,d),options:u.map(d=>({value:d.value,label:d.label})),placeholder:t("filter.selectPlaceholder",{defaultValue:"All"})},e)}return i(_,{label:n,value:s[e]||"",onChange:r=>V(e,r.target.value),placeholder:t("filter.placeholder",{defaultValue:"Filter..."})},e)}),Object.keys(s).length>0&&i(b,{variant:"outline",onClick:$,children:t("filter.clear",{defaultValue:"Clear Filters"})})]}),[h,a.fields,c,t,s,V,$]),H=y(()=>{const o=(a.listFields||Object.keys(a.fields)).map(n=>{const l=a.fields[n];if(!l)return null;const r=P(n,l,c),u=l.type||"text";return{key:n,title:r,dataIndex:n,sortable:!0,filterable:!0,align:u==="number"||u==="range"?"end":"start",render:(J,se)=>re(J,l,c,{compact:!0})}}).filter(Boolean);return o.unshift({key:"_actions",title:"",dataIndex:void 0,sortable:!1,filterable:!1,width:120,align:"center",render:(n,l)=>m(k,{direction:"row",gap:"tight",align:"center",justify:"center",children:[i(b,{variant:"outline",icon:X,onClick:r=>{r.stopPropagation(),F(l.id)},"aria-label":t("edit",{defaultValue:"Edit"})}),i(ee,{action:async()=>{await D(l.id)},confirmText:t("delete.confirm",{defaultValue:"Are you sure you want to delete this item?"}),confirmTitle:t("delete.title",{defaultValue:"Delete Item"}),loadingText:t("delete.loading",{defaultValue:"Deleting..."}),variant:"destructive",icon:W,"aria-label":t("delete",{defaultValue:"Delete"}),children:t("delete",{defaultValue:"Delete"})})]})}),o},[a,c,t,F,D]),A=c("name",{defaultValue:a.name}),S=O.length;return m(K,{children:[m(R,{title:t("filters.title",{entity:A,defaultValue:`Browse ${A} - Filters`}),collapsible:!0,defaultOpen:!0,children:[m(k,{direction:"row",gap:"tight",align:"center",className:"dndev-w-full",children:[i("div",{className:"dndev-flex-1",children:i(_,{placeholder:t("search.placeholder",{defaultValue:"Search..."}),value:g,onChange:e=>M(e.target.value),icon:Y,className:"dndev-w-full"})}),i(b,{icon:N,variant:"outline",onClick:q,disabled:v,display:"compact","aria-label":t("refresh",{defaultValue:"Refresh"})}),i(b,{icon:U,onClick:()=>p(`/${a.collection}/new`),display:"compact",children:t("addNew",{defaultValue:"Add New"})})]}),G]}),i(R,{title:v?t("results.title.fetching",{defaultValue:"Fetching..."}):t("results.title.count",{count:S,defaultValue:S===1?"Found 1 occurrence":`Found ${S} occurrences`}),collapsible:!0,defaultOpen:!0,children:i(Z,{data:O,columns:H,sortable:!0,filterable:!1,searchable:!1,pagination:!0,loading:v,onRowClick:e=>z(e.id)})})]})}export{ve as EntityList};
1
+ "use client";import{jsx as n,jsxs as f,Fragment as J}from"react/jsx-runtime";import{RefreshCw as K,Plus as U,Trash2 as W,Edit as X,Search as Y}from"lucide-react";import{useMemo as N,useCallback as o,useState as m}from"react";import{DataTable as Z,Button as V,Stack as y,ActionButton as ee,Section as R,Input as te}from"@donotdev/components";import{useTranslation as _}from"@donotdev/core";import{translateFieldLabel as ae}from"../forms/utils";import{useCrud as le}from"../useCrud";import{useCrudList as re}from"../useCrudList";import{formatValue as ne}from"./DisplayFieldRenderer";import{EntityFilters as ie,matchesFilter as se}from"./EntityFilters";function Fe({entity:l,userRole:oe="guest",onEdit:F,onView:g,onCreate:x,hideFilters:A=!1,pagination:h="client",defaultPageSize:B=10}){const[P,E]=m(1),[v,ue]=m(B),{data:S,loading:p,mutate:T}=re(l,{pagination:h,...h==="server"&&{page:P,pageSize:v}}),{delete:k}=le(l),{t:e}=_("crud"),b=S?.items||[],{t:u}=_(l.namespace),[c,z]=m({}),[d,Q]=m(""),$=o(async()=>{await T()},[T]),L=o(t=>{F(t)},[F]),M=o(t=>{g&&g(t)},[g]),j=o(async t=>{await k(t)},[k]),q=o(t=>{z(t)},[]),D=N(()=>{let t=b;if(d){const i=d.toLowerCase();t=t.filter(r=>Object.values(r).some(a=>a==null?!1:String(a).toLowerCase().includes(i)))}return Object.keys(c).length>0&&(t=t.filter(i=>Object.entries(c).every(([r,a])=>{const s=i[r],O=l.fields[r]?.type||"text";return se(s,a,O)}))),t},[b,d,c,l.fields]),G=N(()=>{const i=(l.listFields||Object.keys(l.fields)).map(r=>{const a=l.fields[r];if(!a)return null;const s=ae(r,a,u),C=a.type||"text";return{key:r,title:s,dataIndex:r,sortable:!0,filterable:!0,align:C==="number"||C==="range"?"end":"start",render:(H,de)=>ne(H,a,u,{compact:!0})}}).filter(Boolean);return i.unshift({key:"_actions",title:e("actions.label",{defaultValue:"Actions"}),dataIndex:void 0,sortable:!1,width:120,align:"center",render:(r,a)=>f(y,{direction:"row",gap:"tight",align:"center",justify:"center",children:[n(V,{variant:"outline",icon:X,onClick:s=>{s.stopPropagation(),L(a.id)},"aria-label":e("edit",{defaultValue:"Edit"})}),n(ee,{action:async()=>{await j(a.id)},confirmText:e("delete.confirm",{defaultValue:"Are you sure you want to delete this item?"}),confirmTitle:e("delete.title",{defaultValue:"Delete Item"}),loadingText:e("delete.loading",{defaultValue:"Deleting..."}),variant:"destructive",icon:W,"aria-label":e("delete",{defaultValue:"Delete"}),children:e("delete",{defaultValue:"Delete"})})]})}),i},[l,u,e,L,j]),I=u("name",{defaultValue:l.name}),w=D.length;return f(J,{children:[n(R,{title:e("filters.title",{entity:I,defaultValue:`Browse ${I} - Filters`}),collapsible:!0,defaultOpen:!0,children:f(y,{gap:"medium",children:[f(y,{direction:"row",gap:"tight",align:"center",className:"dndev-w-full",style:{display:"grid",gridTemplateColumns:"1fr auto auto"},children:[n(te,{placeholder:e("search.placeholder",{defaultValue:"Search..."}),value:d,onChange:t=>Q(t.target.value),icon:Y,className:"dndev-w-full"}),n(V,{icon:K,variant:"outline",onClick:$,disabled:p,display:"compact","aria-label":e("refresh",{defaultValue:"Refresh"})}),x&&n(V,{icon:U,onClick:x,display:"compact",children:e("addNew",{defaultValue:"Add New"})})]}),!A&&n(ie,{entity:l,data:b,filters:c,onFiltersChange:q,fieldsToFilter:l.listFields})]})}),n(R,{title:p?e("results.title.fetching",{defaultValue:"Fetching..."}):e("results.title.count",{count:w,defaultValue:w===1?"Found 1 occurrence":`Found ${w} occurrences`}),collapsible:!0,defaultOpen:!0,children:n(Z,{data:D,columns:G,sortable:!0,searchable:!1,pagination:!0,loading:p,onRowClick:t=>M(t.id),showingLabel:e("pagination.showing",{defaultValue:"Showing {{from}} to {{to}} of {{total}} entries"}),paginationPreviousLabel:e("pagination.previous",{defaultValue:"Previous"}),paginationNextLabel:e("pagination.next",{defaultValue:"Next"}),paginationItemsPerPagePlaceholder:e("pagination.itemsPerPagePlaceholder",{defaultValue:"Items per page"}),...h==="server"&&{currentPage:P,pageSize:v,total:S?.total,onPageChange:E}})})]})}export{Fe as EntityList};
@@ -1 +1 @@
1
- {"version":3,"file":"FormFieldRenderer.d.ts","sourceRoot":"","sources":["../../src/components/FormFieldRenderer.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM5D,OAAO,sBAAsB,CAAC;AAM9B,UAAU,0BAA0B,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;CAC3D;AAED,UAAU,iBAAiB,CACzB,CAAC,SAAS,SAAS,CACnB,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IACrC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB;AAED,UAAU,eAAe,CACvB,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,WAAW,GAAG,WAAW,CAC9C,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,sBAAsB,CAChC,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,WAAW,GAAG,WAAW,IAC5C,iBAAiB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAE5D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,EACA,IAAI,EACJ,MAAM,EACN,CAAC,EACD,GAAG,KAAK,EACT,EAAE,sBAAsB,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,YAAY,CA2FxD;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"FormFieldRenderer.d.ts","sourceRoot":"","sources":["../../src/components/FormFieldRenderer.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM5D,OAAO,sBAAsB,CAAC;AAM9B,UAAU,0BAA0B,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;CAC3D;AAED,UAAU,iBAAiB,CACzB,CAAC,SAAS,SAAS,CACnB,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IACrC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB;AAED,UAAU,eAAe,CACvB,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,WAAW,GAAG,WAAW,CAC9C,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,sBAAsB,CAChC,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,WAAW,GAAG,WAAW,IAC5C,iBAAiB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAE5D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,EACA,IAAI,EACJ,MAAM,EACN,CAAC,EACD,GAAG,KAAK,EACT,EAAE,sBAAsB,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,YAAY,CAmGxD;AAED,eAAe,iBAAiB,CAAC"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledAddressField - Explicit controlled component for address inputs
6
+
5
7
  * NO ref forwarding - complex component handles its own refs
8
+
6
9
  */
7
10
  export declare function ControlledAddressField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledAddressField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ControlledAddressField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledAddressField.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,sBAAsB,CACpC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAyBd"}
1
+ {"version":3,"file":"ControlledAddressField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledAddressField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA8Bd"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledDateField - Explicit controlled component for date inputs
6
+
5
7
  * Forwards Controller's ref for focus/validation (simple input)
8
+
6
9
  */
7
10
  export declare function ControlledDateField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledDateField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ControlledDateField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledDateField.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,CAiCd"}
1
+ {"version":3,"file":"ControlledDateField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledDateField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CA2C7E"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledGeoPointField - Explicit controlled component for geographic coordinates
6
+
5
7
  * NO ref forwarding - complex component handles its own refs
8
+
6
9
  */
7
10
  export declare function ControlledGeoPointField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledGeoPointField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ControlledGeoPointField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledGeoPointField.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,CAsCd"}
1
+ {"version":3,"file":"ControlledGeoPointField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledGeoPointField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA4Cd"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledMapField - Explicit controlled component for map data inputs
6
+
5
7
  * NO ref forwarding - complex component handles its own refs
8
+
6
9
  */
7
10
  export declare function ControlledMapField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledMapField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ControlledMapField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledMapField.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,kBAAkB,CAChC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAsCd"}
1
+ {"version":3,"file":"ControlledMapField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledMapField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CA4C5E"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledMultiInputField - Explicit controlled component for array of text inputs
6
+
5
7
  * NO ref forwarding - complex component handles its own refs
8
+
6
9
  */
7
10
  export declare function ControlledMultiInputField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledMultiInputField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ControlledMultiInputField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledMultiInputField.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"}
1
+ {"version":3,"file":"ControlledMultiInputField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledMultiInputField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAyCd"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledRichTextField - Explicit controlled component for rich text editor
6
+
5
7
  * NO ref forwarding - complex component handles its own refs
8
+
6
9
  */
7
10
  export declare function ControlledRichTextField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledRichTextField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ControlledRichTextField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledRichTextField.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,CAuBd"}
1
+ {"version":3,"file":"ControlledRichTextField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledRichTextField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAwBd"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledTimestampField - Explicit controlled component for timestamp inputs
6
+
5
7
  * Forwards Controller's ref for focus/validation (simple input)
8
+
6
9
  */
7
10
  export declare function ControlledTimestampField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledTimestampField.d.ts.map
@@ -1 +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"}
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;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAuBd"}
@@ -1 +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"}
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;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledDocumentField - Explicit controlled component for document uploads
6
+
5
7
  * NO ref forwarding - complex component (forwardRef) handles its own refs
8
+
6
9
  */
7
10
  export declare function ControlledDocumentField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledDocumentField.d.ts.map
@@ -1 +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"}
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;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA6Bd"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledFileField - Explicit controlled component for file uploads
6
+
5
7
  * NO ref forwarding - complex component (forwardRef) handles its own refs
8
+
6
9
  */
7
10
  export declare function ControlledFileField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledFileField.d.ts.map
@@ -1 +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"}
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;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CA6B7E"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledImageField - Explicit controlled component for image uploads
6
+
5
7
  * NO ref forwarding - complex component (forwardRef) handles its own refs
8
+
6
9
  */
7
10
  export declare function ControlledImageField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledImageField.d.ts.map
@@ -1 +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"}
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;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA6Bd"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledMultiDocumentField - Explicit controlled component for multiple document uploads
6
+
5
7
  * NO ref forwarding - complex component (forwardRef) handles its own refs
8
+
6
9
  */
7
10
  export declare function ControlledMultiDocumentField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledMultiDocumentField.d.ts.map
@@ -1 +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"}
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;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAuCd"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledMultiFileField - Explicit controlled component for multiple file uploads
6
+
5
7
  * NO ref forwarding - complex component (forwardRef) handles its own refs
8
+
6
9
  */
7
10
  export declare function ControlledMultiFileField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledMultiFileField.d.ts.map
@@ -1 +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"}
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;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAuCd"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledMultiImageField - Explicit controlled component for multiple image uploads
6
+
5
7
  * NO ref forwarding - complex component (forwardRef) handles its own refs
8
+
6
9
  */
7
10
  export declare function ControlledMultiImageField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledMultiImageField.d.ts.map
@@ -1 +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"}
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;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAuCd"}
@@ -1 +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"}
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;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,7 +1,11 @@
1
1
  /**
2
+
2
3
  * @fileoverview Controlled Fields
4
+
3
5
  * @description Explicit controlled components for all field types, organized by category.
6
+
4
7
  * All components use standard React Hook Form Controller pattern.
8
+
5
9
  */
6
10
  export type { ControlledFieldProps } from './types';
7
11
  export { convertValidationRules, convertPatternToRegex } from './types';
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/controlled/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAIH,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAIxE,cAAc,SAAS,CAAC;AAExB,cAAc,UAAU,CAAC;AAEzB,cAAc,QAAQ,CAAC;AAEvB,cAAc,WAAW,CAAC"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledCheckboxField - Explicit controlled component for checkbox inputs
6
+
5
7
  * Uses standard React Hook Form Controller pattern
8
+
6
9
  */
7
10
  export declare function ControlledCheckboxField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledCheckboxField.d.ts.map
@@ -1 +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"}
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;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAuBd"}
@@ -1 +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};
1
+ "use client";import{jsx as r}from"react/jsx-runtime";import{Controller as s}from"react-hook-form";import{CheckboxFieldComponent as u}from"../../form/fields";import{convertValidationRules as C}from"../types";function x(t){const{control:l,errors:f,fieldConfig:i,t:a}=t,{name:c,label:e,validation:o}=i,d=typeof e=="string"?a(e):e;return r(s,{name:c,control:l,rules:o?C(o):void 0,render:({field:n})=>r(u,{label:d,checked:!!n.value,onChange:m=>n.onChange(m.target.checked),required:o?.required})})}export{x as ControlledCheckboxField};
@@ -0,0 +1,8 @@
1
+ import { type ControlledFieldProps } from '../types';
2
+ import type { ReactElement } from 'react';
3
+ /**
4
+ * ControlledGdprConsentField - GDPR-compliant consent checkbox with automatic label generation
5
+ * Uses standard React Hook Form Controller pattern
6
+ */
7
+ export declare function ControlledGdprConsentField(props: ControlledFieldProps): ReactElement;
8
+ //# sourceMappingURL=ControlledGdprConsentField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlledGdprConsentField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/input/ControlledGdprConsentField.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAgCd"}
@@ -0,0 +1 @@
1
+ "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{GdprConsentFieldComponent as f}from"../../form/fields";import{convertValidationRules as h}from"../types";function g(n){const{control:i,errors:u,fieldConfig:c}=n,{name:a,validation:e,options:l={}}=c,o=l.fieldSpecific,s=o?.privacyPolicyPath||"/legal/privacy",d=o?.termsPath||"/legal/terms";return t(p,{name:a,control:i,rules:e?h(e):void 0,render:({field:r})=>t(f,{checked:!!r.value,onChange:m=>r.onChange(m.target.checked),required:e?.required,privacyPolicyPath:s,termsPath:d})})}export{g as ControlledGdprConsentField};
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledNumberField - Explicit controlled component for number inputs
6
+
5
7
  * Forwards Controller's ref for focus/validation (simple input)
8
+
6
9
  */
7
10
  export declare function ControlledNumberField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledNumberField.d.ts.map
@@ -1 +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"}
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;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA4Dd"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledPasswordField - Explicit controlled component for password inputs
6
+
5
7
  * Forwards Controller's ref for focus/validation (simple input)
8
+
6
9
  */
7
10
  export declare function ControlledPasswordField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledPasswordField.d.ts.map
@@ -1 +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"}
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;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAyBd"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledPhoneField - Explicit controlled component for phone inputs
6
+
5
7
  * Forwards Controller's ref for focus/validation (simple input)
8
+
6
9
  */
7
10
  export declare function ControlledPhoneField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledPhoneField.d.ts.map
@@ -1 +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"}
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;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAsBd"}
@@ -1,8 +1,11 @@
1
1
  import { type ControlledFieldProps } from '../types';
2
2
  import type { ReactElement } from 'react';
3
3
  /**
4
+
4
5
  * ControlledRangeField - Explicit controlled component for range inputs
6
+
5
7
  * Forwards Controller's ref for focus/validation (simple input)
8
+
6
9
  */
7
10
  export declare function ControlledRangeField(props: ControlledFieldProps): ReactElement;
8
11
  //# sourceMappingURL=ControlledRangeField.d.ts.map
@@ -1 +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"}
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;AAI7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;;GAMG;AAEH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAsCd"}