@mpen/react-basic-inputs 0.2.8 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,7 +19,7 @@ export declare function DatetimeLocalInput({ value, defaultValue, min, max, ...p
19
19
  export declare type DatetimeLocalInputProps = OverrideProps<'input', {
20
20
  min?: number | string | Date;
21
21
  max?: number | string | Date;
22
- value?: number | string | Date;
22
+ value?: number | string | Date | null;
23
23
  defaultValue?: number | string | Date;
24
24
  }, 'type'>;
25
25
 
@@ -264,7 +264,7 @@ function de({ onClick: e, ...t }) {
264
264
  }, /* @__PURE__ */ x("button", { type: "button", ...t });
265
265
  }
266
266
  function me({ value: e, defaultValue: t, min: n, max: u, ...r }) {
267
- return e != null && (r.value = I(e)), t != null && (r.defaultValue = I(t)), n != null && (r.min = I(n)), u != null && (r.max = I(u)), /* @__PURE__ */ x("input", { type: "datetime-local", ...r });
267
+ return e !== void 0 && (r.value = e === null ? "" : I(e)), t != null && (r.defaultValue = I(t)), n != null && (r.min = I(n)), u != null && (r.max = I(u)), /* @__PURE__ */ x("input", { type: "datetime-local", ...r });
268
268
  }
269
269
  export {
270
270
  de as ActionButton,
@@ -1 +1 @@
1
- (function(f,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react"],c):(f=typeof globalThis<"u"?globalThis:f||self,c(f["@mpen/react-basic-inputs"]={},f.jsxRuntime,f.React))})(this,function(f,c,r){"use strict";var Q=Object.defineProperty;var X=(f,c,r)=>c in f?Q(f,c,{enumerable:!0,configurable:!0,writable:!0,value:r}):f[c]=r;var D=(f,c,r)=>(X(f,typeof c!="symbol"?c+"":c,r),r);const A=Object.freeze(()=>{});function j(e){return e}let I;typeof window<"u"?I=e=>{r.useDebugValue(e);const t=r.useRef(k);r.useInsertionEffect(()=>{t.current=e},[e]);const n=r.useRef(null);return n.current||(n.current=function(){return t.current.apply(this,arguments)}),n.current}:I=A;function _(e){return I(e)}function k(){throw new Error("INVALID_USE_EVENT_INVOCATION: the callback from useEvent cannot be invoked before the component has mounted.")}function V(){var e=r.useRef(!0);return e.current?(e.current=!1,!0):e.current}var E=function(e,t){var n=V();r.useEffect(function(){if(!n)return e()},t)};function $(e,...t){return typeof e=="function"?e(...t):e}function q(e,t){if(e.uniqueKey!=null)return $(e.uniqueKey,e,t);if(typeof e.value=="string")return e.value;if(typeof e.value=="number")return String(e.value);try{const n=JSON.stringify(e.value);if(n!==void 0)return n}catch{}return String(t)}class M{constructor(){D(this,"usedKeys",new Map)}fix(t,n){let s=q(t,n);for(;;){let u=this.usedKeys.get(s);if(u===void 0){this.usedKeys.set(s,1);break}this.usedKeys.set(s,++u),s=`${s}(${u})`}return s}}const L=e=>({value:e,text:String(e),disabled:!0,key:F}),H="3c9369b7-0a5e-46ea-93c2-e8b9fec67fdb",F="1a53f789-77f5-4ce6-a829-b00e563f1ee8";function z({options:e,value:t,invalidValueOption:n=L,onChange:s,placeholder:u,...d}){const y=t==null,m=r.useMemo(()=>t!=null&&e.some(i=>i.value==t),[e,t]),x=r.useMemo(()=>t==null||!n?null:n(t),[n,t]),a=r.useMemo(()=>{if(m)return e;const i=[...e];return y?u!=null&&i.unshift({text:u,hidden:!0,value:null,key:H}):x&&i.push(x),i},[m,e,y,x,u]),h=_(i=>{const p=i.target.selectedIndex,N=a[p];s==null||s({value:N.value,index:p,type:"change",timeStamp:i.timeStamp,target:i.target})}),l=r.useRef(null),o=r.useCallback(()=>{l.current&&(l.current.selectedIndex<0||a[l.current.selectedIndex].value!=t)&&(l.current.selectedIndex=a.findIndex(i=>i.value==t))},[a,t]),v=i=>{l.current=i,o()};E(()=>{o()},[o]);const g=new M;return c.jsx("select",{...d,onChange:h,ref:v,children:a.map((i,p)=>{const{value:N,text:Z,uniqueKey:R,...G}=i,w=g.fix(i,p);return r.createElement("option",{...G,key:w,value:w},i.text)})})}function Y(e){return e?String(e).replace(/\s+/gu," ").trim():""}function b(e,t=2){return String(e).padStart(t,"0")}function S(e){const t=new Date(e);let n=`${t.getFullYear()}-${b(t.getMonth()+1)}-${b(t.getDate())}T${b(t.getHours())}:${b(t.getMinutes())}`;return(t.getSeconds()!==0||t.getMilliseconds()!==0)&&(n+=":"+b(t.getSeconds()),t.getMilliseconds()!==0&&(n+="."+b(t.getMilliseconds(),3))),n}const T=r.forwardRef(function({value:t="",onPaste:n,onChange:s,onInput:u,onBlur:d,formatOnChange:y=j,...m},x){const[a,h]=r.useState(t),l=r.useRef(t),o=r.useRef(!1);E(()=>{h(t),o.current=!1,l.current=t},[t]);const v={type:"text",...m,ref:x,value:a,onChange:g=>{h(g.target.value)},onInput:g=>{o.current=!0,u==null||u(g)},onBlur:g=>{const i=y(a);o.current&&(i!==l.current&&(s==null||s({type:"change",value:i,timeStamp:g.timeStamp,target:g.target}),l.current=i),i!==g.target.value&&h(i)),d==null||d(g)}};return c.jsx("input",{...v})});function B({formatOnChange:e=Y,...t}){return c.jsx(T,{formatOnChange:e,...t,type:"text"})}const P=r.forwardRef(function({onInput:t,style:n,initialHeight:s="auto",...u},d){const y=r.useRef(null),[m,x]=r.useState(s),a=r.useCallback(()=>{const l=y.current;if(!l)return;l.style.height=s;const o=`${l.scrollHeight}px`;x(o),l.style.height=o},[s]);r.useImperativeHandle(d,()=>({element:y.current,adjustHeight:a}),[a]);const h=I(l=>{a(),t==null||t(l)});return r.useLayoutEffect(()=>{a();const l=y.current;if(!l)return;const o=new ResizeObserver(v=>{a()});return o.observe(l),()=>{o.unobserve(l)}},[a]),c.jsx("textarea",{...u,style:{overflow:"hidden",resize:"none",...n,height:m},onInput:h,ref:y})});function U(e){const t=r.useId(),n=e.name??t,s=e.valueEquals??Object.is,u=e.options??[],d=new M,y=I(m=>{const x=Number(m.target.value),a=u[x];a!=null&&e.onChange!=null&&e.onChange({value:a.value,index:x,type:"change",timeStamp:m.timeStamp,target:m.target})});return c.jsx("ul",{className:e.className,children:u.map((m,x)=>{const{value:a,text:h,key:l,itemClassName:o,labelClassName:v,inputClassName:g,textClassName:i,...p}=m,N=d.fix(m,x);return e.value!==void 0&&(p.checked=s(a,e.value)),c.jsx("li",{className:o,"aria-disabled":p.disabled,children:c.jsxs("label",{className:v,children:[c.jsx("input",{...p,className:g,value:x,onChange:y,name:n,type:"radio"}),c.jsx("span",{className:i,children:h})]})},N)})})}function K(){return r.useRef(null)}function O(e){e.current!=null&&(clearTimeout(e.current),e.current=null)}const C=({value:e,onChange:t,debounce:n=500,...s})=>{const u=K(),d=K();E(()=>{O(d),u.current!=null&&(u.current.value=e)},[e]);const y=()=>{u.current!=null&&u.current.value!==e&&(t==null||t({value:u.current.value}))};return c.jsx("input",{...s,ref:u,defaultValue:e,onInput:()=>{O(d),d.current=setTimeout(y,n)},onBlur:()=>{O(d),y()}})};function J({onClick:e,...t}){return t.onClick=n=>{n.preventDefault(),e==null||e(n)},c.jsx("button",{type:"button",...t})}function W({value:e,defaultValue:t,min:n,max:s,...u}){return e!=null&&(u.value=S(e)),t!=null&&(u.defaultValue=S(t)),n!=null&&(u.min=S(n)),s!=null&&(u.max=S(s)),c.jsx("input",{type:"datetime-local",...u})}f.ActionButton=J,f.DatetimeLocalInput=W,f.DebouncedInput=C,f.Input=T,f.RadioMenu=U,f.Select=z,f.TextArea=P,f.TextInput=B,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});
1
+ (function(f,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react"],c):(f=typeof globalThis<"u"?globalThis:f||self,c(f["@mpen/react-basic-inputs"]={},f.jsxRuntime,f.React))})(this,function(f,c,r){"use strict";var Q=Object.defineProperty;var X=(f,c,r)=>c in f?Q(f,c,{enumerable:!0,configurable:!0,writable:!0,value:r}):f[c]=r;var D=(f,c,r)=>(X(f,typeof c!="symbol"?c+"":c,r),r);const A=Object.freeze(()=>{});function j(e){return e}let I;typeof window<"u"?I=e=>{r.useDebugValue(e);const t=r.useRef(k);r.useInsertionEffect(()=>{t.current=e},[e]);const n=r.useRef(null);return n.current||(n.current=function(){return t.current.apply(this,arguments)}),n.current}:I=A;function _(e){return I(e)}function k(){throw new Error("INVALID_USE_EVENT_INVOCATION: the callback from useEvent cannot be invoked before the component has mounted.")}function V(){var e=r.useRef(!0);return e.current?(e.current=!1,!0):e.current}var E=function(e,t){var n=V();r.useEffect(function(){if(!n)return e()},t)};function $(e,...t){return typeof e=="function"?e(...t):e}function q(e,t){if(e.uniqueKey!=null)return $(e.uniqueKey,e,t);if(typeof e.value=="string")return e.value;if(typeof e.value=="number")return String(e.value);try{const n=JSON.stringify(e.value);if(n!==void 0)return n}catch{}return String(t)}class M{constructor(){D(this,"usedKeys",new Map)}fix(t,n){let s=q(t,n);for(;;){let u=this.usedKeys.get(s);if(u===void 0){this.usedKeys.set(s,1);break}this.usedKeys.set(s,++u),s=`${s}(${u})`}return s}}const L=e=>({value:e,text:String(e),disabled:!0,key:F}),H="3c9369b7-0a5e-46ea-93c2-e8b9fec67fdb",F="1a53f789-77f5-4ce6-a829-b00e563f1ee8";function z({options:e,value:t,invalidValueOption:n=L,onChange:s,placeholder:u,...d}){const y=t==null,m=r.useMemo(()=>t!=null&&e.some(i=>i.value==t),[e,t]),x=r.useMemo(()=>t==null||!n?null:n(t),[n,t]),a=r.useMemo(()=>{if(m)return e;const i=[...e];return y?u!=null&&i.unshift({text:u,hidden:!0,value:null,key:H}):x&&i.push(x),i},[m,e,y,x,u]),h=_(i=>{const p=i.target.selectedIndex,N=a[p];s==null||s({value:N.value,index:p,type:"change",timeStamp:i.timeStamp,target:i.target})}),l=r.useRef(null),o=r.useCallback(()=>{l.current&&(l.current.selectedIndex<0||a[l.current.selectedIndex].value!=t)&&(l.current.selectedIndex=a.findIndex(i=>i.value==t))},[a,t]),v=i=>{l.current=i,o()};E(()=>{o()},[o]);const g=new M;return c.jsx("select",{...d,onChange:h,ref:v,children:a.map((i,p)=>{const{value:N,text:Z,uniqueKey:R,...G}=i,w=g.fix(i,p);return r.createElement("option",{...G,key:w,value:w},i.text)})})}function Y(e){return e?String(e).replace(/\s+/gu," ").trim():""}function b(e,t=2){return String(e).padStart(t,"0")}function S(e){const t=new Date(e);let n=`${t.getFullYear()}-${b(t.getMonth()+1)}-${b(t.getDate())}T${b(t.getHours())}:${b(t.getMinutes())}`;return(t.getSeconds()!==0||t.getMilliseconds()!==0)&&(n+=":"+b(t.getSeconds()),t.getMilliseconds()!==0&&(n+="."+b(t.getMilliseconds(),3))),n}const T=r.forwardRef(function({value:t="",onPaste:n,onChange:s,onInput:u,onBlur:d,formatOnChange:y=j,...m},x){const[a,h]=r.useState(t),l=r.useRef(t),o=r.useRef(!1);E(()=>{h(t),o.current=!1,l.current=t},[t]);const v={type:"text",...m,ref:x,value:a,onChange:g=>{h(g.target.value)},onInput:g=>{o.current=!0,u==null||u(g)},onBlur:g=>{const i=y(a);o.current&&(i!==l.current&&(s==null||s({type:"change",value:i,timeStamp:g.timeStamp,target:g.target}),l.current=i),i!==g.target.value&&h(i)),d==null||d(g)}};return c.jsx("input",{...v})});function B({formatOnChange:e=Y,...t}){return c.jsx(T,{formatOnChange:e,...t,type:"text"})}const P=r.forwardRef(function({onInput:t,style:n,initialHeight:s="auto",...u},d){const y=r.useRef(null),[m,x]=r.useState(s),a=r.useCallback(()=>{const l=y.current;if(!l)return;l.style.height=s;const o=`${l.scrollHeight}px`;x(o),l.style.height=o},[s]);r.useImperativeHandle(d,()=>({element:y.current,adjustHeight:a}),[a]);const h=I(l=>{a(),t==null||t(l)});return r.useLayoutEffect(()=>{a();const l=y.current;if(!l)return;const o=new ResizeObserver(v=>{a()});return o.observe(l),()=>{o.unobserve(l)}},[a]),c.jsx("textarea",{...u,style:{overflow:"hidden",resize:"none",...n,height:m},onInput:h,ref:y})});function U(e){const t=r.useId(),n=e.name??t,s=e.valueEquals??Object.is,u=e.options??[],d=new M,y=I(m=>{const x=Number(m.target.value),a=u[x];a!=null&&e.onChange!=null&&e.onChange({value:a.value,index:x,type:"change",timeStamp:m.timeStamp,target:m.target})});return c.jsx("ul",{className:e.className,children:u.map((m,x)=>{const{value:a,text:h,key:l,itemClassName:o,labelClassName:v,inputClassName:g,textClassName:i,...p}=m,N=d.fix(m,x);return e.value!==void 0&&(p.checked=s(a,e.value)),c.jsx("li",{className:o,"aria-disabled":p.disabled,children:c.jsxs("label",{className:v,children:[c.jsx("input",{...p,className:g,value:x,onChange:y,name:n,type:"radio"}),c.jsx("span",{className:i,children:h})]})},N)})})}function K(){return r.useRef(null)}function O(e){e.current!=null&&(clearTimeout(e.current),e.current=null)}const C=({value:e,onChange:t,debounce:n=500,...s})=>{const u=K(),d=K();E(()=>{O(d),u.current!=null&&(u.current.value=e)},[e]);const y=()=>{u.current!=null&&u.current.value!==e&&(t==null||t({value:u.current.value}))};return c.jsx("input",{...s,ref:u,defaultValue:e,onInput:()=>{O(d),d.current=setTimeout(y,n)},onBlur:()=>{O(d),y()}})};function J({onClick:e,...t}){return t.onClick=n=>{n.preventDefault(),e==null||e(n)},c.jsx("button",{type:"button",...t})}function W({value:e,defaultValue:t,min:n,max:s,...u}){return e!==void 0&&(u.value=e===null?"":S(e)),t!=null&&(u.defaultValue=S(t)),n!=null&&(u.min=S(n)),s!=null&&(u.max=S(s)),c.jsx("input",{type:"datetime-local",...u})}f.ActionButton=J,f.DatetimeLocalInput=W,f.DebouncedInput=C,f.Input=T,f.RadioMenu=U,f.Select=z,f.TextArea=P,f.TextInput=B,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mpen/react-basic-inputs",
3
3
  "private": false,
4
- "version": "0.2.8",
4
+ "version": "0.2.9",
5
5
  "type": "module",
6
6
  "files": ["dist"],
7
7
  "exports": {