@js-empire/emperor-ui 0.1.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 (119) hide show
  1. package/.prettierrc +10 -0
  2. package/.storybook/main.ts +33 -0
  3. package/.storybook/preview.ts +19 -0
  4. package/.storybook/vitest.setup.ts +7 -0
  5. package/README.md +1 -0
  6. package/dist/emperor-ui.js +3171 -0
  7. package/dist/emperor-ui.umd.cjs +6 -0
  8. package/dist/src/components/filter/filter.d.ts +3 -0
  9. package/dist/src/components/filter/index.d.ts +1 -0
  10. package/dist/src/components/footer/footer.d.ts +3 -0
  11. package/dist/src/components/footer/index.d.ts +1 -0
  12. package/dist/src/components/header/header.d.ts +9 -0
  13. package/dist/src/components/header/index.d.ts +1 -0
  14. package/dist/src/components/index.d.ts +8 -0
  15. package/dist/src/components/item-card/index.d.ts +1 -0
  16. package/dist/src/components/item-card/item-card.d.ts +3 -0
  17. package/dist/src/components/item-details/index.d.ts +1 -0
  18. package/dist/src/components/item-details/item-details.d.ts +3 -0
  19. package/dist/src/components/listings/index.d.ts +1 -0
  20. package/dist/src/components/listings/listings.d.ts +3 -0
  21. package/dist/src/components/nav-bar/index.d.ts +1 -0
  22. package/dist/src/components/nav-bar/nav-bar.d.ts +3 -0
  23. package/dist/src/components/scaffold/index.d.ts +1 -0
  24. package/dist/src/components/scaffold/scaffold.d.ts +3 -0
  25. package/dist/src/constants/defaults.d.ts +4 -0
  26. package/dist/src/constants/index.d.ts +1 -0
  27. package/dist/src/context/emperor-ui-context.d.ts +3 -0
  28. package/dist/src/context/index.d.ts +1 -0
  29. package/dist/src/examples/index.d.ts +1 -0
  30. package/dist/src/hooks/index.d.ts +1 -0
  31. package/dist/src/hooks/use-emperor-ui.d.ts +1 -0
  32. package/dist/src/index.d.ts +8 -0
  33. package/dist/src/providers/emperor-ui-provider.d.ts +3 -0
  34. package/dist/src/providers/index.d.ts +1 -0
  35. package/dist/src/types/components/filter/filter.d.ts +8 -0
  36. package/dist/src/types/components/filter/index.d.ts +1 -0
  37. package/dist/src/types/components/footer/footer.d.ts +8 -0
  38. package/dist/src/types/components/footer/index.d.ts +1 -0
  39. package/dist/src/types/components/header/header.d.ts +19 -0
  40. package/dist/src/types/components/header/index.d.ts +1 -0
  41. package/dist/src/types/components/index.d.ts +8 -0
  42. package/dist/src/types/components/item-card/index.d.ts +1 -0
  43. package/dist/src/types/components/item-card/item-card.d.ts +8 -0
  44. package/dist/src/types/components/item-details/index.d.ts +1 -0
  45. package/dist/src/types/components/item-details/item-details.d.ts +8 -0
  46. package/dist/src/types/components/listings/index.d.ts +1 -0
  47. package/dist/src/types/components/listings/listings.d.ts +8 -0
  48. package/dist/src/types/components/nav-bar/index.d.ts +1 -0
  49. package/dist/src/types/components/nav-bar/nav-bar.d.ts +8 -0
  50. package/dist/src/types/components/scaffold/index.d.ts +1 -0
  51. package/dist/src/types/components/scaffold/scaffold.d.ts +8 -0
  52. package/dist/src/types/context/emperor-ui.d.ts +31 -0
  53. package/dist/src/types/context/index.d.ts +1 -0
  54. package/dist/src/types/index.d.ts +3 -0
  55. package/dist/src/types/shared/components.d.ts +6 -0
  56. package/dist/src/types/shared/index.d.ts +1 -0
  57. package/dist/src/utils/cn.d.ts +3 -0
  58. package/dist/src/utils/index.d.ts +1 -0
  59. package/eslint.config.js +43 -0
  60. package/index.html +13 -0
  61. package/package.json +82 -0
  62. package/src/components/filter/filter.tsx +6 -0
  63. package/src/components/filter/index.ts +1 -0
  64. package/src/components/footer/footer.tsx +6 -0
  65. package/src/components/footer/index.ts +1 -0
  66. package/src/components/header/header.tsx +49 -0
  67. package/src/components/header/index.ts +1 -0
  68. package/src/components/index.ts +8 -0
  69. package/src/components/item-card/index.ts +1 -0
  70. package/src/components/item-card/item-card.tsx +6 -0
  71. package/src/components/item-details/index.ts +1 -0
  72. package/src/components/item-details/item-details.tsx +6 -0
  73. package/src/components/listings/index.ts +1 -0
  74. package/src/components/listings/listings.tsx +6 -0
  75. package/src/components/nav-bar/index.ts +1 -0
  76. package/src/components/nav-bar/nav-bar.tsx +6 -0
  77. package/src/components/scaffold/index.ts +1 -0
  78. package/src/components/scaffold/scaffold.tsx +15 -0
  79. package/src/constants/defaults.ts +22 -0
  80. package/src/constants/index.ts +1 -0
  81. package/src/context/emperor-ui-context.ts +6 -0
  82. package/src/context/index.ts +1 -0
  83. package/src/examples/index.ts +1 -0
  84. package/src/hooks/index.ts +1 -0
  85. package/src/hooks/use-emperor-ui.ts +12 -0
  86. package/src/index.css +1 -0
  87. package/src/index.ts +8 -0
  88. package/src/providers/emperor-ui-provider.tsx +31 -0
  89. package/src/providers/index.ts +1 -0
  90. package/src/types/components/filter/filter.ts +9 -0
  91. package/src/types/components/filter/index.ts +1 -0
  92. package/src/types/components/footer/footer.ts +9 -0
  93. package/src/types/components/footer/index.ts +1 -0
  94. package/src/types/components/header/header.ts +21 -0
  95. package/src/types/components/header/index.ts +1 -0
  96. package/src/types/components/index.ts +8 -0
  97. package/src/types/components/item-card/index.ts +1 -0
  98. package/src/types/components/item-card/item-card.ts +9 -0
  99. package/src/types/components/item-details/index.ts +1 -0
  100. package/src/types/components/item-details/item-details.ts +9 -0
  101. package/src/types/components/listings/index.ts +1 -0
  102. package/src/types/components/listings/listings.ts +9 -0
  103. package/src/types/components/nav-bar/index.ts +1 -0
  104. package/src/types/components/nav-bar/nav-bar.ts +9 -0
  105. package/src/types/components/scaffold/index.ts +1 -0
  106. package/src/types/components/scaffold/scaffold.ts +9 -0
  107. package/src/types/context/emperor-ui.ts +37 -0
  108. package/src/types/context/index.ts +1 -0
  109. package/src/types/index.ts +3 -0
  110. package/src/types/shared/components.ts +6 -0
  111. package/src/types/shared/index.ts +1 -0
  112. package/src/utils/cn.ts +6 -0
  113. package/src/utils/index.ts +1 -0
  114. package/tailwind.config.js +6 -0
  115. package/tsconfig.app.json +45 -0
  116. package/tsconfig.json +7 -0
  117. package/tsconfig.node.json +26 -0
  118. package/vite.config.ts +49 -0
  119. package/vitest.shims.d.ts +1 -0
@@ -0,0 +1,6 @@
1
+ (function(x,I){typeof exports=="object"&&typeof module<"u"?I(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],I):(x=typeof globalThis<"u"?globalThis:x||self,I(x.EmperorUI={},x.React))})(this,(function(x,I){"use strict";var le={exports:{}},re={};var we;function qe(){if(we)return re;we=1;var e=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function r(t,s,c){var l=null;if(c!==void 0&&(l=""+c),s.key!==void 0&&(l=""+s.key),"key"in s){c={};for(var p in s)p!=="key"&&(c[p]=s[p])}else c=s;return s=c.ref,{$$typeof:e,type:t,key:l,ref:s!==void 0?s:null,props:c}}return re.Fragment=n,re.jsx=r,re.jsxs=r,re}var te={};var xe;function He(){return xe||(xe=1,process.env.NODE_ENV!=="production"&&(function(){function e(o){if(o==null)return null;if(typeof o=="function")return o.$$typeof===pe?null:o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case w:return"Fragment";case Q:return"Profiler";case F:return"StrictMode";case G:return"Suspense";case X:return"SuspenseList";case fe:return"Activity"}if(typeof o=="object")switch(typeof o.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),o.$$typeof){case S:return"Portal";case D:return o.displayName||"Context";case J:return(o._context.displayName||"Context")+".Consumer";case Y:var f=o.render;return o=o.displayName,o||(o=f.displayName||f.name||"",o=o!==""?"ForwardRef("+o+")":"ForwardRef"),o;case m:return f=o.displayName||null,f!==null?f:e(o.type)||"Memo";case _:f=o._payload,o=o._init;try{return e(o(f))}catch{}}return null}function n(o){return""+o}function r(o){try{n(o);var f=!1}catch{f=!0}if(f){f=console;var h=f.error,k=typeof Symbol=="function"&&Symbol.toStringTag&&o[Symbol.toStringTag]||o.constructor.name||"Object";return h.call(f,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",k),n(o)}}function t(o){if(o===w)return"<>";if(typeof o=="object"&&o!==null&&o.$$typeof===_)return"<...>";try{var f=e(o);return f?"<"+f+">":"<...>"}catch{return"<...>"}}function s(){var o=W.A;return o===null?null:o.getOwner()}function c(){return Error("react-stack-top-frame")}function l(o){if(ne.call(o,"key")){var f=Object.getOwnPropertyDescriptor(o,"key").get;if(f&&f.isReactWarning)return!1}return o.key!==void 0}function p(o,f){function h(){P||(P=!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)",f))}h.isReactWarning=!0,Object.defineProperty(o,"key",{get:h,configurable:!0})}function u(){var o=e(this.type);return z[o]||(z[o]=!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.")),o=this.props.ref,o!==void 0?o:null}function g(o,f,h,k,V,K){var v=h.ref;return o={$$typeof:T,type:o,key:f,props:h,_owner:k},(v!==void 0?v:null)!==null?Object.defineProperty(o,"ref",{enumerable:!1,get:u}):Object.defineProperty(o,"ref",{enumerable:!1,value:null}),o._store={},Object.defineProperty(o._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(o,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(o,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:V}),Object.defineProperty(o,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:K}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o}function y(o,f,h,k,V,K){var v=f.children;if(v!==void 0)if(k)if(se(v)){for(k=0;k<v.length;k++)E(v[k]);Object.freeze&&Object.freeze(v)}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 E(v);if(ne.call(f,"key")){v=e(o);var L=Object.keys(f).filter(function(ee){return ee!=="key"});k=0<L.length?"{key: someKey, "+L.join(": ..., ")+": ...}":"{key: someKey}",ie[v+k]||(L=0<L.length?"{"+L.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
2
+ let props = %s;
3
+ <%s {...props} />
4
+ React keys must be passed directly to JSX without using spread:
5
+ let props = %s;
6
+ <%s key={someKey} {...props} />`,k,v,L,v),ie[v+k]=!0)}if(v=null,h!==void 0&&(r(h),v=""+h),l(f)&&(r(f.key),v=""+f.key),"key"in f){h={};for(var B in f)B!=="key"&&(h[B]=f[B])}else h=f;return v&&p(h,typeof o=="function"?o.displayName||o.name||"Unknown":o),g(o,v,h,s(),V,K)}function E(o){R(o)?o._store&&(o._store.validated=1):typeof o=="object"&&o!==null&&o.$$typeof===_&&(o._payload.status==="fulfilled"?R(o._payload.value)&&o._payload.value._store&&(o._payload.value._store.validated=1):o._store&&(o._store.validated=1))}function R(o){return typeof o=="object"&&o!==null&&o.$$typeof===T}var A=I,T=Symbol.for("react.transitional.element"),S=Symbol.for("react.portal"),w=Symbol.for("react.fragment"),F=Symbol.for("react.strict_mode"),Q=Symbol.for("react.profiler"),J=Symbol.for("react.consumer"),D=Symbol.for("react.context"),Y=Symbol.for("react.forward_ref"),G=Symbol.for("react.suspense"),X=Symbol.for("react.suspense_list"),m=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),fe=Symbol.for("react.activity"),pe=Symbol.for("react.client.reference"),W=A.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ne=Object.prototype.hasOwnProperty,se=Array.isArray,O=console.createTask?console.createTask:function(){return null};A={react_stack_bottom_frame:function(o){return o()}};var P,z={},d=A.react_stack_bottom_frame.bind(A,c)(),ae=O(t(c)),ie={};te.Fragment=w,te.jsx=function(o,f,h){var k=1e4>W.recentlyCreatedOwnerStacks++;return y(o,f,h,!1,k?Error("react-stack-top-frame"):d,k?O(t(o)):ae)},te.jsxs=function(o,f,h){var k=1e4>W.recentlyCreatedOwnerStacks++;return y(o,f,h,!0,k?Error("react-stack-top-frame"):d,k?O(t(o)):ae)}})()),te}var Ee;function Ze(){return Ee||(Ee=1,process.env.NODE_ENV==="production"?le.exports=qe():le.exports=He()),le.exports}var j=Ze();function Re(e){var n,r,t="";if(typeof e=="string"||typeof e=="number")t+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(n=0;n<s;n++)e[n]&&(r=Re(e[n]))&&(t&&(t+=" "),t+=r)}else for(r in e)e[r]&&(t&&(t+=" "),t+=r);return t}function Ce(){for(var e,n,r=0,t="",s=arguments.length;r<s;r++)(e=arguments[r])&&(n=Re(e))&&(t&&(t+=" "),t+=n);return t}const Qe=(e,n)=>{const r=new Array(e.length+n.length);for(let t=0;t<e.length;t++)r[t]=e[t];for(let t=0;t<n.length;t++)r[e.length+t]=n[t];return r},Ke=(e,n)=>({classGroupId:e,validator:n}),Se=(e=new Map,n=null,r)=>({nextPart:e,validators:n,classGroupId:r}),ce="-",Ae=[],er="arbitrary..",rr=e=>{const n=or(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:t}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return tr(l);const p=l.split(ce),u=p[0]===""&&p.length>1?1:0;return _e(p,u,n)},getConflictingClassGroupIds:(l,p)=>{if(p){const u=t[l],g=r[l];return u?g?Qe(g,u):u:g||Ae}return r[l]||Ae}}},_e=(e,n,r)=>{if(e.length-n===0)return r.classGroupId;const s=e[n],c=r.nextPart.get(s);if(c){const g=_e(e,n+1,c);if(g)return g}const l=r.validators;if(l===null)return;const p=n===0?e.join(ce):e.slice(n).join(ce),u=l.length;for(let g=0;g<u;g++){const y=l[g];if(y.validator(p))return y.classGroupId}},tr=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const n=e.slice(1,-1),r=n.indexOf(":"),t=n.slice(0,r);return t?er+t:void 0})(),or=e=>{const{theme:n,classGroups:r}=e;return nr(r,n)},nr=(e,n)=>{const r=Se();for(const t in e){const s=e[t];ge(s,r,t,n)}return r},ge=(e,n,r,t)=>{const s=e.length;for(let c=0;c<s;c++){const l=e[c];sr(l,n,r,t)}},sr=(e,n,r,t)=>{if(typeof e=="string"){ar(e,n,r);return}if(typeof e=="function"){ir(e,n,r,t);return}lr(e,n,r,t)},ar=(e,n,r)=>{const t=e===""?n:Te(n,e);t.classGroupId=r},ir=(e,n,r,t)=>{if(cr(e)){ge(e(t),n,r,t);return}n.validators===null&&(n.validators=[]),n.validators.push(Ke(r,e))},lr=(e,n,r,t)=>{const s=Object.entries(e),c=s.length;for(let l=0;l<c;l++){const[p,u]=s[l];ge(u,Te(n,p),r,t)}},Te=(e,n)=>{let r=e;const t=n.split(ce),s=t.length;for(let c=0;c<s;c++){const l=t[c];let p=r.nextPart.get(l);p||(p=Se(),r.nextPart.set(l,p)),r=p}return r},cr=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,dr=e=>{if(e<1)return{get:()=>{},set:()=>{}};let n=0,r=Object.create(null),t=Object.create(null);const s=(c,l)=>{r[c]=l,n++,n>e&&(n=0,t=r,r=Object.create(null))};return{get(c){let l=r[c];if(l!==void 0)return l;if((l=t[c])!==void 0)return s(c,l),l},set(c,l){c in r?r[c]=l:s(c,l)}}},he="!",Pe=":",ur=[],je=(e,n,r,t,s)=>({modifiers:e,hasImportantModifier:n,baseClassName:r,maybePostfixModifierPosition:t,isExternal:s}),mr=e=>{const{prefix:n,experimentalParseClassName:r}=e;let t=s=>{const c=[];let l=0,p=0,u=0,g;const y=s.length;for(let S=0;S<y;S++){const w=s[S];if(l===0&&p===0){if(w===Pe){c.push(s.slice(u,S)),u=S+1;continue}if(w==="/"){g=S;continue}}w==="["?l++:w==="]"?l--:w==="("?p++:w===")"&&p--}const E=c.length===0?s:s.slice(u);let R=E,A=!1;E.endsWith(he)?(R=E.slice(0,-1),A=!0):E.startsWith(he)&&(R=E.slice(1),A=!0);const T=g&&g>u?g-u:void 0;return je(c,A,R,T)};if(n){const s=n+Pe,c=t;t=l=>l.startsWith(s)?c(l.slice(s.length)):je(ur,!1,l,void 0,!0)}if(r){const s=t;t=c=>r({className:c,parseClassName:s})}return t},fr=e=>{const n=new Map;return e.orderSensitiveModifiers.forEach((r,t)=>{n.set(r,1e6+t)}),r=>{const t=[];let s=[];for(let c=0;c<r.length;c++){const l=r[c],p=l[0]==="[",u=n.has(l);p||u?(s.length>0&&(s.sort(),t.push(...s),s=[]),t.push(l)):s.push(l)}return s.length>0&&(s.sort(),t.push(...s)),t}},pr=e=>({cache:dr(e.cacheSize),parseClassName:mr(e),sortModifiers:fr(e),...rr(e)}),br=/\s+/,gr=(e,n)=>{const{parseClassName:r,getClassGroupId:t,getConflictingClassGroupIds:s,sortModifiers:c}=n,l=[],p=e.trim().split(br);let u="";for(let g=p.length-1;g>=0;g-=1){const y=p[g],{isExternal:E,modifiers:R,hasImportantModifier:A,baseClassName:T,maybePostfixModifierPosition:S}=r(y);if(E){u=y+(u.length>0?" "+u:u);continue}let w=!!S,F=t(w?T.substring(0,S):T);if(!F){if(!w){u=y+(u.length>0?" "+u:u);continue}if(F=t(T),!F){u=y+(u.length>0?" "+u:u);continue}w=!1}const Q=R.length===0?"":R.length===1?R[0]:c(R).join(":"),J=A?Q+he:Q,D=J+F;if(l.indexOf(D)>-1)continue;l.push(D);const Y=s(F,w);for(let G=0;G<Y.length;++G){const X=Y[G];l.push(J+X)}u=y+(u.length>0?" "+u:u)}return u},hr=(...e)=>{let n=0,r,t,s="";for(;n<e.length;)(r=e[n++])&&(t=Oe(r))&&(s&&(s+=" "),s+=t);return s},Oe=e=>{if(typeof e=="string")return e;let n,r="";for(let t=0;t<e.length;t++)e[t]&&(n=Oe(e[t]))&&(r&&(r+=" "),r+=n);return r},vr=(e,...n)=>{let r,t,s,c;const l=u=>{const g=n.reduce((y,E)=>E(y),e());return r=pr(g),t=r.cache.get,s=r.cache.set,c=p,p(u)},p=u=>{const g=t(u);if(g)return g;const y=gr(u,r);return s(u,y),y};return c=l,(...u)=>c(hr(...u))},kr=[],C=e=>{const n=r=>r[e]||kr;return n.isThemeGetter=!0,n},ze=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Ie=/^\((?:(\w[\w-]*):)?(.+)\)$/i,yr=/^\d+\/\d+$/,wr=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,xr=/\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$/,Er=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Rr=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Cr=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,q=e=>yr.test(e),b=e=>!!e&&!Number.isNaN(Number(e)),U=e=>!!e&&Number.isInteger(Number(e)),ve=e=>e.endsWith("%")&&b(e.slice(0,-1)),N=e=>wr.test(e),Sr=()=>!0,Ar=e=>xr.test(e)&&!Er.test(e),Ne=()=>!1,_r=e=>Rr.test(e),Tr=e=>Cr.test(e),Pr=e=>!a(e)&&!i(e),jr=e=>H(e,Le,Ne),a=e=>ze.test(e),$=e=>H(e,Ue,Ar),ke=e=>H(e,Mr,b),Me=e=>H(e,Ge,Ne),Or=e=>H(e,Ve,Tr),de=e=>H(e,De,_r),i=e=>Ie.test(e),oe=e=>Z(e,Ue),zr=e=>Z(e,Fr),Fe=e=>Z(e,Ge),Ir=e=>Z(e,Le),Nr=e=>Z(e,Ve),ue=e=>Z(e,De,!0),H=(e,n,r)=>{const t=ze.exec(e);return t?t[1]?n(t[1]):r(t[2]):!1},Z=(e,n,r=!1)=>{const t=Ie.exec(e);return t?t[1]?n(t[1]):r:!1},Ge=e=>e==="position"||e==="percentage",Ve=e=>e==="image"||e==="url",Le=e=>e==="length"||e==="size"||e==="bg-size",Ue=e=>e==="length",Mr=e=>e==="number",Fr=e=>e==="family-name",De=e=>e==="shadow",Gr=vr(()=>{const e=C("color"),n=C("font"),r=C("text"),t=C("font-weight"),s=C("tracking"),c=C("leading"),l=C("breakpoint"),p=C("container"),u=C("spacing"),g=C("radius"),y=C("shadow"),E=C("inset-shadow"),R=C("text-shadow"),A=C("drop-shadow"),T=C("blur"),S=C("perspective"),w=C("aspect"),F=C("ease"),Q=C("animate"),J=()=>["auto","avoid","all","avoid-page","page","left","right","column"],D=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Y=()=>[...D(),i,a],G=()=>["auto","hidden","clip","visible","scroll"],X=()=>["auto","contain","none"],m=()=>[i,a,u],_=()=>[q,"full","auto",...m()],fe=()=>[U,"none","subgrid",i,a],pe=()=>["auto",{span:["full",U,i,a]},U,i,a],W=()=>[U,"auto",i,a],ne=()=>["auto","min","max","fr",i,a],se=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],O=()=>["start","end","center","stretch","center-safe","end-safe"],P=()=>["auto",...m()],z=()=>[q,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...m()],d=()=>[e,i,a],ae=()=>[...D(),Fe,Me,{position:[i,a]}],ie=()=>["no-repeat",{repeat:["","x","y","space","round"]}],o=()=>["auto","cover","contain",Ir,jr,{size:[i,a]}],f=()=>[ve,oe,$],h=()=>["","none","full",g,i,a],k=()=>["",b,oe,$],V=()=>["solid","dashed","dotted","double"],K=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],v=()=>[b,ve,Fe,Me],L=()=>["","none",T,i,a],B=()=>["none",b,i,a],ee=()=>["none",b,i,a],ye=()=>[b,i,a],be=()=>[q,"full",...m()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[N],breakpoint:[N],color:[Sr],container:[N],"drop-shadow":[N],ease:["in","out","in-out"],font:[Pr],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[N],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[N],shadow:[N],spacing:["px",b],text:[N],"text-shadow":[N],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",q,a,i,w]}],container:["container"],columns:[{columns:[b,a,i,p]}],"break-after":[{"break-after":J()}],"break-before":[{"break-before":J()}],"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"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Y()}],overflow:[{overflow:G()}],"overflow-x":[{"overflow-x":G()}],"overflow-y":[{"overflow-y":G()}],overscroll:[{overscroll:X()}],"overscroll-x":[{"overscroll-x":X()}],"overscroll-y":[{"overscroll-y":X()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:_()}],"inset-x":[{"inset-x":_()}],"inset-y":[{"inset-y":_()}],start:[{start:_()}],end:[{end:_()}],top:[{top:_()}],right:[{right:_()}],bottom:[{bottom:_()}],left:[{left:_()}],visibility:["visible","invisible","collapse"],z:[{z:[U,"auto",i,a]}],basis:[{basis:[q,"full","auto",p,...m()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[b,q,"auto","initial","none",a]}],grow:[{grow:["",b,i,a]}],shrink:[{shrink:["",b,i,a]}],order:[{order:[U,"first","last","none",i,a]}],"grid-cols":[{"grid-cols":fe()}],"col-start-end":[{col:pe()}],"col-start":[{"col-start":W()}],"col-end":[{"col-end":W()}],"grid-rows":[{"grid-rows":fe()}],"row-start-end":[{row:pe()}],"row-start":[{"row-start":W()}],"row-end":[{"row-end":W()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ne()}],"auto-rows":[{"auto-rows":ne()}],gap:[{gap:m()}],"gap-x":[{"gap-x":m()}],"gap-y":[{"gap-y":m()}],"justify-content":[{justify:[...se(),"normal"]}],"justify-items":[{"justify-items":[...O(),"normal"]}],"justify-self":[{"justify-self":["auto",...O()]}],"align-content":[{content:["normal",...se()]}],"align-items":[{items:[...O(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...O(),{baseline:["","last"]}]}],"place-content":[{"place-content":se()}],"place-items":[{"place-items":[...O(),"baseline"]}],"place-self":[{"place-self":["auto",...O()]}],p:[{p:m()}],px:[{px:m()}],py:[{py:m()}],ps:[{ps:m()}],pe:[{pe:m()}],pt:[{pt:m()}],pr:[{pr:m()}],pb:[{pb:m()}],pl:[{pl:m()}],m:[{m:P()}],mx:[{mx:P()}],my:[{my:P()}],ms:[{ms:P()}],me:[{me:P()}],mt:[{mt:P()}],mr:[{mr:P()}],mb:[{mb:P()}],ml:[{ml:P()}],"space-x":[{"space-x":m()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":m()}],"space-y-reverse":["space-y-reverse"],size:[{size:z()}],w:[{w:[p,"screen",...z()]}],"min-w":[{"min-w":[p,"screen","none",...z()]}],"max-w":[{"max-w":[p,"screen","none","prose",{screen:[l]},...z()]}],h:[{h:["screen","lh",...z()]}],"min-h":[{"min-h":["screen","lh","none",...z()]}],"max-h":[{"max-h":["screen","lh",...z()]}],"font-size":[{text:["base",r,oe,$]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,i,ke]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ve,a]}],"font-family":[{font:[zr,a,n]}],"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-fractions"],tracking:[{tracking:[s,i,a]}],"line-clamp":[{"line-clamp":[b,"none",i,ke]}],leading:[{leading:[c,...m()]}],"list-image":[{"list-image":["none",i,a]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",i,a]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:d()}],"text-color":[{text:d()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...V(),"wavy"]}],"text-decoration-thickness":[{decoration:[b,"from-font","auto",i,$]}],"text-decoration-color":[{decoration:d()}],"underline-offset":[{"underline-offset":[b,"auto",i,a]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:m()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",i,a]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",i,a]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ae()}],"bg-repeat":[{bg:ie()}],"bg-size":[{bg:o()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},U,i,a],radial:["",i,a],conic:[U,i,a]},Nr,Or]}],"bg-color":[{bg:d()}],"gradient-from-pos":[{from:f()}],"gradient-via-pos":[{via:f()}],"gradient-to-pos":[{to:f()}],"gradient-from":[{from:d()}],"gradient-via":[{via:d()}],"gradient-to":[{to:d()}],rounded:[{rounded:h()}],"rounded-s":[{"rounded-s":h()}],"rounded-e":[{"rounded-e":h()}],"rounded-t":[{"rounded-t":h()}],"rounded-r":[{"rounded-r":h()}],"rounded-b":[{"rounded-b":h()}],"rounded-l":[{"rounded-l":h()}],"rounded-ss":[{"rounded-ss":h()}],"rounded-se":[{"rounded-se":h()}],"rounded-ee":[{"rounded-ee":h()}],"rounded-es":[{"rounded-es":h()}],"rounded-tl":[{"rounded-tl":h()}],"rounded-tr":[{"rounded-tr":h()}],"rounded-br":[{"rounded-br":h()}],"rounded-bl":[{"rounded-bl":h()}],"border-w":[{border:k()}],"border-w-x":[{"border-x":k()}],"border-w-y":[{"border-y":k()}],"border-w-s":[{"border-s":k()}],"border-w-e":[{"border-e":k()}],"border-w-t":[{"border-t":k()}],"border-w-r":[{"border-r":k()}],"border-w-b":[{"border-b":k()}],"border-w-l":[{"border-l":k()}],"divide-x":[{"divide-x":k()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":k()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...V(),"hidden","none"]}],"divide-style":[{divide:[...V(),"hidden","none"]}],"border-color":[{border:d()}],"border-color-x":[{"border-x":d()}],"border-color-y":[{"border-y":d()}],"border-color-s":[{"border-s":d()}],"border-color-e":[{"border-e":d()}],"border-color-t":[{"border-t":d()}],"border-color-r":[{"border-r":d()}],"border-color-b":[{"border-b":d()}],"border-color-l":[{"border-l":d()}],"divide-color":[{divide:d()}],"outline-style":[{outline:[...V(),"none","hidden"]}],"outline-offset":[{"outline-offset":[b,i,a]}],"outline-w":[{outline:["",b,oe,$]}],"outline-color":[{outline:d()}],shadow:[{shadow:["","none",y,ue,de]}],"shadow-color":[{shadow:d()}],"inset-shadow":[{"inset-shadow":["none",E,ue,de]}],"inset-shadow-color":[{"inset-shadow":d()}],"ring-w":[{ring:k()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:d()}],"ring-offset-w":[{"ring-offset":[b,$]}],"ring-offset-color":[{"ring-offset":d()}],"inset-ring-w":[{"inset-ring":k()}],"inset-ring-color":[{"inset-ring":d()}],"text-shadow":[{"text-shadow":["none",R,ue,de]}],"text-shadow-color":[{"text-shadow":d()}],opacity:[{opacity:[b,i,a]}],"mix-blend":[{"mix-blend":[...K(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":K()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[b]}],"mask-image-linear-from-pos":[{"mask-linear-from":v()}],"mask-image-linear-to-pos":[{"mask-linear-to":v()}],"mask-image-linear-from-color":[{"mask-linear-from":d()}],"mask-image-linear-to-color":[{"mask-linear-to":d()}],"mask-image-t-from-pos":[{"mask-t-from":v()}],"mask-image-t-to-pos":[{"mask-t-to":v()}],"mask-image-t-from-color":[{"mask-t-from":d()}],"mask-image-t-to-color":[{"mask-t-to":d()}],"mask-image-r-from-pos":[{"mask-r-from":v()}],"mask-image-r-to-pos":[{"mask-r-to":v()}],"mask-image-r-from-color":[{"mask-r-from":d()}],"mask-image-r-to-color":[{"mask-r-to":d()}],"mask-image-b-from-pos":[{"mask-b-from":v()}],"mask-image-b-to-pos":[{"mask-b-to":v()}],"mask-image-b-from-color":[{"mask-b-from":d()}],"mask-image-b-to-color":[{"mask-b-to":d()}],"mask-image-l-from-pos":[{"mask-l-from":v()}],"mask-image-l-to-pos":[{"mask-l-to":v()}],"mask-image-l-from-color":[{"mask-l-from":d()}],"mask-image-l-to-color":[{"mask-l-to":d()}],"mask-image-x-from-pos":[{"mask-x-from":v()}],"mask-image-x-to-pos":[{"mask-x-to":v()}],"mask-image-x-from-color":[{"mask-x-from":d()}],"mask-image-x-to-color":[{"mask-x-to":d()}],"mask-image-y-from-pos":[{"mask-y-from":v()}],"mask-image-y-to-pos":[{"mask-y-to":v()}],"mask-image-y-from-color":[{"mask-y-from":d()}],"mask-image-y-to-color":[{"mask-y-to":d()}],"mask-image-radial":[{"mask-radial":[i,a]}],"mask-image-radial-from-pos":[{"mask-radial-from":v()}],"mask-image-radial-to-pos":[{"mask-radial-to":v()}],"mask-image-radial-from-color":[{"mask-radial-from":d()}],"mask-image-radial-to-color":[{"mask-radial-to":d()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":D()}],"mask-image-conic-pos":[{"mask-conic":[b]}],"mask-image-conic-from-pos":[{"mask-conic-from":v()}],"mask-image-conic-to-pos":[{"mask-conic-to":v()}],"mask-image-conic-from-color":[{"mask-conic-from":d()}],"mask-image-conic-to-color":[{"mask-conic-to":d()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ae()}],"mask-repeat":[{mask:ie()}],"mask-size":[{mask:o()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",i,a]}],filter:[{filter:["","none",i,a]}],blur:[{blur:L()}],brightness:[{brightness:[b,i,a]}],contrast:[{contrast:[b,i,a]}],"drop-shadow":[{"drop-shadow":["","none",A,ue,de]}],"drop-shadow-color":[{"drop-shadow":d()}],grayscale:[{grayscale:["",b,i,a]}],"hue-rotate":[{"hue-rotate":[b,i,a]}],invert:[{invert:["",b,i,a]}],saturate:[{saturate:[b,i,a]}],sepia:[{sepia:["",b,i,a]}],"backdrop-filter":[{"backdrop-filter":["","none",i,a]}],"backdrop-blur":[{"backdrop-blur":L()}],"backdrop-brightness":[{"backdrop-brightness":[b,i,a]}],"backdrop-contrast":[{"backdrop-contrast":[b,i,a]}],"backdrop-grayscale":[{"backdrop-grayscale":["",b,i,a]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[b,i,a]}],"backdrop-invert":[{"backdrop-invert":["",b,i,a]}],"backdrop-opacity":[{"backdrop-opacity":[b,i,a]}],"backdrop-saturate":[{"backdrop-saturate":[b,i,a]}],"backdrop-sepia":[{"backdrop-sepia":["",b,i,a]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":m()}],"border-spacing-x":[{"border-spacing-x":m()}],"border-spacing-y":[{"border-spacing-y":m()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",i,a]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[b,"initial",i,a]}],ease:[{ease:["linear","initial",F,i,a]}],delay:[{delay:[b,i,a]}],animate:[{animate:["none",Q,i,a]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[S,i,a]}],"perspective-origin":[{"perspective-origin":Y()}],rotate:[{rotate:B()}],"rotate-x":[{"rotate-x":B()}],"rotate-y":[{"rotate-y":B()}],"rotate-z":[{"rotate-z":B()}],scale:[{scale:ee()}],"scale-x":[{"scale-x":ee()}],"scale-y":[{"scale-y":ee()}],"scale-z":[{"scale-z":ee()}],"scale-3d":["scale-3d"],skew:[{skew:ye()}],"skew-x":[{"skew-x":ye()}],"skew-y":[{"skew-y":ye()}],transform:[{transform:[i,a,"","none","gpu","cpu"]}],"transform-origin":[{origin:Y()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:be()}],"translate-x":[{"translate-x":be()}],"translate-y":[{"translate-y":be()}],"translate-z":[{"translate-z":be()}],"translate-none":["translate-none"],accent:[{accent:d()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:d()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],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,a]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":m()}],"scroll-mx":[{"scroll-mx":m()}],"scroll-my":[{"scroll-my":m()}],"scroll-ms":[{"scroll-ms":m()}],"scroll-me":[{"scroll-me":m()}],"scroll-mt":[{"scroll-mt":m()}],"scroll-mr":[{"scroll-mr":m()}],"scroll-mb":[{"scroll-mb":m()}],"scroll-ml":[{"scroll-ml":m()}],"scroll-p":[{"scroll-p":m()}],"scroll-px":[{"scroll-px":m()}],"scroll-py":[{"scroll-py":m()}],"scroll-ps":[{"scroll-ps":m()}],"scroll-pe":[{"scroll-pe":m()}],"scroll-pt":[{"scroll-pt":m()}],"scroll-pr":[{"scroll-pr":m()}],"scroll-pb":[{"scroll-pb":m()}],"scroll-pl":[{"scroll-pl":m()}],"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,a]}],fill:[{fill:["none",...d()]}],"stroke-w":[{stroke:[b,oe,$,ke]}],stroke:[{stroke:["none",...d()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},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"],size:["w","h"],"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-x","border-w-y","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-x","border-color-y","border-color-s","border-color-e","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"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"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"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function M(...e){return Gr(Ce(e))}function Vr({className:e}){return j.jsx("div",{className:M("",e),children:"Filter Component"})}function Lr({className:e}){return j.jsx("div",{className:M("",e),children:"ItemCard Component"})}const Ye=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,We=Ce,Ur=((e,n)=>r=>{var t;if(n?.variants==null)return We(e,r?.class,r?.className);const{variants:s,defaultVariants:c}=n,l=Object.keys(s).map(g=>{const y=r?.[g],E=c?.[g];if(y===null)return null;const R=Ye(y)||Ye(E);return s[g][R]}),p=r&&Object.entries(r).reduce((g,y)=>{let[E,R]=y;return R===void 0||(g[E]=R),g},{}),u=n==null||(t=n.compoundVariants)===null||t===void 0?void 0:t.reduce((g,y)=>{let{class:E,className:R,...A}=y;return Object.entries(A).every(T=>{let[S,w]=T;return Array.isArray(w)?w.includes({...c,...p}[S]):{...c,...p}[S]===w})?[...g,E,R]:g},[]);return We(e,l,u,r?.class,r?.className)})(["flex justify-center items-center min-h-16"],{variants:{variant:{primary:"bg-blue-500 text-white",secondary:"bg-gray-500 text-black"},padding:{sm:"p-2",md:"p-4",lg:"p-6"}},defaultVariants:{variant:"primary",padding:"md"},compoundVariants:[{variant:"primary",padding:"lg",class:"shadow-lg"},{variant:"secondary",padding:"sm",class:"border-2 border-black"}]}),Dr=I.forwardRef(({className:e,variant:n,padding:r,...t},s)=>j.jsx("header",{ref:s,className:M(Ur({variant:n,padding:r,className:e})),...t,children:"this is a header"}));function Yr({className:e}){return j.jsx("div",{className:M("",e),children:"Footer Component"})}function Wr({className:e}){return j.jsx("div",{className:M("",e),children:"ItemDetails Component"})}function Br({className:e}){return j.jsx("div",{className:M("",e),children:"Listings Component"})}function $r({className:e}){return j.jsx("div",{className:M("",e),children:"NavBar Component"})}const me=I.createContext(void 0);function Be(){const e=I.useContext(me);if(!e)throw new Error("useEmperorUI must be used within a EmperorUIProvider");return e}function $e({className:e,children:n}){const{config:r}=Be(),t=r?.theme?.colors?.background;return j.jsx("div",{className:M("flex flex-col",e),style:{backgroundColor:t},children:n})}const Je={primary:"#1E40AF",secondary:"#F59E0B",background:"#FFFFFF",text:"#111827",danger:"#DC2626",warning:"#D97706",info:"#3B82F6",success:"#16A34A"},Xe={theme:{mode:"dark",colors:Je},layout:{withScaffold:!0}};function Jr({children:e,config:n=Xe}){const r=I.useMemo(()=>({config:n}),[n]);return n.layout?.withScaffold??!0?j.jsx(me.Provider,{value:r,children:j.jsx($e,{children:e})}):j.jsx(me.Provider,{value:r,children:e})}x.EmperorUIContext=me,x.EmperorUIProvider=Jr,x.Filter=Vr,x.Footer=Yr,x.Header=Dr,x.ItemCard=Lr,x.ItemDetails=Wr,x.Listings=Br,x.NavBar=$r,x.Scaffold=$e,x.cn=M,x.defaultColorsPalette=Je,x.defaultEmperorUIConfig=Xe,x.useEmperorUI=Be,Object.defineProperty(x,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1,3 @@
1
+ import { FilterProps } from '../../types';
2
+
3
+ export declare function Filter({ className }: FilterProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './filter';
@@ -0,0 +1,3 @@
1
+ import { ItemCardProps } from 'src';
2
+
3
+ export declare function ItemCard({ className }: ItemCardProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './footer';
@@ -0,0 +1,9 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+
3
+ export declare const Header: import('react').ForwardRefExoticComponent<Omit<import('react').ClassAttributes<HTMLElement> & import('react').HTMLAttributes<HTMLElement> & VariantProps<(props?: ({
4
+ variant?: "primary" | "secondary" | null | undefined;
5
+ padding?: "sm" | "md" | "lg" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string> & import('../../types').SharedComponentProps & {
7
+ variant?: "default" | "compact";
8
+ classNames?: import('../../types').HeaderClassnames;
9
+ }, "ref"> & import('react').RefAttributes<HTMLElement>>;
@@ -0,0 +1 @@
1
+ export * from './header';
@@ -0,0 +1,8 @@
1
+ export * from './filter';
2
+ export * from './footer';
3
+ export * from './header';
4
+ export * from './item-card';
5
+ export * from './item-details';
6
+ export * from './listings';
7
+ export * from './nav-bar';
8
+ export * from './scaffold';
@@ -0,0 +1 @@
1
+ export * from './item-card';
@@ -0,0 +1,3 @@
1
+ import { FooterProps } from '../../types';
2
+
3
+ export declare function Footer({ className }: FooterProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './item-details';
@@ -0,0 +1,3 @@
1
+ import { ItemDetailsProps } from 'src';
2
+
3
+ export declare function ItemDetails({ className }: ItemDetailsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './listings';
@@ -0,0 +1,3 @@
1
+ import { ListingsProps } from 'src';
2
+
3
+ export declare function Listings({ className }: ListingsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './nav-bar';
@@ -0,0 +1,3 @@
1
+ import { NavBarProps } from 'src';
2
+
3
+ export declare function NavBar({ className }: NavBarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './scaffold';
@@ -0,0 +1,3 @@
1
+ import { ScaffoldProps } from '../../types';
2
+
3
+ export declare function Scaffold({ className, children }: ScaffoldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { ColorsPalette, EmperorUIConfig } from '../types';
2
+
3
+ export declare const defaultColorsPalette: ColorsPalette;
4
+ export declare const defaultEmperorUIConfig: EmperorUIConfig;
@@ -0,0 +1 @@
1
+ export * from './defaults';
@@ -0,0 +1,3 @@
1
+ import { EmperorUIContextState } from '../types';
2
+
3
+ export declare const EmperorUIContext: import('react').Context<EmperorUIContextState | undefined>;
@@ -0,0 +1 @@
1
+ export * from './emperor-ui-context';
@@ -0,0 +1 @@
1
+ export * from './';
@@ -0,0 +1 @@
1
+ export * from './use-emperor-ui';
@@ -0,0 +1 @@
1
+ export declare function useEmperorUI(): import('..').EmperorUIContextState;
@@ -0,0 +1,8 @@
1
+ export * from './components';
2
+ export type * from './types';
3
+ export * from './utils';
4
+ export * from './providers';
5
+ export * from './context';
6
+ export * from './hooks';
7
+ export * from './constants';
8
+ export * from './examples';
@@ -0,0 +1,3 @@
1
+ import { EmperorUIProviderProps } from '../types';
2
+
3
+ export declare function EmperorUIProvider({ children, config, }: EmperorUIProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './emperor-ui-provider';
@@ -0,0 +1,8 @@
1
+ import { SharedComponentProps } from '../..';
2
+
3
+ export type FilterClassnames = {
4
+ base?: string;
5
+ };
6
+ export type FilterProps = SharedComponentProps & {
7
+ classNames?: FilterClassnames;
8
+ };
@@ -0,0 +1 @@
1
+ export type * from './filter';
@@ -0,0 +1,8 @@
1
+ import { SharedComponentProps } from '../..';
2
+
3
+ export type FooterClassnames = {
4
+ base?: string;
5
+ };
6
+ export type FooterProps = SharedComponentProps & {
7
+ classNames?: FooterClassnames;
8
+ };
@@ -0,0 +1 @@
1
+ export type * from './footer';
@@ -0,0 +1,19 @@
1
+ import { SharedComponentProps } from '../..';
2
+
3
+ export type HeaderClassnames = {
4
+ base?: string;
5
+ logo?: string;
6
+ navbar?: string;
7
+ userDropdown?: string;
8
+ sideMenu?: string;
9
+ };
10
+ export type HeaderActivations = {
11
+ hideLog?: boolean;
12
+ hideNavbar?: boolean;
13
+ hideUserDropdown?: boolean;
14
+ hideSideMenu?: boolean;
15
+ };
16
+ export type HeaderProps = SharedComponentProps & {
17
+ variant?: "default" | "compact";
18
+ classNames?: HeaderClassnames;
19
+ };
@@ -0,0 +1 @@
1
+ export type * from './header';
@@ -0,0 +1,8 @@
1
+ export type * from './header';
2
+ export type * from './listings';
3
+ export type * from './nav-bar';
4
+ export type * from './scaffold';
5
+ export type * from './filter';
6
+ export type * from './footer';
7
+ export type * from './item-card';
8
+ export type * from './item-details';
@@ -0,0 +1 @@
1
+ export type * from './item-card';
@@ -0,0 +1,8 @@
1
+ import { SharedComponentProps } from '../..';
2
+
3
+ export type ItemCardClassnames = {
4
+ base?: string;
5
+ };
6
+ export type ItemCardProps = SharedComponentProps & {
7
+ classNames?: ItemCardClassnames;
8
+ };
@@ -0,0 +1 @@
1
+ export type * from './item-details';
@@ -0,0 +1,8 @@
1
+ import { SharedComponentProps } from '../..';
2
+
3
+ export type ItemDetailsClassnames = {
4
+ base?: string;
5
+ };
6
+ export type ItemDetailsProps = SharedComponentProps & {
7
+ classNames?: ItemDetailsClassnames;
8
+ };
@@ -0,0 +1 @@
1
+ export type * from './listings';
@@ -0,0 +1,8 @@
1
+ import { SharedComponentProps } from '../..';
2
+
3
+ export type ListingsClassnames = {
4
+ base?: string;
5
+ };
6
+ export type ListingsProps = SharedComponentProps & {
7
+ classNames?: ListingsClassnames;
8
+ };
@@ -0,0 +1 @@
1
+ export type * from './nav-bar';
@@ -0,0 +1,8 @@
1
+ import { SharedComponentProps } from '../..';
2
+
3
+ export type NavBarClassnames = {
4
+ base?: string;
5
+ };
6
+ export type NavBarProps = SharedComponentProps & {
7
+ classNames?: NavBarClassnames;
8
+ };
@@ -0,0 +1 @@
1
+ export type * from './scaffold';
@@ -0,0 +1,8 @@
1
+ import { SharedComponentProps } from '../..';
2
+
3
+ export type ScaffoldClassnames = {
4
+ base?: string;
5
+ };
6
+ export type ScaffoldProps = SharedComponentProps & {
7
+ classNames?: ScaffoldClassnames;
8
+ };
@@ -0,0 +1,31 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export type EmperorUIContextState = {
4
+ config: EmperorUIConfig;
5
+ };
6
+ export type EmperorUIProviderProps = {
7
+ children: ReactNode;
8
+ config: EmperorUIConfig;
9
+ };
10
+ export type ColorMode = "light" | "dark";
11
+ export type ColorsPalette = {
12
+ primary: string;
13
+ secondary: string;
14
+ success: string;
15
+ danger: string;
16
+ warning: string;
17
+ info: string;
18
+ background: string;
19
+ text: string;
20
+ };
21
+ export type EmperorUITheme = {
22
+ mode: ColorMode;
23
+ colors: Partial<ColorsPalette>;
24
+ };
25
+ export type EmperorUILayout = {
26
+ withScaffold: boolean;
27
+ };
28
+ export type EmperorUIConfig = {
29
+ theme?: Partial<EmperorUITheme>;
30
+ layout?: Partial<EmperorUILayout>;
31
+ };
@@ -0,0 +1 @@
1
+ export type * from './emperor-ui';
@@ -0,0 +1,3 @@
1
+ export type * from './components';
2
+ export type * from './shared';
3
+ export type * from './context';
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export type SharedComponentProps = {
4
+ className?: string;
5
+ children?: ReactNode;
6
+ };
@@ -0,0 +1 @@
1
+ export type * from './components';
@@ -0,0 +1,3 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ export declare function cn(...classes: ClassValue[]): string;
@@ -0,0 +1 @@
1
+ export * from './cn';
@@ -0,0 +1,43 @@
1
+ // For more info, see https://github.com/storybookjs/eslint-plugin-storybook#configuration-flat-config-format
2
+ import storybook from "eslint-plugin-storybook";
3
+
4
+ import js from "@eslint/js";
5
+ import globals from "globals";
6
+ import reactHooks from "eslint-plugin-react-hooks";
7
+ import reactRefresh from "eslint-plugin-react-refresh";
8
+ import tseslint from "typescript-eslint";
9
+ import { defineConfig, globalIgnores } from "eslint/config";
10
+
11
+ export default defineConfig([
12
+ globalIgnores(["dist"]),
13
+ {
14
+ files: ["**/*.{ts,tsx}"],
15
+ extends: [
16
+ js.configs.recommended,
17
+ tseslint.configs.recommended,
18
+ reactHooks.configs.flat.recommended,
19
+ reactRefresh.configs.vite,
20
+ "eslint:recommended",
21
+ "plugin:@typescript-eslint/recommended",
22
+ "plugin:react-hooks/recommended",
23
+ "plugin:storybook/recommended"
24
+ ],
25
+ ignorePatterns: ["dist", ".eslintrc.cjs"],
26
+ parser: "@typescript-eslint/parser",
27
+ plugins: ["react-refresh"],
28
+ languageOptions: {
29
+ ecmaVersion: 2020,
30
+ globals: globals.browser,
31
+ },
32
+ rules: {
33
+ "react-refresh/only-export-components": [
34
+ "warn",
35
+ { allowConstantExport: true },
36
+ ],
37
+ "@typescript-eslint/no-unused-vars": "off",
38
+ "@typescript-eslint/ban-types": "off",
39
+ "@typescript-eslint/no-explicit-any": "off",
40
+ },
41
+ },
42
+ ]);
43
+
package/index.html ADDED
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>emperor-ui</title>
8
+ </head>
9
+ <body>
10
+ <div id="root"></div>
11
+ <script type="module" src="/src/main.tsx"></script>
12
+ </body>
13
+ </html>
package/package.json ADDED
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "@js-empire/emperor-ui",
3
+ "description": "They provide the atoms, we provide the empire.",
4
+ "version": "0.1.0",
5
+ "author": "JS Empire - Mustafa Alhasanat",
6
+ "license": "ISC",
7
+ "type": "module",
8
+ "main": "dist/emperor-ui-umd.cjs",
9
+ "module": "dist/emperor-ui.js",
10
+ "keywords": [],
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/emperor-ui.js",
14
+ "require": "./dist/emperor-ui-umd.cjs"
15
+ }
16
+ },
17
+ "scripts": {
18
+ "dev": "vite",
19
+ "build": "vite build",
20
+ "globalize": "npm run build && npm link",
21
+ "format": "prettier --write .",
22
+ "lint": "eslint .",
23
+ "preview": "vite preview",
24
+ "storybook": "storybook dev -p 6006",
25
+ "build-storybook": "storybook build"
26
+ },
27
+ "publishConfig": {
28
+ "access": "public"
29
+ },
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/MustafaHasanat/emperor-ui"
33
+ },
34
+ "bugs": {
35
+ "url": "https://github.com/MustafaHasanat/emperor-ui/issues"
36
+ },
37
+ "homepage": "https://github.com/MustafaHasanat/emperor-ui#readme",
38
+ "release": {
39
+ "branches": [
40
+ "main"
41
+ ]
42
+ },
43
+ "dependencies": {
44
+ "@tailwindcss/vite": "^4.1.17",
45
+ "class-variance-authority": "^0.7.1",
46
+ "clsx": "^2.1.1",
47
+ "prettier": "^3.7.4",
48
+ "react": "^19.2.0",
49
+ "react-dom": "^19.2.0",
50
+ "tailwind-merge": "^3.4.0",
51
+ "tailwindcss": "^4.1.17",
52
+ "vite-tsconfig-paths": "^5.1.4"
53
+ },
54
+ "devDependencies": {
55
+ "@chromatic-com/storybook": "^4.1.3",
56
+ "@eslint/js": "^9.39.1",
57
+ "@storybook/addon-a11y": "^10.1.6",
58
+ "@storybook/addon-docs": "^10.1.6",
59
+ "@storybook/addon-vitest": "^10.1.6",
60
+ "@storybook/react-vite": "^10.1.6",
61
+ "@types/node": "^24.10.1",
62
+ "@types/react": "^19.2.5",
63
+ "@types/react-dom": "^19.2.3",
64
+ "@vitejs/plugin-react": "^5.1.1",
65
+ "@vitest/browser-playwright": "^4.0.15",
66
+ "@vitest/coverage-v8": "^4.0.15",
67
+ "eslint": "^9.39.1",
68
+ "eslint-plugin-react-hooks": "^7.0.1",
69
+ "eslint-plugin-react-refresh": "^0.4.24",
70
+ "eslint-plugin-storybook": "^10.1.6",
71
+ "globals": "^16.5.0",
72
+ "playwright": "^1.57.0",
73
+ "storybook": "^10.1.6",
74
+ "typescript": "~5.9.3",
75
+ "typescript-eslint": "^8.46.4",
76
+ "vite": "^7.2.4",
77
+ "vitest": "^4.0.15"
78
+ },
79
+ "resolutions": {
80
+ "jackspeak": "2.1.1"
81
+ }
82
+ }
@@ -0,0 +1,6 @@
1
+ import type { FilterProps } from "@types";
2
+ import { cn } from "@utils";
3
+
4
+ export function Filter({ className }: FilterProps) {
5
+ return <div className={cn("", className)}>Filter Component</div>;
6
+ }
@@ -0,0 +1 @@
1
+ export * from "./filter";
@@ -0,0 +1,6 @@
1
+ import type { ItemCardProps } from "src";
2
+ import { cn } from "@utils";
3
+
4
+ export function ItemCard({ className }: ItemCardProps) {
5
+ return <div className={cn("", className)}>ItemCard Component</div>;
6
+ }
@@ -0,0 +1 @@
1
+ export * from "./footer";