@burnt-labs/ui 0.0.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/.eslintrc.js +3 -0
  2. package/.turbo/turbo-build.log +43 -0
  3. package/CHANGELOG.md +7 -0
  4. package/dist/button.d.ts +11 -0
  5. package/dist/button.mjs +2 -0
  6. package/dist/chunk-ADRZFEEP.mjs +5 -0
  7. package/dist/chunk-AIOFP622.mjs +6 -0
  8. package/dist/chunk-DYNA3PMW.mjs +3 -0
  9. package/dist/chunk-FCDGETWZ.mjs +6 -0
  10. package/dist/chunk-HJDNUBCI.mjs +6 -0
  11. package/dist/chunk-LVXPWHAD.mjs +5 -0
  12. package/dist/chunk-RPX3PE6L.mjs +5 -0
  13. package/dist/chunk-SVEY7E4F.mjs +8 -0
  14. package/dist/chunk-TT6MQYSV.mjs +5 -0
  15. package/dist/chunk-YONHDQHS.mjs +6 -0
  16. package/dist/icons/accountWalletLogo.d.ts +5 -0
  17. package/dist/icons/accountWalletLogo.mjs +2 -0
  18. package/dist/icons/chevronDown.d.ts +7 -0
  19. package/dist/icons/chevronDown.mjs +2 -0
  20. package/dist/icons/close.d.ts +7 -0
  21. package/dist/icons/close.mjs +3 -0
  22. package/dist/icons/spinner.d.ts +5 -0
  23. package/dist/icons/spinner.mjs +2 -0
  24. package/dist/index.css +1 -0
  25. package/dist/index.d.ts +10 -0
  26. package/dist/index.mjs +10 -0
  27. package/dist/input.d.ts +9 -0
  28. package/dist/input.mjs +2 -0
  29. package/dist/modal.d.ts +16 -0
  30. package/dist/modal.mjs +3 -0
  31. package/dist/pinInput.d.ts +11 -0
  32. package/dist/pinInput.mjs +2 -0
  33. package/lib/utils.ts +6 -0
  34. package/package.json +39 -0
  35. package/postcss.config.js +9 -0
  36. package/src/button.tsx +79 -0
  37. package/src/icons/accountWalletLogo.tsx +17 -0
  38. package/src/icons/chevronDown.tsx +19 -0
  39. package/src/icons/close.tsx +21 -0
  40. package/src/icons/spinner.tsx +30 -0
  41. package/src/index.tsx +12 -0
  42. package/src/input.tsx +26 -0
  43. package/src/modal.tsx +82 -0
  44. package/src/pinInput.tsx +103 -0
  45. package/src/styles.css +3 -0
  46. package/tailwind.config.ts +10 -0
  47. package/tsconfig.json +5 -0
  48. package/tsup.config.ts +13 -0
package/.eslintrc.js ADDED
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ extends: ["custom/react"],
3
+ };
@@ -0,0 +1,43 @@
1
+
2
+ > @burnt-labs/ui@0.0.1-alpha.0 build /Users/justin/IdeaProjects/xion.js/packages/ui
3
+ > tsup
4
+
5
+ CLI Building entry: src/button.tsx, src/index.tsx, src/input.tsx, src/modal.tsx, src/pinInput.tsx, src/icons/accountWalletLogo.tsx, src/icons/chevronDown.tsx, src/icons/close.tsx, src/icons/spinner.tsx
6
+ CLI Using tsconfig: tsconfig.json
7
+ CLI tsup v6.7.0
8
+ CLI Using tsup config: /Users/justin/IdeaProjects/xion.js/packages/ui/tsup.config.ts
9
+ CLI Target: es6
10
+ CLI Cleaning output folder
11
+ ESM Build start
12
+ DTS Build start
13
+ ESM dist/index.css 10.33 KB
14
+ ESM dist/chunk-RPX3PE6L.mjs 508.00 B
15
+ ESM dist/chunk-FCDGETWZ.mjs 1.71 KB
16
+ ESM dist/index.mjs 552.00 B
17
+ ESM dist/chunk-YONHDQHS.mjs 569.00 B
18
+ ESM dist/modal.mjs 167.00 B
19
+ ESM dist/chunk-HJDNUBCI.mjs 1.40 KB
20
+ ESM dist/pinInput.mjs 85.00 B
21
+ ESM dist/chunk-SVEY7E4F.mjs 1.30 KB
22
+ ESM dist/icons/accountWalletLogo.mjs 96.00 B
23
+ ESM dist/icons/chevronDown.mjs 90.00 B
24
+ ESM dist/chunk-ADRZFEEP.mjs 19.90 KB
25
+ ESM dist/chunk-AIOFP622.mjs 414.00 B
26
+ ESM dist/icons/close.mjs 120.00 B
27
+ ESM dist/chunk-TT6MQYSV.mjs 877.00 B
28
+ ESM dist/input.mjs 82.00 B
29
+ ESM dist/icons/spinner.mjs 86.00 B
30
+ ESM dist/chunk-LVXPWHAD.mjs 460.00 B
31
+ ESM dist/chunk-DYNA3PMW.mjs 628.00 B
32
+ ESM dist/button.mjs 83.00 B
33
+ ESM ⚡️ Build success in 475ms
34
+ DTS ⚡️ Build success in 937ms
35
+ DTS dist/index.d.ts 447.00 B
36
+ DTS dist/button.d.ts 349.00 B
37
+ DTS dist/input.d.ts 239.00 B
38
+ DTS dist/modal.d.ts 876.00 B
39
+ DTS dist/pinInput.d.ts 303.00 B
40
+ DTS dist/icons/accountWalletLogo.d.ts 158.00 B
41
+ DTS dist/icons/chevronDown.d.ts 191.00 B
42
+ DTS dist/icons/close.d.ts 196.00 B
43
+ DTS dist/icons/spinner.d.ts 138.00 B
package/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # @burnt-labs/ui
2
+
3
+ ## 0.0.1-alpha.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Initial Release
@@ -0,0 +1,11 @@
1
+ import React__default from 'react';
2
+
3
+ interface ButtonProps extends React__default.ButtonHTMLAttributes<HTMLButtonElement> {
4
+ fullWidth?: boolean;
5
+ structure?: "base" | "outlined" | "naked";
6
+ theme?: "primary" | "secondary" | "destructive";
7
+ disabled?: boolean;
8
+ }
9
+ declare const Button: React__default.FC<ButtonProps>;
10
+
11
+ export { Button };
@@ -0,0 +1,2 @@
1
+ export { a as Button } from './chunk-FCDGETWZ.mjs';
2
+ import './chunk-DYNA3PMW.mjs';
@@ -0,0 +1,5 @@
1
+ import { a } from './chunk-DYNA3PMW.mjs';
2
+
3
+ function Y(e){var r,o,t="";if(typeof e=="string"||typeof e=="number")t+=e;else if(typeof e=="object")if(Array.isArray(e))for(r=0;r<e.length;r++)e[r]&&(o=Y(e[r]))&&(t&&(t+=" "),t+=o);else for(r in e)e[r]&&(t&&(t+=" "),t+=r);return t}function D(){for(var e,r,o=0,t="";o<arguments.length;)(e=arguments[o++])&&(r=Y(e))&&(t&&(t+=" "),t+=r);return t}var B="-";function ae(e){let r=de(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=e;function l(s){let a=s.split(B);return a[0]===""&&a.length!==1&&a.shift(),te(a,r)||ce(s)}function n(s,a){let u=o[s]||[];return a&&t[s]?[...u,...t[s]]:u}return {getClassGroupId:l,getConflictingClassGroupIds:n}}function te(e,r){var s;if(e.length===0)return r.classGroupId;let o=e[0],t=r.nextPart.get(o),l=t?te(e.slice(1),t):void 0;if(l)return l;if(r.validators.length===0)return;let n=e.join(B);return (s=r.validators.find(({validator:a})=>a(n)))==null?void 0:s.classGroupId}var ee=/^\[(.+)\]$/;function ce(e){if(ee.test(e)){let r=ee.exec(e)[1],o=r==null?void 0:r.substring(0,r.indexOf(":"));if(o)return "arbitrary.."+o}}function de(e){let{theme:r,prefix:o}=e,t={nextPart:new Map,validators:[]};return pe(Object.entries(e.classGroups),o).forEach(([n,s])=>{$(s,t,n,r);}),t}function $(e,r,o,t){e.forEach(l=>{if(typeof l=="string"){let n=l===""?r:re(r,l);n.classGroupId=o;return}if(typeof l=="function"){if(ue(l)){$(l(t),r,o,t);return}r.validators.push({validator:l,classGroupId:o});return}Object.entries(l).forEach(([n,s])=>{$(s,re(r,n),o,t);});});}function re(e,r){let o=e;return r.split(B).forEach(t=>{o.nextPart.has(t)||o.nextPart.set(t,{nextPart:new Map,validators:[]}),o=o.nextPart.get(t);}),o}function ue(e){return e.isThemeGetter}function pe(e,r){return r?e.map(([o,t])=>{let l=t.map(n=>typeof n=="string"?r+n:typeof n=="object"?Object.fromEntries(Object.entries(n).map(([s,a])=>[r+s,a])):n);return [o,l]}):e}function fe(e){if(e<1)return {get:()=>{},set:()=>{}};let r=0,o=new Map,t=new Map;function l(n,s){o.set(n,s),r++,r>e&&(r=0,t=o,o=new Map);}return {get(n){let s=o.get(n);if(s!==void 0)return s;if((s=t.get(n))!==void 0)return l(n,s),s},set(n,s){o.has(n)?o.set(n,s):l(n,s);}}}var oe="!";function be(e){let r=e.separator,o=r.length===1,t=r[0],l=r.length;return function(s){let a=[],u=0,f=0,p;for(let b=0;b<s.length;b++){let m=s[b];if(u===0){if(m===t&&(o||s.slice(b,b+l)===r)){a.push(s.slice(f,b)),f=b+l;continue}if(m==="/"){p=b;continue}}m==="["?u++:m==="]"&&u--;}let g=a.length===0?s:s.substring(f),y=g.startsWith(oe),w=y?g.substring(1):g,S=p&&p>f?p-f:void 0;return {modifiers:a,hasImportantModifier:y,baseClassName:w,maybePostfixModifierPosition:S}}}function ge(e){if(e.length<=1)return e;let r=[],o=[];return e.forEach(t=>{t[0]==="["?(r.push(...o.sort(),t),o=[]):o.push(t);}),r.push(...o.sort()),r}function me(e){return a({cache:fe(e.cacheSize),splitModifiers:be(e)},ae(e))}var he=/\s+/;function ye(e,r){let{splitModifiers:o,getClassGroupId:t,getConflictingClassGroupIds:l}=r,n=new Set;return e.trim().split(he).map(s=>{let{modifiers:a,hasImportantModifier:u,baseClassName:f,maybePostfixModifierPosition:p}=o(s),g=t(p?f.substring(0,p):f),y=!!p;if(!g){if(!p)return {isTailwindClass:!1,originalClassName:s};if(g=t(f),!g)return {isTailwindClass:!1,originalClassName:s};y=!1;}let w=ge(a).join(":");return {isTailwindClass:!0,modifierId:u?w+oe:w,classGroupId:g,originalClassName:s,hasPostfixModifier:y}}).reverse().filter(s=>{if(!s.isTailwindClass)return !0;let{modifierId:a,classGroupId:u,hasPostfixModifier:f}=s,p=a+u;return n.has(p)?!1:(n.add(p),l(u,f).forEach(g=>n.add(a+g)),!0)}).reverse().map(s=>s.originalClassName).join(" ")}function xe(){let e=0,r,o,t="";for(;e<arguments.length;)(r=arguments[e++])&&(o=ne(r))&&(t&&(t+=" "),t+=o);return t}function ne(e){if(typeof e=="string")return e;let r,o="";for(let t=0;t<e.length;t++)e[t]&&(r=ne(e[t]))&&(o&&(o+=" "),o+=r);return o}function we(e,...r){let o,t,l,n=s;function s(u){let f=r.reduce((p,g)=>g(p),e());return o=me(f),t=o.cache.get,l=o.cache.set,n=a,a(u)}function a(u){let f=t(u);if(f)return f;let p=ye(u,o);return l(u,p),p}return function(){return n(xe.apply(null,arguments))}}function c(e){let r=o=>o[e]||[];return r.isThemeGetter=!0,r}var se=/^\[(?:([a-z-]+):)?(.+)\]$/i,ve=/^\d+\/\d+$/,ke=new Set(["px","full","screen"]),Ce=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ze=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Se=/^-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Me=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;function h(e){return z(e)||ke.has(e)||ve.test(e)}function k(e){return M(e,"length",je)}function z(e){return !!e&&!Number.isNaN(Number(e))}function j(e){return M(e,"number",z)}function G(e){return !!e&&Number.isInteger(Number(e))}function Ae(e){return e.endsWith("%")&&z(e.slice(0,-1))}function i(e){return se.test(e)}function C(e){return Ce.test(e)}var Pe=new Set(["length","size","percentage"]);function Ge(e){return M(e,Pe,ie)}function Re(e){return M(e,"position",ie)}var Ie=new Set(["image","url"]);function Te(e){return M(e,Ie,Ve)}function Ee(e){return M(e,"",Le)}function R(){return !0}function M(e,r,o){let t=se.exec(e);return t?t[1]?typeof r=="string"?t[1]===r:r.has(t[1]):o(t[2]):!1}function je(e){return ze.test(e)}function ie(){return !1}function Le(e){return Se.test(e)}function Ve(e){return Me.test(e)}function We(){let e=c("colors"),r=c("spacing"),o=c("blur"),t=c("brightness"),l=c("borderColor"),n=c("borderRadius"),s=c("borderSpacing"),a=c("borderWidth"),u=c("contrast"),f=c("grayscale"),p=c("hueRotate"),g=c("invert"),y=c("gap"),w=c("gradientColorStops"),S=c("gradientColorStopPositions"),b=c("inset"),m=c("margin"),v=c("opacity"),x=c("padding"),U=c("saturate"),L=c("scale"),F=c("sepia"),O=c("skew"),q=c("space"),J=c("translate"),V=()=>["auto","contain","none"],W=()=>["auto","hidden","clip","visible","scroll"],_=()=>["auto",i,r],d=()=>[i,r],K=()=>["",h,k],I=()=>["auto",z,i],X=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],T=()=>["solid","dashed","dotted","double","none"],Z=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter"],N=()=>["start","end","center","between","around","evenly","stretch"],A=()=>["","0",i],H=()=>["auto","avoid","all","avoid-page","page","left","right","column"],P=()=>[z,j],E=()=>[z,i];return {cacheSize:500,separator:":",theme:{colors:[R],spacing:[h,k],blur:["none","",C,i],brightness:P(),borderColor:[e],borderRadius:["none","","full",C,i],borderSpacing:d(),borderWidth:K(),contrast:P(),grayscale:A(),hueRotate:E(),invert:A(),gap:d(),gradientColorStops:[e],gradientColorStopPositions:[Ae,k],inset:_(),margin:_(),opacity:P(),padding:d(),saturate:P(),scale:P(),sepia:A(),skew:E(),space:d(),translate:d()},classGroups:{aspect:[{aspect:["auto","square","video",i]}],container:["container"],columns:[{columns:[C]}],"break-after":[{"break-after":H()}],"break-before":[{"break-before":H()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none"]}],clear:[{clear:["left","right","both","none"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...X(),i]}],overflow:[{overflow:W()}],"overflow-x":[{"overflow-x":W()}],"overflow-y":[{"overflow-y":W()}],overscroll:[{overscroll:V()}],"overscroll-x":[{"overscroll-x":V()}],"overscroll-y":[{"overscroll-y":V()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",G,i]}],basis:[{basis:_()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",i]}],grow:[{grow:A()}],shrink:[{shrink:A()}],order:[{order:["first","last","none",G,i]}],"grid-cols":[{"grid-cols":[R]}],"col-start-end":[{col:["auto",{span:["full",G,i]},i]}],"col-start":[{"col-start":I()}],"col-end":[{"col-end":I()}],"grid-rows":[{"grid-rows":[R]}],"row-start-end":[{row:["auto",{span:[G,i]},i]}],"row-start":[{"row-start":I()}],"row-end":[{"row-end":I()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",i]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",i]}],gap:[{gap:[y]}],"gap-x":[{"gap-x":[y]}],"gap-y":[{"gap-y":[y]}],"justify-content":[{justify:["normal",...N()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...N(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...N(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[x]}],px:[{px:[x]}],py:[{py:[x]}],ps:[{ps:[x]}],pe:[{pe:[x]}],pt:[{pt:[x]}],pr:[{pr:[x]}],pb:[{pb:[x]}],pl:[{pl:[x]}],m:[{m:[m]}],mx:[{mx:[m]}],my:[{my:[m]}],ms:[{ms:[m]}],me:[{me:[m]}],mt:[{mt:[m]}],mr:[{mr:[m]}],mb:[{mb:[m]}],ml:[{ml:[m]}],"space-x":[{"space-x":[q]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[q]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit",i,r]}],"min-w":[{"min-w":["min","max","fit",i,h]}],"max-w":[{"max-w":["0","none","full","min","max","fit","prose",{screen:[C]},C,i]}],h:[{h:[i,r,"auto","min","max","fit"]}],"min-h":[{"min-h":["min","max","fit",h,i]}],"max-h":[{"max-h":[i,r,"min","max","fit"]}],"font-size":[{text:["base",C,k]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",j]}],"font-family":[{font:[R]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",i]}],"line-clamp":[{"line-clamp":["none",z,j]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",h,i]}],"list-image":[{"list-image":["none",i]}],"list-style-type":[{list:["none","disc","decimal",i]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...T(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",h,k]}],"underline-offset":[{"underline-offset":["auto",h,i]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],indent:[{indent:d()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",i]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",i]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...X(),Re]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Ge]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Te]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[S]}],"gradient-via-pos":[{via:[S]}],"gradient-to-pos":[{to:[S]}],"gradient-from":[{from:[w]}],"gradient-via":[{via:[w]}],"gradient-to":[{to:[w]}],rounded:[{rounded:[n]}],"rounded-s":[{"rounded-s":[n]}],"rounded-e":[{"rounded-e":[n]}],"rounded-t":[{"rounded-t":[n]}],"rounded-r":[{"rounded-r":[n]}],"rounded-b":[{"rounded-b":[n]}],"rounded-l":[{"rounded-l":[n]}],"rounded-ss":[{"rounded-ss":[n]}],"rounded-se":[{"rounded-se":[n]}],"rounded-ee":[{"rounded-ee":[n]}],"rounded-es":[{"rounded-es":[n]}],"rounded-tl":[{"rounded-tl":[n]}],"rounded-tr":[{"rounded-tr":[n]}],"rounded-br":[{"rounded-br":[n]}],"rounded-bl":[{"rounded-bl":[n]}],"border-w":[{border:[a]}],"border-w-x":[{"border-x":[a]}],"border-w-y":[{"border-y":[a]}],"border-w-s":[{"border-s":[a]}],"border-w-e":[{"border-e":[a]}],"border-w-t":[{"border-t":[a]}],"border-w-r":[{"border-r":[a]}],"border-w-b":[{"border-b":[a]}],"border-w-l":[{"border-l":[a]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:[...T(),"hidden"]}],"divide-x":[{"divide-x":[a]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[a]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:T()}],"border-color":[{border:[l]}],"border-color-x":[{"border-x":[l]}],"border-color-y":[{"border-y":[l]}],"border-color-t":[{"border-t":[l]}],"border-color-r":[{"border-r":[l]}],"border-color-b":[{"border-b":[l]}],"border-color-l":[{"border-l":[l]}],"divide-color":[{divide:[l]}],"outline-style":[{outline:["",...T()]}],"outline-offset":[{"outline-offset":[h,i]}],"outline-w":[{outline:[h,k]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:K()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[h,k]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",C,Ee]}],"shadow-color":[{shadow:[R]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":Z()}],"bg-blend":[{"bg-blend":Z()}],filter:[{filter:["","none"]}],blur:[{blur:[o]}],brightness:[{brightness:[t]}],contrast:[{contrast:[u]}],"drop-shadow":[{"drop-shadow":["","none",C,i]}],grayscale:[{grayscale:[f]}],"hue-rotate":[{"hue-rotate":[p]}],invert:[{invert:[g]}],saturate:[{saturate:[U]}],sepia:[{sepia:[F]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[o]}],"backdrop-brightness":[{"backdrop-brightness":[t]}],"backdrop-contrast":[{"backdrop-contrast":[u]}],"backdrop-grayscale":[{"backdrop-grayscale":[f]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[p]}],"backdrop-invert":[{"backdrop-invert":[g]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[U]}],"backdrop-sepia":[{"backdrop-sepia":[F]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[s]}],"border-spacing-x":[{"border-spacing-x":[s]}],"border-spacing-y":[{"border-spacing-y":[s]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",i]}],duration:[{duration:E()}],ease:[{ease:["linear","in","out","in-out",i]}],delay:[{delay:E()}],animate:[{animate:["none","spin","ping","pulse","bounce",i]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[L]}],"scale-x":[{"scale-x":[L]}],"scale-y":[{"scale-y":[L]}],rotate:[{rotate:[G,i]}],"translate-x":[{"translate-x":[J]}],"translate-y":[{"translate-y":[J]}],"skew-x":[{"skew-x":[O]}],"skew-y":[{"skew-y":[O]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",i]}],accent:[{accent:["auto",e]}],appearance:["appearance-none"],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",i]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":d()}],"scroll-mx":[{"scroll-mx":d()}],"scroll-my":[{"scroll-my":d()}],"scroll-ms":[{"scroll-ms":d()}],"scroll-me":[{"scroll-me":d()}],"scroll-mt":[{"scroll-mt":d()}],"scroll-mr":[{"scroll-mr":d()}],"scroll-mb":[{"scroll-mb":d()}],"scroll-ml":[{"scroll-ml":d()}],"scroll-p":[{"scroll-p":d()}],"scroll-px":[{"scroll-px":d()}],"scroll-py":[{"scroll-py":d()}],"scroll-ps":[{"scroll-ps":d()}],"scroll-pe":[{"scroll-pe":d()}],"scroll-pt":[{"scroll-pt":d()}],"scroll-pr":[{"scroll-pr":d()}],"scroll-pb":[{"scroll-pb":d()}],"scroll-pl":[{"scroll-pl":d()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",i]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[h,k,j]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}var le=we(We);function Fe(...e){return le(D(e))}
4
+
5
+ export { Fe as a };
@@ -0,0 +1,6 @@
1
+ import { a } from './chunk-ADRZFEEP.mjs';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+
4
+ var i=({className:t})=>jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"black",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a("ui-h-5 ui-w-5",t),children:[jsx("path",{d:"M18 6 6 18"}),jsx("path",{d:"m6 6 12 12"})]});
5
+
6
+ export { i as a };
@@ -0,0 +1,3 @@
1
+ var i=Object.defineProperty,j=Object.defineProperties;var k=Object.getOwnPropertyDescriptors;var e=Object.getOwnPropertySymbols;var g=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var f=(a,b,c)=>b in a?i(a,b,{enumerable:!0,configurable:!0,writable:!0,value:c}):a[b]=c,l=(a,b)=>{for(var c in b||(b={}))g.call(b,c)&&f(a,c,b[c]);if(e)for(var c of e(b))h.call(b,c)&&f(a,c,b[c]);return a},m=(a,b)=>j(a,k(b));var n=(a,b)=>{var c={};for(var d in a)g.call(a,d)&&b.indexOf(d)<0&&(c[d]=a[d]);if(a!=null&&e)for(var d of e(a))b.indexOf(d)<0&&h.call(a,d)&&(c[d]=a[d]);return c};
2
+
3
+ export { l as a, m as b, n as c };
@@ -0,0 +1,6 @@
1
+ import { c, b, a } from './chunk-DYNA3PMW.mjs';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ var p=b$1=>{var r=b$1,{fullWidth:a$1=!1,structure:t="base",theme:e="default",disabled:o=!1,children:s}=r,c$1=c(r,["fullWidth","structure","theme","disabled","children"]);return jsx("button",b(a({className:`ui-rounded ui-px-5 ui-py-3.5 ui-text-sm ui-font-bold ui-outline-none ui-hover:opacity-70 ${a$1?"ui-w-full":""} ${(()=>{if(o)switch(t){case"base":return "ui-bg-gray-400 ui-text-white ui-pointer-events-none";case"outlined":return "ui-bg-transparent ui-border ui-border-zinc-300 ui-text-zinc-300 dark:ui-text-zinc-600 ui-pointer-events-none";case"naked":return "ui-text-gray-400 ui-pointer-events-none";default:return ""}switch(t){case"outlined":switch(e){case"primary":return "ui-border ui-border-zinc-300 ui-bg-transparent ui-text-black dark:ui-text-white hover:ui-bg-black/5 dark:hover:ui-bg-white/5";case"secondary":return "ui-border ui-border-zinc-300 ui-bg-transparent ui-text-white";case"destructive":return "ui-border ui-border-red-500 ui-bg-transparent ui-text-red-500";default:return ""}case"naked":switch(e){case"primary":return "ui-border-none ui-bg-transparent ui-text-black dark:ui-text-white ui-underline ui-font-normal";case"secondary":return "ui-border-none ui-bg-transparent ui-text-opacity-50";case"destructive":return "ui-border-none ui-bg-transparent ui-text-red-500";default:return ""}default:switch(e){case"primary":return "ui-bg-zinc-900 ui-text-white hover:ui-bg-zinc-800 dark:ui-bg-white dark:ui-text-black hover:dark:ui-bg-zinc-100";case"secondary":return "ui-bg-zinc-200 ui-text-black hover:ui-bg-zinc-300";case"destructive":return "ui-bg-red-500 ui-text-white";default:return ""}}})()}`},c$1),{children:s}))};
5
+
6
+ export { p as a };
@@ -0,0 +1,6 @@
1
+ import { useState, useRef, useEffect } from 'react';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ var y=({length:r=6,onComplete:p,error:d,setError:b})=>{let[s,o]=useState(Array(r).fill("")),u=useRef(Array(r).fill(null)),m=(t,n)=>{var a;let e=/^\d$/.test(n)?n:"",i=[...s];i[t]=e,o(i),i.includes("")||p(i.join("")),t<r-1&&e!==""&&((a=u.current[t+1])==null||a.focus());},g=t=>{var e;let n=[...s];t>=0&&(n[t]="",(e=u.current[t-1])==null||e.focus()),o(n);};useEffect(()=>{var t;(t=u.current[0])==null||t.focus();},[]);let k=t=>{var a;t.preventDefault();let e=t.clipboardData.getData("text").split("").filter(c=>/^\d$/.test(c)).slice(0,r),i=[...s];e.forEach((c,l)=>{l<r&&(i[l]=c);}),o(i),p(i.join("")),(a=u.current[Math.min(r-1,e.length-1)])==null||a.focus();};return jsx("div",{className:"ui-flex ui-w-full ui-justify-between",children:s.map((t,n)=>jsx("input",{type:"text",value:t,maxLength:1,onChange:e=>{b(""),m(n,e.target.value);},onKeyDown:e=>{e.key==="Backspace"&&g(n);},onPaste:k,className:`ui-block ui-bg-transparent ui-text-black dark:ui-text-white ui-rounded-md ui-border-2 ui-text-center ui-text-sm ui-outline-none focus:ui-border-black focus:ui-ring-black dark:focus:ui-border-white dark:focus:ui-ring-white disabled:ui-pointer-events-none disabled:ui-opacity-50 ui-w-[50px] ui-h-[50px] ${d?"ui-border-red-500":"ui-border-zinc-300 dark:ui-border-zinc-600"}`,autoFocus:n===0,ref:e=>u.current[n]=e},n))})};
5
+
6
+ export { y as a };
@@ -0,0 +1,5 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+
3
+ var r=({isUp:t=!1})=>jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"ui-h-5 ui-w-5 ui-transform ui-text-current ui-transition-transform ui-duration-300 ui-ease-in-out",style:{transform:t?"rotate(180deg)":""},children:jsx("path",{d:"m6 9 6 6 6-6"})});
4
+
5
+ export { r as a };
@@ -0,0 +1,5 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+
3
+ var r=()=>jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"3rem",height:"3rem",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid",children:jsx("circle",{cx:"50",cy:"50",fill:"none",stroke:"currentColor",strokeWidth:"8",r:"35",strokeDasharray:"164.93361431346415 56.97787143782138",children:jsx("animateTransform",{attributeName:"transform",type:"rotate",repeatCount:"indefinite",dur:"1.25s",values:"0 50 50;360 50 50",keyTimes:"0;1"})})});
4
+
5
+ export { r as a };
@@ -0,0 +1,8 @@
1
+ import { a as a$1 } from './chunk-ADRZFEEP.mjs';
2
+ import { c, b, a } from './chunk-DYNA3PMW.mjs';
3
+ import { forwardRef } from 'react';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var x=forwardRef((e,s)=>{var a$2=e,{className:i,children:t}=a$2,u=c(a$2,["className","children"]);return jsx("div",b(a({ref:s,className:a$1("ui-flex ui-p-4 ui-justify-center ui-items-center ui-fixed ui-inset-0 ui-h-screen ui-w-screen ui-z-[999] dark:ui-bg-white/20 ui-bg-black/50 ui-backdrop-blur-sm",i)},u),{children:t}))}),M=s=>{var e=s,{className:i,children:t}=e,u=c(e,["className","children"]);return jsx("div",b(a({className:a$1("ui-relative ui-w-full ui-max-w-[465px] ui-text-black ui-rounded ui-z-[1000] ui-bg-white dark:ui-bg-zinc-900",i)},u),{children:t}))},v=s=>{var e=s,{className:i,children:t}=e,u=c(e,["className","children"]);return jsx("button",b(a({className:a$1("ui-p-2 ui-rounded-lg ui-absolute ui-top-4 ui-right-4 ui-z-[1001] ui-border-none ui-flex ui-items-center ui-justify-center ui-bg-transparent ui-cursor-pointer hover:ui-bg-zinc-100",i)},u),{children:t}))},g=s=>{var e=s,{className:i,children:t}=e,u=c(e,["className","children"]);return jsx("div",b(a({className:a$1("ui-inline-flex ui-w-full ui-h-full ui-p-10 ui-flex-col ui-items-start ui-justify-between ui-gap-4",i)},u),{children:t}))};
7
+
8
+ export { x as a, M as b, v as c, g as d };
@@ -0,0 +1,5 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+
3
+ var C=()=>jsxs("svg",{width:"48",height:"48",viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("rect",{width:"48",height:"48",rx:"24",fill:"none"}),jsx("path",{d:"M33.8947 30.8289V31.9342C33.8947 33.15 32.9 34.1447 31.6842 34.1447H16.2105C14.9837 34.1447 14 33.15 14 31.9342V16.4605C14 15.2447 14.9837 14.25 16.2105 14.25H31.6842C32.9 14.25 33.8947 15.2447 33.8947 16.4605V17.5658H23.9474C22.7205 17.5658 21.7368 18.5605 21.7368 19.7763V28.6184C21.7368 29.8342 22.7205 30.8289 23.9474 30.8289H33.8947ZM23.9474 28.6184H35V19.7763H23.9474V28.6184ZM28.3684 25.8553C27.4511 25.8553 26.7105 25.1147 26.7105 24.1974C26.7105 23.28 27.4511 22.5395 28.3684 22.5395C29.2858 22.5395 30.0263 23.28 30.0263 24.1974C30.0263 25.1147 29.2858 25.8553 28.3684 25.8553Z",fill:"currentColor"})]});
4
+
5
+ export { C as a };
@@ -0,0 +1,6 @@
1
+ import { c, a } from './chunk-DYNA3PMW.mjs';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+
4
+ var p=o=>{var t=o,{fullWidth:e=!1,error:r}=t,a$1=c(t,["fullWidth","error"]);return jsxs("div",{className:`ui-flex ui-flex-col ui-gap-1 ${e?"ui-w-full":""}`,children:[jsx("input",a({className:`ui-bg-transparent ui-text-black dark:ui-text-white ui-p-3 ui-rounded ui-border ui-border-zinc-300 ui-outline-none ui-placeholder-zinc-400 dark:ui-placeholder-zinc-600 ${e?"ui-w-full":""}`},a$1)),jsx("span",{className:"ui-text-red-500 ui-text-xs",children:r})]})};
5
+
6
+ export { p as a };
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare const AccountWalletLogo: () => react_jsx_runtime.JSX.Element;
4
+
5
+ export { AccountWalletLogo };
@@ -0,0 +1,2 @@
1
+ export { a as AccountWalletLogo } from '../chunk-TT6MQYSV.mjs';
2
+ import '../chunk-DYNA3PMW.mjs';
@@ -0,0 +1,7 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare const ChevronDown: ({ isUp }: {
4
+ isUp?: boolean | undefined;
5
+ }) => react_jsx_runtime.JSX.Element;
6
+
7
+ export { ChevronDown };
@@ -0,0 +1,2 @@
1
+ export { a as ChevronDown } from '../chunk-LVXPWHAD.mjs';
2
+ import '../chunk-DYNA3PMW.mjs';
@@ -0,0 +1,7 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare const CloseIcon: ({ className }: {
4
+ className?: string | undefined;
5
+ }) => react_jsx_runtime.JSX.Element;
6
+
7
+ export { CloseIcon };
@@ -0,0 +1,3 @@
1
+ export { a as CloseIcon } from '../chunk-AIOFP622.mjs';
2
+ import '../chunk-ADRZFEEP.mjs';
3
+ import '../chunk-DYNA3PMW.mjs';
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare const Spinner: () => react_jsx_runtime.JSX.Element;
4
+
5
+ export { Spinner };
@@ -0,0 +1,2 @@
1
+ export { a as Spinner } from '../chunk-RPX3PE6L.mjs';
2
+ import '../chunk-DYNA3PMW.mjs';
package/dist/index.css ADDED
@@ -0,0 +1 @@
1
+ *,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}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,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}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,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[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,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{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}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--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: rgb(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: }::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: rgb(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: }.ui-pointer-events-none{pointer-events:none}.ui-fixed{position:fixed}.ui-absolute{position:absolute}.ui-relative{position:relative}.ui-inset-0{inset:0}.ui-right-4{right:1rem}.ui-top-4{top:1rem}.ui-z-\[1000\]{z-index:1000}.ui-z-\[1001\]{z-index:1001}.ui-z-\[999\]{z-index:999}.ui-block{display:block}.ui-flex{display:flex}.ui-inline-flex{display:inline-flex}.ui-h-5{height:1.25rem}.ui-h-\[50px\]{height:50px}.ui-h-full{height:100%}.ui-h-screen{height:100vh}.ui-w-5{width:1.25rem}.ui-w-\[50px\]{width:50px}.ui-w-full{width:100%}.ui-w-screen{width:100vw}.ui-max-w-\[465px\]{max-width:465px}.ui-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ui-cursor-pointer{cursor:pointer}.ui-flex-col{flex-direction:column}.ui-items-start{align-items:flex-start}.ui-items-center{align-items:center}.ui-justify-center{justify-content:center}.ui-justify-between{justify-content:space-between}.ui-gap-1{gap:.25rem}.ui-gap-4{gap:1rem}.ui-rounded{border-radius:.25rem}.ui-rounded-lg{border-radius:.5rem}.ui-rounded-md{border-radius:.375rem}.ui-border{border-width:1px}.ui-border-2{border-width:2px}.ui-border-none{border-style:none}.ui-border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}.ui-border-zinc-300{--tw-border-opacity: 1;border-color:rgb(212 212 216 / var(--tw-border-opacity))}.ui-bg-black\/50{background-color:#00000080}.ui-bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.ui-bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.ui-bg-transparent{background-color:transparent}.ui-bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.ui-bg-zinc-200{--tw-bg-opacity: 1;background-color:rgb(228 228 231 / var(--tw-bg-opacity))}.ui-bg-zinc-900{--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity))}.ui-p-10{padding:2.5rem}.ui-p-2{padding:.5rem}.ui-p-3{padding:.75rem}.ui-p-4{padding:1rem}.ui-px-5{padding-left:1.25rem;padding-right:1.25rem}.ui-py-3{padding-top:.75rem;padding-bottom:.75rem}.ui-py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.ui-text-center{text-align:center}.ui-text-sm{font-size:.875rem;line-height:1.25rem}.ui-text-xs{font-size:.75rem;line-height:1rem}.ui-font-bold{font-weight:700}.ui-font-normal{font-weight:400}.ui-text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.ui-text-current{color:currentColor}.ui-text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.ui-text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.ui-text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.ui-text-zinc-300{--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity))}.ui-text-opacity-50{--tw-text-opacity: .5}.ui-underline{text-decoration-line:underline}.ui-placeholder-zinc-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(161 161 170 / var(--tw-placeholder-opacity))}.ui-placeholder-zinc-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(161 161 170 / var(--tw-placeholder-opacity))}.ui-outline-none{outline:2px solid transparent;outline-offset:2px}.ui-backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.ui-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ui-duration-300{transition-duration:.3s}.ui-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:ui-bg-black\/5:hover{background-color:#0000000d}.hover\:ui-bg-zinc-100:hover{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity))}.hover\:ui-bg-zinc-300:hover{--tw-bg-opacity: 1;background-color:rgb(212 212 216 / var(--tw-bg-opacity))}.hover\:ui-bg-zinc-800:hover{--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity))}.focus\:ui-border-black:focus{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.focus\:ui-ring-black:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity))}.disabled\:ui-pointer-events-none:disabled{pointer-events:none}.disabled\:ui-opacity-50:disabled{opacity:.5}@media (prefers-color-scheme: dark){.dark\:ui-border-zinc-600{--tw-border-opacity: 1;border-color:rgb(82 82 91 / var(--tw-border-opacity))}.dark\:ui-bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.dark\:ui-bg-white\/20{background-color:#fff3}.dark\:ui-bg-zinc-900{--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity))}.dark\:ui-text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.dark\:ui-text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:ui-text-zinc-600{--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity))}.dark\:ui-placeholder-zinc-600::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(82 82 91 / var(--tw-placeholder-opacity))}.dark\:ui-placeholder-zinc-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(82 82 91 / var(--tw-placeholder-opacity))}.dark\:hover\:ui-bg-white\/5:hover{background-color:#ffffff0d}.hover\:dark\:ui-bg-zinc-100:hover{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity))}.dark\:focus\:ui-border-white:focus{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.dark\:focus\:ui-ring-white:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity))}}
@@ -0,0 +1,10 @@
1
+ export { Input } from './input.js';
2
+ export { PinInput } from './pinInput.js';
3
+ export { Button } from './button.js';
4
+ export { Modal, ModalAnchor, ModalClose, ModalSection } from './modal.js';
5
+ export { ChevronDown } from './icons/chevronDown.js';
6
+ export { CloseIcon } from './icons/close.js';
7
+ export { AccountWalletLogo } from './icons/accountWalletLogo.js';
8
+ export { Spinner } from './icons/spinner.js';
9
+ import 'react';
10
+ import 'react/jsx-runtime';
package/dist/index.mjs ADDED
@@ -0,0 +1,10 @@
1
+ export { a as Spinner } from './chunk-RPX3PE6L.mjs';
2
+ export { a as Button } from './chunk-FCDGETWZ.mjs';
3
+ export { a as Input } from './chunk-YONHDQHS.mjs';
4
+ export { b as Modal, a as ModalAnchor, c as ModalClose, d as ModalSection } from './chunk-SVEY7E4F.mjs';
5
+ export { a as PinInput } from './chunk-HJDNUBCI.mjs';
6
+ export { a as AccountWalletLogo } from './chunk-TT6MQYSV.mjs';
7
+ export { a as ChevronDown } from './chunk-LVXPWHAD.mjs';
8
+ export { a as CloseIcon } from './chunk-AIOFP622.mjs';
9
+ import './chunk-ADRZFEEP.mjs';
10
+ import './chunk-DYNA3PMW.mjs';
@@ -0,0 +1,9 @@
1
+ import React__default from 'react';
2
+
3
+ interface InputProps extends React__default.InputHTMLAttributes<HTMLInputElement> {
4
+ fullWidth?: boolean;
5
+ error?: string;
6
+ }
7
+ declare const Input: React__default.FC<InputProps>;
8
+
9
+ export { Input };
package/dist/input.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export { a as Input } from './chunk-YONHDQHS.mjs';
2
+ import './chunk-DYNA3PMW.mjs';
@@ -0,0 +1,16 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { HTMLAttributes, ReactNode, ButtonHTMLAttributes } from 'react';
4
+
5
+ interface WithChildrenProps extends HTMLAttributes<HTMLDivElement> {
6
+ children: ReactNode;
7
+ }
8
+ declare const ModalAnchor: React.ForwardRefExoticComponent<WithChildrenProps & React.RefAttributes<HTMLDivElement>>;
9
+ declare const Modal: ({ className, children, ...props }: WithChildrenProps) => react_jsx_runtime.JSX.Element;
10
+ interface ModalCloseProps extends ButtonHTMLAttributes<HTMLButtonElement> {
11
+ children: ReactNode;
12
+ }
13
+ declare const ModalClose: ({ className, children, ...props }: ModalCloseProps) => react_jsx_runtime.JSX.Element;
14
+ declare const ModalSection: ({ className, children, ...props }: WithChildrenProps) => react_jsx_runtime.JSX.Element;
15
+
16
+ export { Modal, ModalAnchor, ModalClose, ModalSection };
package/dist/modal.mjs ADDED
@@ -0,0 +1,3 @@
1
+ export { b as Modal, a as ModalAnchor, c as ModalClose, d as ModalSection } from './chunk-SVEY7E4F.mjs';
2
+ import './chunk-ADRZFEEP.mjs';
3
+ import './chunk-DYNA3PMW.mjs';
@@ -0,0 +1,11 @@
1
+ import React__default from 'react';
2
+
3
+ interface PinInputProps {
4
+ length?: number;
5
+ onComplete: (pin: string) => void;
6
+ error?: string;
7
+ setError: React__default.Dispatch<React__default.SetStateAction<string>>;
8
+ }
9
+ declare const PinInput: React__default.FC<PinInputProps>;
10
+
11
+ export { PinInput };
@@ -0,0 +1,2 @@
1
+ export { a as PinInput } from './chunk-HJDNUBCI.mjs';
2
+ import './chunk-DYNA3PMW.mjs';
package/lib/utils.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { clsx, type ClassValue } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+
4
+ export function cn(...inputs: ClassValue[]) {
5
+ return twMerge(clsx(inputs));
6
+ }
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@burnt-labs/ui",
3
+ "version": "0.0.1-alpha.0",
4
+ "sideEffects": [
5
+ "**/*.css"
6
+ ],
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": "./dist",
10
+ "./styles.css": "./dist/index.css"
11
+ },
12
+ "license": "MIT",
13
+ "peerDependencies": {
14
+ "react": "^18.2.0"
15
+ },
16
+ "devDependencies": {
17
+ "@types/react": "^18.2.5",
18
+ "autoprefixer": "^10.4.13",
19
+ "clsx": "^2.0.0",
20
+ "postcss": "^8.4.20",
21
+ "react": "^18.2.0",
22
+ "tailwind-merge": "^2.1.0",
23
+ "tailwindcss": "^3.2.4",
24
+ "tsup": "^6.0.1",
25
+ "typescript": "^5.2.2",
26
+ "@burnt-labs/tailwind-config": "0.0.1-alpha.0",
27
+ "@burnt-labs/eslint-config-custom": "0.0.1-alpha.0",
28
+ "@burnt-labs/tsconfig": "0.0.1-alpha.0"
29
+ },
30
+ "dependencies": {
31
+ "@radix-ui/react-dialog": "^1.0.5"
32
+ },
33
+ "scripts": {
34
+ "build": "tsup",
35
+ "lint": "eslint src/",
36
+ "dev": "tsup --watch",
37
+ "check-types": "tsc --noEmit"
38
+ }
39
+ }
@@ -0,0 +1,9 @@
1
+ // If you want to use other PostCSS plugins, see the following:
2
+ // https://tailwindcss.com/docs/using-with-preprocessors
3
+
4
+ module.exports = {
5
+ plugins: {
6
+ tailwindcss: {},
7
+ autoprefixer: {},
8
+ },
9
+ };
package/src/button.tsx ADDED
@@ -0,0 +1,79 @@
1
+ import React from "react";
2
+
3
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
4
+ fullWidth?: boolean;
5
+ structure?: "base" | "outlined" | "naked";
6
+ theme?: "primary" | "secondary" | "destructive";
7
+ disabled?: boolean;
8
+ }
9
+
10
+ export const Button: React.FC<ButtonProps> = ({
11
+ fullWidth = false,
12
+ structure = "base",
13
+ theme = "default",
14
+ disabled = false,
15
+ children,
16
+ ...props
17
+ }) => {
18
+ const getButtonClasses = () => {
19
+ if (disabled) {
20
+ switch (structure) {
21
+ case "base":
22
+ return "ui-bg-gray-400 ui-text-white ui-pointer-events-none";
23
+ case "outlined":
24
+ return "ui-bg-transparent ui-border ui-border-zinc-300 ui-text-zinc-300 dark:ui-text-zinc-600 ui-pointer-events-none";
25
+ case "naked":
26
+ return "ui-text-gray-400 ui-pointer-events-none";
27
+ default:
28
+ return "";
29
+ }
30
+ }
31
+
32
+ switch (structure) {
33
+ case "outlined":
34
+ switch (theme) {
35
+ case "primary":
36
+ return "ui-border ui-border-zinc-300 ui-bg-transparent ui-text-black dark:ui-text-white hover:ui-bg-black/5 dark:hover:ui-bg-white/5";
37
+ case "secondary":
38
+ return "ui-border ui-border-zinc-300 ui-bg-transparent ui-text-white";
39
+ case "destructive":
40
+ return "ui-border ui-border-red-500 ui-bg-transparent ui-text-red-500";
41
+ default:
42
+ return "";
43
+ }
44
+ case "naked":
45
+ switch (theme) {
46
+ case "primary":
47
+ return "ui-border-none ui-bg-transparent ui-text-black dark:ui-text-white ui-underline ui-font-normal";
48
+ case "secondary":
49
+ return "ui-border-none ui-bg-transparent ui-text-opacity-50";
50
+ case "destructive":
51
+ return "ui-border-none ui-bg-transparent ui-text-red-500";
52
+ default:
53
+ return "";
54
+ }
55
+ default:
56
+ switch (theme) {
57
+ case "primary":
58
+ return "ui-bg-zinc-900 ui-text-white hover:ui-bg-zinc-800 dark:ui-bg-white dark:ui-text-black hover:dark:ui-bg-zinc-100";
59
+ case "secondary":
60
+ return "ui-bg-zinc-200 ui-text-black hover:ui-bg-zinc-300";
61
+ case "destructive":
62
+ return "ui-bg-red-500 ui-text-white";
63
+ default:
64
+ return "";
65
+ }
66
+ }
67
+ };
68
+
69
+ return (
70
+ <button
71
+ className={`ui-rounded ui-px-5 ui-py-3.5 ui-text-sm ui-font-bold ui-outline-none ui-hover:opacity-70 ${
72
+ fullWidth ? "ui-w-full" : ""
73
+ } ${getButtonClasses()}`}
74
+ {...props}
75
+ >
76
+ {children}
77
+ </button>
78
+ );
79
+ };
@@ -0,0 +1,17 @@
1
+ export const AccountWalletLogo = () => {
2
+ return (
3
+ <svg
4
+ width="48"
5
+ height="48"
6
+ viewBox="0 0 48 48"
7
+ fill="none"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ >
10
+ <rect width="48" height="48" rx="24" fill="none" />
11
+ <path
12
+ d="M33.8947 30.8289V31.9342C33.8947 33.15 32.9 34.1447 31.6842 34.1447H16.2105C14.9837 34.1447 14 33.15 14 31.9342V16.4605C14 15.2447 14.9837 14.25 16.2105 14.25H31.6842C32.9 14.25 33.8947 15.2447 33.8947 16.4605V17.5658H23.9474C22.7205 17.5658 21.7368 18.5605 21.7368 19.7763V28.6184C21.7368 29.8342 22.7205 30.8289 23.9474 30.8289H33.8947ZM23.9474 28.6184H35V19.7763H23.9474V28.6184ZM28.3684 25.8553C27.4511 25.8553 26.7105 25.1147 26.7105 24.1974C26.7105 23.28 27.4511 22.5395 28.3684 22.5395C29.2858 22.5395 30.0263 23.28 30.0263 24.1974C30.0263 25.1147 29.2858 25.8553 28.3684 25.8553Z"
13
+ fill="currentColor"
14
+ />
15
+ </svg>
16
+ );
17
+ };
@@ -0,0 +1,19 @@
1
+ export const ChevronDown = ({ isUp = false }: { isUp?: boolean }) => {
2
+ return (
3
+ <svg
4
+ xmlns="http://www.w3.org/2000/svg"
5
+ width="24"
6
+ height="24"
7
+ viewBox="0 0 24 24"
8
+ fill="none"
9
+ stroke="currentColor"
10
+ strokeWidth="2"
11
+ strokeLinecap="round"
12
+ strokeLinejoin="round"
13
+ className="ui-h-5 ui-w-5 ui-transform ui-text-current ui-transition-transform ui-duration-300 ui-ease-in-out"
14
+ style={{ transform: isUp ? "rotate(180deg)" : "" }}
15
+ >
16
+ <path d="m6 9 6 6 6-6" />
17
+ </svg>
18
+ );
19
+ };
@@ -0,0 +1,21 @@
1
+ import { cn } from "../../lib/utils";
2
+
3
+ export const CloseIcon = ({ className }: { className?: string }) => {
4
+ return (
5
+ <svg
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ width="24"
8
+ height="24"
9
+ viewBox="0 0 24 24"
10
+ fill="none"
11
+ stroke="black"
12
+ strokeWidth="2"
13
+ strokeLinecap="round"
14
+ strokeLinejoin="round"
15
+ className={cn("ui-h-5 ui-w-5", className)}
16
+ >
17
+ <path d="M18 6 6 18" />
18
+ <path d="m6 6 12 12" />
19
+ </svg>
20
+ );
21
+ };
@@ -0,0 +1,30 @@
1
+ export const Spinner = () => {
2
+ return (
3
+ <svg
4
+ xmlns="http://www.w3.org/2000/svg"
5
+ width="3rem"
6
+ height="3rem"
7
+ viewBox="0 0 100 100"
8
+ preserveAspectRatio="xMidYMid"
9
+ >
10
+ <circle
11
+ cx="50"
12
+ cy="50"
13
+ fill="none"
14
+ stroke="currentColor"
15
+ strokeWidth="8"
16
+ r="35"
17
+ strokeDasharray="164.93361431346415 56.97787143782138"
18
+ >
19
+ <animateTransform
20
+ attributeName="transform"
21
+ type="rotate"
22
+ repeatCount="indefinite"
23
+ dur="1.25s"
24
+ values="0 50 50;360 50 50"
25
+ keyTimes="0;1"
26
+ ></animateTransform>
27
+ </circle>
28
+ </svg>
29
+ );
30
+ };
package/src/index.tsx ADDED
@@ -0,0 +1,12 @@
1
+ // styles
2
+ import "./styles.css";
3
+
4
+ // components
5
+ export * from "./input";
6
+ export * from "./pinInput";
7
+ export * from "./button";
8
+ export * from "./modal";
9
+ export * from "./icons/chevronDown";
10
+ export * from "./icons/close";
11
+ export * from "./icons/accountWalletLogo";
12
+ export * from "./icons/spinner";
package/src/input.tsx ADDED
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+
3
+ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
4
+ fullWidth?: boolean;
5
+ error?: string;
6
+ }
7
+
8
+ export const Input: React.FC<InputProps> = ({
9
+ fullWidth = false,
10
+ error,
11
+ ...props
12
+ }) => {
13
+ return (
14
+ <div
15
+ className={`ui-flex ui-flex-col ui-gap-1 ${fullWidth ? "ui-w-full" : ""}`}
16
+ >
17
+ <input
18
+ className={`ui-bg-transparent ui-text-black dark:ui-text-white ui-p-3 ui-rounded ui-border ui-border-zinc-300 ui-outline-none ui-placeholder-zinc-400 dark:ui-placeholder-zinc-600 ${
19
+ fullWidth ? "ui-w-full" : ""
20
+ }`}
21
+ {...props}
22
+ />
23
+ <span className="ui-text-red-500 ui-text-xs">{error}</span>
24
+ </div>
25
+ );
26
+ };
package/src/modal.tsx ADDED
@@ -0,0 +1,82 @@
1
+ import {
2
+ ReactNode,
3
+ HTMLAttributes,
4
+ ButtonHTMLAttributes,
5
+ forwardRef,
6
+ } from "react";
7
+ import { cn } from "../lib/utils";
8
+
9
+ interface WithChildrenProps extends HTMLAttributes<HTMLDivElement> {
10
+ children: ReactNode;
11
+ }
12
+
13
+ export const ModalAnchor = forwardRef<HTMLDivElement, WithChildrenProps>(
14
+ ({ className, children, ...props }, ref) => {
15
+ return (
16
+ <div
17
+ ref={ref}
18
+ className={cn(
19
+ "ui-flex ui-p-4 ui-justify-center ui-items-center ui-fixed ui-inset-0 ui-h-screen ui-w-screen ui-z-[999] dark:ui-bg-white/20 ui-bg-black/50 ui-backdrop-blur-sm",
20
+ className,
21
+ )}
22
+ {...props}
23
+ >
24
+ {children}
25
+ </div>
26
+ );
27
+ },
28
+ );
29
+
30
+ export const Modal = ({ className, children, ...props }: WithChildrenProps) => {
31
+ return (
32
+ <div
33
+ className={cn(
34
+ "ui-relative ui-w-full ui-max-w-[465px] ui-text-black ui-rounded ui-z-[1000] ui-bg-white dark:ui-bg-zinc-900",
35
+ className,
36
+ )}
37
+ {...props}
38
+ >
39
+ {children}
40
+ </div>
41
+ );
42
+ };
43
+
44
+ interface ModalCloseProps extends ButtonHTMLAttributes<HTMLButtonElement> {
45
+ children: ReactNode;
46
+ }
47
+
48
+ export const ModalClose = ({
49
+ className,
50
+ children,
51
+ ...props
52
+ }: ModalCloseProps) => {
53
+ return (
54
+ <button
55
+ className={cn(
56
+ "ui-p-2 ui-rounded-lg ui-absolute ui-top-4 ui-right-4 ui-z-[1001] ui-border-none ui-flex ui-items-center ui-justify-center ui-bg-transparent ui-cursor-pointer hover:ui-bg-zinc-100",
57
+ className,
58
+ )}
59
+ {...props}
60
+ >
61
+ {children}
62
+ </button>
63
+ );
64
+ };
65
+
66
+ export const ModalSection = ({
67
+ className,
68
+ children,
69
+ ...props
70
+ }: WithChildrenProps) => {
71
+ return (
72
+ <div
73
+ className={cn(
74
+ "ui-inline-flex ui-w-full ui-h-full ui-p-10 ui-flex-col ui-items-start ui-justify-between ui-gap-4",
75
+ className,
76
+ )}
77
+ {...props}
78
+ >
79
+ {children}
80
+ </div>
81
+ );
82
+ };
@@ -0,0 +1,103 @@
1
+ import React, { useState, useEffect, useRef, ChangeEvent } from "react";
2
+
3
+ interface PinInputProps {
4
+ length?: number;
5
+ onComplete: (pin: string) => void;
6
+ error?: string;
7
+ setError: React.Dispatch<React.SetStateAction<string>>;
8
+ }
9
+
10
+ export const PinInput: React.FC<PinInputProps> = ({
11
+ length = 6,
12
+ onComplete,
13
+ error,
14
+ setError,
15
+ }) => {
16
+ const [pin, setPin] = useState(Array(length).fill(""));
17
+ const inputRefs = useRef<(HTMLInputElement | null)[]>(
18
+ Array(length).fill(null),
19
+ );
20
+
21
+ const handleInput = (index: number, value: string) => {
22
+ const newDigit = /^\d$/.test(value) ? value : "";
23
+ const newPin = [...pin];
24
+ newPin[index] = newDigit;
25
+
26
+ setPin(newPin);
27
+
28
+ if (!newPin.includes("")) {
29
+ onComplete(newPin.join(""));
30
+ }
31
+
32
+ if (index < length - 1 && newDigit !== "") {
33
+ inputRefs.current[index + 1]?.focus();
34
+ }
35
+ };
36
+
37
+ const handleBackspace = (index: number) => {
38
+ const newPin = [...pin];
39
+ if (index >= 0) {
40
+ newPin[index] = "";
41
+ inputRefs.current[index - 1]?.focus();
42
+ }
43
+
44
+ setPin(newPin);
45
+ };
46
+
47
+ useEffect(() => {
48
+ // Focus the first input on mount
49
+ inputRefs.current[0]?.focus();
50
+ }, []);
51
+
52
+ const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {
53
+ event.preventDefault();
54
+
55
+ const pastedData = event.clipboardData.getData("text");
56
+ const pastedDigits = pastedData
57
+ .split("")
58
+ .filter((char) => /^\d$/.test(char))
59
+ .slice(0, length);
60
+ const newPin = [...pin];
61
+
62
+ pastedDigits.forEach((digit, index) => {
63
+ if (index < length) {
64
+ newPin[index] = digit;
65
+ }
66
+ });
67
+
68
+ setPin(newPin);
69
+ onComplete(newPin.join(""));
70
+
71
+ inputRefs.current[Math.min(length - 1, pastedDigits.length - 1)]?.focus();
72
+ };
73
+
74
+ return (
75
+ <div className="ui-flex ui-w-full ui-justify-between">
76
+ {pin.map((value, index) => (
77
+ <input
78
+ key={index}
79
+ type="text"
80
+ value={value}
81
+ maxLength={1}
82
+ onChange={(e: ChangeEvent<HTMLInputElement>) => {
83
+ setError("");
84
+ handleInput(index, e.target.value);
85
+ }}
86
+ onKeyDown={(e) => {
87
+ if (e.key === "Backspace") {
88
+ handleBackspace(index);
89
+ }
90
+ }}
91
+ onPaste={handlePaste}
92
+ className={`ui-block ui-bg-transparent ui-text-black dark:ui-text-white ui-rounded-md ui-border-2 ui-text-center ui-text-sm ui-outline-none focus:ui-border-black focus:ui-ring-black dark:focus:ui-border-white dark:focus:ui-ring-white disabled:ui-pointer-events-none disabled:ui-opacity-50 ui-w-[50px] ui-h-[50px] ${
93
+ error
94
+ ? "ui-border-red-500"
95
+ : "ui-border-zinc-300 dark:ui-border-zinc-600"
96
+ }`}
97
+ autoFocus={index === 0}
98
+ ref={(ref) => (inputRefs.current[index] = ref)}
99
+ />
100
+ ))}
101
+ </div>
102
+ );
103
+ };
package/src/styles.css ADDED
@@ -0,0 +1,3 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
@@ -0,0 +1,10 @@
1
+ // tailwind config is required for editor support
2
+ import type { Config } from "tailwindcss";
3
+ import sharedConfig from "@burnt-labs/tailwind-config/tailwind.config.ts";
4
+
5
+ const config: Pick<Config, "prefix" | "presets"> = {
6
+ prefix: "ui-",
7
+ presets: [sharedConfig],
8
+ };
9
+
10
+ export default config;
package/tsconfig.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "extends": "@burnt-labs/tsconfig/react-library.json",
3
+ "include": ["."],
4
+ "exclude": ["dist", "build", "node_modules"]
5
+ }
package/tsup.config.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { defineConfig, Options } from "tsup";
2
+
3
+ export default defineConfig((options: Options) => ({
4
+ treeshake: true,
5
+ splitting: true,
6
+ entry: ["src/**/*.tsx"],
7
+ format: ["esm"],
8
+ dts: true,
9
+ minify: true,
10
+ clean: true,
11
+ external: ["react"],
12
+ ...options,
13
+ }));