the-omelet-ui 1.4.7 → 1.4.8
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/chunk-WSPTQJ57.js +1 -0
- package/dist/chunk-Y2ECRCYO.js +1 -0
- package/dist/entries/SearchInput.js +1 -1
- package/dist/entries/districtDropdown.js +1 -1
- package/dist/entries/provinceDropdown.js +1 -1
- package/dist/entries/searchSelect.d.ts +3 -1
- package/dist/entries/searchSelect.js +1 -1
- package/dist/entries/searchSelectWithApi.js +1 -1
- package/dist/entries/subDistrictDropdown.js +1 -1
- package/dist/entries/textInput.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-A2DBYHBF.js +0 -1
- package/dist/chunk-Q627UWAQ.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {a}from'./chunk-DM45BGDQ.js';import {a as a$1}from'./chunk-6GLPXMGB.js';import*as o from'react';import {cva}from'class-variance-authority';import {jsxs,jsx}from'react/jsx-runtime';var w=cva("block w-full rounded-md bg-white outline-none text-sm borderborder disabled:border-none transition-shadow disabled:bg-[#f4f4f4] disabled:pointer-events-none disabled:text-[#BDC2BE] disabled:font-boldfocus-visible:ring-2",{variants:{size:{sm:"h-8 px-2 py-3 text-sm",md:"h-10 px-2 py-4 text-md",lg:"h-12 px-4 py-6 text-xl"},tone:{neutral:"border border-[#C9D7E3] focus-visible:ring-black/20",success:"border border-green-500/60 focus-visible:ring-green-300",danger:"border border-red-500/60 focus-visible:ring-red-300",warning:"border border-yellow-500/60 focus-visible:ring-yellow-300",info:"border border-blue-500/60 focus-visible:ring-blue-300"},withStart:{true:"",false:""},withEnd:{true:"",false:""}},compoundVariants:[{withStart:true,class:"ps-10"},{withEnd:true,class:"pe-10"}],defaultVariants:{size:"md",tone:"neutral"}}),d=o.forwardRef(({className:p,start:s,end:a$2,size:u,tone:c,withStart:b,withEnd:f,error:t,label:r,required:m,disabled:x=false,...v},g)=>jsxs("fieldset",{className:"relative flex flex-col space-y-2",children:[r&&jsx(a,{label:r,required:m}),jsxs("div",{className:"relative flex flex-col gap-2 items-start text-start",children:[s?jsx("div",{className:"pointer-events-none absolute inset-y-0 left-0 flex items-center ps-3","aria-hidden":"true",children:jsx("span",{className:"text-black/50",children:s})}):null,jsx("input",{ref:g,"data-state":t?"invalid":void 0,className:a$1(w({size:u,tone:t?"danger":c,withStart:b??!!s,withEnd:f??!!a$2}),p),disabled:x,...v}),a$2?jsx("div",{className:"absolute inset-y-0 right-0 flex items-center pe-3",children:a$2}):null]}),t&&jsx("small",{className:"text-red-500 text-xs",children:t})]}));d.displayName="TextInput";var S=d;export{S as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {a as a$4}from'./chunk-KYNNMWQA.js';import {a as a$3}from'./chunk-WSPTQJ57.js';import {a as a$5}from'./chunk-IX36POX2.js';import {a as a$1}from'./chunk-DM45BGDQ.js';import {a as a$2}from'./chunk-6GLPXMGB.js';import*as a from'react';import*as l from'@radix-ui/react-popover';import {Check}from'lucide-react';import {jsxs,jsx}from'react/jsx-runtime';function ne(c){return typeof c=="string"?{id:c,label:c}:c}var ie={neutral:"border-neutral-900 bg-neutral-900 text-white",primary:"border-black bg-black text-white",red:"border-red-600 bg-red-600 text-white",green:"border-green-600 bg-green-600 text-white",blue:"border-blue-600 bg-blue-600 text-white",yellow:"border-yellow-500 bg-yellow-500 text-black",violet:"border-violet-600 bg-violet-600 text-white"},ce={sm:"h-8",md:"h-10",lg:"h-12"};function de({trigger:c,triggerPlaceholder:R="Choose",items:y,selectionMode:b="multiple",value:w,defaultValue:q,onChange:Q,searchable:k=true,placeholder:A="Placeholder Text",searchButtonLabel:O="Search",onQueryChange:V,onSearch:j,loading:u=false,emptyLabel:D="No results",contentClassName:H,maxHeight:W=288,renderItem:N,buttonColor:_="primary",searchButtonColor:$,searchButtonClassName:E,checkedColor:F="primary",checkedClassName:G,renderTriggerValue:C,label:P,required:J,errorMessage:f,disabled:p,size:K="md"}){let[I,S]=a.useState(false),[g,U]=a.useState(""),[h,X]=a.useState(""),s=b==="multiple",[Y,Z]=a.useState(q??(s?[]:"")),o=w??Y,d=a.useMemo(()=>y.map(ne),[y]),B=a.useMemo(()=>{let e=h.trim().toLowerCase();return e?d.filter(r=>String(r.label).toLowerCase().includes(e)):d},[d,h]),L=e=>{Q?.(e),w===void 0&&Z(e);},ee=e=>{if(s){let r=new Set(o);r.has(e)?r.delete(e):r.add(e),L(Array.from(r));}else L(e),S(false);},te=e=>s?o.includes(e):o===e,re=()=>{X(g),j?.(g);},v=a.useMemo(()=>s?o:o?[o]:[],[o,s]),m=a.useMemo(()=>d.filter(e=>v.includes(e.id)),[d,v]),oe=a.useMemo(()=>m.length===0?R:s?`\u0E40\u0E25\u0E37\u0E2D\u0E01 ${m.length} \u0E23\u0E32\u0E22\u0E01\u0E32\u0E23`:m[0].label,[m,s,R]);return jsxs("fieldset",{children:[P&&jsx(a$1,{label:P,required:J}),jsxs(l.Root,{open:I&&!p,onOpenChange:e=>!p&&S(e),children:[jsx("div",{className:"mb-2"}),jsx(l.Trigger,{asChild:true,children:c??jsxs("button",{type:"button",className:a$2("flex w-full min-w-[260px] items-center justify-between","rounded-md border border-black/15 bg-white px-4 text-left","outline-none focus-visible:ring-2 ring-black/20",f&&!p?"border-red-600":"",p?"opacity-50 cursor-not-allowed":"",ce[K]),children:[jsx("span",{className:a$2("flex-1 ",{"text-gray-400":s?o?.length===0:!o,"text-black":s?o?.length>0:!!o}),children:C?C(v,m):oe}),jsx("svg",{className:a$2("ml-3 h-5 w-5 text-black/60 transition-transform",I?"rotate-180":"rotate-0"),viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:jsx("path",{d:"M6 9l6 6 6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})]})}),jsx(l.Portal,{children:jsxs(l.Content,{sideOffset:8,className:a$2("w-[300px] rounded-md border border-black/10 bg-white p-2 shadow-xl",H),children:[k&&jsxs("form",{className:"grid grid-cols-[1fr_auto] gap-3",onSubmit:e=>{e.preventDefault(),re();},children:[jsx(a$3,{start:jsx(a$4,{}),value:g,onChange:e=>{U(e.currentTarget.value),V?.(e.currentTarget.value);},size:"md",placeholder:A}),jsx(a$5,{color:$??_,type:"submit",disabled:u||g.trim()===h.trim(),size:"md",className:E,children:O})]}),jsxs("div",{role:"listbox","aria-multiselectable":s||void 0,className:a$2(" overflow-y-auto rounded-md",{"mt-3":k}),style:{maxHeight:W},children:[u&&jsx("div",{className:"p-6 text-center text-black/60",children:"\u0E01\u0E33\u0E25\u0E31\u0E07\u0E42\u0E2B\u0E25\u0E14\u2026"}),!u&&B.length===0&&jsx("div",{className:"p-6 text-center text-black/50",children:D}),!u&&B.map(e=>{let r=te(e.id),ae=ie[F],se=jsxs(a$5,{type:"button",role:"option","aria-selected":r,onClick:()=>ee(e.id),disabled:e.disabled,size:"sm",className:a$2("group flex w-full items-center justify-between gap-3 rounded-md px-2 py-2 text-left bg-white","hover:bg-black/[0.04] disabled:opacity-50",{"bg-black/[0.04]":r&&b==="single"}),children:[jsx("span",{className:"text-md text-black",children:e.label}),b==="multiple"&&jsx("span",{className:a$2("grid h-5 w-5 place-items-center rounded-full border-2",r?ae:"border-black/20",r&&G),children:r?jsx(Check,{size:12}):null})]},e.id);return N?jsx("div",{children:N(e,false,r)},e.id):se})]}),jsx(l.Arrow,{className:"fill-white stroke-black/10"})]})})]}),f&&jsx("small",{className:"text-red-500 text-xs",children:f})]})}var he=de;export{he as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a}from'../chunk-6GLPXMGB.js';import {memo,forwardRef,useState,useRef,useImperativeHandle,useCallback,useMemo,useEffect}from'react';import*as h from'@radix-ui/react-popover';import {jsx,jsxs}from'react/jsx-runtime';var Y=memo(()=>jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",className:"text-gray-400",children:jsx("path",{d:"M9 17A8 8 0 1 0 9 1a8 8 0 0 0 0 16zM18.5 18.5l-4-4",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}));Y.displayName="SearchIcon";var Z=memo(()=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M12 4L4 12M4 4l8 8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})}));Z.displayName="ClearIcon";var _=forwardRef(({placeholder:u="\u0E04\u0E49\u0E19\u0E2B\u0E32...",defaultValue:O="",value:r,onChange:a$1,onSelect:m,onSubmit:s,options:p=[],onSearch:i,debounceMs:g=300,isLoading:x=false,disabled:P=false,className:L,inputClassName:ee,popoverClassName:te,optionClassName:ne,clearButtonClassName:re,leftIconClassName:ae,showClearButton:H=true,showSearchIcon:T=true,leftIcon:E,emptyMessage:oe="\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E1C\u0E25\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32",loadingMessage:se="\u0E01\u0E33\u0E25\u0E31\u0E07\u0E04\u0E49\u0E19\u0E2B\u0E32...",maxResults:M=10,renderOption:ie,minSearchLength:w=0,hintText:Q,autoSelectFirst:N=false},le)=>{let[ce,A]=useState(O),[j,c]=useState(false),[o,C]=useState([]),[de,U]=useState(false),[I,$]=useState(N?0:-1),f=useRef(null),k=useRef(void 0),l=r!==void 0?r:ce,z=x||de;useImperativeHandle(le,()=>({focus:()=>{f.current?.focus();},blur:()=>{f.current?.blur();},clear:()=>{J();},getInputElement:()=>f.current}),[]);let F=useCallback(e=>{if(!e||e.length<w)return [];let t=e.toLowerCase();return p.filter(v=>v.label.toLowerCase().includes(t)||v.value.toLowerCase().includes(t)||v.category?.toLowerCase().includes(t)).slice(0,M)},[p,M,w]),G=useCallback(async e=>{if(!e||e.length<w){C([]),c(false);return}if(!i){let t=F(e);C(t),c(t.length>0);return}k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(async()=>{U(true);try{let t=await i(e);C(t.slice(0,M)),c(t.length>0);}catch{C([]);}finally{U(false);}},g);},[i,F,g,M,w]),ue=useCallback(e=>{let t=e.target.value;r===void 0&&A(t),a$1?.(t),G(t),$(N?0:-1);},[r,a$1,G,N]),K=useCallback(e=>{let t=e.label;r===void 0&&A(t),a$1?.(t),m?.(e),c(false),f.current?.blur();},[r,a$1,m]),J=useCallback(()=>{r===void 0&&A(""),a$1?.(""),C([]),c(false),f.current?.focus();},[r,a$1]),B=useCallback(e=>{s?.(e),c(false),f.current?.blur();},[s]),pe=useCallback(e=>{if(!j||o.length===0){e.key==="Enter"&&(e.preventDefault(),s&&B(l));return}switch(e.key){case "ArrowDown":e.preventDefault(),$(t=>t===-1?0:t<o.length-1?t+1:t);break;case "ArrowUp":e.preventDefault(),$(t=>t<=0?N?0:-1:t-1);break;case "Enter":e.preventDefault(),I>=0&&o[I]?K(o[I]):s&&B(l);break;case "Escape":e.preventDefault(),c(false),f.current?.blur();break}},[j,o,I,N,s,l,K,B]),S=useMemo(()=>o.reduce((e,t)=>{let v=t.category||"default";return e[v]||(e[v]=[]),e[v].push(t),e},{}),[o]),ge=useMemo(()=>Object.keys(S).length>1||Object.keys(S).length===1&&!S.default,[S]);useEffect(()=>()=>{k.current&&window.clearTimeout(k.current);},[]);let fe=useMemo(()=>({paddingLeft:T||E?"3.5rem":"1.5rem",paddingRight:H&&l?"3.5rem":"1.5rem"}),[T,E,H,l]);return jsxs("div",{className:"w-full",children:[jsxs(h.Root,{open:j,onOpenChange:c,children:[jsx(h.Anchor,{asChild:true,children:jsxs("div",{className:a("relative",L),children:[(T||E)&&jsx("div",{className:a("absolute top-1/2 -translate-y-1/2 pointer-events-none",ae),style:{left:"1rem"},children:E||jsx(Y,{})}),jsx("input",{ref:f,type:"text",value:l,onChange:ue,onKeyDown:pe,onFocus:useCallback(()=>{l&&o.length>0&&c(true);},[l,o.length]),placeholder:u,disabled:P,style:fe,className:a("w-full h-
|
|
1
|
+
import {a}from'../chunk-6GLPXMGB.js';import {memo,forwardRef,useState,useRef,useImperativeHandle,useCallback,useMemo,useEffect}from'react';import*as h from'@radix-ui/react-popover';import {jsx,jsxs}from'react/jsx-runtime';var Y=memo(()=>jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",className:"text-gray-400",children:jsx("path",{d:"M9 17A8 8 0 1 0 9 1a8 8 0 0 0 0 16zM18.5 18.5l-4-4",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}));Y.displayName="SearchIcon";var Z=memo(()=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M12 4L4 12M4 4l8 8",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})}));Z.displayName="ClearIcon";var _=forwardRef(({placeholder:u="\u0E04\u0E49\u0E19\u0E2B\u0E32...",defaultValue:O="",value:r,onChange:a$1,onSelect:m,onSubmit:s,options:p=[],onSearch:i,debounceMs:g=300,isLoading:x=false,disabled:P=false,className:L,inputClassName:ee,popoverClassName:te,optionClassName:ne,clearButtonClassName:re,leftIconClassName:ae,showClearButton:H=true,showSearchIcon:T=true,leftIcon:E,emptyMessage:oe="\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E1C\u0E25\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32",loadingMessage:se="\u0E01\u0E33\u0E25\u0E31\u0E07\u0E04\u0E49\u0E19\u0E2B\u0E32...",maxResults:M=10,renderOption:ie,minSearchLength:w=0,hintText:Q,autoSelectFirst:N=false},le)=>{let[ce,A]=useState(O),[j,c]=useState(false),[o,C]=useState([]),[de,U]=useState(false),[I,$]=useState(N?0:-1),f=useRef(null),k=useRef(void 0),l=r!==void 0?r:ce,z=x||de;useImperativeHandle(le,()=>({focus:()=>{f.current?.focus();},blur:()=>{f.current?.blur();},clear:()=>{J();},getInputElement:()=>f.current}),[]);let F=useCallback(e=>{if(!e||e.length<w)return [];let t=e.toLowerCase();return p.filter(v=>v.label.toLowerCase().includes(t)||v.value.toLowerCase().includes(t)||v.category?.toLowerCase().includes(t)).slice(0,M)},[p,M,w]),G=useCallback(async e=>{if(!e||e.length<w){C([]),c(false);return}if(!i){let t=F(e);C(t),c(t.length>0);return}k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(async()=>{U(true);try{let t=await i(e);C(t.slice(0,M)),c(t.length>0);}catch{C([]);}finally{U(false);}},g);},[i,F,g,M,w]),ue=useCallback(e=>{let t=e.target.value;r===void 0&&A(t),a$1?.(t),G(t),$(N?0:-1);},[r,a$1,G,N]),K=useCallback(e=>{let t=e.label;r===void 0&&A(t),a$1?.(t),m?.(e),c(false),f.current?.blur();},[r,a$1,m]),J=useCallback(()=>{r===void 0&&A(""),a$1?.(""),C([]),c(false),f.current?.focus();},[r,a$1]),B=useCallback(e=>{s?.(e),c(false),f.current?.blur();},[s]),pe=useCallback(e=>{if(!j||o.length===0){e.key==="Enter"&&(e.preventDefault(),s&&B(l));return}switch(e.key){case "ArrowDown":e.preventDefault(),$(t=>t===-1?0:t<o.length-1?t+1:t);break;case "ArrowUp":e.preventDefault(),$(t=>t<=0?N?0:-1:t-1);break;case "Enter":e.preventDefault(),I>=0&&o[I]?K(o[I]):s&&B(l);break;case "Escape":e.preventDefault(),c(false),f.current?.blur();break}},[j,o,I,N,s,l,K,B]),S=useMemo(()=>o.reduce((e,t)=>{let v=t.category||"default";return e[v]||(e[v]=[]),e[v].push(t),e},{}),[o]),ge=useMemo(()=>Object.keys(S).length>1||Object.keys(S).length===1&&!S.default,[S]);useEffect(()=>()=>{k.current&&window.clearTimeout(k.current);},[]);let fe=useMemo(()=>({paddingLeft:T||E?"3.5rem":"1.5rem",paddingRight:H&&l?"3.5rem":"1.5rem"}),[T,E,H,l]);return jsxs("div",{className:"w-full",children:[jsxs(h.Root,{open:j,onOpenChange:c,children:[jsx(h.Anchor,{asChild:true,children:jsxs("div",{className:a("relative",L),children:[(T||E)&&jsx("div",{className:a("absolute top-1/2 -translate-y-1/2 pointer-events-none",ae),style:{left:"1rem"},children:E||jsx(Y,{})}),jsx("input",{ref:f,type:"text",value:l,onChange:ue,onKeyDown:pe,onFocus:useCallback(()=>{l&&o.length>0&&c(true);},[l,o.length]),placeholder:u,disabled:P,style:fe,className:a("w-full h-10 rounded-full border border-gray-300","text-base","focus:outline-none focus:border-gray-900 focus:ring-2 focus:ring-gray-100","disabled:bg-gray-50 disabled:cursor-not-allowed","transition-all",ee)}),H&&l&&!P&&jsx("button",{type:"button",onClick:J,className:a("absolute top-1/2 -translate-y-1/2","w-8 h-8 rounded-full","flex items-center justify-center","bg-gray-200 hover:bg-gray-300","transition-colors",re),style:{right:"1rem"},"aria-label":"Clear search",children:jsx(Z,{})})]})}),jsx(h.Portal,{children:jsxs(h.Content,{side:"bottom",align:"start",sideOffset:8,className:a("w-[var(--radix-popover-trigger-width)]","bg-white rounded-2xl shadow-lg border border-gray-200","max-h-[400px] overflow-y-auto","z-50","animate-in fade-in-0 zoom-in-95",te),onOpenAutoFocus:e=>e.preventDefault(),children:[z&&jsx("div",{className:"p-4 text-center text-gray-500 text-sm",children:jsxs("div",{className:"flex items-center justify-center gap-2",children:[jsx("div",{className:"w-4 h-4 border-2 border-gray-300 border-t-gray-600 rounded-full animate-spin"}),jsx("span",{children:se})]})}),!z&&o.length===0&&l.length>=w&&jsx("div",{className:"p-4 text-center text-gray-500 text-sm",children:oe}),!z&&o.length>0&&jsx(q,{hasCategories:ge,groupedOptions:S,filteredOptions:o,highlightedIndex:I,renderOption:ie,optionClassName:ne,onSelect:K})]})})]}),Q&&jsx("div",{className:"mt-3 text-center text-sm text-gray-400",children:Q})]})});_.displayName="SearchInput";var q=memo(({hasCategories:u,groupedOptions:O,filteredOptions:r,highlightedIndex:a,renderOption:m,optionClassName:s,onSelect:p})=>jsx("div",{className:"py-2",children:u?Object.entries(O).map(([i,g])=>jsxs("div",{children:[i!=="default"&&jsx("div",{className:"px-4 py-2 text-xs font-semibold text-gray-400 uppercase",children:i}),g.map((x,P)=>{let L=r.indexOf(x);return jsx(W,{option:x,index:L,isHighlighted:L===a,renderOption:m,optionClassName:s,onSelect:p},`${x.value}-${P}`)})]},i)):r.map((i,g)=>jsx(W,{option:i,index:g,isHighlighted:g===a,renderOption:m,optionClassName:s,onSelect:p},`${i.value}-${g}`))}));q.displayName="OptionsList";var W=memo(({option:u,index:O,isHighlighted:r,renderOption:a$1,optionClassName:m,onSelect:s})=>{let p=useCallback(()=>{s(u);},[u,s]);return a$1?jsx("div",{onClick:p,children:a$1(u,O)}):jsx("button",{type:"button",onClick:p,className:a("w-full px-4 py-3 text-left text-sm","hover:bg-gray-50 transition-colors",r&&"bg-gray-100",m),children:u.label})});W.displayName="OptionItem";var be=_;export{be as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'../chunk-
|
|
1
|
+
import {a}from'../chunk-Y2ECRCYO.js';import'../chunk-KYNNMWQA.js';import'../chunk-WSPTQJ57.js';import'../chunk-IX36POX2.js';import'../chunk-DM45BGDQ.js';import'../chunk-6GLPXMGB.js';import {useState,useEffect,useCallback}from'react';import {jsx}from'react/jsx-runtime';var C=(t,s)=>s==="en"?{id:t.id,name:t.name_en,value:t.id,label:t.name_en}:{id:t.id,name:t.name_th,value:t.id,label:t.name_th},P=async t=>(await(await fetch("https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/district.json")).json()).filter(c=>c.province_id===t),w=({locale:t="th",searchPlaceholder:s="Search District",placeholder:o="Select District",label:l,searchButtonClassName:c="bg-blue-500",onChange:d,value:n,required:D=false,provinceId:a$1})=>{let[r,g]=useState([]),[b,u]=useState(null);useEffect(()=>{a$1&&P(a$1).then(g);},[a$1]),useEffect(()=>{if(n){let e=r.find(i=>t==="th"?i.name_th===n:i.name_en===n);e&&u(e);}},[r,n,t]);let _=useCallback(e=>{let i=r.find(v=>v.id===e);i&&(u(i),d?.(i));},[r,d]);return jsx("div",{children:jsx(a,{items:r.map(e=>C(e,t)),placeholder:s,triggerPlaceholder:o,label:l,selectionMode:"single",searchButtonClassName:c,onChange:e=>{_(e);},value:b?.id,required:D,disabled:!a$1})})},x=w;
|
|
2
2
|
export{x as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'../chunk-
|
|
1
|
+
import {a}from'../chunk-Y2ECRCYO.js';import'../chunk-KYNNMWQA.js';import'../chunk-WSPTQJ57.js';import'../chunk-IX36POX2.js';import'../chunk-DM45BGDQ.js';import'../chunk-6GLPXMGB.js';import {useState,useEffect,useCallback}from'react';import {jsx}from'react/jsx-runtime';var C=(e,t)=>t==="en"?{id:e.id,name:e.name_en,value:e.id,label:e.name_en}:{id:e.id,name:e.name_th,value:e.id,label:e.name_th},w=async()=>await(await fetch("https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/province.json")).json(),x=({disabled:e,locale:t="th",searchPlaceholder:u="Search Province",placeholder:P="Select Province",label:v,searchButtonClassName:m="bg-blue-500",onChange:a$1,value:i,required:f=false})=>{let[o,p]=useState([]),[g,s]=useState(null);useEffect(()=>{w().then(p);},[]),useEffect(()=>{if(i){let n=o.find(r=>t==="th"?r.name_th===i:r.name_en===i);n&&s(n);}},[o,i,t]);let b=useCallback(n=>{let r=o.find(_=>_.id===n);r&&(s(r),a$1?.(r));},[o,a$1]);return jsx("div",{children:jsx(a,{items:o.map(n=>C(n,t)),placeholder:u,triggerPlaceholder:P,label:v,selectionMode:"single",searchButtonClassName:m,onChange:n=>{b(n);},value:g?.id,required:f,disabled:e})})},y=x;
|
|
2
2
|
export{y as default};
|
|
@@ -43,7 +43,9 @@ type SearchSelectProps = {
|
|
|
43
43
|
errorMessage?: string;
|
|
44
44
|
disabled?: boolean;
|
|
45
45
|
searchIcon?: React.ReactNode;
|
|
46
|
+
/** ขนาดของ SearchSelect Trigger */
|
|
47
|
+
size?: "sm" | "md" | "lg";
|
|
46
48
|
};
|
|
47
|
-
declare function SearchSelect({ trigger, triggerPlaceholder, items, selectionMode, value, defaultValue, onChange, searchable, placeholder, searchButtonLabel, onQueryChange, onSearch, loading, emptyLabel, contentClassName, maxHeight, renderItem, buttonColor, searchButtonColor, searchButtonClassName, checkedColor, checkedClassName, renderTriggerValue, label, required, errorMessage, disabled }: SearchSelectProps): react_jsx_runtime.JSX.Element;
|
|
49
|
+
declare function SearchSelect({ trigger, triggerPlaceholder, items, selectionMode, value, defaultValue, onChange, searchable, placeholder, searchButtonLabel, onQueryChange, onSearch, loading, emptyLabel, contentClassName, maxHeight, renderItem, buttonColor, searchButtonColor, searchButtonClassName, checkedColor, checkedClassName, renderTriggerValue, label, required, errorMessage, disabled, size }: SearchSelectProps): react_jsx_runtime.JSX.Element;
|
|
48
50
|
|
|
49
51
|
export { type SearchSelectProps, SearchSelect as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as default}from'../chunk-
|
|
1
|
+
export{a as default}from'../chunk-Y2ECRCYO.js';import'../chunk-KYNNMWQA.js';import'../chunk-WSPTQJ57.js';import'../chunk-IX36POX2.js';import'../chunk-DM45BGDQ.js';import'../chunk-6GLPXMGB.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$3}from'../chunk-KYNNMWQA.js';import {a as a$2}from'../chunk-
|
|
1
|
+
import {a as a$3}from'../chunk-KYNNMWQA.js';import {a as a$2}from'../chunk-WSPTQJ57.js';import {a as a$4}from'../chunk-IX36POX2.js';import {a}from'../chunk-DM45BGDQ.js';import {a as a$1}from'../chunk-6GLPXMGB.js';import*as r from'react';import*as i from'@radix-ui/react-popover';import {Check}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';var ze=a=>l=>{a(typeof l=="string"?l:l[0]||"");},He=a=>l=>{a(Array.isArray(l)?l:[l]);};function J(a){return typeof a=="string"?{id:a,label:a}:a}var Se={neutral:"border-neutral-900 bg-neutral-900 text-white",primary:"border-black bg-black text-white",red:"border-red-600 bg-red-600 text-white",green:"border-green-600 bg-green-600 text-white",blue:"border-blue-600 bg-blue-600 text-white",yellow:"border-yellow-500 bg-yellow-500 text-black",violet:"border-violet-600 bg-violet-600 text-white"};function Ie({trigger:a$5,triggerPlaceholder:l="Choose",items:K,loadOptions:c,selectionMode:y="multiple",value:M,defaultValue:X,onChange:Y,searchable:T=true,placeholder:Z="Placeholder Text",searchButtonLabel:O="Search",onQueryChange:ee,onSearch:te,loading:re=false,emptyLabel:se="No results",errorLabel:oe="Failed to load options",contentClassName:ae,maxHeight:le=288,renderItem:A,buttonColor:ne="primary",searchButtonColor:ie,searchButtonClassName:ce,checkedColor:de="primary",checkedClassName:ue,renderTriggerValue:q,label:z,required:me,enablePagination:p=false,pageSize:H=20,errorMessage:R}){let[x,Q]=r.useState(false),[b,ge]=r.useState(""),[k,E]=r.useState(""),[V,w]=r.useState([]),[N,W]=r.useState(false),[C,j]=r.useState(null),[pe,D]=r.useState(1),[be,fe]=r.useState(true),n=y==="multiple",[he,xe]=r.useState(X??(n?[]:"")),o=M??he,F=c?V:K||[],m=r.useMemo(()=>F.map(J),[F]),S=r.useCallback(async(e,s=1,h=false)=>{if(c){W(true),j(null);try{let B=(await c(e)).map(J);w(h?Ne=>[...Ne,...B]:B),p&&fe(B.length===H);}catch(u){j(u instanceof Error?u.message:"Unknown error"),w([]);}finally{W(false);}}},[c,p,H]);r.useEffect(()=>{x&&c&&V.length===0&&S("");},[x,c]);let v=r.useMemo(()=>{if(c)return m;let e=k.trim().toLowerCase();return e?m.filter(s=>String(s.label).toLowerCase().includes(e)):m},[m,k,c]),U=e=>{Y?.(e),M===void 0&&xe(e);},ve=e=>{if(n){let s=new Set(o);s.has(e)?s.delete(e):s.add(e),U(Array.from(s));}else U(e),Q(false);},ye=e=>n?o.includes(e):o===e,Re=()=>{c?(D(1),S(b,1,false),E(b)):(E(b),te?.(b));},ke=()=>{if(!N&&be&&p){let e=pe+1;D(e),S(k,e,true);}},I=r.useMemo(()=>n?o:o?[o]:[],[o,n]),f=r.useMemo(()=>m.filter(e=>I.includes(e.id)),[m,I]),we=r.useMemo(()=>f.length===0?l:n?`\u0E40\u0E25\u0E37\u0E2D\u0E01 ${f.length} \u0E23\u0E32\u0E22\u0E01\u0E32\u0E23`:f[0].label,[f,n,l]),P=N||re;return jsx("fieldset",{children:jsxs(i.Root,{open:x,onOpenChange:Q,children:[z&&jsx(a,{label:z,required:me}),jsx("div",{className:"mb-2"}),jsx(i.Trigger,{asChild:true,children:a$5??jsxs("button",{type:"button",className:a$1("flex w-full min-w-[260px] items-center justify-between","rounded-md border border-black/15 bg-white px-4 py-3 text-left","outline-none focus-visible:ring-2 ring-black/20",R?"border-red-500":"border-black/20"),children:[jsx("span",{className:a$1("flex-1 ",{"text-gray-400":n?o?.length===0:!o,"text-black":n?o?.length>0:!!o}),children:q?q(I,f):we}),jsx("svg",{className:a$1("ml-3 h-5 w-5 text-black/60 transition-transform",x?"rotate-180":"rotate-0"),viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:jsx("path",{d:"M6 9l6 6 6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})]})}),R&&jsx("small",{className:"text-red-500 text-xs",children:R}),jsx(i.Portal,{children:jsxs(i.Content,{sideOffset:8,className:a$1("w-[300px] rounded-md border border-black/10 bg-white p-2 shadow-xl",ae),children:[T&&jsxs("form",{className:"grid grid-cols-[1fr_auto] gap-3",onSubmit:e=>{e.preventDefault(),Re();},children:[jsx(a$2,{start:jsx(a$3,{}),value:b,onChange:e=>{ge(e.currentTarget.value),ee?.(e.currentTarget.value);},size:"sm",placeholder:Z}),jsx(a$4,{color:ie??ne,type:"submit",disabled:P,size:"md",className:ce,children:O})]}),jsxs("div",{role:"listbox","aria-multiselectable":n||void 0,className:a$1("overflow-y-auto rounded-md",{"mt-3":T}),style:{maxHeight:le},onScroll:e=>{if(!p)return;let{scrollTop:s,scrollHeight:h,clientHeight:u}=e.currentTarget;h-s<=u+50&&ke();},children:[P&&v.length===0&&jsx("div",{className:"p-6 text-center text-black/60",children:"\u0E01\u0E33\u0E25\u0E31\u0E07\u0E42\u0E2B\u0E25\u0E14\u2026"}),C&&jsx("div",{className:"p-6 text-center text-red-600",children:oe}),!P&&!C&&v.length===0&&jsx("div",{className:"p-6 text-center text-black/50",children:se}),!C&&v.map(e=>{let s=ye(e.id),h=Se[de],u=jsxs(a$4,{type:"button",role:"option","aria-selected":s,onClick:()=>ve(e.id),disabled:e.disabled,size:"sm",className:a$1("group flex w-full items-center justify-between gap-3 rounded-md px-2 py-2 text-left bg-white h-auto","hover:bg-black/[0.04] disabled:opacity-50",{"bg-black/[0.04]":s&&y==="single"}),children:[jsx("span",{className:"text-md text-black",children:e.label}),y==="multiple"&&jsx("span",{className:a$1("grid h-5 w-5 place-items-center rounded-full border-2",s?h:"border-black/20",s&&ue),children:s?jsx(Check,{size:14}):null})]},e.id);return A?jsx("div",{children:A(e,false,s)},e.id):u}),p&&N&&v.length>0&&jsx("div",{className:"p-2 text-center text-sm text-black/40",children:"\u0E01\u0E33\u0E25\u0E31\u0E07\u0E42\u0E2B\u0E25\u0E14\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E15\u0E34\u0E21..."})]}),jsx(i.Arrow,{className:"fill-white stroke-black/10"})]})})]})})}var Pe=Ie;export{Pe as default,He as handleMultipleChange,ze as handleSingleChange};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'../chunk-
|
|
1
|
+
import {a}from'../chunk-Y2ECRCYO.js';import'../chunk-KYNNMWQA.js';import'../chunk-WSPTQJ57.js';import'../chunk-IX36POX2.js';import'../chunk-DM45BGDQ.js';import'../chunk-6GLPXMGB.js';import {useState,useEffect,useCallback}from'react';import {jsx}from'react/jsx-runtime';var C=(t,s)=>s==="en"?{id:t.id,name:t.name_en,value:t.id,label:t.name_en}:{id:t.id,name:t.name_th,value:t.id,label:t.name_th},P=async t=>(await(await fetch("https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/sub_district.json")).json()).filter(c=>c.district_id===t),w=({locale:t="th",searchPlaceholder:s="Search District",placeholder:o="Select District",label:l,searchButtonClassName:c="bg-blue-500",onChange:u,value:n,required:f=false,districtId:a$1})=>{let[i,S]=useState([]),[g,d]=useState(null);useEffect(()=>{a$1&&P(a$1).then(S);},[a$1]),useEffect(()=>{if(n){let e=i.find(r=>t==="th"?r.name_th===n:r.name_en===n);e&&d(e);}},[i,n,t]);let D=useCallback(e=>{let r=i.find(_=>_.id===e);r&&(d(r),u?.(r));},[i,u]);return jsx("div",{children:jsx(a,{items:i.map(e=>C(e,t)),placeholder:s,triggerPlaceholder:o,label:l,selectionMode:"single",searchButtonClassName:c,onChange:e=>{D(e);},value:g?.id,required:f,disabled:!a$1})})},x=w;
|
|
2
2
|
export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as default}from'../chunk-
|
|
1
|
+
export{a as default}from'../chunk-WSPTQJ57.js';import'../chunk-DM45BGDQ.js';import'../chunk-6GLPXMGB.js';
|
package/package.json
CHANGED
package/dist/chunk-A2DBYHBF.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {a}from'./chunk-DM45BGDQ.js';import {a as a$1}from'./chunk-6GLPXMGB.js';import*as o from'react';import {cva}from'class-variance-authority';import {jsxs,jsx}from'react/jsx-runtime';var w=cva("block w-full rounded-md bg-white outline-none text-sm borderborder disabled:border-none transition-shadow disabled:bg-[#f4f4f4] disabled:pointer-events-none disabled:text-[#BDC2BE] disabled:font-boldfocus-visible:ring-2",{variants:{size:{sm:"h-10 px-2 py-3 text-sm",md:"h-12 px-2 py-4 text-md",lg:"h-14 px-4 py-6 text-xl"},tone:{neutral:"border border-[#C9D7E3] focus-visible:ring-black/20",success:"border border-green-500/60 focus-visible:ring-green-300",danger:"border border-red-500/60 focus-visible:ring-red-300",warning:"border border-yellow-500/60 focus-visible:ring-yellow-300",info:"border border-blue-500/60 focus-visible:ring-blue-300"},withStart:{true:"",false:""},withEnd:{true:"",false:""}},compoundVariants:[{withStart:true,class:"ps-10"},{withEnd:true,class:"pe-10"}],defaultVariants:{size:"md",tone:"neutral"}}),d=o.forwardRef(({className:p,start:s,end:a$2,size:u,tone:c,withStart:b,withEnd:f,error:t,label:r,required:m,disabled:x=false,...v},g)=>jsxs("fieldset",{className:"relative flex flex-col space-y-2",children:[r&&jsx(a,{label:r,required:m}),jsxs("div",{className:"relative flex flex-col gap-2 items-start text-start",children:[s?jsx("div",{className:"pointer-events-none absolute inset-y-0 left-0 flex items-center ps-3","aria-hidden":"true",children:jsx("span",{className:"text-black/50",children:s})}):null,jsx("input",{ref:g,"data-state":t?"invalid":void 0,className:a$1(w({size:u,tone:t?"danger":c,withStart:b??!!s,withEnd:f??!!a$2}),p),disabled:x,...v}),a$2?jsx("div",{className:"absolute inset-y-0 right-0 flex items-center pe-3",children:a$2}):null]}),t&&jsx("small",{className:"text-red-500 text-xs",children:t})]}));d.displayName="TextInput";var S=d;export{S as a};
|
package/dist/chunk-Q627UWAQ.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {a as a$4}from'./chunk-KYNNMWQA.js';import {a as a$3}from'./chunk-A2DBYHBF.js';import {a as a$5}from'./chunk-IX36POX2.js';import {a as a$1}from'./chunk-DM45BGDQ.js';import {a as a$2}from'./chunk-6GLPXMGB.js';import*as a from'react';import*as l from'@radix-ui/react-popover';import {Check}from'lucide-react';import {jsxs,jsx}from'react/jsx-runtime';function le(c){return typeof c=="string"?{id:c,label:c}:c}var ne={neutral:"border-neutral-900 bg-neutral-900 text-white",primary:"border-black bg-black text-white",red:"border-red-600 bg-red-600 text-white",green:"border-green-600 bg-green-600 text-white",blue:"border-blue-600 bg-blue-600 text-white",yellow:"border-yellow-500 bg-yellow-500 text-black",violet:"border-violet-600 bg-violet-600 text-white"};function ie({trigger:c,triggerPlaceholder:y="Choose",items:R,selectionMode:b="multiple",value:w,defaultValue:z,onChange:Q,searchable:k=true,placeholder:A="Placeholder Text",searchButtonLabel:O="Search",onQueryChange:V,onSearch:j,loading:m=false,emptyLabel:D="No results",contentClassName:H,maxHeight:W=288,renderItem:N,buttonColor:_="primary",searchButtonColor:$,searchButtonClassName:E,checkedColor:F="primary",checkedClassName:G,renderTriggerValue:C,label:P,required:J,errorMessage:f,disabled:p}){let[I,S]=a.useState(false),[g,K]=a.useState(""),[h,U]=a.useState(""),s=b==="multiple",[X,Y]=a.useState(z??(s?[]:"")),o=w??X,d=a.useMemo(()=>R.map(le),[R]),B=a.useMemo(()=>{let e=h.trim().toLowerCase();return e?d.filter(r=>String(r.label).toLowerCase().includes(e)):d},[d,h]),L=e=>{Q?.(e),w===void 0&&Y(e);},Z=e=>{if(s){let r=new Set(o);r.has(e)?r.delete(e):r.add(e),L(Array.from(r));}else L(e),S(false);},ee=e=>s?o.includes(e):o===e,te=()=>{U(g),j?.(g);},v=a.useMemo(()=>s?o:o?[o]:[],[o,s]),u=a.useMemo(()=>d.filter(e=>v.includes(e.id)),[d,v]),re=a.useMemo(()=>u.length===0?y:s?`\u0E40\u0E25\u0E37\u0E2D\u0E01 ${u.length} \u0E23\u0E32\u0E22\u0E01\u0E32\u0E23`:u[0].label,[u,s,y]);return jsxs("fieldset",{children:[P&&jsx(a$1,{label:P,required:J}),jsxs(l.Root,{open:I&&!p,onOpenChange:e=>!p&&S(e),children:[jsx("div",{className:"mb-2"}),jsx(l.Trigger,{asChild:true,children:c??jsxs("button",{type:"button",className:a$2("flex w-full min-w-[260px] items-center justify-between","rounded-md border border-black/15 bg-white px-4 py-3 text-left","outline-none focus-visible:ring-2 ring-black/20",f&&!p?"border-red-600":"",p?"opacity-50 cursor-not-allowed":""),children:[jsx("span",{className:a$2("flex-1 ",{"text-gray-400":s?o?.length===0:!o,"text-black":s?o?.length>0:!!o}),children:C?C(v,u):re}),jsx("svg",{className:a$2("ml-3 h-5 w-5 text-black/60 transition-transform",I?"rotate-180":"rotate-0"),viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:jsx("path",{d:"M6 9l6 6 6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})]})}),jsx(l.Portal,{children:jsxs(l.Content,{sideOffset:8,className:a$2("w-[300px] rounded-md border border-black/10 bg-white p-2 shadow-xl",H),children:[k&&jsxs("form",{className:"grid grid-cols-[1fr_auto] gap-3",onSubmit:e=>{e.preventDefault(),te();},children:[jsx(a$3,{start:jsx(a$4,{}),value:g,onChange:e=>{K(e.currentTarget.value),V?.(e.currentTarget.value);},size:"sm",placeholder:A}),jsx(a$5,{color:$??_,type:"submit",disabled:m||g.trim()===h.trim(),size:"md",className:E,children:O})]}),jsxs("div",{role:"listbox","aria-multiselectable":s||void 0,className:a$2(" overflow-y-auto rounded-md",{"mt-3":k}),style:{maxHeight:W},children:[m&&jsx("div",{className:"p-6 text-center text-black/60",children:"\u0E01\u0E33\u0E25\u0E31\u0E07\u0E42\u0E2B\u0E25\u0E14\u2026"}),!m&&B.length===0&&jsx("div",{className:"p-6 text-center text-black/50",children:D}),!m&&B.map(e=>{let r=ee(e.id),oe=ne[F],ae=jsxs(a$5,{type:"button",role:"option","aria-selected":r,onClick:()=>Z(e.id),disabled:e.disabled,size:"sm",className:a$2("group flex w-full items-center justify-between gap-3 rounded-md px-2 py-2 text-left bg-white","hover:bg-black/[0.04] disabled:opacity-50",{"bg-black/[0.04]":r&&b==="single"}),children:[jsx("span",{className:"text-md text-black",children:e.label}),b==="multiple"&&jsx("span",{className:a$2("grid h-5 w-5 place-items-center rounded-full border-2",r?oe:"border-black/20",r&&G),children:r?jsx(Check,{size:12}):null})]},e.id);return N?jsx("div",{children:N(e,false,r)},e.id):ae})]}),jsx(l.Arrow,{className:"fill-white stroke-black/10"})]})})]}),f&&jsx("small",{className:"text-red-500 text-xs",children:f})]})}var be=ie;export{be as a};
|