rharuow-ds 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const te=require("react"),Z=require("react-hook-form");function ue(r){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const a in r)if(a!=="default"){const n=Object.getOwnPropertyDescriptor(r,a);Object.defineProperty(s,a,n.get?n:{enumerable:!0,get:()=>r[a]})}}return s.default=r,Object.freeze(s)}const Q=ue(te);var C={exports:{}},k={};/**
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ne=require("react"),U=require("react-hook-form");function ce(t){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const a in t)if(a!=="default"){const o=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(i,a,o.get?o:{enumerable:!0,get:()=>t[a]})}}return i.default=t,Object.freeze(i)}const N=ce(ne);var J={exports:{}},q={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.js
4
4
  *
@@ -6,7 +6,7 @@
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 K;function ce(){if(K)return k;K=1;var r=Symbol.for("react.transitional.element"),s=Symbol.for("react.fragment");function a(n,u,c){var m=null;if(c!==void 0&&(m=""+c),u.key!==void 0&&(m=""+u.key),"key"in u){c={};for(var R in u)R!=="key"&&(c[R]=u[R])}else c=u;return u=c.ref,{$$typeof:r,type:n,key:m,ref:u!==void 0?u:null,props:c}}return k.Fragment=s,k.jsx=a,k.jsxs=a,k}var O={};/**
9
+ */var ee;function ue(){if(ee)return q;ee=1;var t=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function a(o,u,m){var E=null;if(m!==void 0&&(E=""+m),u.key!==void 0&&(E=""+u.key),"key"in u){m={};for(var _ in u)_!=="key"&&(m[_]=u[_])}else m=u;return u=m.ref,{$$typeof:t,type:o,key:E,ref:u!==void 0?u:null,props:m}}return q.Fragment=i,q.jsx=a,q.jsxs=a,q}var B={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.development.js
12
12
  *
@@ -14,9 +14,9 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var ee;function le(){return ee||(ee=1,process.env.NODE_ENV!=="production"&&function(){function r(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===p?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case T:return"Fragment";case D:return"Profiler";case I:return"StrictMode";case w:return"Suspense";case A:return"SuspenseList";case N:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case f:return"Portal";case S:return(e.displayName||"Context")+".Provider";case $:return(e._context.displayName||"Context")+".Consumer";case M:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case P:return t=e.displayName||null,t!==null?t:r(e.type)||"Memo";case d:t=e._payload,e=e._init;try{return r(e(t))}catch{}}return null}function s(e){return""+e}function a(e){try{s(e);var t=!1}catch{t=!0}if(t){t=console;var o=t.error,l=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return o.call(t,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",l),s(e)}}function n(e){if(e===T)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===d)return"<...>";try{var t=r(e);return t?"<"+t+">":"<...>"}catch{return"<...>"}}function u(){var e=W.A;return e===null?null:e.getOwner()}function c(){return Error("react-stack-top-frame")}function m(e){if(J.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function R(e,t){function o(){V||(V=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}o.isReactWarning=!0,Object.defineProperty(e,"key",{get:o,configurable:!0})}function Y(){var e=r(this.type);return G[e]||(G[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function F(e,t,o,l,E,b,U,q){return o=b.ref,e={$$typeof:y,type:e,key:t,props:b,_owner:E},(o!==void 0?o:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:Y}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:U}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:q}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function x(e,t,o,l,E,b,U,q){var i=t.children;if(i!==void 0)if(l)if(oe(i)){for(l=0;l<i.length;l++)v(i[l]);Object.freeze&&Object.freeze(i)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else v(i);if(J.call(t,"key")){i=r(e);var h=Object.keys(t).filter(function(se){return se!=="key"});l=0<h.length?"{key: someKey, "+h.join(": ..., ")+": ...}":"{key: someKey}",H[i+l]||(h=0<h.length?"{"+h.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var te;function de(){return te||(te=1,process.env.NODE_ENV!=="production"&&function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===k?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case s:return"Fragment";case D:return"Profiler";case C:return"StrictMode";case F:return"Suspense";case I:return"SuspenseList";case P:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case x:return"Portal";case S:return(e.displayName||"Context")+".Provider";case f:return(e._context.displayName||"Context")+".Consumer";case $:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Y:return r=e.displayName||null,r!==null?r:t(e.type)||"Memo";case h:r=e._payload,e=e._init;try{return t(e(r))}catch{}}return null}function i(e){return""+e}function a(e){try{i(e);var r=!1}catch{r=!0}if(r){r=console;var b=r.error,g=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return b.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",g),i(e)}}function o(e){if(e===s)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===h)return"<...>";try{var r=t(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function u(){var e=A.A;return e===null?null:e.getOwner()}function m(){return Error("react-stack-top-frame")}function E(e){if(d.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function _(e,r){function b(){L||(L=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",r))}b.isReactWarning=!0,Object.defineProperty(e,"key",{get:b,configurable:!0})}function c(){var e=t(this.type);return z[e]||(z[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function W(e,r,b,g,M,O,G,H){return b=O.ref,e={$$typeof:j,type:e,key:r,props:O,_owner:M},(b!==void 0?b:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:c}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:G}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:H}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function T(e,r,b,g,M,O,G,H){var p=r.children;if(p!==void 0)if(g)if(n(p)){for(g=0;g<p.length;g++)v(p[g]);Object.freeze&&Object.freeze(p)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else v(p);if(d.call(r,"key")){p=t(e);var V=Object.keys(r).filter(function(ie){return ie!=="key"});g=0<V.length?"{key: someKey, "+V.join(": ..., ")+": ...}":"{key: someKey}",K[p+g]||(V=0<V.length?"{"+V.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
18
  let props = %s;
19
19
  <%s {...props} />
20
20
  React keys must be passed directly to JSX without using spread:
21
21
  let props = %s;
22
- <%s key={someKey} {...props} />`,l,i,h,i),H[i+l]=!0)}if(i=null,o!==void 0&&(a(o),i=""+o),m(t)&&(a(t.key),i=""+t.key),"key"in t){o={};for(var z in t)z!=="key"&&(o[z]=t[z])}else o=t;return i&&R(o,typeof e=="function"?e.displayName||e.name||"Unknown":e),F(e,i,b,E,u(),o,U,q)}function v(e){typeof e=="object"&&e!==null&&e.$$typeof===y&&e._store&&(e._store.validated=1)}var g=te,y=Symbol.for("react.transitional.element"),f=Symbol.for("react.portal"),T=Symbol.for("react.fragment"),I=Symbol.for("react.strict_mode"),D=Symbol.for("react.profiler"),$=Symbol.for("react.consumer"),S=Symbol.for("react.context"),M=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),A=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),N=Symbol.for("react.activity"),p=Symbol.for("react.client.reference"),W=g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,J=Object.prototype.hasOwnProperty,oe=Array.isArray,L=console.createTask?console.createTask:function(){return null};g={"react-stack-bottom-frame":function(e){return e()}};var V,G={},B=g["react-stack-bottom-frame"].bind(g,c)(),X=L(n(c)),H={};O.Fragment=T,O.jsx=function(e,t,o,l,E){var b=1e4>W.recentlyCreatedOwnerStacks++;return x(e,t,o,!1,l,E,b?Error("react-stack-top-frame"):B,b?L(n(e)):X)},O.jsxs=function(e,t,o,l,E){var b=1e4>W.recentlyCreatedOwnerStacks++;return x(e,t,o,!0,l,E,b?Error("react-stack-top-frame"):B,b?L(n(e)):X)}}()),O}var re;function ie(){return re||(re=1,process.env.NODE_ENV==="production"?C.exports=ce():C.exports=le()),C.exports}var _=ie();function ne(r){var s,a,n="";if(typeof r=="string"||typeof r=="number")n+=r;else if(typeof r=="object")if(Array.isArray(r)){var u=r.length;for(s=0;s<u;s++)r[s]&&(a=ne(r[s]))&&(n&&(n+=" "),n+=a)}else for(a in r)r[a]&&(n&&(n+=" "),n+=a);return n}function fe(){for(var r,s,a=0,n="",u=arguments.length;a<u;a++)(r=arguments[a])&&(s=ne(r))&&(n&&(n+=" "),n+=s);return n}function j(...r){return fe(...r)}const de=({children:r,variant:s="default",className:a="",...n})=>{const u="px-4 py-2 rounded font-medium transition",c={default:"bg-[var(--primary,#2563eb)] text-[var(--primary-text,#fff)] hover:bg-[var(--primary-hover,#1d4ed8)]",outline:"border border-[var(--primary,#2563eb)] text-[var(--primary,#2563eb)] bg-white hover:bg-[var(--primary-hover,#e0e7ff)]",secondary:"bg-[var(--secondary,#fbbf24)] text-[var(--secondary-text,#222)] hover:bg-[var(--secondary-hover,#f59e42)]"};return _.jsx("button",{className:j(u,c[s],a),...n,children:r})},ae=Q.forwardRef(({name:r,className:s,type:a="text",label:n,onFocus:u,onBlur:c,Icon:m,iconClassName:R,iconAction:Y,containerClassName:F,...x},v)=>{var w,A,P;const[g,y]=Q.useState(!1),f=Z.useFormContext(),T=f==null?void 0:f.control,I=f==null?void 0:f.register,D=T&&r?Z.useWatch({control:T,name:r}):void 0,$=x.value??D??"",S=(P=(A=(w=f==null?void 0:f.formState)==null?void 0:w.errors)==null?void 0:A[r])==null?void 0:P.message,M=g||!!$;return _.jsxs("div",{className:j("relative",F),children:[_.jsx("input",{id:x.id||r,type:a,className:j("peer flex h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 pt-6 pb-2 text-sm placeholder-transparent transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50",s),onFocus:d=>{y(!0),u&&u(d)},...f&&r?(()=>{const d=I(r),N=d.onBlur;return{...d,ref:p=>{typeof v=="function"?v(p):v&&(v.current=p),d.ref&&d.ref(p)},onBlur:p=>{y(!1),c&&c(p),N&&N(p)}}})():{ref:v,onBlur:d=>{y(!1),c&&c(d)}},...x}),n&&_.jsx("label",{htmlFor:x.id||r,className:j("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",M?"top-0 scale-90 -translate-y-1 text-xs text-blue-400 p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5"),children:n}),m&&_.jsx("div",{className:j("absolute top-1/2 right-3 -translate-y-1/2 text-white",R),onClick:Y,children:_.jsx(m,{})}),S&&_.jsx("span",{className:"text-red-500 text-xs mt-1 block",children:S})]})});ae.displayName="Input";exports.Button=de;exports.Input=ae;
22
+ <%s key={someKey} {...props} />`,g,p,V,p),K[p+g]=!0)}if(p=null,b!==void 0&&(a(b),p=""+b),E(r)&&(a(r.key),p=""+r.key),"key"in r){b={};for(var X in r)X!=="key"&&(b[X]=r[X])}else b=r;return p&&_(b,typeof e=="function"?e.displayName||e.name||"Unknown":e),W(e,p,O,M,u(),b,G,H)}function v(e){typeof e=="object"&&e!==null&&e.$$typeof===j&&e._store&&(e._store.validated=1)}var R=ne,j=Symbol.for("react.transitional.element"),x=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),C=Symbol.for("react.strict_mode"),D=Symbol.for("react.profiler"),f=Symbol.for("react.consumer"),S=Symbol.for("react.context"),$=Symbol.for("react.forward_ref"),F=Symbol.for("react.suspense"),I=Symbol.for("react.suspense_list"),Y=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),P=Symbol.for("react.activity"),k=Symbol.for("react.client.reference"),A=R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,d=Object.prototype.hasOwnProperty,n=Array.isArray,w=console.createTask?console.createTask:function(){return null};R={"react-stack-bottom-frame":function(e){return e()}};var L,z={},Z=R["react-stack-bottom-frame"].bind(R,m)(),Q=w(o(m)),K={};B.Fragment=s,B.jsx=function(e,r,b,g,M){var O=1e4>A.recentlyCreatedOwnerStacks++;return T(e,r,b,!1,g,M,O?Error("react-stack-top-frame"):Z,O?w(o(e)):Q)},B.jsxs=function(e,r,b,g,M){var O=1e4>A.recentlyCreatedOwnerStacks++;return T(e,r,b,!0,g,M,O?Error("react-stack-top-frame"):Z,O?w(o(e)):Q)}}()),B}var re;function fe(){return re||(re=1,process.env.NODE_ENV==="production"?J.exports=ue():J.exports=de()),J.exports}var l=fe();function ae(t){var i,a,o="";if(typeof t=="string"||typeof t=="number")o+=t;else if(typeof t=="object")if(Array.isArray(t)){var u=t.length;for(i=0;i<u;i++)t[i]&&(a=ae(t[i]))&&(o&&(o+=" "),o+=a)}else for(a in t)t[a]&&(o&&(o+=" "),o+=a);return o}function be(){for(var t,i,a=0,o="",u=arguments.length;a<u;a++)(t=arguments[a])&&(i=ae(t))&&(o&&(o+=" "),o+=i);return o}function y(...t){return be(...t)}const me=({children:t,variant:i="default",className:a="",...o})=>{const u="px-4 py-2 rounded font-medium transition",m={default:"bg-[var(--primary,#2563eb)] text-[var(--primary-text,#fff)] hover:bg-[var(--primary-hover,#1d4ed8)]",outline:"border border-[var(--primary,#2563eb)] text-[var(--primary,#2563eb)] bg-white hover:bg-[var(--primary-hover,#e0e7ff)]",secondary:"bg-[var(--secondary,#fbbf24)] text-[var(--secondary-text,#222)] hover:bg-[var(--secondary-hover,#f59e42)]"};return l.jsx("button",{className:y(u,m[i],a),...o,children:t})},oe=N.forwardRef(({name:t,className:i,type:a="text",label:o,onFocus:u,onBlur:m,Icon:E,iconClassName:_,iconAction:c,containerClassName:W,...T},v)=>{var F,I,Y;const[R,j]=N.useState(!1),x=U.useFormContext(),s=x==null?void 0:x.control,C=x==null?void 0:x.register,D=s&&t?U.useWatch({control:s,name:t}):void 0,f=T.value??D??"",S=(Y=(I=(F=x==null?void 0:x.formState)==null?void 0:F.errors)==null?void 0:I[t])==null?void 0:Y.message,$=R||!!f;return l.jsxs("div",{className:y("relative",W),children:[l.jsx("input",{id:T.id||t,type:a,className:y("peer flex h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 pt-6 pb-2 text-sm placeholder-transparent transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50",i),onFocus:h=>{j(!0),u&&u(h)},...x&&t?(()=>{const h=C(t),P=h.onBlur;return{...h,ref:k=>{typeof v=="function"?v(k):v&&(v.current=k),h.ref&&h.ref(k)},onBlur:k=>{j(!1),m&&m(k),P&&P(k)}}})():{ref:v,onBlur:h=>{j(!1),m&&m(h)}},...T}),o&&l.jsx("label",{htmlFor:T.id||t,className:y("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",$?"top-0 scale-90 -translate-y-1 text-xs text-blue-400 p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5"),children:o}),E&&l.jsx("div",{className:y("absolute top-1/2 right-3 -translate-y-1/2 text-white",_),onClick:c,children:l.jsx(E,{})}),S&&l.jsx("span",{className:"text-red-500 text-xs mt-1 block",children:S})]})});oe.displayName="Input";const se=N.forwardRef(({name:t,label:i,options:a,className:o,containerClassName:u,isClearable:m,onFocus:E,onBlur:_,...c},W)=>{var h,P,k,A;const[T,v]=N.useState(!1),[R,j]=N.useState(!1),x=N.useRef(null),s=U.useFormContext(),C=s==null?void 0:s.control,D=C&&t?U.useWatch({control:C,name:t}):void 0,f=c.value??D??"",S=(k=(P=(h=s==null?void 0:s.formState)==null?void 0:h.errors)==null?void 0:P[t])==null?void 0:k.message,$=T||!!f;N.useEffect(()=>{const d=n=>{x.current&&!x.current.contains(n.target)&&(j(!1),v(!1))};return document.addEventListener("mousedown",d),()=>{document.removeEventListener("mousedown",d)}},[]);const F=()=>{j(d=>!d),v(!0)},I=d=>{v(!0),E&&E(d)},Y=d=>{_&&_(d)};return l.jsxs("div",{className:y("relative",u),ref:x,children:[l.jsxs("div",{id:c.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":R,className:y("peer flex items-center h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 py-3 text-sm transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 appearance-none cursor-pointer relative",o),onClick:F,onFocus:I,onBlur:Y,ref:W,children:[l.jsx("span",{className:y("block truncate",!f&&"text-gray-400"),children:(A=a.find(d=>d.value===f))==null?void 0:A.label}),m&&f&&l.jsx("button",{type:"button",tabIndex:-1,"aria-label":"Limpar seleção",className:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-red-500 bg-transparent p-1 rounded-full focus:outline-none",onClick:d=>{if(d.stopPropagation(),s&&t&&s.setValue(t,""),c.onChange){const n={target:{value:""}};c.onChange(n)}j(!1),v(!1)},children:"✕"})]}),i&&l.jsx("label",{htmlFor:c.id||t,className:y("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",$?"top-0 scale-90 -translate-y-1 text-xs text-blue-400 p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5"),children:i}),l.jsx("div",{className:y("absolute left-0 w-full mt-1 rounded-md shadow-lg bg-white z-20 transition-all duration-200 overflow-hidden",R?"border border-[var(--primary,#2563eb)] max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:R?"9.5rem":"0",overflowY:a.length>3?"auto":"hidden"},children:a.map(d=>l.jsx("div",{className:y("px-3 py-2 cursor-pointer hover:bg-blue-50 text-sm",f===d.value&&"bg-blue-100"),onMouseDown:()=>{if(s&&t&&s.setValue(t,d.value),c.onChange){const n={target:{value:d.value}};c.onChange(n)}v(!0)},children:d.label},d.value))}),S&&l.jsx("span",{className:"text-red-500 text-xs mt-1 block",children:S})]})});se.displayName="Select";const le=N.forwardRef(({name:t,label:i,options:a,className:o,containerClassName:u,isClearable:m,onFocus:E,onBlur:_,...c},W)=>{var k,A,d;const[T,v]=N.useState(!1),[R,j]=N.useState(!1),x=N.useRef(null),s=U.useFormContext(),C=s==null?void 0:s.control,D=C&&t?U.useWatch({control:C,name:t}):void 0,f=c.value??D??[],S=(d=(A=(k=s==null?void 0:s.formState)==null?void 0:k.errors)==null?void 0:A[t])==null?void 0:d.message,$=T||f&&f.length>0;N.useEffect(()=>{const n=w=>{x.current&&!x.current.contains(w.target)&&(j(!1),v(!1))};return document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}},[]);const F=()=>{j(n=>!n),v(!0)},I=n=>{v(!0),E&&E(n)},Y=n=>{_&&_(n)},h=n=>{var L;let w;f.includes(n)?w=f.filter(z=>z!==n):w=[...f,n],s&&t&&s.setValue(t,w),c.onChange&&((L=c.onChange)==null||L.call(c,{target:{value:w}})),v(!0)},P=n=>{var w;n.stopPropagation(),s&&t&&s.setValue(t,[]),c.onChange&&((w=c.onChange)==null||w.call(c,{target:{value:[]}})),j(!1),v(!1)};return l.jsxs("div",{className:y("relative",u),ref:x,children:[l.jsxs("div",{id:c.id||t,tabIndex:0,role:"button","aria-haspopup":"listbox","aria-expanded":R,className:y("peer flex items-center h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 py-3 text-sm transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 appearance-none cursor-pointer relative",o),onClick:F,onFocus:I,onBlur:Y,ref:W,children:[l.jsx("div",{className:"flex flex-nowrap gap-1 items-center min-h-[1.5rem] w-full overflow-x-auto",style:{scrollbarWidth:"none"},children:f&&f.length>0?a.filter(n=>f.includes(n.value)).map(n=>l.jsxs("span",{className:"flex items-center border border-blue-200 bg-blue-50 text-blue-700 rounded-2xl px-3 py-1 text-xs shadow-sm mr-1 gap-2",style:{maxWidth:"140px"},children:[l.jsx("span",{className:"truncate",title:n.label,children:n.label}),l.jsx("button",{type:"button",className:"ml-1 text-blue-400 hover:text-red-500 focus:outline-none w-4 h-4 flex items-center justify-center rounded-full transition-colors duration-150","aria-label":`Remover ${n.label}`,tabIndex:-1,onClick:w=>{w.stopPropagation();const L=f.filter(z=>z!==n.value);s&&t&&s.setValue(t,L),c.onChange&&c.onChange({target:{value:L}})},children:l.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:l.jsx("path",{d:"M3 3L9 9M9 3L3 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]},n.value)):l.jsx("span",{className:"text-gray-400 text-sm",children:"Selecione..."})}),m&&f&&f.length>0&&l.jsx("button",{type:"button",tabIndex:-1,"aria-label":"Limpar seleção",className:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-red-500 bg-transparent p-1 rounded-full focus:outline-none",onClick:P,children:"✕"})]}),i&&l.jsx("label",{htmlFor:c.id||t,className:y("absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",$?"top-0 scale-90 -translate-y-1 text-xs text-blue-400 p-1 rounded-full bg-white":"top-3 scale-100 translate-y-0.5"),children:i}),l.jsx("div",{className:y("absolute left-0 w-full mt-1 rounded-md shadow-lg bg-white z-20 transition-all duration-200 overflow-hidden",R?"border border-[var(--primary,#2563eb)] max-h-36 opacity-100 scale-100":"max-h-0 opacity-0 scale-95 pointer-events-none"),style:{maxHeight:R?"9.5rem":"0",overflowY:a.length>3?"auto":"hidden"},children:a.map(n=>l.jsxs("div",{className:y("px-3 py-2 cursor-pointer hover:bg-blue-50 text-sm flex items-center gap-2",f.includes(n.value)&&"bg-blue-100 font-semibold"),onMouseDown:()=>h(n.value),children:[l.jsx("input",{type:"checkbox",checked:f.includes(n.value),readOnly:!0,className:"accent-blue-500"}),n.label]},n.value))}),S&&l.jsx("span",{className:"text-red-500 text-xs mt-1 block",children:S})]})});le.displayName="MultiSelect";exports.Button=me;exports.Input=oe;exports.MultiSelect=le;exports.Select=se;
@@ -1,7 +1,7 @@
1
- import * as Z from "react";
2
- import ae from "react";
3
- import { useFormContext as oe, useWatch as se } from "react-hook-form";
4
- var C = { exports: {} }, k = {};
1
+ import * as N from "react";
2
+ import se from "react";
3
+ import { useFormContext as H, useWatch as Z } from "react-hook-form";
4
+ var q = { exports: {} }, U = {};
5
5
  /**
6
6
  * @license React
7
7
  * react-jsx-runtime.production.js
@@ -11,29 +11,29 @@ var C = { exports: {} }, k = {};
11
11
  * This source code is licensed under the MIT license found in the
12
12
  * LICENSE file in the root directory of this source tree.
13
13
  */
14
- var Q;
15
- function ue() {
16
- if (Q) return k;
17
- Q = 1;
18
- var t = Symbol.for("react.transitional.element"), u = Symbol.for("react.fragment");
19
- function s(n, o, l) {
20
- var b = null;
21
- if (l !== void 0 && (b = "" + l), o.key !== void 0 && (b = "" + o.key), "key" in o) {
22
- l = {};
23
- for (var R in o)
24
- R !== "key" && (l[R] = o[R]);
25
- } else l = o;
26
- return o = l.ref, {
14
+ var te;
15
+ function le() {
16
+ if (te) return U;
17
+ te = 1;
18
+ var t = Symbol.for("react.transitional.element"), d = Symbol.for("react.fragment");
19
+ function l(s, c, m) {
20
+ var w = null;
21
+ if (m !== void 0 && (w = "" + m), c.key !== void 0 && (w = "" + c.key), "key" in c) {
22
+ m = {};
23
+ for (var _ in c)
24
+ _ !== "key" && (m[_] = c[_]);
25
+ } else m = c;
26
+ return c = m.ref, {
27
27
  $$typeof: t,
28
- type: n,
29
- key: b,
30
- ref: o !== void 0 ? o : null,
31
- props: l
28
+ type: s,
29
+ key: w,
30
+ ref: c !== void 0 ? c : null,
31
+ props: m
32
32
  };
33
33
  }
34
- return k.Fragment = u, k.jsx = s, k.jsxs = s, k;
34
+ return U.Fragment = d, U.jsx = l, U.jsxs = l, U;
35
35
  }
36
- var j = {};
36
+ var J = {};
37
37
  /**
38
38
  * @license React
39
39
  * react-jsx-runtime.development.js
@@ -43,44 +43,44 @@ var j = {};
43
43
  * This source code is licensed under the MIT license found in the
44
44
  * LICENSE file in the root directory of this source tree.
45
45
  */
46
- var K;
47
- function le() {
48
- return K || (K = 1, process.env.NODE_ENV !== "production" && function() {
46
+ var re;
47
+ function ie() {
48
+ return re || (re = 1, process.env.NODE_ENV !== "production" && function() {
49
49
  function t(e) {
50
50
  if (e == null) return null;
51
51
  if (typeof e == "function")
52
- return e.$$typeof === p ? null : e.displayName || e.name || null;
52
+ return e.$$typeof === k ? null : e.displayName || e.name || null;
53
53
  if (typeof e == "string") return e;
54
54
  switch (e) {
55
- case y:
55
+ case a:
56
56
  return "Fragment";
57
57
  case D:
58
58
  return "Profiler";
59
- case I:
59
+ case O:
60
60
  return "StrictMode";
61
- case A:
61
+ case F:
62
62
  return "Suspense";
63
- case S:
63
+ case Y:
64
64
  return "SuspenseList";
65
- case N:
65
+ case A:
66
66
  return "Activity";
67
67
  }
68
68
  if (typeof e == "object")
69
69
  switch (typeof e.tag == "number" && console.error(
70
70
  "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
71
71
  ), e.$$typeof) {
72
- case f:
72
+ case v:
73
73
  return "Portal";
74
- case w:
74
+ case S:
75
75
  return (e.displayName || "Context") + ".Provider";
76
- case W:
76
+ case f:
77
77
  return (e._context.displayName || "Context") + ".Consumer";
78
78
  case $:
79
79
  var r = e.render;
80
80
  return e = e.displayName, e || (e = r.displayName || r.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
81
- case P:
81
+ case I:
82
82
  return r = e.displayName || null, r !== null ? r : t(e.type) || "Memo";
83
- case d:
83
+ case h:
84
84
  r = e._payload, e = e._init;
85
85
  try {
86
86
  return t(e(r));
@@ -89,29 +89,29 @@ function le() {
89
89
  }
90
90
  return null;
91
91
  }
92
- function u(e) {
92
+ function d(e) {
93
93
  return "" + e;
94
94
  }
95
- function s(e) {
95
+ function l(e) {
96
96
  try {
97
- u(e);
97
+ d(e);
98
98
  var r = !1;
99
99
  } catch {
100
100
  r = !0;
101
101
  }
102
102
  if (r) {
103
103
  r = console;
104
- var a = r.error, c = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
105
- return a.call(
104
+ var b = r.error, g = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
105
+ return b.call(
106
106
  r,
107
107
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
108
- c
109
- ), u(e);
108
+ g
109
+ ), d(e);
110
110
  }
111
111
  }
112
- function n(e) {
113
- if (e === y) return "<>";
114
- if (typeof e == "object" && e !== null && e.$$typeof === d)
112
+ function s(e) {
113
+ if (e === a) return "<>";
114
+ if (typeof e == "object" && e !== null && e.$$typeof === h)
115
115
  return "<...>";
116
116
  try {
117
117
  var r = t(e);
@@ -120,48 +120,48 @@ function le() {
120
120
  return "<...>";
121
121
  }
122
122
  }
123
- function o() {
124
- var e = L.A;
123
+ function c() {
124
+ var e = P.A;
125
125
  return e === null ? null : e.getOwner();
126
126
  }
127
- function l() {
127
+ function m() {
128
128
  return Error("react-stack-top-frame");
129
129
  }
130
- function b(e) {
131
- if (q.call(e, "key")) {
130
+ function w(e) {
131
+ if (u.call(e, "key")) {
132
132
  var r = Object.getOwnPropertyDescriptor(e, "key").get;
133
133
  if (r && r.isReactWarning) return !1;
134
134
  }
135
135
  return e.key !== void 0;
136
136
  }
137
- function R(e, r) {
138
- function a() {
139
- V || (V = !0, console.error(
137
+ function _(e, r) {
138
+ function b() {
139
+ L || (L = !0, console.error(
140
140
  "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
141
141
  r
142
142
  ));
143
143
  }
144
- a.isReactWarning = !0, Object.defineProperty(e, "key", {
145
- get: a,
144
+ b.isReactWarning = !0, Object.defineProperty(e, "key", {
145
+ get: b,
146
146
  configurable: !0
147
147
  });
148
148
  }
149
- function Y() {
149
+ function i() {
150
150
  var e = t(this.type);
151
- return G[e] || (G[e] = !0, console.error(
151
+ return z[e] || (z[e] = !0, console.error(
152
152
  "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
153
153
  )), e = this.props.ref, e !== void 0 ? e : null;
154
154
  }
155
- function F(e, r, a, c, E, m, U, z) {
156
- return a = m.ref, e = {
157
- $$typeof: g,
155
+ function M(e, r, b, g, W, C, B, G) {
156
+ return b = C.ref, e = {
157
+ $$typeof: j,
158
158
  type: e,
159
159
  key: r,
160
- props: m,
161
- _owner: E
162
- }, (a !== void 0 ? a : null) !== null ? Object.defineProperty(e, "ref", {
160
+ props: C,
161
+ _owner: W
162
+ }, (b !== void 0 ? b : null) !== null ? Object.defineProperty(e, "ref", {
163
163
  enumerable: !1,
164
- get: Y
164
+ get: i
165
165
  }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
166
166
  configurable: !1,
167
167
  enumerable: !1,
@@ -176,216 +176,515 @@ function le() {
176
176
  configurable: !1,
177
177
  enumerable: !1,
178
178
  writable: !0,
179
- value: U
179
+ value: B
180
180
  }), Object.defineProperty(e, "_debugTask", {
181
181
  configurable: !1,
182
182
  enumerable: !1,
183
183
  writable: !0,
184
- value: z
184
+ value: G
185
185
  }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
186
186
  }
187
- function x(e, r, a, c, E, m, U, z) {
188
- var i = r.children;
189
- if (i !== void 0)
190
- if (c)
191
- if (te(i)) {
192
- for (c = 0; c < i.length; c++)
193
- v(i[c]);
194
- Object.freeze && Object.freeze(i);
187
+ function T(e, r, b, g, W, C, B, G) {
188
+ var p = r.children;
189
+ if (p !== void 0)
190
+ if (g)
191
+ if (n(p)) {
192
+ for (g = 0; g < p.length; g++)
193
+ x(p[g]);
194
+ Object.freeze && Object.freeze(p);
195
195
  } else
196
196
  console.error(
197
197
  "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
198
198
  );
199
- else v(i);
200
- if (q.call(r, "key")) {
201
- i = t(e);
202
- var h = Object.keys(r).filter(function(ne) {
203
- return ne !== "key";
199
+ else x(p);
200
+ if (u.call(r, "key")) {
201
+ p = t(e);
202
+ var V = Object.keys(r).filter(function(oe) {
203
+ return oe !== "key";
204
204
  });
205
- c = 0 < h.length ? "{key: someKey, " + h.join(": ..., ") + ": ...}" : "{key: someKey}", H[i + c] || (h = 0 < h.length ? "{" + h.join(": ..., ") + ": ...}" : "{}", console.error(
205
+ g = 0 < V.length ? "{key: someKey, " + V.join(": ..., ") + ": ...}" : "{key: someKey}", ee[p + g] || (V = 0 < V.length ? "{" + V.join(": ..., ") + ": ...}" : "{}", console.error(
206
206
  `A props object containing a "key" prop is being spread into JSX:
207
207
  let props = %s;
208
208
  <%s {...props} />
209
209
  React keys must be passed directly to JSX without using spread:
210
210
  let props = %s;
211
211
  <%s key={someKey} {...props} />`,
212
- c,
213
- i,
214
- h,
215
- i
216
- ), H[i + c] = !0);
212
+ g,
213
+ p,
214
+ V,
215
+ p
216
+ ), ee[p + g] = !0);
217
217
  }
218
- if (i = null, a !== void 0 && (s(a), i = "" + a), b(r) && (s(r.key), i = "" + r.key), "key" in r) {
219
- a = {};
220
- for (var J in r)
221
- J !== "key" && (a[J] = r[J]);
222
- } else a = r;
223
- return i && R(
224
- a,
218
+ if (p = null, b !== void 0 && (l(b), p = "" + b), w(r) && (l(r.key), p = "" + r.key), "key" in r) {
219
+ b = {};
220
+ for (var X in r)
221
+ X !== "key" && (b[X] = r[X]);
222
+ } else b = r;
223
+ return p && _(
224
+ b,
225
225
  typeof e == "function" ? e.displayName || e.name || "Unknown" : e
226
- ), F(
226
+ ), M(
227
227
  e,
228
- i,
229
- m,
230
- E,
231
- o(),
232
- a,
233
- U,
234
- z
228
+ p,
229
+ C,
230
+ W,
231
+ c(),
232
+ b,
233
+ B,
234
+ G
235
235
  );
236
236
  }
237
- function v(e) {
238
- typeof e == "object" && e !== null && e.$$typeof === g && e._store && (e._store.validated = 1);
237
+ function x(e) {
238
+ typeof e == "object" && e !== null && e.$$typeof === j && e._store && (e._store.validated = 1);
239
239
  }
240
- var T = ae, g = Symbol.for("react.transitional.element"), f = Symbol.for("react.portal"), y = Symbol.for("react.fragment"), I = Symbol.for("react.strict_mode"), D = Symbol.for("react.profiler"), W = Symbol.for("react.consumer"), w = Symbol.for("react.context"), $ = Symbol.for("react.forward_ref"), A = Symbol.for("react.suspense"), S = Symbol.for("react.suspense_list"), P = Symbol.for("react.memo"), d = Symbol.for("react.lazy"), N = Symbol.for("react.activity"), p = Symbol.for("react.client.reference"), L = T.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, q = Object.prototype.hasOwnProperty, te = Array.isArray, M = console.createTask ? console.createTask : function() {
240
+ var R = se, j = Symbol.for("react.transitional.element"), v = Symbol.for("react.portal"), a = Symbol.for("react.fragment"), O = Symbol.for("react.strict_mode"), D = Symbol.for("react.profiler"), f = Symbol.for("react.consumer"), S = Symbol.for("react.context"), $ = Symbol.for("react.forward_ref"), F = Symbol.for("react.suspense"), Y = Symbol.for("react.suspense_list"), I = Symbol.for("react.memo"), h = Symbol.for("react.lazy"), A = Symbol.for("react.activity"), k = Symbol.for("react.client.reference"), P = R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, u = Object.prototype.hasOwnProperty, n = Array.isArray, E = console.createTask ? console.createTask : function() {
241
241
  return null;
242
242
  };
243
- T = {
243
+ R = {
244
244
  "react-stack-bottom-frame": function(e) {
245
245
  return e();
246
246
  }
247
247
  };
248
- var V, G = {}, X = T["react-stack-bottom-frame"].bind(
249
- T,
250
- l
251
- )(), B = M(n(l)), H = {};
252
- j.Fragment = y, j.jsx = function(e, r, a, c, E) {
253
- var m = 1e4 > L.recentlyCreatedOwnerStacks++;
254
- return x(
248
+ var L, z = {}, Q = R["react-stack-bottom-frame"].bind(
249
+ R,
250
+ m
251
+ )(), K = E(s(m)), ee = {};
252
+ J.Fragment = a, J.jsx = function(e, r, b, g, W) {
253
+ var C = 1e4 > P.recentlyCreatedOwnerStacks++;
254
+ return T(
255
255
  e,
256
256
  r,
257
- a,
257
+ b,
258
258
  !1,
259
- c,
260
- E,
261
- m ? Error("react-stack-top-frame") : X,
262
- m ? M(n(e)) : B
259
+ g,
260
+ W,
261
+ C ? Error("react-stack-top-frame") : Q,
262
+ C ? E(s(e)) : K
263
263
  );
264
- }, j.jsxs = function(e, r, a, c, E) {
265
- var m = 1e4 > L.recentlyCreatedOwnerStacks++;
266
- return x(
264
+ }, J.jsxs = function(e, r, b, g, W) {
265
+ var C = 1e4 > P.recentlyCreatedOwnerStacks++;
266
+ return T(
267
267
  e,
268
268
  r,
269
- a,
269
+ b,
270
270
  !0,
271
- c,
272
- E,
273
- m ? Error("react-stack-top-frame") : X,
274
- m ? M(n(e)) : B
271
+ g,
272
+ W,
273
+ C ? Error("react-stack-top-frame") : Q,
274
+ C ? E(s(e)) : K
275
275
  );
276
276
  };
277
- }()), j;
277
+ }()), J;
278
278
  }
279
- var ee;
279
+ var ne;
280
280
  function ce() {
281
- return ee || (ee = 1, process.env.NODE_ENV === "production" ? C.exports = ue() : C.exports = le()), C.exports;
281
+ return ne || (ne = 1, process.env.NODE_ENV === "production" ? q.exports = le() : q.exports = ie()), q.exports;
282
282
  }
283
- var _ = ce();
284
- function re(t) {
285
- var u, s, n = "";
286
- if (typeof t == "string" || typeof t == "number") n += t;
283
+ var o = ce();
284
+ function ae(t) {
285
+ var d, l, s = "";
286
+ if (typeof t == "string" || typeof t == "number") s += t;
287
287
  else if (typeof t == "object") if (Array.isArray(t)) {
288
- var o = t.length;
289
- for (u = 0; u < o; u++) t[u] && (s = re(t[u])) && (n && (n += " "), n += s);
290
- } else for (s in t) t[s] && (n && (n += " "), n += s);
291
- return n;
288
+ var c = t.length;
289
+ for (d = 0; d < c; d++) t[d] && (l = ae(t[d])) && (s && (s += " "), s += l);
290
+ } else for (l in t) t[l] && (s && (s += " "), s += l);
291
+ return s;
292
292
  }
293
- function ie() {
294
- for (var t, u, s = 0, n = "", o = arguments.length; s < o; s++) (t = arguments[s]) && (u = re(t)) && (n && (n += " "), n += u);
295
- return n;
293
+ function ue() {
294
+ for (var t, d, l = 0, s = "", c = arguments.length; l < c; l++) (t = arguments[l]) && (d = ae(t)) && (s && (s += " "), s += d);
295
+ return s;
296
296
  }
297
- function O(...t) {
298
- return ie(...t);
297
+ function y(...t) {
298
+ return ue(...t);
299
299
  }
300
- const be = ({
300
+ const ve = ({
301
301
  children: t,
302
- variant: u = "default",
303
- className: s = "",
304
- ...n
302
+ variant: d = "default",
303
+ className: l = "",
304
+ ...s
305
305
  }) => {
306
- const o = "px-4 py-2 rounded font-medium transition", l = {
306
+ const c = "px-4 py-2 rounded font-medium transition", m = {
307
307
  default: "bg-[var(--primary,#2563eb)] text-[var(--primary-text,#fff)] hover:bg-[var(--primary-hover,#1d4ed8)]",
308
308
  outline: "border border-[var(--primary,#2563eb)] text-[var(--primary,#2563eb)] bg-white hover:bg-[var(--primary-hover,#e0e7ff)]",
309
309
  secondary: "bg-[var(--secondary,#fbbf24)] text-[var(--secondary-text,#222)] hover:bg-[var(--secondary-hover,#f59e42)]"
310
310
  };
311
- return /* @__PURE__ */ _.jsx("button", { className: O(o, l[u], s), ...n, children: t });
312
- }, fe = Z.forwardRef(
311
+ return /* @__PURE__ */ o.jsx("button", { className: y(c, m[d], l), ...s, children: t });
312
+ }, de = N.forwardRef(
313
313
  ({
314
314
  name: t,
315
- className: u,
316
- type: s = "text",
317
- label: n,
318
- onFocus: o,
319
- onBlur: l,
320
- Icon: b,
321
- iconClassName: R,
322
- iconAction: Y,
323
- containerClassName: F,
324
- ...x
325
- }, v) => {
326
- var A, S, P;
327
- const [T, g] = Z.useState(!1), f = oe(), y = f == null ? void 0 : f.control, I = f == null ? void 0 : f.register, D = y && t ? se({ control: y, name: t }) : void 0, W = x.value ?? D ?? "", w = (P = (S = (A = f == null ? void 0 : f.formState) == null ? void 0 : A.errors) == null ? void 0 : S[t]) == null ? void 0 : P.message, $ = T || !!W;
328
- return /* @__PURE__ */ _.jsxs("div", { className: O("relative", F), children: [
329
- /* @__PURE__ */ _.jsx(
315
+ className: d,
316
+ type: l = "text",
317
+ label: s,
318
+ onFocus: c,
319
+ onBlur: m,
320
+ Icon: w,
321
+ iconClassName: _,
322
+ iconAction: i,
323
+ containerClassName: M,
324
+ ...T
325
+ }, x) => {
326
+ var F, Y, I;
327
+ const [R, j] = N.useState(!1), v = H(), a = v == null ? void 0 : v.control, O = v == null ? void 0 : v.register, D = a && t ? Z({ control: a, name: t }) : void 0, f = T.value ?? D ?? "", S = (I = (Y = (F = v == null ? void 0 : v.formState) == null ? void 0 : F.errors) == null ? void 0 : Y[t]) == null ? void 0 : I.message, $ = R || !!f;
328
+ return /* @__PURE__ */ o.jsxs("div", { className: y("relative", M), children: [
329
+ /* @__PURE__ */ o.jsx(
330
330
  "input",
331
331
  {
332
- id: x.id || t,
333
- type: s,
334
- className: O(
332
+ id: T.id || t,
333
+ type: l,
334
+ className: y(
335
335
  "peer flex h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 pt-6 pb-2 text-sm placeholder-transparent transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50",
336
- u
336
+ d
337
337
  ),
338
- onFocus: (d) => {
339
- g(!0), o && o(d);
338
+ onFocus: (h) => {
339
+ j(!0), c && c(h);
340
340
  },
341
- ...f && t ? (() => {
342
- const d = I(t), N = d.onBlur;
341
+ ...v && t ? (() => {
342
+ const h = O(t), A = h.onBlur;
343
343
  return {
344
- ...d,
345
- ref: (p) => {
346
- typeof v == "function" ? v(p) : v && (v.current = p), d.ref && d.ref(p);
344
+ ...h,
345
+ ref: (k) => {
346
+ typeof x == "function" ? x(k) : x && (x.current = k), h.ref && h.ref(k);
347
347
  },
348
- onBlur: (p) => {
349
- g(!1), l && l(p), N && N(p);
348
+ onBlur: (k) => {
349
+ j(!1), m && m(k), A && A(k);
350
350
  }
351
351
  };
352
352
  })() : {
353
- ref: v,
354
- onBlur: (d) => {
355
- g(!1), l && l(d);
353
+ ref: x,
354
+ onBlur: (h) => {
355
+ j(!1), m && m(h);
356
356
  }
357
357
  },
358
- ...x
358
+ ...T
359
359
  }
360
360
  ),
361
- n && /* @__PURE__ */ _.jsx(
361
+ s && /* @__PURE__ */ o.jsx(
362
362
  "label",
363
363
  {
364
- htmlFor: x.id || t,
365
- className: O(
364
+ htmlFor: T.id || t,
365
+ className: y(
366
366
  "absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",
367
367
  $ ? "top-0 scale-90 -translate-y-1 text-xs text-blue-400 p-1 rounded-full bg-white" : "top-3 scale-100 translate-y-0.5"
368
368
  ),
369
- children: n
369
+ children: s
370
370
  }
371
371
  ),
372
- b && /* @__PURE__ */ _.jsx(
372
+ w && /* @__PURE__ */ o.jsx(
373
373
  "div",
374
374
  {
375
- className: O(
375
+ className: y(
376
376
  "absolute top-1/2 right-3 -translate-y-1/2 text-white",
377
- R
377
+ _
378
+ ),
379
+ onClick: i,
380
+ children: /* @__PURE__ */ o.jsx(w, {})
381
+ }
382
+ ),
383
+ S && /* @__PURE__ */ o.jsx("span", { className: "text-red-500 text-xs mt-1 block", children: S })
384
+ ] });
385
+ }
386
+ );
387
+ de.displayName = "Input";
388
+ const fe = N.forwardRef(
389
+ ({
390
+ name: t,
391
+ label: d,
392
+ options: l,
393
+ className: s,
394
+ containerClassName: c,
395
+ isClearable: m,
396
+ onFocus: w,
397
+ onBlur: _,
398
+ ...i
399
+ }, M) => {
400
+ var h, A, k, P;
401
+ const [T, x] = N.useState(!1), [R, j] = N.useState(!1), v = N.useRef(null), a = H(), O = a == null ? void 0 : a.control, D = O && t ? Z({ control: O, name: t }) : void 0, f = i.value ?? D ?? "", S = (k = (A = (h = a == null ? void 0 : a.formState) == null ? void 0 : h.errors) == null ? void 0 : A[t]) == null ? void 0 : k.message, $ = T || !!f;
402
+ N.useEffect(() => {
403
+ const u = (n) => {
404
+ v.current && !v.current.contains(n.target) && (j(!1), x(!1));
405
+ };
406
+ return document.addEventListener("mousedown", u), () => {
407
+ document.removeEventListener("mousedown", u);
408
+ };
409
+ }, []);
410
+ const F = () => {
411
+ j((u) => !u), x(!0);
412
+ }, Y = (u) => {
413
+ x(!0), w && w(u);
414
+ }, I = (u) => {
415
+ _ && _(u);
416
+ };
417
+ return /* @__PURE__ */ o.jsxs("div", { className: y("relative", c), ref: v, children: [
418
+ /* @__PURE__ */ o.jsxs(
419
+ "div",
420
+ {
421
+ id: i.id || t,
422
+ tabIndex: 0,
423
+ role: "button",
424
+ "aria-haspopup": "listbox",
425
+ "aria-expanded": R,
426
+ className: y(
427
+ "peer flex items-center h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 py-3 text-sm transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 appearance-none cursor-pointer relative",
428
+ s
429
+ ),
430
+ onClick: F,
431
+ onFocus: Y,
432
+ onBlur: I,
433
+ ref: M,
434
+ children: [
435
+ /* @__PURE__ */ o.jsx("span", { className: y("block truncate", !f && "text-gray-400"), children: (P = l.find((u) => u.value === f)) == null ? void 0 : P.label }),
436
+ m && f && /* @__PURE__ */ o.jsx(
437
+ "button",
438
+ {
439
+ type: "button",
440
+ tabIndex: -1,
441
+ "aria-label": "Limpar seleção",
442
+ className: "absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-red-500 bg-transparent p-1 rounded-full focus:outline-none",
443
+ onClick: (u) => {
444
+ if (u.stopPropagation(), a && t && a.setValue(t, ""), i.onChange) {
445
+ const n = {
446
+ target: { value: "" }
447
+ };
448
+ i.onChange(n);
449
+ }
450
+ j(!1), x(!1);
451
+ },
452
+ children: "✕"
453
+ }
454
+ )
455
+ ]
456
+ }
457
+ ),
458
+ d && /* @__PURE__ */ o.jsx(
459
+ "label",
460
+ {
461
+ htmlFor: i.id || t,
462
+ className: y(
463
+ "absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",
464
+ $ ? "top-0 scale-90 -translate-y-1 text-xs text-blue-400 p-1 rounded-full bg-white" : "top-3 scale-100 translate-y-0.5"
465
+ ),
466
+ children: d
467
+ }
468
+ ),
469
+ /* @__PURE__ */ o.jsx(
470
+ "div",
471
+ {
472
+ className: y(
473
+ "absolute left-0 w-full mt-1 rounded-md shadow-lg bg-white z-20 transition-all duration-200 overflow-hidden",
474
+ R ? "border border-[var(--primary,#2563eb)] max-h-36 opacity-100 scale-100" : "max-h-0 opacity-0 scale-95 pointer-events-none"
475
+ ),
476
+ style: {
477
+ maxHeight: R ? "9.5rem" : "0",
478
+ // 3 options * 2.5rem + padding
479
+ overflowY: l.length > 3 ? "auto" : "hidden"
480
+ },
481
+ children: l.map((u) => /* @__PURE__ */ o.jsx(
482
+ "div",
483
+ {
484
+ className: y(
485
+ "px-3 py-2 cursor-pointer hover:bg-blue-50 text-sm",
486
+ f === u.value && "bg-blue-100"
487
+ ),
488
+ onMouseDown: () => {
489
+ if (a && t && a.setValue(t, u.value), i.onChange) {
490
+ const n = {
491
+ target: { value: u.value }
492
+ };
493
+ i.onChange(n);
494
+ }
495
+ x(!0);
496
+ },
497
+ children: u.label
498
+ },
499
+ u.value
500
+ ))
501
+ }
502
+ ),
503
+ S && /* @__PURE__ */ o.jsx("span", { className: "text-red-500 text-xs mt-1 block", children: S })
504
+ ] });
505
+ }
506
+ );
507
+ fe.displayName = "Select";
508
+ const be = N.forwardRef(
509
+ ({
510
+ name: t,
511
+ label: d,
512
+ options: l,
513
+ className: s,
514
+ containerClassName: c,
515
+ isClearable: m,
516
+ onFocus: w,
517
+ onBlur: _,
518
+ ...i
519
+ }, M) => {
520
+ var k, P, u;
521
+ const [T, x] = N.useState(!1), [R, j] = N.useState(!1), v = N.useRef(null), a = H(), O = a == null ? void 0 : a.control, D = O && t ? Z({ control: O, name: t }) : void 0, f = i.value ?? D ?? [], S = (u = (P = (k = a == null ? void 0 : a.formState) == null ? void 0 : k.errors) == null ? void 0 : P[t]) == null ? void 0 : u.message, $ = T || f && f.length > 0;
522
+ N.useEffect(() => {
523
+ const n = (E) => {
524
+ v.current && !v.current.contains(E.target) && (j(!1), x(!1));
525
+ };
526
+ return document.addEventListener("mousedown", n), () => {
527
+ document.removeEventListener("mousedown", n);
528
+ };
529
+ }, []);
530
+ const F = () => {
531
+ j((n) => !n), x(!0);
532
+ }, Y = (n) => {
533
+ x(!0), w && w(n);
534
+ }, I = (n) => {
535
+ _ && _(n);
536
+ }, h = (n) => {
537
+ var L;
538
+ let E;
539
+ f.includes(n) ? E = f.filter((z) => z !== n) : E = [...f, n], a && t && a.setValue(t, E), i.onChange && ((L = i.onChange) == null || L.call(i, {
540
+ target: { value: E }
541
+ })), x(!0);
542
+ }, A = (n) => {
543
+ var E;
544
+ n.stopPropagation(), a && t && a.setValue(t, []), i.onChange && ((E = i.onChange) == null || E.call(i, {
545
+ target: { value: [] }
546
+ })), j(!1), x(!1);
547
+ };
548
+ return /* @__PURE__ */ o.jsxs("div", { className: y("relative", c), ref: v, children: [
549
+ /* @__PURE__ */ o.jsxs(
550
+ "div",
551
+ {
552
+ id: i.id || t,
553
+ tabIndex: 0,
554
+ role: "button",
555
+ "aria-haspopup": "listbox",
556
+ "aria-expanded": R,
557
+ className: y(
558
+ "peer flex items-center h-12 w-full border border-[var(--primary,#2563eb)] rounded-md bg-[var(--input-bg,#fff)] text-[var(--input-text,#222)] px-3 py-3 text-sm transition focus:outline-none focus:border-[var(--primary,#2563eb)] disabled:cursor-not-allowed disabled:opacity-50 appearance-none cursor-pointer relative",
559
+ s
560
+ ),
561
+ onClick: F,
562
+ onFocus: Y,
563
+ onBlur: I,
564
+ ref: M,
565
+ children: [
566
+ /* @__PURE__ */ o.jsx(
567
+ "div",
568
+ {
569
+ className: "flex flex-nowrap gap-1 items-center min-h-[1.5rem] w-full overflow-x-auto",
570
+ style: { scrollbarWidth: "none" },
571
+ children: f && f.length > 0 ? l.filter((n) => f.includes(n.value)).map((n) => /* @__PURE__ */ o.jsxs(
572
+ "span",
573
+ {
574
+ className: "flex items-center border border-blue-200 bg-blue-50 text-blue-700 rounded-2xl px-3 py-1 text-xs shadow-sm mr-1 gap-2",
575
+ style: { maxWidth: "140px" },
576
+ children: [
577
+ /* @__PURE__ */ o.jsx("span", { className: "truncate", title: n.label, children: n.label }),
578
+ /* @__PURE__ */ o.jsx(
579
+ "button",
580
+ {
581
+ type: "button",
582
+ className: "ml-1 text-blue-400 hover:text-red-500 focus:outline-none w-4 h-4 flex items-center justify-center rounded-full transition-colors duration-150",
583
+ "aria-label": `Remover ${n.label}`,
584
+ tabIndex: -1,
585
+ onClick: (E) => {
586
+ E.stopPropagation();
587
+ const L = f.filter((z) => z !== n.value);
588
+ a && t && a.setValue(t, L), i.onChange && i.onChange({
589
+ target: { value: L }
590
+ });
591
+ },
592
+ children: /* @__PURE__ */ o.jsx(
593
+ "svg",
594
+ {
595
+ width: "12",
596
+ height: "12",
597
+ viewBox: "0 0 12 12",
598
+ fill: "none",
599
+ xmlns: "http://www.w3.org/2000/svg",
600
+ children: /* @__PURE__ */ o.jsx(
601
+ "path",
602
+ {
603
+ d: "M3 3L9 9M9 3L3 9",
604
+ stroke: "currentColor",
605
+ strokeWidth: "1.5",
606
+ strokeLinecap: "round"
607
+ }
608
+ )
609
+ }
610
+ )
611
+ }
612
+ )
613
+ ]
614
+ },
615
+ n.value
616
+ )) : /* @__PURE__ */ o.jsx("span", { className: "text-gray-400 text-sm", children: "Selecione..." })
617
+ }
618
+ ),
619
+ m && f && f.length > 0 && /* @__PURE__ */ o.jsx(
620
+ "button",
621
+ {
622
+ type: "button",
623
+ tabIndex: -1,
624
+ "aria-label": "Limpar seleção",
625
+ className: "absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-red-500 bg-transparent p-1 rounded-full focus:outline-none",
626
+ onClick: A,
627
+ children: "✕"
628
+ }
629
+ )
630
+ ]
631
+ }
632
+ ),
633
+ d && /* @__PURE__ */ o.jsx(
634
+ "label",
635
+ {
636
+ htmlFor: i.id || t,
637
+ className: y(
638
+ "absolute left-3 z-10 origin-[0] cursor-text select-none text-sm text-gray-400 transition-all duration-200",
639
+ $ ? "top-0 scale-90 -translate-y-1 text-xs text-blue-400 p-1 rounded-full bg-white" : "top-3 scale-100 translate-y-0.5"
640
+ ),
641
+ children: d
642
+ }
643
+ ),
644
+ /* @__PURE__ */ o.jsx(
645
+ "div",
646
+ {
647
+ className: y(
648
+ "absolute left-0 w-full mt-1 rounded-md shadow-lg bg-white z-20 transition-all duration-200 overflow-hidden",
649
+ R ? "border border-[var(--primary,#2563eb)] max-h-36 opacity-100 scale-100" : "max-h-0 opacity-0 scale-95 pointer-events-none"
378
650
  ),
379
- onClick: Y,
380
- children: /* @__PURE__ */ _.jsx(b, {})
651
+ style: {
652
+ maxHeight: R ? "9.5rem" : "0",
653
+ overflowY: l.length > 3 ? "auto" : "hidden"
654
+ },
655
+ children: l.map((n) => /* @__PURE__ */ o.jsxs(
656
+ "div",
657
+ {
658
+ className: y(
659
+ "px-3 py-2 cursor-pointer hover:bg-blue-50 text-sm flex items-center gap-2",
660
+ f.includes(n.value) && "bg-blue-100 font-semibold"
661
+ ),
662
+ onMouseDown: () => h(n.value),
663
+ children: [
664
+ /* @__PURE__ */ o.jsx(
665
+ "input",
666
+ {
667
+ type: "checkbox",
668
+ checked: f.includes(n.value),
669
+ readOnly: !0,
670
+ className: "accent-blue-500"
671
+ }
672
+ ),
673
+ n.label
674
+ ]
675
+ },
676
+ n.value
677
+ ))
381
678
  }
382
679
  ),
383
- w && /* @__PURE__ */ _.jsx("span", { className: "text-red-500 text-xs mt-1 block", children: w })
680
+ S && /* @__PURE__ */ o.jsx("span", { className: "text-red-500 text-xs mt-1 block", children: S })
384
681
  ] });
385
682
  }
386
683
  );
387
- fe.displayName = "Input";
684
+ be.displayName = "MultiSelect";
388
685
  export {
389
- be as Button,
390
- fe as Input
686
+ ve as Button,
687
+ de as Input,
688
+ be as MultiSelect,
689
+ fe as Select
391
690
  };
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute}.relative{position:relative}.left-3{left:.75rem}.right-3{right:.75rem}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:.75rem}.z-10{z-index:10}.mt-1{margin-top:.25rem}.block{display:block}.flex{display:flex}.h-12{height:3rem}.w-full{width:100%}.origin-\[0\]{transform-origin:0}.-translate-y-1{--tw-translate-y:-0.25rem}.-translate-y-1,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-y-0\.5{--tw-translate-y:0.125rem}.scale-100,.translate-y-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-\[var\(--primary\2c \#2563eb\)\]{border-color:var(--primary,#2563eb)}.bg-\[var\(--input-bg\2c \#fff\)\]{background-color:var(--input-bg,#fff)}.bg-\[var\(--primary\2c \#2563eb\)\]{background-color:var(--primary,#2563eb)}.bg-\[var\(--secondary\2c \#fbbf24\)\]{background-color:var(--secondary,#fbbf24)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.p-1{padding:.25rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem}.pb-2,.py-2{padding-bottom:.5rem}.pt-6{padding-top:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.text-\[var\(--input-text\2c \#222\)\]{color:var(--input-text,#222)}.text-\[var\(--primary\2c \#2563eb\)\]{color:var(--primary,#2563eb)}.text-\[var\(--primary-text\2c \#fff\)\]{color:var(--primary-text,#fff)}.text-\[var\(--secondary-text\2c \#222\)\]{color:var(--secondary-text,#222)}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.placeholder-transparent::-moz-placeholder{color:transparent}.placeholder-transparent::placeholder{color:transparent}.outline{outline-style:solid}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.hover\:bg-\[var\(--primary-hover\2c \#1d4ed8\)\]:hover{background-color:var(--primary-hover,#1d4ed8)}.hover\:bg-\[var\(--primary-hover\2c \#e0e7ff\)\]:hover{background-color:var(--primary-hover,#e0e7ff)}.hover\:bg-\[var\(--secondary-hover\2c \#f59e42\)\]:hover{background-color:var(--secondary-hover,#f59e42)}.focus\:border-\[var\(--primary\2c \#2563eb\)\]:focus{border-color:var(--primary,#2563eb)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}
1
+ *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.left-3{left:.75rem}.right-2{right:.5rem}.right-3{right:.75rem}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:.75rem}.z-10{z-index:10}.z-20{z-index:20}.ml-1{margin-left:.25rem}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.block{display:block}.flex{display:flex}.hidden{display:none}.h-12{height:3rem}.h-4{height:1rem}.max-h-0{max-height:0}.max-h-36{max-height:9rem}.min-h-\[1\.5rem\]{min-height:1.5rem}.w-4{width:1rem}.w-full{width:100%}.origin-\[0\]{transform-origin:0}.-translate-y-1{--tw-translate-y:-0.25rem}.-translate-y-1,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-y-0\.5{--tw-translate-y:0.125rem}.scale-100,.translate-y-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.scale-90,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-\[var\(--primary\2c \#2563eb\)\]{border-color:var(--primary,#2563eb)}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.bg-\[var\(--input-bg\2c \#fff\)\]{background-color:var(--input-bg,#fff)}.bg-\[var\(--primary\2c \#2563eb\)\]{background-color:var(--primary,#2563eb)}.bg-\[var\(--secondary\2c \#fbbf24\)\]{background-color:var(--secondary,#fbbf24)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.p-1{padding:.25rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-2{padding-bottom:.5rem}.pt-6{padding-top:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-\[var\(--input-text\2c \#222\)\]{color:var(--input-text,#222)}.text-\[var\(--primary\2c \#2563eb\)\]{color:var(--primary,#2563eb)}.text-\[var\(--primary-text\2c \#fff\)\]{color:var(--primary-text,#fff)}.text-\[var\(--secondary-text\2c \#222\)\]{color:var(--secondary-text,#222)}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.placeholder-transparent::-moz-placeholder{color:transparent}.placeholder-transparent::placeholder{color:transparent}.accent-blue-500{accent-color:#3b82f6}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-colors{transition-duration:.15s}.duration-200{transition-duration:.2s}.hover\:bg-\[var\(--primary-hover\2c \#1d4ed8\)\]:hover{background-color:var(--primary-hover,#1d4ed8)}.hover\:bg-\[var\(--primary-hover\2c \#e0e7ff\)\]:hover{background-color:var(--primary-hover,#e0e7ff)}.hover\:bg-\[var\(--secondary-hover\2c \#f59e42\)\]:hover{background-color:var(--secondary-hover,#f59e42)}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.focus\:border-\[var\(--primary\2c \#2563eb\)\]:focus{border-color:var(--primary,#2563eb)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ export interface MultiSelectOption {
3
+ label: string;
4
+ value: string;
5
+ }
6
+ export interface MultiSelectProps extends React.SelectHTMLAttributes<HTMLDivElement> {
7
+ name: string;
8
+ label?: string;
9
+ options: MultiSelectOption[];
10
+ containerClassName?: string;
11
+ isClearable?: boolean;
12
+ }
13
+ declare const MultiSelect: React.ForwardRefExoticComponent<MultiSelectProps & React.RefAttributes<HTMLDivElement>>;
14
+ export { MultiSelect };
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ export interface SelectOption {
3
+ label: string;
4
+ value: string;
5
+ }
6
+ export interface SelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {
7
+ name: string;
8
+ label?: string;
9
+ options: SelectOption[];
10
+ containerClassName?: string;
11
+ isClearable?: boolean;
12
+ }
13
+ declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLSelectElement>>;
14
+ export { Select };
@@ -1,2 +1,4 @@
1
1
  export * from "./Button";
2
2
  export * from "./Input";
3
+ export * from "./Select";
4
+ export * from "./MultiSelect";
@@ -0,0 +1,32 @@
1
+ import { StoryFn } from "@storybook/react";
2
+ import { MultiSelectProps } from "../components/MultiSelect";
3
+ declare const _default: {
4
+ title: string;
5
+ component: import("react").ForwardRefExoticComponent<MultiSelectProps & import("react").RefAttributes<HTMLDivElement>>;
6
+ argTypes: {
7
+ isClearable: {
8
+ control: string;
9
+ description: string;
10
+ defaultValue: boolean;
11
+ };
12
+ label: {
13
+ control: string;
14
+ defaultValue: string;
15
+ };
16
+ options: {
17
+ control: string;
18
+ defaultValue: {
19
+ label: string;
20
+ value: string;
21
+ }[];
22
+ };
23
+ name: {
24
+ control: string;
25
+ defaultValue: string;
26
+ };
27
+ };
28
+ };
29
+ export default _default;
30
+ interface DefaultStoryProps extends MultiSelectProps {
31
+ }
32
+ export declare const Default: StoryFn<DefaultStoryProps>;
@@ -0,0 +1,17 @@
1
+ import { StoryFn } from "@storybook/react";
2
+ import { SelectProps } from "../components/Select";
3
+ declare const _default: {
4
+ title: string;
5
+ component: import("react").ForwardRefExoticComponent<SelectProps & import("react").RefAttributes<HTMLSelectElement>>;
6
+ argTypes: {
7
+ isClearable: {
8
+ control: string;
9
+ description: string;
10
+ defaultValue: boolean;
11
+ };
12
+ };
13
+ };
14
+ export default _default;
15
+ interface DefaultStoryProps extends SelectProps {
16
+ }
17
+ export declare const Default: StoryFn<DefaultStoryProps>;
package/package.json CHANGED
@@ -1,24 +1,29 @@
1
1
  {
2
2
  "name": "rharuow-ds",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "main": "dist/rharuow-ds.cjs.js",
5
5
  "module": "dist/rharuow-ds.es.js",
6
6
  "types": "dist/types/src/components/index.d.ts",
7
7
  "exports": {
8
8
  ".": {
9
+ "types": "./dist/types/src/components/index.d.ts",
9
10
  "import": "./dist/rharuow-ds.es.js",
10
- "require": "./dist/rharuow-ds.cjs.js",
11
- "types": "./dist/types/src/components/index.d.ts"
11
+ "require": "./dist/rharuow-ds.cjs.js"
12
12
  },
13
13
  "./dist/styles.css": "./dist/styles.css"
14
14
  },
15
15
  "scripts": {
16
16
  "test": "echo \"Error: no test specified\" && exit 1",
17
17
  "build:css": "npx tailwindcss -i ./src/styles/ds.css -o ./dist/styles.css --minify",
18
+ "build:css:watch": "npx tailwindcss -i ./src/styles/ds.css -o ./dist/styles.css --watch",
18
19
  "build": "vite build && tsc --emitDeclarationOnly --declaration --declarationDir dist/types && npm run build:css",
19
- "storybook": "storybook dev -p 6006",
20
+ "storybook": "npm run build:css && storybook dev -p 6006",
21
+ "storybook:dev": "npm run build:css && concurrently \"npm run build:css:watch\" \"storybook dev -p 6006\"",
20
22
  "deploy-storybook": "npx gh-pages -d storybook-static",
21
- "build-storybook": "storybook build"
23
+ "build-storybook": "npm run build:css && storybook build",
24
+ "release:patch": "npm version patch && git push --follow-tags",
25
+ "release:minor": "npm version minor && git push --follow-tags",
26
+ "release:major": "npm version major && git push --follow-tags"
22
27
  },
23
28
  "keywords": [],
24
29
  "author": "",
@@ -38,6 +43,7 @@
38
43
  "@types/react": "^19.1.8",
39
44
  "@types/react-dom": "^19.1.6",
40
45
  "@vitejs/plugin-react": "^4.6.0",
46
+ "concurrently": "^9.2.0",
41
47
  "gh-pages": "^6.3.0",
42
48
  "storybook": "^9.0.14",
43
49
  "tailwindcss": "^3.4.3",