hans-ui-design-lib 0.0.69 → 0.0.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react");var h={exports:{}},p={};/**
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react");var M={exports:{}},j={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.js
4
4
  *
@@ -6,25 +6,48 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var b;function C(){if(b)return p;b=1;var o=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function a(u,e,s){var r=null;if(s!==void 0&&(r=""+s),e.key!==void 0&&(r=""+e.key),"key"in e){s={};for(var n in e)n!=="key"&&(s[n]=e[n])}else s=e;return e=s.ref,{$$typeof:o,type:u,key:r,ref:e!==void 0?e:null,props:s}}return p.Fragment=t,p.jsx=a,p.jsxs=a,p}var v;function $(){return v||(v=1,h.exports=C()),h.exports}var i=$();const x=d.memo(o=>{const{label:t="",buttonId:a="hans-button",buttonSize:u="medium",buttonColor:e="primary",buttonVariant:s="default",buttonType:r="button",customClasses:n="",disabled:m=!1,children:c,...l}=o;return i.jsx("button",{id:a,type:r,disabled:m,className:`
9
+ */var Y;function ae(){if(Y)return j;Y=1;var s=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function h(f,t,o){var l=null;if(o!==void 0&&(l=""+o),t.key!==void 0&&(l=""+t.key),"key"in t){o={};for(var u in t)u!=="key"&&(o[u]=t[u])}else o=t;return t=o.ref,{$$typeof:s,type:f,key:l,ref:t!==void 0?t:null,props:o}}return j.Fragment=i,j.jsx=h,j.jsxs=h,j}var G;function ie(){return G||(G=1,M.exports=ae()),M.exports}var n=ie();const Q=a.memo(s=>{const{label:i="",buttonId:h="hans-button",buttonSize:f="medium",buttonColor:t="primary",buttonVariant:o="default",buttonType:l="button",customClasses:u="",disabled:g=!1,children:b,...p}=s;return n.jsx("button",{id:h,type:l,disabled:g,className:`
10
10
  hans-button
11
- hans-button-${u}
12
- hans-button-${e}
13
- hans-button-${s}
14
- ${n}
15
- `,...l,children:i.jsx("slot",{children:c??(t&&i.jsx("span",{children:t}))})})});x.displayName="HansButton";const f=d.memo(o=>{const{label:t="",labelColor:a="primary",placeholder:u="",value:e="",inputId:s="hans-input",inputColor:r="primary",inputSize:n="medium",inputType:m="text",message:c="",messageColor:l="success",customClasses:H="",disabled:j=!1,children:q,...R}=o;return i.jsxs("div",{className:"hans-input-div",children:[q,i.jsx("label",{htmlFor:s,className:`
16
- hans-input-label
17
- hans-input-label-${a}
18
- `,children:t}),i.jsx("input",{id:s,type:m,disabled:j,value:e,placeholder:u,className:`
19
- hans-input
20
- hans-input-${n}
21
- hans-input-${r}
22
- ${H}
23
- `,...R}),i.jsx("p",{className:`
24
- hans-input-message
25
- hans-input-message-${l}
26
- `,children:c})]})});f.displayName="HansInput";function y(o){return Object.keys(o)}const S={name:"string",iconSize:{type:"custom",ref:{}},customClasses:"string"},E=y(S),P={Fa:()=>Promise.resolve().then(()=>require("./index-B8vGj59Y.cjs")),Md:()=>Promise.resolve().then(()=>require("./index-BniI3q7_.cjs")),Bi:()=>Promise.resolve().then(()=>require("./index-CzJEuaAC.cjs")),Ai:()=>Promise.resolve().then(()=>require("./index-DpGEmQKf.cjs")),Bs:()=>Promise.resolve().then(()=>require("./index-DOM24eP1.cjs")),Io:()=>Promise.resolve().then(()=>require("./index-DqJAPiPg.cjs")),Ri:()=>Promise.resolve().then(()=>require("./index-Cg9EwHiA.cjs")),Hi:()=>Promise.resolve().then(()=>require("./index-Cd4f2LU9.cjs")),Pi:()=>Promise.resolve().then(()=>require("./index-DgzbVFqs.cjs")),Tb:()=>Promise.resolve().then(()=>require("./index-BMJKTS9q.cjs")),Lu:()=>Promise.resolve().then(()=>require("./index-CsmLabva.cjs"))},I=d.memo(o=>{const{name:t,iconSize:a="medium",customClasses:u="",...e}=o,[s,r]=d.useState(null);return d.useEffect(()=>{let n=!0;if(!t)return;const m=t.slice(0,2),c=P[m];if(c)return(async()=>{try{const l=await c();if(!n)return;r(()=>l[t]||null)}catch(l){console.warn(`[HansUI] Error loading icon ${t}:`,l),n&&r(()=>null)}})(),()=>{n=!1}},[t]),s?i.jsx(s,{className:`
11
+ hans-button-${f}
12
+ hans-button-${t}
13
+ hans-button-${o}
14
+ ${u}
15
+ `,...p,children:n.jsx("slot",{children:b??(i&&n.jsx("span",{children:i}))})})});Q.displayName="HansButton";const V=a.memo(s=>{const{label:i="",labelColor:h="base",placeholder:f="",value:t,inputId:o="hans-input",inputColor:l="base",inputSize:u="medium",inputType:g="text",message:b="",messageColor:p="base",customClasses:x="",disabled:q=!1,leftIcon:c,rightIcon:d,children:I,...E}=s,A=typeof t>"u"?{}:{value:t};return n.jsxs("div",{className:"hans-input-div",children:[I,i?n.jsx("label",{htmlFor:o,className:`
16
+ hans-input-label
17
+ hans-input-label-${h}
18
+ `,children:i}):null,n.jsxs("div",{className:"hans-input-field",children:[c?n.jsx("span",{className:`
19
+ hans-input-icon
20
+ hans-input-icon-left
21
+ hans-input-icon-${l}
22
+ `,children:c}):null,n.jsx("input",{id:o,type:g,disabled:q,placeholder:f,className:`
23
+ hans-input
24
+ hans-input-${u}
25
+ hans-input-${l}
26
+ ${c?"hans-input-has-left-icon":""}
27
+ ${d?"hans-input-has-right-icon":""}
28
+ ${x}
29
+ `,...A,...E}),d?n.jsx("span",{className:`
30
+ hans-input-icon
31
+ hans-input-icon-right
32
+ hans-input-icon-${l}
33
+ `,children:d}):null]}),b?n.jsx("p",{className:`
34
+ hans-input-message
35
+ hans-input-message-${p}
36
+ `,children:b}):null]})});V.displayName="HansInput";function F(s){return Object.keys(s)}const le={name:"string",iconSize:{type:"custom",ref:{}},customClasses:"string"},ue=F(le),W={Fa:()=>Promise.resolve().then(()=>require("./index-B8vGj59Y.cjs")),Md:()=>Promise.resolve().then(()=>require("./index-BniI3q7_.cjs")),Bi:()=>Promise.resolve().then(()=>require("./index-CzJEuaAC.cjs")),Ai:()=>Promise.resolve().then(()=>require("./index-DpGEmQKf.cjs")),Bs:()=>Promise.resolve().then(()=>require("./index-DOM24eP1.cjs")),Io:()=>Promise.resolve().then(()=>require("./index-DqJAPiPg.cjs")),Ri:()=>Promise.resolve().then(()=>require("./index-Cg9EwHiA.cjs")),Hi:()=>Promise.resolve().then(()=>require("./index-Cd4f2LU9.cjs")),Pi:()=>Promise.resolve().then(()=>require("./index-DgzbVFqs.cjs")),Tb:()=>Promise.resolve().then(()=>require("./index-BMJKTS9q.cjs")),Lu:()=>Promise.resolve().then(()=>require("./index-CsmLabva.cjs"))},T=a.memo(s=>{const{name:i,iconSize:h="medium",customClasses:f="",...t}=s,[o,l]=a.useState(null);return a.useEffect(()=>{let u=!0;if(!i)return;const g=i.slice(0,2),b=W[g];if(b)return(async()=>{try{const p=await b();if(!u)return;l(()=>p[i]||null)}catch(p){console.warn(`[HansUI] Error loading icon ${i}:`,p),u&&l(()=>null)}})(),()=>{u=!1}},[i]),o?n.jsx(o,{className:`
27
37
  hans-icon
28
- hans-icon-${a}
29
- ${u}
30
- `,...e}):i.jsx("span",{className:"hans-icon-loading"})});I.displayName="HansIcon";const T={label:"string",buttonId:"string",buttonSize:{type:"custom",ref:{}},buttonColor:{type:"custom",ref:{}},buttonVariant:{type:"custom",ref:{}},buttonType:{type:"custom",ref:{}},customClasses:"string",disabled:"boolean"},N=y(T);exports.DynamicIconImports=P;exports.HansButton=x;exports.HansButtonPropsList=N;exports.HansIcon=I;exports.HansIconPropsList=E;exports.HansInput=f;
38
+ hans-icon-${h}
39
+ ${f}
40
+ `,...t}):n.jsx("span",{className:"hans-icon-loading"})});T.displayName="HansIcon";const ce=s=>Array.isArray(s)?s:typeof s=="string"&&s.length>0?[s]:[],$=s=>s.id??s.value,X=a.memo(s=>{const{label:i="",labelColor:h="base",placeholder:f="Select an option",inputId:t="hans-dropdown",inputColor:o="base",inputSize:l="medium",message:u="",messageColor:g="base",customClasses:b="",disabled:p=!1,options:x=[],selectionType:q="single",enableAutocomplete:c=!0,value:d,defaultValue:I,noOptionsText:E="No options",dropdownBackgroundColor:A="var(--white)",dropdownHoverColor:Z="var(--gray-100)",onChange:S,onSearch:_,onInputChange:J,...K}=s,y=q==="multi",[v,H]=a.useState(!1),[ee,U]=a.useState("down"),[N,P]=a.useState(""),[ne,D]=a.useState(()=>typeof d<"u"?d:typeof I<"u"?I:y?[]:""),C=a.useRef(null),L=a.useRef(null);a.useEffect(()=>{typeof d<"u"&&D(d)},[d]);const w=ce(typeof d<"u"?d:ne),R=a.useMemo(()=>x.filter(e=>w.includes($(e))),[x,w]),O=y?R.map(e=>e.label).join(", "):R[0]?.label??"";a.useEffect(()=>{!c||y||P(O)},[c,y,O]),a.useEffect(()=>{const e=r=>{const m=r.target;!C.current||!m||C.current.contains(m)||H(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]);const B=a.useMemo(()=>{if(!c||N.trim().length===0)return x;const e=N.toLowerCase();return x.filter(r=>r.label.toLowerCase().includes(e))},[c,x,N]);a.useEffect(()=>{if(!v)return;const e=requestAnimationFrame(()=>{if(!C.current||!L.current)return;const r=C.current.getBoundingClientRect(),m=L.current.getBoundingClientRect(),z=window.innerHeight-r.bottom,re=r.top;z<m.height&&re>m.height?U("up"):U("down")});return()=>cancelAnimationFrame(e)},[v,B.length]);const se=e=>{if(!c)return;const r=e.target.value;P(r),v||H(!0),_&&_(r),J&&J(e)},te=e=>{if(e.disabled||p)return;const r=$(e);if(y){const m=w.includes(r)?w.filter(z=>z!==r):[...w,r];typeof d>"u"&&D(m),S&&S(m),c&&P("");return}typeof d>"u"&&D(r),S&&S(r),c&&P(e.label),H(!1)},k=()=>{p||H(!0)},oe=c?N:O;return n.jsxs("div",{className:"hans-dropdown",ref:C,children:[i?n.jsx("label",{htmlFor:t,className:`
41
+ hans-input-label
42
+ hans-input-label-${h}
43
+ `,children:i}):null,n.jsxs("div",{className:"hans-dropdown-field",onMouseDown:k,children:[n.jsx(V,{label:"",message:"",inputId:t,inputColor:o,inputSize:l,placeholder:f,customClasses:`hans-dropdown-input ${b}`,disabled:p,value:oe,onChange:se,onFocus:k,onClick:k,readOnly:!c,leftIcon:c?n.jsx(T,{name:"FaSearch",iconSize:"small"}):void 0,rightIcon:n.jsx(T,{name:v?"MdArrowDropUp":"MdArrowDropDown",iconSize:"small"}),...K}),v&&!p?n.jsx("ul",{ref:L,className:"hans-dropdown-list",role:"listbox","aria-multiselectable":y,"data-direction":ee,style:{"--hans-dropdown-bg":A,"--hans-dropdown-hover":Z},children:B.length===0?n.jsx("li",{className:"hans-dropdown-empty",children:E}):B.map(e=>{const r=$(e),m=w.includes(r);return n.jsxs("li",{role:"option","aria-selected":m,className:`
44
+ hans-dropdown-option
45
+ ${m?"hans-dropdown-option-selected":""}
46
+ ${e.disabled?"hans-dropdown-option-disabled":""}
47
+ `,onClick:()=>te(e),children:[e.imageSrc?n.jsx("img",{className:"hans-dropdown-option-image",src:e.imageSrc,alt:e.imageAlt??e.label}):null,n.jsx("span",{className:"hans-dropdown-option-label",children:e.label})]},r)})}):null]}),y&&R.length>0?n.jsx("div",{className:"hans-dropdown-selected",children:R.map(e=>n.jsx("span",{className:`
48
+ hans-dropdown-chip
49
+ hans-dropdown-chip-${o}
50
+ `,children:e.label},$(e)))}):null,u?n.jsx("p",{className:`
51
+ hans-input-message
52
+ hans-input-message-${g}
53
+ `,children:u}):null]})});X.displayName="HansDropdown";const de={label:"string",buttonId:"string",buttonSize:{type:"custom",ref:{}},buttonColor:{type:"custom",ref:{}},buttonVariant:{type:"custom",ref:{}},buttonType:{type:"custom",ref:{}},customClasses:"string",disabled:"boolean"},pe=F(de),me={label:"string",labelColor:{type:"custom",ref:{}},placeholder:"string",inputId:"string",inputColor:{type:"custom",ref:{}},inputSize:{type:"custom",ref:{}},message:"string",messageColor:{type:"custom",ref:{}},customClasses:"string",disabled:"boolean",options:{type:"custom",ref:{}},selectionType:{type:"custom",ref:{}},enableAutocomplete:"boolean",value:{type:"custom",ref:{}},defaultValue:{type:"custom",ref:{}},noOptionsText:"string",dropdownBackgroundColor:"string",dropdownHoverColor:"string"},he=F(me);exports.DynamicIconImports=W;exports.HansButton=Q;exports.HansButtonPropsList=pe;exports.HansDropdown=X;exports.HansDropdownPropsList=he;exports.HansIcon=T;exports.HansIconPropsList=ue;exports.HansInput=V;
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- /*! tailwindcss v4.1.16 | 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-outline-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}*,:before,:after{box-sizing:border-box;font-family:Nunito Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}ol,ul{list-style:none}a{color:inherit;text-decoration:none}img,picture,video,canvas,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit;background:0 0;border:none;outline:none}html,body,#root{height:100%}body{-webkit-font-smoothing:antialiased;line-height:1.5}.hans-button{cursor:pointer;align-items:center;gap:calc(var(--spacing)*1);border-radius:3.40282e38px;display:flex}.hans-button:disabled,.hans-button[disabled]{cursor:not-allowed;opacity:.5}.hans-button:disabled>*{pointer-events:none}.hans-button-small{padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*1)}.hans-button-medium{padding-inline:calc(var(--spacing)*5);padding-block:calc(var(--spacing)*2)}.hans-button-large{padding-inline:calc(var(--spacing)*6);padding-block:calc(var(--spacing)*3)}.hans-button-primary.hans-button-strong{background-color:var(--primary-strong-color);color:var(--primary-neutral-color)}.hans-button-primary.hans-button-default{background-color:var(--primary-default-color);color:var(--white)}.hans-button-primary.hans-button-neutral{background-color:var(--primary-neutral-color);color:var(--primary-strong-color)}.hans-button-primary.hans-button-outline{border-color:var(--primary-default-color);color:var(--primary-strong-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-primary.hans-button-transparent{color:var(--primary-default-color);background-color:#0000}.hans-button-secondary.hans-button-strong{background-color:var(--secondary-strong-color);color:var(--secondary-neutral-color)}.hans-button-secondary.hans-button-default{background-color:var(--secondary-default-color);color:var(--white)}.hans-button-secondary.hans-button-neutral{background-color:var(--secondary-neutral-color);color:var(--secondary-strong-color)}.hans-button-secondary.hans-button-outline{border-color:var(--secondary-default-color);color:var(--secondary-strong-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-secondary.hans-button-transparent{color:var(--secondary-default-color);background-color:#0000}.hans-button-success.hans-button-strong{background-color:var(--success-strong-color);color:var(--success-neutral-color)}.hans-button-success.hans-button-default{background-color:var(--success-default-color);color:var(--white)}.hans-button-success.hans-button-neutral{background-color:var(--success-neutral-color);color:var(--success-strong-color)}.hans-button-success.hans-button-outline{border-color:var(--success-default-color);color:var(--success-strong-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-success.hans-button-transparent{color:var(--success-default-color);background-color:#0000}.hans-button-danger.hans-button-strong{background-color:var(--danger-strong-color);color:var(--danger-neutral-color)}.hans-button-danger.hans-button-default{background-color:var(--danger-default-color);color:var(--white)}.hans-button-danger.hans-button-neutral{background-color:var(--danger-neutral-color);color:var(--danger-strong-color)}.hans-button-danger.hans-button-outline{border-color:var(--danger-default-color);color:var(--danger-strong-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-danger.hans-button-transparent{color:var(--danger-default-color);background-color:#0000}.hans-button-warning.hans-button-strong{background-color:var(--warning-strong-color);color:var(--warning-neutral-color)}.hans-button-warning.hans-button-default{background-color:var(--warning-default-color);color:var(--white)}.hans-button-warning.hans-button-neutral{background-color:var(--warning-neutral-color);color:var(--warning-strong-color)}.hans-button-warning.hans-button-outline{border-color:var(--warning-default-color);color:var(--warning-strong-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-warning.hans-button-transparent{color:var(--warning-default-color);background-color:#0000}.hans-button-info.hans-button-strong{background-color:var(--info-strong-color);color:var(--info-neutral-color)}.hans-button-info.hans-button-default{background-color:var(--info-default-color);color:var(--white)}.hans-button-info.hans-button-neutral{background-color:var(--info-neutral-color);color:var(--info-strong-color)}.hans-button-info.hans-button-outline{border-color:var(--info-default-color);color:var(--info-strong-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-info.hans-button-transparent{color:var(--info-default-color);background-color:#0000}.hans-input-div{flex-direction:column;display:flex}.hans-input-label{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.hans-input{border-radius:var(--radius-lg);border-color:var(--text-color);padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1);outline-style:var(--tw-outline-style);outline-width:1px}.hans-input-small{height:calc(var(--spacing)*6);width:calc(var(--spacing)*24)}.hans-input-medium{height:calc(var(--spacing)*8);width:calc(var(--spacing)*36)}.hans-input-large{height:calc(var(--spacing)*10);width:calc(var(--spacing)*50)}.hans-input-message{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.hans-icon{justify-content:center;align-items:center;display:inline-flex}.hans-icon-small{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.hans-icon-medium{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.hans-icon-large{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.hans-icon-loading{height:calc(var(--spacing)*4);width:calc(var(--spacing)*4);animation:var(--animate-pulse);background-color:var(--gray-300);border-radius:3.40282e38px}:root{--purple-900:#2e1a73;--purple-500:#8257e5;--purple-300:#bba7ff;--blue-900:#1b3c8e;--blue-500:#3d8bff;--blue-300:#a8c9ff;--green-900:#027a43;--green-500:#04d361;--green-300:#a3f3c4;--red-900:#8b1e34;--red-500:#e83f5b;--red-300:#ffa3b1;--yellow-900:#ff8c42;--yellow-500:#f7b500;--yellow-300:#ffe9a3;--gray-900:#0e0e10;--gray-700:#2d2d33;--gray-500:#7a7a85;--gray-300:#c7c7d1;--gray-100:#f2f2f5;--black:#000;--white:#fff;--primary-strong-color:var(--purple-900);--primary-default-color:var(--purple-500);--primary-neutral-color:var(--purple-300);--secondary-strong-color:var(--blue-900);--secondary-default-color:var(--blue-500);--secondary-neutral-color:var(--blue-300);--success-strong-color:var(--green-900);--success-default-color:var(--green-500);--success-neutral-color:var(--green-300);--danger-strong-color:var(--red-900);--danger-default-color:var(--red-500);--danger-neutral-color:var(--red-300);--warning-strong-color:var(--yellow-900);--warning-default-color:var(--yellow-500);--warning-neutral-color:var(--yellow-300);--info-strong-color:var(--blue-900);--info-default-color:var(--blue-500);--info-neutral-color:var(--blue-300);--background-color:var(--gray-100);--text-color:var(--gray-900)}[data-theme=combination1]{--primary-strong-color:var(--purple-900);--primary-default-color:var(--purple-500);--primary-neutral-color:var(--purple-300);--secondary-strong-color:var(--blue-900);--secondary-default-color:var(--blue-500);--secondary-neutral-color:var(--blue-300);--success-strong-color:var(--green-900);--success-default-color:var(--green-500);--success-neutral-color:var(--green-300);--danger-strong-color:var(--red-900);--danger-default-color:var(--red-500);--danger-neutral-color:var(--red-300);--warning-strong-color:var(--yellow-900);--warning-default-color:var(--yellow-500);--warning-neutral-color:var(--yellow-300);--info-strong-color:var(--blue-900);--info-default-color:var(--blue-500);--info-neutral-color:var(--blue-300);--background-color:var(--gray-100);--text-color:var(--gray-900)}[data-theme=combination2]{--primary-strong-color:var(--green-900);--primary-default-color:var(--green-500);--primary-neutral-color:var(--green-300);--secondary-strong-color:var(--purple-900);--secondary-default-color:var(--purple-500);--secondary-neutral-color:var(--purple-300);--success-strong-color:var(--green-900);--success-default-color:var(--green-500);--success-neutral-color:var(--green-300);--danger-strong-color:var(--red-900);--danger-default-color:var(--red-500);--danger-neutral-color:var(--red-300);--warning-strong-color:var(--yellow-900);--warning-default-color:var(--yellow-500);--warning-neutral-color:var(--yellow-300);--info-strong-color:var(--green-900);--info-default-color:var(--green-500);--info-neutral-color:var(--green-300);--background-color:var(--gray-900);--text-color:var(--gray-100)}[data-theme=combination3]{--primary-strong-color:var(--yellow-900);--primary-default-color:var(--yellow-500);--primary-neutral-color:var(--yellow-300);--secondary-strong-color:var(--purple-900);--secondary-default-color:var(--purple-500);--secondary-neutral-color:var(--purple-300);--success-strong-color:var(--green-900);--success-default-color:var(--green-500);--success-neutral-color:var(--green-300);--danger-strong-color:var(--red-900);--danger-default-color:var(--red-500);--danger-neutral-color:var(--red-300);--warning-strong-color:var(--yellow-900);--warning-default-color:var(--yellow-500);--warning-neutral-color:var(--yellow-300);--info-strong-color:var(--yellow-900);--info-default-color:var(--yellow-500);--info-neutral-color:var(--yellow-300);--background-color:var(--gray-100);--text-color:var(--gray-900)}@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;--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-bold:700;--radius-lg:.5rem;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.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-2{margin-inline:calc(var(--spacing)*2)!important}.\!mx-5{margin-inline:calc(var(--spacing)*5)!important}.\!my-1{margin-block:calc(var(--spacing)*1)!important}.\!my-2{margin-block:calc(var(--spacing)*2)!important}.\!my-3{margin-block:calc(var(--spacing)*3)!important}.\!my-4{margin-block:calc(var(--spacing)*4)!important}.mt-1{margin-top:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.flex{display:flex}.hidden{display:none}.h-auto{height:auto}.w-6{width:calc(var(--spacing)*6)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.\!text-xl{font-size:var(--text-xl)!important;line-height:var(--tw-leading,var(--text-xl--line-height))!important}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\!font-bold{--tw-font-weight:var(--font-weight-bold)!important;font-weight:var(--font-weight-bold)!important}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-\[var\(--primary-default-color\)\]{color:var(--primary-default-color)}.shadow{--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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes pulse{50%{opacity:.5}}
1
+ /*! tailwindcss v4.1.16 | 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-outline-style:solid;--tw-font-weight:initial;--tw-border-style:solid;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}*,:before,:after{box-sizing:border-box;font-family:Nunito Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}ol,ul{list-style:none}a{color:inherit;text-decoration:none}img,picture,video,canvas,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit;background:0 0;border:none;outline:none}html,body,#root{height:100%}body{-webkit-font-smoothing:antialiased;line-height:1.5}.hans-button{cursor:pointer;align-items:center;gap:calc(var(--spacing)*1);border-radius:3.40282e38px;display:flex}.hans-button:disabled,.hans-button[disabled]{cursor:not-allowed;opacity:.5}.hans-button:disabled>*{pointer-events:none}.hans-button-small{padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*1)}.hans-button-medium{padding-inline:calc(var(--spacing)*5);padding-block:calc(var(--spacing)*2)}.hans-button-large{padding-inline:calc(var(--spacing)*6);padding-block:calc(var(--spacing)*3)}.hans-button-base.hans-button-strong{background-color:var(--text-color);color:var(--background-color)}.hans-button-base.hans-button-default{background-color:var(--text-color);color:var(--white)}.hans-button-base.hans-button-neutral{background-color:var(--background-color);color:var(--text-color)}.hans-button-base.hans-button-outline{border-color:var(--text-color);color:var(--text-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-base.hans-button-transparent{color:var(--text-color);background-color:#0000}.hans-button-primary.hans-button-strong{background-color:var(--primary-strong-color);color:var(--primary-neutral-color)}.hans-button-primary.hans-button-default{background-color:var(--primary-default-color);color:var(--white)}.hans-button-primary.hans-button-neutral{background-color:var(--primary-neutral-color);color:var(--primary-strong-color)}.hans-button-primary.hans-button-outline{border-color:var(--primary-default-color);color:var(--primary-strong-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-primary.hans-button-transparent{color:var(--primary-default-color);background-color:#0000}.hans-button-secondary.hans-button-strong{background-color:var(--secondary-strong-color);color:var(--secondary-neutral-color)}.hans-button-secondary.hans-button-default{background-color:var(--secondary-default-color);color:var(--white)}.hans-button-secondary.hans-button-neutral{background-color:var(--secondary-neutral-color);color:var(--secondary-strong-color)}.hans-button-secondary.hans-button-outline{border-color:var(--secondary-default-color);color:var(--secondary-strong-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-secondary.hans-button-transparent{color:var(--secondary-default-color);background-color:#0000}.hans-button-success.hans-button-strong{background-color:var(--success-strong-color);color:var(--success-neutral-color)}.hans-button-success.hans-button-default{background-color:var(--success-default-color);color:var(--white)}.hans-button-success.hans-button-neutral{background-color:var(--success-neutral-color);color:var(--success-strong-color)}.hans-button-success.hans-button-outline{border-color:var(--success-default-color);color:var(--success-strong-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-success.hans-button-transparent{color:var(--success-default-color);background-color:#0000}.hans-button-danger.hans-button-strong{background-color:var(--danger-strong-color);color:var(--danger-neutral-color)}.hans-button-danger.hans-button-default{background-color:var(--danger-default-color);color:var(--white)}.hans-button-danger.hans-button-neutral{background-color:var(--danger-neutral-color);color:var(--danger-strong-color)}.hans-button-danger.hans-button-outline{border-color:var(--danger-default-color);color:var(--danger-strong-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-danger.hans-button-transparent{color:var(--danger-default-color);background-color:#0000}.hans-button-warning.hans-button-strong{background-color:var(--warning-strong-color);color:var(--warning-neutral-color)}.hans-button-warning.hans-button-default{background-color:var(--warning-default-color);color:var(--white)}.hans-button-warning.hans-button-neutral{background-color:var(--warning-neutral-color);color:var(--warning-strong-color)}.hans-button-warning.hans-button-outline{border-color:var(--warning-default-color);color:var(--warning-strong-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-warning.hans-button-transparent{color:var(--warning-default-color);background-color:#0000}.hans-button-info.hans-button-strong{background-color:var(--info-strong-color);color:var(--info-neutral-color)}.hans-button-info.hans-button-default{background-color:var(--info-default-color);color:var(--white)}.hans-button-info.hans-button-neutral{background-color:var(--info-neutral-color);color:var(--info-strong-color)}.hans-button-info.hans-button-outline{border-color:var(--info-default-color);color:var(--info-strong-color);outline-style:var(--tw-outline-style);background-color:#0000;outline-width:1px}.hans-button-info.hans-button-transparent{color:var(--info-default-color);background-color:#0000}.hans-input-div{flex-direction:column;display:flex}.hans-input-label{margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.hans-input{border-radius:var(--radius-lg);border-style:var(--tw-border-style);width:100%;padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1);color:var(--text-color);--tw-outline-style:none;background-color:#0000;border-width:1px;outline-style:none}.hans-input:focus{--tw-outline-style:none;outline-style:none}.hans-input:disabled,.hans-input[disabled]{cursor:not-allowed;opacity:.5}.hans-input-field{align-items:center;width:100%;display:flex;position:relative}.hans-input-icon{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y);justify-content:center;align-items:center;display:flex;position:absolute;top:50%}.hans-input-icon-left{left:calc(var(--spacing)*2)}.hans-input-icon-right{right:calc(var(--spacing)*2)}.hans-input-has-left-icon{padding-left:calc(var(--spacing)*8)}.hans-input-has-right-icon{padding-right:calc(var(--spacing)*8)}.hans-input-icon-base{color:var(--text-color)}.hans-input-icon-primary{color:var(--primary-default-color)}.hans-input-icon-secondary{color:var(--secondary-default-color)}.hans-input-icon-success{color:var(--success-default-color)}.hans-input-icon-danger{color:var(--danger-default-color)}.hans-input-icon-warning{color:var(--warning-default-color)}.hans-input-icon-info{color:var(--info-default-color)}.hans-input-small{height:calc(var(--spacing)*6);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.hans-input-medium{height:calc(var(--spacing)*8);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.hans-input-large{height:calc(var(--spacing)*10);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.hans-input-message{margin-top:calc(var(--spacing)*1);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.hans-input-label-base{color:var(--text-color)}.hans-input-label-primary{color:var(--primary-default-color)}.hans-input-label-secondary{color:var(--secondary-default-color)}.hans-input-label-success{color:var(--success-default-color)}.hans-input-label-danger{color:var(--danger-default-color)}.hans-input-label-warning{color:var(--warning-default-color)}.hans-input-label-info{color:var(--info-default-color)}.hans-input-base{border-color:var(--gray-300)}.hans-input-base:focus{border-color:var(--text-color)}.hans-input-primary{border-color:var(--primary-neutral-color)}.hans-input-primary:focus{border-color:var(--primary-default-color)}.hans-input-secondary{border-color:var(--secondary-neutral-color)}.hans-input-secondary:focus{border-color:var(--secondary-default-color)}.hans-input-success{border-color:var(--success-neutral-color)}.hans-input-success:focus{border-color:var(--success-default-color)}.hans-input-danger{border-color:var(--danger-neutral-color)}.hans-input-danger:focus{border-color:var(--danger-default-color)}.hans-input-warning{border-color:var(--warning-neutral-color)}.hans-input-warning:focus{border-color:var(--warning-default-color)}.hans-input-info{border-color:var(--info-neutral-color)}.hans-input-info:focus{border-color:var(--info-default-color)}.hans-input-message-base{color:var(--text-color)}.hans-input-message-primary{color:var(--primary-default-color)}.hans-input-message-secondary{color:var(--secondary-default-color)}.hans-input-message-success{color:var(--success-default-color)}.hans-input-message-danger{color:var(--danger-default-color)}.hans-input-message-warning{color:var(--warning-default-color)}.hans-input-message-info{color:var(--info-default-color)}.hans-dropdown{flex-direction:column;width:100%;display:flex;overflow:visible}.hans-dropdown-field{width:100%;position:relative;overflow:visible}.hans-dropdown-input{width:100%}.hans-dropdown-list{z-index:9999;max-height:calc(var(--spacing)*60);border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--gray-300);background-color:var(--background-color);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);width:100%;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);background-color:var(--hans-dropdown-bg,var(--white));position:absolute;overflow:auto}.hans-dropdown-list[data-direction=down]{margin-top:calc(var(--spacing)*1);top:calc(100% + .25rem)}.hans-dropdown-list[data-direction=up]{margin-bottom:calc(var(--spacing)*1);bottom:calc(100% + .25rem)}.hans-dropdown-option{cursor:pointer;align-items:center;gap:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*2);display:flex}.hans-dropdown-option:hover{background-color:var(--hans-dropdown-hover,var(--gray-100))}.hans-dropdown-option-selected{background-color:var(--gray-100);--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.hans-dropdown-option-disabled{cursor:not-allowed;opacity:.5}.hans-dropdown-empty{padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--gray-500)}.hans-dropdown-option-image{height:calc(var(--spacing)*6);width:calc(var(--spacing)*6);object-fit:cover;border-radius:3.40282e38px}.hans-dropdown-option-label{flex:1}.hans-dropdown-selected{margin-top:calc(var(--spacing)*2);gap:calc(var(--spacing)*2);flex-wrap:wrap;display:flex}.hans-dropdown-chip{background-color:var(--gray-100);padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--text-color);border-radius:3.40282e38px}.hans-dropdown-chip-base{background-color:var(--gray-100);color:var(--text-color)}.hans-dropdown-chip-primary{background-color:var(--primary-neutral-color);color:var(--primary-strong-color)}.hans-dropdown-chip-secondary{background-color:var(--secondary-neutral-color);color:var(--secondary-strong-color)}.hans-dropdown-chip-success{background-color:var(--success-neutral-color);color:var(--success-strong-color)}.hans-dropdown-chip-danger{background-color:var(--danger-neutral-color);color:var(--danger-strong-color)}.hans-dropdown-chip-warning{background-color:var(--warning-neutral-color);color:var(--warning-strong-color)}.hans-dropdown-chip-info{background-color:var(--info-neutral-color);color:var(--info-strong-color)}.hans-icon{justify-content:center;align-items:center;display:inline-flex}.hans-icon-small{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.hans-icon-medium{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.hans-icon-large{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.hans-icon-loading{height:calc(var(--spacing)*4);width:calc(var(--spacing)*4);animation:var(--animate-pulse);background-color:var(--gray-300);border-radius:3.40282e38px}:root{--purple-900:#2e1a73;--purple-500:#8257e5;--purple-300:#bba7ff;--blue-900:#1b3c8e;--blue-500:#3d8bff;--blue-300:#a8c9ff;--green-900:#027a43;--green-500:#04d361;--green-300:#a3f3c4;--red-900:#8b1e34;--red-500:#e83f5b;--red-300:#ffa3b1;--yellow-900:#ff8c42;--yellow-500:#f7b500;--yellow-300:#ffe9a3;--gray-900:#0e0e10;--gray-700:#2d2d33;--gray-500:#7a7a85;--gray-300:#c7c7d1;--gray-100:#f2f2f5;--black:#000;--white:#fff;--primary-strong-color:var(--purple-900);--primary-default-color:var(--purple-500);--primary-neutral-color:var(--purple-300);--secondary-strong-color:var(--blue-900);--secondary-default-color:var(--blue-500);--secondary-neutral-color:var(--blue-300);--success-strong-color:var(--green-900);--success-default-color:var(--green-500);--success-neutral-color:var(--green-300);--danger-strong-color:var(--red-900);--danger-default-color:var(--red-500);--danger-neutral-color:var(--red-300);--warning-strong-color:var(--yellow-900);--warning-default-color:var(--yellow-500);--warning-neutral-color:var(--yellow-300);--info-strong-color:var(--blue-900);--info-default-color:var(--blue-500);--info-neutral-color:var(--blue-300);--background-color:var(--gray-100);--text-color:var(--gray-900)}[data-theme=combination1]{--primary-strong-color:var(--purple-900);--primary-default-color:var(--purple-500);--primary-neutral-color:var(--purple-300);--secondary-strong-color:var(--blue-900);--secondary-default-color:var(--blue-500);--secondary-neutral-color:var(--blue-300);--success-strong-color:var(--green-900);--success-default-color:var(--green-500);--success-neutral-color:var(--green-300);--danger-strong-color:var(--red-900);--danger-default-color:var(--red-500);--danger-neutral-color:var(--red-300);--warning-strong-color:var(--yellow-900);--warning-default-color:var(--yellow-500);--warning-neutral-color:var(--yellow-300);--info-strong-color:var(--blue-900);--info-default-color:var(--blue-500);--info-neutral-color:var(--blue-300);--background-color:var(--gray-100);--text-color:var(--gray-900)}[data-theme=combination2]{--primary-strong-color:var(--green-900);--primary-default-color:var(--green-500);--primary-neutral-color:var(--green-300);--secondary-strong-color:var(--purple-900);--secondary-default-color:var(--purple-500);--secondary-neutral-color:var(--purple-300);--success-strong-color:var(--green-900);--success-default-color:var(--green-500);--success-neutral-color:var(--green-300);--danger-strong-color:var(--red-900);--danger-default-color:var(--red-500);--danger-neutral-color:var(--red-300);--warning-strong-color:var(--yellow-900);--warning-default-color:var(--yellow-500);--warning-neutral-color:var(--yellow-300);--info-strong-color:var(--green-900);--info-default-color:var(--green-500);--info-neutral-color:var(--green-300);--background-color:var(--gray-900);--text-color:var(--gray-100)}[data-theme=combination3]{--primary-strong-color:var(--yellow-900);--primary-default-color:var(--yellow-500);--primary-neutral-color:var(--yellow-300);--secondary-strong-color:var(--purple-900);--secondary-default-color:var(--purple-500);--secondary-neutral-color:var(--purple-300);--success-strong-color:var(--green-900);--success-default-color:var(--green-500);--success-neutral-color:var(--green-300);--danger-strong-color:var(--red-900);--danger-default-color:var(--red-500);--danger-neutral-color:var(--red-300);--warning-strong-color:var(--yellow-900);--warning-default-color:var(--yellow-500);--warning-neutral-color:var(--yellow-300);--info-strong-color:var(--yellow-900);--info-default-color:var(--yellow-500);--info-neutral-color:var(--yellow-300);--background-color:var(--gray-100);--text-color:var(--gray-900)}@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;--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-bold:700;--radius-lg:.5rem;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.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-2{margin-inline:calc(var(--spacing)*2)!important}.\!mx-5{margin-inline:calc(var(--spacing)*5)!important}.\!my-1{margin-block:calc(var(--spacing)*1)!important}.\!my-2{margin-block:calc(var(--spacing)*2)!important}.\!my-3{margin-block:calc(var(--spacing)*3)!important}.\!my-4{margin-block:calc(var(--spacing)*4)!important}.mt-1{margin-top:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.flex{display:flex}.hidden{display:none}.h-auto{height:auto}.w-6{width:calc(var(--spacing)*6)}.w-full{width:100%}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.pb-24{padding-bottom:calc(var(--spacing)*24)}.\!text-xl{font-size:var(--text-xl)!important;line-height:var(--tw-leading,var(--text-xl--line-height))!important}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\!font-bold{--tw-font-weight:var(--font-weight-bold)!important;font-weight:var(--font-weight-bold)!important}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-\[var\(--primary-default-color\)\]{color:var(--primary-default-color)}.shadow{--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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@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-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-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
package/dist/index.d.ts CHANGED
@@ -3,7 +3,20 @@ import { JSX } from 'react/jsx-runtime';
3
3
 
4
4
  export declare type ButtonType = 'button' | 'submit' | 'reset';
5
5
 
6
- declare type Color = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info';
6
+ declare type Color = 'base' | 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info';
7
+
8
+ export declare type DropdownOption = {
9
+ id?: string;
10
+ label: string;
11
+ value: string;
12
+ imageSrc?: string;
13
+ imageAlt?: string;
14
+ disabled?: boolean;
15
+ };
16
+
17
+ export declare type DropdownSelectionType = 'single' | 'multi';
18
+
19
+ export declare type DropdownValue = string | string[];
7
20
 
8
21
  export declare const DynamicIconImports: Record<string, () => Promise<IconLibrary>>;
9
22
 
@@ -36,6 +49,61 @@ declare const HansButtonSchema: {
36
49
  readonly disabled: "boolean";
37
50
  };
38
51
 
52
+ export declare const HansDropdown: default_2.MemoExoticComponent<(props: HansDropdownProps) => JSX.Element>;
53
+
54
+ export declare type HansDropdownProps = InferPropsFromSchema<typeof HansDropdownSchema> & Omit<default_2.InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'size' | 'type'> & {
55
+ onChange?: (value: DropdownValue) => void;
56
+ onSearch?: (query: string) => void;
57
+ onInputChange?: default_2.ChangeEventHandler<HTMLInputElement>;
58
+ };
59
+
60
+ export declare const HansDropdownPropsList: ("label" | "customClasses" | "disabled" | "value" | "defaultValue" | "labelColor" | "placeholder" | "inputId" | "inputColor" | "inputSize" | "message" | "messageColor" | "options" | "selectionType" | "enableAutocomplete" | "noOptionsText" | "dropdownBackgroundColor" | "dropdownHoverColor")[];
61
+
62
+ declare const HansDropdownSchema: {
63
+ readonly label: "string";
64
+ readonly labelColor: {
65
+ readonly type: "custom";
66
+ readonly ref: Color;
67
+ };
68
+ readonly placeholder: "string";
69
+ readonly inputId: "string";
70
+ readonly inputColor: {
71
+ readonly type: "custom";
72
+ readonly ref: Color;
73
+ };
74
+ readonly inputSize: {
75
+ readonly type: "custom";
76
+ readonly ref: Size;
77
+ };
78
+ readonly message: "string";
79
+ readonly messageColor: {
80
+ readonly type: "custom";
81
+ readonly ref: Color;
82
+ };
83
+ readonly customClasses: "string";
84
+ readonly disabled: "boolean";
85
+ readonly options: {
86
+ readonly type: "custom";
87
+ readonly ref: DropdownOption[];
88
+ };
89
+ readonly selectionType: {
90
+ readonly type: "custom";
91
+ readonly ref: DropdownSelectionType;
92
+ };
93
+ readonly enableAutocomplete: "boolean";
94
+ readonly value: {
95
+ readonly type: "custom";
96
+ readonly ref: DropdownValue;
97
+ };
98
+ readonly defaultValue: {
99
+ readonly type: "custom";
100
+ readonly ref: DropdownValue;
101
+ };
102
+ readonly noOptionsText: "string";
103
+ readonly dropdownBackgroundColor: "string";
104
+ readonly dropdownHoverColor: "string";
105
+ };
106
+
39
107
  export declare const HansIcon: default_2.FC<HansIconProps>;
40
108
 
41
109
  export declare type HansIconProps = InferPropsFromSchema<typeof HansIconSchema>;
@@ -57,7 +125,10 @@ declare type HansInputProps = InferPropsFromSchema<typeof HansInputSchema> & def
57
125
 
58
126
  declare const HansInputSchema: {
59
127
  readonly label: "string";
60
- readonly labelColor: "string";
128
+ readonly labelColor: {
129
+ readonly type: "custom";
130
+ readonly ref: Color;
131
+ };
61
132
  readonly placeholder: "string";
62
133
  readonly value: "string";
63
134
  readonly inputId: "string";
@@ -74,9 +145,14 @@ declare const HansInputSchema: {
74
145
  readonly ref: InputType;
75
146
  };
76
147
  readonly message: "string";
77
- readonly messageColor: "string";
148
+ readonly messageColor: {
149
+ readonly type: "custom";
150
+ readonly ref: Color;
151
+ };
78
152
  readonly customClasses: "string";
79
153
  readonly disabled: "boolean";
154
+ readonly leftIcon: "node";
155
+ readonly rightIcon: "node";
80
156
  };
81
157
 
82
158
  export declare type IconLibrary = Record<string, default_2.ComponentType<default_2.SVGProps<SVGSVGElement>>>;
package/dist/index.es.js CHANGED
@@ -1,5 +1,5 @@
1
- import d from "react";
2
- var h = { exports: {} }, p = {};
1
+ import a from "react";
2
+ var F = { exports: {} }, v = {};
3
3
  /**
4
4
  * @license React
5
5
  * react-jsx-runtime.production.js
@@ -9,133 +9,161 @@ var h = { exports: {} }, p = {};
9
9
  * This source code is licensed under the MIT license found in the
10
10
  * LICENSE file in the root directory of this source tree.
11
11
  */
12
- var b;
13
- function v() {
14
- if (b) return p;
15
- b = 1;
16
- var o = Symbol.for("react.transitional.element"), n = Symbol.for("react.fragment");
17
- function i(u, t, s) {
18
- var r = null;
19
- if (s !== void 0 && (r = "" + s), t.key !== void 0 && (r = "" + t.key), "key" in t) {
20
- s = {};
21
- for (var e in t)
22
- e !== "key" && (s[e] = t[e]);
23
- } else s = t;
24
- return t = s.ref, {
25
- $$typeof: o,
26
- type: u,
27
- key: r,
28
- ref: t !== void 0 ? t : null,
29
- props: s
12
+ var U;
13
+ function se() {
14
+ if (U) return v;
15
+ U = 1;
16
+ var t = Symbol.for("react.transitional.element"), i = Symbol.for("react.fragment");
17
+ function h(f, s, o) {
18
+ var l = null;
19
+ if (o !== void 0 && (l = "" + o), s.key !== void 0 && (l = "" + s.key), "key" in s) {
20
+ o = {};
21
+ for (var u in s)
22
+ u !== "key" && (o[u] = s[u]);
23
+ } else o = s;
24
+ return s = o.ref, {
25
+ $$typeof: t,
26
+ type: f,
27
+ key: l,
28
+ ref: s !== void 0 ? s : null,
29
+ props: o
30
30
  };
31
31
  }
32
- return p.Fragment = n, p.jsx = i, p.jsxs = i, p;
32
+ return v.Fragment = i, v.jsx = h, v.jsxs = h, v;
33
33
  }
34
- var x;
35
- function C() {
36
- return x || (x = 1, h.exports = v()), h.exports;
34
+ var Y;
35
+ function oe() {
36
+ return Y || (Y = 1, F.exports = se()), F.exports;
37
37
  }
38
- var a = C();
39
- const $ = d.memo((o) => {
38
+ var n = oe();
39
+ const re = a.memo((t) => {
40
40
  const {
41
- label: n = "",
42
- buttonId: i = "hans-button",
43
- buttonSize: u = "medium",
44
- buttonColor: t = "primary",
45
- buttonVariant: s = "default",
46
- buttonType: r = "button",
47
- customClasses: e = "",
48
- disabled: m = !1,
49
- children: c,
50
- ...l
51
- } = o;
52
- return /* @__PURE__ */ a.jsx(
41
+ label: i = "",
42
+ buttonId: h = "hans-button",
43
+ buttonSize: f = "medium",
44
+ buttonColor: s = "primary",
45
+ buttonVariant: o = "default",
46
+ buttonType: l = "button",
47
+ customClasses: u = "",
48
+ disabled: g = !1,
49
+ children: b,
50
+ ...p
51
+ } = t;
52
+ return /* @__PURE__ */ n.jsx(
53
53
  "button",
54
54
  {
55
- id: i,
56
- type: r,
57
- disabled: m,
55
+ id: h,
56
+ type: l,
57
+ disabled: g,
58
58
  className: `
59
59
  hans-button
60
- hans-button-${u}
61
- hans-button-${t}
60
+ hans-button-${f}
62
61
  hans-button-${s}
63
- ${e}
62
+ hans-button-${o}
63
+ ${u}
64
64
  `,
65
- ...l,
66
- children: /* @__PURE__ */ a.jsx("slot", { children: c ?? (n && /* @__PURE__ */ a.jsx("span", { children: n })) })
65
+ ...p,
66
+ children: /* @__PURE__ */ n.jsx("slot", { children: b ?? (i && /* @__PURE__ */ n.jsx("span", { children: i })) })
67
67
  }
68
68
  );
69
69
  });
70
- $.displayName = "HansButton";
71
- const H = d.memo((o) => {
70
+ re.displayName = "HansButton";
71
+ const G = a.memo((t) => {
72
72
  const {
73
- label: n = "",
74
- labelColor: i = "primary",
75
- placeholder: u = "",
76
- value: t = "",
77
- inputId: s = "hans-input",
78
- inputColor: r = "primary",
79
- inputSize: e = "medium",
80
- inputType: m = "text",
81
- message: c = "",
82
- messageColor: l = "success",
83
- customClasses: y = "",
84
- disabled: R = !1,
85
- children: j,
86
- ...I
87
- } = o;
88
- return /* @__PURE__ */ a.jsxs("div", { className: "hans-input-div", children: [
89
- j,
90
- /* @__PURE__ */ a.jsx(
73
+ label: i = "",
74
+ labelColor: h = "base",
75
+ placeholder: f = "",
76
+ value: s,
77
+ inputId: o = "hans-input",
78
+ inputColor: l = "base",
79
+ inputSize: u = "medium",
80
+ inputType: g = "text",
81
+ message: b = "",
82
+ messageColor: p = "base",
83
+ customClasses: x = "",
84
+ disabled: T = !1,
85
+ leftIcon: c,
86
+ rightIcon: d,
87
+ children: I,
88
+ ...A
89
+ } = t, O = typeof s > "u" ? {} : { value: s };
90
+ return /* @__PURE__ */ n.jsxs("div", { className: "hans-input-div", children: [
91
+ I,
92
+ i ? /* @__PURE__ */ n.jsx(
91
93
  "label",
92
94
  {
93
- htmlFor: s,
94
- className: `
95
- hans-input-label
96
- hans-input-label-${i}
97
- `,
98
- children: n
99
- }
100
- ),
101
- /* @__PURE__ */ a.jsx(
102
- "input",
103
- {
104
- id: s,
105
- type: m,
106
- disabled: R,
107
- value: t,
108
- placeholder: u,
95
+ htmlFor: o,
109
96
  className: `
110
- hans-input
111
- hans-input-${e}
112
- hans-input-${r}
113
- ${y}
114
- `,
115
- ...I
97
+ hans-input-label
98
+ hans-input-label-${h}
99
+ `,
100
+ children: i
116
101
  }
117
- ),
118
- /* @__PURE__ */ a.jsx(
102
+ ) : null,
103
+ /* @__PURE__ */ n.jsxs("div", { className: "hans-input-field", children: [
104
+ c ? /* @__PURE__ */ n.jsx(
105
+ "span",
106
+ {
107
+ className: `
108
+ hans-input-icon
109
+ hans-input-icon-left
110
+ hans-input-icon-${l}
111
+ `,
112
+ children: c
113
+ }
114
+ ) : null,
115
+ /* @__PURE__ */ n.jsx(
116
+ "input",
117
+ {
118
+ id: o,
119
+ type: g,
120
+ disabled: T,
121
+ placeholder: f,
122
+ className: `
123
+ hans-input
124
+ hans-input-${u}
125
+ hans-input-${l}
126
+ ${c ? "hans-input-has-left-icon" : ""}
127
+ ${d ? "hans-input-has-right-icon" : ""}
128
+ ${x}
129
+ `,
130
+ ...O,
131
+ ...A
132
+ }
133
+ ),
134
+ d ? /* @__PURE__ */ n.jsx(
135
+ "span",
136
+ {
137
+ className: `
138
+ hans-input-icon
139
+ hans-input-icon-right
140
+ hans-input-icon-${l}
141
+ `,
142
+ children: d
143
+ }
144
+ ) : null
145
+ ] }),
146
+ b ? /* @__PURE__ */ n.jsx(
119
147
  "p",
120
148
  {
121
149
  className: `
122
- hans-input-message
123
- hans-input-message-${l}
124
- `,
125
- children: c
150
+ hans-input-message
151
+ hans-input-message-${p}
152
+ `,
153
+ children: b
126
154
  }
127
- )
155
+ ) : null
128
156
  ] });
129
157
  });
130
- H.displayName = "HansInput";
131
- function f(o) {
132
- return Object.keys(o);
158
+ G.displayName = "HansInput";
159
+ function P(t) {
160
+ return Object.keys(t);
133
161
  }
134
- const E = {
162
+ const ae = {
135
163
  name: "string",
136
164
  iconSize: { type: "custom", ref: {} },
137
165
  customClasses: "string"
138
- }, P = f(E), N = {
166
+ }, me = P(ae), ie = {
139
167
  Fa: () => import("./index-CuLnU-aI.js"),
140
168
  Md: () => import("./index-D5QBazti.js"),
141
169
  Bi: () => import("./index-Cru_aeJC.js"),
@@ -147,40 +175,228 @@ const E = {
147
175
  Pi: () => import("./index-CraOMhSg.js"),
148
176
  Tb: () => import("./index-C_w14lJB.js"),
149
177
  Lu: () => import("./index-HCQwBvMc.js")
150
- }, S = d.memo(
151
- (o) => {
152
- const { name: n, iconSize: i = "medium", customClasses: u = "", ...t } = o, [s, r] = d.useState(null);
153
- return d.useEffect(() => {
154
- let e = !0;
155
- if (!n) return;
156
- const m = n.slice(0, 2), c = N[m];
157
- if (c)
178
+ }, M = a.memo(
179
+ (t) => {
180
+ const { name: i, iconSize: h = "medium", customClasses: f = "", ...s } = t, [o, l] = a.useState(null);
181
+ return a.useEffect(() => {
182
+ let u = !0;
183
+ if (!i) return;
184
+ const g = i.slice(0, 2), b = ie[g];
185
+ if (b)
158
186
  return (async () => {
159
187
  try {
160
- const l = await c();
161
- if (!e) return;
162
- r(() => l[n] || null);
163
- } catch (l) {
164
- console.warn(`[HansUI] Error loading icon ${n}:`, l), e && r(() => null);
188
+ const p = await b();
189
+ if (!u) return;
190
+ l(() => p[i] || null);
191
+ } catch (p) {
192
+ console.warn(`[HansUI] Error loading icon ${i}:`, p), u && l(() => null);
165
193
  }
166
194
  })(), () => {
167
- e = !1;
195
+ u = !1;
168
196
  };
169
- }, [n]), s ? /* @__PURE__ */ a.jsx(
170
- s,
197
+ }, [i]), o ? /* @__PURE__ */ n.jsx(
198
+ o,
171
199
  {
172
200
  className: `
173
201
  hans-icon
174
- hans-icon-${i}
175
- ${u}
202
+ hans-icon-${h}
203
+ ${f}
176
204
  `,
177
- ...t
205
+ ...s
178
206
  }
179
- ) : /* @__PURE__ */ a.jsx("span", { className: "hans-icon-loading" });
207
+ ) : /* @__PURE__ */ n.jsx("span", { className: "hans-icon-loading" });
180
208
  }
181
209
  );
182
- S.displayName = "HansIcon";
183
- const T = {
210
+ M.displayName = "HansIcon";
211
+ const le = (t) => Array.isArray(t) ? t : typeof t == "string" && t.length > 0 ? [t] : [], E = (t) => t.id ?? t.value, ue = a.memo((t) => {
212
+ const {
213
+ label: i = "",
214
+ labelColor: h = "base",
215
+ placeholder: f = "Select an option",
216
+ inputId: s = "hans-dropdown",
217
+ inputColor: o = "base",
218
+ inputSize: l = "medium",
219
+ message: u = "",
220
+ messageColor: g = "base",
221
+ customClasses: b = "",
222
+ disabled: p = !1,
223
+ options: x = [],
224
+ selectionType: T = "single",
225
+ enableAutocomplete: c = !0,
226
+ value: d,
227
+ defaultValue: I,
228
+ noOptionsText: A = "No options",
229
+ dropdownBackgroundColor: O = "var(--white)",
230
+ dropdownHoverColor: Q = "var(--gray-100)",
231
+ onChange: S,
232
+ onSearch: _,
233
+ onInputChange: q,
234
+ ...W
235
+ } = t, y = T === "multi", [C, N] = a.useState(!1), [X, J] = a.useState(
236
+ "down"
237
+ ), [R, $] = a.useState(""), [Z, k] = a.useState(() => typeof d < "u" ? d : typeof I < "u" ? I : y ? [] : ""), j = a.useRef(null), B = a.useRef(null);
238
+ a.useEffect(() => {
239
+ typeof d < "u" && k(d);
240
+ }, [d]);
241
+ const w = le(
242
+ typeof d < "u" ? d : Z
243
+ ), H = a.useMemo(
244
+ () => x.filter(
245
+ (e) => w.includes(E(e))
246
+ ),
247
+ [x, w]
248
+ ), D = y ? H.map((e) => e.label).join(", ") : H[0]?.label ?? "";
249
+ a.useEffect(() => {
250
+ !c || y || $(D);
251
+ }, [c, y, D]), a.useEffect(() => {
252
+ const e = (r) => {
253
+ const m = r.target;
254
+ !j.current || !m || j.current.contains(m) || N(!1);
255
+ };
256
+ return document.addEventListener("mousedown", e), () => {
257
+ document.removeEventListener("mousedown", e);
258
+ };
259
+ }, []);
260
+ const L = a.useMemo(() => {
261
+ if (!c || R.trim().length === 0) return x;
262
+ const e = R.toLowerCase();
263
+ return x.filter(
264
+ (r) => r.label.toLowerCase().includes(e)
265
+ );
266
+ }, [c, x, R]);
267
+ a.useEffect(() => {
268
+ if (!C) return;
269
+ const e = requestAnimationFrame(() => {
270
+ if (!j.current || !B.current) return;
271
+ const r = j.current.getBoundingClientRect(), m = B.current.getBoundingClientRect(), V = window.innerHeight - r.bottom, te = r.top;
272
+ V < m.height && te > m.height ? J("up") : J("down");
273
+ });
274
+ return () => cancelAnimationFrame(e);
275
+ }, [C, L.length]);
276
+ const K = (e) => {
277
+ if (!c) return;
278
+ const r = e.target.value;
279
+ $(r), C || N(!0), _ && _(r), q && q(e);
280
+ }, ee = (e) => {
281
+ if (e.disabled || p) return;
282
+ const r = E(e);
283
+ if (y) {
284
+ const m = w.includes(r) ? w.filter((V) => V !== r) : [...w, r];
285
+ typeof d > "u" && k(m), S && S(m), c && $("");
286
+ return;
287
+ }
288
+ typeof d > "u" && k(r), S && S(r), c && $(e.label), N(!1);
289
+ }, z = () => {
290
+ p || N(!0);
291
+ }, ne = c ? R : D;
292
+ return /* @__PURE__ */ n.jsxs("div", { className: "hans-dropdown", ref: j, children: [
293
+ i ? /* @__PURE__ */ n.jsx(
294
+ "label",
295
+ {
296
+ htmlFor: s,
297
+ className: `
298
+ hans-input-label
299
+ hans-input-label-${h}
300
+ `,
301
+ children: i
302
+ }
303
+ ) : null,
304
+ /* @__PURE__ */ n.jsxs("div", { className: "hans-dropdown-field", onMouseDown: z, children: [
305
+ /* @__PURE__ */ n.jsx(
306
+ G,
307
+ {
308
+ label: "",
309
+ message: "",
310
+ inputId: s,
311
+ inputColor: o,
312
+ inputSize: l,
313
+ placeholder: f,
314
+ customClasses: `hans-dropdown-input ${b}`,
315
+ disabled: p,
316
+ value: ne,
317
+ onChange: K,
318
+ onFocus: z,
319
+ onClick: z,
320
+ readOnly: !c,
321
+ leftIcon: c ? /* @__PURE__ */ n.jsx(M, { name: "FaSearch", iconSize: "small" }) : void 0,
322
+ rightIcon: /* @__PURE__ */ n.jsx(
323
+ M,
324
+ {
325
+ name: C ? "MdArrowDropUp" : "MdArrowDropDown",
326
+ iconSize: "small"
327
+ }
328
+ ),
329
+ ...W
330
+ }
331
+ ),
332
+ C && !p ? /* @__PURE__ */ n.jsx(
333
+ "ul",
334
+ {
335
+ ref: B,
336
+ className: "hans-dropdown-list",
337
+ role: "listbox",
338
+ "aria-multiselectable": y,
339
+ "data-direction": X,
340
+ style: {
341
+ "--hans-dropdown-bg": O,
342
+ "--hans-dropdown-hover": Q
343
+ },
344
+ children: L.length === 0 ? /* @__PURE__ */ n.jsx("li", { className: "hans-dropdown-empty", children: A }) : L.map((e) => {
345
+ const r = E(e), m = w.includes(r);
346
+ return /* @__PURE__ */ n.jsxs(
347
+ "li",
348
+ {
349
+ role: "option",
350
+ "aria-selected": m,
351
+ className: `
352
+ hans-dropdown-option
353
+ ${m ? "hans-dropdown-option-selected" : ""}
354
+ ${e.disabled ? "hans-dropdown-option-disabled" : ""}
355
+ `,
356
+ onClick: () => ee(e),
357
+ children: [
358
+ e.imageSrc ? /* @__PURE__ */ n.jsx(
359
+ "img",
360
+ {
361
+ className: "hans-dropdown-option-image",
362
+ src: e.imageSrc,
363
+ alt: e.imageAlt ?? e.label
364
+ }
365
+ ) : null,
366
+ /* @__PURE__ */ n.jsx("span", { className: "hans-dropdown-option-label", children: e.label })
367
+ ]
368
+ },
369
+ r
370
+ );
371
+ })
372
+ }
373
+ ) : null
374
+ ] }),
375
+ y && H.length > 0 ? /* @__PURE__ */ n.jsx("div", { className: "hans-dropdown-selected", children: H.map((e) => /* @__PURE__ */ n.jsx(
376
+ "span",
377
+ {
378
+ className: `
379
+ hans-dropdown-chip
380
+ hans-dropdown-chip-${o}
381
+ `,
382
+ children: e.label
383
+ },
384
+ E(e)
385
+ )) }) : null,
386
+ u ? /* @__PURE__ */ n.jsx(
387
+ "p",
388
+ {
389
+ className: `
390
+ hans-input-message
391
+ hans-input-message-${g}
392
+ `,
393
+ children: u
394
+ }
395
+ ) : null
396
+ ] });
397
+ });
398
+ ue.displayName = "HansDropdown";
399
+ const ce = {
184
400
  label: "string",
185
401
  buttonId: "string",
186
402
  buttonSize: { type: "custom", ref: {} },
@@ -189,12 +405,33 @@ const T = {
189
405
  buttonType: { type: "custom", ref: {} },
190
406
  customClasses: "string",
191
407
  disabled: "boolean"
192
- }, _ = f(T);
408
+ }, he = P(ce), de = {
409
+ label: "string",
410
+ labelColor: { type: "custom", ref: {} },
411
+ placeholder: "string",
412
+ inputId: "string",
413
+ inputColor: { type: "custom", ref: {} },
414
+ inputSize: { type: "custom", ref: {} },
415
+ message: "string",
416
+ messageColor: { type: "custom", ref: {} },
417
+ customClasses: "string",
418
+ disabled: "boolean",
419
+ options: { type: "custom", ref: {} },
420
+ selectionType: { type: "custom", ref: {} },
421
+ enableAutocomplete: "boolean",
422
+ value: { type: "custom", ref: {} },
423
+ defaultValue: { type: "custom", ref: {} },
424
+ noOptionsText: "string",
425
+ dropdownBackgroundColor: "string",
426
+ dropdownHoverColor: "string"
427
+ }, fe = P(de);
193
428
  export {
194
- N as DynamicIconImports,
195
- $ as HansButton,
196
- _ as HansButtonPropsList,
197
- S as HansIcon,
198
- P as HansIconPropsList,
199
- H as HansInput
429
+ ie as DynamicIconImports,
430
+ re as HansButton,
431
+ he as HansButtonPropsList,
432
+ ue as HansDropdown,
433
+ fe as HansDropdownPropsList,
434
+ M as HansIcon,
435
+ me as HansIconPropsList,
436
+ G as HansInput
200
437
  };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "hans-ui-design-lib",
3
3
  "description": "UI Design System Base Lib",
4
4
  "author": "Victor Hanszman",
5
- "version": "0.0.69",
5
+ "version": "0.0.70",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
8
  "main": "dist/index.cjs.js",