@donotdev/crud 0.0.29 → 0.0.31

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 (116) hide show
  1. package/dist/CrudStore.js +1 -1
  2. package/dist/adapters/FunctionsAdapter.js +1 -1
  3. package/dist/components/CrudButton.js +1 -1
  4. package/dist/components/CrudCard.d.ts +1 -1
  5. package/dist/components/CrudCard.d.ts.map +1 -1
  6. package/dist/components/CrudCard.js +1 -1
  7. package/dist/components/DateFilter.js +1 -1
  8. package/dist/components/DisplayFieldRenderer.d.ts.map +1 -1
  9. package/dist/components/DisplayFieldRenderer.js +1 -1
  10. package/dist/components/DisplayThumbnail.js +1 -1
  11. package/dist/components/EntityFilters.js +1 -1
  12. package/dist/components/FormFieldRenderer.js +1 -1
  13. package/dist/components/FormLayout.js +1 -1
  14. package/dist/components/controlled/complex/ControlledDateField.js +1 -1
  15. package/dist/components/controlled/complex/ControlledFieldArrayField.js +1 -1
  16. package/dist/components/controlled/complex/ControlledMapField.js +1 -1
  17. package/dist/components/controlled/complex/ControlledMultiInputField.js +1 -1
  18. package/dist/components/controlled/complex/ControlledTimestampField.js +1 -1
  19. package/dist/components/controlled/file/ControlledDocumentField.js +1 -1
  20. package/dist/components/controlled/file/ControlledImageField.js +1 -1
  21. package/dist/components/controlled/file/ControlledMultiDocumentField.js +1 -1
  22. package/dist/components/controlled/file/ControlledMultiFileField.js +1 -1
  23. package/dist/components/controlled/file/ControlledMultiImageField.js +1 -1
  24. package/dist/components/controlled/input/ControlledCheckboxField.js +1 -1
  25. package/dist/components/controlled/input/ControlledCurrencyField.js +1 -1
  26. package/dist/components/controlled/input/ControlledDurationField.js +1 -1
  27. package/dist/components/controlled/input/ControlledGdprConsentField.js +1 -1
  28. package/dist/components/controlled/input/ControlledNumberField.js +1 -1
  29. package/dist/components/controlled/input/ControlledPhoneField.js +1 -1
  30. package/dist/components/controlled/input/ControlledRangeField.js +1 -1
  31. package/dist/components/controlled/input/ControlledRatingField.js +1 -1
  32. package/dist/components/controlled/input/ControlledSwitchField.js +1 -1
  33. package/dist/components/controlled/input/ControlledTextField.js +1 -1
  34. package/dist/components/controlled/select/ControlledComboboxField.js +1 -1
  35. package/dist/components/controlled/select/ControlledDropdownField.js +1 -1
  36. package/dist/components/controlled/select/ControlledMultiDropdownField.js +1 -1
  37. package/dist/components/controlled/select/ControlledRadioField.js +1 -1
  38. package/dist/components/controlled/select/ControlledReferenceField.js +1 -1
  39. package/dist/components/controlled/select/ControlledYearField.js +1 -1
  40. package/dist/components/controlled/types.js +1 -1
  41. package/dist/components/fields/display/AvatarFieldDisplay.js +1 -1
  42. package/dist/components/fields/display/BadgeFieldDisplay.js +1 -1
  43. package/dist/components/fields/display/CheckboxFieldDisplay.js +1 -1
  44. package/dist/components/fields/display/DateFieldDisplay.js +1 -1
  45. package/dist/components/fields/display/FileFieldDisplay.js +1 -1
  46. package/dist/components/fields/display/LinkFieldDisplay.js +1 -1
  47. package/dist/components/fields/display/MapFieldDisplay.js +1 -1
  48. package/dist/components/fields/display/NumberFieldDisplay.js +1 -1
  49. package/dist/components/fields/display/PasswordFieldDisplay.js +1 -1
  50. package/dist/components/fields/display/ReferenceFieldDisplay.js +1 -1
  51. package/dist/components/fields/display/TextAreaDisplay.js +1 -1
  52. package/dist/components/fields/display/TextFieldDisplay.js +1 -1
  53. package/dist/components/form/fields/AddressFieldComponent.js +1 -1
  54. package/dist/components/form/fields/AvatarFieldComponent.js +1 -1
  55. package/dist/components/form/fields/BadgeFieldComponent.js +1 -1
  56. package/dist/components/form/fields/ButtonFieldComponent.js +1 -1
  57. package/dist/components/form/fields/CheckboxFieldComponent.js +1 -1
  58. package/dist/components/form/fields/ComboboxComponent.js +1 -1
  59. package/dist/components/form/fields/CurrencyFieldComponent.js +1 -1
  60. package/dist/components/form/fields/DateFieldComponent.js +1 -1
  61. package/dist/components/form/fields/DocumentFieldComponent.js +1 -1
  62. package/dist/components/form/fields/DurationFieldComponent.js +1 -1
  63. package/dist/components/form/fields/FileFieldComponent.js +1 -1
  64. package/dist/components/form/fields/GdprConsentFieldComponent.js +1 -1
  65. package/dist/components/form/fields/GeoPointFieldComponent.js +1 -1
  66. package/dist/components/form/fields/ImageFieldComponent.js +1 -1
  67. package/dist/components/form/fields/MultiDropdownComponent.js +1 -1
  68. package/dist/components/form/fields/MultiInputTextFieldComponent.js +1 -1
  69. package/dist/components/form/fields/NumberFieldComponent.js +1 -1
  70. package/dist/components/form/fields/PasswordFieldComponent.js +1 -1
  71. package/dist/components/form/fields/PhoneNumberComponent.js +1 -1
  72. package/dist/components/form/fields/PriceFieldComponent.js +1 -1
  73. package/dist/components/form/fields/RadioFieldComponent.js +1 -1
  74. package/dist/components/form/fields/RatingFieldComponent.js +1 -1
  75. package/dist/components/form/fields/ReferenceFieldComponent.js +1 -1
  76. package/dist/components/form/fields/RichTextComponent.js +1 -1
  77. package/dist/components/form/fields/SwitchFieldComponent.js +1 -1
  78. package/dist/components/form/fields/TextAreaComponent.js +1 -1
  79. package/dist/components/form/fields/TextFieldComponent.js +1 -1
  80. package/dist/components/form/fields/TimestampFieldComponent.js +1 -1
  81. package/dist/components/form/fields/internal/TiptapEditor.js +2 -2
  82. package/dist/components/form/internal/ImageViewerDialog.js +1 -1
  83. package/dist/fieldTypeRegistry.store.js +1 -1
  84. package/dist/forms/hooks/useController.js +1 -1
  85. package/dist/forms/hooks/useEntityField.js +1 -1
  86. package/dist/forms/hooks/useEntityForm.d.ts.map +1 -1
  87. package/dist/forms/hooks/useEntityForm.js +1 -1
  88. package/dist/forms/utils/buildInitialValues.js +1 -1
  89. package/dist/forms/utils/getFieldsForOperation.js +1 -1
  90. package/dist/forms/utils/isFieldEditable.js +1 -1
  91. package/dist/forms/utils/translateFieldLabel.js +1 -1
  92. package/dist/forms/utils/validateEntity.js +1 -1
  93. package/dist/hooks/useEntityFavorites.js +1 -1
  94. package/dist/hooks/useFileUpload.js +1 -1
  95. package/dist/hooks/useReferenceResolver.js +1 -1
  96. package/dist/hooks/useRelatedItems.js +1 -1
  97. package/dist/hooks/useUnsavedChangesWarning.js +1 -1
  98. package/dist/stores/FormStore.d.ts.map +1 -1
  99. package/dist/stores/FormStore.js +1 -1
  100. package/dist/stores/UploadStore.js +1 -1
  101. package/dist/tsconfig.tsbuildinfo +1 -1
  102. package/dist/useBaseCrudList.js +1 -1
  103. package/dist/useCrud.js +1 -1
  104. package/dist/useCrudCardList.js +1 -1
  105. package/dist/useCrudList.js +1 -1
  106. package/dist/utils/collections.js +1 -1
  107. package/dist/utils/imageProcessing.js +1 -1
  108. package/dist/utils/imageStorage.js +1 -1
  109. package/dist/utils/matchesFilter.d.ts.map +1 -1
  110. package/dist/utils/matchesFilter.js +1 -1
  111. package/dist/utils/mergeWithOptimistic.js +1 -1
  112. package/dist/utils/sanitizeHtml.js +1 -1
  113. package/dist/utils/uploadValidation.js +1 -1
  114. package/dist/workflows/defineWorkflow.js +1 -1
  115. package/dist/workflows/useEntityWorkflow.js +1 -1
  116. package/package.json +3 -3
package/dist/CrudStore.js CHANGED
@@ -1 +1 @@
1
- import{createDoNotDevStore as d}from"@donotdev/core";import{OPTIMISTIC_STATUSES as u,CRUD_OPERATION as a}from"./types";const D={filters:{},showFavoritesOnly:!1};function r(){return{loading:!1,error:null,lastUpdated:0,optimistic:{},ui:{...D}}}const f={crudService:null,hideSuccessToasts:!1,collections:{}},E=d({name:"crud-store",createStore:(e,l)=>({...f,setCrudService:t=>{e({crudService:t})},setHideSuccessToasts:t=>{e({hideSuccessToasts:t})},setLoading:(t,c)=>{e(o=>{const i=o.collections[t]||r();return{collections:{...o.collections,[t]:{...i,loading:c}}}})},setError:(t,c)=>{e(o=>{const i=o.collections[t]||r();return{collections:{...o.collections,[t]:{...i,error:c,loading:!1}}}})},setFilters:(t,c)=>{e(o=>{const i=o.collections[t]||r();return{collections:{...o.collections,[t]:{...i,ui:{...i.ui,filters:c}}}}})},setShowFavoritesOnly:(t,c)=>{e(o=>{const i=o.collections[t]||r();return{collections:{...o.collections,[t]:{...i,ui:{...i.ui,showFavoritesOnly:c}}}}})},getFilters:t=>l().collections[t]?.ui?.filters||{},getShowFavoritesOnly:t=>l().collections[t]?.ui?.showFavoritesOnly||!1,clearCollection:t=>{e(c=>{const{[t]:o,...i}=c.collections;return{collections:i}})},clearError:t=>{e(c=>{const o=c.collections[t];return o?{collections:{...c.collections,[t]:{...o,error:null}}}:c})},addOptimistic:(t,c,o)=>{e(i=>{const s=i.collections[t]||r();return{collections:{...i.collections,[t]:{...s,optimistic:{...s.optimistic,[c]:{tempId:c,originalData:null,optimisticData:o,status:u.PENDING,operation:a.ADD}},lastUpdated:Date.now()}}}})},confirmOptimistic:(t,c,o,i)=>{e(s=>{const n=s.collections[t];if(!n)return s;const{[c]:p,...m}=n.optimistic;return{collections:{...s.collections,[t]:{...n,optimistic:m,lastUpdated:Date.now()}}}})},rejectOptimistic:(t,c)=>{e(o=>{const i=o.collections[t];if(!i)return o;const{[c]:s,...n}=i.optimistic;return{collections:{...o.collections,[t]:{...i,optimistic:n,lastUpdated:Date.now()}}}})},updateOptimistic:(t,c,o,i)=>{e(s=>{const n=s.collections[t]||r();return{collections:{...s.collections,[t]:{...n,optimistic:{...n.optimistic,[c]:{tempId:c,originalData:i,optimisticData:o,status:u.PENDING,operation:a.UPDATE}},lastUpdated:Date.now()}}}})},confirmUpdate:(t,c)=>{e(o=>{const i=o.collections[t];if(!i)return o;const{[c]:s,...n}=i.optimistic;return{collections:{...o.collections,[t]:{...i,optimistic:n}}}})},rejectUpdate:(t,c)=>{e(o=>{const i=o.collections[t];if(!i)return o;const s=i.optimistic[c];if(!s||s.operation!==a.UPDATE)return o;const{[c]:n,...p}=i.optimistic;return{collections:{...o.collections,[t]:{...i,optimistic:p,lastUpdated:Date.now()}}}})},deleteOptimistic:(t,c,o)=>{e(i=>{const s=i.collections[t];return s?{collections:{...i.collections,[t]:{...s,optimistic:{...s.optimistic,[c]:{tempId:c,originalData:o,optimisticData:null,status:u.PENDING,operation:a.DELETE}},lastUpdated:Date.now()}}}:i})},confirmDelete:(t,c)=>{e(o=>{const i=o.collections[t];if(!i)return o;const{[c]:s,...n}=i.optimistic;return{collections:{...o.collections,[t]:{...i,optimistic:n}}}})},rejectDelete:(t,c)=>{e(o=>{const i=o.collections[t];if(!i)return o;const s=i.optimistic[c];if(!s||s.operation!==a.DELETE)return o;const{[c]:n,...p}=i.optimistic;return{collections:{...o.collections,[t]:{...i,optimistic:p,lastUpdated:Date.now()}}}})},getLoading:t=>l().collections[t]?.loading||!1,getError:t=>l().collections[t]?.error||null,isOptimistic:(t,c)=>l().collections[t]?.optimistic[c]?.status==="pending",getOptimisticStatus:(t,c)=>l().collections[t]?.optimistic[c]?.status??null,getOptimisticData:(t,c)=>l().collections[t]?.optimistic[c]?.optimisticData??null})});export{E as useCrudStore};
1
+ import{createDoNotDevStore as d}from"@donotdev/core";import{OPTIMISTIC_STATUSES as u,CRUD_OPERATION as a}from"./types";const D={filters:{},showFavoritesOnly:!1};function r(){return{loading:!1,error:null,lastUpdated:0,optimistic:{},ui:{...D}}}const f={crudService:null,hideSuccessToasts:!1,collections:{}},E=d({name:"crud-store",createStore:(l,n)=>({...f,setCrudService:t=>{l({crudService:t})},setHideSuccessToasts:t=>{l({hideSuccessToasts:t})},setLoading:(t,c)=>{l(i=>{const o=i.collections[t]||r();return{collections:{...i.collections,[t]:{...o,loading:c}}}})},setError:(t,c)=>{l(i=>{const o=i.collections[t]||r();return{collections:{...i.collections,[t]:{...o,error:c,loading:!1}}}})},setFilters:(t,c)=>{l(i=>{const o=i.collections[t]||r();return{collections:{...i.collections,[t]:{...o,ui:{...o.ui,filters:c}}}}})},setShowFavoritesOnly:(t,c)=>{l(i=>{const o=i.collections[t]||r();return{collections:{...i.collections,[t]:{...o,ui:{...o.ui,showFavoritesOnly:c}}}}})},getFilters:t=>n().collections[t]?.ui?.filters||{},getShowFavoritesOnly:t=>n().collections[t]?.ui?.showFavoritesOnly||!1,clearCollection:t=>{l(c=>{const{[t]:i,...o}=c.collections;return{collections:o}})},clearError:t=>{l(c=>{const i=c.collections[t];return i?{collections:{...c.collections,[t]:{...i,error:null}}}:c})},addOptimistic:(t,c,i)=>{l(o=>{const e=o.collections[t]||r();return{collections:{...o.collections,[t]:{...e,optimistic:{...e.optimistic,[c]:{tempId:c,originalData:null,optimisticData:i,status:u.PENDING,operation:a.ADD}},lastUpdated:Date.now()}}}})},confirmOptimistic:(t,c,i,o)=>{l(e=>{const s=e.collections[t];if(!s)return e;const{[c]:p,...m}=s.optimistic;return{collections:{...e.collections,[t]:{...s,optimistic:m,lastUpdated:Date.now()}}}})},rejectOptimistic:(t,c)=>{l(i=>{const o=i.collections[t];if(!o)return i;const{[c]:e,...s}=o.optimistic;return{collections:{...i.collections,[t]:{...o,optimistic:s,lastUpdated:Date.now()}}}})},updateOptimistic:(t,c,i,o)=>{l(e=>{const s=e.collections[t]||r();return{collections:{...e.collections,[t]:{...s,optimistic:{...s.optimistic,[c]:{tempId:c,originalData:o,optimisticData:i,status:u.PENDING,operation:a.UPDATE}},lastUpdated:Date.now()}}}})},confirmUpdate:(t,c)=>{l(i=>{const o=i.collections[t];if(!o)return i;const{[c]:e,...s}=o.optimistic;return{collections:{...i.collections,[t]:{...o,optimistic:s}}}})},rejectUpdate:(t,c)=>{l(i=>{const o=i.collections[t];if(!o)return i;const e=o.optimistic[c];if(!e||e.operation!==a.UPDATE)return i;const{[c]:s,...p}=o.optimistic;return{collections:{...i.collections,[t]:{...o,optimistic:p,lastUpdated:Date.now()}}}})},deleteOptimistic:(t,c,i)=>{l(o=>{const e=o.collections[t];return e?{collections:{...o.collections,[t]:{...e,optimistic:{...e.optimistic,[c]:{tempId:c,originalData:i,optimisticData:null,status:u.PENDING,operation:a.DELETE}},lastUpdated:Date.now()}}}:o})},confirmDelete:(t,c)=>{l(i=>{const o=i.collections[t];if(!o)return i;const{[c]:e,...s}=o.optimistic;return{collections:{...i.collections,[t]:{...o,optimistic:s}}}})},rejectDelete:(t,c)=>{l(i=>{const o=i.collections[t];if(!o)return i;const e=o.optimistic[c];if(!e||e.operation!==a.DELETE)return i;const{[c]:s,...p}=o.optimistic;return{collections:{...i.collections,[t]:{...o,optimistic:p,lastUpdated:Date.now()}}}})},getLoading:t=>n().collections[t]?.loading||!1,getError:t=>n().collections[t]?.error||null,isOptimistic:(t,c)=>n().collections[t]?.optimistic[c]?.status==="pending",getOptimisticStatus:(t,c)=>n().collections[t]?.optimistic[c]?.status??null,getOptimisticData:(t,c)=>n().collections[t]?.optimistic[c]?.optimisticData??null})});export{E as useCrudStore};
@@ -1 +1 @@
1
- import{getProvider as u,wrapCrudError as o,validateWithSchema as c}from"@donotdev/core";import{LIST_SCHEMA_TYPE as l}from"@donotdev/core";class h{serverSideOnly=!0;getCallable(){return u("callable")}async getCallableFn(a){const t=this.getCallable();return async i=>({data:await t.call(a,i)})}async get(a,t,i){const n=`get_${a}`,s=await this.getCallableFn(n);try{const e=(await s({id:t})).data;return i?c(i,e,"FunctionsAdapter.get"):e}catch(e){throw o(e,"FunctionsAdapter","get",a,t)}}async set(a,t,i,n){const s=c(n,i,"FunctionsAdapter.set"),e=`update_${a}`,d=await this.getCallableFn(e);try{await d({id:t,payload:s})}catch(r){throw o(r,"FunctionsAdapter","set",a,t)}}async update(a,t,i){const n=`update_${a}`,s=await this.getCallableFn(n);try{await s({id:t,payload:i})}catch(e){throw o(e,"FunctionsAdapter","update",a,t)}}async delete(a,t){const i=`delete_${a}`,n=await this.getCallableFn(i);try{await n({id:t})}catch(s){throw o(s,"FunctionsAdapter","delete",a,t)}}async add(a,t,i){const n=c(i,t,"FunctionsAdapter.add"),s=`create_${a}`,e=await this.getCallableFn(s);try{const d=await e({payload:n});if(!d.data)throw o(new Error("Create function returned no data"),"FunctionsAdapter","add",a);return{id:d.data.id,data:d.data}}catch(d){throw o(d,"FunctionsAdapter","add",a)}}async query(a,t,i,n=l.LIST){const s=n===l.LIST_CARD?`listCard_${a}`:`list_${a}`,e={};t.where&&(e.where=t.where.map(r=>[r.field,r.operator,r.value])),t.orderBy&&(e.orderBy=t.orderBy.map(r=>[r.field,r.direction||"asc"])),t.limit&&(e.limit=t.limit),t.startAfter&&(e.startAfterId=t.startAfter);const d=await this.getCallableFn(s);try{const r=await d(e);if(!r.data)throw o(new Error("Query function returned no data"),"FunctionsAdapter","query",a);return{items:r.data.items,total:r.data.count,hasMore:r.data.hasMore,lastVisible:r.data.lastVisible}}catch(r){throw o(r,"FunctionsAdapter","query",a)}}subscribe(){return()=>{}}subscribeToCollection(){return()=>{}}}export{h as FunctionsAdapter};
1
+ import{getProvider as u,wrapCrudError as o,validateWithSchema as c}from"@donotdev/core";import{LIST_SCHEMA_TYPE as l}from"@donotdev/core";class h{serverSideOnly=!0;getCallable(){return u("callable")}async getCallableFn(a){const t=this.getCallable();return async n=>({data:await t.call(a,n)})}async get(a,t,n){const s=`get_${a}`,i=await this.getCallableFn(s);try{const e=(await i({id:t})).data;return n?c(n,e,"FunctionsAdapter.get"):e}catch(e){throw o(e,"FunctionsAdapter","get",a,t)}}async set(a,t,n,s){const i=c(s,n,"FunctionsAdapter.set"),e=`update_${a}`,d=await this.getCallableFn(e);try{await d({id:t,payload:i})}catch(r){throw o(r,"FunctionsAdapter","set",a,t)}}async update(a,t,n){const s=`update_${a}`,i=await this.getCallableFn(s);try{await i({id:t,payload:n})}catch(e){throw o(e,"FunctionsAdapter","update",a,t)}}async delete(a,t){const n=`delete_${a}`,s=await this.getCallableFn(n);try{await s({id:t})}catch(i){throw o(i,"FunctionsAdapter","delete",a,t)}}async add(a,t,n){const s=c(n,t,"FunctionsAdapter.add"),i=`create_${a}`,e=await this.getCallableFn(i);try{const d=await e({payload:s});if(!d.data)throw o(new Error("Create function returned no data"),"FunctionsAdapter","add",a);return{id:d.data.id,data:d.data}}catch(d){throw o(d,"FunctionsAdapter","add",a)}}async query(a,t,n,s=l.LIST){const i=s===l.LIST_CARD?`listCard_${a}`:`list_${a}`,e={};t.where&&(e.where=t.where.map(r=>[r.field,r.operator,r.value])),t.orderBy&&(e.orderBy=t.orderBy.map(r=>[r.field,r.direction||"asc"])),t.limit&&(e.limit=t.limit),t.startAfter&&(e.startAfterId=t.startAfter);const d=await this.getCallableFn(i);try{const r=await d(e);if(!r.data)throw o(new Error("Query function returned no data"),"FunctionsAdapter","query",a);return{items:r.data.items,total:r.data.count,hasMore:r.data.hasMore,lastVisible:r.data.lastVisible}}catch(r){throw o(r,"FunctionsAdapter","query",a)}}subscribe(){return()=>{}}subscribeToCollection(){return()=>{}}}export{h as FunctionsAdapter};
@@ -1 +1 @@
1
- "use client";import{jsx as d}from"react/jsx-runtime";import{ActionButton as n}from"@donotdev/components";import{useCrudStore as a}from"../CrudStore";function c({requiresAuth:r=!0,user:e,disabled:t=!1,children:s,...i}){const o=a(u=>!!u.crudService);return d(n,{...i,disabled:t||!o||r&&!e,children:s})}var l=c;export{l as default};
1
+ "use client";import{jsx as d}from"react/jsx-runtime";import{ActionButton as n}from"@donotdev/components";import{useCrudStore as a}from"../CrudStore";function c({requiresAuth:r=!0,user:e,disabled:t=!1,children:o,...i}){const s=a(u=>!!u.crudService);return d(n,{...i,disabled:t||!s||r&&!e,children:o})}var l=c;export{l as default};
@@ -3,6 +3,6 @@ import type { CrudCardProps } from '@donotdev/core';
3
3
  * CrudCard — Presentational card from entity + item + field slots.
4
4
  * No routing: use onClick for interaction. Parent wraps with Link if needed.
5
5
  */
6
- export declare function CrudCard({ item, entity, onClick, titleFields: titleFieldsProp, subtitleFields: subtitleFieldsProp, contentFields: contentFieldsProp, footerFields: footerFieldsProp, showDelete, renderActions, elevated, className, }: Omit<CrudCardProps, 'detailHref'>): import("react/jsx-runtime").JSX.Element;
6
+ export declare function CrudCard({ item, entity, onClick, titleFields: titleFieldsProp, subtitleFields: subtitleFieldsProp, contentFields: contentFieldsProp, footerFields: footerFieldsProp, showDelete, renderActions, className, }: CrudCardProps): import("react/jsx-runtime").JSX.Element;
7
7
  export default CrudCard;
8
8
  //# sourceMappingURL=CrudCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CrudCard.d.ts","sourceRoot":"","sources":["../../src/components/CrudCard.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAA2B,MAAM,gBAAgB,CAAC;AA4C7E;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,MAAM,EACN,OAAO,EACP,WAAW,EAAE,eAAe,EAC5B,cAAc,EAAE,kBAAkB,EAClC,aAAa,EAAE,iBAAiB,EAChC,YAAY,EAAE,gBAAgB,EAC9B,UAAkB,EAClB,aAAa,EACb,QAAe,EACf,SAAS,GACV,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,2CAqMnC;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"CrudCard.d.ts","sourceRoot":"","sources":["../../src/components/CrudCard.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAA2B,MAAM,gBAAgB,CAAC;AA4C7E;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,MAAM,EACN,OAAO,EACP,WAAW,EAAE,eAAe,EAC5B,cAAc,EAAE,kBAAkB,EAClC,aAAa,EAAE,iBAAiB,EAChC,YAAY,EAAE,gBAAgB,EAC9B,UAAkB,EAClB,aAAa,EACb,SAAS,GACV,EAAE,aAAa,2CA4Lf;AAED,eAAe,QAAQ,CAAC"}
@@ -1 +1 @@
1
- import{jsx as o,jsxs as T}from"react/jsx-runtime";import{Trash2 as G}from"lucide-react";import{useMemo as g}from"react";import{Card as H,Stack as V,Text as B,ActionButton as J}from"@donotdev/components";import{useTranslation as I,getListCardFieldNames as K}from"@donotdev/core";import{formatValue as h}from"./DisplayFieldRenderer";import{DisplayThumbnail as N}from"./DisplayThumbnail";import{translateFieldLabel as O}from"../forms/utils/translateFieldLabel";import{useCrud as Q}from"../useCrud";function d(e){return e==="image"||e==="images"}function U(e){return g(()=>{const t=e.listCardFields;if(t&&!Array.isArray(t)){const s=t;return{titleFields:s.title??[],subtitleFields:s.subtitle??[],contentFields:s.content??[],footerFields:s.footer??[]}}const c=K(e),f=c.filter(s=>!d(e.fields[s]?.type)),v=c.filter(s=>d(e.fields[s]?.type)),C=f.length>0?[f[0]]:[],b=[...f.slice(1,4),...v];return{titleFields:C,subtitleFields:[],contentFields:b,footerFields:[]}},[e])}function L({item:e,entity:t,onClick:c,titleFields:f,subtitleFields:v,contentFields:C,footerFields:b,showDelete:s=!1,renderActions:j,elevated:R=!0,className:z}){const{t:a}=I([t.namespace,"crud"]),{t:p}=I("crud"),y=U(t),x=f??y.titleFields,S=v??y.subtitleFields,A=C??y.contentFields,m=b??y.footerFields,D=g(()=>{if(!x?.length)return e.id??"";const r=x.filter(i=>typeof i=="string").filter(i=>!d(t.fields[i]?.type)).map(i=>{const n=t.fields[i],F=e[i],u=n?h(F,n,a,{compact:!0,asString:!0}):F;return typeof u=="string"?u:String(u??"")}).filter(Boolean),l=!Array.isArray(t.listCardFields)&&t.listCardFields?.titleSeparator!=null?t.listCardFields.titleSeparator:" ";return r.join(l)||String(e.id??"")},[e,t.fields,x,t.listCardFields,a]),M=g(()=>S?.length&&S.filter(r=>typeof r=="string").filter(r=>!d(t.fields[r]?.type)).map(r=>{const l=t.fields[r],i=e[r],n=l?h(i,l,a,{compact:!0,asString:!0}):i;return typeof n=="string"?n:String(n??"")}).filter(Boolean).join(" ")||void 0,[e,t.fields,S,a]),P=g(()=>{if(!A?.length)return null;const r=A.map(l=>{const i=t.fields[l];if(!i)return null;if(d(i.type)){const n=e[l];return n==null?null:o(N,{pictures:n,alt:String(D),aspectRatio:"16/9"},l)}return T("div",{children:[o(B,{level:"small",variant:"muted",children:O(l,i,a)}),o(B,{children:h(e[l],i,a,{compact:!0})})]},l)}).filter(Boolean);return r.length>0?o(V,{direction:"column",gap:"tight",children:r}):null},[e,t.fields,A,D,a]),q=g(()=>{if(!m?.length)return;if(m.some(l=>d(t.fields[l]?.type))){const l=m.map(i=>{const n=t.fields[i];if(!n)return null;if(d(n.type)){const u=e[i];return u==null?null:o(N,{pictures:u,alt:"",aspectRatio:"1"},i)}const F=h(e[i],n,a,{compact:!0});return o("span",{children:F},i)});return o(V,{direction:"row",gap:"tight",align:"center",children:l.filter(Boolean)})}const r=m.map(l=>{const i=t.fields[l];return i?h(e[l],i,a,{compact:!0}):e[l]});return o(B,{level:"small",children:r.join(" \xB7 ")})},[e,t.fields,m,a]),E=Q(t).delete,k=o(H,{title:String(D??""),subtitle:M,content:P??void 0,footer:q,clickable:!!c,onClick:c?()=>c(e.id):void 0,elevated:R,className:z}),w=j||s?T("div",{style:{position:"absolute",top:"var(--gap-sm)",right:"var(--gap-sm)",zIndex:10,display:"flex",alignItems:"flex-start",gap:"var(--gap-xs)"},onClick:r=>r.stopPropagation(),onMouseDown:r=>r.stopPropagation(),children:[j,s&&o(J,{action:async()=>{await E(e.id)},confirmText:p("delete.confirm",{defaultValue:"Are you sure you want to delete this item?"}),confirmTitle:p("delete.title",{defaultValue:"Delete Item"}),loadingText:p("delete.loading",{defaultValue:"Deleting..."}),variant:"destructive",icon:G,"aria-label":p("delete",{defaultValue:"Delete"}),children:p("delete",{defaultValue:"Delete"})})]}):null;return w?T("div",{style:{position:"relative",height:"100%"},children:[k,w]}):k}var W=L;export{L as CrudCard,W as default};
1
+ import{jsx as i,jsxs as D}from"react/jsx-runtime";import{Trash2 as E}from"lucide-react";import{useMemo as h}from"react";import{Card as q,Stack as w,Text as A,ActionButton as G}from"@donotdev/components";import{useTranslation as k,getListCardFieldNames as H}from"@donotdev/core";import{formatValue as v}from"./DisplayFieldRenderer";import{DisplayThumbnail as L}from"./DisplayThumbnail";import{translateFieldLabel as J}from"../forms/utils/translateFieldLabel";import{useCrud as K}from"../useCrud";function u(e){return e==="image"||e==="images"}function O(e){return h(()=>{const t=e.listCardFields;if(t&&!Array.isArray(t)){const o=t;return{titleFields:o.title??[],subtitleFields:o.subtitle??[],contentFields:o.content??[],footerFields:o.footer??[]}}const p=H(e),g=p.filter(o=>!u(e.fields[o]?.type)),x=p.filter(o=>u(e.fields[o]?.type)),C=g.length>0?[g[0]]:[],S=[...g.slice(1,4),...x];return{titleFields:C,subtitleFields:[],contentFields:S,footerFields:[]}},[e])}function Q({item:e,entity:t,onClick:p,titleFields:g,subtitleFields:x,contentFields:C,footerFields:S,showDelete:o=!1,renderActions:B,className:R}){const{t:n}=k([t.namespace,"crud"]),{t:m}=k("crud"),b=O(t),I=g??b.titleFields,T=x??b.subtitleFields,j=C??b.contentFields,F=S??b.footerFields,V=h(()=>{if(!I?.length)return e.id??"";const c=I.filter(l=>typeof l=="string").filter(l=>!u(t.fields[l]?.type)).map(l=>{const s=t.fields[l],a=e[l],f=s?v(a,s,n,{compact:!0,asString:!0}):a;return typeof f=="string"?f:String(f??"")}).filter(Boolean),r=!Array.isArray(t.listCardFields)&&t.listCardFields?.titleSeparator!=null?t.listCardFields.titleSeparator:" ";return c.join(r)||String(e.id??"")},[e,t.fields,I,t.listCardFields,n]),M=h(()=>T?.length&&T.filter(r=>typeof r=="string").filter(r=>!u(t.fields[r]?.type)).map(r=>{const l=t.fields[r],s=e[r],a=l?v(s,l,n,{compact:!0,asString:!0}):s;return typeof a=="string"?a:String(a??"")}).filter(Boolean).join(" ")||void 0,[e,t.fields,T,n]),P=h(()=>{if(!j?.length)return null;const c=j.map(r=>{const l=t.fields[r];if(!l)return null;if(u(l.type)){const s=e[r];return s==null?null:i(L,{pictures:s,alt:String(V),aspectRatio:"16/9"},r)}return D("div",{children:[i(A,{level:"small",variant:"muted",children:J(r,l,n)}),i(A,{children:v(e[r],l,n,{compact:!0})})]},r)}).filter(Boolean);return c.length>0?i(w,{direction:"column",gap:"tight",children:c}):null},[e,t.fields,j,V,n]),_=h(()=>{if(!F?.length)return;if(F.some(r=>u(t.fields[r]?.type))){const r=F.map(l=>{const s=t.fields[l];if(!s)return null;if(u(s.type)){const f=e[l];return f==null?null:i(L,{pictures:f,alt:"",aspectRatio:"1"},l)}const a=v(e[l],s,n,{compact:!0});return i("span",{children:a},l)});return i(w,{direction:"row",gap:"tight",align:"center",children:r.filter(Boolean)})}const c=F.map(r=>{const l=t.fields[r];return l?v(e[r],l,n,{compact:!0}):e[r]});return i(A,{level:"small",children:c.join(" \xB7 ")})},[e,t.fields,F,n]),y=K(t).delete,z=B||o?D("div",{style:{position:"absolute",top:"var(--gap-sm)",insetInlineEnd:"var(--gap-sm)",zIndex:10,display:"flex",alignItems:"flex-start",gap:"var(--gap-xs)"},onClick:d=>d.stopPropagation(),onMouseDown:d=>d.stopPropagation(),children:[B,o&&i(G,{action:async()=>{await y(e.id)},confirmText:m("delete.confirm",{defaultValue:"Are you sure you want to delete this item?"}),confirmTitle:m("delete.title",{defaultValue:"Delete Item"}),loadingText:m("delete.loading",{defaultValue:"Deleting..."}),variant:"destructive",icon:E,"aria-label":m("delete",{defaultValue:"Delete"}),children:m("delete",{defaultValue:"Delete"})})]}):null;return i(q,{title:String(V??""),subtitle:M,content:P??void 0,footer:_,clickable:!0,elevated:!0,onClick:p?()=>p(e.id):void 0,className:R,children:z})}var re=Q;export{Q as CrudCard,re as default};
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as b,Fragment as ct}from"react/jsx-runtime";import{X as ut}from"lucide-react";import{useState as k,useMemo as ht}from"react";import{Button as S,Calendar as St,FloatingLabel as Dt,Sheet as T,Text as ft}from"@donotdev/components";import{formatDate as xt}from"@donotdev/core";function $t({label:D,fieldType:vt,value:l,onChange:f,tCrud:i,locale:O="en"}){const[M,o]=k(!1),[F,x]=k(null),N=ht(()=>l?typeof l=="object"&&l!==null&&"min"in l?{min:l.min||"",max:l.max||""}:{min:"",max:""}:{min:"",max:""},[l]),C=t=>{if(!t)return"";try{const n=new Date(t+"T00:00:00");return xt(n,O)}catch{return t}},W=()=>{const t=new Date;t.setHours(0,0,0,0);const n=t.getFullYear(),d=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0"),g=`${n}-${d}-${r}`,s=new Date(t);s.setDate(s.getDate()-1);const v=s.getFullYear(),$=String(s.getMonth()+1).padStart(2,"0"),z=String(s.getDate()).padStart(2,"0"),B=`${v}-${$}-${z}`,m=new Date(t);m.setDate(m.getDate()+1);const H=m.getFullYear(),L=String(m.getMonth()+1).padStart(2,"0"),X=String(m.getDate()).padStart(2,"0"),q=`${H}-${L}-${X}`,p=new Date(t);p.setDate(p.getDate()-7);const A=p.getFullYear(),G=String(p.getMonth()+1).padStart(2,"0"),I=String(p.getDate()).padStart(2,"0"),J=`${A}-${G}-${I}`,c=new Date(t);c.setDate(c.getDate()-30);const K=c.getFullYear(),P=String(c.getMonth()+1).padStart(2,"0"),Q=String(c.getDate()).padStart(2,"0"),R=`${K}-${P}-${Q}`,u=new Date(t);u.setDate(u.getDate()+7);const U=u.getFullYear(),Z=String(u.getMonth()+1).padStart(2,"0"),_=String(u.getDate()).padStart(2,"0"),tt=`${U}-${Z}-${_}`,h=new Date(t);h.setDate(h.getDate()+30);const et=h.getFullYear(),at=String(h.getMonth()+1).padStart(2,"0"),nt=String(h.getDate()).padStart(2,"0"),rt=`${et}-${at}-${nt}`,y=new Date(t.getFullYear(),t.getMonth(),1),lt=y.getFullYear(),it=String(y.getMonth()+1).padStart(2,"0"),ot=String(y.getDate()).padStart(2,"0"),st=`${lt}-${it}-${ot}`,w=new Date(t.getFullYear(),t.getMonth()+1,0),dt=w.getFullYear(),gt=String(w.getMonth()+1).padStart(2,"0"),mt=String(w.getDate()).padStart(2,"0"),pt=`${dt}-${gt}-${mt}`;return{today:g,yesterday:B,tomorrow:q,last7Days:J,last30Days:R,next7Days:tt,next30Days:rt,thisMonthStart:st,thisMonthEnd:pt}},a=N,j=W(),E=!!(a?.min||a?.max),Y=t=>{const n=t==="start",d=n?a?.min:a?.max;return e("div",{style:{padding:"var(--gap-md)"},children:b("div",{style:{display:"flex",flexDirection:"column",gap:"var(--gap-md)"},children:[e("div",{style:{display:"flex",flexWrap:"wrap",gap:"var(--gap-tight)"},children:(n?["today","yesterday","last7Days","last30Days","thisMonthStart"]:["today","tomorrow","next7Days","next30Days","thisMonthEnd"]).map(r=>{const g=j[r];return e(S,{variant:"outline",onClick:()=>{f({min:n?g:a?.min||"",max:n?a?.max||"":g}),o(!1)},children:i(`filter.${r}`,{defaultValue:r})},r)})}),e(St,{selected:d?new Date(d+"T00:00:00"):void 0,mode:"single",onSelect:r=>{if(!r)return;const g=r.getFullYear(),s=String(r.getMonth()+1).padStart(2,"0"),v=String(r.getDate()).padStart(2,"0"),$=`${g}-${s}-${v}`;f({min:n?$:a?.min||"",max:n?a?.max||"":$}),o(!1)},defaultMonth:d?new Date(d+"T00:00:00"):new Date}),e(S,{variant:"ghost",display:"compact",onClick:()=>{f({min:n?"":a?.min||"",max:n&&a?.max||""}),o(!1)},children:i("filter.clear",{defaultValue:"Clear"})})]})})},V=b(ct,{children:[e(T,{trigger:e(S,{variant:"ghost",onClick:()=>{x("start"),o(!0)},style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a?.min?C(a.min):i("filter.min",{defaultValue:"Min"})}),title:`${D} - ${i("filter.min",{defaultValue:"Min"})}`,open:M&&F==="start",onOpenChange:t=>{o(t),t||x(null)},children:Y("start")}),e(ft,{level:"small",variant:"muted",className:"dndev-range-input-separator",children:"\u2013"}),e(T,{trigger:e(S,{variant:"ghost",onClick:()=>{x("end"),o(!0)},style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a?.max?C(a.max):i("filter.max",{defaultValue:"Max"})}),title:`${D} - ${i("filter.max",{defaultValue:"Max"})}`,open:M&&F==="end",onOpenChange:t=>{o(t),t||x(null)},children:Y("end")}),e(S,{variant:"ghost",display:"compact",icon:e(ut,{size:16}),onClick:()=>{f(void 0)},disabled:!E,"aria-label":i("filter.clear",{defaultValue:"Clear"})})]});return D?e(Dt,{label:D,children:e("div",{className:"dndev-range-input",children:V})}):e("div",{className:"dndev-range-input",children:V})}export{$t as DateFilter};
1
+ "use client";import{jsx as e,jsxs as b,Fragment as ct}from"react/jsx-runtime";import{X as ut}from"lucide-react";import{useState as k,useMemo as ht}from"react";import{Button as S,Calendar as St,FloatingLabel as Dt,Sheet as T,Text as $t}from"@donotdev/components";import{formatDate as xt}from"@donotdev/core";function ft({label:D,fieldType:vt,value:l,onChange:$,tCrud:i,locale:j="en"}){const[M,o]=k(!1),[F,x]=k(null),N=ht(()=>l?typeof l=="object"&&l!==null&&"min"in l?{min:l.min||"",max:l.max||""}:{min:"",max:""}:{min:"",max:""},[l]),C=t=>{if(!t)return"";try{const n=new Date(t+"T00:00:00");return xt(n,j)}catch{return t}},O=()=>{const t=new Date;t.setHours(0,0,0,0);const n=t.getFullYear(),d=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0"),g=`${n}-${d}-${r}`,s=new Date(t);s.setDate(s.getDate()-1);const v=s.getFullYear(),f=String(s.getMonth()+1).padStart(2,"0"),z=String(s.getDate()).padStart(2,"0"),B=`${v}-${f}-${z}`,m=new Date(t);m.setDate(m.getDate()+1);const H=m.getFullYear(),L=String(m.getMonth()+1).padStart(2,"0"),X=String(m.getDate()).padStart(2,"0"),q=`${H}-${L}-${X}`,p=new Date(t);p.setDate(p.getDate()-7);const A=p.getFullYear(),G=String(p.getMonth()+1).padStart(2,"0"),I=String(p.getDate()).padStart(2,"0"),J=`${A}-${G}-${I}`,c=new Date(t);c.setDate(c.getDate()-30);const K=c.getFullYear(),P=String(c.getMonth()+1).padStart(2,"0"),Q=String(c.getDate()).padStart(2,"0"),R=`${K}-${P}-${Q}`,u=new Date(t);u.setDate(u.getDate()+7);const U=u.getFullYear(),Z=String(u.getMonth()+1).padStart(2,"0"),_=String(u.getDate()).padStart(2,"0"),tt=`${U}-${Z}-${_}`,h=new Date(t);h.setDate(h.getDate()+30);const et=h.getFullYear(),at=String(h.getMonth()+1).padStart(2,"0"),nt=String(h.getDate()).padStart(2,"0"),rt=`${et}-${at}-${nt}`,y=new Date(t.getFullYear(),t.getMonth(),1),lt=y.getFullYear(),it=String(y.getMonth()+1).padStart(2,"0"),ot=String(y.getDate()).padStart(2,"0"),st=`${lt}-${it}-${ot}`,w=new Date(t.getFullYear(),t.getMonth()+1,0),dt=w.getFullYear(),gt=String(w.getMonth()+1).padStart(2,"0"),mt=String(w.getDate()).padStart(2,"0"),pt=`${dt}-${gt}-${mt}`;return{today:g,yesterday:B,tomorrow:q,last7Days:J,last30Days:R,next7Days:tt,next30Days:rt,thisMonthStart:st,thisMonthEnd:pt}},a=N,W=O(),E=!!(a?.min||a?.max),Y=t=>{const n=t==="start",d=n?a?.min:a?.max;return e("div",{style:{padding:"var(--gap-md)"},children:b("div",{style:{display:"flex",flexDirection:"column",gap:"var(--gap-md)"},children:[e("div",{style:{display:"flex",flexWrap:"wrap",gap:"var(--gap-tight)"},children:(n?["today","yesterday","last7Days","last30Days","thisMonthStart"]:["today","tomorrow","next7Days","next30Days","thisMonthEnd"]).map(r=>{const g=W[r];return e(S,{variant:"outline",onClick:()=>{$({min:n?g:a?.min||"",max:n?a?.max||"":g}),o(!1)},children:i(`filter.${r}`,{defaultValue:r})},r)})}),e(St,{selected:d?new Date(d+"T00:00:00"):void 0,mode:"single",onSelect:r=>{if(!r)return;const g=r.getFullYear(),s=String(r.getMonth()+1).padStart(2,"0"),v=String(r.getDate()).padStart(2,"0"),f=`${g}-${s}-${v}`;$({min:n?f:a?.min||"",max:n?a?.max||"":f}),o(!1)},defaultMonth:d?new Date(d+"T00:00:00"):new Date}),e(S,{variant:"ghost",display:"compact",onClick:()=>{$({min:n?"":a?.min||"",max:n&&a?.max||""}),o(!1)},children:i("filter.clear",{defaultValue:"Clear"})})]})})},V=b(ct,{children:[e(T,{trigger:e(S,{variant:"ghost",onClick:()=>{x("start"),o(!0)},style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a?.min?C(a.min):i("filter.min",{defaultValue:"Min"})}),title:`${D} - ${i("filter.min",{defaultValue:"Min"})}`,open:M&&F==="start",onOpenChange:t=>{o(t),t||x(null)},children:Y("start")}),e($t,{level:"small",variant:"muted",className:"dndev-range-input-separator",children:"\u2013"}),e(T,{trigger:e(S,{variant:"ghost",onClick:()=>{x("end"),o(!0)},style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a?.max?C(a.max):i("filter.max",{defaultValue:"Max"})}),title:`${D} - ${i("filter.max",{defaultValue:"Max"})}`,open:M&&F==="end",onOpenChange:t=>{o(t),t||x(null)},children:Y("end")}),e(S,{variant:"ghost",display:"compact",icon:e(ut,{size:16}),onClick:()=>{$(void 0)},disabled:!E,"aria-label":i("filter.clear",{defaultValue:"Clear"})})]});return D?e(Dt,{label:D,children:e("div",{className:"dndev-range-input",children:V})}):e("div",{className:"dndev-range-input",children:V})}export{ft as DateFilter};
@@ -1 +1 @@
1
- {"version":3,"file":"DisplayFieldRenderer.d.ts","sourceRoot":"","sources":["../../src/components/DisplayFieldRenderer.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,WAAW,yBAAyB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACxE,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,0BAA0B;IAC1B,KAAK,EAAE,GAAG,CAAC;IACX,2BAA2B;IAC3B,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;CAC3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,WAAW,EACnB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,EACzD,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,GAAG,YAAY,CA4EvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,EACpE,IAAI,EACJ,MAAM,EACN,KAAK,EACL,CAAC,GACF,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,YAAY,CAyC7C;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"DisplayFieldRenderer.d.ts","sourceRoot":"","sources":["../../src/components/DisplayFieldRenderer.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,WAAW,yBAAyB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACxE,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,0BAA0B;IAC1B,KAAK,EAAE,GAAG,CAAC;IACX,2BAA2B;IAC3B,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;CAC3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,WAAW,EACnB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,EACzD,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,GAAG,YAAY,CA+EvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,EACpE,IAAI,EACJ,MAAM,EACN,KAAK,EACL,CAAC,GACF,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,YAAY,CAyC7C;AAED,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as f}from"react/jsx-runtime";import{Text as s,Stack as h}from"@donotdev/components";import{handleError as c}from"@donotdev/core";import{getDisplayFormatter as v}from"../fieldTypeRegistry";import{translateFieldLabel as x}from"../forms/utils";function y(e,t,a,n){const i=n?.compact??!1,l=n?.asString??!1;if(e==null||e==="")return l?"\u2014":i?r("span",{style:{color:"var(--muted-foreground)"},children:"\u2014"}):r(s,{variant:"muted",children:"\u2014"});const d=v(t.type),m=t.options?.displayKey;if(m){let o=String(e);if(d)try{const p=d(e,t,a,n);o=typeof p=="string"?p:String(e)}catch{}const u=(Array.isArray(m)?m:[m]).map(p=>p.replace("{{value}}",o));return a(u,{value:o})}if(d)try{return d(e,t,a,n)}catch(o){return c(o,{userMessage:`Error formatting field "${t.label||t.name}"`,context:{fieldType:t.type,fieldName:t.label||"unknown",operation:"display_format"},severity:"warning"}),l?String(e):i?r("span",{style:{color:"var(--muted-foreground)"},children:String(e)}):r(s,{variant:"muted",children:String(e)})}return c(new Error(`Display formatter not registered for field type: ${t.type}`),{userMessage:`Field type "${t.type}" is missing display formatter`,context:{fieldType:t.type,fieldName:t.label||"unknown",operation:"display_format",fix:"Add displayFormatter to registerBuiltinFieldType() in registerBuiltinFieldTypes.tsx"},severity:"warning"}),l?String(e):i?r("span",{style:{color:"var(--muted-foreground)"},children:String(e)}):r(s,{variant:"muted",children:String(e)})}function g({name:e,config:t,value:a,t:n}){const i=y(a,t,n,{compact:!1}),l=x(e,t,n);return f(h,{direction:"row",align:"baseline",style:{marginBottom:"var(--gap-sm)",padding:"var(--gap-sm)",minHeight:"38px",alignItems:"center"},children:[f(s,{variant:"muted",style:{fontSize:"var(--font-size-sm)",fontWeight:500,minWidth:"fit-content",flexShrink:0},children:[l,":"]}),r("div",{style:{flex:1,display:"flex",alignItems:"center"},children:typeof i=="string"?r(s,{children:i}):i})]})}var S=g;export{g as DisplayFieldRenderer,S as default,y as formatValue};
1
+ "use client";import{jsx as t,jsxs as f}from"react/jsx-runtime";import{Text as s,Stack as h}from"@donotdev/components";import{handleError as c}from"@donotdev/core";import{getDisplayFormatter as v}from"../fieldTypeRegistry";import{translateFieldLabel as x}from"../forms/utils";function y(e,r,a,i){const n=i?.compact??!1,l=i?.asString??!1;if(e==null||e==="")return l?"\u2014":n?t("span",{style:{color:"var(--muted-foreground)"},children:"\u2014"}):t(s,{variant:"muted",children:"\u2014"});const d=v(r.type),m=r.options?.displayKey;if(m){let o=String(e);if(d)try{const p=d(e,r,a,i);o=typeof p=="string"?p:String(e)}catch{}const u=(Array.isArray(m)?m:[m]).map(p=>p.replace("{{value}}",o));return a(u,{value:o})}if(d)try{return d(e,r,a,i)}catch(o){return c(o,{userMessage:`Error formatting field "${r.label||r.name}"`,context:{fieldType:r.type,fieldName:r.label||"unknown",operation:"display_format"},severity:"warning"}),l?String(e):n?t("span",{style:{color:"var(--muted-foreground)"},children:String(e)}):t(s,{variant:"muted",children:String(e)})}return c(new Error(`Display formatter not registered for field type: ${r.type}`),{userMessage:`Field type "${r.type}" is missing display formatter`,context:{fieldType:r.type,fieldName:r.label||"unknown",operation:"display_format",fix:"Add displayFormatter to registerBuiltinFieldType() in registerBuiltinFieldTypes.tsx"},severity:"warning"}),l?String(e):n?t("span",{style:{color:"var(--muted-foreground)"},children:String(e)}):t(s,{variant:"muted",children:String(e)})}function g({name:e,config:r,value:a,t:i}){const n=y(a,r,i,{compact:!1}),l=x(e,r,i);return f(h,{direction:"row",align:"baseline",style:{marginBottom:"var(--gap-sm)",padding:"var(--gap-sm)",minHeight:"38px",alignItems:"center"},children:[f(s,{variant:"muted",style:{fontSize:"var(--font-size-sm)",fontWeight:500,minWidth:"fit-content",flexShrink:0},children:[l,":"]}),t("div",{style:{flex:1,display:"flex",alignItems:"center"},children:typeof n=="string"?t(s,{children:n}):n})]})}var S=g;export{g as DisplayFieldRenderer,S as default,y as formatValue};
@@ -1 +1 @@
1
- "use client";import{jsx as n}from"react/jsx-runtime";function o(t){if(t==null)return null;if(typeof t=="string")return t||null;const l=Array.isArray(t)&&t.length>0?t[0]:t;if(!l||typeof l!="object")return null;const e=l.thumbUrl??l.fullUrl;return typeof e=="string"?e:null}function r({pictures:t,alt:l="",aspectRatio:e="16/9",className:a,style:s}){const i=o(t);return i?n("div",{className:a,style:{width:"100%",aspectRatio:e,borderRadius:"var(--radius-md)",overflow:"hidden",backgroundColor:"var(--muted)",position:"relative",...s},children:n("img",{src:i,alt:l,loading:"lazy",style:{width:"100%",height:"100%",objectFit:"cover"}})}):null}var u=r;export{r as DisplayThumbnail,u as default};
1
+ "use client";import{jsx as i}from"react/jsx-runtime";function s(r){if(r==null)return null;if(typeof r=="string")return r||null;const l=Array.isArray(r)&&r.length>0?r[0]:r;if(!l||typeof l!="object")return null;const t=l.thumbUrl??l.fullUrl;return typeof t=="string"?t:null}function n({pictures:r,alt:l="",aspectRatio:t="16/9",className:a,style:o}){const e=s(r);return e?i("div",{className:a,style:{width:"100%",aspectRatio:t,borderRadius:"var(--radius-md)",overflow:"hidden",backgroundColor:"var(--muted)",position:"relative",...o},children:i("img",{src:e,alt:l,loading:"lazy",style:{width:"100%",height:"100%",objectFit:"cover"}})}):null}var u=n;export{n as DisplayThumbnail,u as default};
@@ -1 +1 @@
1
- "use client";import{jsx as d,jsxs as _}from"react/jsx-runtime";import{FilterX as Y}from"lucide-react";import{useMemo as V}from"react";import{Button as Z,Combobox as W,Grid as ee,Rating as te,RangeInput as ae,Slider as ie,Stack as le}from"@donotdev/components";import{useTranslation as D,handleError as B}from"@donotdev/core";import{DateFilter as ne}from"./DateFilter";import{getFilterType as $,isFilterable as re}from"../fieldTypeRegistry";import{translateFieldLabel as se,translateLabel as I}from"../forms/utils";import{useCrudFilters as oe}from"../hooks/useCrudFilters";import{useCrudCardList as me}from"../useCrudCardList";import{matchesFilter as fe}from"../utils/matchesFilter";import{matchesFilter as de}from"../utils/matchesFilter";function ue({entity:f,data:O,fieldsToFilter:T,variant:L="inline",cols:P}){const z=L==="sidebar",{t:p,i18n:G}=D("crud"),{t:j}=D([f.namespace,"crud"]),X=G?.language||"en",{data:q}=me(f,{enabled:!O}),c=O??(q?.items||[]),{filters:b,setFilters:A}=oe({collection:f.collection}),g=V(()=>(T&&T.length>0?T:f.listFields||Object.keys(f.fields)).filter(a=>{const t=f.fields[a]?.type||"text";return re(t)}),[T,f.listFields,f.fields]),R=V(()=>{const a={};return g.forEach(t=>{const o=Object.fromEntries(Object.entries(b).filter(([i])=>i!==t));if(Object.keys(o).length===0){a[t]=c;return}a[t]=c.filter(i=>Object.entries(o).every(([m,h])=>{const F=i[m],x=f.fields[m]?.type||"text";return fe(F,h,x)}))}),a},[c,b,f.fields,g]),H=V(()=>{const a={};return g.forEach(t=>{const o=f.fields[t];if(!o)return;const i=o.type||"text",m=$(i);if(!m){B(new Error(`Field type "${i}" not registered in field type registry`),{userMessage:`Field type "${i}" is missing from registry`,context:{fieldType:i,fieldName:t,operation:"minmax_computation",fix:"Add to registerBuiltinFieldTypes.ts or registerFieldType()"},severity:"warning"});return}const h=m==="range"&&(i==="date"||i==="datetime-local"||i==="timestamp"||i==="time"||i==="week"||i==="month"||i==="year"),F=m==="range"&&!h,x=i==="price";if(F||x){const n=c.map(l=>l[t]).filter(l=>l!=null&&l!=="").map(l=>x&&typeof l=="object"&&l!==null?Number(l.amount):typeof l=="number"?l:Number(l)).filter(l=>!isNaN(l));n.length>0&&(a[t]={min:Math.min(...n),max:Math.max(...n)})}else if(h){const n=c.map(l=>l[t]).filter(l=>l!=null&&l!=="").map(l=>l instanceof Date?l:new Date(l)).filter(l=>!isNaN(l.getTime()));if(n.length>0){const l=new Date(Math.min(...n.map(C=>C.getTime()))),E=new Date(Math.max(...n.map(C=>C.getTime()))),k=l.toISOString().split("T")[0],v=E.toISOString().split("T")[0];a[t]={min:k||"",max:v||""}}}}),a},[c,f.fields,g]),y=(a,t)=>{const o={...b};if(!t||t==="")delete o[a];else if(Array.isArray(t))o[a]=t;else if(typeof t=="object"&&"min"in t){const i=t.min&&t.min!=="",m=t.max&&t.max!=="";!i&&!m?delete o[a]:o[a]=t}else o[a]=t;A(o)},J=()=>{A({})},N=V(()=>g.length===0?null:g.map(a=>{const t=f.fields[a];if(!t)return null;const o=se(a,t,j),i=t.type||"text",m=$(i);if(!m)return B(new Error(`Field type "${i}" not registered in field type registry`),{userMessage:`Field type "${i}" is missing from registry`,context:{fieldType:i,fieldName:a,operation:"filter_ui_render",fix:"Add to registerBuiltinFieldTypes.ts or registerFieldType()"},severity:"warning"}),null;const h=m==="range"&&(i==="date"||i==="datetime-local"||i==="timestamp"||i==="time"||i==="week"||i==="month"||i==="year"),F=m==="range"&&!h,x=m==="select",n=b[a],l=typeof n=="object"&&n!==null&&"min"in n?n:{min:"",max:""};if(m==="rating"){const r=t.validation?.max??5,s=typeof n=="string"&&n!==""?Number(n):0;return d("div",{style:{gridColumn:"span 2",gridRow:"span 1"},children:d(te,{value:s,max:r,"aria-label":o,onChange:e=>{y(a,e===s?void 0:String(e))}})},a)}if(F){const r=H[a],s=r?.min??0,e=r?.max??100,u=l.min?Number(l.min):s,w=l.max?Number(l.max):e;return _(le,{gap:"tight",style:{gridColumn:"span 2"},children:[d(ae,{type:"number",label:o,minPlaceholder:p("filter.min",{defaultValue:"Min"}),maxPlaceholder:p("filter.max",{defaultValue:"Max"}),minValue:l.min||"",maxValue:l.max||"",actualMin:s,actualMax:e,onChange:(M,U)=>{y(a,{min:M,max:U})},onClear:()=>y(a,void 0)}),d(ie,{value:[u,w],min:s,max:e,step:1,onValueChange:M=>{y(a,{min:String(M[0]),max:String(M[1])})}})]},a)}if(h){const r=i==="week"||i==="month"||i==="year"?i:"date",s=(()=>{if(n){if(typeof n=="object"&&"min"in n){const e=n;return{min:e.min&&e.min.split("T")[0]||"",max:e.max&&e.max.split("T")[0]||""}}if(typeof n=="string"){const e=n.split("T")[0]||"";return{min:e,max:e}}}})();return d("div",{style:{gridColumn:"span 2",gridRow:"span 1"},children:d(ne,{label:o,fieldType:r,value:s,locale:X,onChange:e=>{if(!e){y(a,void 0);return}typeof e=="object"&&"min"in e&&y(a,{min:e.min||"",max:e.max||""})},tCrud:p})},a)}const E=x&&t.validation&&"options"in t.validation&&t.validation?Array.isArray(t.validation.options)?t.validation.options:typeof t.validation.options=="function"?t.validation.options():[]:[],k=R[a]||c,v=new Set,C=m==="address";k.forEach(r=>{const s=r[a];if(s!=null)if(C&&typeof s=="object"&&"formatted_address"in s){const e=s;e.formatted_address&&v.add(String(e.formatted_address))}else v.add(String(s))});const S=[{value:"all",label:p("filter.selectPlaceholder",{defaultValue:"All"})}];if(E.length>0){const r=[],s=[];E.forEach(e=>{const u=typeof e=="string"?e:e.value,w=typeof e=="string"?e:e.label;v.has(u)?r.push({value:u,label:w}):s.push({value:u,label:w})}),r.sort((e,u)=>e.label.localeCompare(u.label)),s.sort((e,u)=>e.label.localeCompare(u.label)),r.forEach(e=>{S.push({value:e.value,label:I(e.label,j),disabled:!1})}),s.forEach(e=>{S.push({value:e.value,label:I(e.label,j),disabled:!0})})}else Array.from(v).sort().slice(0,100).forEach(r=>{S.push({value:r,label:r})});return d("div",{style:{gridColumn:"span 1",gridRow:"span 1"},children:d(W,{label:o,value:typeof n=="string"?n:void 0,onValueChange:r=>{y(a,r==="all"||!r?"":String(r))},options:S,placeholder:p("filter.placeholder",{defaultValue:"Filter..."}),clearable:!0})},a)}),[g,f.fields,c,b,j,p,R]);if(!N||N.length===0)return null;const K=N.filter(Boolean),Q=Object.keys(b).length>0;return _(ee,{cols:P??(z?2:[2,4,4,6]),children:[K,d(Z,{variant:"outline",icon:d(Y,{size:18}),onClick:J,disabled:!Q,style:{gridColumn:"1 / -1",gridRow:"span 1"},children:p("filter.clear",{defaultValue:"Clear Filters"})})]})}export{ue as EntityFilters,de as matchesFilter};
1
+ "use client";import{jsx as d,jsxs as _}from"react/jsx-runtime";import{FilterX as Y}from"lucide-react";import{useMemo as S}from"react";import{Button as Z,Combobox as U,Grid as ee,Rating as te,RangeInput as ie,Slider as le,Stack as re}from"@donotdev/components";import{useTranslation as D,handleError as B}from"@donotdev/core";import{DateFilter as ae}from"./DateFilter";import{getFilterType as $,isFilterable as ne}from"../fieldTypeRegistry";import{translateFieldLabel as se,translateLabel as I}from"../forms/utils";import{useCrudFilters as oe}from"../hooks/useCrudFilters";import{useCrudCardList as me}from"../useCrudCardList";import{matchesFilter as fe}from"../utils/matchesFilter";import{matchesFilter as de}from"../utils/matchesFilter";function ue({entity:f,data:A,fieldsToFilter:j,variant:L="inline",cols:P}){const z=L==="sidebar",{t:p,i18n:G}=D("crud"),{t:w}=D([f.namespace,"crud"]),X=G?.language||"en",{data:q}=me(f,{enabled:!A}),c=A??(q?.items||[]),{filters:b,setFilters:k}=oe({collection:f.collection}),g=S(()=>(j&&j.length>0?j:f.listFields||Object.keys(f.fields)).filter(i=>{const t=f.fields[i]?.type||"text";return ne(t)}),[j,f.listFields,f.fields]),R=S(()=>{const i={};return g.forEach(t=>{const o=Object.fromEntries(Object.entries(b).filter(([l])=>l!==t));if(Object.keys(o).length===0){i[t]=c;return}i[t]=c.filter(l=>Object.entries(o).every(([m,h])=>{const F=l[m],x=f.fields[m]?.type||"text";return fe(F,h,x)}))}),i},[c,b,f.fields,g]),H=S(()=>{const i={};return g.forEach(t=>{const o=f.fields[t];if(!o)return;const l=o.type||"text",m=$(l);if(!m){B(new Error(`Field type "${l}" not registered in field type registry`),{userMessage:`Field type "${l}" is missing from registry`,context:{fieldType:l,fieldName:t,operation:"minmax_computation",fix:"Add to registerBuiltinFieldTypes.ts or registerFieldType()"},severity:"warning"});return}const h=m==="range"&&(l==="date"||l==="datetime-local"||l==="timestamp"||l==="time"||l==="week"||l==="month"||l==="year"),F=m==="range"&&!h,x=l==="price";if(F||x){const a=c.map(r=>r[t]).filter(r=>r!=null&&r!=="").map(r=>x&&typeof r=="object"&&r!==null?Number(r.amount):typeof r=="number"?r:Number(r)).filter(r=>!isNaN(r));a.length>0&&(i[t]={min:Math.min(...a),max:Math.max(...a)})}else if(h){const a=c.map(r=>r[t]).filter(r=>r!=null&&r!=="").map(r=>r instanceof Date?r:new Date(r)).filter(r=>!isNaN(r.getTime()));if(a.length>0){const r=new Date(Math.min(...a.map(C=>C.getTime()))),T=new Date(Math.max(...a.map(C=>C.getTime()))),V=r.toISOString().split("T")[0],v=T.toISOString().split("T")[0];i[t]={min:V||"",max:v||""}}}}),i},[c,f.fields,g]),y=(i,t)=>{const o={...b};if(!t||t==="")delete o[i];else if(Array.isArray(t))o[i]=t;else if(typeof t=="object"&&"min"in t){const l=t.min&&t.min!=="",m=t.max&&t.max!=="";!l&&!m?delete o[i]:o[i]=t}else o[i]=t;k(o)},J=()=>{k({})},O=S(()=>g.length===0?null:g.map(i=>{const t=f.fields[i];if(!t)return null;const o=se(i,t,w),l=t.type||"text",m=$(l);if(!m)return B(new Error(`Field type "${l}" not registered in field type registry`),{userMessage:`Field type "${l}" is missing from registry`,context:{fieldType:l,fieldName:i,operation:"filter_ui_render",fix:"Add to registerBuiltinFieldTypes.ts or registerFieldType()"},severity:"warning"}),null;const h=m==="range"&&(l==="date"||l==="datetime-local"||l==="timestamp"||l==="time"||l==="week"||l==="month"||l==="year"),F=m==="range"&&!h,x=m==="select",a=b[i],r=typeof a=="object"&&a!==null&&"min"in a?a:{min:"",max:""};if(m==="rating"){const n=t.validation?.max??5,s=typeof a=="string"&&a!==""?Number(a):0;return d("div",{style:{gridColumn:"span 2",gridRow:"span 1"},children:d(te,{value:s,max:n,"aria-label":o,onChange:e=>{y(i,e===s?void 0:String(e))}})},i)}if(F){const n=H[i],s=n?.min??0,e=n?.max??100,u=r.min?Number(r.min):s,N=r.max?Number(r.max):e;return _(re,{gap:"tight",style:{gridColumn:"span 2"},children:[d(ie,{type:"number",label:o,minPlaceholder:p("filter.min",{defaultValue:"Min"}),maxPlaceholder:p("filter.max",{defaultValue:"Max"}),minValue:r.min||"",maxValue:r.max||"",actualMin:s,actualMax:e,onChange:(M,W)=>{y(i,{min:M,max:W})},onClear:()=>y(i,void 0)}),d(le,{value:[u,N],min:s,max:e,step:1,onValueChange:M=>{y(i,{min:String(M[0]),max:String(M[1])})}})]},i)}if(h){const n=l==="week"||l==="month"||l==="year"?l:"date",s=(()=>{if(a){if(typeof a=="object"&&"min"in a){const e=a;return{min:e.min&&e.min.split("T")[0]||"",max:e.max&&e.max.split("T")[0]||""}}if(typeof a=="string"){const e=a.split("T")[0]||"";return{min:e,max:e}}}})();return d("div",{style:{gridColumn:"span 2",gridRow:"span 1"},children:d(ae,{label:o,fieldType:n,value:s,locale:X,onChange:e=>{if(!e){y(i,void 0);return}typeof e=="object"&&"min"in e&&y(i,{min:e.min||"",max:e.max||""})},tCrud:p})},i)}const T=x&&t.validation&&"options"in t.validation&&t.validation?Array.isArray(t.validation.options)?t.validation.options:typeof t.validation.options=="function"?t.validation.options():[]:[],V=R[i]||c,v=new Set,C=m==="address";V.forEach(n=>{const s=n[i];if(s!=null)if(C&&typeof s=="object"&&"formatted_address"in s){const e=s;e.formatted_address&&v.add(String(e.formatted_address))}else v.add(String(s))});const E=[{value:"all",label:p("filter.selectPlaceholder",{defaultValue:"All"})}];if(T.length>0){const n=[],s=[];T.forEach(e=>{const u=typeof e=="string"?e:e.value,N=typeof e=="string"?e:e.label;v.has(u)?n.push({value:u,label:N}):s.push({value:u,label:N})}),n.sort((e,u)=>e.label.localeCompare(u.label)),s.sort((e,u)=>e.label.localeCompare(u.label)),n.forEach(e=>{E.push({value:e.value,label:I(e.label,w),disabled:!1})}),s.forEach(e=>{E.push({value:e.value,label:I(e.label,w),disabled:!0})})}else Array.from(v).sort().slice(0,100).forEach(n=>{E.push({value:n,label:n})});return d("div",{style:{gridColumn:"span 1",gridRow:"span 1"},children:d(U,{label:o,value:typeof a=="string"?a:void 0,onValueChange:n=>{y(i,n==="all"||!n?"":String(n))},options:E,placeholder:p("filter.placeholder",{defaultValue:"Filter..."}),clearable:!0})},i)}),[g,f.fields,c,b,w,p,R]);if(!O||O.length===0)return null;const K=O.filter(Boolean),Q=Object.keys(b).length>0;return _(ee,{cols:P??(z?2:[2,4,4,6]),children:[K,d(Z,{variant:"outline",icon:d(Y,{size:18}),onClick:J,disabled:!Q,style:{gridColumn:"1 / -1",gridRow:"span 1"},children:p("filter.clear",{defaultValue:"Clear Filters"})})]})}export{ue as EntityFilters,de as matchesFilter};
@@ -1 +1 @@
1
- "use client";import{jsx as t}from"react/jsx-runtime";import{handleError as C}from"@donotdev/core";import{getFieldRegistry as F}from"../FieldRegistry";import{ControlledTextField as T}from"./controlled";import{TextFieldComponent as w}from"./form/fields";const v=F();function h({name:o,config:e,t:r,...n}){const p=l=>i=>{try{l(i)}catch(a){C(a,{userMessage:`Error updating field ${e.label||o}`,context:{fieldName:o,fieldType:e.type},severity:"warning"})}},s="control"in n&&n.control,d=e.type==="submit"||e.type==="reset";if(s&&!d){const{control:l,errors:i}=n,a=e.options?.fieldSpecific?.placeholder,y={control:l,errors:i,fieldConfig:{...e,label:e.label||o},t:r,placeholder:a,onChange:p(()=>{})},u=v.getControlledComponent(e.type);return u?t(u,{...y}):(C(new Error(`Unregistered field type: ${e.type}`),{userMessage:r("errors.unsupportedFieldType",{type:e.type}),context:{fieldName:o,fieldType:e.type},severity:"warning"}),t(T,{...y,fieldConfig:{...e,type:"text"}}))}const b=s&&d?{name:o,config:e,t:r,value:void 0,onChange:()=>{},error:void 0}:n,{value:f,onChange:x,error:c}=b,g=p(x),m=v.getUncontrolledComponent(e.type);return m?t(m,{name:o,label:e.label||o,value:f,onChange:g,error:c,t:r,config:e,...e.options}):t(w,{label:e.label||o,value:f,onChange:g,error:c||void 0,...e.options})}var E=h;export{h as FormFieldRenderer,E as default};
1
+ "use client";import{jsx as n}from"react/jsx-runtime";import{handleError as C}from"@donotdev/core";import{getFieldRegistry as F}from"../FieldRegistry";import{ControlledTextField as T}from"./controlled";import{TextFieldComponent as w}from"./form/fields";const v=F();function h({name:r,config:e,t,...o}){const p=l=>i=>{try{l(i)}catch(a){C(a,{userMessage:`Error updating field ${e.label||r}`,context:{fieldName:r,fieldType:e.type},severity:"warning"})}},s="control"in o&&o.control,d=e.type==="submit"||e.type==="reset";if(s&&!d){const{control:l,errors:i}=o,a=e.options?.fieldSpecific?.placeholder,y={control:l,errors:i,fieldConfig:{...e,label:e.label||r},t,placeholder:a,onChange:p(()=>{})},u=v.getControlledComponent(e.type);return u?n(u,{...y}):(C(new Error(`Unregistered field type: ${e.type}`),{userMessage:t("errors.unsupportedFieldType",{type:e.type}),context:{fieldName:r,fieldType:e.type},severity:"warning"}),n(T,{...y,fieldConfig:{...e,type:"text"}}))}const b=s&&d?{name:r,config:e,t,value:void 0,onChange:()=>{},error:void 0}:o,{value:f,onChange:x,error:c}=b,g=p(x),m=v.getUncontrolledComponent(e.type);return m?n(m,{name:r,label:e.label||r,value:f,onChange:g,error:c,t,config:e,...e.options}):n(w,{label:e.label||r,value:f,onChange:g,error:c||void 0,...e.options})}var E=h;export{h as FormFieldRenderer,E as default};
@@ -1 +1 @@
1
- "use client";import{jsx as d,jsxs as i,Fragment as N}from"react/jsx-runtime";import{useState as w}from"react";import{FormProvider as C}from"react-hook-form";import{Button as s,BUTTON_VARIANT as j,Spinner as k,cn as z,Stack as a,Grid as A}from"@donotdev/components";import{useTranslation as B}from"@donotdev/core";const F=({title:c,onSubmit:m,children:g,formMethods:f,loading:n=!1,submitText:u,cancelText:v,showCancel:p=!1,onCancel:h,variant:o="default",columns:b=1,description:t})=>{const{t:e}=B("crud"),[r,l]=w(!1),y=u||e("form.submit","Submit"),x=v||e("form.cancel","Cancel"),S=async T=>{l(!0);try{await m(T)}finally{l(!1)}},L={1:"dndev-grid-cols-1",2:"dndev-grid-cols-1 dndev-md:grid-cols-2",3:"dndev-grid-cols-1 dndev-md:grid-cols-2 dndev-md:grid-cols-3",4:"dndev-grid-cols-1 dndev-md:grid-cols-2 dndev-md:grid-cols-4"};return d(C,{...f,children:d("form",{onSubmit:S,className:z("dndev-mx-auto",{default:"dndev-surface",card:"dndev-surface",minimal:""}[o]),style:o!=="minimal"?{padding:"var(--gap-lg)"}:void 0,role:"form","aria-labelledby":"form-title",noValidate:!0,children:i(a,{gap:"large",children:[i(a,{gap:"tight",children:[d("h2",{id:"form-title",style:{fontSize:"var(--font-size-2xl)",fontWeight:600,color:"var(--foreground)"},children:c}),t&&d("p",{style:{color:"var(--muted-foreground)"},children:t})]}),d(A,{cols:b,className:"dndev-w-full dndev-min-w-0",children:g}),i(a,{direction:"row",align:"center",justify:"end",style:{paddingTop:"var(--gap-md)",borderTop:"1px solid var(--border)"},children:[p&&d(s,{type:"button",variant:j.OUTLINE,onClick:h,disabled:n||r,children:x}),d(s,{type:"submit",disabled:n||r,style:{minWidth:"120px"},children:n||r?i(N,{children:[d(k,{className:"me-component-gap"}),r?e("form.submitting","Submitting..."):e("form.loading","Loading...")]}):y})]})]})})})};var I=F;export{I as default};
1
+ "use client";import{jsx as d,jsxs as i,Fragment as N}from"react/jsx-runtime";import{useState as w}from"react";import{FormProvider as C}from"react-hook-form";import{Button as s,BUTTON_VARIANT as j,Spinner as k,cn as z,Stack as a,Grid as A}from"@donotdev/components";import{useTranslation as B}from"@donotdev/core";const F=({title:c,onSubmit:m,children:g,formMethods:f,loading:n=!1,submitText:u,cancelText:v,showCancel:p=!1,onCancel:h,variant:o="default",columns:b=1,description:l})=>{const{t:e}=B("crud"),[r,t]=w(!1),y=u||e("form.submit","Submit"),x=v||e("form.cancel","Cancel"),S=async T=>{t(!0);try{await m(T)}finally{t(!1)}},L={1:"dndev-grid-cols-1",2:"dndev-grid-cols-1 dndev-md:grid-cols-2",3:"dndev-grid-cols-1 dndev-md:grid-cols-2 dndev-md:grid-cols-3",4:"dndev-grid-cols-1 dndev-md:grid-cols-2 dndev-md:grid-cols-4"};return d(C,{...f,children:d("form",{onSubmit:S,className:z("dndev-mx-auto",{default:"dndev-surface",card:"dndev-surface",minimal:""}[o]),style:o!=="minimal"?{padding:"var(--gap-lg)"}:void 0,role:"form","aria-labelledby":"form-title",noValidate:!0,children:i(a,{gap:"large",children:[i(a,{gap:"tight",children:[d("h2",{id:"form-title",style:{fontSize:"var(--font-size-2xl)",fontWeight:600,color:"var(--foreground)"},children:c}),l&&d("p",{style:{color:"var(--muted-foreground)"},children:l})]}),d(A,{cols:b,className:"dndev-w-full dndev-min-w-0",children:g}),i(a,{direction:"row",align:"center",justify:"end",style:{paddingTop:"var(--gap-md)",borderTop:"1px solid var(--border)"},children:[p&&d(s,{type:"button",variant:j.OUTLINE,onClick:h,disabled:n||r,children:x}),d(s,{type:"submit",disabled:n||r,style:{minWidth:"120px"},children:n||r?i(N,{children:[d(k,{className:"me-component-gap"}),r?e("form.submitting","Submitting..."):e("form.loading","Loading...")]}):y})]})]})})})};var I=F;export{I as default};
@@ -1 +1 @@
1
- "use client";import{jsx as l}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{DateFieldComponent as f}from"../../form/fields";import{convertValidationRules as C}from"../types";function h(a){const{control:n,errors:t,fieldConfig:i,t:m}=a,{name:e,label:d,validation:o,type:s}=i,u={date:"date","datetime-local":"datetime-local",month:"month",time:"time",week:"week"}[s]||"date";return l(p,{name:e,control:n,rules:o?C(o):void 0,render:({field:r})=>l(f,{...r,label:m(d),value:r.value??null,onChange:c=>r.onChange(c),error:!!t[e],helperText:t[e]?.message,required:o?.required,mode:u})})}export{h as ControlledDateField};
1
+ "use client";import{jsx as r}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{DateFieldComponent as c}from"../../form/fields";import{convertValidationRules as C}from"../types";function h(a){const{control:n,errors:l,fieldConfig:i,t:m}=a,{name:e,label:d,validation:o,type:s}=i,u={date:"date","datetime-local":"datetime-local",month:"month",time:"time",week:"week"}[s]||"date";return r(p,{name:e,control:n,rules:o?C(o):void 0,render:({field:t})=>r(c,{...t,label:m(d),value:t.value??null,onChange:f=>t.onChange(f),error:!!l[e],helperText:l[e]?.message,required:o?.required,mode:u})})}export{h as ControlledDateField};
@@ -1 +1 @@
1
- "use client";import{jsxs as r,jsx as i}from"react/jsx-runtime";import{Plus as $,Trash2 as q}from"lucide-react";import{useFieldArray as B,Controller as D}from"react-hook-form";import{Button as y}from"@donotdev/components";import{getFieldRegistry as I}from"../../../FieldRegistry";import{convertValidationRules as R}from"../types";function j(s){switch(s){case"number":return 0;case"boolean":return!1;default:return""}}function A(s){const{control:d,errors:h,fieldConfig:c,t:n}=s,{name:m,label:f,validation:x}=c,v=c.options?.fieldSpecific??{},o=v.fields??[],l=v.direction??"row",{fields:b,append:C,remove:w}=B({control:d,name:m}),S=I(),z=()=>{if(o.length===0)return;const a={};for(const t of o)a[t.name]=j(t.type);C(a)};return o.length===0?r("div",{style:{fontSize:"var(--font-size-sm)",color:"var(--muted-foreground)"},children:[n(f),": no sub-fields configured"]}):r("div",{style:{display:"flex",flexDirection:"column",gap:"var(--gap-sm)"},children:[r("div",{style:{display:"flex",alignItems:"center",gap:"var(--gap-sm)"},children:[r("span",{style:{fontSize:"var(--font-size-sm)",fontWeight:"var(--font-weight-medium)"},children:[n(f),x?.required&&i("span",{style:{color:"var(--destructive)",marginInlineStart:"var(--gap-tight)"},children:"*"})]}),i(y,{type:"button",variant:"ghost",display:"compact",icon:$,onClick:z,"aria-label":n(f)+" \u2014 add"})]}),b.map((a,t)=>r("div",{style:{display:"flex",flexDirection:l,gap:"var(--gap-sm)",alignItems:l==="row"?"flex-start":void 0},children:[o.map(e=>{const u=`${m}.${t}.${e.name}`,F={name:u,type:e.type,label:e.label,visibility:c.visibility,validation:{...e.validation??{},...e.required?{required:!0}:{}},options:e.options??{}},g=S.getControlledComponent(e.type);return g?i("div",{style:{flex:l==="row"?1:void 0},children:i(g,{control:d,errors:h,fieldConfig:F,t:n})},e.name):i("div",{style:{flex:l==="row"?1:void 0},children:i(D,{name:u,control:d,rules:e.validation?R(e.validation):void 0,render:({field:p})=>r("label",{style:{display:"flex",flexDirection:"column",gap:"var(--gap-tight)"},children:[i("span",{style:{fontSize:"var(--font-size-xs)"},children:n(e.label)}),i("input",{className:"dndev-input",value:String(p.value??""),onChange:p.onChange,onBlur:p.onBlur})]})})},e.name)}),i(y,{type:"button",variant:"ghost",display:"compact",icon:q,onClick:()=>w(t),"aria-label":`Remove row ${t+1}`,style:{alignSelf:l==="row"?"center":"flex-end"}})]},a.id))]})}export{A as ControlledFieldArrayField};
1
+ "use client";import{jsxs as t,jsx as i}from"react/jsx-runtime";import{Plus as $,Trash2 as q}from"lucide-react";import{useFieldArray as B,Controller as D}from"react-hook-form";import{Button as y}from"@donotdev/components";import{getFieldRegistry as I}from"../../../FieldRegistry";import{convertValidationRules as R}from"../types";function j(s){switch(s){case"number":return 0;case"boolean":return!1;default:return""}}function A(s){const{control:d,errors:h,fieldConfig:c,t:r}=s,{name:p,label:f,validation:x}=c,v=c.options?.fieldSpecific??{},o=v.fields??[],l=v.direction??"row",{fields:b,append:C,remove:w}=B({control:d,name:p}),S=I(),z=()=>{if(o.length===0)return;const a={};for(const n of o)a[n.name]=j(n.type);C(a)};return o.length===0?t("div",{style:{fontSize:"var(--font-size-sm)",color:"var(--muted-foreground)"},children:[r(f),": no sub-fields configured"]}):t("div",{style:{display:"flex",flexDirection:"column",gap:"var(--gap-sm)"},children:[t("div",{style:{display:"flex",alignItems:"center",gap:"var(--gap-sm)"},children:[t("span",{style:{fontSize:"var(--font-size-sm)",fontWeight:"var(--font-weight-medium)"},children:[r(f),x?.required&&i("span",{style:{color:"var(--destructive)",marginInlineStart:"var(--gap-tight)"},children:"*"})]}),i(y,{type:"button",variant:"ghost",display:"compact",icon:$,onClick:z,"aria-label":r(f)+" \u2014 add"})]}),b.map((a,n)=>t("div",{style:{display:"flex",flexDirection:l,gap:"var(--gap-sm)",alignItems:l==="row"?"flex-start":void 0},children:[o.map(e=>{const u=`${p}.${n}.${e.name}`,F={name:u,type:e.type,label:e.label,visibility:c.visibility,validation:{...e.validation??{},...e.required?{required:!0}:{}},options:e.options??{}},g=S.getControlledComponent(e.type);return g?i("div",{style:{flex:l==="row"?1:void 0},children:i(g,{control:d,errors:h,fieldConfig:F,t:r})},e.name):i("div",{style:{flex:l==="row"?1:void 0},children:i(D,{name:u,control:d,rules:e.validation?R(e.validation):void 0,render:({field:m})=>t("label",{style:{display:"flex",flexDirection:"column",gap:"var(--gap-tight)"},children:[i("span",{style:{fontSize:"var(--font-size-xs)"},children:r(e.label)}),i("input",{className:"dndev-input",value:String(m.value??""),onChange:m.onChange,onBlur:m.onBlur})]})})},e.name)}),i(y,{type:"button",variant:"ghost",display:"compact",icon:q,onClick:()=>w(n),"aria-label":`Remove row ${n+1}`,style:{alignSelf:l==="row"?"center":"flex-end"}})]},a.id))]})}export{A as ControlledFieldArrayField};
@@ -1 +1 @@
1
- "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{MapFieldComponent as f}from"../../form/fields";import{convertValidationRules as g}from"../types";function C(l){const{control:i,errors:a,fieldConfig:s,t:m}=l,{name:r,label:d,validation:o}=s;return t(p,{name:r,control:i,rules:o?g(o):void 0,render:({field:e})=>{const u=n=>{if("target"in n)try{const c=JSON.parse(n.target.value);e.onChange(c)}catch{e.onChange({})}else e.onChange(n||{})};return t(f,{label:m(d),value:e.value||{},onChange:u,error:!!a[r],helperText:a[r]?.message,required:o?.required})}})}export{C as ControlledMapField};
1
+ "use client";import{jsx as n}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{MapFieldComponent as f}from"../../form/fields";import{convertValidationRules as g}from"../types";function C(l){const{control:i,errors:a,fieldConfig:s,t:m}=l,{name:r,label:d,validation:o}=s;return n(p,{name:r,control:i,rules:o?g(o):void 0,render:({field:e})=>{const u=t=>{if("target"in t)try{const c=JSON.parse(t.target.value);e.onChange(c)}catch{e.onChange({})}else e.onChange(t||{})};return n(f,{label:m(d),value:e.value||{},onChange:u,error:!!a[r],helperText:a[r]?.message,required:o?.required})}})}export{C as ControlledMapField};
@@ -1 +1 @@
1
- "use client";import{jsx as a}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{MultiInputTextFieldComponent as f}from"../../form/fields";import{convertValidationRules as C}from"../types";function v(t){const{control:l,errors:g,fieldConfig:i,t:s}=t,{name:u,label:m,validation:r,options:c={}}=i;return a(p,{name:u,control:l,rules:r?C(r):void 0,render:({field:e})=>{const d=o=>{if(Array.isArray(o))e.onChange(o);else try{const n=JSON.parse(o.target.value);e.onChange(Array.isArray(n)?n:[])}catch{e.onChange([])}};return a(f,{label:s(m),value:Array.isArray(e.value)?e.value:[],onChange:d,required:r?.required,className:c.className})}})}export{v as ControlledMultiInputField};
1
+ "use client";import{jsx as n}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{MultiInputTextFieldComponent as f}from"../../form/fields";import{convertValidationRules as C}from"../types";function v(t){const{control:l,errors:g,fieldConfig:i,t:s}=t,{name:u,label:m,validation:e,options:c={}}=i;return n(p,{name:u,control:l,rules:e?C(e):void 0,render:({field:r})=>{const d=a=>{if(Array.isArray(a))r.onChange(a);else try{const o=JSON.parse(a.target.value);r.onChange(Array.isArray(o)?o:[])}catch{r.onChange([])}};return n(f,{label:s(m),value:Array.isArray(r.value)?r.value:[],onChange:d,required:e?.required,className:c.className})}})}export{v as ControlledMultiInputField};
@@ -1 +1 @@
1
- "use client";import{jsx as n}from"react/jsx-runtime";import{Controller as u}from"react-hook-form";import{TimestampFieldComponent as p}from"../../form/fields";import{convertValidationRules as f}from"../types";function c(t){const{control:i,errors:l,fieldConfig:a,t:m}=t,{name:e,label:s,validation:r}=a;return n(u,{name:e,control:i,rules:r?f(r):void 0,render:({field:o})=>n(p,{...o,label:m(s),value:o.value??null,onChange:d=>o.onChange(d),error:!!l[e],helperText:l[e]?.message,required:r?.required})})}export{c as ControlledTimestampField};
1
+ "use client";import{jsx as n}from"react/jsx-runtime";import{Controller as u}from"react-hook-form";import{TimestampFieldComponent as p}from"../../form/fields";import{convertValidationRules as f}from"../types";function c(a){const{control:i,errors:l,fieldConfig:t,t:m}=a,{name:e,label:s,validation:r}=t;return n(u,{name:e,control:i,rules:r?f(r):void 0,render:({field:o})=>n(p,{...o,label:m(s),value:o.value??null,onChange:d=>o.onChange(d),error:!!l[e],helperText:l[e]?.message,required:r?.required})})}export{c as ControlledTimestampField};
@@ -1 +1 @@
1
- "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{DocumentFieldComponent as c}from"../../form/fields";import{convertValidationRules as f}from"../types";function g(i){const{control:m,errors:r,fieldConfig:l,t:s}=i,{name:e,label:u,validation:o}=l,n=l.options||{};return t(p,{name:e,control:m,rules:o?f(o):void 0,render:({field:a})=>t(c,{name:e,label:s(u),value:a.value??null,onChange:d=>a.onChange(d),error:!!r[e],helperText:r[e]?.message,required:o?.required,multiple:!1,maxFiles:1,maxSize:n.maxSize,storagePath:n.storagePath})})}export{g as ControlledDocumentField};
1
+ "use client";import{jsx as a}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{DocumentFieldComponent as c}from"../../form/fields";import{convertValidationRules as f}from"../types";function g(i){const{control:m,errors:r,fieldConfig:l,t:s}=i,{name:e,label:u,validation:o}=l,n=l.options||{};return a(p,{name:e,control:m,rules:o?f(o):void 0,render:({field:t})=>a(c,{name:e,label:s(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:n.maxSize,storagePath:n.storagePath})})}export{g as ControlledDocumentField};
@@ -1 +1 @@
1
- "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{ImageFieldComponent as f}from"../../form/fields";import{convertValidationRules as g}from"../types";function c(i){const{control:m,errors:r,fieldConfig:a,t:s}=i,{name:e,label:u,validation:o}=a,l=a.options||{};return t(p,{name:e,control:m,rules:o?g(o):void 0,render:({field:n})=>t(f,{name:e,label:s(u),value:n.value??null,onChange:d=>n.onChange(d),error:!!r[e],helperText:r[e]?.message,required:o?.required,multiple:!1,maxFiles:1,maxSize:l.maxSize,storagePath:l.storagePath})})}export{c as ControlledImageField};
1
+ "use client";import{jsx as n}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{ImageFieldComponent as f}from"../../form/fields";import{convertValidationRules as g}from"../types";function c(i){const{control:m,errors:r,fieldConfig:a,t:s}=i,{name:e,label:u,validation:o}=a,l=a.options||{};return n(p,{name:e,control:m,rules:o?g(o):void 0,render:({field:t})=>n(f,{name:e,label:s(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{c as ControlledImageField};
@@ -1 +1 @@
1
- "use client";import{jsx as n}from"react/jsx-runtime";import{Controller as f}from"react-hook-form";import{DocumentFieldComponent as p}from"../../form/fields";import{convertValidationRules as v}from"../types";function x(i){const{control:m,errors:l,fieldConfig:t,t:s}=i,{name:r,label:u,validation:o}=t,a=t.options||{};return n(f,{name:r,control:m,rules:o?v(o):void 0,render:({field:e})=>{const d=Array.isArray(e.value)?e.value:e.value?[e.value]:null;return n(p,{name:r,label:s(u),value:d,onChange:c=>e.onChange(c),error:!!l[r],helperText:l[r]?.message,required:o?.required,multiple:!0,maxFiles:a.maxFiles??10,maxSize:a.maxSize,storagePath:a.storagePath})}})}export{x as ControlledMultiDocumentField};
1
+ "use client";import{jsx as n}from"react/jsx-runtime";import{Controller as c}from"react-hook-form";import{DocumentFieldComponent as f}from"../../form/fields";import{convertValidationRules as v}from"../types";function x(i){const{control:m,errors:l,fieldConfig:t,t:s}=i,{name:r,label:u,validation:o}=t,a=t.options||{};return n(c,{name:r,control:m,rules:o?v(o):void 0,render:({field:e})=>{const d=Array.isArray(e.value)?e.value:e.value?[e.value]:null;return n(f,{name:r,label:s(u),value:d,onChange:p=>e.onChange(p),error:!!l[r],helperText:l[r]?.message,required:o?.required,multiple:!0,maxFiles:a.maxFiles??10,maxSize:a.maxSize,storagePath:a.storagePath})}})}export{x as ControlledMultiDocumentField};
@@ -1 +1 @@
1
- "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as v}from"react-hook-form";import{FileFieldComponent as c}from"../../form/fields";import{convertValidationRules as f}from"../types";function x(n){const{control:s,errors:a,fieldConfig:i,t:m}=n,{name:r,label:u,validation:o}=i,l=i.options||{};return t(v,{name:r,control:s,rules:o?f(o):void 0,render:({field:e})=>{const d=Array.isArray(e.value)?e.value:e.value?[e.value]:null;return t(c,{name:r,label:m(u),value:d,onChange:p=>e.onChange(p),error:!!a[r],helperText:a[r]?.message,required:o?.required,multiple:!0,maxFiles:l.maxFiles??10,maxSize:l.maxSize,storagePath:l.storagePath})}})}export{x as ControlledMultiFileField};
1
+ "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{FileFieldComponent as v}from"../../form/fields";import{convertValidationRules as c}from"../types";function x(n){const{control:s,errors:a,fieldConfig:i,t:m}=n,{name:r,label:u,validation:o}=i,l=i.options||{};return t(p,{name:r,control:s,rules:o?c(o):void 0,render:({field:e})=>{const d=Array.isArray(e.value)?e.value:e.value?[e.value]:null;return t(v,{name:r,label:m(u),value:d,onChange:f=>e.onChange(f),error:!!a[r],helperText:a[r]?.message,required:o?.required,multiple:!0,maxFiles:l.maxFiles??10,maxSize:l.maxSize,storagePath:l.storagePath})}})}export{x as ControlledMultiFileField};
@@ -1 +1 @@
1
- "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as c}from"react-hook-form";import{ImageFieldComponent as f}from"../../form/fields";import{convertValidationRules as g}from"../types";function v(n){const{control:m,errors:l,fieldConfig:i,t:s}=n,{name:r,label:u,validation:o}=i,a=i.options||{};return t(c,{name:r,control:m,rules:o?g(o):void 0,render:({field:e})=>{const d=Array.isArray(e.value)?e.value:e.value?[e.value]:null;return t(f,{name:r,label:s(u),value:d,onChange:p=>e.onChange(p),error:!!l[r],helperText:l[r]?.message,required:o?.required,multiple:!0,maxFiles:a.maxFiles??10,maxSize:a.maxSize,storagePath:a.fieldSpecific?.storagePath})}})}export{v as ControlledMultiImageField};
1
+ "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{ImageFieldComponent as c}from"../../form/fields";import{convertValidationRules as g}from"../types";function v(n){const{control:m,errors:l,fieldConfig:i,t:s}=n,{name:r,label:u,validation:o}=i,a=i.options||{};return t(p,{name:r,control:m,rules:o?g(o):void 0,render:({field:e})=>{const d=Array.isArray(e.value)?e.value:e.value?[e.value]:null;return t(c,{name:r,label:s(u),value:d,onChange:f=>e.onChange(f),error:!!l[r],helperText:l[r]?.message,required:o?.required,multiple:!0,maxFiles:a.maxFiles??10,maxSize:a.maxSize,storagePath:a.fieldSpecific?.storagePath})}})}export{v as ControlledMultiImageField};
@@ -1 +1 @@
1
- "use client";import{jsx as n}from"react/jsx-runtime";import{Controller as m}from"react-hook-form";import{CheckboxFieldComponent as f}from"../../form/fields";import{convertValidationRules as u}from"../types";function C(t){const{control:l,errors:p,fieldConfig:i,t:a}=t,{name:d,label:e,validation:o}=i,c=typeof e=="string"?a(e):e;return n(m,{name:d,control:l,rules:o?u(o):void 0,render:({field:r})=>n(f,{label:c,checked:!!r.value,onChange:s=>r.onChange(s.target.checked),required:o?.required})})}export{C as ControlledCheckboxField};
1
+ "use client";import{jsx as n}from"react/jsx-runtime";import{Controller as s}from"react-hook-form";import{CheckboxFieldComponent as f}from"../../form/fields";import{convertValidationRules as u}from"../types";function C(t){const{control:l,errors:p,fieldConfig:i,t:a}=t,{name:d,label:e,validation:o}=i,c=typeof e=="string"?a(e):e;return n(s,{name:d,control:l,rules:o?u(o):void 0,render:({field:r})=>n(f,{label:c,checked:!!r.value,onChange:m=>r.onChange(m.target.checked),required:o?.required})})}export{C as ControlledCheckboxField};
@@ -1 +1 @@
1
- "use client";import{jsx as u}from"react/jsx-runtime";import{Controller as h}from"react-hook-form";import{CurrencyFieldComponent as g}from"../../form/fields";import{convertValidationRules as y}from"../types";function N(c){const{control:s,errors:n,fieldConfig:a,t:d,placeholder:m}=c,{name:o,label:p,validation:l}=a,t=(a.options||{}).fieldSpecific;return u(h,{name:o,control:s,rules:l?y(l):void 0,render:({field:e})=>{const f=v=>{const r=v.target.value;if(r==null||r===""){e.onChange(null);return}const i=typeof r=="number"?r/100:parseFloat(String(r))/100;isNaN(i)?e.onChange(null):e.onChange(i)},C=e.value!=null&&!isNaN(e.value)?Math.round(e.value*100):void 0;return u(g,{label:d(p),value:C,onChange:f,currency:t?.currency||"EUR",locale:t?.locale,error:!!n[o],helperText:n[o]?.message,required:l?.required,placeholder:m})}})}export{N as ControlledCurrencyField};
1
+ "use client";import{jsx as u}from"react/jsx-runtime";import{Controller as h}from"react-hook-form";import{CurrencyFieldComponent as v}from"../../form/fields";import{convertValidationRules as y}from"../types";function N(c){const{control:s,errors:n,fieldConfig:a,t:d,placeholder:m}=c,{name:o,label:p,validation:l}=a,t=(a.options||{}).fieldSpecific;return u(h,{name:o,control:s,rules:l?y(l):void 0,render:({field:e})=>{const f=g=>{const r=g.target.value;if(r==null||r===""){e.onChange(null);return}const i=typeof r=="number"?r/100:parseFloat(String(r))/100;isNaN(i)?e.onChange(null):e.onChange(i)},C=e.value!=null&&!isNaN(e.value)?Math.round(e.value*100):void 0;return u(v,{label:d(p),value:C,onChange:f,currency:t?.currency||"EUR",locale:t?.locale,error:!!n[o],helperText:n[o]?.message,required:l?.required,placeholder:m})}})}export{N as ControlledCurrencyField};
@@ -1 +1 @@
1
- "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as f}from"react-hook-form";import{DurationFieldComponent as p}from"../../form/fields";import{convertValidationRules as c}from"../types";function C(s){const{control:d,errors:l,fieldConfig:a,t:n}=s,{name:e,label:m,validation:o}=a,r=(a.options||{}).fieldSpecific;return t(f,{name:e,control:d,rules:o?c(o):void 0,render:({field:i})=>t(p,{label:n(m),value:i.value??0,onChange:u=>i.onChange(u),error:!!l[e],helperText:l[e]?.message,required:o?.required,disabled:i.disabled,min:r?.min??0,max:r?.max??480,step:r?.step??5,t:n})})}export{C as ControlledDurationField};
1
+ "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as f}from"react-hook-form";import{DurationFieldComponent as u}from"../../form/fields";import{convertValidationRules as c}from"../types";function C(s){const{control:d,errors:i,fieldConfig:l,t:a}=s,{name:e,label:m,validation:o}=l,r=(l.options||{}).fieldSpecific;return t(f,{name:e,control:d,rules:o?c(o):void 0,render:({field:n})=>t(u,{label:a(m),value:n.value??0,onChange:p=>n.onChange(p),error:!!i[e],helperText:i[e]?.message,required:o?.required,disabled:n.disabled,min:r?.min??0,max:r?.max??480,step:r?.step??5,t:a})})}export{C as ControlledDurationField};
@@ -1 +1 @@
1
- "use client";import{jsx as n}from"react/jsx-runtime";import{Controller as C}from"react-hook-form";import{GdprConsentFieldComponent as u}from"../../form/fields";import{convertValidationRules as h}from"../types";function v(i){const{control:a,errors:y,fieldConfig:l}=i,{name:s,validation:o,options:c={}}=l,r=c.fieldSpecific,d=r?.privacyPolicyPath||"/legal/privacy",p=r?.termsPath||"/legal/terms";return n(C,{name:s,control:a,rules:o?h(o):void 0,render:({field:t})=>{const e=t.value,m=typeof e=="object"&&e!==null?!!e.gdprConsent:!!e;return n(u,{checked:m,onChange:g=>{if(g.target.checked){const f=new Date().toISOString().split("T")[0];t.onChange({gdprConsent:!0,gdprConsentDate:new Date().toISOString(),gdprConsentVersion:f})}else t.onChange(!1)},required:o?.required,privacyPolicyPath:d,termsPath:p})}})}export{v as ControlledGdprConsentField};
1
+ "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as g}from"react-hook-form";import{GdprConsentFieldComponent as u}from"../../form/fields";import{convertValidationRules as h}from"../types";function v(i){const{control:a,errors:y,fieldConfig:l}=i,{name:s,validation:o,options:c={}}=l,r=c.fieldSpecific,d=r?.privacyPolicyPath||"/legal/privacy",p=r?.termsPath||"/legal/terms";return t(g,{name:s,control:a,rules:o?h(o):void 0,render:({field:n})=>{const e=n.value,m=typeof e=="object"&&e!==null?!!e.gdprConsent:!!e;return t(u,{checked:m,onChange:C=>{if(C.target.checked){const f=new Date().toISOString().split("T")[0];n.onChange({gdprConsent:!0,gdprConsentDate:new Date().toISOString(),gdprConsentVersion:f})}else n.onChange(!1)},required:o?.required,privacyPolicyPath:d,termsPath:p})}})}export{v as ControlledGdprConsentField};
@@ -1 +1 @@
1
- "use client";import{jsx as m}from"react/jsx-runtime";import{Controller as g}from"react-hook-form";import{NumberFieldComponent as v}from"../../form/fields";import{convertValidationRules as C}from"../types";function h(u){const{control:c,errors:n,fieldConfig:t,t:d,placeholder:N}=u,{name:o,label:p,validation:e}=t,i=t.options||{},a=i.fieldSpecific;return m(g,{name:o,control:c,rules:e?C(e):void 0,render:({field:r})=>{const f=l=>{if(l.target.value===""||l.target.value===null){r.onChange(null);return}try{const s=parseFloat(l.target.value);isNaN(s)||r.onChange(s)}catch{r.onChange(0)}};return m(v,{...r,label:d(p),value:r.value??void 0,onChange:f,error:!!n[o],helperText:n[o]?.message,required:e?.required,min:e?.min,max:e?.max,step:a?.mask==="currency"?.01:a?.mask==="mileage"?1:void 0,mask:a?.mask||"number",className:i.className})}})}export{h as ControlledNumberField};
1
+ "use client";import{jsx as m}from"react/jsx-runtime";import{Controller as g}from"react-hook-form";import{NumberFieldComponent as v}from"../../form/fields";import{convertValidationRules as C}from"../types";function h(u){const{control:c,errors:t,fieldConfig:l,t:d,placeholder:N}=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:a})=>{const f=n=>{if(n.target.value===""||n.target.value===null){a.onChange(null);return}try{const s=parseFloat(n.target.value);isNaN(s)||a.onChange(s)}catch{a.onChange(0)}};return m(v,{...a,label:d(p),value:a.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{h as ControlledNumberField};
@@ -1 +1 @@
1
- "use client";import{jsx as l}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{PhoneNumberComponent as f}from"../../form/fields";import{convertValidationRules as p}from"../types";function c(a){const{control:t,errors:n,fieldConfig:i,t:s}=a,{name:e,label:m,validation:r}=i;return l(d,{name:e,control:t,rules:r?p(r):void 0,render:({field:o})=>l(f,{label:s(m),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{c as ControlledPhoneField};
1
+ "use client";import{jsx as l}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{PhoneNumberComponent as f}from"../../form/fields";import{convertValidationRules as p}from"../types";function c(t){const{control:a,errors:n,fieldConfig:i,t:s}=t,{name:e,label:m,validation:r}=i;return l(d,{name:e,control:a,rules:r?p(r):void 0,render:({field:o})=>l(f,{label:s(m),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{c as ControlledPhoneField};
@@ -1 +1 @@
1
- "use client";import{jsx as t}from"react/jsx-runtime";import{Controller as f}from"react-hook-form";import{RangeFieldComponent as c}from"../../form/fields";import{convertValidationRules as g}from"../types";function v(m){const{control:s,errors:n,fieldConfig:l,t:u}=m,{name:o,label:d,validation:e}=l,i=l.options||{},p=i.fieldSpecific;return t(f,{name:o,control:s,rules:e?g(e):void 0,render:({field:r})=>t(c,{label:u(d),value:r.value??void 0,onChange:a=>{typeof a=="number"?r.onChange(a):r.onChange(Number(a.target.value)||0)},error:!!n[o],helperText:n[o]?.message,required:e?.required,min:e?.min,max:e?.max,step:i.step,showValue:p?.showValue})})}export{v as ControlledRangeField};
1
+ "use client";import{jsx as a}from"react/jsx-runtime";import{Controller as f}from"react-hook-form";import{RangeFieldComponent as c}from"../../form/fields";import{convertValidationRules as g}from"../types";function v(s){const{control:m,errors:l,fieldConfig:i,t:u}=s,{name:o,label:d,validation:e}=i,t=i.options||{},p=t.fieldSpecific;return a(f,{name:o,control:m,rules:e?g(e):void 0,render:({field:r})=>a(c,{label:u(d),value:r.value??void 0,onChange:n=>{typeof n=="number"?r.onChange(n):r.onChange(Number(n.target.value)||0)},error:!!l[o],helperText:l[o]?.message,required:e?.required,min:e?.min,max:e?.max,step:t.step,showValue:p?.showValue})})}export{v as ControlledRangeField};
@@ -1 +1 @@
1
- "use client";import{jsx as i}from"react/jsx-runtime";import{Controller as f}from"react-hook-form";import{RatingFieldComponent as p}from"../../form/fields";import{convertValidationRules as c}from"../types";function g(t){const{control:s,errors:r,fieldConfig:a,t:m}=t,{name:o,label:d,validation:e}=a,l=(a.options||{}).fieldSpecific;return i(f,{name:o,control:s,rules:e?c(e):void 0,render:({field:n})=>i(p,{label:m(d),value:n.value??0,onChange:u=>{n.onChange(u)},error:!!r[o],helperText:r[o]?.message,required:e?.required,max:l?.max??e?.max??5,showValue:l?.showValue})})}export{g as ControlledRatingField};
1
+ "use client";import{jsx as a}from"react/jsx-runtime";import{Controller as u}from"react-hook-form";import{RatingFieldComponent as p}from"../../form/fields";import{convertValidationRules as c}from"../types";function g(t){const{control:s,errors:r,fieldConfig:l,t:m}=t,{name:o,label:d,validation:e}=l,n=(l.options||{}).fieldSpecific;return a(u,{name:o,control:s,rules:e?c(e):void 0,render:({field:i})=>a(p,{label:m(d),value:i.value??0,onChange:f=>{i.onChange(f)},error:!!r[o],helperText:r[o]?.message,required:e?.required,max:n?.max??e?.max??5,showValue:n?.showValue})})}export{g as ControlledRatingField};
@@ -1 +1 @@
1
- "use client";import{jsx as d}from"react/jsx-runtime";import{Controller as v}from"react-hook-form";import{SwitchFieldComponent as x}from"../../form/fields";import"../types";function S(h){const{control:s,errors:m,fieldConfig:u,t:o,onChange:n}=h,{name:l,label:f,options:p={}}=u,e=p.fieldSpecific,k=e?.uncheckedValue??!1,r=e?.checkedValue??!0,t=e?.uncheckedLabel,a=e?.checkedLabel;return d(v,{name:l,control:s,render:({field:{value:g,onChange:C}})=>{const b=g===r,L=c=>{const i=c?r:k;C(i),n&&n(i)};return d(x,{label:o(f),checked:b,onChange:c=>L(c.target.checked),uncheckedLabel:t?o(t):void 0,checkedLabel:a?o(a):void 0,helperText:m[l]?.message})}})}export{S as ControlledSwitchField};
1
+ "use client";import{jsx as d}from"react/jsx-runtime";import{Controller as v}from"react-hook-form";import{SwitchFieldComponent as x}from"../../form/fields";import"../types";function S(h){const{control:s,errors:m,fieldConfig:u,t:o,onChange:c}=h,{name:l,label:f,options:p={}}=u,e=p.fieldSpecific,k=e?.uncheckedValue??!1,r=e?.checkedValue??!0,t=e?.uncheckedLabel,a=e?.checkedLabel;return d(v,{name:l,control:s,render:({field:{value:b,onChange:C}})=>{const g=b===r,L=n=>{const i=n?r:k;C(i),c&&c(i)};return d(x,{label:o(f),checked:g,onChange:n=>L(n.target.checked),uncheckedLabel:t?o(t):void 0,checkedLabel:a?o(a):void 0,helperText:m[l]?.message})}})}export{S as ControlledSwitchField};
@@ -1 +1 @@
1
- "use client";import{jsx as n}from"react/jsx-runtime";import{Controller as c}from"react-hook-form";import{TextFieldComponent as u}from"../../form/fields";import{convertValidationRules as h}from"../types";function C(i){const{control:s,errors:t,fieldConfig:e,t:m,placeholder:p}=i,{name:r,label:d,validation:o,options:l={}}=e;return n(c,{name:r,control:s,rules:o?h(o):void 0,render:({field:a})=>n(u,{...a,label:m(d),value:a.value??"",onChange:a.onChange,error:t[r]?.message,helperText:t[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{C as ControlledTextField};
1
+ "use client";import{jsx as n}from"react/jsx-runtime";import{Controller as c}from"react-hook-form";import{TextFieldComponent as u}from"../../form/fields";import{convertValidationRules as h}from"../types";function C(s){const{control:i,errors:a,fieldConfig:e,t:m,placeholder:p}=s,{name:r,label:d,validation:o,options:l={}}=e;return n(c,{name:r,control:i,rules:o?h(o):void 0,render:({field:t})=>n(u,{...t,label:m(d),value:t.value??"",onChange:t.onChange,error:a[r]?.message,helperText:a[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{C as ControlledTextField};
@@ -1 +1 @@
1
- "use client";import{jsx as h}from"react/jsx-runtime";import{useMemo as C}from"react";import{Controller as q,useWatch as B,useFormContext as F}from"react-hook-form";import{translateLabel as P}from"../../../forms/utils";import{ComboboxComponent as j}from"../../form/fields";import{convertValidationRules as D}from"../types";function S(g){const{control:d,errors:p,fieldConfig:t,t:l,placeholder:v}=g,{name:a,label:x,validation:o,options:u={}}=t,m=F()?.setValue,r=B({control:d}),n="dependsOn"in t?t.dependsOn:void 0,O=n&&r?r[n.field]:void 0,c=C(()=>{const e=o?.options;return e?typeof e=="function"?e(r||{}):e:[]},[o?.options,r,O]),y=C(()=>c.map(e=>({...e,label:P(e.label,l)})),[c,l]),s=u.fieldSpecific;return h(q,{name:a,control:d,rules:o?D(o):void 0,render:({field:e})=>{const V=i=>{const f=typeof i=="string"?i:i.target.value;if(e.onChange(f),n&&m&&s?.setParentOnChange){const b=s.setParentOnChange(f,r||{});b!=null&&m(n.field,b,{shouldValidate:!0,shouldDirty:!0})}};return h(j,{...e,label:l(x),value:e.value??"",onChange:V,onBlur:e.onBlur,options:y,error:!!p[a],helperText:p[a]?.message,required:o?.required,placeholder:v||u.placeholder,creatable:s?.creatable??!1})}})}export{S as ControlledComboboxField};
1
+ "use client";import{jsx as h}from"react/jsx-runtime";import{useMemo as C}from"react";import{Controller as q,useWatch as B,useFormContext as F}from"react-hook-form";import{translateLabel as P}from"../../../forms/utils";import{ComboboxComponent as j}from"../../form/fields";import{convertValidationRules as D}from"../types";function S(v){const{control:d,errors:p,fieldConfig:t,t:l,placeholder:g}=v,{name:a,label:x,validation:o,options:u={}}=t,m=F()?.setValue,r=B({control:d}),n="dependsOn"in t?t.dependsOn:void 0,O=n&&r?r[n.field]:void 0,c=C(()=>{const e=o?.options;return e?typeof e=="function"?e(r||{}):e:[]},[o?.options,r,O]),y=C(()=>c.map(e=>({...e,label:P(e.label,l)})),[c,l]),s=u.fieldSpecific;return h(q,{name:a,control:d,rules:o?D(o):void 0,render:({field:e})=>{const V=i=>{const f=typeof i=="string"?i:i.target.value;if(e.onChange(f),n&&m&&s?.setParentOnChange){const b=s.setParentOnChange(f,r||{});b!=null&&m(n.field,b,{shouldValidate:!0,shouldDirty:!0})}};return h(j,{...e,label:l(x),value:e.value??"",onChange:V,onBlur:e.onBlur,options:y,error:!!p[a],helperText:p[a]?.message,required:o?.required,placeholder:g||u.placeholder,creatable:s?.creatable??!1})}})}export{S as ControlledComboboxField};
@@ -1 +1 @@
1
- "use client";import{jsx as v}from"react/jsx-runtime";import{useMemo as g}from"react";import{Controller as D,useWatch as V,useFormContext as q}from"react-hook-form";import{translateLabel as w}from"../../../forms/utils";import{DropdownComponent as B}from"../../form/fields";import{convertValidationRules as F}from"../types";function S(C){const{control:s,errors:d,fieldConfig:t,t:l,onChange:j}=C,{name:a,label:h,validation:e,options:b={}}=t,u=q()?.setValue,n=V({control:s}),r="dependsOn"in t?t.dependsOn:void 0,x=r&&n?n[r.field]:void 0,p=g(()=>{const o=e?.options;return o?typeof o=="function"?o(n||{}):o:[]},[e?.options,n,x]),O=g(()=>p.map(o=>({...o,label:w(o.label,l)})),[p,l]),m=b.fieldSpecific;return v(D,{name:a,control:s,rules:e?F(e):void 0,render:({field:o})=>{const y=i=>{const f=typeof i=="string"?i:i.target.value;if(o.onChange(f),r&&u&&m?.setParentOnChange){const c=m.setParentOnChange(f,n||{});c!=null&&u(r.field,c,{shouldValidate:!0,shouldDirty:!0})}};return v(B,{label:l(h),value:o.value!==void 0&&o.value!==null?String(o.value):"",onChange:y,onBlur:o.onBlur,options:O,error:!!d[a],helperText:d[a]?.message,required:e?.required})}})}export{S as ControlledDropdownField};
1
+ "use client";import{jsx as v}from"react/jsx-runtime";import{useMemo as g}from"react";import{Controller as D,useWatch as V,useFormContext as q}from"react-hook-form";import{translateLabel as w}from"../../../forms/utils";import{DropdownComponent as B}from"../../form/fields";import{convertValidationRules as F}from"../types";function S(h){const{control:i,errors:d,fieldConfig:t,t:l,onChange:j}=h,{name:a,label:C,validation:o,options:b={}}=t,u=q()?.setValue,n=V({control:i}),r="dependsOn"in t?t.dependsOn:void 0,x=r&&n?n[r.field]:void 0,p=g(()=>{const e=o?.options;return e?typeof e=="function"?e(n||{}):e:[]},[o?.options,n,x]),O=g(()=>p.map(e=>({...e,label:w(e.label,l)})),[p,l]),m=b.fieldSpecific;return v(D,{name:a,control:i,rules:o?F(o):void 0,render:({field:e})=>{const y=s=>{const f=typeof s=="string"?s:s.target.value;if(e.onChange(f),r&&u&&m?.setParentOnChange){const c=m.setParentOnChange(f,n||{});c!=null&&u(r.field,c,{shouldValidate:!0,shouldDirty:!0})}};return v(B,{label:l(C),value:e.value!==void 0&&e.value!==null?String(e.value):"",onChange:y,onBlur:e.onBlur,options:O,error:!!d[a],helperText:d[a]?.message,required:o?.required})}})}export{S as ControlledDropdownField};
@@ -1 +1 @@
1
- "use client";import{jsx as m}from"react/jsx-runtime";import{useMemo as c}from"react";import{Controller as b,useWatch as h}from"react-hook-form";import{translateLabel as A}from"../../../forms/utils";import{MultiDropdownComponent as x}from"../../form/fields";import{convertValidationRules as O}from"../types";function D(f){const{control:s,errors:u,fieldConfig:t,t:a}=f,{name:l,label:v,validation:o}=t,e=h({control:s}),d="dependsOn"in t?t.dependsOn:void 0,g=d&&e?e[d.field]:void 0,p=c(()=>{const r=o?.options;return r?typeof r=="function"?r(e||{}):r:[]},[o?.options,e,g]),y=c(()=>p.map(r=>({value:String(r.value),label:A(r.label,a)})),[p,a]);return m(b,{name:l,control:s,rules:o?O(o):void 0,render:({field:r})=>{const C=i=>{let n;if(Array.isArray(i))n=i;else try{n=JSON.parse(i.target.value)}catch{n=[]}r.onChange(n)};return m(x,{...r,label:a(v),value:Array.isArray(r.value)?r.value:[],onChange:C,onBlur:r.onBlur,options:y,error:!!u[l],helperText:u[l]?.message,required:o?.required})}})}export{D as ControlledMultiDropdownField};
1
+ "use client";import{jsx as m}from"react/jsx-runtime";import{useMemo as c}from"react";import{Controller as b,useWatch as h}from"react-hook-form";import{translateLabel as A}from"../../../forms/utils";import{MultiDropdownComponent as x}from"../../form/fields";import{convertValidationRules as O}from"../types";function D(f){const{control:s,errors:u,fieldConfig:t,t:a}=f,{name:l,label:v,validation:o}=t,r=h({control:s}),d="dependsOn"in t?t.dependsOn:void 0,g=d&&r?r[d.field]:void 0,p=c(()=>{const e=o?.options;return e?typeof e=="function"?e(r||{}):e:[]},[o?.options,r,g]),y=c(()=>p.map(e=>({value:String(e.value),label:A(e.label,a)})),[p,a]);return m(b,{name:l,control:s,rules:o?O(o):void 0,render:({field:e})=>{const C=i=>{let n;if(Array.isArray(i))n=i;else try{n=JSON.parse(i.target.value)}catch{n=[]}e.onChange(n)};return m(x,{...e,label:a(v),value:Array.isArray(e.value)?e.value:[],onChange:C,onBlur:e.onBlur,options:y,error:!!u[l],helperText:u[l]?.message,required:o?.required})}})}export{D as ControlledMultiDropdownField};
@@ -1 +1 @@
1
- "use client";import{jsx as p}from"react/jsx-runtime";import{useMemo as u}from"react";import{Controller as b,useWatch as h}from"react-hook-form";import{translateLabel as x}from"../../../forms/utils";import{RadioFieldComponent as R}from"../../form/fields";import{convertValidationRules as q}from"../types";function O(f){const{control:l,errors:s,fieldConfig:n,t}=f,{name:a,label:c,validation:e}=n,r=h({control:l}),d="dependsOn"in n?n.dependsOn:void 0,v=d&&r?r[d.field]:void 0,m=u(()=>{const o=e?.options;return o?typeof o=="function"?o(r||{}):o:[]},[e?.options,r,v]),g=u(()=>m.map(o=>({value:String(o.value),label:x(o.label,t)})),[m,t]);return p(b,{name:a,control:l,rules:e?q(e):void 0,render:({field:o})=>p(R,{...o,label:t(c),value:o.value??void 0,onChange:i=>{const C=typeof i=="string"?i:i.target.value;o.onChange(C)},options:g,error:!!s[a],helperText:s[a]?.message,required:e?.required})})}export{O as ControlledRadioField};
1
+ "use client";import{jsx as p}from"react/jsx-runtime";import{useMemo as u}from"react";import{Controller as b,useWatch as h}from"react-hook-form";import{translateLabel as x}from"../../../forms/utils";import{RadioFieldComponent as R}from"../../form/fields";import{convertValidationRules as q}from"../types";function O(f){const{control:i,errors:s,fieldConfig:n,t}=f,{name:a,label:c,validation:o}=n,r=h({control:i}),d="dependsOn"in n?n.dependsOn:void 0,v=d&&r?r[d.field]:void 0,m=u(()=>{const e=o?.options;return e?typeof e=="function"?e(r||{}):e:[]},[o?.options,r,v]),g=u(()=>m.map(e=>({value:String(e.value),label:x(e.label,t)})),[m,t]);return p(b,{name:a,control:i,rules:o?q(o):void 0,render:({field:e})=>p(R,{...e,label:t(c),value:e.value??void 0,onChange:l=>{const C=typeof l=="string"?l:l.target.value;e.onChange(C)},options:g,error:!!s[a],helperText:s[a]?.message,required:o?.required})})}export{O as ControlledRadioField};
@@ -1 +1 @@
1
- "use client";import{jsx as m}from"react/jsx-runtime";import{useMemo as F}from"react";import{Controller as v}from"react-hook-form";import{useCrudList as _}from"../../../useCrudList";import x from"../../form/fields/ReferenceFieldComponent";import{convertValidationRules as L}from"../types";const R=["name","title","label","displayName"];function p(e,n,l){if(n?.length){const r=n.map(i=>e[i]).filter(i=>i!=null&&i!=="");if(r.length)return r.join(" ")}if(l&&e[l]!=null&&e[l]!=="")return String(e[l]);for(const r of R)if(e[r]!=null&&e[r]!=="")return String(e[r]);return e.id??"?"}function S(e){const{control:n,errors:l,fieldConfig:r,t:i,placeholder:c}=e,{name:d,label:b,validation:a,options:s={}}=r,f=a?.reference,t=s.fieldSpecific,{items:u,loading:g}=_(f??"__disabled__",{enabled:!!f}),h=F(()=>u.map(o=>({id:o.id,label:p(o,t?.labelFields,t?.displayField)})),[u,t?.labelFields,t?.displayField]);return m(v,{name:d,control:n,rules:a?L(a):void 0,render:({field:o})=>m(x,{label:i(b),value:o.value??"",onChange:C=>o.onChange(C),onBlur:o.onBlur,options:h,isLoading:g,error:!!l[d],helperText:l[d]?.message,required:a?.required,placeholder:c||s.placeholder})})}export{S as ControlledReferenceField,p as buildReferenceLabel};
1
+ "use client";import{jsx as m}from"react/jsx-runtime";import{useMemo as C}from"react";import{Controller as F}from"react-hook-form";import{useCrudList as _}from"../../../useCrudList";import x from"../../form/fields/ReferenceFieldComponent";import{convertValidationRules as L}from"../types";const R=["name","title","label","displayName"];function p(e,o,l){if(o?.length){const r=o.map(i=>e[i]).filter(i=>i!=null&&i!=="");if(r.length)return r.join(" ")}if(l&&e[l]!=null&&e[l]!=="")return String(e[l]);for(const r of R)if(e[r]!=null&&e[r]!=="")return String(e[r]);return e.id??"?"}function S(e){const{control:o,errors:l,fieldConfig:r,t:i,placeholder:c}=e,{name:d,label:b,validation:a,options:s={}}=r,f=a?.reference,t=s.fieldSpecific,{items:u,loading:g}=_(f??"__disabled__",{enabled:!!f}),h=C(()=>u.map(n=>({id:n.id,label:p(n,t?.labelFields,t?.displayField)})),[u,t?.labelFields,t?.displayField]);return m(F,{name:d,control:o,rules:a?L(a):void 0,render:({field:n})=>m(x,{label:i(b),value:n.value??"",onChange:v=>n.onChange(v),onBlur:n.onBlur,options:h,isLoading:g,error:!!l[d],helperText:l[d]?.message,required:a?.required,placeholder:c||s.placeholder})})}export{S as ControlledReferenceField,p as buildReferenceLabel};
@@ -1 +1 @@
1
- "use client";import{jsx as i}from"react/jsx-runtime";import{useMemo as h}from"react";import{Controller as b}from"react-hook-form";import{translateLabel as C}from"../../../forms/utils";import{ComboboxComponent as x}from"../../form/fields";import{convertValidationRules as y}from"../types";function S(s){const{control:m,errors:n,fieldConfig:u,t:c,placeholder:p}=s,{name:t,label:d,validation:r,options:f={}}=u,v=h(()=>{const e=r?.min??1900,a=r?.max??new Date().getFullYear()+10,l=[];for(let o=a;o>=e;o--)l.push({value:String(o),label:String(o)});return l},[r?.min,r?.max]);return i(b,{name:t,control:m,rules:r?y(r):void 0,render:({field:e})=>{const a=l=>{const o=typeof l=="string"?l:l.target.value,g=o===""?void 0:Number(o);e.onChange(g)};return i(x,{...e,label:C(d,c),value:e.value!==void 0&&e.value!==null?String(e.value):"",onChange:a,onBlur:e.onBlur,options:v,error:!!n[t],helperText:n[t]?.message,required:r?.required,placeholder:p||f.placeholder,translationNamespace:"crud",placeholderKey:"actions.selectYear",placeholderDefault:"Select or type year",creatable:!0})}})}export{S as ControlledYearField};
1
+ "use client";import{jsx as i}from"react/jsx-runtime";import{useMemo as h}from"react";import{Controller as b}from"react-hook-form";import{translateLabel as C}from"../../../forms/utils";import{ComboboxComponent as x}from"../../form/fields";import{convertValidationRules as y}from"../types";function S(s){const{control:m,errors:n,fieldConfig:u,t:c,placeholder:p}=s,{name:l,label:d,validation:r,options:f={}}=u,v=h(()=>{const e=r?.min??1900,t=r?.max??new Date().getFullYear()+10,a=[];for(let o=t;o>=e;o--)a.push({value:String(o),label:String(o)});return a},[r?.min,r?.max]);return i(b,{name:l,control:m,rules:r?y(r):void 0,render:({field:e})=>{const t=a=>{const o=typeof a=="string"?a:a.target.value,g=o===""?void 0:Number(o);e.onChange(g)};return i(x,{...e,label:C(d,c),value:e.value!==void 0&&e.value!==null?String(e.value):"",onChange:t,onBlur:e.onBlur,options:v,error:!!n[l],helperText:n[l]?.message,required:r?.required,placeholder:p||f.placeholder,translationNamespace:"crud",placeholderKey:"actions.selectYear",placeholderDefault:"Select or type year",creatable:!0})}})}export{S as ControlledYearField};
@@ -1 +1 @@
1
- "use client";function i(n){if(n){if(n instanceof RegExp)return n;try{const t=/^\/(.*)\/([gimyus]*)$/.exec(n);if(t){const[,r,e]=t;if(r)return new RegExp(r,e)}return new RegExp(n)}catch{return}}}function a(n){if(!n)return{};const t={};return n.required!==void 0&&(t.required=n.required),n.min!==void 0&&(t.min=n.min),n.max!==void 0&&(t.max=n.max),n.minLength!==void 0&&(t.minLength=n.minLength),n.maxLength!==void 0&&(t.maxLength=n.maxLength),n.pattern&&typeof n.pattern=="string"&&(t.pattern={value:i(n.pattern)||/.*/,message:"Invalid format"}),t}export{i as convertPatternToRegex,a as convertValidationRules};
1
+ "use client";function i(e){if(e){if(e instanceof RegExp)return e;try{const t=/^\/(.*)\/([gimyus]*)$/.exec(e);if(t){const[,r,n]=t;if(r)return new RegExp(r,n)}return new RegExp(e)}catch{return}}}function a(e){if(!e)return{};const t={};return e.required!==void 0&&(t.required=e.required),e.min!==void 0&&(t.min=e.min),e.max!==void 0&&(t.max=e.max),e.minLength!==void 0&&(t.minLength=e.minLength),e.maxLength!==void 0&&(t.maxLength=e.maxLength),e.pattern&&typeof e.pattern=="string"&&(t.pattern={value:i(e.pattern)||/.*/,message:"Invalid format"}),t}export{i as convertPatternToRegex,a as convertValidationRules};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{Avatar as n,Text as p}from"@donotdev/components";const l=({config:a,value:s,t:d,className:e,size:r="md"})=>{if(!s)return t(p,{as:"span",variant:"muted",className:e,children:"-"});const i={sm:"size-touch",md:"size-touch",lg:"h-16 w-16"},c=m=>m.split(" ").map(o=>o.charAt(0)).slice(0,2).join("").toUpperCase();return t(n,{src:s,alt:a.label||"Avatar",fallback:c(a.label||"AV"),className:`${i[r]} ${e||""}`})};var u=l;export{l as AvatarFieldDisplay,u as default};
1
+ import{jsx as e}from"react/jsx-runtime";import{Avatar as n,Text as p}from"@donotdev/components";const l=({config:a,value:s,t:d,className:t,size:r="md"})=>{if(!s)return e(p,{as:"span",variant:"muted",className:t,children:"-"});const i={sm:"size-touch",md:"size-touch",lg:"h-16 w-16"},c=m=>m.split(" ").map(o=>o.charAt(0)).slice(0,2).join("").toUpperCase();return e(n,{src:s,alt:a.label||"Avatar",fallback:c(a.label||"AV"),className:`${i[r]} ${t||""}`})};var u=l;export{l as AvatarFieldDisplay,u as default};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{Badge as r,Text as l}from"@donotdev/components";const n=({config:m,value:a,t:s,className:e})=>{if(a==null)return o(l,{as:"span",variant:"muted",className:e,children:"-"});const t=typeof a=="boolean"?s(a?"common.yes":"common.no"):String(a);return o(r,{variant:typeof a=="boolean"?a?"default":"secondary":"outline",className:e,children:t})};var i=n;export{n as BadgeFieldDisplay,i as default};
1
+ import{jsx as o}from"react/jsx-runtime";import{Badge as l,Text as r}from"@donotdev/components";const n=({config:m,value:a,t:s,className:e})=>{if(a==null)return o(r,{as:"span",variant:"muted",className:e,children:"-"});const t=typeof a=="boolean"?s(a?"common.yes":"common.no"):String(a);return o(l,{variant:typeof a=="boolean"?a?"default":"secondary":"outline",className:e,children:t})};var i=n;export{n as BadgeFieldDisplay,i as default};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{Badge as t,Text as c}from"@donotdev/components";const n=({config:m,value:a,t:r,className:s})=>{if(a==null)return e(c,{as:"span",variant:"muted",className:s,children:"-"});const o=r(a?"common.yes":"common.no");return e(t,{variant:a?"default":"secondary",className:s,children:o})};var l=n;export{n as CheckboxFieldDisplay,l as default};
1
+ import{jsx as s}from"react/jsx-runtime";import{Badge as c,Text as l}from"@donotdev/components";const n=({config:t,value:a,t:o,className:e})=>{if(a==null)return s(l,{as:"span",variant:"muted",className:e,children:"-"});const r=o(a?"common.yes":"common.no");return s(c,{variant:a?"default":"secondary",className:e,children:r})};var m=n;export{n as CheckboxFieldDisplay,m as default};
@@ -1 +1 @@
1
- import{jsx as a,jsxs as d}from"react/jsx-runtime";import{Text as s,Spinner as o}from"@donotdev/components";const l=({config:i,value:n,t:u,className:e,loading:c=!1})=>{if(c)return a(o,{className:e});if(!n)return a(s,{as:"span",variant:"muted",className:e,children:"-"});try{const r=new Date(n),t=r.toLocaleDateString(),m=r.toLocaleTimeString();return i.type==="date"?a(s,{as:"span",className:e,children:t}):d("div",{className:e,children:[a(s,{as:"span",children:t}),a(s,{as:"span",variant:"muted",level:"small",children:m})]})}catch{return a(s,{as:"span",variant:"muted",className:e,children:"-"})}};var p=l;export{l as DateFieldDisplay,p as default};
1
+ import{jsx as a,jsxs as d}from"react/jsx-runtime";import{Text as e,Spinner as o}from"@donotdev/components";const l=({config:i,value:t,t:u,className:s,loading:c=!1})=>{if(c)return a(o,{className:s});if(!t)return a(e,{as:"span",variant:"muted",className:s,children:"-"});try{const n=new Date(t),r=n.toLocaleDateString(),m=n.toLocaleTimeString();return i.type==="date"?a(e,{as:"span",className:s,children:r}):d("div",{className:s,children:[a(e,{as:"span",children:r}),a(e,{as:"span",variant:"muted",level:"small",children:m})]})}catch{return a(e,{as:"span",variant:"muted",className:s,children:"-"})}};var p=l;export{l as DateFieldDisplay,p as default};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as i}from"react/jsx-runtime";import{Badge as n,BADGE_VARIANT as t,Text as l,Stack as c}from"@donotdev/components";const r=({config:m,value:a,t:o,className:s})=>a?i(c,{direction:"row",align:"center",className:s,children:[e(l,{as:"span",level:"small",children:a.name}),a.size&&i(n,{variant:t.SECONDARY,children:[(a.size/1024).toFixed(1)," KB"]})]}):e(l,{as:"span",variant:"muted",className:s,children:"-"});var d=r;export{r as FileFieldDisplay,d as default};
1
+ import{jsx as s,jsxs as i}from"react/jsx-runtime";import{Badge as n,BADGE_VARIANT as t,Text as l,Stack as c}from"@donotdev/components";const r=({config:m,value:a,t:o,className:e})=>a?i(c,{direction:"row",align:"center",className:e,children:[s(l,{as:"span",level:"small",children:a.name}),a.size&&i(n,{variant:t.SECONDARY,children:[(a.size/1024).toFixed(1)," KB"]})]}):s(l,{as:"span",variant:"muted",className:e,children:"-"});var d=r;export{r as FileFieldDisplay,d as default};
@@ -1 +1 @@
1
- import{jsx as n}from"react/jsx-runtime";import{Text as i}from"@donotdev/components";const o=({config:l,value:e,t:r,className:t})=>{if(!e)return n(i,{as:"span",variant:"muted",className:t,children:"-"});const s=(()=>{switch(l.type){case"email":return{href:`mailto:${e}`,"aria-label":r("common.sendEmailTo",{email:e})};case"tel":return{href:`tel:${e}`,"aria-label":r("common.callNumber",{number:e})};default:return{href:e,target:"_blank",rel:"noopener noreferrer","aria-label":r("common.openLink")}}})();return n("a",{...s,className:t||"",style:{color:"var(--primary)",textDecoration:"none"},onMouseEnter:a=>a.currentTarget.style.textDecoration="underline",onMouseLeave:a=>a.currentTarget.style.textDecoration="none",children:e})};var c=o;export{o as LinkFieldDisplay,c as default};
1
+ import{jsx as t}from"react/jsx-runtime";import{Text as i}from"@donotdev/components";const o=({config:l,value:e,t:r,className:n})=>{if(!e)return t(i,{as:"span",variant:"muted",className:n,children:"-"});const s=(()=>{switch(l.type){case"email":return{href:`mailto:${e}`,"aria-label":r("common.sendEmailTo",{email:e})};case"tel":return{href:`tel:${e}`,"aria-label":r("common.callNumber",{number:e})};default:return{href:e,target:"_blank",rel:"noopener noreferrer","aria-label":r("common.openLink")}}})();return t("a",{...s,className:n||"",style:{color:"var(--primary)",textDecoration:"none"},onMouseEnter:a=>a.currentTarget.style.textDecoration="underline",onMouseLeave:a=>a.currentTarget.style.textDecoration="none",children:e})};var c=o;export{o as LinkFieldDisplay,c as default};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as t}from"react/jsx-runtime";import{Text as l}from"@donotdev/components";const e=({config:d,value:a,t:m,className:s})=>!a||a.lat===void 0&&a.lng===void 0?o(l,{as:"span",variant:"muted",className:s,children:"-"}):t(l,{as:"div",level:"small",className:`font-mono ${s||""}`,children:[a.lat?.toFixed(6),", ",a.lng?.toFixed(6)]});var i=e;export{e as MapFieldDisplay,i as default};
1
+ import{jsx as o,jsxs as i}from"react/jsx-runtime";import{Text as l}from"@donotdev/components";const e=({config:d,value:a,t:m,className:s})=>!a||a.lat===void 0&&a.lng===void 0?o(l,{as:"span",variant:"muted",className:s,children:"-"}):i(l,{as:"div",level:"small",className:`font-mono ${s||""}`,children:[a.lat?.toFixed(6),", ",a.lng?.toFixed(6)]});var t=e;export{e as MapFieldDisplay,t as default};
@@ -1 +1 @@
1
- import{jsx as s}from"react/jsx-runtime";import{Text as n,Spinner as r}from"@donotdev/components";const l=({config:i,value:e,t:m,className:a,loading:o=!1})=>o?s(r,{className:a}):e==null?s(n,{as:"span",variant:"muted",className:a,children:"-"}):s(n,{as:"span",className:`font-mono ${a||""}`,children:e.toLocaleString()});var t=l;export{l as NumberFieldDisplay,t as default};
1
+ import{jsx as s}from"react/jsx-runtime";import{Text as e,Spinner as r}from"@donotdev/components";const n=({config:i,value:l,t:m,className:a,loading:o=!1})=>o?s(r,{className:a}):l==null?s(e,{as:"span",variant:"muted",className:a,children:"-"}):s(e,{as:"span",className:`font-mono ${a||""}`,children:l.toLocaleString()});var t=n;export{n as NumberFieldDisplay,t as default};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as i}from"react/jsx-runtime";import{Eye as d,EyeOff as n}from"lucide-react";import{useState as u}from"react";import{Skeleton as m,Button as y,CopyToClipboard as f,Stack as r}from"@donotdev/components";const l=({config:g,value:e,t,className:s,loading:p=!1})=>{const[a,c]=u(!1);return p?o(m,{className:s}):e?i(r,{direction:"row",align:"center",className:s,children:[o("span",{style:{fontFamily:"monospace"},children:a?e:"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022"}),i(r,{direction:"row",align:"center",gap:"tight",children:[o(y,{type:"button",onClick:()=>c(!a),"aria-label":a?"Hide password":"Show password",children:a?o(n,{}):o(d,{})}),o(f,{text:e,tooltipText:t("copyToClipboard")||"Copy to clipboard",copiedTooltipText:t("copied")||"Copied!",ariaLabel:t("copyPassword")||"Copy password"})]})]}):o("div",{style:{color:"var(--muted-foreground)"},children:"-"})};var w=l;export{l as PasswordFieldDisplay,w as default};
1
+ import{jsx as o,jsxs as t}from"react/jsx-runtime";import{Eye as c,EyeOff as n}from"lucide-react";import{useState as u}from"react";import{Skeleton as m,Button as y,CopyToClipboard as f,Stack as i}from"@donotdev/components";const l=({config:g,value:e,t:r,className:s,loading:d=!1})=>{const[a,p]=u(!1);return d?o(m,{className:s}):e?t(i,{direction:"row",align:"center",className:s,children:[o("span",{style:{fontFamily:"monospace"},children:a?e:"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022"}),t(i,{direction:"row",align:"center",gap:"tight",children:[o(y,{type:"button",onClick:()=>p(!a),"aria-label":a?"Hide password":"Show password",children:a?o(n,{}):o(c,{})}),o(f,{text:e,tooltipText:r("copyToClipboard")||"Copy to clipboard",copiedTooltipText:r("copied")||"Copied!",ariaLabel:r("copyPassword")||"Copy password"})]})]}):o("div",{style:{color:"var(--muted-foreground)"},children:"-"})};var w=l;export{l as PasswordFieldDisplay,w as default};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{Badge as i,BADGE_VARIANT as n,Text as l}from"@donotdev/components";const r=({config:c,value:a,t:d,className:s})=>{if(!a)return e(l,{as:"span",variant:"muted",className:s,children:"-"});const t=a.displayName||a.name||a.id||a;return e(i,{variant:n.OUTLINE,className:s,children:String(t)})};var m=r;export{r as ReferenceFieldDisplay,m as default};
1
+ import{jsx as s}from"react/jsx-runtime";import{Badge as i,BADGE_VARIANT as n,Text as l}from"@donotdev/components";const r=({config:c,value:a,t:d,className:e})=>{if(!a)return s(l,{as:"span",variant:"muted",className:e,children:"-"});const t=a.displayName||a.name||a.id||a;return s(i,{variant:n.OUTLINE,className:e,children:String(t)})};var m=r;export{r as ReferenceFieldDisplay,m as default};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{Text as l}from"@donotdev/components";const r=({config:i,value:a,t:m,className:s})=>a?e(l,{as:"div",level:"small",className:`whitespace-pre-wrap ${s||""}`,children:a}):e(l,{as:"span",variant:"muted",className:s,children:"-"});var t=r;export{r as TextAreaDisplay,t as default};
1
+ import{jsx as s}from"react/jsx-runtime";import{Text as l}from"@donotdev/components";const r=({config:i,value:a,t:m,className:e})=>a?s(l,{as:"div",level:"small",className:`whitespace-pre-wrap ${e||""}`,children:a}):s(l,{as:"span",variant:"muted",className:e,children:"-"});var t=r;export{r as TextAreaDisplay,t as default};