@dufy_asesorias/widget-dufy-kit 1.0.1 → 1.0.2
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/index.es.js +37 -31
- package/dist/index.umd.js +1 -1
- package/dist/widget-dufy-kit.css +1 -1
- package/index.d.ts +43 -2
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -352,8 +352,24 @@ var c = ({ field: c, label: l, value: u, type: d = "text", options: f = [], plac
|
|
|
352
352
|
true: "Sí",
|
|
353
353
|
false: "No"
|
|
354
354
|
}, displayAs: m = "toggle" }) => {
|
|
355
|
-
let [h, g] = n(!1), [_, v] = n(null), [y, b] = n("")
|
|
356
|
-
|
|
355
|
+
let [h, g] = n(!1), [_, v] = n(null), [y, b] = n(""), x = () => {
|
|
356
|
+
d || (g(!0), v(m === "toggle" ? s ?? !1 : s), b(""));
|
|
357
|
+
}, S = async () => {
|
|
358
|
+
if (u && _ == null) {
|
|
359
|
+
b("Este campo es obligatorio");
|
|
360
|
+
return;
|
|
361
|
+
}
|
|
362
|
+
try {
|
|
363
|
+
l && await l(t, _), g(!1), b("");
|
|
364
|
+
} catch (e) {
|
|
365
|
+
b(e.message || "Error al guardar");
|
|
366
|
+
}
|
|
367
|
+
}, C = () => {
|
|
368
|
+
g(!1), v(null), b("");
|
|
369
|
+
}, w = (e) => {
|
|
370
|
+
v(e), b("");
|
|
371
|
+
};
|
|
372
|
+
return /* @__PURE__ */ e.createElement("div", { className: `flex items-center justify-between p-3 bg-gray-50 rounded-lg ${f}` }, /* @__PURE__ */ e.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ e.createElement("label", { className: "text-sm text-gray-600 block mb-1" }, r, u && m !== "toggle" && /* @__PURE__ */ e.createElement("span", { className: "text-red-500 ml-1" }, "*")), h ? /* @__PURE__ */ e.createElement("div", null, m === "toggle" ? /* @__PURE__ */ e.createElement("label", {
|
|
357
373
|
htmlFor: `${t}_toggle`,
|
|
358
374
|
className: "relative inline-flex items-center cursor-pointer"
|
|
359
375
|
}, /* @__PURE__ */ e.createElement("input", {
|
|
@@ -361,45 +377,35 @@ var c = ({ field: c, label: l, value: u, type: d = "text", options: f = [], plac
|
|
|
361
377
|
id: `${t}_toggle`,
|
|
362
378
|
className: "sr-only peer",
|
|
363
379
|
checked: _ === !0,
|
|
364
|
-
onChange: () =>
|
|
380
|
+
onChange: () => w(!_),
|
|
365
381
|
disabled: d
|
|
366
|
-
}), /* @__PURE__ */ e.createElement("div", { className: "w-11 h-6 bg-gray-300 rounded-full peer peer-focus:ring-2 peer-focus:ring-
|
|
367
|
-
key: n.toString(),
|
|
368
|
-
className: "flex items-center cursor-pointer"
|
|
369
|
-
}, /* @__PURE__ */ e.createElement("input", {
|
|
382
|
+
}), /* @__PURE__ */ e.createElement("div", { className: "w-11 h-6 bg-gray-300 rounded-full peer peer-focus:ring-2 peer-focus:ring-blue-300 peer-checked:bg-indigo-600 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-0.5 after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all" }), /* @__PURE__ */ e.createElement("span", { className: "ml-3 text-sm font-medium text-gray-700 select-none" }, _ ? p.true : p.false)) : /* @__PURE__ */ e.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ e.createElement("label", { className: "flex items-center cursor-pointer" }, /* @__PURE__ */ e.createElement("input", {
|
|
370
383
|
type: "radio",
|
|
371
384
|
name: `${t}_boolean`,
|
|
372
|
-
checked: _ ===
|
|
373
|
-
onChange: () =>
|
|
374
|
-
className: "mr-3 h-4 w-4 text-
|
|
385
|
+
checked: _ === !0,
|
|
386
|
+
onChange: () => w(!0),
|
|
387
|
+
className: "mr-3 h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300",
|
|
375
388
|
disabled: d
|
|
376
|
-
}), /* @__PURE__ */ e.createElement("span", { className: "text-sm text-gray-700" },
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
b(e.message || "Error al guardar");
|
|
386
|
-
}
|
|
387
|
-
},
|
|
389
|
+
}), /* @__PURE__ */ e.createElement("span", { className: "text-sm text-gray-700" }, p.true)), /* @__PURE__ */ e.createElement("label", { className: "flex items-center cursor-pointer" }, /* @__PURE__ */ e.createElement("input", {
|
|
390
|
+
type: "radio",
|
|
391
|
+
name: `${t}_boolean`,
|
|
392
|
+
checked: _ === !1,
|
|
393
|
+
onChange: () => w(!1),
|
|
394
|
+
className: "mr-3 h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300",
|
|
395
|
+
disabled: d
|
|
396
|
+
}), /* @__PURE__ */ e.createElement("span", { className: "text-sm text-gray-700" }, p.false))), y && /* @__PURE__ */ e.createElement("p", { className: "text-red-500 text-xs mt-2" }, y)) : /* @__PURE__ */ e.createElement("span", { className: `break-words ${s == null && m !== "toggle" ? "text-gray-400 italic" : "font-medium text-gray-800"}` }, s === !0 ? p.true : s === !1 || m === "toggle" ? p.false : "No especificado")), c && /* @__PURE__ */ e.createElement("div", { className: "ml-4 flex gap-2 flex-shrink-0" }, h ? /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("button", {
|
|
397
|
+
onClick: S,
|
|
388
398
|
disabled: d,
|
|
389
|
-
className: "p-1 text-
|
|
399
|
+
className: "p-1 text-green-600 hover:bg-green-100 rounded disabled:opacity-50",
|
|
390
400
|
title: "Guardar"
|
|
391
401
|
}, /* @__PURE__ */ e.createElement(a, { size: 16 })), /* @__PURE__ */ e.createElement("button", {
|
|
392
|
-
onClick:
|
|
393
|
-
|
|
394
|
-
},
|
|
395
|
-
className: "p-1 text-brand-danger hover:bg-brand-dangerLight rounded",
|
|
402
|
+
onClick: C,
|
|
403
|
+
className: "p-1 text-red-600 hover:bg-red-100 rounded",
|
|
396
404
|
title: "Cancelar"
|
|
397
405
|
}, /* @__PURE__ */ e.createElement(o, { size: 16 }))) : /* @__PURE__ */ e.createElement("button", {
|
|
398
|
-
onClick:
|
|
399
|
-
d || (g(!0), v(m === "toggle" ? s ?? !1 : s), b(""));
|
|
400
|
-
},
|
|
406
|
+
onClick: x,
|
|
401
407
|
disabled: d,
|
|
402
|
-
className: "p-1 text-
|
|
408
|
+
className: "p-1 text-blue-600 hover:bg-blue-100 rounded disabled:opacity-50",
|
|
403
409
|
title: "Editar"
|
|
404
410
|
}, /* @__PURE__ */ e.createElement(i, { size: 16 }))));
|
|
405
411
|
};
|
package/dist/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("react"),require("lucide-react"),require("react-select")):typeof define==`function`&&define.amd?define([`exports`,`react`,`lucide-react`,`react-select`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.WidgetDufyKit={},e.React,e.LucideReact,e.Select))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var i=Object.create,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=s(t),c=0,u=i.length,d;c<u;c++)d=i[c],!l.call(e,d)&&d!==n&&a(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=o(t,d))||r.enumerable});return e},d=(e,t,n)=>(n=e==null?{}:i(c(e)),u(t||!e||!e.__esModule?a(n,`default`,{value:e,enumerable:!0}):n,e));t=d(t,1),r=d(r,1),e.BooleanField=({field:e,label:r,value:i,isAdmin:a=!1,onSave:o,required:s=!1,disabled:c=!1,className:l=``,labels:u={true:`Sí`,false:`No`},displayAs:d=`toggle`})=>{let[f,p]=(0,t.useState)(!1),[m,h]=(0,t.useState)(null),[g,_]=(0,t.useState)(``);return t.default.createElement(`div`,{className:`flex items-center justify-between p-3 bg-brand-bgWidget rounded-lg ${l}`},t.default.createElement(`div`,{className:`flex-1 min-w-0`},t.default.createElement(`label`,{className:`text-sm text-gray-600 block mb-1`},r,s&&d!==`toggle`&&t.default.createElement(`span`,{className:`text-brand-danger ml-1`},`*`)),f?t.default.createElement(`div`,null,d===`toggle`?t.default.createElement(`label`,{htmlFor:`${e}_toggle`,className:`relative inline-flex items-center cursor-pointer`},t.default.createElement(`input`,{type:`checkbox`,id:`${e}_toggle`,className:`sr-only peer`,checked:m===!0,onChange:()=>h(!m),disabled:c}),t.default.createElement(`div`,{className:`w-11 h-6 bg-gray-300 rounded-full peer peer-focus:ring-2 peer-focus:ring-brand-editLight peer-checked:bg-brand-primary peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-0.5 after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all`}),t.default.createElement(`span`,{className:`ml-3 text-sm font-medium text-gray-700 select-none`},m?u.true:u.false)):t.default.createElement(`div`,{className:`space-y-2`},[!0,!1].map(n=>t.default.createElement(`label`,{key:n.toString(),className:`flex items-center cursor-pointer`},t.default.createElement(`input`,{type:`radio`,name:`${e}_boolean`,checked:m===n,onChange:()=>h(n),className:`mr-3 h-4 w-4 text-brand-primary focus:ring-brand-primary border-gray-300`,disabled:c}),t.default.createElement(`span`,{className:`text-sm text-gray-700`},n?u.true:u.false)))),g&&t.default.createElement(`p`,{className:`text-brand-danger text-xs mt-2`},g)):t.default.createElement(`span`,{className:`break-words ${!i&&i!==0&&d!==`toggle`?`text-gray-400 italic`:`font-medium text-gray-800`}`},i===!0?u.true:i===!1||d===`toggle`?u.false:`No especificado`)),a&&t.default.createElement(`div`,{className:`ml-4 flex gap-2 flex-shrink-0`},f?t.default.createElement(t.default.Fragment,null,t.default.createElement(`button`,{onClick:async()=>{if(s&&m==null){_(`Este campo es obligatorio`);return}try{o&&await o(e,m),p(!1),_(``)}catch(e){_(e.message||`Error al guardar`)}},disabled:c,className:`p-1 text-brand-success hover:bg-brand-successLight rounded disabled:opacity-50`,title:`Guardar`},t.default.createElement(n.Save,{size:16})),t.default.createElement(`button`,{onClick:()=>{p(!1),h(null),_(``)},className:`p-1 text-brand-danger hover:bg-brand-dangerLight rounded`,title:`Cancelar`},t.default.createElement(n.X,{size:16}))):t.default.createElement(`button`,{onClick:()=>{c||(p(!0),h(d===`toggle`?i??!1:i),_(``))},disabled:c,className:`p-1 text-brand-edit hover:bg-brand-editLight rounded disabled:opacity-50`,title:`Editar`},t.default.createElement(n.Edit3,{size:16}))))},e.EditableField=({field:e,label:i,value:a,type:o=`text`,options:s=[],placeholder:c=``,isAdmin:l=!1,onSave:u,onCancel:d,onInputChange:f,validation:p=null,disabled:m=!1,required:h=!1,min:g=null,max:_=null,rows:v=3,className:y=``,formatDisplay:b=null,isClearable:x=!0,isSearchable:S=!0,isLoading:C=!1,noOptionsMessage:w=()=>`No se encontraron resultados`,getOptionFromValue:T=null,debug:E=!1})=>{let[D,O]=(0,t.useState)(!1),[k,A]=(0,t.useState)(``),[j,M]=(0,t.useState)(``);(0,t.useEffect)(()=>{E&&console.log(`[EditableField ${e}] Props changed:`,{value:a,isEditing:D,editValue:k,type:o,options:s?.length||0})},[a,D,k,e,E,o,s]),(0,t.useEffect)(()=>{if(!D&&a!==void 0){let t=F(a,o);E&&console.log(`[EditableField ${e}] Syncing value:`,{value:a,formattedValue:t})}},[a,D,e,o,E]);let N=e=>e.map(e=>typeof e==`string`?{value:e,label:e}:e),P=e=>{if(!e||!s.length)return null;let t=N(s);return T?T(t,e):t.find(t=>t.value===e)||null},F=(e,t)=>{if(!e&&e!==0)return``;try{switch(t){case`date`:{let t=new Date(e);return isNaN(t.getTime())?``:`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}case`datetime`:if(typeof e==`string`&&e.match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/))return e.slice(0,16);let t=new Date(e);return isNaN(t.getTime())?``:`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}T${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`;case`time`:return e.includes(`T`)?e.split(`T`)[1].slice(0,5):e;case`react-select`:return P(e);default:return e}}catch(e){return console.error(`Error formatting value:`,e),``}},I=()=>{if(m)return;let t=F(a,o);E&&console.log(`[EditableField ${e}] Starting edit:`,{originalValue:a,formattedValue:t,type:o}),O(!0),A(t),M(``)},L=async()=>{let t=k;if(E&&console.log(`[EditableField ${e}] Attempting save:`,{editValue:k,type:o}),o===`react-select`&&(t=k?k.value:null),(o===`date`||o===`datetime`)&&t){let e=o===`date`?`${t}T00:00:00`:t;t=new Date(e)}if(h&&(!t||t.toString().trim()===``)){M(`Este campo es obligatorio`);return}if(p){let e=p(t);if(e){M(e);return}}try{u&&(E&&console.log(`[EditableField ${e}] Calling onSave with:`,t),await u(e,t)),O(!1),M(``),E&&console.log(`[EditableField ${e}] Save completed successfully`)}catch(t){E&&console.error(`[EditableField ${e}] Save error:`,t),M(t.message||`Error al guardar`)}},R=()=>{O(!1),A(``),M(``),d&&d(e)},z=e=>{e.key===`Enter`&&o!==`textarea`?L():e.key===`Escape`&&R()},B=t=>{let n=t.target.value;if(E&&console.log(`[EditableField ${e}] Input change:`,{newValue:n,type:o}),A(n),f)try{f(e,n,t)}catch(t){E&&console.error(`[EditableField ${e}] onInputChange error:`,t)}},V=t=>{if(E&&console.log(`[EditableField ${e}] Select change:`,{option:t,type:o}),A(t),f)try{f(e,t,t?t.value:null)}catch(t){E&&console.error(`[EditableField ${e}] onInputChange error:`,t)}},H=(t,n)=>{if(E&&n.action===`input-change`&&console.log(`[EditableField ${e}] Select input change:`,{inputValue:t,actionMeta:n}),f&&n.action===`input-change`)try{f(e,t,{action:`search`,inputValue:t})}catch(t){E&&console.error(`[EditableField ${e}] onInputChange error:`,t)}};return t.default.createElement(`div`,{className:`flex items-start justify-between p-3 bg-gray-50 rounded-lg ${y}`},t.default.createElement(`div`,{className:`flex-1 min-w-0`},t.default.createElement(`label`,{className:`text-sm text-gray-600 block mb-1`},i,h&&t.default.createElement(`span`,{className:`text-red-500 ml-1`},`*`)),D?t.default.createElement(`div`,null,(()=>{let e={value:k||``,onChange:B,onKeyDown:z,className:`w-full p-2 border rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500 ${j?`border-red-500`:`border-gray-300`}`,placeholder:c,autoFocus:!0,disabled:m};switch(o){case`textarea`:return t.default.createElement(`textarea`,{...e,rows:v,onKeyDown:e=>{e.key===`Escape`&&R()}});case`number`:return t.default.createElement(`input`,{...e,type:`number`,min:g,max:_,step:`any`});case`date`:return t.default.createElement(`input`,{...e,type:`date`,min:g,max:_});case`datetime`:return t.default.createElement(`input`,{...e,type:`datetime-local`,min:g,max:_});case`time`:return t.default.createElement(`input`,{...e,type:`time`,min:g,max:_});case`react-select`:let i=N(s);return t.default.createElement(r.default,{value:k,onChange:V,onInputChange:H,options:i,placeholder:c,isClearable:x,isSearchable:S,isLoading:C,isDisabled:m,noOptionsMessage:w,classNamePrefix:`react-select`,className:j?`react-select-error`:``,autoFocus:!0,openMenuOnFocus:!1,styles:{control:(e,t)=>({...e,minHeight:`42px`,border:`1px solid ${j?`#ef4444`:t.isFocused?`#3b82f6`:`#d1d5db`}`,borderRadius:`6px`,boxShadow:t.isFocused?`0 0 0 2px ${j?`#fecaca`:`#dbeafe`}`:`none`,backgroundColor:`white`,fontSize:`14px`,"&:hover":{borderColor:j?`#ef4444`:`#9ca3af`}}),valueContainer:e=>({...e,padding:`8px 12px`}),placeholder:e=>({...e,color:`#9ca3af`,fontSize:`14px`}),singleValue:e=>({...e,color:`#374151`,fontSize:`14px`}),menu:e=>({...e,borderRadius:`6px`,border:`1px solid #e5e7eb`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)`,zIndex:9999}),menuList:e=>({...e,borderRadius:`6px`,padding:`4px`}),option:(e,t)=>({...e,backgroundColor:t.isSelected?`#3b82f6`:t.isFocused?`#f3f4f6`:`transparent`,color:t.isSelected?`white`:`#374151`,padding:`12px 16px`,fontSize:`14px`,borderRadius:`4px`,margin:`2px 0`,cursor:`pointer`,"&:active":{backgroundColor:t.isSelected?`#2563eb`:`#e5e7eb`}}),indicatorSeparator:e=>({...e,backgroundColor:`#d1d5db`}),dropdownIndicator:(e,t)=>({...e,color:`#6b7280`,padding:`8px`,"&:hover":{color:`#374151`}}),clearIndicator:e=>({...e,color:`#6b7280`,padding:`8px`,"&:hover":{color:`#374151`}}),loadingIndicator:e=>({...e,color:`#3b82f6`}),noOptionsMessage:e=>({...e,color:`#6b7280`,fontSize:`14px`,padding:`8px 12px`})}});case`select`:return t.default.createElement(`div`,{className:`relative`},t.default.createElement(`select`,{...e,className:`${e.className} appearance-none pr-8`},t.default.createElement(`option`,{value:``},`Seleccionar...`),s.map((e,n)=>t.default.createElement(`option`,{key:n,value:typeof e==`object`?e.value:e},typeof e==`object`?e.label:e))),t.default.createElement(n.ChevronDown,{size:16,className:`absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 pointer-events-none`}));case`email`:return t.default.createElement(`input`,{...e,type:`email`});case`tel`:return t.default.createElement(`input`,{...e,type:`tel`});default:return t.default.createElement(`input`,{...e,type:`text`})}})(),j&&t.default.createElement(`p`,{className:`text-red-500 text-xs mt-1`},j)):t.default.createElement(`span`,{className:`font-medium text-gray-800 break-words ${!a&&a!==0?`text-gray-400 italic`:``}`},(()=>{if(b)return b(a);if(!a&&a!==0)return`No especificado`;switch(o){case`date`:if(a){let e=new Date(a);if(!isNaN(e.getTime()))return e.toLocaleDateString(`es-ES`,{year:`numeric`,month:`long`,day:`numeric`})}return`No especificado`;case`datetime`:if(a){let e=new Date(a);if(!isNaN(e.getTime()))return e.toLocaleString(`es-CO`,{year:`numeric`,month:`long`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,hour12:!0,timeZone:`America/Bogota`})}return`No especificado`;case`time`:return a||`No especificado`;case`number`:return typeof a==`number`?a.toLocaleString(`es-ES`):a;case`select`:if(s.length>0&&typeof s[0]==`object`){let e=s.find(e=>e.value===a);return e?e.label:a}return a;case`react-select`:if(a&&s.length>0){let e=P(a);return e?e.label:a}return a;default:return a}})())),l&&t.default.createElement(`div`,{className:`ml-4 flex gap-2 flex-shrink-0`},D?t.default.createElement(t.default.Fragment,null,t.default.createElement(`button`,{onClick:L,disabled:m,className:`p-1 text-green-600 hover:bg-green-100 rounded disabled:opacity-50 disabled:cursor-not-allowed`,title:`Guardar`},t.default.createElement(n.Save,{size:16})),t.default.createElement(`button`,{onClick:R,className:`p-1 text-red-600 hover:bg-red-100 rounded`,title:`Cancelar`},t.default.createElement(n.X,{size:16}))):t.default.createElement(`button`,{onClick:I,disabled:m,className:`p-1 text-blue-600 hover:bg-blue-100 rounded disabled:opacity-50 disabled:cursor-not-allowed`,title:`Editar`},t.default.createElement(n.Edit3,{size:16}))))}});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("react"),require("lucide-react"),require("react-select")):typeof define==`function`&&define.amd?define([`exports`,`react`,`lucide-react`,`react-select`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.WidgetDufyKit={},e.React,e.LucideReact,e.Select))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var i=Object.create,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=s(t),c=0,u=i.length,d;c<u;c++)d=i[c],!l.call(e,d)&&d!==n&&a(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=o(t,d))||r.enumerable});return e},d=(e,t,n)=>(n=e==null?{}:i(c(e)),u(t||!e||!e.__esModule?a(n,`default`,{value:e,enumerable:!0}):n,e));t=d(t,1),r=d(r,1),e.BooleanField=({field:e,label:r,value:i,isAdmin:a=!1,onSave:o,required:s=!1,disabled:c=!1,className:l=``,labels:u={true:`Sí`,false:`No`},displayAs:d=`toggle`})=>{let[f,p]=(0,t.useState)(!1),[m,h]=(0,t.useState)(null),[g,_]=(0,t.useState)(``),v=()=>{c||(p(!0),h(d===`toggle`?i??!1:i),_(``))},y=async()=>{if(s&&m==null){_(`Este campo es obligatorio`);return}try{o&&await o(e,m),p(!1),_(``)}catch(e){_(e.message||`Error al guardar`)}},b=()=>{p(!1),h(null),_(``)},x=e=>{h(e),_(``)};return t.default.createElement(`div`,{className:`flex items-center justify-between p-3 bg-gray-50 rounded-lg ${l}`},t.default.createElement(`div`,{className:`flex-1 min-w-0`},t.default.createElement(`label`,{className:`text-sm text-gray-600 block mb-1`},r,s&&d!==`toggle`&&t.default.createElement(`span`,{className:`text-red-500 ml-1`},`*`)),f?t.default.createElement(`div`,null,d===`toggle`?t.default.createElement(`label`,{htmlFor:`${e}_toggle`,className:`relative inline-flex items-center cursor-pointer`},t.default.createElement(`input`,{type:`checkbox`,id:`${e}_toggle`,className:`sr-only peer`,checked:m===!0,onChange:()=>x(!m),disabled:c}),t.default.createElement(`div`,{className:`w-11 h-6 bg-gray-300 rounded-full peer peer-focus:ring-2 peer-focus:ring-blue-300 peer-checked:bg-indigo-600 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-0.5 after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all`}),t.default.createElement(`span`,{className:`ml-3 text-sm font-medium text-gray-700 select-none`},m?u.true:u.false)):t.default.createElement(`div`,{className:`space-y-2`},t.default.createElement(`label`,{className:`flex items-center cursor-pointer`},t.default.createElement(`input`,{type:`radio`,name:`${e}_boolean`,checked:m===!0,onChange:()=>x(!0),className:`mr-3 h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300`,disabled:c}),t.default.createElement(`span`,{className:`text-sm text-gray-700`},u.true)),t.default.createElement(`label`,{className:`flex items-center cursor-pointer`},t.default.createElement(`input`,{type:`radio`,name:`${e}_boolean`,checked:m===!1,onChange:()=>x(!1),className:`mr-3 h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300`,disabled:c}),t.default.createElement(`span`,{className:`text-sm text-gray-700`},u.false))),g&&t.default.createElement(`p`,{className:`text-red-500 text-xs mt-2`},g)):t.default.createElement(`span`,{className:`break-words ${i==null&&d!==`toggle`?`text-gray-400 italic`:`font-medium text-gray-800`}`},i===!0?u.true:i===!1||d===`toggle`?u.false:`No especificado`)),a&&t.default.createElement(`div`,{className:`ml-4 flex gap-2 flex-shrink-0`},f?t.default.createElement(t.default.Fragment,null,t.default.createElement(`button`,{onClick:y,disabled:c,className:`p-1 text-green-600 hover:bg-green-100 rounded disabled:opacity-50`,title:`Guardar`},t.default.createElement(n.Save,{size:16})),t.default.createElement(`button`,{onClick:b,className:`p-1 text-red-600 hover:bg-red-100 rounded`,title:`Cancelar`},t.default.createElement(n.X,{size:16}))):t.default.createElement(`button`,{onClick:v,disabled:c,className:`p-1 text-blue-600 hover:bg-blue-100 rounded disabled:opacity-50`,title:`Editar`},t.default.createElement(n.Edit3,{size:16}))))},e.EditableField=({field:e,label:i,value:a,type:o=`text`,options:s=[],placeholder:c=``,isAdmin:l=!1,onSave:u,onCancel:d,onInputChange:f,validation:p=null,disabled:m=!1,required:h=!1,min:g=null,max:_=null,rows:v=3,className:y=``,formatDisplay:b=null,isClearable:x=!0,isSearchable:S=!0,isLoading:C=!1,noOptionsMessage:w=()=>`No se encontraron resultados`,getOptionFromValue:T=null,debug:E=!1})=>{let[D,O]=(0,t.useState)(!1),[k,A]=(0,t.useState)(``),[j,M]=(0,t.useState)(``);(0,t.useEffect)(()=>{E&&console.log(`[EditableField ${e}] Props changed:`,{value:a,isEditing:D,editValue:k,type:o,options:s?.length||0})},[a,D,k,e,E,o,s]),(0,t.useEffect)(()=>{if(!D&&a!==void 0){let t=F(a,o);E&&console.log(`[EditableField ${e}] Syncing value:`,{value:a,formattedValue:t})}},[a,D,e,o,E]);let N=e=>e.map(e=>typeof e==`string`?{value:e,label:e}:e),P=e=>{if(!e||!s.length)return null;let t=N(s);return T?T(t,e):t.find(t=>t.value===e)||null},F=(e,t)=>{if(!e&&e!==0)return``;try{switch(t){case`date`:{let t=new Date(e);return isNaN(t.getTime())?``:`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}case`datetime`:if(typeof e==`string`&&e.match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/))return e.slice(0,16);let t=new Date(e);return isNaN(t.getTime())?``:`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}T${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`;case`time`:return e.includes(`T`)?e.split(`T`)[1].slice(0,5):e;case`react-select`:return P(e);default:return e}}catch(e){return console.error(`Error formatting value:`,e),``}},I=()=>{if(m)return;let t=F(a,o);E&&console.log(`[EditableField ${e}] Starting edit:`,{originalValue:a,formattedValue:t,type:o}),O(!0),A(t),M(``)},L=async()=>{let t=k;if(E&&console.log(`[EditableField ${e}] Attempting save:`,{editValue:k,type:o}),o===`react-select`&&(t=k?k.value:null),(o===`date`||o===`datetime`)&&t){let e=o===`date`?`${t}T00:00:00`:t;t=new Date(e)}if(h&&(!t||t.toString().trim()===``)){M(`Este campo es obligatorio`);return}if(p){let e=p(t);if(e){M(e);return}}try{u&&(E&&console.log(`[EditableField ${e}] Calling onSave with:`,t),await u(e,t)),O(!1),M(``),E&&console.log(`[EditableField ${e}] Save completed successfully`)}catch(t){E&&console.error(`[EditableField ${e}] Save error:`,t),M(t.message||`Error al guardar`)}},R=()=>{O(!1),A(``),M(``),d&&d(e)},z=e=>{e.key===`Enter`&&o!==`textarea`?L():e.key===`Escape`&&R()},B=t=>{let n=t.target.value;if(E&&console.log(`[EditableField ${e}] Input change:`,{newValue:n,type:o}),A(n),f)try{f(e,n,t)}catch(t){E&&console.error(`[EditableField ${e}] onInputChange error:`,t)}},V=t=>{if(E&&console.log(`[EditableField ${e}] Select change:`,{option:t,type:o}),A(t),f)try{f(e,t,t?t.value:null)}catch(t){E&&console.error(`[EditableField ${e}] onInputChange error:`,t)}},H=(t,n)=>{if(E&&n.action===`input-change`&&console.log(`[EditableField ${e}] Select input change:`,{inputValue:t,actionMeta:n}),f&&n.action===`input-change`)try{f(e,t,{action:`search`,inputValue:t})}catch(t){E&&console.error(`[EditableField ${e}] onInputChange error:`,t)}};return t.default.createElement(`div`,{className:`flex items-start justify-between p-3 bg-gray-50 rounded-lg ${y}`},t.default.createElement(`div`,{className:`flex-1 min-w-0`},t.default.createElement(`label`,{className:`text-sm text-gray-600 block mb-1`},i,h&&t.default.createElement(`span`,{className:`text-red-500 ml-1`},`*`)),D?t.default.createElement(`div`,null,(()=>{let e={value:k||``,onChange:B,onKeyDown:z,className:`w-full p-2 border rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500 ${j?`border-red-500`:`border-gray-300`}`,placeholder:c,autoFocus:!0,disabled:m};switch(o){case`textarea`:return t.default.createElement(`textarea`,{...e,rows:v,onKeyDown:e=>{e.key===`Escape`&&R()}});case`number`:return t.default.createElement(`input`,{...e,type:`number`,min:g,max:_,step:`any`});case`date`:return t.default.createElement(`input`,{...e,type:`date`,min:g,max:_});case`datetime`:return t.default.createElement(`input`,{...e,type:`datetime-local`,min:g,max:_});case`time`:return t.default.createElement(`input`,{...e,type:`time`,min:g,max:_});case`react-select`:let i=N(s);return t.default.createElement(r.default,{value:k,onChange:V,onInputChange:H,options:i,placeholder:c,isClearable:x,isSearchable:S,isLoading:C,isDisabled:m,noOptionsMessage:w,classNamePrefix:`react-select`,className:j?`react-select-error`:``,autoFocus:!0,openMenuOnFocus:!1,styles:{control:(e,t)=>({...e,minHeight:`42px`,border:`1px solid ${j?`#ef4444`:t.isFocused?`#3b82f6`:`#d1d5db`}`,borderRadius:`6px`,boxShadow:t.isFocused?`0 0 0 2px ${j?`#fecaca`:`#dbeafe`}`:`none`,backgroundColor:`white`,fontSize:`14px`,"&:hover":{borderColor:j?`#ef4444`:`#9ca3af`}}),valueContainer:e=>({...e,padding:`8px 12px`}),placeholder:e=>({...e,color:`#9ca3af`,fontSize:`14px`}),singleValue:e=>({...e,color:`#374151`,fontSize:`14px`}),menu:e=>({...e,borderRadius:`6px`,border:`1px solid #e5e7eb`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)`,zIndex:9999}),menuList:e=>({...e,borderRadius:`6px`,padding:`4px`}),option:(e,t)=>({...e,backgroundColor:t.isSelected?`#3b82f6`:t.isFocused?`#f3f4f6`:`transparent`,color:t.isSelected?`white`:`#374151`,padding:`12px 16px`,fontSize:`14px`,borderRadius:`4px`,margin:`2px 0`,cursor:`pointer`,"&:active":{backgroundColor:t.isSelected?`#2563eb`:`#e5e7eb`}}),indicatorSeparator:e=>({...e,backgroundColor:`#d1d5db`}),dropdownIndicator:(e,t)=>({...e,color:`#6b7280`,padding:`8px`,"&:hover":{color:`#374151`}}),clearIndicator:e=>({...e,color:`#6b7280`,padding:`8px`,"&:hover":{color:`#374151`}}),loadingIndicator:e=>({...e,color:`#3b82f6`}),noOptionsMessage:e=>({...e,color:`#6b7280`,fontSize:`14px`,padding:`8px 12px`})}});case`select`:return t.default.createElement(`div`,{className:`relative`},t.default.createElement(`select`,{...e,className:`${e.className} appearance-none pr-8`},t.default.createElement(`option`,{value:``},`Seleccionar...`),s.map((e,n)=>t.default.createElement(`option`,{key:n,value:typeof e==`object`?e.value:e},typeof e==`object`?e.label:e))),t.default.createElement(n.ChevronDown,{size:16,className:`absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 pointer-events-none`}));case`email`:return t.default.createElement(`input`,{...e,type:`email`});case`tel`:return t.default.createElement(`input`,{...e,type:`tel`});default:return t.default.createElement(`input`,{...e,type:`text`})}})(),j&&t.default.createElement(`p`,{className:`text-red-500 text-xs mt-1`},j)):t.default.createElement(`span`,{className:`font-medium text-gray-800 break-words ${!a&&a!==0?`text-gray-400 italic`:``}`},(()=>{if(b)return b(a);if(!a&&a!==0)return`No especificado`;switch(o){case`date`:if(a){let e=new Date(a);if(!isNaN(e.getTime()))return e.toLocaleDateString(`es-ES`,{year:`numeric`,month:`long`,day:`numeric`})}return`No especificado`;case`datetime`:if(a){let e=new Date(a);if(!isNaN(e.getTime()))return e.toLocaleString(`es-CO`,{year:`numeric`,month:`long`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,hour12:!0,timeZone:`America/Bogota`})}return`No especificado`;case`time`:return a||`No especificado`;case`number`:return typeof a==`number`?a.toLocaleString(`es-ES`):a;case`select`:if(s.length>0&&typeof s[0]==`object`){let e=s.find(e=>e.value===a);return e?e.label:a}return a;case`react-select`:if(a&&s.length>0){let e=P(a);return e?e.label:a}return a;default:return a}})())),l&&t.default.createElement(`div`,{className:`ml-4 flex gap-2 flex-shrink-0`},D?t.default.createElement(t.default.Fragment,null,t.default.createElement(`button`,{onClick:L,disabled:m,className:`p-1 text-green-600 hover:bg-green-100 rounded disabled:opacity-50 disabled:cursor-not-allowed`,title:`Guardar`},t.default.createElement(n.Save,{size:16})),t.default.createElement(`button`,{onClick:R,className:`p-1 text-red-600 hover:bg-red-100 rounded`,title:`Cancelar`},t.default.createElement(n.X,{size:16}))):t.default.createElement(`button`,{onClick:I,disabled:m,className:`p-1 text-blue-600 hover:bg-blue-100 rounded disabled:opacity-50 disabled:cursor-not-allowed`,title:`Editar`},t.default.createElement(n.Edit3,{size:16}))))}});
|
package/dist/widget-dufy-kit.css
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-green-100:oklch(96.2% .044 156.743);--color-green-600:oklch(62.7% .194 149.214);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-brand-bgWidget:#fff;--color-brand-primary:#4f46e5;--color-brand-danger:#dc2626;--color-brand-dangerLight:#fef2f2;--color-brand-success:#16a34a;--color-brand-successLight:#f0fdf4;--color-brand-edit:#2563eb;--color-brand-editLight:#eff6ff}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.top-1\/2{top:50%}.right-2{right:calc(var(--spacing) * 2)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mb-1{margin-bottom:var(--spacing)}.ml-1{margin-left:var(--spacing)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.w-4{width:calc(var(--spacing) * 4)}.w-11{width:calc(var(--spacing) * 11)}.w-full{width:100%}.min-w-0{min-width:0}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing) * 2)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-gray-300{border-color:var(--color-gray-300)}.border-red-500{border-color:var(--color-red-500)}.bg-brand-bgWidget{background-color:var(--color-brand-bgWidget)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-300{background-color:var(--color-gray-300)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.pr-8{padding-right:calc(var(--spacing) * 8)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-words{overflow-wrap:break-word}.text-blue-600{color:var(--color-blue-600)}.text-brand-danger{color:var(--color-brand-danger)}.text-brand-edit{color:var(--color-brand-edit)}.text-brand-primary{color:var(--color-brand-primary)}.text-brand-success{color:var(--color-brand-success)}.text-gray-400{color:var(--color-gray-400)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-600{color:var(--color-green-600)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.italic{font-style:italic}.select-none{-webkit-user-select:none;user-select:none}.peer-checked\:bg-brand-primary:is(:where(.peer):checked~*){background-color:var(--color-brand-primary)}.peer-focus\:ring-2:is(:where(.peer):focus~*){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.peer-focus\:ring-brand-editLight:is(:where(.peer):focus~*){--tw-ring-color:var(--color-brand-editLight)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:top-0\.5:after{content:var(--tw-content);top:calc(var(--spacing) * .5)}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing) * 5)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);border-color:var(--color-gray-300)}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-full:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.peer-checked\:after\:border-white:is(:where(.peer):checked~*):after{content:var(--tw-content);border-color:var(--color-white)}@media (hover:hover){.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-brand-dangerLight:hover{background-color:var(--color-brand-dangerLight)}.hover\:bg-brand-editLight:hover{background-color:var(--color-brand-editLight)}.hover\:bg-brand-successLight:hover{background-color:var(--color-brand-successLight)}.hover\:bg-green-100:hover{background-color:var(--color-green-100)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-brand-primary:focus{--tw-ring-color:var(--color-brand-primary)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}}@keyframes flash{0%{background-color:#e0f2fe}to{background-color:#0000}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-green-100:oklch(96.2% .044 156.743);--color-green-600:oklch(62.7% .194 149.214);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-brand-bgWidget:#fff;--color-brand-primary:#4f46e5;--color-brand-danger:#dc2626;--color-brand-dangerLight:#fef2f2;--color-brand-success:#16a34a;--color-brand-successLight:#f0fdf4;--color-brand-edit:#2563eb;--color-brand-editLight:#eff6ff}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.top-1\/2{top:50%}.right-2{right:calc(var(--spacing) * 2)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.mb-1{margin-bottom:var(--spacing)}.ml-1{margin-left:var(--spacing)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.w-4{width:calc(var(--spacing) * 4)}.w-11{width:calc(var(--spacing) * 11)}.w-full{width:100%}.min-w-0{min-width:0}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing) * 2)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-gray-300{border-color:var(--color-gray-300)}.border-red-500{border-color:var(--color-red-500)}.bg-brand-bgWidget{background-color:var(--color-brand-bgWidget)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-300{background-color:var(--color-gray-300)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.pr-8{padding-right:calc(var(--spacing) * 8)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-words{overflow-wrap:break-word}.text-blue-600{color:var(--color-blue-600)}.text-brand-danger{color:var(--color-brand-danger)}.text-brand-edit{color:var(--color-brand-edit)}.text-brand-primary{color:var(--color-brand-primary)}.text-brand-success{color:var(--color-brand-success)}.text-gray-400{color:var(--color-gray-400)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-600{color:var(--color-green-600)}.text-indigo-600{color:var(--color-indigo-600)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.italic{font-style:italic}.select-none{-webkit-user-select:none;user-select:none}.peer-checked\:bg-brand-primary:is(:where(.peer):checked~*){background-color:var(--color-brand-primary)}.peer-checked\:bg-indigo-600:is(:where(.peer):checked~*){background-color:var(--color-indigo-600)}.peer-focus\:ring-2:is(:where(.peer):focus~*){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.peer-focus\:ring-blue-300:is(:where(.peer):focus~*){--tw-ring-color:var(--color-blue-300)}.peer-focus\:ring-brand-editLight:is(:where(.peer):focus~*){--tw-ring-color:var(--color-brand-editLight)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:top-0\.5:after{content:var(--tw-content);top:calc(var(--spacing) * .5)}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing) * 5)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);border-color:var(--color-gray-300)}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-full:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.peer-checked\:after\:border-white:is(:where(.peer):checked~*):after{content:var(--tw-content);border-color:var(--color-white)}@media (hover:hover){.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-brand-dangerLight:hover{background-color:var(--color-brand-dangerLight)}.hover\:bg-brand-editLight:hover{background-color:var(--color-brand-editLight)}.hover\:bg-brand-successLight:hover{background-color:var(--color-brand-successLight)}.hover\:bg-green-100:hover{background-color:var(--color-green-100)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-brand-primary:focus{--tw-ring-color:var(--color-brand-primary)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}}@keyframes flash{0%{background-color:#e0f2fe}to{background-color:#0000}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
|
|
3
3
|
/*$vite$:1*/
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
+
//EDITABLEFIELD
|
|
3
4
|
export interface EditableFieldProps {
|
|
4
5
|
// === PROPIEDADES BÁSICAS ===
|
|
5
6
|
|
|
@@ -97,7 +98,6 @@ export interface EditableFieldProps {
|
|
|
97
98
|
/** Función auxiliar para mapear un valor primitivo a su objeto de opción correspondiente. */
|
|
98
99
|
getOptionFromValue?: ((options: any[], value: any) => any | null) | null;
|
|
99
100
|
}
|
|
100
|
-
|
|
101
101
|
/**
|
|
102
102
|
* ### EditableField — Dufy Asesorías
|
|
103
103
|
* Componente interactivo que permite editar diferentes tipos de datos directamente in-line,
|
|
@@ -124,4 +124,45 @@ export interface EditableFieldProps {
|
|
|
124
124
|
* />
|
|
125
125
|
* ```
|
|
126
126
|
*/
|
|
127
|
-
export const EditableField: React.FC<EditableFieldProps
|
|
127
|
+
export const EditableField: React.FC<EditableFieldProps>
|
|
128
|
+
export interface BooleanFieldProps {
|
|
129
|
+
/** Identificador único del campo (ej: 'activo', 'tiene_experiencia') */
|
|
130
|
+
field: string;
|
|
131
|
+
|
|
132
|
+
/** Etiqueta o título que se muestra sobre el campo */
|
|
133
|
+
label: string;
|
|
134
|
+
|
|
135
|
+
/** Valor booleano actual */
|
|
136
|
+
value: boolean | null | undefined;
|
|
137
|
+
|
|
138
|
+
/** Determina si se muestran los controles de edición (Lápiz, Guardar, Cancelar) */
|
|
139
|
+
isAdmin?: boolean;
|
|
140
|
+
|
|
141
|
+
/** Callback obligatorio o síncrono/asíncrono que se ejecuta al presionar Guardar */
|
|
142
|
+
onSave?: (field: string, value: boolean | null) => void | Promise<void>;
|
|
143
|
+
|
|
144
|
+
/** Si es verdadero, exige que haya un valor seleccionado al guardar (No aplica para vista toggle) */
|
|
145
|
+
required?: boolean;
|
|
146
|
+
|
|
147
|
+
/** Deshabilita la edición del campo por completo */
|
|
148
|
+
disabled?: boolean;
|
|
149
|
+
|
|
150
|
+
/** Clases de CSS adicionales de Tailwind para dar estilos externos al contenedor */
|
|
151
|
+
className?: string;
|
|
152
|
+
|
|
153
|
+
/** Mapeo para personalizar los textos que ve el usuario */
|
|
154
|
+
labels?: {
|
|
155
|
+
true: string;
|
|
156
|
+
false: string;
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/** Controla el tipo de interfaz visual que se renderiza al editar */
|
|
160
|
+
displayAs?: 'radio' | 'toggle';
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
//BOOLEAN
|
|
164
|
+
/**
|
|
165
|
+
* Componente BooleanField para visualizar y editar campos lógicos (Sí/No).
|
|
166
|
+
*/
|
|
167
|
+
declare const BooleanField: React.FC<BooleanFieldProps>;
|
|
168
|
+
export default BooleanField;
|
package/package.json
CHANGED