@lightsound/cn 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -8
- package/dist/tw-merge.d.ts +3 -0
- package/dist/tw-merge.js +1 -0
- package/package.json +16 -4
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ A tiny, **blazing fast** utility for constructing `className` strings conditiona
|
|
|
9
9
|
|
|
10
10
|
## Features
|
|
11
11
|
|
|
12
|
-
- **Blazing Fast**: Up to
|
|
12
|
+
- **Blazing Fast**: Up to 32% faster than `clsx/lite`
|
|
13
13
|
- **Tiny**: ~130B gzipped (smaller than clsx/lite!)
|
|
14
14
|
- **TypeScript**: Full type support out of the box
|
|
15
15
|
- **Simple API**: Strings only - no objects, no arrays, maximum performance
|
|
@@ -22,7 +22,7 @@ A tiny, **blazing fast** utility for constructing `className` strings conditiona
|
|
|
22
22
|
| Strings only | ✅ | ✅ | ❌ |
|
|
23
23
|
| Objects support | ❌ | ❌ | ✅ |
|
|
24
24
|
| Arrays support | ❌ | ❌ | ✅ |
|
|
25
|
-
| Size (gzip) | ~130B | ~
|
|
25
|
+
| Size (gzip) | ~130B | ~141B | ~239B |
|
|
26
26
|
| Performance | ⚡⚡⚡ | ⚡⚡ | ⚡ |
|
|
27
27
|
|
|
28
28
|
If you only use string-based class composition (the most common pattern with Tailwind CSS), `@lightsound/cn` provides the best performance.
|
|
@@ -34,10 +34,10 @@ If you only use string-based class composition (the most common pattern with Tai
|
|
|
34
34
|
<!-- BENCHMARK_START -->
|
|
35
35
|
| Test Case | @lightsound/cn | clsx/lite | Improvement |
|
|
36
36
|
| --------- | -------------- | --------- | ----------- |
|
|
37
|
-
| 2 strings |
|
|
38
|
-
| 3 strings | 52.
|
|
39
|
-
| 5 strings |
|
|
40
|
-
| 10 strings |
|
|
37
|
+
| 2 strings | 34.89 ns | 51.66 ns | **32% faster** |
|
|
38
|
+
| 3 strings | 52.59 ns | 67.13 ns | **22% faster** |
|
|
39
|
+
| 5 strings | 66.69 ns | 86.46 ns | **23% faster** |
|
|
40
|
+
| 10 strings | 110.42 ns | 153.52 ns | **28% faster** |
|
|
41
41
|
<!-- BENCHMARK_END -->
|
|
42
42
|
|
|
43
43
|
## Installation
|
|
@@ -129,14 +129,44 @@ Note that runtime behavior differs from `clsx/lite` when passing unsupported typ
|
|
|
129
129
|
|
|
130
130
|
If you're using JavaScript, ensure your codebase only passes strings and falsy values to `cn()`.
|
|
131
131
|
|
|
132
|
+
## Using with Tailwind Merge
|
|
133
|
+
|
|
134
|
+
If you need to merge Tailwind CSS classes (resolving conflicts like `px-2` and `p-3`), use `tc` from `@lightsound/cn/tw-merge`:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# Install tailwind-merge as a peer dependency
|
|
138
|
+
bun add tailwind-merge
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
import { tc } from "@lightsound/cn/tw-merge";
|
|
143
|
+
|
|
144
|
+
// Conflicting classes are merged intelligently
|
|
145
|
+
tc("px-2 py-1", "p-3");
|
|
146
|
+
// => 'p-3'
|
|
147
|
+
|
|
148
|
+
tc("text-red-500", "text-blue-500");
|
|
149
|
+
// => 'text-blue-500'
|
|
150
|
+
|
|
151
|
+
tc("bg-gray-100 text-gray-900", "bg-blue-500 text-white");
|
|
152
|
+
// => 'bg-blue-500 text-white'
|
|
153
|
+
|
|
154
|
+
// Works with conditional classes too
|
|
155
|
+
tc("text-gray-500", isActive && "text-blue-500");
|
|
156
|
+
// => 'text-blue-500' (if isActive is true)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
> **Note**: `tc` requires `tailwind-merge` to be installed separately. If you only need `cn`, you don't need to install `tailwind-merge`.
|
|
160
|
+
|
|
132
161
|
## Tailwind CSS IntelliSense
|
|
133
162
|
|
|
134
|
-
To enable Tailwind CSS IntelliSense for `cn()`, add this to your VS Code settings:
|
|
163
|
+
To enable Tailwind CSS IntelliSense for `cn()` and `tc()`, add this to your VS Code settings:
|
|
135
164
|
|
|
136
165
|
```json
|
|
137
166
|
{
|
|
138
167
|
"tailwindCSS.experimental.classRegex": [
|
|
139
|
-
["cn\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
|
|
168
|
+
["cn\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"],
|
|
169
|
+
["tc\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
|
|
140
170
|
]
|
|
141
171
|
}
|
|
142
172
|
```
|
package/dist/tw-merge.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function K0(){var q=0,Q=arguments.length,H="",J;for(;q<Q;q++)if(J=arguments[q])H=H?H+" "+J:J;return H}var M0=(q,Q)=>{let H=Array(q.length+Q.length);for(let J=0;J<q.length;J++)H[J]=q[J];for(let J=0;J<Q.length;J++)H[q.length+J]=Q[J];return H},U0=(q,Q)=>({classGroupId:q,validator:Q}),w0=(q=new Map,Q=null,H)=>({nextPart:q,validators:Q,classGroupId:H});var F0=[];var I0=(q)=>{let Q=p0(q),{conflictingClassGroups:H,conflictingClassGroupModifiers:J}=q;return{getClassGroupId:(Z)=>{if(Z.startsWith("[")&&Z.endsWith("]"))return x0(Z);let z=Z.split("-"),D=z[0]===""&&z.length>1?1:0;return W0(z,D,Q)},getConflictingClassGroupIds:(Z,z)=>{if(z){let D=J[Z],T=H[Z];if(D){if(T)return M0(T,D);return D}return T||F0}return H[Z]||F0}}},W0=(q,Q,H)=>{if(q.length-Q===0)return H.classGroupId;let _=q[Q],V=H.nextPart.get(_);if(V){let T=W0(q,Q+1,V);if(T)return T}let Z=H.validators;if(Z===null)return;let z=Q===0?q.join("-"):q.slice(Q).join("-"),D=Z.length;for(let T=0;T<D;T++){let W=Z[T];if(W.validator(z))return W.classGroupId}return},x0=(q)=>q.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let Q=q.slice(1,-1),H=Q.indexOf(":"),J=Q.slice(0,H);return J?"arbitrary.."+J:void 0})(),p0=(q)=>{let{theme:Q,classGroups:H}=q;return h0(H,Q)},h0=(q,Q)=>{let H=w0();for(let J in q){let _=q[J];J0(_,H,J,Q)}return H},J0=(q,Q,H,J)=>{let _=q.length;for(let V=0;V<_;V++){let Z=q[V];S0(Z,Q,H,J)}},S0=(q,Q,H,J)=>{if(typeof q==="string"){v0(q,Q,H);return}if(typeof q==="function"){f0(q,Q,H,J);return}C0(q,Q,H,J)},v0=(q,Q,H)=>{let J=q===""?Q:L0(Q,q);J.classGroupId=H},f0=(q,Q,H,J)=>{if(b0(q)){J0(q(J),Q,H,J);return}if(Q.validators===null)Q.validators=[];Q.validators.push(U0(H,q))},C0=(q,Q,H,J)=>{let _=Object.entries(q),V=_.length;for(let Z=0;Z<V;Z++){let[z,D]=_[Z];J0(D,L0(Q,z),H,J)}},L0=(q,Q)=>{let H=q,J=Q.split("-"),_=J.length;for(let V=0;V<_;V++){let Z=J[V],z=H.nextPart.get(Z);if(!z)z=w0(),H.nextPart.set(Z,z);H=z}return H},b0=(q)=>("isThemeGetter"in q)&&q.isThemeGetter===!0,m0=(q)=>{if(q<1)return{get:()=>{return},set:()=>{}};let Q=0,H=Object.create(null),J=Object.create(null),_=(V,Z)=>{if(H[V]=Z,Q++,Q>q)Q=0,J=H,H=Object.create(null)};return{get(V){let Z=H[V];if(Z!==void 0)return Z;if((Z=J[V])!==void 0)return _(V,Z),Z},set(V,Z){if(V in H)H[V]=Z;else _(V,Z)}}};var d0=[],z0=(q,Q,H,J,_)=>({modifiers:q,hasImportantModifier:Q,baseClassName:H,maybePostfixModifierPosition:J,isExternal:_}),u0=(q)=>{let{prefix:Q,experimentalParseClassName:H}=q,J=(_)=>{let V=[],Z=0,z=0,D=0,T,W=_.length;for(let y=0;y<W;y++){let j=_[y];if(Z===0&&z===0){if(j===":"){V.push(_.slice(D,y)),D=y+1;continue}if(j==="/"){T=y;continue}}if(j==="[")Z++;else if(j==="]")Z--;else if(j==="(")z++;else if(j===")")z--}let A=V.length===0?_:_.slice(D),G=A,P=!1;if(A.endsWith("!"))G=A.slice(0,-1),P=!0;else if(A.startsWith("!"))G=A.slice(1),P=!0;let M=T&&T>D?T-D:void 0;return z0(V,P,G,M)};if(Q){let _=Q+":",V=J;J=(Z)=>Z.startsWith(_)?V(Z.slice(_.length)):z0(d0,!1,Z,void 0,!0)}if(H){let _=J;J=(V)=>H({className:V,parseClassName:_})}return J},g0=(q)=>{let Q=new Map;return q.orderSensitiveModifiers.forEach((H,J)=>{Q.set(H,1e6+J)}),(H)=>{let J=[],_=[];for(let V=0;V<H.length;V++){let Z=H[V],z=Z[0]==="[",D=Q.has(Z);if(z||D){if(_.length>0)_.sort(),J.push(..._),_=[];J.push(Z)}else _.push(Z)}if(_.length>0)_.sort(),J.push(..._);return J}},t0=(q)=>({cache:m0(q.cacheSize),parseClassName:u0(q),sortModifiers:g0(q),...I0(q)}),n0=/\s+/,r0=(q,Q)=>{let{parseClassName:H,getClassGroupId:J,getConflictingClassGroupIds:_,sortModifiers:V}=Q,Z=[],z=q.trim().split(n0),D="";for(let T=z.length-1;T>=0;T-=1){let W=z[T],{isExternal:A,modifiers:G,hasImportantModifier:P,baseClassName:M,maybePostfixModifierPosition:y}=H(W);if(A){D=W+(D.length>0?" "+D:D);continue}let j=!!y,U=J(j?M.substring(0,y):M);if(!U){if(!j){D=W+(D.length>0?" "+D:D);continue}if(U=J(M),!U){D=W+(D.length>0?" "+D:D);continue}j=!1}let g=G.length===0?"":G.length===1?G[0]:V(G).join(":"),m=P?g+"!":g,h=m+U;if(Z.indexOf(h)>-1)continue;Z.push(h);let S=_(U,j);for(let I=0;I<S.length;++I){let d=S[I];Z.push(m+d)}D=W+(D.length>0?" "+D:D)}return D},c0=(...q)=>{let Q=0,H,J,_="";while(Q<q.length)if(H=q[Q++]){if(J=j0(H))_&&(_+=" "),_+=J}return _},j0=(q)=>{if(typeof q==="string")return q;let Q,H="";for(let J=0;J<q.length;J++)if(q[J]){if(Q=j0(q[J]))H&&(H+=" "),H+=Q}return H},o0=(q,...Q)=>{let H,J,_,V,Z=(D)=>{let T=Q.reduce((W,A)=>A(W),q());return H=t0(T),J=H.cache.get,_=H.cache.set,V=z,z(D)},z=(D)=>{let T=J(D);if(T)return T;let W=r0(D,H);return _(D,W),W};return V=Z,(...D)=>V(c0(...D))},i0=[],E=(q)=>{let Q=(H)=>H[q]||i0;return Q.isThemeGetter=!0,Q},B0=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,A0=/^\((?:(\w[\w-]*):)?(.+)\)$/i,l0=/^\d+\/\d+$/,s0=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,a0=/\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$/,e0=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,qq=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Hq=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,f=(q)=>l0.test(q),F=(q)=>!!q&&!Number.isNaN(Number(q)),k=(q)=>!!q&&Number.isInteger(Number(q)),q0=(q)=>q.endsWith("%")&&F(q.slice(0,-1)),O=(q)=>s0.test(q),Jq=()=>!0,Qq=(q)=>a0.test(q)&&!e0.test(q),y0=()=>!1,Xq=(q)=>qq.test(q),Yq=(q)=>Hq.test(q),Zq=(q)=>!X(q)&&!Y(q),_q=(q)=>C(q,R0,y0),X=(q)=>B0.test(q),p=(q)=>C(q,O0,Qq),H0=(q)=>C(q,Fq,F),T0=(q)=>C(q,G0,y0),$q=(q)=>C(q,N0,Yq),i=(q)=>C(q,k0,Xq),Y=(q)=>A0.test(q),u=(q)=>b(q,O0),Dq=(q)=>b(q,zq),E0=(q)=>b(q,G0),Vq=(q)=>b(q,R0),Kq=(q)=>b(q,N0),l=(q)=>b(q,k0,!0),C=(q,Q,H)=>{let J=B0.exec(q);if(J){if(J[1])return Q(J[1]);return H(J[2])}return!1},b=(q,Q,H=!1)=>{let J=A0.exec(q);if(J){if(J[1])return Q(J[1]);return H}return!1},G0=(q)=>q==="position"||q==="percentage",N0=(q)=>q==="image"||q==="url",R0=(q)=>q==="length"||q==="size"||q==="bg-size",O0=(q)=>q==="length",Fq=(q)=>q==="number",zq=(q)=>q==="family-name",k0=(q)=>q==="shadow";var Tq=()=>{let q=E("color"),Q=E("font"),H=E("text"),J=E("font-weight"),_=E("tracking"),V=E("leading"),Z=E("breakpoint"),z=E("container"),D=E("spacing"),T=E("radius"),W=E("shadow"),A=E("inset-shadow"),G=E("text-shadow"),P=E("drop-shadow"),M=E("blur"),y=E("perspective"),j=E("aspect"),U=E("ease"),g=E("animate"),m=()=>["auto","avoid","all","avoid-page","page","left","right","column"],h=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],S=()=>[...h(),Y,X],I=()=>["auto","hidden","clip","visible","scroll"],d=()=>["auto","contain","none"],K=()=>[Y,X,D],N=()=>[f,"full","auto",...K()],Q0=()=>[k,"none","subgrid",Y,X],X0=()=>["auto",{span:["full",k,Y,X]},k,Y,X],t=()=>[k,"auto",Y,X],Y0=()=>["auto","min","max","fr",Y,X],s=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],v=()=>["start","end","center","stretch","center-safe","end-safe"],R=()=>["auto",...K()],x=()=>[f,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...K()],$=()=>[q,Y,X],Z0=()=>[...h(),E0,T0,{position:[Y,X]}],_0=()=>["no-repeat",{repeat:["","x","y","space","round"]}],$0=()=>["auto","cover","contain",Vq,_q,{size:[Y,X]}],a=()=>[q0,u,p],L=()=>["","none","full",T,Y,X],B=()=>["",F,u,p],n=()=>["solid","dashed","dotted","double"],D0=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],w=()=>[F,q0,E0,T0],V0=()=>["","none",M,Y,X],r=()=>["none",F,Y,X],c=()=>["none",F,Y,X],e=()=>[F,Y,X],o=()=>[f,"full",...K()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[O],breakpoint:[O],color:[Jq],container:[O],"drop-shadow":[O],ease:["in","out","in-out"],font:[Zq],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[O],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[O],shadow:[O],spacing:["px",F],text:[O],"text-shadow":[O],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",f,X,Y,j]}],container:["container"],columns:[{columns:[F,X,Y,z]}],"break-after":[{"break-after":m()}],"break-before":[{"break-before":m()}],"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:S()}],overflow:[{overflow:I()}],"overflow-x":[{"overflow-x":I()}],"overflow-y":[{"overflow-y":I()}],overscroll:[{overscroll:d()}],"overscroll-x":[{"overscroll-x":d()}],"overscroll-y":[{"overscroll-y":d()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:N()}],"inset-x":[{"inset-x":N()}],"inset-y":[{"inset-y":N()}],start:[{start:N()}],end:[{end:N()}],top:[{top:N()}],right:[{right:N()}],bottom:[{bottom:N()}],left:[{left:N()}],visibility:["visible","invisible","collapse"],z:[{z:[k,"auto",Y,X]}],basis:[{basis:[f,"full","auto",z,...K()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[F,f,"auto","initial","none",X]}],grow:[{grow:["",F,Y,X]}],shrink:[{shrink:["",F,Y,X]}],order:[{order:[k,"first","last","none",Y,X]}],"grid-cols":[{"grid-cols":Q0()}],"col-start-end":[{col:X0()}],"col-start":[{"col-start":t()}],"col-end":[{"col-end":t()}],"grid-rows":[{"grid-rows":Q0()}],"row-start-end":[{row:X0()}],"row-start":[{"row-start":t()}],"row-end":[{"row-end":t()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Y0()}],"auto-rows":[{"auto-rows":Y0()}],gap:[{gap:K()}],"gap-x":[{"gap-x":K()}],"gap-y":[{"gap-y":K()}],"justify-content":[{justify:[...s(),"normal"]}],"justify-items":[{"justify-items":[...v(),"normal"]}],"justify-self":[{"justify-self":["auto",...v()]}],"align-content":[{content:["normal",...s()]}],"align-items":[{items:[...v(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...v(),{baseline:["","last"]}]}],"place-content":[{"place-content":s()}],"place-items":[{"place-items":[...v(),"baseline"]}],"place-self":[{"place-self":["auto",...v()]}],p:[{p:K()}],px:[{px:K()}],py:[{py:K()}],ps:[{ps:K()}],pe:[{pe:K()}],pt:[{pt:K()}],pr:[{pr:K()}],pb:[{pb:K()}],pl:[{pl:K()}],m:[{m:R()}],mx:[{mx:R()}],my:[{my:R()}],ms:[{ms:R()}],me:[{me:R()}],mt:[{mt:R()}],mr:[{mr:R()}],mb:[{mb:R()}],ml:[{ml:R()}],"space-x":[{"space-x":K()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":K()}],"space-y-reverse":["space-y-reverse"],size:[{size:x()}],w:[{w:[z,"screen",...x()]}],"min-w":[{"min-w":[z,"screen","none",...x()]}],"max-w":[{"max-w":[z,"screen","none","prose",{screen:[Z]},...x()]}],h:[{h:["screen","lh",...x()]}],"min-h":[{"min-h":["screen","lh","none",...x()]}],"max-h":[{"max-h":["screen","lh",...x()]}],"font-size":[{text:["base",H,u,p]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[J,Y,H0]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",q0,X]}],"font-family":[{font:[Dq,X,Q]}],"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:[_,Y,X]}],"line-clamp":[{"line-clamp":[F,"none",Y,H0]}],leading:[{leading:[V,...K()]}],"list-image":[{"list-image":["none",Y,X]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Y,X]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:$()}],"text-color":[{text:$()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...n(),"wavy"]}],"text-decoration-thickness":[{decoration:[F,"from-font","auto",Y,p]}],"text-decoration-color":[{decoration:$()}],"underline-offset":[{"underline-offset":[F,"auto",Y,X]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:K()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Y,X]}],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",Y,X]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Z0()}],"bg-repeat":[{bg:_0()}],"bg-size":[{bg:$0()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},k,Y,X],radial:["",Y,X],conic:[k,Y,X]},Kq,$q]}],"bg-color":[{bg:$()}],"gradient-from-pos":[{from:a()}],"gradient-via-pos":[{via:a()}],"gradient-to-pos":[{to:a()}],"gradient-from":[{from:$()}],"gradient-via":[{via:$()}],"gradient-to":[{to:$()}],rounded:[{rounded:L()}],"rounded-s":[{"rounded-s":L()}],"rounded-e":[{"rounded-e":L()}],"rounded-t":[{"rounded-t":L()}],"rounded-r":[{"rounded-r":L()}],"rounded-b":[{"rounded-b":L()}],"rounded-l":[{"rounded-l":L()}],"rounded-ss":[{"rounded-ss":L()}],"rounded-se":[{"rounded-se":L()}],"rounded-ee":[{"rounded-ee":L()}],"rounded-es":[{"rounded-es":L()}],"rounded-tl":[{"rounded-tl":L()}],"rounded-tr":[{"rounded-tr":L()}],"rounded-br":[{"rounded-br":L()}],"rounded-bl":[{"rounded-bl":L()}],"border-w":[{border:B()}],"border-w-x":[{"border-x":B()}],"border-w-y":[{"border-y":B()}],"border-w-s":[{"border-s":B()}],"border-w-e":[{"border-e":B()}],"border-w-t":[{"border-t":B()}],"border-w-r":[{"border-r":B()}],"border-w-b":[{"border-b":B()}],"border-w-l":[{"border-l":B()}],"divide-x":[{"divide-x":B()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":B()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...n(),"hidden","none"]}],"divide-style":[{divide:[...n(),"hidden","none"]}],"border-color":[{border:$()}],"border-color-x":[{"border-x":$()}],"border-color-y":[{"border-y":$()}],"border-color-s":[{"border-s":$()}],"border-color-e":[{"border-e":$()}],"border-color-t":[{"border-t":$()}],"border-color-r":[{"border-r":$()}],"border-color-b":[{"border-b":$()}],"border-color-l":[{"border-l":$()}],"divide-color":[{divide:$()}],"outline-style":[{outline:[...n(),"none","hidden"]}],"outline-offset":[{"outline-offset":[F,Y,X]}],"outline-w":[{outline:["",F,u,p]}],"outline-color":[{outline:$()}],shadow:[{shadow:["","none",W,l,i]}],"shadow-color":[{shadow:$()}],"inset-shadow":[{"inset-shadow":["none",A,l,i]}],"inset-shadow-color":[{"inset-shadow":$()}],"ring-w":[{ring:B()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:$()}],"ring-offset-w":[{"ring-offset":[F,p]}],"ring-offset-color":[{"ring-offset":$()}],"inset-ring-w":[{"inset-ring":B()}],"inset-ring-color":[{"inset-ring":$()}],"text-shadow":[{"text-shadow":["none",G,l,i]}],"text-shadow-color":[{"text-shadow":$()}],opacity:[{opacity:[F,Y,X]}],"mix-blend":[{"mix-blend":[...D0(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":D0()}],"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":[F]}],"mask-image-linear-from-pos":[{"mask-linear-from":w()}],"mask-image-linear-to-pos":[{"mask-linear-to":w()}],"mask-image-linear-from-color":[{"mask-linear-from":$()}],"mask-image-linear-to-color":[{"mask-linear-to":$()}],"mask-image-t-from-pos":[{"mask-t-from":w()}],"mask-image-t-to-pos":[{"mask-t-to":w()}],"mask-image-t-from-color":[{"mask-t-from":$()}],"mask-image-t-to-color":[{"mask-t-to":$()}],"mask-image-r-from-pos":[{"mask-r-from":w()}],"mask-image-r-to-pos":[{"mask-r-to":w()}],"mask-image-r-from-color":[{"mask-r-from":$()}],"mask-image-r-to-color":[{"mask-r-to":$()}],"mask-image-b-from-pos":[{"mask-b-from":w()}],"mask-image-b-to-pos":[{"mask-b-to":w()}],"mask-image-b-from-color":[{"mask-b-from":$()}],"mask-image-b-to-color":[{"mask-b-to":$()}],"mask-image-l-from-pos":[{"mask-l-from":w()}],"mask-image-l-to-pos":[{"mask-l-to":w()}],"mask-image-l-from-color":[{"mask-l-from":$()}],"mask-image-l-to-color":[{"mask-l-to":$()}],"mask-image-x-from-pos":[{"mask-x-from":w()}],"mask-image-x-to-pos":[{"mask-x-to":w()}],"mask-image-x-from-color":[{"mask-x-from":$()}],"mask-image-x-to-color":[{"mask-x-to":$()}],"mask-image-y-from-pos":[{"mask-y-from":w()}],"mask-image-y-to-pos":[{"mask-y-to":w()}],"mask-image-y-from-color":[{"mask-y-from":$()}],"mask-image-y-to-color":[{"mask-y-to":$()}],"mask-image-radial":[{"mask-radial":[Y,X]}],"mask-image-radial-from-pos":[{"mask-radial-from":w()}],"mask-image-radial-to-pos":[{"mask-radial-to":w()}],"mask-image-radial-from-color":[{"mask-radial-from":$()}],"mask-image-radial-to-color":[{"mask-radial-to":$()}],"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":h()}],"mask-image-conic-pos":[{"mask-conic":[F]}],"mask-image-conic-from-pos":[{"mask-conic-from":w()}],"mask-image-conic-to-pos":[{"mask-conic-to":w()}],"mask-image-conic-from-color":[{"mask-conic-from":$()}],"mask-image-conic-to-color":[{"mask-conic-to":$()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Z0()}],"mask-repeat":[{mask:_0()}],"mask-size":[{mask:$0()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Y,X]}],filter:[{filter:["","none",Y,X]}],blur:[{blur:V0()}],brightness:[{brightness:[F,Y,X]}],contrast:[{contrast:[F,Y,X]}],"drop-shadow":[{"drop-shadow":["","none",P,l,i]}],"drop-shadow-color":[{"drop-shadow":$()}],grayscale:[{grayscale:["",F,Y,X]}],"hue-rotate":[{"hue-rotate":[F,Y,X]}],invert:[{invert:["",F,Y,X]}],saturate:[{saturate:[F,Y,X]}],sepia:[{sepia:["",F,Y,X]}],"backdrop-filter":[{"backdrop-filter":["","none",Y,X]}],"backdrop-blur":[{"backdrop-blur":V0()}],"backdrop-brightness":[{"backdrop-brightness":[F,Y,X]}],"backdrop-contrast":[{"backdrop-contrast":[F,Y,X]}],"backdrop-grayscale":[{"backdrop-grayscale":["",F,Y,X]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[F,Y,X]}],"backdrop-invert":[{"backdrop-invert":["",F,Y,X]}],"backdrop-opacity":[{"backdrop-opacity":[F,Y,X]}],"backdrop-saturate":[{"backdrop-saturate":[F,Y,X]}],"backdrop-sepia":[{"backdrop-sepia":["",F,Y,X]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":K()}],"border-spacing-x":[{"border-spacing-x":K()}],"border-spacing-y":[{"border-spacing-y":K()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Y,X]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[F,"initial",Y,X]}],ease:[{ease:["linear","initial",U,Y,X]}],delay:[{delay:[F,Y,X]}],animate:[{animate:["none",g,Y,X]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[y,Y,X]}],"perspective-origin":[{"perspective-origin":S()}],rotate:[{rotate:r()}],"rotate-x":[{"rotate-x":r()}],"rotate-y":[{"rotate-y":r()}],"rotate-z":[{"rotate-z":r()}],scale:[{scale:c()}],"scale-x":[{"scale-x":c()}],"scale-y":[{"scale-y":c()}],"scale-z":[{"scale-z":c()}],"scale-3d":["scale-3d"],skew:[{skew:e()}],"skew-x":[{"skew-x":e()}],"skew-y":[{"skew-y":e()}],transform:[{transform:[Y,X,"","none","gpu","cpu"]}],"transform-origin":[{origin:S()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:o()}],"translate-x":[{"translate-x":o()}],"translate-y":[{"translate-y":o()}],"translate-z":[{"translate-z":o()}],"translate-none":["translate-none"],accent:[{accent:$()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:$()}],"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",Y,X]}],"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":K()}],"scroll-mx":[{"scroll-mx":K()}],"scroll-my":[{"scroll-my":K()}],"scroll-ms":[{"scroll-ms":K()}],"scroll-me":[{"scroll-me":K()}],"scroll-mt":[{"scroll-mt":K()}],"scroll-mr":[{"scroll-mr":K()}],"scroll-mb":[{"scroll-mb":K()}],"scroll-ml":[{"scroll-ml":K()}],"scroll-p":[{"scroll-p":K()}],"scroll-px":[{"scroll-px":K()}],"scroll-py":[{"scroll-py":K()}],"scroll-ps":[{"scroll-ps":K()}],"scroll-pe":[{"scroll-pe":K()}],"scroll-pt":[{"scroll-pt":K()}],"scroll-pr":[{"scroll-pr":K()}],"scroll-pb":[{"scroll-pb":K()}],"scroll-pl":[{"scroll-pl":K()}],"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",Y,X]}],fill:[{fill:["none",...$()]}],"stroke-w":[{stroke:[F,u,p,H0]}],stroke:[{stroke:["none",...$()]}],"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"]}};var P0=o0(Tq);function jq(...q){return P0(K0(...q))}export{jq as tc};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lightsound/cn",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "A tiny, blazing fast utility for constructing className strings conditionally",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -10,6 +10,18 @@
|
|
|
10
10
|
".": {
|
|
11
11
|
"types": "./dist/index.d.ts",
|
|
12
12
|
"default": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./tw-merge": {
|
|
15
|
+
"types": "./dist/tw-merge.d.ts",
|
|
16
|
+
"default": "./dist/tw-merge.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"peerDependencies": {
|
|
20
|
+
"tailwind-merge": ">=2.0.0"
|
|
21
|
+
},
|
|
22
|
+
"peerDependenciesMeta": {
|
|
23
|
+
"tailwind-merge": {
|
|
24
|
+
"optional": true
|
|
13
25
|
}
|
|
14
26
|
},
|
|
15
27
|
"files": [
|
|
@@ -18,7 +30,7 @@
|
|
|
18
30
|
"sideEffects": false,
|
|
19
31
|
"scripts": {
|
|
20
32
|
"build": "bun run build:js && bun run build:types",
|
|
21
|
-
"build:js": "bun build src/index.ts --outdir dist --minify --target browser",
|
|
33
|
+
"build:js": "bun build src/index.ts src/tw-merge.ts --outdir dist --minify --target browser",
|
|
22
34
|
"build:types": "tsgo -p tsconfig.build.json",
|
|
23
35
|
"test": "bun test",
|
|
24
36
|
"test:watch": "bun test --watch",
|
|
@@ -26,7 +38,6 @@
|
|
|
26
38
|
"bench:ci": "bun run bench/ci.ts",
|
|
27
39
|
"check-size": "bun run scripts/check-size.ts",
|
|
28
40
|
"update-readme": "bun run scripts/update-readme.ts",
|
|
29
|
-
"prepublishOnly": "bun run build && bun run test",
|
|
30
41
|
"prepare": "husky"
|
|
31
42
|
},
|
|
32
43
|
"keywords": [
|
|
@@ -56,6 +67,7 @@
|
|
|
56
67
|
"@typescript/native-preview": "^7.0.0-dev.20251213.1",
|
|
57
68
|
"clsx": "*",
|
|
58
69
|
"husky": "^9.1.7",
|
|
59
|
-
"mitata": "^1.0.34"
|
|
70
|
+
"mitata": "^1.0.34",
|
|
71
|
+
"tailwind-merge": "^3.0.0"
|
|
60
72
|
}
|
|
61
73
|
}
|