@invoice-sdk/widget 1.1.1 → 1.2.0

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.
Files changed (66) hide show
  1. package/dist/assets/bidv.png +0 -0
  2. package/dist/assets/fpt.svg +9 -0
  3. package/dist/assets/m-invoice.svg +9 -0
  4. package/dist/assets/mb.png +0 -0
  5. package/dist/assets/misa.svg +9 -0
  6. package/dist/assets/momo.png +0 -0
  7. package/dist/assets/qr.png +0 -0
  8. package/dist/assets/qrcode.png +0 -0
  9. package/dist/assets/vcb.png +0 -0
  10. package/dist/assets/vietqr.png +0 -0
  11. package/dist/index.es.js +1099 -5609
  12. package/dist/index.umd.js +47 -0
  13. package/dist/widget.css +1 -1
  14. package/package.json +22 -45
  15. package/README.md +0 -54
  16. package/dist/App.d.ts +0 -4
  17. package/dist/App.d.ts.map +0 -1
  18. package/dist/components/button.d.ts +0 -10
  19. package/dist/components/button.d.ts.map +0 -1
  20. package/dist/components/layout.d.ts +0 -4
  21. package/dist/components/layout.d.ts.map +0 -1
  22. package/dist/components/payment/checkout.d.ts +0 -3
  23. package/dist/components/payment/checkout.d.ts.map +0 -1
  24. package/dist/components/payment/order-info.d.ts +0 -3
  25. package/dist/components/payment/order-info.d.ts.map +0 -1
  26. package/dist/components/payment/qr-payment.d.ts +0 -19
  27. package/dist/components/payment/qr-payment.d.ts.map +0 -1
  28. package/dist/components/register-form/custom-checkbox.d.ts +0 -7
  29. package/dist/components/register-form/custom-checkbox.d.ts.map +0 -1
  30. package/dist/components/register-form/file-upload.d.ts +0 -10
  31. package/dist/components/register-form/file-upload.d.ts.map +0 -1
  32. package/dist/components/register-form/index.d.ts +0 -63
  33. package/dist/components/register-form/index.d.ts.map +0 -1
  34. package/dist/components/register-form/input-field.d.ts +0 -7
  35. package/dist/components/register-form/input-field.d.ts.map +0 -1
  36. package/dist/components/register-form/select-filed.d.ts +0 -14
  37. package/dist/components/register-form/select-filed.d.ts.map +0 -1
  38. package/dist/components/register-form/select-option.d.ts +0 -13
  39. package/dist/components/register-form/select-option.d.ts.map +0 -1
  40. package/dist/components/register-form/select-provider.d.ts +0 -3
  41. package/dist/components/register-form/select-provider.d.ts.map +0 -1
  42. package/dist/components/select-plan/package-selector.d.ts +0 -9
  43. package/dist/components/select-plan/package-selector.d.ts.map +0 -1
  44. package/dist/components/select-plan/search-field.d.ts +0 -7
  45. package/dist/components/select-plan/search-field.d.ts.map +0 -1
  46. package/dist/components/wizard-progress.d.ts +0 -10
  47. package/dist/components/wizard-progress.d.ts.map +0 -1
  48. package/dist/index.cjs.js +0 -124
  49. package/dist/index.d.ts +0 -3
  50. package/dist/index.d.ts.map +0 -1
  51. package/dist/lib/constants/index.d.ts +0 -9
  52. package/dist/lib/constants/index.d.ts.map +0 -1
  53. package/dist/main.d.ts +0 -2
  54. package/dist/main.d.ts.map +0 -1
  55. package/dist/pages/payment.d.ts +0 -3
  56. package/dist/pages/payment.d.ts.map +0 -1
  57. package/dist/pages/plan.d.ts +0 -3
  58. package/dist/pages/plan.d.ts.map +0 -1
  59. package/dist/pages/register.d.ts +0 -3
  60. package/dist/pages/register.d.ts.map +0 -1
  61. package/dist/store/process.d.ts +0 -10
  62. package/dist/store/process.d.ts.map +0 -1
  63. package/dist/store/register.d.ts +0 -41
  64. package/dist/store/register.d.ts.map +0 -1
  65. package/dist/tsconfig.tsbuildinfo +0 -1
  66. package/dist/vite.svg +0 -1
@@ -0,0 +1,47 @@
1
+ (function(j,P){typeof exports=="object"&&typeof module<"u"?P(exports):typeof define=="function"&&define.amd?define(["exports"],P):(j=typeof globalThis<"u"?globalThis:j||self,P(j.InvoiceRegisterWidget={}))})(this,function(j){"use strict";function P({steps:f=[],currentStep:p=1}={}){const o=document.createElement("div");o.className=["relative","flex","bg-weak-50","rounded-[10px]","overflow-hidden","shadow-sm","justify-between"].join(" ");const l=document.createElement("div");l.className=["absolute","inset-0","h-full","bg-primary/16","transition-all","duration-250"].join(" ");const c=document.createElement("div");c.className="relative flex w-full z-10";const e=[];f.forEach((t,s)=>{const n=s+1,a=document.createElement("div");a.setAttribute("role","listitem"),a.setAttribute("aria-label",`Step ${n} of ${f.length}: ${t.label}${p===n?" (current)":""}`),a.className=["relative","flex-1","flex","items-center","justify-center","py-5","pr-9","px-4"].join(" ");const i=document.createElement("div");i.className=["flex","items-center","justify-center","w-8","h-8","rounded-full","flex-shrink-0","mr-4"].join(" ");const r=document.createElement("span");r.innerText=String(n),r.className="text-white font-medium",i.appendChild(r);const m=document.createElement("span");m.innerText=t.label,m.className="font-medium whitespace-nowrap",a.appendChild(i),a.appendChild(m),c.appendChild(a),e.push({wrapper:a,circle:i,textSpan:m})}),o.appendChild(l),o.appendChild(c);function d(t){const s=o.getBoundingClientRect(),n=s.width||0;let a=0;if(t>0&&t<=e.length){const m=e[t-1].wrapper.getBoundingClientRect(),x=s.left;a=m.left-x+m.width}const i=n>0?Math.min(a/n*100,100):0;l.style.width=`${i}%`,e.forEach((r,m)=>{const x=m+1,v=x<t,g=x===t;v||g?(r.textSpan.classList.add("text-primary-dark"),r.textSpan.classList.remove("text-soft-400")):(r.textSpan.classList.add("text-soft-400"),r.textSpan.classList.remove("text-primary-dark")),v||g?(r.circle.classList.add("bg-icon-primary"),r.circle.classList.remove("bg-icon-soft-400")):(r.circle.classList.add("bg-icon-soft-400"),r.circle.classList.remove("bg-icon-primary"))})}return setTimeout(()=>d(p),0),{container:o,update(t){d(t)}}}function q({steps:f=[],currentStep:p=1}={}){const o=document.createElement("div");o.className=["flex","flex-col","h-fit","gap-6","items-center","justify-start"].join(" ");const l=document.createElement("h1");l.className=["text-[28px]","font-bold","leading-[30px]","text-strong-950"].join(" "),l.innerText="Đăng ký hóa đơn điện tử";const c=document.createElement("div");c.className=["w-[1320px]","flex-1","mx-auto","p-6","flex","flex-col","border","border-[#E1E4EA]","rounded-3xl","gap-6","shadow-[0px_1px_8px_0px_rgba(82,88,102,0.06)]"].join(" ");const e=P({steps:f.map(t=>({label:t})),currentStep:p});c.appendChild(e.container);const d=document.createElement("div");return d.className="flex-1",c.appendChild(d),o.appendChild(l),o.appendChild(c),{container:o,setStep(t){e.update(t)},setContent(t){d.replaceChildren(t)}}}function R({checked:f=!1,onChange:p}){const o=document.createElement("label");o.className="relative inline-flex cursor-pointer items-center";const l=document.createElement("input");l.type="checkbox",l.checked=f,l.className="peer sr-only",l.addEventListener("change",t=>{const s=t.target.checked;typeof p=="function"&&p(s),l.checked=s,e(s)});const c=document.createElement("div");c.className=["border-grey-6","relative","h-5","w-5","rounded-full","border-2"].join(" ");function e(t){t?(c.classList.add("border-primary"),d.style.display="block"):(c.classList.remove("border-primary"),d.style.display="none")}const d=document.createElement("div");return d.className=["absolute","left-1/2","top-1/2","h-2.5","w-2.5","-translate-x-1/2","-translate-y-1/2","rounded-full","bg-primary"].join(" "),d.style.display=f?"block":"none",c.appendChild(d),o.appendChild(l),o.appendChild(c),{container:o,setChecked(t){l.checked=t,e(t),typeof p=="function"&&p(t)}}}function I({providers:f=[],selectedRoute:p=null,onProviderChange:o}){const l=document.createElement("div");l.className="w-full flex flex-col gap-4";const c=document.createElement("h2");c.className="heading",c.innerText="Nhà cung cấp",l.appendChild(c);const e=document.createElement("div");e.className="grid grid-cols-3 gap-4",l.appendChild(e);function d(){e.innerHTML="",f.forEach(t=>{const s=t.route===p,n=document.createElement("div");n.dataset.checked=s?"true":"false",n.className=["flex","items-center","justify-between","gap-2","p-4","border","border-border-light","rounded-xl","hover:bg-gray-100","cursor-pointer","transition-colors","duration-200",s?"border-primary":""].filter(Boolean).join(" "),n.addEventListener("click",()=>{p=t.route,typeof o=="function"&&o(t),d()});const a=document.createElement("div");a.className="flex items-center gap-3";const i=document.createElement("img");i.src=t.logoUrl,i.alt=t.name,i.className="h-8 object-contain";const r=document.createElement("div");r.className="w-[1px] h-8 bg-border-light";const m=document.createElement("label");m.className="text-base font-semibold leading-5 text-black uppercase",m.innerText=t.name,a.appendChild(i),a.appendChild(r),a.appendChild(m);const{container:x}=R({checked:s,onChange:v=>{v&&(p=t.route,typeof o=="function"&&o(t),d())}});n.appendChild(a),n.appendChild(x),e.appendChild(n)})}return d(),{container:l,setSelectedRoute(t){p=t,d()}}}function H({name:f,value:p="",type:o="text",placeholder:l="",label:c,required:e=!1,error:d=null,onInput:t=null}){const s=document.createElement("div");s.className="flex flex-col";const n=document.createElement("label");if(n.htmlFor=f,n.className="font-medium mb-2 text-text-black",n.innerText=c,e){const r=document.createElement("span");r.className="text-red-500 ml-1",r.innerText="*",n.appendChild(r)}const a=document.createElement("input");a.type=o,a.name=f,a.id=f,a.value=p,a.placeholder=l,a.className=["border","rounded","px-3","py-2","focus:outline-none","focus:ring-2","focus:ring-blue-500",d?"border-red-500":"border-gray-300"].join(" "),e&&a.setAttribute("required","true"),typeof t=="function"&&a.addEventListener("input",t);const i=document.createElement("span");return i.className="text-red-500 text-sm mt-1",i.innerText=d||"",d||(i.style.display="none"),s.appendChild(n),s.appendChild(a),s.appendChild(i),{container:s,inputEl:a,setError(r){r?(i.innerText=r,i.style.display="block",a.classList.remove("border-gray-300"),a.classList.add("border-red-500")):(i.innerText="",i.style.display="none",a.classList.remove("border-red-500"),a.classList.add("border-gray-300"))},getValue(){return a.value}}}function B({name:f,value:p="",options:o=[],label:l,disabled:c=!1,error:e=null,onChange:d=null}){const t=document.createElement("div");t.className="flex flex-col";const s=document.createElement("label");s.htmlFor=f,s.className="font-medium mb-1 text-gray-700",s.innerText=l;const n=document.createElement("select");n.id=f,n.name=f,n.disabled=c,n.className=["border","rounded","px-3","py-2","bg-white","focus:outline-none","focus:ring-2","focus:ring-blue-500",e?"border-red-500":"border-gray-300"].join(" ");const a=document.createElement("option");a.value="",a.disabled=!0,a.selected=p===""||p==null,a.innerText=`-- Chọn ${l.toLowerCase()} --`,n.appendChild(a),o.forEach(r=>{const m=document.createElement("option");m.value=r.value,m.innerText=r.label,r.value===p&&(m.selected=!0),n.appendChild(m)}),typeof d=="function"&&n.addEventListener("change",d);const i=document.createElement("span");return i.className="text-red-500 text-sm mt-1",i.innerText=e||"",e||(i.style.display="none"),t.appendChild(n),t.appendChild(i),{container:t,selectEl:n,setError(r){r?(i.innerText=r,i.style.display="block",n.classList.remove("border-gray-300"),n.classList.add("border-red-500")):(i.innerText="",i.style.display="none",n.classList.remove("border-red-500"),n.classList.add("border-gray-300"))},getValue(){return n.value},setOptions(r){for(;n.options.length>1;)n.remove(1);r.forEach(m=>{const x=document.createElement("option");x.value=m.value,x.innerText=m.label,n.appendChild(x)})},setDisabled(r){n.disabled=!!r}}}function U({label:f,required:p=!1,file:o=null,onFileChange:l,error:c=null}){const e=document.createElement("div");e.className="flex flex-col";const d=document.createElement("label");if(d.className="font-medium mb-1 text-gray-700",d.innerText=f,p){const u=document.createElement("span");u.className="text-red-500 ml-1",u.innerText="*",d.appendChild(u)}e.appendChild(d);const t=document.createElement("div");t.className=["h-fit","py-4","w-full","rounded","overflow-hidden","flex","items-center","cursor-pointer","justify-center","border","border-dashed","border-grey-6","flex-col","gap-2"].join(" "),t.addEventListener("click",()=>{s.click()});const s=document.createElement("input");s.type="file",s.accept="image/*,.pdf",s.className="hidden",s.addEventListener("change",u=>{const C=u.target.files&&u.target.files[0]?u.target.files[0]:null;N(C)});const n=document.createElement("div");n.className="w-full flex flex-col gap-2 items-center justify-center";const a=document.createElement("span");a.className="text-red-500 text-sm mt-1",a.innerText=c||"",c||(a.style.display="none");let i=null;function r(){if(!o||i)return;i=document.createElement("div"),i.className=["fixed","inset-0","bg-black","bg-opacity-75","z-50","flex","items-center","justify-center"].join(" "),i.addEventListener("click",()=>m());const u=document.createElement("div");u.className="relative w-full h-screen bg-white overflow-auto";const C=document.createElement("button");C.innerHTML="&times;",C.className="absolute w-8 h-8 top-2 right-2 text-gray-600 text-2xl cursor-pointer",C.setAttribute("aria-label","Close preview"),C.addEventListener("click",h=>{h.stopPropagation(),m()}),u.appendChild(C);const y=document.createElement("div");if(y.className="px-10 w-full h-full flex flex-col items-center justify-center",o.type==="application/pdf"){const h=document.createElement("object");h.data=g,h.type="application/pdf",h.className="w-full h-full object-contain",y.appendChild(h)}else{const h=document.createElement("img");h.src=g,h.alt="Full Preview",h.className="max-h-screen object-contain",y.appendChild(h)}u.appendChild(y),i.appendChild(u),document.body.appendChild(i)}function m(){i&&(document.body.removeChild(i),i=null)}const x=document.createElement("button");x.type="button",x.className="bg-primary hover:bg-primary-dark text-white px-4 py-1 rounded-md cursor-pointer",x.innerText="Upload file",x.addEventListener("click",u=>{u.stopPropagation(),s.click()});function v(u,C=2){if(u===0)return"0 Bytes";const y=1024,h=Math.max(0,C),w=["Bytes","KB","MB","GB","TB"],b=Math.floor(Math.log(u)/Math.log(y));return parseFloat((u/Math.pow(y,b)).toFixed(h))+" "+w[b]}let g=null;function E(u){g&&(URL.revokeObjectURL(g),g=null),u&&(g=URL.createObjectURL(u))}function N(u){if(E(u),n.innerHTML="",u){const C=document.createElement("div");C.className="flex w-full items-center justify-between";const y=document.createElement("div");if(y.className="flex space-x-4 w-full justify-start items-center px-4",u.type==="application/pdf"){const T=document.createElement("div");T.className="flex-shrink-0 flex items-center justify-center rounded",T.innerHTML=`
2
+ <svg xmlns="http://www.w3.org/2000/svg" class="w-8 h-8 text-gray-500" fill="currentColor" viewBox="0 0 24 24">
3
+ <path d="M6 2h9l5 5v15a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z"/>
4
+ <path d="M14 2v5h5"/>
5
+ </svg>
6
+ `,y.appendChild(T)}else{const T=document.createElement("img");T.src=g,T.alt="Preview thumbnail",T.className="object-contain h-20 w-20 rounded",y.appendChild(T)}const h=document.createElement("div");h.className="flex-1";const w=document.createElement("p");w.className="text-sm font-medium text-gray-800 truncate",w.innerText=u.name;const b=document.createElement("p");b.className="text-sm text-gray-500",b.innerText=v(u.size),h.appendChild(w),h.appendChild(b),y.appendChild(h),C.appendChild(y);const k=document.createElement("button");k.type="button",k.innerText="Preview",k.className="px-2 text-xs font-medium text-text-black",k.addEventListener("click",T=>{T.preventDefault(),r()}),C.appendChild(k),n.appendChild(C)}else{n.innerHTML=`
7
+ <svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg">
8
+ <path d="M13.1313 9.25809L13.1313 22.2754" stroke="#595959" stroke-width="0.810811" stroke-linecap="round" stroke-linejoin="round"/>
9
+ <path d="M16.2832 12.4238L13.1308 9.25842L9.97834 12.4238" stroke="#595959" stroke-width="0.810811" stroke-linecap="round" stroke-linejoin="round"/>
10
+ <path d="M18.1395 17.1602H19.1482C21.3482 17.1602 23.1309 15.3775 23.1309 13.1764V7.89637C23.1309 5.70178 21.3525 3.9234 19.1579 3.9234L7.11464 3.9234C4.91464 3.9234 3.13086 5.70718 3.13086 7.90718V13.1883C3.13086 15.3818 4.91032 17.1602 7.10383 17.1602H8.12221" stroke="#595959" stroke-width="0.810811" stroke-linecap="round" stroke-linejoin="round"/>
11
+ </svg>
12
+ <span class="text-sm font-semibold leading-4 text-grey-8">Tải tệp lên</span>
13
+ <span class="text-xs font-normal leading-3 text-grey-7">(Tối thiểu 400x400px, PNG hoặc JPEG)</span>
14
+ `;const C=document.createElement("div");C.className="flex items-center",C.appendChild(x),n.appendChild(C)}}return N(o),t.appendChild(n),t.appendChild(s),e.appendChild(t),e.appendChild(a),{container:e,setFile(u){o=u,N(u)},clearFile(){o=null,N(null)},setError(u){u?(a.innerText=u,a.style.display="block"):(a.innerText="",a.style.display="none")}}}const Z=[{value:"VN",label:"Việt Nam"}],W={VN:[{value:"HN",label:"Hà Nội"},{value:"HCM",label:"TP. Hồ Chí Minh"},{value:"DN",label:"Đà Nẵng"}]},Q={HN:[{value:"QL",label:"Quận Ba Đình"},{value:"TL",label:"Quận Tây Hồ"}],HCM:[{value:"PN",label:"Quận Phú Nhuận"},{value:"1",label:"Quận 1"}],DN:[{value:"HP",label:"Hải Châu"},{value:"S0",label:"Sơn Trà"}]},A={QL:[{value:"PD",label:"Phường Điện Biên"},{value:"NT",label:"Phường Ngọc Hà"}],TL:[{value:"TD",label:"Phường Tứ Liên"},{value:"TT",label:"Phường Thụy Khuê"}],PN:[{value:"PP",label:"Phường Phú Nhuận"},{value:"TN",label:"Phường Tân Định"}],1:[{value:"BD",label:"Phường Bến Nghé"},{value:"BT",label:"Phường Bến Thành"}],HP:[{value:"TH",label:"Phường Thạch Thang"},{value:"KT",label:"Phường Khuê Trung"}],S0:[{value:"ST",label:"Phường Sơn Trà"},{value:"NB",label:"Phường Nại Hiên Đông"}]};function O({onSubmit:f}){const p=document.createElement("form");p.className="w-full",p.addEventListener("submit",h=>{h.preventDefault();const w=y();typeof f=="function"&&f(w)});const o=document.createElement("div");o.className="grid grid-cols-1 md:grid-cols-2 gap-8",p.appendChild(o);const l=document.createElement("div");l.className="space-y-4";const c=document.createElement("div");c.className="space-y-4",o.appendChild(l),o.appendChild(c);const e=H({name:"taxCode",label:"Mã số thuế",required:!0,error:null,placeholder:"",type:"text"});l.appendChild(e.container);const d=H({name:"representative",label:"Người đại diện",required:!0,error:null,placeholder:"",type:"text"});l.appendChild(d.container);const t=H({name:"email",label:"Email",required:!0,error:null,placeholder:"",type:"email"});l.appendChild(t.container);const s=H({name:"phone",label:"Số điện thoại",required:!0,error:null,placeholder:"",type:"tel"});l.appendChild(s.container);const n=U({label:"Giấy phép đăng ký kinh doanh",required:!0,file:null,onFileChange:h=>{},error:null});l.appendChild(n.container);const a=H({name:"companyName",label:"Tên công ty",required:!1,error:null,placeholder:"",type:"text"});c.appendChild(a.container);const i=H({name:"position",label:"Chức vụ",required:!1,error:null,placeholder:"",type:"text"});c.appendChild(i.container);const r=document.createElement("div");r.className="w-full flex flex-col gap-2",c.appendChild(r);const m=document.createElement("span");m.className="font-medium text-text-black",m.innerText="Địa chỉ",r.appendChild(m);const x=B({name:"country",label:"Quốc gia",options:Z,value:"",disabled:!1,error:null,onChange:h=>{const w=h.target.value;W[w]?(v.setOptions(W[w]),v.setDisabled(!1)):(v.setOptions([]),v.setDisabled(!0)),v.selectEl.value="",g.setOptions([]),g.selectEl.value="",g.setDisabled(!0),E.setOptions([]),E.selectEl.value="",E.setDisabled(!0)}});r.appendChild(x.container);const v=B({name:"province",label:"Tỉnh/Thành phố",options:[],value:"",disabled:!0,error:null,onChange:h=>{const w=h.target.value;Q[w]?(g.setOptions(Q[w]),g.setDisabled(!1)):(g.setOptions([]),g.setDisabled(!0)),E.setOptions([]),E.selectEl.value="",E.setDisabled(!0)}});r.appendChild(v.container);const g=B({name:"district",label:"Quận/Huyện",options:[],value:"",disabled:!0,error:null,onChange:h=>{const w=h.target.value;A[w]?(E.setOptions(A[w]),E.setDisabled(!1)):(E.setOptions([]),E.setDisabled(!0))}});r.appendChild(g.container);const E=B({name:"ward",label:"Phường/Xã",options:[],value:"",disabled:!0,error:null,onChange:()=>{}});r.appendChild(E.container);const N=H({name:"detail",label:"Địa chỉ cụ thể",required:!1,error:null,placeholder:"",type:"text"});r.appendChild(N.container);const u=document.createElement("div");u.className="flex items-center justify-end gap-2";const C=document.createElement("button");C.type="submit",C.innerText="Tiếp theo",C.className=["bg-primary","hover:bg-primary-dark","text-white","px-6","py-2","rounded","disabled:opacity-50","disabled:cursor-not-allowed","cursor-pointer"].join(" "),u.appendChild(C),p.appendChild(u);function y(){return{taxCode:e.getValue().trim(),representative:d.getValue().trim(),email:t.getValue().trim(),phone:s.getValue().trim(),license:n?n.file:null,companyName:a.getValue().trim(),position:i.getValue().trim(),address:{country:x.getValue(),province:v.getValue(),district:g.getValue(),ward:E.getValue(),detail:N.getValue().trim()}}}return{container:p,getValues:y}}function _({providerProps:f,formProps:p}){const o=document.createElement("div");o.className="flex flex-col gap-4 w-full max-w-[1072px] mx-auto";const l=I(f);o.appendChild(l.container);const c=O(p);return o.appendChild(c.container),{container:o}}function $({value:f="",onInputChange:p}={}){const o=document.createElement("div");o.className="flex flex-col";const l=document.createElement("label");l.className="font-medium mb-1 text-gray-700",l.innerHTML='Chọn gói đăng ký <span class="text-red-500">*</span>',o.appendChild(l);const c=document.createElement("div");c.className="flex rounded-lg border border-gray-300 overflow-hidden";const e=document.createElement("input");e.type="text",e.inputMode="numeric",e.value=f,e.placeholder="Số đơn/tháng",e.className=["flex-1","px-4","py-2","text-gray-700","placeholder-gray-400","bg-white","focus:outline-none"].join(" "),typeof p=="function"&&e.addEventListener("input",p);const d=document.createElement("span");return d.className="px-4 py-2 bg-gray-100 text-gray-600 flex-shrink-0",d.innerText="đơn/tháng",c.appendChild(e),c.appendChild(d),o.appendChild(c),{container:o,inputEl:e,getValue(){return e.value},setValue(t){e.value=t}}}function z({packageOptions:f=[],selectedPackageId:p="",onPackageSelect:o}={}){const l=document.createElement("div");l.className="space-y-6";const c=document.createElement("h3");c.className="text-lg font-medium text-gray-800 mb-2",c.innerText="Gói phù hợp nhất",l.appendChild(c);const e=document.createElement("div");e.className="w-full grid grid-cols-3 gap-6",l.appendChild(e);function d(){e.innerHTML="",f.forEach(t=>{const s=t.id===p,n=document.createElement("label");n.className=["relative","border","rounded-xl","p-4","flex-shrink-0","cursor-pointer","bg-white",s?"border-primary":"border-grey-6 hover:border-gray-300"].filter(Boolean).join(" ");const a=document.createElement("div");a.className="flex justify-between items-center";const i=document.createElement("span");i.className=["text-base","font-semibold",s?"text-green-700":"text-gray-800"].join(" "),i.innerText=t.code,a.appendChild(i);const{container:r}=R({checked:s,onChange:u=>{u&&(p=t.id,typeof o=="function"&&o(t.id),d())}});a.appendChild(r),n.appendChild(a);const m=document.createElement("div");m.className="flex items-center text-gray-600 mt-2";const x=document.createElement("svg");x.setAttribute("xmlns","http://www.w3.org/2000/svg"),x.setAttribute("class","w-5 h-5 text-green-500 flex-shrink-0"),x.setAttribute("fill","none"),x.setAttribute("viewBox","0 0 24 24"),x.setAttribute("stroke","currentColor"),x.setAttribute("stroke-width","3"),x.innerHTML=`
15
+ <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" />
16
+ `,m.appendChild(x);const v=document.createElement("span");v.className="ml-2 text-sm",v.innerText=`${t.unitsPerMonth.toLocaleString("vi-VN")} hóa đơn điện tử / tháng`,m.appendChild(v),n.appendChild(m);const g=document.createElement("div");g.className="mt-4";const E=document.createElement("span");E.className=["block","text-2xl","font-bold",s?"text-green-700":"text-gray-900"].join(" "),E.innerText=t.priceVND.toLocaleString("vi-VN"),g.appendChild(E);const N=document.createElement("span");N.className="text-sm text-gray-600",N.innerText="VND/Gói",g.appendChild(N),n.appendChild(g),e.appendChild(n)})}return d(),{container:l,setSelectedPackageId(t){p=t,d()}}}function D({title:f,isDisabled:p=!1,handleClick:o=null,type:l="button",className:c=""}={}){const e=document.createElement("button");return e.type=l,e.disabled=p,e.className=["bg-primary","hover:bg-primary-dark","text-white","px-6","py-2","rounded","disabled:opacity-50","disabled:cursor-not-allowed","cursor-pointer",c].filter(Boolean).join(" "),e.innerText=f,typeof o=="function"&&e.addEventListener("click",d=>{e.disabled||o(d)}),e}function G({onNext:f,onPrev:p,setSelectedOption:o}){const l=[{id:"pkg-300-a",code:"DT-300",unitsPerMonth:300,priceVND:45e4},{id:"pkg-500",code:"DT-500",unitsPerMonth:500,priceVND:75e4},{id:"pkg-1000-b",code:"DT-1000",unitsPerMonth:1e3,priceVND:105e4}],c=document.createElement("div");c.className="flex flex-col gap-6";const e=document.createElement("div");e.className="w-full max-w-[1070px] mx-auto flex flex-col gap-6",c.appendChild(e);const d=document.createElement("div");d.className="w-full px-6 pb-6 pt-4 rounded-3xl bg-weak-50 flex flex-col gap-6",e.appendChild(d);let t="",s=[...l],n=l[1].id;const a=$({value:t,onInputChange:b=>{t=b.target.value.replace(/\D/g,""),v()}});d.appendChild(a.container);const i=document.createElement("div");d.appendChild(i);let r=null;function m(){if(i.innerHTML="",s.length>0)r=z({packageOptions:s,selectedPackageId:n}),i.appendChild(r.container);else{const b=document.createElement("span");b.className="text-gray-500",b.innerText="No package found.",i.appendChild(b),r=null}}let x=null;function v(){x&&clearTimeout(x),t!==""?x=setTimeout(()=>{const b=l.find(k=>k.code.endsWith(t));b?(n=b.id,s=[b]):s=[],m()},500):(s=[...l],m())}m();const g=document.createElement("div");g.className="flex items-center gap-4";const E=document.createElement("span");E.className="text-sm font-semibold leading-[18px] text-text-black",E.innerText="Hình thức thanh toán:",g.appendChild(E);const N=document.createElement("div");N.className="p-2 w-fit rounded-[10px] border border-soft-200 flex items-center gap-2";const u=document.createElement("div");u.innerHTML=`
17
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none"
18
+ xmlns="http://www.w3.org/2000/svg">
19
+ <rect width="24" height="24" rx="8" fill="#379DF1" />
20
+ <g clip-path="url(#clip0_10702_205062)">
21
+ <path
22
+ d="M24 12C24 9.7 23.9 7.6 23.5 6.4C23.1 5 22.6 3.7 21.4 2.5C19.9 1.1 18.6 0.7 16.6 0.3C15.2 0.1 13.5 0 12.5 0C12.2 0 11.9 0 11.6 0C10.5 0 8.9 0.1 7.4 0.3C5.4 0.7 4 1.2 2.6 2.5C1.3 3.7 0.9 5 0.5 6.4C0.1 7.6 0 9.7 0 12C0 14.3 0.1 16.4 0.5 17.6C0.9 19 1.4 20.3 2.6 21.5C4.1 22.9 5.4 23.3 7.4 23.7C9 24 11 24 12 24C13 24 15 24 16.7 23.7C18.6 23.3 20 22.9 21.5 21.5C22.7 20.4 23.2 19.1 23.6 17.6C23.9 16.4 24 14.3 24 12Z"
23
+ fill="#379DF1"
24
+ />
25
+ <path
26
+ d="M14.7992 15.4988V14.7988H12.6992V12.6988H14.7992V14.0988H16.1992V15.4988H15.4992V16.8988H14.0992V18.2988H12.6992V16.1988H14.0992V15.4988C14.0992 15.3988 14.7992 15.3988 14.7992 15.4988ZM18.0992 18.1988H15.2992V16.7988H16.6992V15.3988H18.0992V18.1988ZM5.69922 5.79883H11.1992V11.2988H5.69922V5.79883ZM12.5992 5.79883H18.0992V11.2988H12.5992V5.79883ZM5.69922 12.5988H11.1992V18.0988H5.69922V12.5988ZM16.0992 12.5988H18.1992V13.9988H16.0992V12.5988ZM7.69922 7.79883V9.19883H9.09922V7.79883H7.69922ZM7.69922 14.7988V16.1988H9.09922V14.7988H7.69922ZM14.7992 7.79883V9.19883H16.1992V7.79883H14.7992Z"
27
+ fill="white"
28
+ />
29
+ </g>
30
+ <defs>
31
+ <clipPath id="clip0_10702_205062">
32
+ <rect width="24" height="24" fill="white" />
33
+ </clipPath>
34
+ </defs>
35
+ </svg>
36
+ `,N.appendChild(u);const C=document.createElement("span");C.className="text-base font-semibold leading-5 text-strong-950",C.innerText="Thanh toán qua mã QR",N.appendChild(C),g.appendChild(N),e.appendChild(g);const y=document.createElement("div");y.className="flex items-center justify-between gap-2 px-6";const h=D({type:"button",title:"Quay lại",className:"bg-transparent !text-primary hover:bg-transparent underline",handleClick:p});y.appendChild(h);const w=D({type:"button",title:"Tiếp theo",className:"",handleClick:()=>{const b=l.find(k=>k.id===n);b&&(o(b),f())}});return y.appendChild(w),c.appendChild(y),{container:c}}function K({qrSrc:f="",logos:p=[],accountName:o="",accountNumber:l="",bankName:c="",instructions:e=[],illustrationSrc:d=""}={}){const t=document.createElement("div");t.className="flex flex-col md:flex-row gap-6 p-6 bg-gray-50 rounded-xl";const s=document.createElement("div"),n=document.createElement("h3");n.className="text-lg font-semibold text-gray-800 mb-4 text-center",n.innerText="Quét mã QR để thanh toán",s.appendChild(n);const a=document.createElement("div");a.className="bg-white rounded-md p-6 flex flex-col gap-4 border border-[#E4E7EC]";const i=document.createElement("div");i.className="flex justify-center";const r=document.createElement("img");r.src=f,r.alt="QR code",r.className="w-full max-w-[200px] aspect-square object-contain",i.appendChild(r),a.appendChild(i);const m=document.createElement("div");m.className="flex justify-center items-center gap-4 flex-wrap",p.forEach(b=>{const k=document.createElement("img");k.src=b,k.alt="Logo",k.className="w-8 object-contain",m.appendChild(k)}),a.appendChild(m);const x=document.createElement("div");x.className="text-center flex flex-col gap-1";const v=document.createElement("h3");v.className="text-lg font-bold text-text-black",v.innerText=o,x.appendChild(v);const g=document.createElement("p");g.className="text-sm text-grey-8",g.innerHTML=`Số tài khoản: <span class="font-medium">${l}</span>`,x.appendChild(g);const E=document.createElement("p");E.className="text-sm text-grey-8",E.innerHTML=`Ngân hàng thụ hưởng: <span class="font-medium">${c}</span>`,x.appendChild(E),a.appendChild(x),s.appendChild(a),t.appendChild(s);const N=document.createElement("div");N.className="flex flex-col justify-between md:w-1/2";const u=document.createElement("div"),C=document.createElement("h3");C.className="text-lg font-semibold text-gray-800 mb-4",C.innerText="Hướng dẫn thanh toán QR",u.appendChild(C);const y=document.createElement("ol");y.className="space-y-4",e.forEach((b,k)=>{const T=document.createElement("li");T.className="flex items-start";const L=document.createElement("div");L.className="flex-shrink-0 mt-0.5";const M=document.createElement("div");M.className="w-6 h-6 rounded-full bg-primary flex items-center justify-center";const V=document.createElement("span");V.className="text-white text-sm font-semibold",V.innerText=String(k+1),M.appendChild(V),L.appendChild(M);const S=document.createElement("p");S.className="ml-3 text-gray-700",S.innerText=b,T.appendChild(L),T.appendChild(S),y.appendChild(T)}),u.appendChild(y),N.appendChild(u);const h=document.createElement("div");h.className="h-[300px] flex justify-center";const w=document.createElement("img");return w.src=d,w.alt="QR payment illustration",w.className="h-full object-contain",h.appendChild(w),N.appendChild(h),t.appendChild(N),{container:t,update(b={}){b.qrSrc!=null&&(r.src=b.qrSrc),b.logos&&(m.innerHTML="",b.logos.forEach(k=>{const T=document.createElement("img");T.src=k,T.alt="Logo",T.className="w-8 object-contain",m.appendChild(T)})),b.accountName!=null&&(v.innerText=b.accountName),b.accountNumber!=null&&(g.innerHTML=`Số tài khoản: <span class="font-medium">${b.accountNumber}</span>`),b.bankName!=null&&(E.innerHTML=`Ngân hàng thụ hưởng: <span class="font-medium">${b.bankName}</span>`),b.instructions&&(y.innerHTML="",b.instructions.forEach((k,T)=>{const L=document.createElement("li");L.className="flex items-start";const M=document.createElement("div");M.className="flex-shrink-0 mt-0.5";const V=document.createElement("div");V.className="w-6 h-6 rounded-full bg-primary flex items-center justify-center";const S=document.createElement("span");S.className="text-white text-sm font-semibold",S.innerText=String(T+1),V.appendChild(S),M.appendChild(V);const F=document.createElement("p");F.className="ml-3 text-gray-700",F.innerText=k,L.appendChild(M),L.appendChild(F),y.appendChild(L)})),b.illustrationSrc!=null&&(w.src=b.illustrationSrc)}}}function X({qrSrc:f,logos:p=[],accountName:o="",accountNumber:l="",bankName:c="",instructions:e=[],illustrationSrc:d}={}){const{container:t}=K({qrSrc:f,logos:p,accountName:o,accountNumber:l,bankName:c,instructions:e,illustrationSrc:d});return{container:t}}function J({selectedProvider:f=null,selectedOption:p=null,totalAmountText:o="",onCancel:l}={}){const c=document.createElement("div");c.className=["w-[440px]","flex","flex-col","rounded-2xl","border","border-soft-200","overflow-hidden"].join(" ");const e=document.createElement("div");e.className="p-4 w-full flex items-center justify-center gap-2 bg-primary/10";const d=document.createElement("p");d.className="text-base font-medium leading-6 text-primary",d.innerHTML='Hoàn tất thanh toán của bạn trong <span class="font-bold">01:00:00</span>',e.appendChild(d);const t=document.createElement("svg");t.setAttribute("width","24"),t.setAttribute("height","24"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.innerHTML=`
37
+ <path
38
+ d="M12 1.40039C17.8537 1.40039 22.5996 6.14633 22.5996 12C22.5996 17.8537 17.8537 22.5996 12 22.5996C6.14633 22.5996 1.40039 17.8537 1.40039 12C1.40039 6.14633 6.14633 1.40039 12 1.40039ZM12 3.38086C7.24117 3.38086 3.38086 7.24117 3.38086 12C3.38086 16.7588 7.24117 20.6191 12 20.6191C16.7588 20.6191 20.6191 16.7588 20.6191 12C20.6191 7.24117 16.7588 3.38086 12 3.38086Z"
39
+ fill="#1D963E"
40
+ stroke="#1D963E"
41
+ stroke-width="0.2"
42
+ />
43
+ <path
44
+ d="M16.0945 14.9672L12.7523 12.5508V6.75C12.7523 6.64687 12.668 6.5625 12.5648 6.5625H11.4375C11.3344 6.5625 11.25 6.64687 11.25 6.75V13.2047C11.25 13.2656 11.2781 13.3219 11.3273 13.357L15.2039 16.1836C15.2883 16.2445 15.4055 16.2258 15.4664 16.1437L16.1367 15.2297C16.1976 15.1429 16.1789 15.0258 16.0945 14.9672Z"
45
+ fill="#1D963E"
46
+ />
47
+ `,e.appendChild(t),c.appendChild(e);const s=document.createElement("div");s.className=["p-6","w-full","flex","flex-col","gap-10","shadow-[0px_2px_6px_0px_rgba(31,34,41,0.04)]"].join(" ");const n=document.createElement("div");n.className="w-full flex flex-col gap-4";const a=document.createElement("h2");a.className="text-xl font-semibold leading-6 text-black",a.innerText="Thông tin đơn hàng",n.appendChild(a);const i=document.createElement("div");i.className="w-full flex items-center justify-between";const r=document.createElement("h4");r.className="text-sm font-normal leading-5 text-[#475467]",r.innerText="Nhà cung cấp";const m=document.createElement("img");f&&f.logo&&(m.src=f.logo,m.alt=f.name,m.className="h-6 object-contain"),i.appendChild(r),i.appendChild(m),n.appendChild(i);const x=document.createElement("div");x.className="w-full flex items-center justify-between";const v=document.createElement("h4");v.className="text-sm font-normal leading-5 text-[#475467]",v.innerText="Gói đăng ký";const g=document.createElement("span");g.className="text-base font-semibold leading-6 text-text-blackF",g.innerText=p?String(p.unitsPerMonth):"",x.appendChild(v),x.appendChild(g),n.appendChild(x);const E=document.createElement("hr");n.appendChild(E);const N=document.createElement("div");N.className="w-full flex items-center justify-between";const u=document.createElement("h4");u.className="text-sm font-normal leading-5 text-[#475467]",u.innerText="Số tiền thanh toán";const C=document.createElement("span");C.className="text-2xl font-bold leading-6 text-[#ED1C24]",C.innerText=o,N.appendChild(u),N.appendChild(C),n.appendChild(N),s.appendChild(n);const y=D({title:"Hủy giao dịch",className:"bg-transparent border border-primary !text-primary hover:bg-transparent",handleClick:()=>{typeof l=="function"&&l()}});return s.appendChild(y),c.appendChild(s),{container:c,setSelectedProvider(h){f=h,m.src=(h==null?void 0:h.logo)||"",m.alt=(h==null?void 0:h.name)||""},setSelectedOption(h){p=h,g.innerText=h?String(h.unitsPerMonth):""},setTotalAmountText(h){o=h,C.innerText=h}}}function Y({onPrev:f,checkoutProps:p,orderInfoProps:o}){const l=document.createElement("div");l.className="flex flex-col gap-6";const c=document.createElement("div");c.className="w-full flex items-start gap-6";const e=document.createElement("div");e.className="flex-1";const{container:d}=X(p);e.appendChild(d),c.appendChild(e);const{container:t}=J(o);c.appendChild(t),l.appendChild(c);const s=document.createElement("div");s.className="flex items-center justify-between gap-2 px-6";const n=D({type:"button",title:"Quay lại",className:"bg-transparent !text-primary hover:bg-transparent underline",handleClick:f});return s.appendChild(n),l.appendChild(s),{container:l}}function ee(f){const p=["Thông Tin","Gói Hóa Đơn","Xác Nhận Và Thanh Toán"],{container:o,setStep:l,setContent:c}=q({steps:p.map(n=>n),currentStep:1});f.appendChild(o);let e=1,d=null,t=null;function s(n){if(n===1){const{container:a}=_({providerProps:{providers:[{name:"Misa",route:"misa",logoUrl:"./assets/misa.svg"},{name:"M-Invoice",route:"minvoice",logoUrl:"./assets/m-invoice.svg"},{name:"FPT",route:"fpt",logoUrl:"./assets/fpt.svg"}],selectedRoute:d?d.route:null,onProviderChange:i=>{d=i}},formProps:{onSubmit:i=>{e=2,l(e),s(e)}}});c(a)}else if(n===2){const{container:a}=G({onNext:()=>{e=3,l(e),s(e)},onPrev:()=>{e=1,l(e),s(e)},setSelectedOption:i=>{t=i}});c(a)}else if(n===3){const{container:a}=Y({onPrev:()=>{e=2,l(e),s(e)},checkoutProps:{qrSrc:"./assets/qrcode.png",logos:["./assets/momo.png","./assets/vietqr.png","./assets/vcb.png","./assets/mb.png","./assets/bidv.png"],accountName:"ATOM SOLUTION",accountNumber:"0973886570",bankName:"Techcombank",instructions:["Mở ứng dụng Ngân hàng hoặc Ví điện tử trên điện thoại","Trên ứng dụng chọn tính năng Quét mã QR","Quét mã QR ở trang này và thanh toán"],illustrationSrc:"./assets/qr.png"},orderInfoProps:{selectedProvider:d||{name:"",logo:""},selectedOption:t||{unitsPerMonth:0},totalAmountText:t?t.priceVND.toLocaleString("vi-VN")+" VND":"0 VND",onCancel:()=>{e=2,l(e),s(e)}}});c(a)}}s(e)}j.InvoiceRegisterWidget=ee,Object.defineProperty(j,Symbol.toStringTag,{value:"Module"})});
package/dist/widget.css CHANGED
@@ -1 +1 @@
1
- /*! tailwindcss v4.1.8 | MIT License | https://tailwindcss.com */@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-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-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--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-duration:initial;--tw-content:"";--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@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-500:oklch(63.7% .237 25.331);--color-green-50:oklch(98.2% .018 155.826);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-blue-500:oklch(62.3% .214 259.815);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--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-gray-900:oklch(21% .034 264.665);--color-black:#000;--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);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.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-strong-950:#0e121b;--color-primary:#008c44;--color-primary-dark:#085f3b;--color-weak-50:#f5f7fa;--color-soft-400:#99a0ae;--color-icon-primary:#008c4f;--color-icon-soft-400:#99a0ae;--color-text-black:#2c2c2c;--color-border-light:#e3e3e3;--color-grey-6:#bfbfbf;--color-grey-7:#8c8c8c;--color-grey-8:#595959;--color-soft-200:#e1e4ea}}@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%;-moz-tab-size:4;-o-tab-size:4;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;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}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::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}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance: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{.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-2{top:calc(var(--spacing)*2)}.right-2{right:calc(var(--spacing)*2)}.right-\[-54px\]{right:-54px}.z-10{z-index:10}.z-50{z-index:50}.z-auto{z-index:auto}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.h-2{height:calc(var(--spacing)*2)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-20{height:calc(var(--spacing)*20)}.h-\[300px\]{height:300px}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-screen{max-height:100vh}.min-h-screen{min-height:100vh}.w-2{width:calc(var(--spacing)*2)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-20{width:calc(var(--spacing)*20)}.w-\[1px\]{width:1px}.w-\[440px\]{width:440px}.w-\[1320px\]{width:1320px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.max-w-\[200px\]{max-width:200px}.max-w-\[1070px\]{max-width:1070px}.max-w-\[1072px\]{max-width:1072px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.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}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-10{gap:calc(var(--spacing)*10)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t-\[36px\]{border-top-style:var(--tw-border-style);border-top-width:36px}.border-b-\[36px\]{border-bottom-style:var(--tw-border-style);border-bottom-width:36px}.border-l-\[16px\]{border-left-style:var(--tw-border-style);border-left-width:16px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[\#E1E4EA\]{border-color:#e1e4ea}.border-\[\#E4E7EC\]{border-color:#e4e7ec}.border-border-light{border-color:var(--color-border-light)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-green-500{border-color:var(--color-green-500)}.border-grey-6{border-color:var(--color-grey-6)}.border-primary{border-color:var(--color-primary)}.border-red-500{border-color:var(--color-red-500)}.border-soft-200{border-color:var(--color-soft-200)}.border-weak-50{border-color:var(--color-weak-50)}.\!border-l-primary\/0{border-left-color:#0000!important}@supports (color:color-mix(in lab,red,red)){.\!border-l-primary\/0{border-left-color:color-mix(in oklab,var(--color-primary)0%,transparent)!important}}.bg-black{background-color:var(--color-black)}.bg-border-light{background-color:var(--color-border-light)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-500{background-color:var(--color-green-500)}.bg-icon-primary{background-color:var(--color-icon-primary)}.bg-icon-soft-400{background-color:var(--color-icon-soft-400)}.bg-primary{background-color:var(--color-primary)}.bg-primary\/10{background-color:#008c441a}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.bg-primary\/16{background-color:#008c4429}@supports (color:color-mix(in lab,red,red)){.bg-primary\/16{background-color:color-mix(in oklab,var(--color-primary)16%,transparent)}}.bg-transparent{background-color:#0000}.bg-weak-50{background-color:var(--color-weak-50)}.bg-white{background-color:var(--color-white)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-10{padding-inline:calc(var(--spacing)*10)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-8{padding-block:calc(var(--spacing)*8)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-9{padding-right:calc(var(--spacing)*9)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[28px\]{font-size:28px}.leading-3{--tw-leading:calc(var(--spacing)*3);line-height:calc(var(--spacing)*3)}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-\[18px\]{--tw-leading:18px;line-height:18px}.leading-\[30px\]{--tw-leading:30px;line-height:30px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.\!text-primary{color:var(--color-primary)!important}.text-\[\#475467\]{color:#475467}.text-\[\#ED1C24\]{color:#ed1c24}.text-black{color:var(--color-black)}.text-gray-500{color:var(--color-gray-500)}.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-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-green-700{color:var(--color-green-700)}.text-grey-7{color:var(--color-grey-7)}.text-grey-8{color:var(--color-grey-8)}.text-primary{color:var(--color-primary)}.text-primary-dark{color:var(--color-primary-dark)}.text-red-500{color:var(--color-red-500)}.text-soft-400{color:var(--color-soft-400)}.text-strong-950{color:var(--color-strong-950)}.text-text-black{color:var(--color-text-black)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.placeholder-gray-400::-moz-placeholder{color:var(--color-gray-400)}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.shadow-\[0px_1px_8px_0px_rgba\(82\,88\,102\,0\.06\)\]{--tw-shadow:0px 1px 8px 0px var(--tw-shadow-color,#5258660f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0px_2px_6px_0px_rgba\(31\,34\,41\,0\.04\)\]{--tw-shadow:0px 2px 6px 0px var(--tw-shadow-color,#1f22290a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-250{--tw-duration:.25s;transition-duration:.25s}.peer-checked\:border-primary:is(:where(.peer):checked~*){border-color:var(--color-primary)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-1\/2:before{content:var(--tw-content);top:50%}.before\:left-1\/2:before{content:var(--tw-content);left:50%}.before\:hidden:before{content:var(--tw-content);display:none}.before\:h-2\.5:before{content:var(--tw-content);height:calc(var(--spacing)*2.5)}.before\:w-2\.5:before{content:var(--tw-content);width:calc(var(--spacing)*2.5)}.before\:-translate-x-1\/2:before{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.before\:-translate-y-1\/2:before{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.before\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.before\:bg-primary:before{content:var(--tw-content);background-color:var(--color-primary)}.peer-checked\:before\:block:is(:where(.peer):checked~*):before{content:var(--tw-content);display:block}@media (hover:hover){.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-primary-dark:hover{background-color:var(--color-primary-dark)}.hover\:bg-transparent:hover{background-color:#0000}}.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\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[checked\=true\]\:border-primary[data-checked=true]{border-color:var(--color-primary)}@media (min-width:48rem){.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-20{gap:calc(var(--spacing)*20)}}}.heading{text-color:var(--color-text-black);font-size:14px;font-weight:600}@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-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@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-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@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}
1
+ /*! tailwindcss v4.1.8 | MIT License | https://tailwindcss.com */@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-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--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-duration:initial}}}@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-500:oklch(63.7% .237 25.331);--color-green-50:oklch(98.2% .018 155.826);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-blue-500:oklch(62.3% .214 259.815);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--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-gray-900:oklch(21% .034 264.665);--color-black:#000;--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);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.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-strong-950:#0e121b;--color-primary:#008c44;--color-primary-dark:#085f3b;--color-weak-50:#f5f7fa;--color-soft-400:#99a0ae;--color-icon-primary:#008c4f;--color-icon-soft-400:#99a0ae;--color-text-black:#2c2c2c;--color-border-light:#e3e3e3;--color-grey-6:#bfbfbf;--color-grey-7:#8c8c8c;--color-grey-8:#595959;--color-soft-200:#e1e4ea}}@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%;-moz-tab-size:4;-o-tab-size:4;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;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}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::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}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance: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{.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.right-2{right:calc(var(--spacing)*2)}.left-1\/2{left:50%}.z-10{z-index:10}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-20{height:calc(var(--spacing)*20)}.h-\[300px\]{height:300px}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-screen{max-height:100vh}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-20{width:calc(var(--spacing)*20)}.w-\[1px\]{width:1px}.w-\[440px\]{width:440px}.w-\[1320px\]{width:1320px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-\[200px\]{max-width:200px}.max-w-\[1070px\]{max-width:1070px}.max-w-\[1072px\]{max-width:1072px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;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}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-10{gap:calc(var(--spacing)*10)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[\#E1E4EA\]{border-color:#e1e4ea}.border-\[\#E4E7EC\]{border-color:#e4e7ec}.border-border-light{border-color:var(--color-border-light)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-green-500{border-color:var(--color-green-500)}.border-grey-6{border-color:var(--color-grey-6)}.border-primary{border-color:var(--color-primary)}.border-red-500{border-color:var(--color-red-500)}.border-soft-200{border-color:var(--color-soft-200)}.bg-black{background-color:var(--color-black)}.bg-border-light{background-color:var(--color-border-light)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-500{background-color:var(--color-green-500)}.bg-icon-primary{background-color:var(--color-icon-primary)}.bg-icon-soft-400{background-color:var(--color-icon-soft-400)}.bg-primary{background-color:var(--color-primary)}.bg-primary\/10{background-color:#008c441a}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.bg-primary\/16{background-color:#008c4429}@supports (color:color-mix(in lab,red,red)){.bg-primary\/16{background-color:color-mix(in oklab,var(--color-primary)16%,transparent)}}.bg-transparent{background-color:#0000}.bg-weak-50{background-color:var(--color-weak-50)}.bg-white{background-color:var(--color-white)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-10{padding-inline:calc(var(--spacing)*10)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-8{padding-block:calc(var(--spacing)*8)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-9{padding-right:calc(var(--spacing)*9)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[28px\]{font-size:28px}.leading-3{--tw-leading:calc(var(--spacing)*3);line-height:calc(var(--spacing)*3)}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-\[18px\]{--tw-leading:18px;line-height:18px}.leading-\[30px\]{--tw-leading:30px;line-height:30px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.\!text-primary{color:var(--color-primary)!important}.text-\[\#475467\]{color:#475467}.text-\[\#ED1C24\]{color:#ed1c24}.text-black{color:var(--color-black)}.text-gray-500{color:var(--color-gray-500)}.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-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-green-700{color:var(--color-green-700)}.text-grey-7{color:var(--color-grey-7)}.text-grey-8{color:var(--color-grey-8)}.text-primary{color:var(--color-primary)}.text-primary-dark{color:var(--color-primary-dark)}.text-red-500{color:var(--color-red-500)}.text-soft-400{color:var(--color-soft-400)}.text-strong-950{color:var(--color-strong-950)}.text-text-black{color:var(--color-text-black)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.placeholder-gray-400::-moz-placeholder{color:var(--color-gray-400)}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.shadow-\[0px_1px_8px_0px_rgba\(82\,88\,102\,0\.06\)\]{--tw-shadow:0px 1px 8px 0px var(--tw-shadow-color,#5258660f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0px_2px_6px_0px_rgba\(31\,34\,41\,0\.04\)\]{--tw-shadow:0px 2px 6px 0px var(--tw-shadow-color,#1f22290a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-250{--tw-duration:.25s;transition-duration:.25s}@media (hover:hover){.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-primary-dark:hover{background-color:var(--color-primary-dark)}.hover\:bg-transparent:hover{background-color:#0000}}.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\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:48rem){.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-20{gap:calc(var(--spacing)*20)}}}.heading{text-color:var(--color-text-black);font-size:14px;font-weight:600}@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-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@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-duration{syntax:"*";inherits:false}
package/package.json CHANGED
@@ -1,62 +1,39 @@
1
1
  {
2
+ "author": "",
3
+ "description": "A standalone UI widget packaged as an SDK",
2
4
  "devDependencies": {
3
- "@eslint/js": "^9.25.0",
4
- "@hookform/resolvers": "^5.0.1",
5
+ "@tailwindcss/forms": "^0.5.10",
6
+ "@tailwindcss/vite": "^4.1.8",
7
+ "autoprefixer": "^10.4.21",
8
+ "postcss": "^8.5.4",
9
+ "rollup": "^4.41.1",
10
+ "tailwindcss": "^4.1.8",
11
+ "vite": "^6.3.5",
5
12
  "@semantic-release/changelog": "^6.0.3",
6
13
  "@semantic-release/commit-analyzer": "^13.0.1",
7
14
  "@semantic-release/git": "^10.0.1",
8
15
  "@semantic-release/npm": "^12.0.1",
9
16
  "@semantic-release/release-notes-generator": "^14.0.3",
10
- "@tailwindcss/vite": "^4.1.8",
11
- "@types/node": "^22.15.29",
12
- "@types/react": "^19.1.2",
13
- "@types/react-dom": "^19.1.2",
14
- "@vitejs/plugin-react": "^4.4.1",
15
- "autoprefixer": "^10.4.21",
16
- "eslint": "^9.25.0",
17
- "eslint-plugin-react-hooks": "^5.2.0",
18
- "eslint-plugin-react-refresh": "^0.4.19",
19
- "globals": "^16.0.0",
20
- "semantic-release": "^24.2.4",
21
- "tailwindcss": "^4.1.8",
22
- "typescript": "~5.8.3",
23
- "typescript-eslint": "^8.30.1",
24
- "vite": "^6.3.5",
25
- "vite-tsconfig-paths": "^5.1.4",
26
- "react": "^19.1.0",
27
- "react-dom": "^19.1.0",
28
- "react-hook-form": "^7.56.4",
29
- "zod": "^3.25.42",
30
- "zustand": "^5.0.5"
31
- },
32
- "exports": {
33
- ".": {
34
- "types": "./dist/index.d.ts",
35
- "import": "./dist/index.es.js",
36
- "require": "./dist/index.cjs.js"
37
- }
17
+ "semantic-release": "^24.2.4"
38
18
  },
39
19
  "files": [
40
20
  "dist"
41
21
  ],
42
- "main": "dist/index.cjs.js",
43
- "module": "dist/index.es.js",
22
+ "keywords": [
23
+ "widget",
24
+ "tailwind",
25
+ "sdk",
26
+ "vanilla-js"
27
+ ],
28
+ "license": "MIT",
29
+ "main": "dist/index.umd.js",
30
+ "module": "dist/index.esm.js",
44
31
  "name": "@invoice-sdk/widget",
45
- "peerDependencies": {
46
- "react": "^18.0.0",
47
- "react-dom": "^18.0.0"
48
- },
49
- "publishConfig": {
50
- "access": "public"
51
- },
52
32
  "scripts": {
53
- "build": "vite build && tsc -b",
33
+ "build": "vite build",
54
34
  "dev": "vite",
55
- "lint": "eslint .",
56
- "preview": "vite preview",
57
- "publish": "npm publish --access public"
35
+ "prepare": "npm run build"
58
36
  },
59
37
  "type": "module",
60
- "types": "dist/index.d.ts",
61
- "version": "1.1.1"
38
+ "version": "1.2.0"
62
39
  }
package/README.md DELETED
@@ -1,54 +0,0 @@
1
- # React + TypeScript + Vite
2
-
3
- This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
4
-
5
- Currently, two official plugins are available:
6
-
7
- - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
8
- - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
9
-
10
- ## Expanding the ESLint configuration
11
-
12
- If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
13
-
14
- ```js
15
- export default tseslint.config({
16
- extends: [
17
- // Remove ...tseslint.configs.recommended and replace with this
18
- ...tseslint.configs.recommendedTypeChecked,
19
- // Alternatively, use this for stricter rules
20
- ...tseslint.configs.strictTypeChecked,
21
- // Optionally, add this for stylistic rules
22
- ...tseslint.configs.stylisticTypeChecked,
23
- ],
24
- languageOptions: {
25
- // other options...
26
- parserOptions: {
27
- project: ['./tsconfig.node.json', './tsconfig.app.json'],
28
- tsconfigRootDir: import.meta.dirname,
29
- },
30
- },
31
- })
32
- ```
33
-
34
- You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
35
-
36
- ```js
37
- // eslint.config.js
38
- import reactX from 'eslint-plugin-react-x'
39
- import reactDom from 'eslint-plugin-react-dom'
40
-
41
- export default tseslint.config({
42
- plugins: {
43
- // Add the react-x and react-dom plugins
44
- 'react-x': reactX,
45
- 'react-dom': reactDom,
46
- },
47
- rules: {
48
- // other rules...
49
- // Enable its recommended typescript rules
50
- ...reactX.configs['recommended-typescript'].rules,
51
- ...reactDom.configs.recommended.rules,
52
- },
53
- })
54
- ```
package/dist/App.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import './App.css';
2
- declare function InvoiceRegisterWidget(): import("react/jsx-runtime").JSX.Element;
3
- export default InvoiceRegisterWidget;
4
- //# sourceMappingURL=App.d.ts.map
package/dist/App.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AAOnB,iBAAS,qBAAqB,4CAiB7B;AAED,eAAe,qBAAqB,CAAA"}
@@ -1,10 +0,0 @@
1
- type Props = {
2
- title: string;
3
- isDisabled?: boolean;
4
- handleClick?: () => void;
5
- type?: 'submit' | 'button';
6
- className?: string;
7
- };
8
- declare const Button: (props: Props) => import("react/jsx-runtime").JSX.Element;
9
- export default Button;
10
- //# sourceMappingURL=button.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AACA,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,QAAA,MAAM,MAAM,GAAI,OAAO,KAAK,4CAW3B,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -1,4 +0,0 @@
1
- import { PropsWithChildren } from "react";
2
- declare const MainLayout: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
3
- export default MainLayout;
4
- //# sourceMappingURL=layout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/components/layout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAK1C,QAAA,MAAM,UAAU,GAAI,cAAa,iBAAiB,4CAmBjD,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -1,3 +0,0 @@
1
- declare const Checkout: () => import("react/jsx-runtime").JSX.Element;
2
- export default Checkout;
3
- //# sourceMappingURL=checkout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../src/components/payment/checkout.tsx"],"names":[],"mappings":"AA6BA,QAAA,MAAM,QAAQ,+CAYb,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,3 +0,0 @@
1
- declare const OrderInfo: () => import("react/jsx-runtime").JSX.Element;
2
- export default OrderInfo;
3
- //# sourceMappingURL=order-info.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"order-info.d.ts","sourceRoot":"","sources":["../../../src/components/payment/order-info.tsx"],"names":[],"mappings":"AAGA,QAAA,MAAM,SAAS,+CAmEd,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1,19 +0,0 @@
1
- interface QRPaymentProps {
2
- /** URL or import path to the QR code image */
3
- qrSrc: string;
4
- /** Array of URLs/paths for the bank/e‐wallet logos (displayed in a row) */
5
- logos: string[];
6
- /** Displayed under the QR code—for example “ATOM SOLUTION” */
7
- accountName: string;
8
- /** The account number (e.g. “0973886570”) */
9
- accountNumber: string;
10
- /** The beneficiary bank name (e.g. “Techcombank”) */
11
- bankName: string;
12
- /** Array of instruction steps (strings). Exactly 3 items in your screenshot. */
13
- instructions: string[];
14
- /** URL or import path to the illustration image on the right */
15
- illustrationSrc: string;
16
- }
17
- declare const QRPayment: ({ qrSrc, logos, accountName, accountNumber, bankName, instructions, illustrationSrc, }: QRPaymentProps) => import("react/jsx-runtime").JSX.Element;
18
- export default QRPayment;
19
- //# sourceMappingURL=qr-payment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"qr-payment.d.ts","sourceRoot":"","sources":["../../../src/components/payment/qr-payment.tsx"],"names":[],"mappings":"AAEA,UAAU,cAAc;IACtB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,QAAA,MAAM,SAAS,GAAI,wFAQhB,cAAc,4CAgFhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1,7 +0,0 @@
1
- type Props = {
2
- checked: boolean;
3
- setChecked: (checked: boolean) => void;
4
- };
5
- declare const CustomCheckbox: ({ checked, setChecked }: Props) => import("react/jsx-runtime").JSX.Element;
6
- export default CustomCheckbox;
7
- //# sourceMappingURL=custom-checkbox.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/register-form/custom-checkbox.tsx"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,CAAC;AACF,QAAA,MAAM,cAAc,GAAI,yBAAyB,KAAK,4CAarD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,10 +0,0 @@
1
- type FileUploadProps = {
2
- label: string;
3
- required?: boolean;
4
- file: File | null;
5
- onFileChange: (file: File) => void;
6
- error?: string;
7
- };
8
- declare const FileUpload: React.FC<FileUploadProps>;
9
- export default FileUpload;
10
- //# sourceMappingURL=file-upload.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../../src/components/register-form/file-upload.tsx"],"names":[],"mappings":"AASA,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAcF,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsNzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,63 +0,0 @@
1
- import z from "zod";
2
- declare const formSchema: z.ZodObject<{
3
- taxCode: z.ZodString;
4
- representative: z.ZodString;
5
- email: z.ZodString;
6
- address: z.ZodObject<{
7
- country: z.ZodOptional<z.ZodString>;
8
- province: z.ZodOptional<z.ZodString>;
9
- district: z.ZodOptional<z.ZodString>;
10
- ward: z.ZodOptional<z.ZodString>;
11
- detail: z.ZodOptional<z.ZodString>;
12
- }, "strip", z.ZodTypeAny, {
13
- country?: string | undefined;
14
- province?: string | undefined;
15
- district?: string | undefined;
16
- ward?: string | undefined;
17
- detail?: string | undefined;
18
- }, {
19
- country?: string | undefined;
20
- province?: string | undefined;
21
- district?: string | undefined;
22
- ward?: string | undefined;
23
- detail?: string | undefined;
24
- }>;
25
- companyName: z.ZodOptional<z.ZodString>;
26
- position: z.ZodOptional<z.ZodString>;
27
- phone: z.ZodString;
28
- license: z.ZodType<File, z.ZodTypeDef, File>;
29
- }, "strip", z.ZodTypeAny, {
30
- taxCode: string;
31
- representative: string;
32
- email: string;
33
- address: {
34
- country?: string | undefined;
35
- province?: string | undefined;
36
- district?: string | undefined;
37
- ward?: string | undefined;
38
- detail?: string | undefined;
39
- };
40
- license: File;
41
- phone: string;
42
- companyName?: string | undefined;
43
- position?: string | undefined;
44
- }, {
45
- taxCode: string;
46
- representative: string;
47
- email: string;
48
- address: {
49
- country?: string | undefined;
50
- province?: string | undefined;
51
- district?: string | undefined;
52
- ward?: string | undefined;
53
- detail?: string | undefined;
54
- };
55
- license: File;
56
- phone: string;
57
- companyName?: string | undefined;
58
- position?: string | undefined;
59
- }>;
60
- export type FormValues = z.infer<typeof formSchema>;
61
- declare const RegistrationForm: () => import("react/jsx-runtime").JSX.Element;
62
- export default RegistrationForm;
63
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/register-form/index.tsx"],"names":[],"mappings":"AAIA,OAAO,CAAC,MAAM,KAAK,CAAC;AAepB,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBd,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,QAAA,MAAM,gBAAgB,+CA4RrB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1,7 +0,0 @@
1
- declare const InputField: import("react").ForwardRefExoticComponent<{
2
- label: string;
3
- required?: boolean;
4
- error?: string;
5
- } & import("react").InputHTMLAttributes<HTMLInputElement> & import("react").RefAttributes<HTMLInputElement>>;
6
- export default InputField;
7
- //# sourceMappingURL=input-field.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-field.d.ts","sourceRoot":"","sources":["../../../src/components/register-form/input-field.tsx"],"names":[],"mappings":"AAQA,QAAA,MAAM,UAAU;WALP,MAAM;eACF,OAAO;YACV,MAAM;4GA0Bf,CAAC;AAGF,eAAe,UAAU,CAAC"}
@@ -1,14 +0,0 @@
1
- import { Option } from "@/lib/constants/index";
2
- import React from "react";
3
- export interface SelectFieldProps extends React.SelectHTMLAttributes<HTMLSelectElement> {
4
- /** Label that appears above the select */
5
- label: string;
6
- /** If true, show a red asterisk next to label */
7
- /** Validation error message (displayed below select) */
8
- error?: string;
9
- /** The list of options to render inside <select> */
10
- options: Option[];
11
- }
12
- declare const SelectField: React.ForwardRefExoticComponent<SelectFieldProps & React.RefAttributes<HTMLSelectElement>>;
13
- export default SelectField;
14
- //# sourceMappingURL=select-filed.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-filed.d.ts","sourceRoot":"","sources":["../../../src/components/register-form/select-filed.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,MAAM,WAAW,gBACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACrD,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IAEjD,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,QAAA,MAAM,WAAW,4FA8ChB,CAAC;AAGF,eAAe,WAAW,CAAC"}
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- type Option = {
3
- value: string;
4
- label: string;
5
- };
6
- type SubscriptionSelectorProps = {
7
- options: Option[];
8
- value: string;
9
- onChange: (value: string) => void;
10
- };
11
- declare const SubscriptionSelector: React.FC<SubscriptionSelectorProps>;
12
- export default SubscriptionSelector;
13
- //# sourceMappingURL=select-option.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-option.d.ts","sourceRoot":"","sources":["../../../src/components/register-form/select-option.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA0D7D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1,3 +0,0 @@
1
- declare const SelectProvider: () => import("react/jsx-runtime").JSX.Element;
2
- export default SelectProvider;
3
- //# sourceMappingURL=select-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-provider.d.ts","sourceRoot":"","sources":["../../../src/components/register-form/select-provider.tsx"],"names":[],"mappings":"AA4CA,QAAA,MAAM,cAAc,+CAuBnB,CAAC;AAEF,eAAe,cAAc,CAAC"}