the-omelet-ui 1.4.5 → 1.4.7
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-KYNNMWQA.js +2 -0
- package/dist/chunk-Q627UWAQ.js +1 -0
- package/dist/entries/checkbox.js +1 -1
- package/dist/entries/datepicker.js +1 -1
- package/dist/entries/districtDropdown.js +1 -1
- package/dist/entries/pagination.js +1 -1
- package/dist/entries/provinceDropdown.js +1 -1
- package/dist/entries/searchSelect.d.ts +1 -0
- package/dist/entries/searchSelect.js +1 -1
- package/dist/entries/searchSelectWithApi.js +1 -1
- package/dist/entries/subDistrictDropdown.js +1 -1
- package/dist/entries/verticalCard.d.ts +7 -25
- package/dist/entries/verticalCard.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-AFEF2EXB.js +0 -2
- package/dist/chunk-LGK5OJYE.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {memo}from'react';import {jsx}from'react/jsx-runtime';var l=memo(()=>jsx("svg",{width:"19",height:"19",viewBox:"0 0 19 19",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.64 1.6C4.75192 1.6 1.6 4.75192 1.6 8.64C1.6 12.5281 4.75192 15.68 8.64 15.68C10.5571 15.68 12.2953 14.9137 13.5648 13.6707C13.5662 13.6693 13.5677 13.6679 13.5691 13.6665C14.8718 12.3889 15.68 10.6088 15.68 8.64C15.68 4.75192 12.5281 1.6 8.64 1.6ZM15.2457 14.2093C16.515 12.7054 17.28 10.762 17.28 8.64C17.28 3.86826 13.4117 0 8.64 0C3.86826 0 0 3.86826 0 8.64C0 13.4117 3.86826 17.28 8.64 17.28C10.7134 17.28 12.6162 16.5497 14.1052 15.3322L17.0438 18.175C17.3613 18.4822 17.8678 18.4738 18.175 18.1562C18.4822 17.8387 18.4738 17.3322 18.1562 17.025L15.2457 14.2093Z",fill:"black"})})),t=l;
|
|
2
|
+
export{t as a};
|
|
@@ -0,0 +1 @@
|
|
|
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};
|
package/dist/entries/checkbox.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a}from'../chunk-DM45BGDQ.js';import {
|
|
1
|
+
import {a}from'../chunk-DM45BGDQ.js';import {a as a$1}from'../chunk-6GLPXMGB.js';import*as e from'react';import {Check}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';var M={sm:{box:"h-4 w-4 rounded-md",icon:"h-2 w-2 text-white"},md:{box:"h-5 w-5 rounded-md",icon:"h-3 w-3 text-white"},lg:{box:"h-7 w-7 rounded-md",icon:"h-5 w-5 text-white"}},P=e.memo(function({label:a$2,required:s,className:o,id:n}){return a$2==null?null:typeof a$2=="string"?jsx(a,{label:a$2,required:s}):jsx("span",{className:a$1("text-[15px] text-black",o),children:a$2})}),d=e.forwardRef(function({checked:a,defaultChecked:s,onCheckedChange:o,id:n,name:m,value:p,disabled:h=false,required:c=false,size:u="md",label:g,labelPosition:f="right",className:x,boxClassName:k,labelClassName:C,indicatorClassName:w,checkedBg:R="#2f6af7",uncheckedBorderColor:N="rgb(0 0 0 / 0.2)"},y){let i=M[u],v=e.useCallback(B=>{o?.(B.currentTarget.checked);},[o]),S=e.useMemo(()=>a$1("inline-flex items-center justify-center border-2 bg-white transition-colors","peer-focus-visible:ring-2 ring-black/20","peer-disabled:opacity-50 peer-disabled:cursor-not-allowed","border-[var(--ubc)]","peer-checked:bg-[var(--cbg)] peer-checked:border-transparent"),[]),L=e.useMemo(()=>a$1("text-white transition-all duration-150","peer-checked:opacity-100 peer-checked:scale-100"),[]);return jsxs("label",{className:a$1("inline-flex items-center gap-3 select-none",f==="left"&&"flex-row-reverse justify-end",x),htmlFor:n,style:{"--cbg":R,"--ubc":N},children:[jsx("input",{ref:y,id:n,name:m,value:p,type:"checkbox",className:"peer sr-only",checked:a,defaultChecked:s,onChange:v,disabled:h,"aria-required":c||void 0}),jsx("span",{className:a$1(S,i.box,k),children:jsx(Check,{className:a$1(i.icon,L,w)})}),jsx(P,{label:g,required:c,className:C,id:n})]})});d.displayName="Checkbox";var z=e.memo(d);export{z as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$1}from'../chunk-DM45BGDQ.js';import {a
|
|
1
|
+
import {a as a$1}from'../chunk-DM45BGDQ.js';import {a}from'../chunk-6GLPXMGB.js';import*as s from'react';import*as r from'@radix-ui/react-popover';import {CalendarDays,ChevronUp,ChevronDown,ChevronLeft,ChevronRight}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';var ye=["\u0E21\u0E01\u0E23\u0E32\u0E04\u0E21","\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C","\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21","\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19","\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21","\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19","\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21","\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21","\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19","\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21","\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19","\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21"],H=["\u0E2D\u0E32","\u0E08","\u0E2D","\u0E1E","\u0E1E\u0E24","\u0E28","\u0E2A"],he=["January","February","March","April","May","June","July","August","September","October","November","December"],z=["Su","Mo","Tu","We","Th","Fr","Sa"],E=o=>new Date(o.getFullYear(),o.getMonth(),1),K=(o,e)=>new Date(o.getFullYear(),o.getMonth()+e,1),B=(o,e)=>{let l=new Date(o);return l.setDate(l.getDate()+e),l},G=(o,e)=>!!o&&!!e&&o.getFullYear()===e.getFullYear()&&o.getMonth()===e.getMonth()&&o.getDate()===e.getDate(),ve=(o,e,l)=>e&&o<e?e:l&&o>l?l:o,M=18,fe=s.memo(function({d:e,inMonth:l,disabled:i,selected:p,isToday:d,onPick:n,dayClassName:u,outsideDayClassName:m,selectedDayClassName:R,todayClassName:N}){let S=s.useCallback(()=>{i||n(e);},[i,n,e]);return jsx("button",{type:"button",onClick:S,disabled:i,className:a("h-9 w-9 place-self-center text-sm transition-colors rounded-full","outline-none focus-visible:ring-2 ring-black/20",l?"text-black":m??"text-black/30",i&&"opacity-30 pointer-events-none",d&&!p&&(N??"bg-[#EDF6FF] text-[#004499] font-bold"),u,p?a("bg-blue-600 text-white hover:bg-blue-600",R):"hover:bg-black/5"),children:e.getDate()})},(o,e)=>o.inMonth===e.inMonth&&o.disabled===e.disabled&&o.selected===e.selected&&o.isToday===e.isToday&&o.d.getTime()===e.d.getTime()&&o.dayClassName===e.dayClassName&&o.outsideDayClassName===e.outsideDayClassName&&o.selectedDayClassName===e.selectedDayClassName&&o.todayClassName===e.todayClassName),De=s.memo(function({months:e,activeMonth:l,onSelect:i}){let p=s.useCallback(d=>i(d),[i]);return jsx("div",{className:"grid grid-cols-3 gap-1",style:{gridTemplateColumns:"repeat(3, minmax(0,1fr))"},children:e.map((d,n)=>jsx("button",{type:"button",onClick:()=>p(n),className:a("rounded-md px-2 py-2 text-sm hover:bg-black/5",n===l&&"bg-black/10"),children:d},d))})}),Ne=s.memo(function({years:e,activeYear:l,labelFromYear:i,onSelect:p}){let d=s.useCallback(n=>p(n),[p]);return jsx("div",{className:"max-h-72 w-28 overflow-y-auto rounded-md border border-black/10 bg-white p-1 shadow-lg",children:e.map(n=>jsx("button",{type:"button",onClick:()=>d(n),className:a("block w-full rounded-md px-2 py-2 text-left text-sm hover:bg-black/5",n===l&&"bg-black/10"),children:i(n)},n))})}),ke=s.forwardRef(function({label:e,required:l,value:i,defaultValue:p=null,onChange:d,minDate:n,maxDate:u,locale:m="th",useBuddhistEra:R,format:N,className:S,inputClassName:J,contentClassName:V,dayClassName:W,todayClassName:$,selectedDayClassName:q,outsideDayClassName:U="text-black/30",placeholderText:Z="dd/mm/yyyy",calendarIcon:j,disabled:O=false,error:Y,closeOnSelect:A=true,yearRange:T,iconClassName:P},Q){let [X,I]=s.useState(false),[ee,te]=s.useState(p),F=i!==void 0,g=(F?i:ee)??null,w=R??m==="th",L=m==="th"?ye:he,ae=g??new Date,[D,k]=s.useState(E(ae));s.useEffect(()=>{g&&k(E(g));},[g?.getFullYear(),g?.getMonth()]);let C=D.getFullYear(),x=D.getMonth(),oe=s.useMemo(()=>N||(m==="th"?a=>{let b=w?a.getFullYear()+543:a.getFullYear(),h=String(a.getDate()).padStart(2,"0"),v=String(a.getMonth()+1).padStart(2,"0");return `${h}/${v}/${b}`}:a=>a.toLocaleDateString("en-GB")),[N,m,w]),se=s.useMemo(()=>{let a=E(D),b=a.getDay(),h=B(a,-b);return Array.from({length:42},(v,f)=>B(h,f))},[D]),ne=s.useMemo(()=>{let a=new Date().getFullYear(),b=T?.[0]??n?.getFullYear()??a-60,h=T?.[1]??u?.getFullYear()??a+40,v=[];for(let f=b;f<=h;f++)v.push(f);return v},[T,n,u]),re=w?C+543:C,le=s.useCallback(a=>{let b=ve(a,n,u);d?.(b),F||te(b),A&&I(false);},[F,n,u,d,A]),ce=s.useCallback(a=>{k(new Date(C,a,1));},[C]),ie=s.useCallback(a=>{k(new Date(a,x,1));},[x]);return jsxs("fieldset",{ref:Q,className:a("",S),children:[e&&jsx(a$1,{required:l,label:e}),jsxs(r.Root,{open:X,onOpenChange:I,children:[jsxs("div",{className:"relative mt-2",children:[jsx(r.Trigger,{asChild:true,children:jsx("button",{type:"button",disabled:O,className:a("flex w-full items-center rounded-md border bg-white px-3 py-2 text-left","outline-none focus-visible:ring-2",Y?"border-red-500 ring-red-200":"border-black/15 ring-black/20",O&&"opacity-50 cursor-not-allowed","pr-10",J),children:jsx("span",{className:a("truncate text-black",!g&&"text-black/40"),children:g?oe(g):Z})})}),jsx("span",{className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-black/50",children:j??jsx(CalendarDays,{})})]}),Y&&jsx("small",{className:"text-red-500 text-xs",children:Y}),jsx(r.Portal,{children:jsxs(r.Content,{sideOffset:8,className:a("w-[300px] sm:w-[320px] rounded-md border border-black/10 bg-white p-3 shadow-xl",V),children:[jsxs("div",{className:"flex items-center justify-between px-1 py-1",children:[jsxs("div",{className:"flex items-center gap-1",children:[jsxs(r.Root,{modal:false,children:[jsx(r.Trigger,{asChild:true,children:jsxs("button",{type:"button",className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-base font-semibold text-black hover:bg-black/5","aria-label":"\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E40\u0E14\u0E37\u0E2D\u0E19",children:[L[x],jsx(ChevronUp,{size:M,className:P??"text-blue-500"})]})}),jsx(r.Portal,{children:jsxs(r.Content,{sideOffset:6,align:"start",className:"rounded-md border border-black/10 bg-white p-2 shadow-lg",children:[jsx(De,{months:L,activeMonth:x,onSelect:ce}),jsx(r.Arrow,{className:"fill-white stroke-black/10"})]})})]}),jsxs(r.Root,{modal:false,children:[jsx(r.Trigger,{asChild:true,children:jsxs("button",{type:"button",className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-base font-semibold text-black hover:bg-black/5","aria-label":"\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E1B\u0E35",children:[re,jsx(ChevronDown,{size:M,className:P??"text-blue-500"})]})}),jsx(r.Portal,{children:jsxs(r.Content,{sideOffset:6,align:"start",children:[jsx(Ne,{years:ne,activeYear:C,labelFromYear:a=>w?a+543:a,onSelect:ie}),jsx(r.Arrow,{className:"fill-white stroke-black/10"})]})})]})]}),jsxs("div",{className:"flex items-center gap-1",children:[jsx("button",{type:"button",className:"rounded-md p-2 text-black/70 hover:bg-black/5",onClick:()=>k(K(D,-1)),"aria-label":m==="th"?"\u0E40\u0E14\u0E37\u0E2D\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32":"Previous month",children:jsx(ChevronLeft,{size:M,className:P??"text-blue-500"})}),jsx("button",{type:"button",className:"rounded-md p-2 text-black/70 hover:bg-black/5",onClick:()=>k(K(D,1)),"aria-label":m==="th"?"\u0E40\u0E14\u0E37\u0E2D\u0E19\u0E16\u0E31\u0E14\u0E44\u0E1B":"Next month",children:jsx(ChevronRight,{size:M,className:P??"text-blue-500"})})]})]}),jsx("div",{className:"mt-1 grid grid-cols-7 gap-y-1 px-1 text-center text-xs text-black/50",style:{gridTemplateColumns:"repeat(7, minmax(0, 1fr))"},children:(m==="th"?H:z).map(a=>jsx("div",{className:"h-7 leading-7 whitespace-nowrap",children:a},a))}),jsx("div",{className:"grid grid-cols-7 gap-1 px-1 pb-1 pt-1",style:{gridTemplateColumns:"repeat(7, minmax(0, 1fr))"},children:se.map((a,b)=>{let h=a.getMonth()===x,v=n&&a<new Date(n.getFullYear(),n.getMonth(),n.getDate())||u&&a>new Date(u.getFullYear(),u.getMonth(),u.getDate()),f=G(a,g),de=G(a,new Date);return jsx(fe,{d:a,inMonth:h,disabled:!!v,selected:f,isToday:de,onPick:le,dayClassName:W,outsideDayClassName:U,selectedDayClassName:q,todayClassName:$},b)})}),jsx(r.Arrow,{className:"fill-white stroke-black/10"})]})})]})]})}),Ce=s.memo(ke);export{Ce as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'../chunk-
|
|
1
|
+
import {a}from'../chunk-Q627UWAQ.js';import'../chunk-KYNNMWQA.js';import'../chunk-A2DBYHBF.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 +1 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {a}from'../chunk-6GLPXMGB.js';import {memo,useCallback,useMemo,useState,useEffect}from'react';import {ChevronRight,ChevronLeft}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';var L={prev:jsx(ChevronLeft,{className:"text-black/50 w-5 h-5"}),next:jsx(ChevronRight,{className:"text-black/50 w-5 h-5"})};function M(r,t,n){return Math.max(t,Math.min(n,r))}function S(r,t){let n=[];for(let e=r;e<=t;e++)n.push(e);return n}function T(r,t,n,e){let s=r,b=S(1,Math.min(e,s)),d=S(Math.max(s-e+1,1),s),i=M(t-n,1+e,s-e),f=M(t+n,1+e,s-e),P=S(i,f),o=[];o.push(...b),i>e+1&&o.push("..."),o.push(...P),f<s-e&&o.push("..."),o.push(...d);let I=[],p=null;for(let l of o)l==="..."&&p==="..."||typeof l=="number"&&typeof p=="number"&&l===p||(I.push(l),p=l);return I}var U=memo(function({page:t,current:n,disabled:e,onSelect:u,baseItem:s,sizeCls:b,itemClassName:d,activeClassName:i}){let f=useCallback(()=>u(t),[u,t]);return jsx("button",{type:"button","aria-current":t===n?"page":void 0,onClick:f,disabled:e,className:a(s,b,d,t===n?i??"bg-[#2f6af7] text-white hover:bg-[#2f6af7] border-transparent shadow-sm":void 0),children:t})}),V=memo(function({baseItem:t,sizeCls:n,ellipsisClassName:e}){return jsx("span",{className:a(t,n,e??"bg-white text-[#3b3f46] cursor-default"),children:"\u2026"})}),W=memo(function({total:t,pageSize:n=10,page:e,defaultPage:u=1,onChange:s,siblingCount:b=1,boundaryCount:d=1,disabled:i=false,hideIfSinglePage:f=true,className:P,itemClassName:o,activeClassName:I,ellipsisClassName:p,arrowClassName:l,size:E="md",prevIcon:B=L.prev,nextIcon:$=L.next,ariaLabel:j="Pagination"}){let a$1=useMemo(()=>Math.max(1,Math.ceil(t/n)),[t,n]),[q,R]=useState(u),g=e??q;if(useEffect(()=>{g>a$1&&(e===void 0&&R(a$1),s?.(a$1));},[a$1]),!!(f&&a$1<=1))return null;let C=M(g,1,a$1),A=useMemo(()=>T(a$1,C,b,d),[a$1,C,b,d]),k=useMemo(()=>{switch(E){case "sm":return "h-8 w-8 px-3 text-sm rounded-md";case "lg":return "h-11 w-11 px-4 text-base rounded-md";default:return "h-10 w-10 px-4 text-sm rounded-md"}},[E]),w=useMemo(()=>"inline-flex items-center justify-center border border-black/10 bg-white text-[#3b3f46] hover:bg-black/5 transition-colors",[]),D=useMemo(()=>l??"bg-black/[0.04] text-black/50 hover:bg-black/10 disabled:opacity-40 disabled:cursor-not-allowed",[l]),h=useCallback(m=>{let z=M(m,1,a$1);e===void 0&&R(z),s?.(z);},[s,e,a$1]),F=useCallback(()=>h(g-1),[h,g]),G=useCallback(()=>h(g+1),[h,g]),H=useCallback(m=>h(m),[h]);return jsxs("nav",{"aria-label":j,className:a("inline-flex items-center gap-2",P),children:[jsx("button",{type:"button",onClick:F,disabled:i||C<=1,className:a(w,D,k),children:B}),A.map((m,z)=>m==="..."?jsx(V,{baseItem:w,sizeCls:k,ellipsisClassName:p},`e-${z}`):jsx(U,{page:m,current:C,disabled:i,onSelect:H,baseItem:w,sizeCls:k,itemClassName:o,activeClassName:I},m)),jsx("button",{type:"button",onClick:G,disabled:i||C>=a$1,className:a(w,D,k),children:$})]})}),X=W;export{X as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'../chunk-
|
|
1
|
+
import {a}from'../chunk-Q627UWAQ.js';import'../chunk-KYNNMWQA.js';import'../chunk-A2DBYHBF.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};
|
|
@@ -42,6 +42,7 @@ type SearchSelectProps = {
|
|
|
42
42
|
required?: boolean;
|
|
43
43
|
errorMessage?: string;
|
|
44
44
|
disabled?: boolean;
|
|
45
|
+
searchIcon?: React.ReactNode;
|
|
45
46
|
};
|
|
46
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;
|
|
47
48
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as default}from'../chunk-
|
|
1
|
+
export{a as default}from'../chunk-Q627UWAQ.js';import'../chunk-KYNNMWQA.js';import'../chunk-A2DBYHBF.js';import'../chunk-IX36POX2.js';import'../chunk-DM45BGDQ.js';import'../chunk-6GLPXMGB.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$
|
|
1
|
+
import {a as a$3}from'../chunk-KYNNMWQA.js';import {a as a$2}from'../chunk-A2DBYHBF.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-Q627UWAQ.js';import'../chunk-KYNNMWQA.js';import'../chunk-A2DBYHBF.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,41 +1,23 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
|
|
3
3
|
interface VerticalCardProps {
|
|
4
|
-
/**
|
|
5
|
-
* URL ของรูปภาพของรางวัล
|
|
6
|
-
*/
|
|
7
4
|
imageSrc?: string;
|
|
8
|
-
/**
|
|
9
|
-
* เนื้อหา header ของการ์ด (เช่น "Physical Reward")
|
|
10
|
-
*/
|
|
11
5
|
header?: React__default.ReactNode;
|
|
12
|
-
/**
|
|
13
|
-
* เนื้อหาส่วน body ของการ์ด (เช่น "150 คะแนน")
|
|
14
|
-
*/
|
|
15
6
|
body?: React__default.ReactNode;
|
|
16
|
-
/**
|
|
17
|
-
* เนื้อหา footer ของการ์ด (เช่น ปุ่มหรือข้อมูลเพิ่มเติม)
|
|
18
|
-
*/
|
|
19
7
|
footer?: React__default.ReactNode;
|
|
20
|
-
/**
|
|
21
|
-
* Custom className
|
|
22
|
-
*/
|
|
23
8
|
className?: string;
|
|
24
|
-
/**
|
|
25
|
-
* Click handler
|
|
26
|
-
*/
|
|
27
9
|
onClick?: () => void;
|
|
28
|
-
/**
|
|
29
|
-
* disabled จะเป็น true เมื่อการ์ดถูกปิดใช้งาน และภาพเป็นสีเทา
|
|
30
|
-
*/
|
|
31
10
|
disabled?: boolean;
|
|
32
11
|
/**
|
|
33
|
-
*
|
|
34
|
-
* - sm: 200px (image: 80px, content: 120px)
|
|
35
|
-
* - md: 246px (image: 98.4px, content: 147.6px) - default
|
|
36
|
-
* - lg: 300px (image: 120px, content: 180px)
|
|
12
|
+
* ขนาดของการ์ด
|
|
37
13
|
*/
|
|
38
14
|
size?: 'sm' | 'md' | 'lg';
|
|
15
|
+
/**
|
|
16
|
+
* สัดส่วนของรูปภาพเทียบกับการ์ดทั้งหมด (0–1)
|
|
17
|
+
* เช่น 0.4 = 40% image, 60% content
|
|
18
|
+
* ถ้าไม่ได้ระบุ จะใช้ค่า default ตาม 0.5
|
|
19
|
+
*/
|
|
20
|
+
imgRatio?: number;
|
|
39
21
|
}
|
|
40
22
|
declare const VerticalCard: React__default.NamedExoticComponent<VerticalCardProps>;
|
|
41
23
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {memo,useMemo,useCallback}from'react';import {jsx,jsxs}from'react/jsx-runtime';var
|
|
1
|
+
import {a}from'../chunk-6GLPXMGB.js';import {memo,useMemo,useCallback}from'react';import {jsx,jsxs}from'react/jsx-runtime';var I={sm:{height:200,ratio:.4},md:{height:246,ratio:.4},lg:{height:300,ratio:.4}},p=memo(({imageSrc:e,imageHeight:i,disabled:l})=>jsx("div",{className:"relative w-full bg-gray-100 overflow-hidden flex-shrink-0",style:{height:`${i}px`},children:jsx("img",{src:e,alt:"Reward",className:a("w-full h-full object-cover transition-all duration-200",l&&"grayscale"),loading:"lazy"})}));p.displayName="CardImage";var N=memo(({header:e})=>jsx("div",{className:"mb-2 flex-shrink-0",children:typeof e=="string"?jsx("h3",{className:"text-lg font-bold text-gray-900 line-clamp-1",children:e}):e}));N.displayName="CardHeader";var x=memo(({body:e})=>jsx("div",{className:"flex-1 mb-2 overflow-hidden",children:typeof e=="string"?jsx("p",{className:"text-sm text-gray-700 line-clamp-2",children:e}):e}));x.displayName="CardBody";var v=memo(({footer:e})=>jsx("div",{className:"mt-auto flex-shrink-0",children:e}));v.displayName="CardFooter";var y=memo(({size:e="md",imageSrc:i,header:l,body:c,footer:m,className:n,onClick:o,disabled:t=false,imgRatio:C=.5})=>{let s=useMemo(()=>I[e],[e]),R=C??s.ratio,g=s.height*R,u=s.height-g,w=useMemo(()=>a("bg-white rounded-2xl overflow-hidden shadow-sm transition-all duration-200 flex flex-col",o&&!t&&"cursor-pointer hover:shadow-lg",t&&"opacity-60 cursor-not-allowed",n),[o,t,n]),b=useCallback(()=>{!t&&o&&o();},[t,o]);return jsxs("div",{className:w,style:{height:`${s.height}px`},onClick:b,children:[i&&jsx(p,{imageSrc:i,imageHeight:g,disabled:t}),jsxs("div",{className:"flex-1 flex flex-col px-4 py-4 overflow-hidden",style:{height:`${u}px`},children:[l&&jsx(N,{header:l}),c&&jsx(x,{body:c}),m&&jsx(v,{footer:m})]})]})});y.displayName="VerticalCard";var P=y;export{P as default};
|