@donotdev/crud 0.0.4 → 0.0.6
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.
- package/dist/CrudService.d.ts +7 -3
- package/dist/CrudService.d.ts.map +1 -1
- package/dist/CrudService.js +1 -1
- package/dist/CrudStore.d.ts +6 -1
- package/dist/CrudStore.d.ts.map +1 -1
- package/dist/CrudStore.js +1 -1
- package/dist/FieldRegistry.d.ts +126 -0
- package/dist/FieldRegistry.d.ts.map +1 -0
- package/dist/FieldRegistry.js +1 -0
- package/dist/adapters/FirestoreAdapter.d.ts.map +1 -1
- package/dist/adapters/FirestoreAdapter.js +1 -1
- package/dist/builtinFieldTypes.d.ts +5 -0
- package/dist/builtinFieldTypes.d.ts.map +1 -0
- package/dist/builtinFieldTypes.js +1 -0
- package/dist/components/ControlledFields.d.ts +42 -24
- package/dist/components/ControlledFields.d.ts.map +1 -1
- package/dist/components/ControlledFields.js +1 -1
- package/dist/components/DisplayFieldRenderer.d.ts +36 -0
- package/dist/components/DisplayFieldRenderer.d.ts.map +1 -0
- package/dist/components/DisplayFieldRenderer.js +1 -0
- package/dist/components/EntityFormRenderer.d.ts +36 -8
- package/dist/components/EntityFormRenderer.d.ts.map +1 -1
- package/dist/components/EntityFormRenderer.js +5 -1
- package/dist/components/FormFieldRenderer.d.ts +3 -16
- package/dist/components/FormFieldRenderer.d.ts.map +1 -1
- package/dist/components/FormFieldRenderer.js +1 -1
- package/dist/components/form/fields/AddressFieldComponent.d.ts +3 -1
- package/dist/components/form/fields/AddressFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/AddressFieldComponent.js +1 -1
- package/dist/components/form/fields/CheckboxFieldComponent.d.ts +2 -0
- package/dist/components/form/fields/CheckboxFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/CheckboxFieldComponent.js +1 -1
- package/dist/components/form/fields/ComboboxComponent.d.ts +43 -0
- package/dist/components/form/fields/ComboboxComponent.d.ts.map +1 -0
- package/dist/components/form/fields/ComboboxComponent.js +1 -0
- package/dist/components/form/fields/CurrencyFieldComponent.d.ts +41 -0
- package/dist/components/form/fields/CurrencyFieldComponent.d.ts.map +1 -0
- package/dist/components/form/fields/CurrencyFieldComponent.js +1 -0
- package/dist/components/form/fields/DateFieldComponent.d.ts +2 -0
- package/dist/components/form/fields/DateFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/DateFieldComponent.js +1 -1
- package/dist/components/form/fields/DropdownComponent.d.ts.map +1 -1
- package/dist/components/form/fields/DropdownComponent.js +1 -1
- package/dist/components/form/fields/FileFieldComponent.d.ts +2 -0
- package/dist/components/form/fields/FileFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/FileFieldComponent.js +1 -1
- package/dist/components/form/fields/GeoPointFieldComponent.d.ts +2 -0
- package/dist/components/form/fields/GeoPointFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/GeoPointFieldComponent.js +1 -1
- package/dist/components/form/fields/ImageFieldComponent.d.ts +32 -17
- package/dist/components/form/fields/ImageFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/ImageFieldComponent.js +1 -1
- package/dist/components/form/fields/MapFieldComponent.d.ts +2 -0
- package/dist/components/form/fields/MapFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/MapFieldComponent.js +1 -1
- package/dist/components/form/fields/MultiDropdownComponent.d.ts +2 -2
- package/dist/components/form/fields/MultiDropdownComponent.d.ts.map +1 -1
- package/dist/components/form/fields/MultiDropdownComponent.js +1 -1
- package/dist/components/form/fields/MultiInputTextFieldComponent.d.ts +2 -0
- package/dist/components/form/fields/MultiInputTextFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/MultiInputTextFieldComponent.js +1 -1
- package/dist/components/form/fields/NumberFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/NumberFieldComponent.js +1 -1
- package/dist/components/form/fields/PasswordFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/PasswordFieldComponent.js +1 -1
- package/dist/components/form/fields/PhoneNumberComponent.d.ts +31 -17
- package/dist/components/form/fields/PhoneNumberComponent.d.ts.map +1 -1
- package/dist/components/form/fields/PhoneNumberComponent.js +1 -1
- package/dist/components/form/fields/RadioFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/RadioFieldComponent.js +1 -1
- package/dist/components/form/fields/RangeFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/RangeFieldComponent.js +1 -1
- package/dist/components/form/fields/ReferenceFieldComponent.d.ts +7 -2
- package/dist/components/form/fields/ReferenceFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/ReferenceFieldComponent.js +1 -1
- package/dist/components/form/fields/SwitchFieldComponent.d.ts +28 -0
- package/dist/components/form/fields/SwitchFieldComponent.d.ts.map +1 -0
- package/dist/components/form/fields/SwitchFieldComponent.js +1 -0
- package/dist/components/form/fields/TextAreaComponent.d.ts.map +1 -1
- package/dist/components/form/fields/TextAreaComponent.js +1 -1
- package/dist/components/form/fields/TextFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/TextFieldComponent.js +1 -1
- package/dist/components/form/fields/TimestampFieldComponent.d.ts +2 -0
- package/dist/components/form/fields/TimestampFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/TimestampFieldComponent.js +1 -1
- package/dist/components/form/fields/index.d.ts +7 -1
- package/dist/components/form/fields/index.d.ts.map +1 -1
- package/dist/components/form/fields/index.js +1 -1
- package/dist/components/form/internal/ImageViewerDialog.d.ts +25 -0
- package/dist/components/form/internal/ImageViewerDialog.d.ts.map +1 -0
- package/dist/components/form/internal/ImageViewerDialog.js +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/context/FormUploadContext.d.ts +36 -0
- package/dist/context/FormUploadContext.d.ts.map +1 -0
- package/dist/context/FormUploadContext.js +1 -0
- package/dist/context/index.d.ts +2 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +1 -0
- package/dist/forms/hooks/index.d.ts +11 -0
- package/dist/forms/hooks/index.d.ts.map +1 -0
- package/dist/forms/hooks/index.js +1 -0
- package/dist/forms/hooks/useEntityField.d.ts +67 -0
- package/dist/forms/hooks/useEntityField.d.ts.map +1 -0
- package/dist/forms/hooks/useEntityField.js +1 -0
- package/dist/forms/hooks/useEntityForm.d.ts +89 -0
- package/dist/forms/hooks/useEntityForm.d.ts.map +1 -0
- package/dist/forms/hooks/useEntityForm.js +1 -0
- package/dist/forms/index.d.ts +37 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +1 -0
- package/dist/forms/types.d.ts +185 -0
- package/dist/forms/types.d.ts.map +1 -0
- package/dist/forms/types.js +0 -0
- package/dist/forms/utils/createEntitySchema.d.ts +53 -0
- package/dist/forms/utils/createEntitySchema.d.ts.map +1 -0
- package/dist/forms/utils/createEntitySchema.js +1 -0
- package/dist/forms/utils/getFieldsForOperation.d.ts +87 -0
- package/dist/forms/utils/getFieldsForOperation.d.ts.map +1 -0
- package/dist/forms/utils/getFieldsForOperation.js +1 -0
- package/dist/forms/utils/index.d.ts +14 -0
- package/dist/forms/utils/index.d.ts.map +1 -0
- package/dist/forms/utils/index.js +1 -0
- package/dist/forms/utils/isFieldEditable.d.ts +43 -0
- package/dist/forms/utils/isFieldEditable.d.ts.map +1 -0
- package/dist/forms/utils/isFieldEditable.js +1 -0
- package/dist/forms/utils/normalizeToFieldConfig.d.ts +47 -0
- package/dist/forms/utils/normalizeToFieldConfig.d.ts.map +1 -0
- package/dist/forms/utils/normalizeToFieldConfig.js +1 -0
- package/dist/forms/utils/validateEntity.d.ts +77 -0
- package/dist/forms/utils/validateEntity.d.ts.map +1 -0
- package/dist/forms/utils/validateEntity.js +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/useCrud.d.ts +67 -15
- package/dist/useCrud.d.ts.map +1 -1
- package/dist/useCrud.js +1 -1
- package/dist/utils/imageProcessing.d.ts +49 -0
- package/dist/utils/imageProcessing.d.ts.map +1 -0
- package/dist/utils/imageProcessing.js +1 -0
- package/dist/utils/imageStorage.d.ts +35 -0
- package/dist/utils/imageStorage.d.ts.map +1 -0
- package/dist/utils/imageStorage.js +1 -0
- package/dist/utils/imageUtils.d.ts +86 -0
- package/dist/utils/imageUtils.d.ts.map +1 -0
- package/dist/utils/imageUtils.js +1 -0
- package/package.json +10 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as r,jsxs as n}from"react/jsx-runtime";import{Image as z,X as D}from"lucide-react";import{useCallback as m,useState as p}from"react";import{Button as N,BUTTON_VARIANT as k,Input as x,Label as j,Stack as g}from"@donotdev/components";const I=({label:f,onChange:s,error:d,helperText:i,maxSize:o,multiple:y=!1})=>{const[c,l]=p(!1),[v,u]=p(null),a=m(e=>{if(!e){s({target:{value:"",files:null}}),u(null);return}if(!e.type.startsWith("image/")||o&&e.size>o)return;const t=new FileReader;t.onloadend=()=>{u(t.result)},t.readAsDataURL(e);const b={target:{value:e.name,files:[e]}};s(b)},[o,s]),h=m(e=>{e.preventDefault(),l(!1);const t=e.dataTransfer?.files[0]||null;a(t)},[a]);return n(g,{gap:"tight",children:[r(j,{style:{display:"block",fontSize:"var(--font-size-sm)",fontWeight:500},children:f}),n("div",{className:"dndev-relative dndev-surface","data-variant":d?"destructive":"default",style:{border:"2px dashed",borderColor:c?"var(--primary)":d?"var(--destructive)":"var(--border)",borderRadius:"var(--radius-lg)",padding:"var(--gap-lg)",backgroundColor:c?"color-mix(in oklab, var(--primary) 5%, transparent)":void 0,transition:"border-color 0.2s, background-color 0.2s"},onDragOver:e=>{e.preventDefault(),l(!0)},onDragLeave:()=>l(!1),onDrop:h,children:[r(x,{type:"file",accept:"image/*",multiple:y,className:"dndev-absolute dndev-inset-0 dndev-w-full dndev-h-full dndev-pointer-events-auto",style:{opacity:0,cursor:"pointer"},onChange:e=>a(e.target.files?.[0]??null)}),v?n("div",{className:"dndev-relative dndev-aspect-video",children:[r("img",{src:v,alt:"Preview",className:"dndev-mx-auto dndev-h-full dndev-object-contain",style:{borderRadius:"var(--radius-lg)"}}),r(N,{variant:k.GHOST,onClick:()=>a(null),className:"dndev-absolute dndev-size-touch",style:{padding:0,top:"var(--gap-md)",insetInlineEnd:"var(--gap-md)"},children:r(D,{className:"dndev-size-md"})})]}):n(g,{align:"center",justify:"center",gap:"medium",children:[r(z,{className:"dndev-size-lg",style:{color:"var(--muted-foreground)"}}),r("p",{style:{fontSize:"var(--font-size-sm)",color:"var(--muted-foreground)"},children:"Drag & drop or click to upload"})]})]}),i&&r("p",{style:{fontSize:"var(--font-size-xs)",color:d?"var(--destructive-foreground)":"var(--muted-foreground)",marginTop:"var(--gap-sm)"},children:i})]})};var E=I;export{E as default};
|
|
1
|
+
"use client";import{jsxs as f,jsx as l,Fragment as Me}from"react/jsx-runtime";import{Upload as ze,X as ne,Loader2 as Ae,GripVertical as Fe,Undo2 as Te,Redo2 as Ce}from"lucide-react";import{useCallback as m,useState as y,useRef as k,useEffect as F,useImperativeHandle as xe,forwardRef as Ee}from"react";import{Button as ie,BUTTON_VARIANT as se,Text as b,Stack as I,Progress as Se}from"@donotdev/components";import{ImageViewerDialog as je}from"../internal/ImageViewerDialog";import{handleError as D,useTranslation as Oe}from"@donotdev/core";import{useFormUpload as $e}from"../../../context/FormUploadContext";import{processImage as We}from"../../../utils/imageProcessing";import{uploadImage as Be,deleteImage as He}from"../../../utils/imageStorage";import{generateFileHash as Ke,createPreviewURL as le,revokePreviewURL as G,rotateImage90 as _e,UndoRedoManager as Ve,findDuplicatesByHash as Ge,generateImageId as de}from"../../../utils/imageUtils";const ce=Ee(({name:T,label:L,value:P,onChange:j,error:O,helperText:X,multiple:d=!1,maxFiles:C=10,maxSize:N=10*1024*1024,storagePath:q="uploads/images",entityId:Xe,required:ue,t:pe},ge)=>{const{t:fe}=Oe("dndev"),o=pe||fe,x=$e(),[s,u]=y([]),[J,$]=y(!1),[M,Q]=y(null),[R,Y]=y(null),[Z,ee]=y(null),[me,re]=y(null),[ve,W]=y(!1),[he,B]=y(0),ae=k(null),z=k(null),h=k(new Ve),E=k(new Map),H=k(!1),v=m(e=>{const r=e.filter(a=>a.uploaded&&!a.error).map(a=>a.uploaded);j(d?r:r[0]||null)},[d,j]),ye=m((e,r)=>{u(a=>{const t=[...a];return t[e]&&(t[e]={...t[e],...r},setTimeout(()=>v(t),0)),t})},[v]);F(()=>{if(H.current){H.current=!1;return}if(P){const e=[];(Array.isArray(P)?P:[P]).forEach(a=>{a.fullUrl&&e.push({id:de(),file:new File([],"existing"),previewURL:a.thumbUrl||a.fullUrl,hash:"",rotation:0,uploadProgress:null,uploaded:a,error:null})}),u(e)}else u([])},[P]);const K=k(new Set);F(()=>{K.current.clear(),s.forEach(e=>{e.previewURL.startsWith("blob:")&&K.current.add(e.previewURL)})},[s]),F(()=>()=>{K.current.forEach(e=>{G(e)})},[]),xe(ge,()=>({upload:async()=>{await _()},getImages:()=>s}),[s]);const _=m(async()=>{const e=s.filter(t=>!t.uploaded&&!t.error&&t.uploadProgress===null);if(e.length===0)return;u(t=>t.map(i=>e.some(n=>n.id===i.id)?{...i,uploadProgress:0}:i));const r=e.map(async t=>{try{const{fullBlob:i,thumbBlob:n}=await We(t.file),p=await Be(i,n,t.file.name,{storagePath:q,onProgress:w=>{u(c=>c.map(g=>g.id===t.id?{...g,uploadProgress:w.progress}:g))}});return{id:t.id,picture:p,error:null}}catch(i){return D(i,{userMessage:o("image.upload.failed",{fileName:t.file.name}),severity:"error",context:{fileName:t.file.name,fileSize:t.file.size}}),{id:t.id,picture:null,error:"Upload failed"}}}),a=await Promise.all(r);u(t=>{const i=t.map(n=>{const p=a.find(w=>w.id===n.id);return p?{...n,uploaded:p.picture,uploadProgress:p.picture?100:null,error:p.error}:n});return setTimeout(()=>v(i),0),i})},[s,q,v]);F(()=>{if(!(!x||!T))return x.registerUpload(T,_),()=>{x.unregisterUpload(T)}},[x,T,_]);const A=m(async e=>{const a=(d?C:1)-s.length;if(a<=0){const c=d?o("image.errors.maxFiles",{max:C}):o("image.errors.singleOnly");D(new Error(c),{userMessage:c,severity:"warning",showNotification:!0});return}const t=e.slice(0,a),i=[],n=(N/(1024*1024)).toFixed(0);for(const c of t){if(!c.type.startsWith("image/")){const g=o("image.errors.notImage",{fileName:c.name});D(new Error(g),{userMessage:g,severity:"warning",showNotification:!0});continue}if(c.size>N){const g=o("image.errors.exceedsSize",{fileName:c.name,size:n});D(new Error(g),{userMessage:g,severity:"warning",showNotification:!0});continue}i.push(c)}if(i.length===0)return;const p=[],w=[];for(const c of i){const g=await Ke(c);if(Ge(s,g).length>0){w.push(c.name);continue}const Ne=le(c);p.push({id:de(),file:c,previewURL:Ne,hash:g,rotation:0,uploadProgress:null,uploaded:null,error:null})}w.length>0&&(ee(o("image.warnings.duplicates",{files:w.join(", ")})),setTimeout(()=>ee(null),5e3)),p.length!==0&&(h.current.push({type:"add",images:p}),u(c=>d?[...c,...p]:p))},[s,d,C,N,o]),be=e=>{const r=Array.from(e.target.files||[]);r.length>0&&A(r),z.current&&(z.current.value="")},we=m(e=>{e.preventDefault(),$(!1);const r=Array.from(e.dataTransfer.files);A(r)},[A]),V=m(e=>{const r=e.clipboardData?.items;if(!r)return;const a=[];for(let t=0;t<r.length;t++){const i=r[t];if(i&&i.type.startsWith("image/")){const n=i.getAsFile();n&&a.push(n)}}a.length>0&&A(a)},[A]);F(()=>{const e=ae.current;if(e)return e.addEventListener("paste",V),()=>e.removeEventListener("paste",V)},[V]);const S=m(async e=>{const r=s[e];if(r){h.current.push({type:"remove",indices:[e]});try{r.uploaded&&r.uploaded.fullUrl&&await He(r.uploaded),r.previewURL.startsWith("blob:")&&G(r.previewURL);const a=s.filter((t,i)=>i!==e);H.current=!0,u(a),setTimeout(()=>{v(a)},0)}catch(a){D(a,{userMessage:o("image.delete.failed"),severity:"error",showNotification:!0,context:{imageId:r.id}})}}},[s,v,o]),U=m(async e=>{const r=s[e];if(r)try{const a=await _e(r.file),t=le(a);r.previewURL.startsWith("blob:")&&G(r.previewURL),h.current.push({type:"rotate",index:e}),u(i=>{const n=[...i];return n[e]={...r,file:a,previewURL:t,rotation:(r.rotation+1)%4},n})}catch(a){D(a,{userMessage:o("image.rotate.failed"),severity:"error",showNotification:!0,context:{imageId:r.id,fileName:r.file.name}})}},[s,o]),Ie=e=>{d&&Y(e)},Re=(e,r)=>{d&&(e.preventDefault(),Q(r))},Ue=()=>{R!==null&&M!==null&&R!==M&&(h.current.push({type:"reorder",from:R,to:M}),u(e=>{const r=[...e],a=r[R];return a?(r.splice(R,1),r.splice(M,0,a),setTimeout(()=>v(r),0),r):e})),Y(null),Q(null)},ke=m(()=>{const e=h.current.undo();e&&(e.type==="add"?u(r=>{const a=new Set(e.images.map(i=>i.id)),t=r.filter(i=>!a.has(i.id));return setTimeout(()=>v(t),0),t}):e.type==="remove"||(e.type==="reorder"?u(r=>{const a=[...r],t=a[e.to];return t&&(a.splice(e.to,1),a.splice(e.from,0,t),setTimeout(()=>v(a),0)),a}):e.type==="rotate"&&(U(e.index),U(e.index),U(e.index))))},[v,U]),De=m(()=>{h.current.redo()},[]),Le=m((e,r)=>{switch(e.key){case"Delete":case"Backspace":e.preventDefault(),S(r);break;case"r":case"R":(e.ctrlKey||e.metaKey)&&(e.preventDefault(),U(r));break;case"ArrowLeft":if(d&&r>0){e.preventDefault();const a=s[r-1];a?.id&&E.current.get(a.id)?.focus()}break;case"ArrowRight":if(d&&r<s.length-1){e.preventDefault();const a=s[r+1];a?.id&&E.current.get(a.id)?.focus()}break}},[s,d,S,U]),Pe=d||s.length===0,qe=s.some(e=>!e.uploaded&&!e.error&&e.uploadProgress===null),te=h.current.canUndo(),oe=h.current.canRedo();return f(I,{gap:"tight",children:[f(I,{direction:"row",justify:"between",align:"center",children:[f(b,{level:"body",align:"start",children:[L,ue?"*":""]}),(te||oe)&&f(I,{direction:"row",children:[l(ie,{variant:se.GHOST,onClick:ke,disabled:!te,"aria-label":o("image.undo.ariaLabel"),title:o("image.undo.title"),children:l(Te,{className:"dndev-size-sm"})}),l(ie,{variant:se.GHOST,onClick:De,disabled:!oe,"aria-label":o("image.redo.ariaLabel"),title:o("image.redo.title"),children:l(Ce,{className:"dndev-size-sm"})})]})]}),Z&&l(b,{as:"div",role:"alert","aria-live":"polite",variant:"warning",level:"small",style:{padding:"var(--gap-sm)",borderRadius:"var(--radius-md)"},children:Z}),Pe&&f("div",{ref:ae,role:"button",tabIndex:0,"aria-label":o(d?"image.upload.ariaLabelMultiple":"image.upload.ariaLabelSingle"),"aria-describedby":`image-field-helper-${L}`,className:"dndev-surface","data-variant":O?"destructive":"default",style:{border:"var(--border-width) dashed",borderColor:J?"var(--primary)":O?"var(--destructive)":"var(--border)",borderRadius:"var(--radius-lg)",padding:"var(--gap-lg)",backgroundColor:J?"color-mix(in oklab, var(--primary) 5%, transparent)":"var(--surface)",transition:"border-color var(--dur-fast), background-color var(--dur-fast)",cursor:"pointer",outline:"none"},onDragOver:e=>{e.preventDefault(),$(!0)},onDragLeave:()=>$(!1),onDrop:we,onClick:()=>z.current?.click(),onKeyDown:e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),z.current?.click())},children:[l("input",{id:`image-field-${L}`,ref:z,type:"file",accept:"image/*",multiple:d,style:{display:"none"},onChange:be,"aria-label":o(d?"image.upload.selectAriaLabelMultiple":"image.upload.selectAriaLabelSingle")}),f(I,{align:"center",justify:"center",gap:"medium",children:[l(ze,{className:"dndev-size-lg",style:{color:"var(--muted-foreground)"},"aria-hidden":"true"}),f(b,{as:"p",variant:"muted",level:"small",align:"center",children:[o(d?"image.upload.dropzoneMultiple":"image.upload.dropzoneSingle"),l("br",{}),l(b,{as:"span",variant:"muted",level:"small",children:d?o("image.upload.maxFiles",{max:C,size:(N/(1024*1024)).toFixed(0)}):o("image.upload.maxSize",{size:(N/(1024*1024)).toFixed(0)})})]})]})]}),s.length>0&&l("div",{role:"list","aria-label":d?o("image.upload.uploadedMultiple",{count:s.length}):o("image.upload.uploadedSingle",{count:s.length}),style:{display:"flex",flexWrap:"wrap",gap:"var(--gap-md)"},children:s.map((e,r)=>{const a=e.uploadProgress!==null&&e.uploadProgress<100,t=e.uploaded!==null,i=!!e.previewURL;return l("div",{ref:n=>{n?E.current.set(e.id,n):E.current.delete(e.id)},role:"listitem",tabIndex:0,draggable:!a&&d,onDragStart:()=>Ie(r),onDragOver:n=>Re(n,r),onDragEnd:Ue,onKeyDown:n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),B(r),W(!0)),Le(n,r)},onFocus:()=>re(r),onBlur:()=>re(null),onClick:()=>{B(r),W(!0)},"aria-label":`Image ${r+1}${e.uploaded?" (uploaded)":" (pending upload)"}`,style:{position:"relative",width:"calc(var(--touch-target) * 2.5)",height:"calc(var(--touch-target) * 2.5)",borderRadius:"var(--radius-md)",border:M===r?"var(--border-width) solid var(--primary)":me===r?"var(--border-width) solid var(--ring)":"calc(var(--border-width) / 2) solid var(--border)",overflow:"hidden",backgroundColor:"var(--surface)",cursor:a?"default":"pointer",opacity:R===r?"var(--opacity-muted)":"1",transition:"opacity var(--dur-fast), border-color var(--dur-fast)",outline:"none"},children:a?f(I,{align:"center",justify:"center",style:{width:"100%",height:"100%"},direction:"column",gap:"tight",children:[l(Ae,{className:"dndev-size-lg",style:{animation:"spin 1s linear infinite",color:"var(--primary)"},"aria-hidden":"true"}),l(Se,{value:e.uploadProgress||0,style:{width:"80%"},"aria-label":o("image.upload.progress",{progress:Math.round(e.uploadProgress||0)})}),f(b,{variant:"muted",level:"small",children:[Math.round(e.uploadProgress||0),"%"]})]}):e.error?f(I,{align:"center",justify:"center",style:{width:"100%",height:"100%",padding:"var(--gap-sm)"},direction:"column",children:[l(ne,{className:"dndev-size-md",style:{color:"var(--destructive)"},"aria-hidden":"true"}),l(b,{variant:"destructive",level:"small",align:"center",children:e.error})]}):f(Me,{children:[i&&l("img",{src:e.previewURL,alt:e.file.name||o("image.alt.upload",{index:r+1}),loading:"lazy",decoding:"async",fetchPriority:"low",style:{width:"100%",height:"100%",objectFit:"cover",transform:`rotate(${e.rotation*90}deg)`,aspectRatio:"1 / 1"},"aria-label":`${L} ${r+1}${d?` of ${s.length}`:""}${e.uploaded?" (uploaded)":" (pending upload)"}`}),d&&l("div",{style:{position:"absolute",top:"var(--gap-sm)",left:"var(--gap-sm)",opacity:"var(--opacity-strong)",cursor:"grab"},"aria-label":o("image.reorder.ariaLabel"),onClick:n=>n.stopPropagation(),children:l(Fe,{className:"dndev-size-sm",style:{color:"var(--background)"},"aria-hidden":"true"})}),l(I,{direction:"row",style:{position:"absolute",top:"var(--gap-sm)",right:"var(--gap-sm)"},children:l("button",{type:"button",onClick:n=>{n.stopPropagation(),S(r)},"aria-label":o("image.delete.ariaLabel",{index:r+1}),title:o("image.delete.title"),style:{padding:"var(--gap-sm)",minWidth:"auto",background:"color-mix(in oklab, var(--foreground) 50%, transparent)",border:"none",borderRadius:"var(--radius-sm)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:l(ne,{className:"dndev-size-sm",style:{color:"var(--background)"},"aria-hidden":"true"})})}),!t&&l("div",{style:{position:"absolute",bottom:"var(--gap-sm)",left:"var(--gap-sm)",right:"var(--gap-sm)",padding:"var(--gap-sm)",background:"color-mix(in oklab, var(--foreground) 70%, transparent)",color:"var(--background)",textAlign:"center",borderRadius:"var(--radius-sm)"},children:l(b,{variant:"muted",level:"small",align:"center",children:o("image.upload.pending")})})]})},e.id)})}),X&&l(b,{as:"p",id:`image-field-helper-${L}`,variant:O?"destructive":"muted",level:"small",style:{marginTop:"var(--gap-sm)"},children:X}),s.length>0&&l(je,{images:s,selectedIndex:he,open:ve,onClose:()=>W(!1),onUpdate:ye,onDelete:S,onNavigate:e=>B(e),multiple:d})]})});ce.displayName="ImageFieldComponent";var dr=ce;export{dr as default};
|
|
@@ -10,6 +10,8 @@ export interface MapFieldComponentProps {
|
|
|
10
10
|
error?: boolean;
|
|
11
11
|
/** Helper text */
|
|
12
12
|
helperText?: string;
|
|
13
|
+
/** Whether the field is required */
|
|
14
|
+
required?: boolean;
|
|
13
15
|
}
|
|
14
16
|
declare const MapFieldComponent: ComponentType<MapFieldComponentProps>;
|
|
15
17
|
export default MapFieldComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/MapFieldComponent.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,EAAE,CACR,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,gBAAgB,CAAC,KACvD,IAAI,CAAC;IACV,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MapFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/MapFieldComponent.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,EAAE,CACR,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,gBAAgB,CAAC,KACvD,IAAI,CAAC;IACV,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,iBAAiB,EAAE,aAAa,CAAC,sBAAsB,CAkF5D,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as t,jsxs as
|
|
1
|
+
import{jsx as t,jsxs as n}from"react/jsx-runtime";import{Label as p,Input as u,Stack as m}from"@donotdev/components";import{useTranslation as f}from"@donotdev/core";const g=({label:s,value:i={},onChange:a,error:e,helperText:r,required:d})=>{const{t:l}=f("dndev");return n(m,{gap:"tight",children:[t(p,{required:d,style:{display:"block",fontSize:"var(--font-size-sm)",fontWeight:500},children:s}),n("div",{className:"dndev-surface","data-variant":e?"destructive":"default",style:{border:"1px solid",borderColor:e?"var(--destructive)":"var(--input)",borderRadius:"var(--radius-lg)",padding:"var(--gap-md)"},children:[t("p",{style:{fontSize:"var(--font-size-sm)",color:"var(--muted-foreground)",marginBottom:"var(--gap-md)"},children:"Map component placeholder"}),t(u,{type:"text",className:"dndev-w-full",placeholder:l("form.enterLocationData","Enter location data (JSON)"),value:JSON.stringify(i),onChange:c=>{try{const o=JSON.parse(c.target.value),v={target:{value:JSON.stringify(o)}};a(v)}catch{a({target:{value:"{}"}})}}})]}),r&&t("p",{style:{fontSize:"var(--font-size-xs)",color:e?"var(--destructive-foreground)":"var(--muted-foreground)",marginTop:"var(--gap-sm)"},children:r})]})};var x=g;export{x as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ChangeEvent, ComponentType
|
|
1
|
+
import type { ChangeEvent, ComponentType } from 'react';
|
|
2
2
|
export interface MultiDropdownComponentProps {
|
|
3
3
|
/** Label for the dropdown */
|
|
4
4
|
label: string;
|
|
@@ -16,7 +16,7 @@ export interface MultiDropdownComponentProps {
|
|
|
16
16
|
/** Change handler - accepts both event and direct value */
|
|
17
17
|
onChange: (value: string[] | ChangeEvent<HTMLSelectElement>) => void;
|
|
18
18
|
/** Blur handler */
|
|
19
|
-
onBlur?: (
|
|
19
|
+
onBlur?: () => void;
|
|
20
20
|
/** Whether the field is required */
|
|
21
21
|
required?: boolean;
|
|
22
22
|
/** Additional CSS classes */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiDropdownComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/MultiDropdownComponent.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MultiDropdownComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/MultiDropdownComponent.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,WAAW,2BAA2B;IAC1C,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,4BAA4B;IAC5B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D,8BAA8B;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACrE,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,sBAAsB,EAAE,aAAa,CAAC,2BAA2B,CA0HtE,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as t,jsxs as c}from"react/jsx-runtime";import{useMemo as C,useId as z}from"react";import{X as E}from"lucide-react";import{Combobox as I,Badge as V,BADGE_VARIANT as j,Button as w,BUTTON_VARIANT as B,Stack as d}from"@donotdev/components";import{useTranslation as R}from"@donotdev/core";const T=({label:g,value:o=[],options:s,error:h,helperText:a,onChange:u,onBlur:f,required:v,className:y})=>{const{t:m}=R("dndev"),p=z(),b=C(()=>s.map(e=>({value:String(e.value),label:e.label})),[s]),N=e=>{const n=Array.isArray(e)?e:[e],r={target:{value:JSON.stringify(n)}};u(r)},S=e=>{e||f?.()},A=e=>{const n=o.filter(l=>l!==e),r={target:{value:JSON.stringify(n)}};u(r)},i=!!h,O=`${p}-error`,x=`${p}-helper`;return c(d,{gap:"tight",className:y,children:[o.length>0&&t(d,{direction:"row",wrap:"wrap",gap:"medium",children:o.map((e,n)=>{const r=s.find(l=>String(l.value)===e)?.label||e;return c(V,{variant:j.SECONDARY,className:"dndev-gap-sm",children:[r,t(w,{type:"button",variant:B.GHOST,style:{padding:0,height:"auto"},onClick:()=>A(e),children:t(E,{className:"dndev-size-md"})})]},n)})}),t(I,{label:g,value:o,onValueChange:N,onOpenChange:S,placeholder:m("actions.selectOptions","Select options..."),emptyMessage:m("messages.noResults","No results found"),options:b,multiple:!0,required:v,variant:i?"destructive":void 0}),i&&c(d,{id:O,direction:"row",align:"center",gap:"tight",style:{fontSize:"var(--font-size-xs)",color:"var(--destructive-foreground)"},role:"alert",children:[t("span",{children:"\u26A0"}),a]}),a&&!i&&t("p",{id:x,style:{fontSize:"var(--font-size-xs)",color:"var(--muted-foreground)"},children:a})]})};var $=T;export{$ as default};
|
|
@@ -16,6 +16,8 @@ export interface MultiInputTextFieldComponentProps {
|
|
|
16
16
|
onChange: (value: string[] | ChangeEvent<HTMLInputElement>) => void;
|
|
17
17
|
/** Optional classname for styling */
|
|
18
18
|
className?: string;
|
|
19
|
+
/** Whether the field is required */
|
|
20
|
+
required?: boolean;
|
|
19
21
|
}
|
|
20
22
|
declare const MultiInputTextFieldComponent: ComponentType<MultiInputTextFieldComponentProps>;
|
|
21
23
|
export default MultiInputTextFieldComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiInputTextFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/MultiInputTextFieldComponent.tsx"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EAAY,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAKvE,MAAM,WAAW,iCAAiC;IAChD,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sEAAsE;IACtE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACpE,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,4BAA4B,EAAE,aAAa,CAC/C,iCAAiC,
|
|
1
|
+
{"version":3,"file":"MultiInputTextFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/MultiInputTextFieldComponent.tsx"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EAAY,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAKvE,MAAM,WAAW,iCAAiC;IAChD,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sEAAsE;IACtE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACpE,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,4BAA4B,EAAE,aAAa,CAC/C,iCAAiC,CA0FlC,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as r,jsxs as i}from"react/jsx-runtime";import{useState as
|
|
1
|
+
"use client";import{jsx as r,jsxs as i}from"react/jsx-runtime";import{useState as h}from"react";import{Input as y,Button as x,Label as b,Stack as d}from"@donotdev/components";import{useTranslation as S}from"@donotdev/core";const w=({label:u,value:o=[],onChange:l,className:c,required:p})=>{const{t:s}=S("dndev"),[a,m]=h(""),g=()=>{if(a.trim()){const e=[...o,a.trim()],t={target:{value:JSON.stringify(e)}};l(t),m("")}},f=e=>{const t=o.filter((A,v)=>v!==e),n={target:{value:JSON.stringify(t)}};l(n)};return i(d,{gap:"medium",className:c,children:[r("div",{children:r(b,{required:p,style:{fontSize:"var(--font-size-sm)",fontWeight:500},children:u})}),i(d,{direction:"row",align:"center",gap:"medium",children:[r(y,{type:"text",value:a,onChange:e=>m(e.target.value),className:"dndev-flex-1",placeholder:s("form.typeAndPressAdd","Type and press Add...")}),r(x,{type:"button",onClick:g,disabled:!a.trim(),children:s("form.add","Add")})]}),r(d,{direction:"row",wrap:"wrap",gap:"medium",children:o.map((e,t)=>i("span",{className:"dndev-surface","data-variant":"muted",style:{display:"inline-flex",alignItems:"center",gap:"var(--gap-sm)",padding:"var(--gap-sm) var(--gap-md)",fontSize:"var(--font-size-sm)",fontWeight:500,borderRadius:"var(--radius-lg)"},children:[e,r("button",{type:"button",onClick:()=>f(t),style:{color:"var(--muted-foreground)",marginInlineStart:"var(--gap-sm)"},onMouseEnter:n=>{n.currentTarget.style.color="var(--foreground)"},onMouseLeave:n=>{n.currentTarget.style.color="var(--muted-foreground)"},"aria-label":`${s("form.remove","Remove")} ${e}`,children:"\xD7"})]},t))})]})};var z=w;export{z as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/NumberFieldComponent.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,WAAW,yBAAyB;IACxC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACzD,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,oBAAoB,EAAE,aAAa,CAAC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"NumberFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/NumberFieldComponent.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,WAAW,yBAAyB;IACxC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACzD,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,oBAAoB,EAAE,aAAa,CAAC,yBAAyB,CAkElE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as i,jsxs as v}from"react/jsx-runtime";import{Input as x,cn as y,Stack as h}from"@donotdev/components";const j=({label:d,value:a,onChange:r,error:n,helperText:o,min:u,max:l,step:c,disabled:t,required:m,className:f,...p})=>{const g=e=>{const s=parseFloat(e.target.value);isNaN(s)?r(e):r({...e,target:{...e.target,value:s.toString()}})};return v(h,{gap:"tight",children:[i(x,{type:"number",label:d,value:a!==void 0?a.toString():"",onChange:g,min:u,max:l,step:c,disabled:t,required:m,className:y("dndev-w-full",f),"data-variant":n?"destructive":void 0,style:{opacity:t?"var(--opacity-muted)":void 0,cursor:t?"not-allowed":void 0},...p}),o&&i("p",{style:{fontSize:"var(--font-size-xs)",color:n?"var(--destructive-foreground)":"var(--muted-foreground)",marginTop:"var(--gap-sm)"},children:o})]})};var w=j;export{w as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/PasswordFieldComponent.tsx"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,aAAa,EAAoB,MAAM,sBAAsB,CAAC;AAEvE,MAAM,WAAW,2BAA4B,SAAQ,IAAI,CACvD,cAAc,CAAC,OAAO,aAAa,CAAC,EACpC,OAAO,GAAG,UAAU,CACrB;IACC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,EAAE,CACR,KAAK,EAAE,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KACvD,IAAI,CAAC;IACV,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,sBAAsB,EAAE,aAAa,CAAC,2BAA2B,
|
|
1
|
+
{"version":3,"file":"PasswordFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/PasswordFieldComponent.tsx"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,aAAa,EAAoB,MAAM,sBAAsB,CAAC;AAEvE,MAAM,WAAW,2BAA4B,SAAQ,IAAI,CACvD,cAAc,CAAC,OAAO,aAAa,CAAC,EACpC,OAAO,GAAG,UAAU,CACrB;IACC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,EAAE,CACR,KAAK,EAAE,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KACvD,IAAI,CAAC;IACV,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,sBAAsB,EAAE,aAAa,CAAC,2BAA2B,CAqCtE,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as o,jsxs as i}from"react/jsx-runtime";import{useId as l}from"react";import{PasswordInput as u,Stack as m}from"@donotdev/components";const c=({label:s,value:a,onChange:t,error:n,helperText:r,...e})=>{const d=l();return i(m,{gap:"tight",children:[o(u,{id:d,value:a??"",onChange:t,label:s,className:"dndev-w-full",required:e.required,...e}),r&&o("p",{style:{fontSize:"var(--font-size-xs)",color:n?"var(--destructive-foreground)":"var(--muted-foreground)",marginTop:"var(--gap-sm)"},children:r})]})};var j=c;export{j as default};
|
|
@@ -1,28 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Phone Number Component
|
|
3
|
+
* @description Single phone number input with country code selector and flag. Form field component for phone number inputs in CRUD forms.
|
|
4
|
+
*
|
|
5
|
+
* @version 0.0.1
|
|
6
|
+
* @since 0.0.1
|
|
7
|
+
* @author AMBROISE PARK Consulting
|
|
8
|
+
*/
|
|
9
|
+
import { type ChangeEvent, type ComponentType } from 'react';
|
|
6
10
|
export interface PhoneNumberComponentProps {
|
|
7
|
-
/**
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
/**
|
|
11
|
+
/** Field label */
|
|
12
|
+
label: string;
|
|
13
|
+
/** Current phone number value (full number with country code) */
|
|
14
|
+
value?: string;
|
|
15
|
+
/** Change handler */
|
|
16
|
+
onChange: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
17
|
+
/** Error message */
|
|
18
|
+
error?: string;
|
|
19
|
+
/** Helper text */
|
|
14
20
|
helperText?: string;
|
|
15
|
-
/**
|
|
16
|
-
|
|
21
|
+
/** Required field indicator */
|
|
22
|
+
required?: boolean;
|
|
23
|
+
/** Disabled state */
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
/** Default country code (e.g., 'FR' for +33) */
|
|
26
|
+
defaultCountry?: string;
|
|
27
|
+
/** Whether to show country flags */
|
|
28
|
+
showFlags?: boolean;
|
|
29
|
+
/** Preferred country codes to show at the top (e.g., ['FR', 'US', 'GB']) */
|
|
30
|
+
preferredCountries?: string[];
|
|
31
|
+
/** Custom list of country codes to show (if provided, only these countries are shown) */
|
|
32
|
+
countries?: string[];
|
|
17
33
|
}
|
|
18
34
|
/**
|
|
19
|
-
* PhoneNumberComponent renders phone number
|
|
35
|
+
* PhoneNumberComponent renders a single phone number input with country code selector.
|
|
20
36
|
*
|
|
21
37
|
* @version 0.0.1
|
|
22
38
|
* @since 0.0.1
|
|
23
39
|
* @author AMBROISE PARK Consulting
|
|
24
|
-
* @param props - PhoneNumberComponentProps
|
|
25
|
-
* @returns JSX.Element
|
|
26
40
|
*/
|
|
27
41
|
declare const PhoneNumberComponent: ComponentType<PhoneNumberComponentProps>;
|
|
28
42
|
export default PhoneNumberComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneNumberComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/PhoneNumberComponent.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PhoneNumberComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/PhoneNumberComponent.tsx"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAaf,MAAM,WAAW,yBAAyB;IACxC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACzD,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,QAAA,MAAM,oBAAoB,EAAE,aAAa,CAAC,yBAAyB,CA+NlE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
"use client";import{jsx as t,jsxs as i}from"react/jsx-runtime";import{useState as B,useMemo as m,useEffect as L,useId as M}from"react";import{Input as W,FloatingLabel as k,Button as F,BUTTON_VARIANT as O,DropdownMenu as U,Stack as p}from"@donotdev/components";import{Flag as I,COUNTRIES as N}from"@donotdev/core";const _=({label:V,value:d="",onChange:R,error:x,helperText:g,required:w=!1,disabled:b=!1,defaultCountry:S="FR",showFlags:z=!0,preferredCountries:c,countries:h})=>{const a=M(),f=m(()=>h&&h.length>0?h.map(e=>N.find(n=>n.code===e)).filter(e=>e!==void 0):Array.from(N),[h]),l=m(()=>{if(!c||c.length===0)return f;const e=c.map(o=>f.find(y=>y.code===o)).filter(o=>o!==void 0),n=f.filter(o=>!c.includes(o.code));return[...e,...n]},[f,c]),s=m(()=>l.find(e=>e.code===S)||l[0]||N[0],[S,l]),{country:C,phoneNumber:T}=m(()=>{if(!d)return{country:s,phoneNumber:""};const e=l.find(n=>d.startsWith(n.dialCode));return e?{country:e,phoneNumber:d.slice(e.dialCode.length).trim()}:d.startsWith("+")?{country:s,phoneNumber:d}:{country:s,phoneNumber:d}},[d,s,l]),[r,E]=B(s);L(()=>{C.code!==r.code&&E(C)},[C,r.code]);const v=T,$=e=>{E(e);const o={target:{value:e.dialCode+(v?" "+v:"")}};R(o)},j=e=>{const n=e.target.value,y={target:{value:r.dialCode+(n?" "+n:"")}};R(y)},A=l.map(e=>({label:e.dialCode,onClick:()=>$(e),checked:e.code===r.code,children:z?i(p,{direction:"row",align:"center",gap:"tight",children:[t(I,{code:e.flagCode,title:e.name}),t("span",{children:e.dialCode}),t("span",{style:{color:"var(--muted-foreground)",fontSize:"var(--font-size-xs)"},children:e.name})]}):i("span",{children:[e.dialCode," ",e.name]})})),u=!!x;return i(p,{gap:"tight",children:[i("div",{className:"dndev-relative",children:[t(k,{htmlFor:a,disabled:b,required:w,children:V}),i("div",{style:{position:"relative",display:"flex",gap:"var(--gap-sm)"},children:[t(U,{trigger:t(F,{type:"button",variant:O.OUTLINE,disabled:b,style:{minWidth:"fit-content",padding:"0 var(--gap-md)",borderRight:"none",borderTopRightRadius:0,borderBottomRightRadius:0},"aria-label":`Country code: ${r.dialCode}`,children:i(p,{direction:"row",align:"center",gap:"tight",children:[z&&t(I,{code:r.flagCode,title:r.name}),t("span",{children:r.dialCode})]})}),items:A,contentWidth:"16rem"}),t(W,{id:a,type:"tel",inputMode:"tel",value:v,onChange:j,disabled:b,placeholder:"6 12 34 56 78","data-variant":u?"destructive":void 0,style:{flex:1,borderTopLeftRadius:0,borderBottomLeftRadius:0},"aria-describedby":u?`${a}-error`:g?`${a}-helper`:void 0,"aria-invalid":u})]})]}),u&&i(p,{id:`${a}-error`,direction:"row",align:"center",gap:"tight",style:{fontSize:"var(--font-size-xs)",color:"var(--destructive-foreground)"},role:"alert",children:[t("span",{children:"\u26A0"}),x]}),g&&!u&&t("p",{id:`${a}-helper`,style:{fontSize:"var(--font-size-xs)",color:"var(--muted-foreground)"},children:g})]})};var H=_;export{H as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/RadioFieldComponent.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,WAAW,EAGjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,WAAW,wBAAwB;IACvC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAClE,8BAA8B;IAC9B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,mBAAmB,EAAE,aAAa,CAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"RadioFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/RadioFieldComponent.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,WAAW,EAGjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,WAAW,wBAAwB;IACvC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAClE,8BAA8B;IAC9B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,mBAAmB,EAAE,aAAa,CAAC,wBAAwB,CA4ChE,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as
|
|
1
|
+
import{jsx as e,jsxs as c}from"react/jsx-runtime";import{RadioGroup as u,Label as f,Stack as h}from"@donotdev/components";const v=({label:o,value:n,onChange:r,options:s,error:a,helperText:t,required:i})=>{const d=l=>{r({target:{value:l}})};return c(h,{gap:"tight",children:[e(f,{required:i,style:{display:"block",fontSize:"var(--font-size-sm)",fontWeight:500},children:o}),e(u,{value:n,onValueChange:d,items:s}),t&&e("p",{style:{fontSize:"var(--font-size-xs)",color:a?"var(--destructive-foreground)":"var(--muted-foreground)"},children:t})]})};var x=v;export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/RangeFieldComponent.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,WAAW,wBAAwB;IACvC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAClE,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,mBAAmB,EAAE,aAAa,CAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"RangeFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/RangeFieldComponent.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,WAAW,wBAAwB;IACvC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAClE,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,mBAAmB,EAAE,aAAa,CAAC,wBAAwB,CA2EhE,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as
|
|
1
|
+
import{jsx as e,jsxs as d}from"react/jsx-runtime";import{Label as h,Slider as y,Stack as c}from"@donotdev/components";const x=({label:o,value:a=0,onChange:l,error:i,helperText:s,min:t=0,max:u=100,step:f=1,disabled:r,required:g,showValue:v=!0})=>{const m=n=>{const p={target:{value:n.toString()}};l(p)};return d(c,{gap:"tight",children:[d(c,{direction:"row",justify:"between",align:"center",children:[e(h,{required:g,style:{fontSize:"var(--font-size-sm)",fontWeight:500},children:o}),v&&e("span",{style:{fontSize:"var(--font-size-sm)",color:"var(--muted-foreground)"},children:a})]}),e(y,{value:[a??t],onValueChange:([n])=>m(n??t),min:t,max:u,step:f,disabled:r,style:{borderColor:i?"var(--destructive)":void 0,opacity:r?"var(--opacity-muted)":void 0,cursor:r?"not-allowed":void 0},"aria-label":o}),s&&e("p",{style:{fontSize:"var(--font-size-xs)",color:i?"var(--destructive-foreground)":"var(--muted-foreground)",marginTop:"var(--gap-sm)"},children:s})]})};var C=x;export{C as default};
|
|
@@ -18,15 +18,20 @@ export interface ReferenceFieldComponentProps {
|
|
|
18
18
|
error?: boolean;
|
|
19
19
|
/** Helper text */
|
|
20
20
|
helperText?: string;
|
|
21
|
+
/** Whether the field is required */
|
|
22
|
+
required?: boolean;
|
|
23
|
+
/** Blur handler */
|
|
24
|
+
onBlur?: () => void;
|
|
21
25
|
}
|
|
22
26
|
/**
|
|
23
27
|
* Reference field component for selecting related documents
|
|
24
|
-
* Provides searchable dropdown with document selection
|
|
28
|
+
* Provides searchable dropdown with document selection.
|
|
29
|
+
* Input + Dropdown pattern: user types in input, dropdown appears below.
|
|
25
30
|
*
|
|
26
31
|
* @component
|
|
27
32
|
* @param {ReferenceFieldComponentProps} props - Component props
|
|
28
33
|
* @returns {JSX.Element} Reference selection field with search
|
|
29
34
|
*/
|
|
30
|
-
declare const ReferenceFieldComponent: ({ label, value, onChange, collection, searchFields, displayField, error, helperText, }: ReferenceFieldComponentProps) => import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
declare const ReferenceFieldComponent: ({ label, value, onChange, collection, searchFields, displayField, error, helperText, required, onBlur, }: ReferenceFieldComponentProps) => import("react/jsx-runtime").JSX.Element;
|
|
31
36
|
export default ReferenceFieldComponent;
|
|
32
37
|
//# sourceMappingURL=ReferenceFieldComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferenceFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/ReferenceFieldComponent.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReferenceFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/ReferenceFieldComponent.tsx"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,uBAAuB,GAAI,0GAW9B,4BAA4B,4CA6H9B,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as l,jsxs as I}from"react/jsx-runtime";import{useState as r,useEffect as S,useMemo as F,useId as N}from"react";import{useCrud as R}from"../../../useCrud";import{Combobox as w,Stack as j}from"@donotdev/components";import{useTranslation as D}from"@donotdev/core";const G=({label:s,value:t,onChange:O,collection:f,searchFields:u=["name"],displayField:m="name",error:z,helperText:i,required:_,onBlur:A})=>{const{t:p}=D("dndev"),h=N(),[g,$]=r(!1),{query:y,get:x}=R(f),[a,q]=r([]),[E,C]=r(!1),[b,v]=r(null);S(()=>{t&&!b&&x(t).then(e=>{e&&v(e)})},[t,x,b]),S(()=>{if(!g)return;(async()=>{C(!0);try{const o=await y({limit:50});q(o)}catch{}finally{C(!1)}})()},[g,y,f]);const L=F(()=>a.map(e=>{const o=e[m]||e.id,n=u.map(d=>e[d]).filter(Boolean).join(" ");return{value:e.id,label:o,description:n!==o?n:void 0}}),[a,m,u]),M=e=>{const o=Array.isArray(e)?e[0]||"":e;O(o);const n=a.find(d=>d.id===o);n&&v(n)},V=e=>{$(e),e||A?.()},c=!!z,k=`${h}-error`,B=`${h}-helper`;return I(j,{gap:"tight",children:[l(w,{label:s,value:t||"",onValueChange:M,onOpenChange:V,placeholder:p("common.select_placeholder",{label:s})||`Select ${s}`,emptyMessage:p("common.no_results")||"No results found",options:L,required:_,variant:c?"destructive":void 0,isLoading:E,clearable:!!t}),c&&I(j,{id:k,direction:"row",align:"center",gap:"tight",style:{fontSize:"var(--font-size-xs)",color:"var(--destructive-foreground)"},role:"alert",children:[l("span",{children:"\u26A0"}),i]}),i&&!c&&l("p",{id:B,style:{fontSize:"var(--font-size-xs)",color:"var(--muted-foreground)"},children:i})]})};var W=G;export{W as default};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ChangeEvent, ComponentType } from 'react';
|
|
2
|
+
export interface SwitchFieldComponentProps {
|
|
3
|
+
/** Field label */
|
|
4
|
+
label: string;
|
|
5
|
+
/** Whether the toggle is checked */
|
|
6
|
+
checked?: boolean;
|
|
7
|
+
/** Change handler */
|
|
8
|
+
onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
9
|
+
/** Label for unchecked state (e.g., "Manual") */
|
|
10
|
+
uncheckedLabel?: string;
|
|
11
|
+
/** Label for checked state (e.g., "Automatic") */
|
|
12
|
+
checkedLabel?: string;
|
|
13
|
+
/** Helper text */
|
|
14
|
+
helperText?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* SwitchFieldComponent renders a switch field for CRUD forms.
|
|
18
|
+
* Displays field label, delegates switch rendering to Switch component.
|
|
19
|
+
*
|
|
20
|
+
* @version 0.0.2
|
|
21
|
+
* @since 0.0.1
|
|
22
|
+
* @author AMBROISE PARK Consulting
|
|
23
|
+
* @param props - SwitchFieldComponentProps
|
|
24
|
+
* @returns JSX.Element
|
|
25
|
+
*/
|
|
26
|
+
declare const SwitchFieldComponent: ComponentType<SwitchFieldComponentProps>;
|
|
27
|
+
export default SwitchFieldComponent;
|
|
28
|
+
//# sourceMappingURL=SwitchFieldComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwitchFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/SwitchFieldComponent.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,WAAW,yBAAyB;IACxC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC1D,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,oBAAoB,EAAE,aAAa,CAAC,yBAAyB,CAyClE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as n}from"react/jsx-runtime";import{Switch as m,Text as i,Stack as l}from"@donotdev/components";import{useTranslation as p}from"@donotdev/core";const f=({label:t,checked:c=!1,onChange:a,uncheckedLabel:d,checkedLabel:s,helperText:r})=>{const{t:g}=p("dndev"),o=h=>{a&&a({target:{checked:h}})};return e(l,{gap:"tight",children:[e(l,{direction:"row",align:"center",gap:"medium",style:{flexWrap:"wrap"},children:[e(i,{level:"body",align:"start",children:[t,":"]}),n(m,{checked:c,onCheckedChange:o,"aria-label":t,variant:"muted",uncheckedLabel:d,checkedLabel:s})]}),r&&n(i,{as:"p",variant:"muted",level:"small",children:r})]})};var v=f;export{v as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextAreaComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/TextAreaComponent.tsx"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,WAAW,EAKhB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAEf,OAAO,
|
|
1
|
+
{"version":3,"file":"TextAreaComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/TextAreaComponent.tsx"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,WAAW,EAKhB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,QAAQ,EAKT,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAClD,cAAc,CAAC,OAAO,QAAQ,CAAC,EAC/B,OAAO,GAAG,UAAU,CACrB;IACC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAC5D,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAA,MAAM,iBAAiB,EAAE,aAAa,CAAC,sBAAsB,CA6I5D,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as s,jsxs as i}from"react/jsx-runtime";import{useState as A,useId as B,useRef as E,useEffect as I}from"react";import{Textarea as _,FloatingLabel as k,Spinner as q,cn as p,Stack as m}from"@donotdev/components";const C=({label:y,value:o="",onChange:x,error:u,helperText:a,rows:$=3,loading:d=!1,maxLength:r,showCharCount:v=!1,autoResize:n=!1,required:b=!1,disabled:h=!1,className:F,...S})=>{const e=B(),[H,g]=A(!1),l=E(null),t=!!u,c=o.length,j=r&&c>r*.8,w=r&&c>r;I(()=>{if(n&&l.current){const f=l.current;f.style.height="auto",f.style.height=`${f.scrollHeight}px`}},[o,n]);const N=()=>g(!0),z=()=>g(!1);return i(m,{gap:"tight",children:[i("div",{className:"dndev-relative",children:[s(k,{htmlFor:e,disabled:h||d,required:b,children:y}),s(_,{ref:l,id:e,value:o,onChange:x,onFocus:N,onBlur:z,disabled:h||d,maxLength:r,rows:n?1:$,"aria-describedby":p(t&&`${e}-error`,a&&!t&&`${e}-helper`,v&&`${e}-count`),"aria-invalid":t,className:p("dndev-w-full",n&&"dndev-overflow-hidden",F),"data-variant":t?"destructive":void 0,style:{resize:n?"none":void 0},...S}),d&&s("div",{className:"dndev-absolute",style:{right:"var(--gap-md)",top:"var(--gap-md)"},children:s(q,{"aria-label":"Loading"})})]}),v&&r&&i("div",{id:`${e}-count`,style:{fontSize:"var(--font-size-xs)",textAlign:"right",color:w?"var(--destructive-foreground)":j?"var(--warning)":"var(--muted-foreground)"},children:[c,"/",r]}),t&&i(m,{as:"p",id:`${e}-error`,direction:"row",align:"center",gap:"tight",style:{fontSize:"var(--font-size-xs)",color:"var(--destructive-foreground)"},role:"alert",children:[s("span",{children:"\u26A0"}),u]}),a&&!t&&s("p",{id:`${e}-helper`,style:{fontSize:"var(--font-size-xs)",color:"var(--muted-foreground)"},children:a})]})};var J=C;export{J as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/TextFieldComponent.tsx"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,EAA6B,MAAM,sBAAsB,CAAC;AAExE,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CACnD,cAAc,CAAC,OAAO,KAAK,CAAC,EAC5B,OAAO,GAAG,UAAU,CACrB;IACC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,EAAE,CACR,KAAK,EAAE,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KACvD,IAAI,CAAC;IACV,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,QAAA,MAAM,kBAAkB,EAAE,aAAa,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"TextFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/TextFieldComponent.tsx"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,EAA6B,MAAM,sBAAsB,CAAC;AAExE,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CACnD,cAAc,CAAC,OAAO,KAAK,CAAC,EAC5B,OAAO,GAAG,UAAU,CACrB;IACC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,EAAE,CACR,KAAK,EAAE,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KACvD,IAAI,CAAC;IACV,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,QAAA,MAAM,kBAAkB,EAAE,aAAa,CAAC,uBAAuB,CAkG9D,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as o,jsxs as s}from"react/jsx-runtime";import{useId as j}from"react";import{Input as x,cn as c,Stack as u}from"@donotdev/components";const _=({label:f,value:d="",onChange:v,error:a,helperText:t,type:p="text",loading:g=!1,maxLength:r,showCharCount:l=!1,required:h=!1,disabled:m=!1,className:z,...$})=>{const e=j(),i=!!a,n=d.length,b=r&&n>r*.8,y=r&&n>r,{children:w,...S}=$;return s(u,{gap:"tight",children:[o(x,{id:e,type:p,value:d,onChange:v,label:f,disabled:m||g,maxLength:r,required:h,"aria-describedby":c(i&&`${e}-error`,t&&!i&&`${e}-helper`,l&&`${e}-count`),"aria-invalid":i,className:c("dndev-w-full",z),"data-variant":i?"destructive":void 0,...S}),l&&r&&s("div",{id:`${e}-count`,style:{fontSize:"var(--font-size-xs)",textAlign:"right",color:y?"var(--destructive-foreground)":b?"var(--warning)":"var(--muted-foreground)"},children:[n,"/",r]}),i&&s(u,{id:`${e}-error`,direction:"row",align:"center",gap:"tight",style:{fontSize:"var(--font-size-xs)",color:"var(--destructive-foreground)"},role:"alert",children:[o("span",{children:"\u26A0"}),a]}),t&&!i&&o("p",{id:`${e}-helper`,style:{fontSize:"var(--font-size-xs)",color:"var(--muted-foreground)"},children:t})]})};var C=_;export{C as default};
|
|
@@ -12,6 +12,8 @@ export interface TimestampFieldComponentProps {
|
|
|
12
12
|
helperText?: string;
|
|
13
13
|
/** Mode for underlying date field (defaults to "datetime-local") */
|
|
14
14
|
mode?: 'datetime-local' | 'date';
|
|
15
|
+
/** Whether the field is required */
|
|
16
|
+
required?: boolean;
|
|
15
17
|
}
|
|
16
18
|
declare const TimestampFieldComponent: ComponentType<TimestampFieldComponentProps>;
|
|
17
19
|
export default TimestampFieldComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimestampFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/TimestampFieldComponent.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACtE,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,IAAI,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"TimestampFieldComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/TimestampFieldComponent.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAExD,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACtE,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,IAAI,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACjC,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,uBAAuB,EAAE,aAAa,CAAC,4BAA4B,CAuCxE,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as m}from"react/jsx-runtime";import
|
|
1
|
+
import{jsx as m}from"react/jsx-runtime";import h from"./DateFieldComponent";const p=({label:o,value:e,onChange:t,error:a,helperText:r,mode:s="datetime-local",required:l})=>{const i=e?new Date(e).toISOString():"";return m(h,{label:o,value:i,onChange:n=>{if(n){const d={target:{value:new Date(n).toISOString()}};t(d)}else t({target:{value:""}})},error:a,helperText:r,mode:s,required:l})};var f=p;export{f as default};
|
|
@@ -18,6 +18,8 @@ export { default as DateFieldComponent } from './DateFieldComponent';
|
|
|
18
18
|
export type { DateFieldComponentProps } from './DateFieldComponent';
|
|
19
19
|
export { default as CheckboxFieldComponent } from './CheckboxFieldComponent';
|
|
20
20
|
export type { CheckboxFieldComponentProps } from './CheckboxFieldComponent';
|
|
21
|
+
export { default as ComboboxComponent } from './ComboboxComponent';
|
|
22
|
+
export type { ComboboxComponentProps } from './ComboboxComponent';
|
|
21
23
|
export { default as DropdownComponent } from './DropdownComponent';
|
|
22
24
|
export type { DropdownComponentProps } from './DropdownComponent';
|
|
23
25
|
export { default as MultiDropdownComponent } from './MultiDropdownComponent';
|
|
@@ -28,12 +30,14 @@ export { default as ImageFieldComponent } from './ImageFieldComponent';
|
|
|
28
30
|
export type { ImageFieldComponentProps } from './ImageFieldComponent';
|
|
29
31
|
export { default as TextAreaComponent } from './TextAreaComponent';
|
|
30
32
|
export type { TextAreaComponentProps } from './TextAreaComponent';
|
|
33
|
+
export { default as SwitchFieldComponent } from './SwitchFieldComponent';
|
|
34
|
+
export type { SwitchFieldComponentProps } from './SwitchFieldComponent';
|
|
31
35
|
export { default as RadioFieldComponent } from './RadioFieldComponent';
|
|
32
36
|
export type { RadioFieldComponentProps } from './RadioFieldComponent';
|
|
33
37
|
export { default as RangeFieldComponent } from './RangeFieldComponent';
|
|
34
38
|
export type { RangeFieldComponentProps } from './RangeFieldComponent';
|
|
35
39
|
export { default as PhoneNumberComponent } from './PhoneNumberComponent';
|
|
36
|
-
export type { PhoneNumberComponentProps
|
|
40
|
+
export type { PhoneNumberComponentProps } from './PhoneNumberComponent';
|
|
37
41
|
export { default as GeoPointFieldComponent } from './GeoPointFieldComponent';
|
|
38
42
|
export type { GeoPointFieldComponentProps, GeoPoint, } from './GeoPointFieldComponent';
|
|
39
43
|
export { default as MapFieldComponent } from './MapFieldComponent';
|
|
@@ -52,4 +56,6 @@ export { default as PasswordFieldComponent } from './PasswordFieldComponent';
|
|
|
52
56
|
export type { PasswordFieldComponentProps } from './PasswordFieldComponent';
|
|
53
57
|
export { default as AddressFieldComponent } from './AddressFieldComponent';
|
|
54
58
|
export type { AddressFieldComponentProps } from './AddressFieldComponent';
|
|
59
|
+
export { default as CurrencyFieldComponent } from './CurrencyFieldComponent';
|
|
60
|
+
export type { CurrencyFieldComponentProps } from './CurrencyFieldComponent';
|
|
55
61
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/index.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/index.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,YAAY,EACV,2BAA2B,EAC3B,QAAQ,GACT,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,YAAY,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAE9E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,YAAY,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAE9E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACzF,YAAY,EAAE,iCAAiC,EAAE,MAAM,gCAAgC,CAAC;AAExF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,YAAY,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{default as t}from"./AvatarFieldComponent";import{default as
|
|
1
|
+
import{default as t}from"./AvatarFieldComponent";import{default as r}from"./BadgeFieldComponent";import{default as m}from"./TextFieldComponent";import{default as d}from"./NumberFieldComponent";import{default as l}from"./DateFieldComponent";import{default as s}from"./CheckboxFieldComponent";import{default as i}from"./ComboboxComponent";import{default as F}from"./DropdownComponent";import{default as c}from"./MultiDropdownComponent";import{default as T}from"./FileFieldComponent";import{default as h}from"./ImageFieldComponent";import{default as D}from"./TextAreaComponent";import{default as P}from"./SwitchFieldComponent";import{default as B}from"./RadioFieldComponent";import{default as N}from"./RangeFieldComponent";import{default as v}from"./PhoneNumberComponent";import{default as G}from"./GeoPointFieldComponent";import{default as S}from"./MapFieldComponent";import{default as q}from"./TimestampFieldComponent";import{default as E}from"./ReferenceFieldComponent";import{default as K}from"./MultiInputTextFieldComponent";import{default as O}from"./ButtonFieldComponent";import{default as U}from"./HiddenFieldComponent";import{default as W}from"./PasswordFieldComponent";import{default as Y}from"./AddressFieldComponent";import{default as _}from"./CurrencyFieldComponent";export{Y as AddressFieldComponent,t as AvatarFieldComponent,r as BadgeFieldComponent,O as ButtonFieldComponent,s as CheckboxFieldComponent,i as ComboboxComponent,_ as CurrencyFieldComponent,l as DateFieldComponent,F as DropdownComponent,T as FileFieldComponent,G as GeoPointFieldComponent,U as HiddenFieldComponent,h as ImageFieldComponent,S as MapFieldComponent,c as MultiDropdownComponent,K as MultiInputTextFieldComponent,d as NumberFieldComponent,W as PasswordFieldComponent,v as PhoneNumberComponent,B as RadioFieldComponent,N as RangeFieldComponent,E as ReferenceFieldComponent,P as SwitchFieldComponent,D as TextAreaComponent,m as TextFieldComponent,q as TimestampFieldComponent};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ImageMetadata } from '../../../utils/imageUtils';
|
|
2
|
+
export interface ImageViewerDialogProps {
|
|
3
|
+
/** Array of images */
|
|
4
|
+
images: ImageMetadata[];
|
|
5
|
+
/** Selected image index */
|
|
6
|
+
selectedIndex: number;
|
|
7
|
+
/** Open state */
|
|
8
|
+
open: boolean;
|
|
9
|
+
/** Close callback */
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
/** Update callback */
|
|
12
|
+
onUpdate: (index: number, updates: Partial<ImageMetadata>) => void;
|
|
13
|
+
/** Delete callback */
|
|
14
|
+
onDelete: (index: number) => void;
|
|
15
|
+
/** Navigate callback */
|
|
16
|
+
onNavigate: (index: number) => void;
|
|
17
|
+
/** Multiple mode */
|
|
18
|
+
multiple?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* ImageViewerDialog - Full-size image preview with edit controls (Crop, Rotate, Metadata)
|
|
22
|
+
*/
|
|
23
|
+
export declare function ImageViewerDialog({ images, selectedIndex, open, onClose, onUpdate, onDelete, onNavigate, multiple, }: ImageViewerDialogProps): import("react/jsx-runtime").JSX.Element | null;
|
|
24
|
+
export default ImageViewerDialog;
|
|
25
|
+
//# sourceMappingURL=ImageViewerDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageViewerDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/form/internal/ImageViewerDialog.tsx"],"names":[],"mappings":"AAuCA,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEnG,MAAM,WAAW,sBAAsB;IACrC,sBAAsB;IACtB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,2BAA2B;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,qBAAqB;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,sBAAsB;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACnE,sBAAsB;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,wBAAwB;IACxB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,aAAa,EACb,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAgB,GACjB,EAAE,sBAAsB,kDAoRxB;AAED,eAAe,iBAAiB,CAAC"}
|