cssints 0.6.1 → 0.8.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 (147) hide show
  1. package/README.md +2 -2
  2. package/dist/clay-types.d.mts +87 -1
  3. package/dist/clay.d.mts +1 -1
  4. package/dist/clay.mjs +148 -7
  5. package/dist/group-common-ClVCSlR6.d.mts +1 -0
  6. package/dist/{group-types-4V0lZ9tn.d.mts → group-types-D1m9Whs0.d.mts} +1 -1
  7. package/dist/groups/baseline-2015/with-downstream.d.mts +4 -4
  8. package/dist/groups/baseline-2015.d.mts +4 -4
  9. package/dist/groups/baseline-2016/with-downstream.d.mts +4 -4
  10. package/dist/groups/baseline-2016.d.mts +4 -4
  11. package/dist/groups/baseline-2017/with-downstream.d.mts +4 -4
  12. package/dist/groups/baseline-2017.d.mts +4 -4
  13. package/dist/groups/baseline-2018/with-downstream.d.mts +4 -4
  14. package/dist/groups/baseline-2018.d.mts +4 -4
  15. package/dist/groups/baseline-2019/with-downstream.d.mts +4 -4
  16. package/dist/groups/baseline-2019.d.mts +4 -4
  17. package/dist/groups/baseline-2020/with-downstream.d.mts +4 -4
  18. package/dist/groups/baseline-2020.d.mts +4 -4
  19. package/dist/groups/baseline-2021/with-downstream.d.mts +4 -4
  20. package/dist/groups/baseline-2021.d.mts +4 -4
  21. package/dist/groups/baseline-2022/with-downstream.d.mts +4 -4
  22. package/dist/groups/baseline-2022.d.mts +4 -4
  23. package/dist/groups/baseline-2023/with-downstream.d.mts +4 -4
  24. package/dist/groups/baseline-2023.d.mts +4 -4
  25. package/dist/groups/baseline-2024/with-downstream.d.mts +4 -4
  26. package/dist/groups/baseline-2024.d.mts +4 -4
  27. package/dist/groups/baseline-2025/with-downstream.d.mts +4 -4
  28. package/dist/groups/baseline-2025.d.mts +4 -4
  29. package/dist/groups/baseline-2026/with-downstream.d.mts +2 -2
  30. package/dist/groups/baseline-2026.d.mts +2 -2
  31. package/dist/groups/compositing-2.d.mts +4 -4
  32. package/dist/groups/css-align-3.d.mts +4 -4
  33. package/dist/groups/css-anchor-position-1.d.mts +4 -4
  34. package/dist/groups/css-anchor-position-2.d.mts +4 -4
  35. package/dist/groups/css-animations-1.d.mts +4 -4
  36. package/dist/groups/css-animations-2.d.mts +4 -4
  37. package/dist/groups/css-backgrounds-3.d.mts +4 -4
  38. package/dist/groups/css-backgrounds-4.d.mts +4 -4
  39. package/dist/groups/css-borders-4.d.mts +4 -4
  40. package/dist/groups/css-box-4.d.mts +4 -4
  41. package/dist/groups/css-break-4.d.mts +4 -4
  42. package/dist/groups/css-cascade-5.d.mts +4 -4
  43. package/dist/groups/css-cascade-6.d.mts +4 -4
  44. package/dist/groups/css-color-4.d.mts +4 -4
  45. package/dist/groups/css-color-5.d.mts +4 -4
  46. package/dist/groups/css-color-6.d.mts +4 -4
  47. package/dist/groups/css-color-adjust-1.d.mts +4 -4
  48. package/dist/groups/css-color-hdr-1.d.mts +4 -4
  49. package/dist/groups/css-conditional-3.d.mts +4 -4
  50. package/dist/groups/css-conditional-4.d.mts +4 -4
  51. package/dist/groups/css-conditional-5.d.mts +4 -4
  52. package/dist/groups/css-contain-2.d.mts +4 -4
  53. package/dist/groups/css-content-3.d.mts +4 -4
  54. package/dist/groups/css-counter-styles-3.d.mts +4 -4
  55. package/dist/groups/css-display-4.d.mts +4 -4
  56. package/dist/groups/css-easing-2.d.mts +4 -4
  57. package/dist/groups/css-env-1.d.mts +4 -4
  58. package/dist/groups/css-flexbox-1.d.mts +4 -4
  59. package/dist/groups/css-fonts-4.d.mts +4 -4
  60. package/dist/groups/css-fonts-5.d.mts +4 -4
  61. package/dist/groups/css-forms-1.d.mts +4 -4
  62. package/dist/groups/css-gaps-1.d.mts +4 -4
  63. package/dist/groups/css-gcpm-3.d.mts +4 -4
  64. package/dist/groups/css-gcpm-4.d.mts +4 -4
  65. package/dist/groups/css-grid-2.d.mts +4 -4
  66. package/dist/groups/css-grid-3.d.mts +4 -4
  67. package/dist/groups/css-images-3.d.mts +4 -4
  68. package/dist/groups/css-images-4.d.mts +4 -4
  69. package/dist/groups/css-images-5.d.mts +4 -4
  70. package/dist/groups/css-inline-3.d.mts +4 -4
  71. package/dist/groups/css-lists-3.d.mts +4 -4
  72. package/dist/groups/css-logical-1.d.mts +4 -4
  73. package/dist/groups/css-masking-1.d.mts +4 -4
  74. package/dist/groups/css-multicol-2.d.mts +4 -4
  75. package/dist/groups/css-overflow-3.d.mts +4 -4
  76. package/dist/groups/css-overflow-4.d.mts +4 -4
  77. package/dist/groups/css-overflow-5.d.mts +4 -4
  78. package/dist/groups/css-overscroll-1.d.mts +4 -4
  79. package/dist/groups/css-page-3.d.mts +4 -4
  80. package/dist/groups/css-page-floats-3.d.mts +4 -4
  81. package/dist/groups/css-position-3.d.mts +4 -4
  82. package/dist/groups/css-position-4.d.mts +4 -4
  83. package/dist/groups/css-rhythm-1.d.mts +4 -4
  84. package/dist/groups/css-round-display-1.d.mts +4 -4
  85. package/dist/groups/css-ruby-1.d.mts +4 -4
  86. package/dist/groups/css-scroll-anchoring-1.d.mts +4 -4
  87. package/dist/groups/css-scroll-snap-1.d.mts +4 -4
  88. package/dist/groups/css-scroll-snap-2.d.mts +4 -4
  89. package/dist/groups/css-scrollbars-1.d.mts +4 -4
  90. package/dist/groups/css-shapes-1.d.mts +4 -4
  91. package/dist/groups/css-shapes-2.d.mts +4 -4
  92. package/dist/groups/css-size-adjust-1.d.mts +4 -4
  93. package/dist/groups/css-sizing-3.d.mts +4 -4
  94. package/dist/groups/css-sizing-4.d.mts +4 -4
  95. package/dist/groups/css-speech-1.d.mts +4 -4
  96. package/dist/groups/css-tables-3.d.mts +4 -4
  97. package/dist/groups/css-text-3.d.mts +4 -4
  98. package/dist/groups/css-text-4.d.mts +4 -4
  99. package/dist/groups/css-text-decor-3.d.mts +4 -4
  100. package/dist/groups/css-text-decor-4.d.mts +4 -4
  101. package/dist/groups/css-transforms-1.d.mts +4 -4
  102. package/dist/groups/css-transforms-2.d.mts +4 -4
  103. package/dist/groups/css-transitions-1.d.mts +4 -4
  104. package/dist/groups/css-transitions-2.d.mts +4 -4
  105. package/dist/groups/css-ui-4.d.mts +4 -4
  106. package/dist/groups/css-values-4.d.mts +4 -4
  107. package/dist/groups/css-values-5.d.mts +4 -4
  108. package/dist/groups/css-variables-2.d.mts +3 -3
  109. package/dist/groups/css-view-transitions-2.d.mts +4 -4
  110. package/dist/groups/css-viewport.d.mts +4 -4
  111. package/dist/groups/css-will-change-1.d.mts +4 -4
  112. package/dist/groups/css-writing-modes-4.d.mts +4 -4
  113. package/dist/groups/css2.d.mts +4 -4
  114. package/dist/groups/fill-stroke-3.d.mts +4 -4
  115. package/dist/groups/filter-effects-1.d.mts +4 -4
  116. package/dist/groups/filter-effects-2.d.mts +4 -4
  117. package/dist/groups/limited-availability.d.mts +2 -2
  118. package/dist/groups/mediaqueries-4.d.mts +4 -4
  119. package/dist/groups/mediaqueries-5.d.mts +4 -4
  120. package/dist/groups/motion-1.d.mts +4 -4
  121. package/dist/groups/newly-available/with-downstream.d.mts +4 -4
  122. package/dist/groups/newly-available.d.mts +4 -4
  123. package/dist/groups/not-discouraged.d.mts +4 -4
  124. package/dist/groups/scroll-animations-1.d.mts +4 -4
  125. package/dist/groups/selectors-4.d.mts +3 -3
  126. package/dist/groups/selectors-5.d.mts +3 -3
  127. package/dist/groups/widely-available/with-downstream.d.mts +4 -4
  128. package/dist/groups/widely-available.d.mts +4 -4
  129. package/dist/index.d.mts +16 -4
  130. package/dist/index.mjs +84 -16
  131. package/dist/{instrument-BN47aTEW.mjs → instrument-D68RkfDU.mjs} +7 -2
  132. package/dist/plugin-types.d.mts +1 -1
  133. package/dist/plugin.d.mts +1 -1
  134. package/dist/runtime.d.mts +1 -0
  135. package/dist/runtime.mjs +5 -1
  136. package/dist/{scope-Db73Iud8.d.mts → scope-xUS8MykU.d.mts} +1698 -1
  137. package/dist/surface.d.mts +1 -1
  138. package/dist/{theme-DBCyDih4.mjs → theme-C5cmxs1-.mjs} +4 -3
  139. package/dist/{theme-types-DVk08gse.d.mts → theme-types-C5OAtybo.d.mts} +1699 -2
  140. package/dist/tui-types.d.mts +1 -1
  141. package/dist/tui.mjs +1 -1
  142. package/dist/types.d.mts +2 -2
  143. package/dist/vite.mjs +1 -1
  144. package/docs/API.md +216 -6
  145. package/package.json +2 -2
  146. package/skills/cssints/SKILL.md +8 -3
  147. package/dist/group-common-D6TXTgPp.d.mts +0 -1
@@ -1,4 +1,4 @@
1
- import { d as createTokens, om as Part, rm as Check, u as createGlobalTheme } from "./theme-types-DVk08gse.mjs";
1
+ import { cm as Check, d as createTokens, dm as Part, u as createGlobalTheme } from "./theme-types-C5OAtybo.mjs";
2
2
  type Percent = `${number}%`;
3
3
  /** A number of cells (columns across, rows down) or a percentage of the parent. */
4
4
  export type Cells = number | Percent;
package/dist/tui.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as registry } from "./registry-8sYvlzyn.mjs";
2
- import { a as createTokens$1, i as createGlobalTheme$1, j as fail, s as sets } from "./theme-DBCyDih4.mjs";
2
+ import { a as createTokens$1, i as createGlobalTheme$1, j as fail, s as sets } from "./theme-C5cmxs1-.mjs";
3
3
  import { g as evaluate, h as css } from "./sheet-qCuMvyUo.mjs";
4
4
  import { n as valueOf, t as together } from "./contrast-Dw6gXoO3.mjs";
5
5
  import { n as parseColor } from "./color-BB8ipynT.mjs";
package/dist/types.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as WebkitTapHighlightColor, $a as future, $c as outlineStyle, $d as strokeWidth, $f as top, $i as emptyCells, $l as positionVisibility, $n as borderRadius, $o as isolation, $r as columns, $s as maskMode, $t as backgroundPositionX, $u as scrollMarginInline, A as Wrap, Aa as fontOpticalSizing, Ac as objectFit, Ad as shapeMargin, Af as textJustify, Ai as cos, Al as paletteMix, An as borderEndStartRadius, Ao as imageRendering, Ap as viewTimelineName, Ar as caretShape, As as marginBottom, At as animationRangeEnd, Au as rowGap, B as media, Ba as fontVariant, Bc as oklch, Bd as src, Bf as textWrap, Bi as cy, Bl as placeContent, Bn as borderInlineEndColor, Bo as insetBlockEnd, Bp as willChange, Br as colorMix, Bs as markerMid, Bt as atan2, Bu as scaleFn, C as Keyframes, Ca as focusVisible, Cc as mixBlendMode, Cd as scrollTimelineName, Cf as textDecorationStyle, Ci as cornerRightShape, Cl as paddingInlineStart, Cn as borderBottomLeftRadius, Co as hwb, Cp as valid, Cr as buffering, Cs as listStyleType, Ct as animationDirection, Cu as rotate, D as QueryWrap, Da as fontFeatureSettings, Dc as mr, Dd as seeking, Df as textEmphasisPosition, Di as cornerTopLeftShape, Dl as page, Dn as borderCollapse, Do as hypot, Dp as viewTimeline, Dr as caret, Ds as marginBlock, Dt as animationName, Du as rotateY, E as Prop, Ea as fontFamily, Ec as modal, Ed as scrollbarWidth, Ef as textEmphasisColor, Ei as cornerStartStartShape, El as paddingTop, En as borderBottomWidth, Eo as hyphens, Ep as view, Er as captionSide, Es as margin, Et as animationIterationCount, Eu as rotateX, F as cv, Fa as fontSynthesis, Fc as offsetDistance, Fd as skew, Ff as textSizeAdjust, Fi as counters, Fl as perspective, Fn as borderImageSource, Fo as initialLetter, Fp as volumeLocked, Fr as clipPath, Fs as marginRight, Ft as anyLink, Fu as rx, Ga as fontVariantLigatures, Gc as open, Gd as stroke, Gf as timelineTriggerExitRange, Gi as display, Gl as pointerEvents, Gn as borderInlineStartStyle, Go as insetInlineStart, Gp as x, Gr as columnHeight, Gs as maskBorderOutset, Gt as background, Gu as scroll, H as style, Ha as fontVariantCaps, Hc as onlyOfType, Hd as steps, Hf as textWrapStyle, Hi as defined, Hl as placeSelf, Hn as borderInlineEndWidth, Ho as insetFn, Hp as wordSpacing, Hr as columnCount, Hs as mask, Ht as autofill, Hu as scaleY, I as firstThatWorks, Ia as fontSynthesisPosition, Ic as offsetPath, Id as skewX, If as textSpacingTrim, Ii as crossFade, Il as perspectiveFn, In as borderImageWidth, Io as initialLetterAlign, Ip as whiteSpace, Ir as clipRule, Is as marginTop, It as appearance, Iu as ry, J as FlexMethods, Ja as fontVariationSettings, Jc as orphans, Jd as strokeDashoffset, Jf as timelineTriggerName, Ji as dynamicRangeLimit, Jl as position, Jn as borderInlineWidth, Jo as interestDelayEnd, Jp as zIndex, Jr as columnRuleStyle, Js as maskBorderSource, Jt as backgroundClip, Ju as scrollMargin, K as within, Ka as fontVariantNumeric, Kc as optional, Kd as strokeColor, Kf as timelineTriggerExitRangeEnd, Ki as dominantBaseline, Kl as polygon, Kn as borderInlineStartWidth, Ko as interactivity, Kp as xywh, Kr as columnRule, Ks as maskBorderRepeat, Kt as backgroundAttachment, Ku as scrollBehavior, L as global, La as fontSynthesisSmallCaps, Lc as offsetPosition, Ld as skewY, Lf as textTransform, Li as cubicBezier, Ll as perspectiveOrigin, Ln as borderInline, Lo as inlineSize, Lp as whiteSpaceCollapse, Lr as color, Ls as marginTrim, Lt as asin, Lu as saturate, M as cn, Ma as fontSize, Mc as objectViewBox, Md as shapeRendering, Mf as textOverflow, Mi as counterIncrement, Ml as path, Mn as borderImageOutset, Mo as imageSet, Mp as viewTransitionName, Mr as circle, Ms as marginInlineEnd, Mt as animationTimeline, Mu as rubyMerge, N as container, Na as fontSizeAdjust, Nc as offset, Nd as sign, Nf as textRendering, Ni as counterReset, Nl as paused, Nn as borderImageRepeat, No as inRange, Np as visibility, Nr as clamp, Ns as marginInlineStart, Nt as animationTimingFunction, Nu as rubyOverhang, O as StateWrap, Oa as fontKerning, Oc as mt, Od as sepia, Of as textEmphasisStyle, Oi as cornerTopRightShape, Ol as paint, On as borderColor, Oo as image, Op as viewTimelineAxis, Or as caretAnimation, Os as marginBlockEnd, Ot as animationPlayState, Ou as rotateZ, P as css, Pa as fontStyle, Pc as offsetAnchor, Pd as sin, Pf as textShadow, Pi as counterSet, Pl as pb, Pn as borderImageSlice, Po as indeterminate, Pp as visited, Pr as clear, Ps as marginLeft, Pt as animationTrigger, Pu as rubyPosition, Q as WebkitLineClamp, Qa as fullscreen, Qc as outlineOffset, Qd as strokeOpacity, Qf as timelineTriggerSource, Qi as empty, Ql as positionTryOrder, Qn as borderLeftWidth, Qo as invert, Qr as columnWrap, Qs as maskImage, Qt as backgroundPosition, Qu as scrollMarginBottom, R as group, Ra as fontSynthesisStyle, Rc as offsetRotate, Rd as speakAs, Rf as textUnderlineOffset, Ri as cursor, Rl as pictureInPicture, Rn as borderInlineColor, Ro as inset, Rp as widows, Rr as colorFn, Rs as marker, Rt as aspectRatio, Ru as scale, S as CvValue, Sa as focus, Sc as minmax, Sd as scrollTimelineAxis, Sf as textDecorationSkipInk, Si as cornerLeftShape, Sl as paddingInlineEnd, Sn as borderBottomColor, So as hueRotate, Sp as userValid, Sr as brightness, Ss as listStylePosition, St as animationDelay, Su as root, T as PositionTry, Ta as font, Tc as mod, Td as scrollbarGutter, Tf as textEmphasis, Ti as cornerStartEndShape, Tl as paddingRight, Tn as borderBottomStyle, To as hyphenateLimitChars, Tp as verticalAlign, Tr as calcSize, Ts as m, Tt as animationFillMode, Tu as rotateFn, U as supports, Ua as fontVariantEastAsian, Uc as opacity, Ud as stopColor, Uf as timelineScope, Ui as direction, Ul as placeholderShown, Un as borderInlineStart, Uo as insetInline, Up as wordWrap, Ur as columnFill, Us as maskBorder, Ut as backdropFilter, Uu as scaleZ, V as positionTry, Va as fontVariantAlternates, Vc as onlyChild, Vd as stalled, Vf as textWrapMode, Vi as d, Vl as placeItems, Vn as borderInlineEndStyle, Vo as insetBlockStart, Vp as wordBreak, Vr as colorScheme, Vs as markerStart, Vt as attrFn, Vu as scaleX, W as token, Wa as fontVariantEmoji, Wc as opacityFn, Wd as stopOpacity, Wf as timelineTrigger, Wi as disabled, Wl as playing, Wn as borderInlineStartColor, Wo as insetInlineEnd, Wp as writingMode, Wr as columnGap, Ws as maskBorderMode, Wt as backfaceVisibility, Wu as scope, X as WebkitBoxOrient, Xa as fontWidth, Xc as outline, Xd as strokeLinejoin, Xf as timelineTriggerRangeEnd, Xi as element, Xl as positionArea, Xn as borderLeftColor, Xo as interpolateSize, Xr as columnSpan, Xs as maskClip, Xt as backgroundImage, Xu as scrollMarginBlockEnd, Y as GridMethods, Ya as fontWeight, Yc as outOfRange, Yd as strokeLinecap, Yf as timelineTriggerRange, Yi as dynamicRangeLimitMix, Yl as positionAnchor, Yn as borderLeft, Yo as interestDelayStart, Yp as zoom, Yr as columnRuleWidth, Ys as maskBorderWidth, Yt as backgroundColor, Yu as scrollMarginBlock, Z as WebkitBoxReflect, Za as forcedColorAdjust, Zc as outlineColor, Zd as strokeMiterlimit, Zf as timelineTriggerRangeStart, Zi as ellipse, Zl as positionTryFallbacks, Zn as borderLeftStyle, Zo as invalid, Zr as columnWidth, Zs as maskComposite, Zt as backgroundOrigin, Zu as scrollMarginBlockStart, _ as CSSStyleValue, _a as flexWrap, _c as min, _d as scrollSnapAlign, _f as textDecoration, _i as cornerBottomShape, _l as paddingBlock, _n as borderBlockStartStyle, _o as hangingPunctuation, _p as triggerScope, _r as boxShadow, _s as linear, _t as anchorName, _u as required, a as DtcgUnit, aa as fillOpacity, ac as mathDepth, ad as scrollMarkerGroup, af as target, ai as containIntrinsicSize, al as overflowInline, am as Fallback, an as bg, ao as gridAutoFlow, ap as transition, ar as borderStartEndRadius, as as lastOfType, at as WebkitUserModify, au as r, b as CvConfig, ba as floodOpacity, bc as minInlineSize, bd as scrollTargetGroup, bf as textDecorationLine, bi as cornerInlineEndShape, bl as paddingBottom, bn as borderBlockWidth, bo as hsl, bp as userInvalid, br as breakBefore, bs as listStyle, bt as animation, bu as rgba, c as Tokens, ca as firstChild, cc as matrix, cd as scrollPaddingBlockEnd, cf as targetText, ci as containerType, cl as overflowY, cn as border, co as gridColumnEnd, cp as transitionDuration, cr as borderTop, cs as leader, ct as accentColor, cu as readOnly, d as createTokens, da as flex, dc as maxBlockSize, dd as scrollPaddingInline, df as textAnchor, di as contrast, dl as overscrollBehaviorBlock, dn as borderBlockEnd, do as gridRowEnd, dp as translate, dr as borderTopRightRadius, ds as lightDark, dt as alignContent, du as readingOrder, ea as enabled, ec as maskOrigin, ed as scrollMarginInlineEnd, ef as superellipse, ei as conicGradient, el as outlineWidth, en as backgroundPositionY, eo as gap, ep as touchAction, er as borderRight, es as justifyContent, et as WebkitTextFillColor, eu as pow, f as layers, fa as flexBasis, fc as maxHeight, fd as scrollPaddingInlineEnd, ff as textAutospace, fi as contrastColor, fl as overscrollBehaviorInline, fn as borderBlockEndColor, fo as gridRowStart, fp as translate3d, fr as borderTopStyle, fs as lightingColor, ft as alignItems, fu as rect, g as CSSImageValue, ga as flexShrink, gc as mb, gd as scrollPaddingTop, gf as textCombineUpright, gi as cornerBottomRightShape, gl as padding, gn as borderBlockStartColor, go as gridTemplateRows, gp as translateZ, gr as boxDecorationBreak, gs as lineHeightStep, gt as anchor, gu as repeatingRadialGradient, h as CSSColorValue, ha as flexGrow, hc as maxWidth, hd as scrollPaddingRight, hf as textBoxTrim, hi as cornerBottomLeftShape, hl as p, hn as borderBlockStart, ho as gridTemplateColumns, hp as translateY, hr as bottom, hs as lineHeight, ht as all, hu as repeatingLinearGradient, i as DtcgShadow, ia as fill, ic as maskType, id as scrollMarginTop, if as tan, ii as containIntrinsicInlineSize, il as overflowClipMargin, in as baselineSource, io as gridAutoColumns, ip as transformStyle, ir as borderSpacing, is as lastChild, it as WebkitTouchCallout, iu as quotes, j as attr, ja as fontPalette, jc as objectPosition, jd as shapeOutside, jf as textOrientation, ji as counter, jl as past, jn as borderImage, jo as imageResolution, jp as viewTransitionClass, jr as checked, js as marginInline, jt as animationRangeStart, ju as rubyAlign, k as Steps, ka as fontLanguageOverride, kc as muted, kd as shapeImageThreshold, kf as textIndent, ki as cornerTopShape, kl as paintOrder, kn as borderEndEndRadius, ko as imageOrientation, kp as viewTimelineInset, kr as caretColor, ks as marginBlockStart, kt as animationRange, ku as round, l as check, la as firstOfType, lc as matrix3d, ld as scrollPaddingBlockStart, lf as textAlign, li as content, ll as overlay, ln as borderBlock, lo as gridColumnStart, lp as transitionProperty, lr as borderTopColor, ls as left, lt as acos, lu as readWrite, m as CSS, ma as flexFlow, mc as maxLines, md as scrollPaddingLeft, mf as textBoxEdge, mi as cornerBlockStartShape, ml as overscrollBehaviorY, mn as borderBlockEndWidth, mo as gridTemplateAreas, mp as translateX, mr as borderWidth, ms as lineClamp, mt as alignmentBaseline, mu as repeatingConicGradient, n as DtcgColor, na as exp, nc as maskRepeat, nd as scrollMarginLeft, nf as tabSize, ni as containIntrinsicBlockSize, nl as overflowAnchor, nn as backgroundSize, no as grid, np as transformBox, nr as borderRightStyle, ns as justifySelf, nt as WebkitTextStrokeColor, nu as printColorAdjust, o as DtcgValue, oa as fillRule, oc as mathShift, od as scrollPadding, of as targetCounter, oi as containIntrinsicWidth, ol as overflowWrap, om as Part, on as blockSize, oo as gridAutoRows, op as transitionBehavior, or as borderStartStartRadius, os as layer, ot as _var, ou as radialGradient, p as AttrOp, pa as flexDirection, pc as maxInlineSize, pd as scrollPaddingInlineStart, pf as textBox, pi as cornerBlockEndShape, pl as overscrollBehaviorX, pn as borderBlockEndStyle, po as gridTemplate, pp as translateFn, pr as borderTopWidth, ps as lineBreak, pt as alignSelf, pu as rem, q as ClassValue, qa as fontVariantPosition, qc as order, qd as strokeDasharray, qf as timelineTriggerExitRangeStart, qi as dropShadow, ql as popoverOpen, qn as borderInlineStyle, qo as interestDelay, qp as y, qr as columnRuleColor, qs as maskBorderSlice, qt as backgroundBlendMode, qu as scrollInitialTarget, r as DtcgCubicBezier, ra as fieldSizing, rc as maskSize, rd as scrollMarginRight, rf as tableLayout, ri as containIntrinsicHeight, rl as overflowBlock, rn as baselineShift, ro as gridArea, rp as transformOrigin, rr as borderRightWidth, rs as lab, rt as WebkitTextStrokeWidth, ru as pt, s as Overrides, sa as filter, sc as mathStyle, sd as scrollPaddingBlock, sf as targetCounters, si as containerName, sl as overflowX, sm as Style, sn as blur, so as gridColumn, sp as transitionDelay, sr as borderStyle, ss as lch, st as abs, su as ray, t as CheckOverrides, ta as env, tc as maskPosition, td as scrollMarginInlineStart, tf as symbols, ti as contain, tl as overflow, tn as backgroundRepeat, to as grayscale, tp as transform, tr as borderRightColor, ts as justifyItems, tt as WebkitTextStroke, tu as pr, u as createGlobalTheme, ua as fitContent, uc as max, ud as scrollPaddingBottom, uf as textAlignLast, ui as contentVisibility, ul as overscrollBehavior, un as borderBlockColor, uo as gridRow, up as transitionTimingFunction, ur as borderTopLeftRadius, us as letterSpacing, ut as active, uu as readingFlow, v as CSSUnitValue, va as float, vc as minBlockSize, vd as scrollSnapStop, vf as textDecorationColor, vi as cornerEndEndShape, vl as paddingBlockEnd, vn as borderBlockStartWidth, vo as height, vp as unicodeBidi, vr as boxSizing, vs as linearGradient, vt as anchorScope, vu as resize, w as Layout, wa as focusWithin, wc as ml, wd as scrollbarColor, wf as textDecorationThickness, wi as cornerShape, wl as paddingLeft, wn as borderBottomRightRadius, wo as hyphenateCharacter, wp as vectorEffect, wr as calc, ws as log, wt as animationDuration, wu as rotate3d, x as CvProps, xa as flowTolerance, xc as minWidth, xd as scrollTimeline, xf as textDecorationSkip, xi as cornerInlineStartShape, xl as paddingInline, xn as borderBottom, xo as hsla, xp as userSelect, xr as breakInside, xs as listStyleImage, xt as animationComposition, xu as right, y as Chain, ya as floodColor, yc as minHeight, yd as scrollSnapType, yf as textDecorationInset, yi as cornerEndStartShape, yl as paddingBlockStart, yn as borderBlockStyle, yo as hover, yp as url, yr as breakAfter, ys as link, yt as anchorSize, yu as rgb, z as keyframes, za as fontSynthesisWeight, zc as oklab, zd as sqrt, zf as textUnderlinePosition, zi as cx, zl as pl, zn as borderInlineEnd, zo as insetBlock, zp as width, zr as colorInterpolationFilters, zs as markerEnd, zt as atan, zu as scale3d } from "./theme-types-DVk08gse.mjs";
2
- export { AttrOp, type CSS, type CSSColorValue, type CSSImageValue, type CSSStyleValue, type CSSUnitValue, Chain, CheckOverrides, type ClassValue, CvConfig, CvProps, CvValue, DtcgColor, DtcgCubicBezier, DtcgShadow, DtcgUnit, DtcgValue, type Fallback, FlexMethods, GridMethods, Keyframes, Layout, Overrides, type Part, PositionTry, Prop, QueryWrap, StateWrap, Steps, type Style, Tokens, WebkitBoxOrient, WebkitBoxReflect, WebkitLineClamp, WebkitTapHighlightColor, WebkitTextFillColor, WebkitTextStroke, WebkitTextStrokeColor, WebkitTextStrokeWidth, WebkitTouchCallout, WebkitUserModify, Wrap, abs, accentColor, acos, active, alignContent, alignItems, alignSelf, alignmentBaseline, all, anchor, anchorName, anchorScope, anchorSize, animation, animationComposition, animationDelay, animationDirection, animationDuration, animationFillMode, animationIterationCount, animationName, animationPlayState, animationRange, animationRangeEnd, animationRangeStart, animationTimeline, animationTimingFunction, animationTrigger, anyLink, appearance, asin, aspectRatio, atan, atan2, attr, attrFn, autofill, backdropFilter, backfaceVisibility, background, backgroundAttachment, backgroundBlendMode, backgroundClip, backgroundColor, backgroundImage, backgroundOrigin, backgroundPosition, backgroundPositionX, backgroundPositionY, backgroundRepeat, backgroundSize, baselineShift, baselineSource, bg, blockSize, blur, border, borderBlock, borderBlockColor, borderBlockEnd, borderBlockEndColor, borderBlockEndStyle, borderBlockEndWidth, borderBlockStart, borderBlockStartColor, borderBlockStartStyle, borderBlockStartWidth, borderBlockStyle, borderBlockWidth, borderBottom, borderBottomColor, borderBottomLeftRadius, borderBottomRightRadius, borderBottomStyle, borderBottomWidth, borderCollapse, borderColor, borderEndEndRadius, borderEndStartRadius, borderImage, borderImageOutset, borderImageRepeat, borderImageSlice, borderImageSource, borderImageWidth, borderInline, borderInlineColor, borderInlineEnd, borderInlineEndColor, borderInlineEndStyle, borderInlineEndWidth, borderInlineStart, borderInlineStartColor, borderInlineStartStyle, borderInlineStartWidth, borderInlineStyle, borderInlineWidth, borderLeft, borderLeftColor, borderLeftStyle, borderLeftWidth, borderRadius, borderRight, borderRightColor, borderRightStyle, borderRightWidth, borderSpacing, borderStartEndRadius, borderStartStartRadius, borderStyle, borderTop, borderTopColor, borderTopLeftRadius, borderTopRightRadius, borderTopStyle, borderTopWidth, borderWidth, bottom, boxDecorationBreak, boxShadow, boxSizing, breakAfter, breakBefore, breakInside, brightness, buffering, calc, calcSize, captionSide, caret, caretAnimation, caretColor, caretShape, check, checked, circle, clamp, clear, clipPath, clipRule, cn, color, colorFn, colorInterpolationFilters, colorMix, colorScheme, columnCount, columnFill, columnGap, columnHeight, columnRule, columnRuleColor, columnRuleStyle, columnRuleWidth, columnSpan, columnWidth, columnWrap, columns, conicGradient, contain, containIntrinsicBlockSize, containIntrinsicHeight, containIntrinsicInlineSize, containIntrinsicSize, containIntrinsicWidth, container, containerName, containerType, content, contentVisibility, contrast, contrastColor, cornerBlockEndShape, cornerBlockStartShape, cornerBottomLeftShape, cornerBottomRightShape, cornerBottomShape, cornerEndEndShape, cornerEndStartShape, cornerInlineEndShape, cornerInlineStartShape, cornerLeftShape, cornerRightShape, cornerShape, cornerStartEndShape, cornerStartStartShape, cornerTopLeftShape, cornerTopRightShape, cornerTopShape, cos, counter, counterIncrement, counterReset, counterSet, counters, createGlobalTheme, createTokens, crossFade, css, cubicBezier, cursor, cv, cx, cy, d, defined, direction, disabled, display, dominantBaseline, dropShadow, dynamicRangeLimit, dynamicRangeLimitMix, element, ellipse, empty, emptyCells, enabled, env, exp, fieldSizing, fill, fillOpacity, fillRule, filter, firstChild, firstOfType, firstThatWorks, fitContent, flex, flexBasis, flexDirection, flexFlow, flexGrow, flexShrink, flexWrap, float, floodColor, floodOpacity, flowTolerance, focus, focusVisible, focusWithin, font, fontFamily, fontFeatureSettings, fontKerning, fontLanguageOverride, fontOpticalSizing, fontPalette, fontSize, fontSizeAdjust, fontStyle, fontSynthesis, fontSynthesisPosition, fontSynthesisSmallCaps, fontSynthesisStyle, fontSynthesisWeight, fontVariant, fontVariantAlternates, fontVariantCaps, fontVariantEastAsian, fontVariantEmoji, fontVariantLigatures, fontVariantNumeric, fontVariantPosition, fontVariationSettings, fontWeight, fontWidth, forcedColorAdjust, fullscreen, future, gap, global, grayscale, grid, gridArea, gridAutoColumns, gridAutoFlow, gridAutoRows, gridColumn, gridColumnEnd, gridColumnStart, gridRow, gridRowEnd, gridRowStart, gridTemplate, gridTemplateAreas, gridTemplateColumns, gridTemplateRows, group, hangingPunctuation, height, hover, hsl, hsla, hueRotate, hwb, hyphenateCharacter, hyphenateLimitChars, hyphens, hypot, image, imageOrientation, imageRendering, imageResolution, imageSet, inRange, indeterminate, initialLetter, initialLetterAlign, inlineSize, inset, insetBlock, insetBlockEnd, insetBlockStart, insetFn, insetInline, insetInlineEnd, insetInlineStart, interactivity, interestDelay, interestDelayEnd, interestDelayStart, interpolateSize, invalid, invert, isolation, justifyContent, justifyItems, justifySelf, keyframes, lab, lastChild, lastOfType, layer, layers, lch, leader, left, letterSpacing, lightDark, lightingColor, lineBreak, lineClamp, lineHeight, lineHeightStep, linear, linearGradient, link, listStyle, listStyleImage, listStylePosition, listStyleType, log, m, margin, marginBlock, marginBlockEnd, marginBlockStart, marginBottom, marginInline, marginInlineEnd, marginInlineStart, marginLeft, marginRight, marginTop, marginTrim, marker, markerEnd, markerMid, markerStart, mask, maskBorder, maskBorderMode, maskBorderOutset, maskBorderRepeat, maskBorderSlice, maskBorderSource, maskBorderWidth, maskClip, maskComposite, maskImage, maskMode, maskOrigin, maskPosition, maskRepeat, maskSize, maskType, mathDepth, mathShift, mathStyle, matrix, matrix3d, max, maxBlockSize, maxHeight, maxInlineSize, maxLines, maxWidth, mb, media, min, minBlockSize, minHeight, minInlineSize, minWidth, minmax, mixBlendMode, ml, mod, modal, mr, mt, muted, objectFit, objectPosition, objectViewBox, offset, offsetAnchor, offsetDistance, offsetPath, offsetPosition, offsetRotate, oklab, oklch, onlyChild, onlyOfType, opacity, opacityFn, open, optional, order, orphans, outOfRange, outline, outlineColor, outlineOffset, outlineStyle, outlineWidth, overflow, overflowAnchor, overflowBlock, overflowClipMargin, overflowInline, overflowWrap, overflowX, overflowY, overlay, overscrollBehavior, overscrollBehaviorBlock, overscrollBehaviorInline, overscrollBehaviorX, overscrollBehaviorY, p, padding, paddingBlock, paddingBlockEnd, paddingBlockStart, paddingBottom, paddingInline, paddingInlineEnd, paddingInlineStart, paddingLeft, paddingRight, paddingTop, page, paint, paintOrder, paletteMix, past, path, paused, pb, perspective, perspectiveFn, perspectiveOrigin, pictureInPicture, pl, placeContent, placeItems, placeSelf, placeholderShown, playing, pointerEvents, polygon, popoverOpen, position, positionAnchor, positionArea, positionTry, positionTryFallbacks, positionTryOrder, positionVisibility, pow, pr, printColorAdjust, pt, quotes, r, radialGradient, ray, readOnly, readWrite, readingFlow, readingOrder, rect, rem, repeatingConicGradient, repeatingLinearGradient, repeatingRadialGradient, required, resize, rgb, rgba, right, root, rotate, rotate3d, rotateFn, rotateX, rotateY, rotateZ, round, rowGap, rubyAlign, rubyMerge, rubyOverhang, rubyPosition, rx, ry, saturate, scale, scale3d, scaleFn, scaleX, scaleY, scaleZ, scope, scroll, scrollBehavior, scrollInitialTarget, scrollMargin, scrollMarginBlock, scrollMarginBlockEnd, scrollMarginBlockStart, scrollMarginBottom, scrollMarginInline, scrollMarginInlineEnd, scrollMarginInlineStart, scrollMarginLeft, scrollMarginRight, scrollMarginTop, scrollMarkerGroup, scrollPadding, scrollPaddingBlock, scrollPaddingBlockEnd, scrollPaddingBlockStart, scrollPaddingBottom, scrollPaddingInline, scrollPaddingInlineEnd, scrollPaddingInlineStart, scrollPaddingLeft, scrollPaddingRight, scrollPaddingTop, scrollSnapAlign, scrollSnapStop, scrollSnapType, scrollTargetGroup, scrollTimeline, scrollTimelineAxis, scrollTimelineName, scrollbarColor, scrollbarGutter, scrollbarWidth, seeking, sepia, shapeImageThreshold, shapeMargin, shapeOutside, shapeRendering, sign, sin, skew, skewX, skewY, speakAs, sqrt, src, stalled, steps, stopColor, stopOpacity, stroke, strokeColor, strokeDasharray, strokeDashoffset, strokeLinecap, strokeLinejoin, strokeMiterlimit, strokeOpacity, strokeWidth, style, superellipse, supports, symbols, tabSize, tableLayout, tan, target, targetCounter, targetCounters, targetText, textAlign, textAlignLast, textAnchor, textAutospace, textBox, textBoxEdge, textBoxTrim, textCombineUpright, textDecoration, textDecorationColor, textDecorationInset, textDecorationLine, textDecorationSkip, textDecorationSkipInk, textDecorationStyle, textDecorationThickness, textEmphasis, textEmphasisColor, textEmphasisPosition, textEmphasisStyle, textIndent, textJustify, textOrientation, textOverflow, textRendering, textShadow, textSizeAdjust, textSpacingTrim, textTransform, textUnderlineOffset, textUnderlinePosition, textWrap, textWrapMode, textWrapStyle, timelineScope, timelineTrigger, timelineTriggerExitRange, timelineTriggerExitRangeEnd, timelineTriggerExitRangeStart, timelineTriggerName, timelineTriggerRange, timelineTriggerRangeEnd, timelineTriggerRangeStart, timelineTriggerSource, token, top, touchAction, transform, transformBox, transformOrigin, transformStyle, transition, transitionBehavior, transitionDelay, transitionDuration, transitionProperty, transitionTimingFunction, translate, translate3d, translateFn, translateX, translateY, translateZ, triggerScope, unicodeBidi, url, userInvalid, userSelect, userValid, valid, _var as var, vectorEffect, verticalAlign, view, viewTimeline, viewTimelineAxis, viewTimelineInset, viewTimelineName, viewTransitionClass, viewTransitionName, visibility, visited, volumeLocked, whiteSpace, whiteSpaceCollapse, widows, width, willChange, within, wordBreak, wordSpacing, wordWrap, writingMode, x, xywh, y, zIndex, zoom };
1
+ import { $ as FlexMethods, $a as fontVariationSettings, $c as orphans, $d as strokeDashoffset, $f as timelineTriggerName, $i as dynamicRangeLimit, $l as position, $n as borderInlineWidth, $o as interestDelayEnd, $p as zIndex, $r as columnRuleStyle, $s as maskBorderSource, $t as backgroundClip, $u as scrollMargin, A as ScvValue, Aa as font, Ac as mod, Ad as scrollbarGutter, Af as textEmphasis, Ai as cornerStartEndShape, Al as paddingRight, An as borderBottomStyle, Ao as hyphenateLimitChars, Ap as verticalAlign, Ar as calcSize, As as m, At as animationFillMode, Au as rotateFn, B as global, Ba as fontSynthesis, Bc as offsetDistance, Bd as skew, Bf as textSizeAdjust, Bi as counters, Bl as perspective, Bn as borderImageSource, Bo as initialLetter, Bp as volumeLocked, Br as clipPath, Bs as marginRight, Bt as anyLink, Bu as rx, C as CvValue, Ca as float, Cc as minBlockSize, Cd as scrollSnapStop, Cf as textDecorationColor, Ci as cornerEndEndShape, Cl as paddingBlockEnd, Cn as borderBlockStartWidth, Co as height, Cp as unicodeBidi, Cr as boxSizing, Cs as linearGradient, Ct as anchorScope, Cu as resize, D as Prop, Da as focus, Dc as minmax, Dd as scrollTimelineAxis, Df as textDecorationSkipInk, Di as cornerLeftShape, Dl as paddingInlineEnd, Dn as borderBottomColor, Do as hueRotate, Dp as userValid, Dr as brightness, Ds as listStylePosition, Dt as animationDelay, Du as root, E as PositionTry, Ea as flowTolerance, Ec as minWidth, Ed as scrollTimeline, Ef as textDecorationSkip, Ei as cornerInlineStartShape, El as paddingInline, En as borderBottom, Eo as hsla, Ep as userSelect, Er as breakInside, Es as listStyleImage, Et as animationComposition, Eu as right, F as cn, Fa as fontOpticalSizing, Fc as objectFit, Fd as shapeMargin, Ff as textJustify, Fi as cos, Fl as paletteMix, Fn as borderEndStartRadius, Fo as imageRendering, Fp as viewTimelineName, Fr as caretShape, Fs as marginBottom, Ft as animationRangeEnd, Fu as rowGap, G as scv, Ga as fontVariant, Gc as oklch, Gd as src, Gf as textWrap, Gi as cy, Gl as placeContent, Gn as borderInlineEndColor, Go as insetBlockEnd, Gp as willChange, Gr as colorMix, Gs as markerMid, Gt as atan2, Gu as scaleFn, H as keyframes, Ha as fontSynthesisSmallCaps, Hc as offsetPosition, Hd as skewY, Hf as textTransform, Hi as cubicBezier, Hl as perspectiveOrigin, Hn as borderInline, Ho as inlineSize, Hp as whiteSpaceCollapse, Hr as color, Hs as marginTrim, Ht as asin, Hu as saturate, I as container, Ia as fontPalette, Ic as objectPosition, Id as shapeOutside, If as textOrientation, Ii as counter, Il as past, In as borderImage, Io as imageResolution, Ip as viewTransitionClass, Ir as checked, Is as marginInline, It as animationRangeStart, Iu as rubyAlign, J as sx, Ja as fontVariantEastAsian, Jc as opacity, Jd as stopColor, Jf as timelineScope, Ji as direction, Jl as placeholderShown, Jn as borderInlineStart, Jo as insetInline, Jp as wordWrap, Jr as columnFill, Js as maskBorder, Jt as backdropFilter, Ju as scaleZ, K as style, Ka as fontVariantAlternates, Kc as onlyChild, Kd as stalled, Kf as textWrapMode, Ki as d, Kl as placeItems, Kn as borderInlineEndStyle, Ko as insetBlockStart, Kp as wordBreak, Kr as colorScheme, Ks as markerStart, Kt as attrFn, Ku as scaleX, L as css, La as fontSize, Lc as objectViewBox, Ld as shapeRendering, Lf as textOverflow, Li as counterIncrement, Ll as path, Ln as borderImageOutset, Lo as imageSet, Lp as viewTransitionName, Lr as circle, Ls as marginInlineEnd, Lt as animationTimeline, Lu as rubyMerge, M as Steps, Ma as fontFeatureSettings, Mc as mr, Md as seeking, Mf as textEmphasisPosition, Mi as cornerTopLeftShape, Ml as page, Mn as borderCollapse, Mo as hypot, Mp as viewTimeline, Mr as caret, Ms as marginBlock, Mt as animationName, Mu as rotateY, N as Wrap, Na as fontKerning, Nc as mt, Nd as sepia, Nf as textEmphasisStyle, Ni as cornerTopRightShape, Nl as paint, Nn as borderColor, No as image, Np as viewTimelineAxis, Nr as caretAnimation, Ns as marginBlockEnd, Nt as animationPlayState, Nu as rotateZ, O as QueryWrap, Oa as focusVisible, Oc as mixBlendMode, Od as scrollTimelineName, Of as textDecorationStyle, Oi as cornerRightShape, Ol as paddingInlineStart, On as borderBottomLeftRadius, Oo as hwb, Op as valid, Or as buffering, Os as listStyleType, Ot as animationDirection, Ou as rotate, P as attr, Pa as fontLanguageOverride, Pc as muted, Pd as shapeImageThreshold, Pf as textIndent, Pi as cornerTopShape, Pl as paintOrder, Pn as borderEndEndRadius, Po as imageOrientation, Pp as viewTimelineInset, Pr as caretColor, Ps as marginBlockStart, Pt as animationRange, Pu as round, Q as ClassValue, Qa as fontVariantPosition, Qc as order, Qd as strokeDasharray, Qf as timelineTriggerExitRangeStart, Qi as dropShadow, Ql as popoverOpen, Qn as borderInlineStyle, Qo as interestDelay, Qp as y, Qr as columnRuleColor, Qs as maskBorderSlice, Qt as backgroundBlendMode, Qu as scrollInitialTarget, R as cv, Ra as fontSizeAdjust, Rc as offset, Rd as sign, Rf as textRendering, Ri as counterReset, Rl as paused, Rn as borderImageRepeat, Ro as inRange, Rp as visibility, Rr as clamp, Rs as marginInlineStart, Rt as animationTimingFunction, Ru as rubyOverhang, S as CvProps, Sa as flexWrap, Sc as min, Sd as scrollSnapAlign, Sf as textDecoration, Si as cornerBottomShape, Sl as paddingBlock, Sn as borderBlockStartStyle, So as hangingPunctuation, Sp as triggerScope, Sr as boxShadow, Ss as linear, St as anchorName, Su as required, T as Layout, Ta as floodOpacity, Tc as minInlineSize, Td as scrollTargetGroup, Tf as textDecorationLine, Ti as cornerInlineEndShape, Tl as paddingBottom, Tn as borderBlockWidth, To as hsl, Tp as userInvalid, Tr as breakBefore, Ts as listStyle, Tt as animation, Tu as rgba, U as media, Ua as fontSynthesisStyle, Uc as offsetRotate, Ud as speakAs, Uf as textUnderlineOffset, Ui as cursor, Ul as pictureInPicture, Un as borderInlineColor, Uo as inset, Up as widows, Ur as colorFn, Us as marker, Ut as aspectRatio, Uu as scale, V as group, Va as fontSynthesisPosition, Vc as offsetPath, Vd as skewX, Vf as textSpacingTrim, Vi as crossFade, Vl as perspectiveFn, Vn as borderImageWidth, Vo as initialLetterAlign, Vp as whiteSpace, Vr as clipRule, Vs as marginTop, Vt as appearance, Vu as ry, W as positionTry, Wa as fontSynthesisWeight, Wc as oklab, Wd as sqrt, Wf as textUnderlinePosition, Wi as cx, Wl as pl, Wn as borderInlineEnd, Wo as insetBlock, Wp as width, Wr as colorInterpolationFilters, Ws as markerEnd, Wt as atan, Wu as scale3d, Xa as fontVariantLigatures, Xc as open, Xd as stroke, Xf as timelineTriggerExitRange, Xi as display, Xl as pointerEvents, Xn as borderInlineStartStyle, Xo as insetInlineStart, Xp as x, Xr as columnHeight, Xs as maskBorderOutset, Xt as background, Xu as scroll, Y as token, Ya as fontVariantEmoji, Yc as opacityFn, Yd as stopOpacity, Yf as timelineTrigger, Yi as disabled, Yl as playing, Yn as borderInlineStartColor, Yo as insetInlineEnd, Yp as writingMode, Yr as columnGap, Ys as maskBorderMode, Yt as backfaceVisibility, Yu as scope, Z as within, Za as fontVariantNumeric, Zc as optional, Zd as strokeColor, Zf as timelineTriggerExitRangeEnd, Zi as dominantBaseline, Zl as polygon, Zn as borderInlineStartWidth, Zo as interactivity, Zp as xywh, Zr as columnRule, Zs as maskBorderRepeat, Zt as backgroundAttachment, Zu as scrollBehavior, _ as CSSStyleValue, _a as flexBasis, _c as maxHeight, _d as scrollPaddingInlineEnd, _f as textAutospace, _i as contrastColor, _l as overscrollBehaviorInline, _n as borderBlockEndColor, _o as gridRowStart, _p as translate3d, _r as borderTopStyle, _s as lightingColor, _t as alignItems, _u as rect, a as DtcgUnit, aa as enabled, ac as maskOrigin, ad as scrollMarginInlineEnd, af as superellipse, ai as conicGradient, al as outlineWidth, an as backgroundPositionY, ao as gap, ap as touchAction, ar as borderRight, as as justifyContent, at as WebkitTextFillColor, au as pow, b as ChainStyle, ba as flexGrow, bc as maxWidth, bd as scrollPaddingRight, bf as textBoxTrim, bi as cornerBottomLeftShape, bl as p, bn as borderBlockStart, bo as gridTemplateColumns, bp as translateY, br as bottom, bs as lineHeight, bt as all, bu as repeatingLinearGradient, c as Tokens, ca as fieldSizing, cc as maskSize, cd as scrollMarginRight, cf as tableLayout, ci as containIntrinsicHeight, cl as overflowBlock, cn as baselineShift, co as gridArea, cp as transformOrigin, cr as borderRightWidth, cs as lab, ct as WebkitTextStrokeWidth, cu as pt, d as createTokens, da as fillRule, dc as mathShift, dd as scrollPadding, df as targetCounter, di as containIntrinsicWidth, dl as overflowWrap, dm as Part, dn as blockSize, do as gridAutoRows, dp as transitionBehavior, dr as borderStartStartRadius, ds as layer, dt as _var, du as radialGradient, ea as dynamicRangeLimitMix, ec as maskBorderWidth, ed as scrollMarginBlock, ef as strokeLinecap, ei as columnRuleWidth, el as outOfRange, em as zoom, en as backgroundColor, eo as fontWeight, ep as timelineTriggerRange, er as borderLeft, es as interestDelayStart, et as GridMethods, eu as positionAnchor, f as layers, fa as filter, fc as mathStyle, fd as scrollPaddingBlock, ff as targetCounters, fi as containerName, fl as overflowX, fm as Style, fn as blur, fo as gridColumn, fp as transitionDelay, fr as borderStyle, fs as lch, ft as abs, fu as ray, g as CSSImageValue, ga as flex, gc as maxBlockSize, gd as scrollPaddingInline, gf as textAnchor, gi as contrast, gl as overscrollBehaviorBlock, gn as borderBlockEnd, go as gridRowEnd, gp as translate, gr as borderTopRightRadius, gs as lightDark, gt as alignContent, gu as readingOrder, h as CSSColorValue, ha as fitContent, hc as max, hd as scrollPaddingBottom, hf as textAlignLast, hi as contentVisibility, hl as overscrollBehavior, hn as borderBlockColor, ho as gridRow, hp as transitionTimingFunction, hr as borderTopLeftRadius, hs as letterSpacing, ht as active, hu as readingFlow, i as DtcgShadow, ia as emptyCells, ic as maskMode, id as scrollMarginInline, if as strokeWidth, ii as columns, il as outlineStyle, in as backgroundPositionX, io as future, ip as top, ir as borderRadius, is as isolation, it as WebkitTapHighlightColor, iu as positionVisibility, j as StateWrap, ja as fontFamily, jc as modal, jd as scrollbarWidth, jf as textEmphasisColor, ji as cornerStartStartShape, jl as paddingTop, jn as borderBottomWidth, jo as hyphens, jp as view, jr as captionSide, js as margin, jt as animationIterationCount, ju as rotateX, k as ScvConfig, ka as focusWithin, kc as ml, kd as scrollbarColor, kf as textDecorationThickness, ki as cornerShape, kl as paddingLeft, kn as borderBottomRightRadius, ko as hyphenateCharacter, kp as vectorEffect, kr as calc, ks as log, kt as animationDuration, ku as rotate3d, l as check, la as fill, lc as maskType, ld as scrollMarginTop, lf as tan, li as containIntrinsicInlineSize, ll as overflowClipMargin, ln as baselineSource, lo as gridAutoColumns, lp as transformStyle, lr as borderSpacing, ls as lastChild, lt as WebkitTouchCallout, lu as quotes, m as CSS, ma as firstOfType, mc as matrix3d, md as scrollPaddingBlockStart, mf as textAlign, mi as content, ml as overlay, mn as borderBlock, mo as gridColumnStart, mp as transitionProperty, mr as borderTopColor, ms as left, mt as acos, mu as readWrite, n as DtcgColor, na as ellipse, nc as maskComposite, nd as scrollMarginBlockStart, nf as strokeMiterlimit, ni as columnWidth, nl as outlineColor, nn as backgroundOrigin, no as forcedColorAdjust, np as timelineTriggerRangeStart, nr as borderLeftStyle, ns as invalid, nt as WebkitBoxReflect, nu as positionTryFallbacks, o as DtcgValue, oa as env, oc as maskPosition, od as scrollMarginInlineStart, of as symbols, oi as contain, ol as overflow, on as backgroundRepeat, oo as grayscale, op as transform, or as borderRightColor, os as justifyItems, ot as WebkitTextStroke, ou as pr, p as AttrOp, pa as firstChild, pc as matrix, pd as scrollPaddingBlockEnd, pf as targetText, pi as containerType, pl as overflowY, pn as border, po as gridColumnEnd, pp as transitionDuration, pr as borderTop, ps as leader, pt as accentColor, pu as readOnly, q as supports, qa as fontVariantCaps, qc as onlyOfType, qd as steps, qf as textWrapStyle, qi as defined, ql as placeSelf, qn as borderInlineEndWidth, qo as insetFn, qp as wordSpacing, qr as columnCount, qs as mask, qt as autofill, qu as scaleY, r as DtcgCubicBezier, ra as empty, rc as maskImage, rd as scrollMarginBottom, rf as strokeOpacity, ri as columnWrap, rl as outlineOffset, rn as backgroundPosition, ro as fullscreen, rp as timelineTriggerSource, rr as borderLeftWidth, rs as invert, rt as WebkitLineClamp, ru as positionTryOrder, s as Overrides, sa as exp, sc as maskRepeat, sd as scrollMarginLeft, sf as tabSize, si as containIntrinsicBlockSize, sl as overflowAnchor, sn as backgroundSize, so as grid, sp as transformBox, sr as borderRightStyle, ss as justifySelf, st as WebkitTextStrokeColor, su as printColorAdjust, t as CheckOverrides, ta as element, tc as maskClip, td as scrollMarginBlockEnd, tf as strokeLinejoin, ti as columnSpan, tl as outline, tn as backgroundImage, to as fontWidth, tp as timelineTriggerRangeEnd, tr as borderLeftColor, ts as interpolateSize, tt as WebkitBoxOrient, tu as positionArea, u as createGlobalTheme, ua as fillOpacity, uc as mathDepth, ud as scrollMarkerGroup, uf as target, ui as containIntrinsicSize, ul as overflowInline, um as Fallback, un as bg, uo as gridAutoFlow, up as transition, ur as borderStartEndRadius, us as lastOfType, ut as WebkitUserModify, uu as r, v as CSSUnitValue, va as flexDirection, vc as maxInlineSize, vd as scrollPaddingInlineStart, vf as textBox, vi as cornerBlockEndShape, vl as overscrollBehaviorX, vn as borderBlockEndStyle, vo as gridTemplate, vp as translateFn, vr as borderTopWidth, vs as lineBreak, vt as alignSelf, vu as rem, w as Keyframes, wa as floodColor, wc as minHeight, wd as scrollSnapType, wf as textDecorationInset, wi as cornerEndStartShape, wl as paddingBlockStart, wn as borderBlockStyle, wo as hover, wp as url, wr as breakAfter, ws as link, wt as anchorSize, wu as rgb, x as CvConfig, xa as flexShrink, xc as mb, xd as scrollPaddingTop, xf as textCombineUpright, xi as cornerBottomRightShape, xl as padding, xn as borderBlockStartColor, xo as gridTemplateRows, xp as translateZ, xr as boxDecorationBreak, xs as lineHeightStep, xt as anchor, xu as repeatingRadialGradient, y as Chain, ya as flexFlow, yc as maxLines, yd as scrollPaddingLeft, yf as textBoxEdge, yi as cornerBlockStartShape, yl as overscrollBehaviorY, yn as borderBlockEndWidth, yo as gridTemplateAreas, yp as translateX, yr as borderWidth, ys as lineClamp, yt as alignmentBaseline, yu as repeatingConicGradient, z as firstThatWorks, za as fontStyle, zc as offsetAnchor, zd as sin, zf as textShadow, zi as counterSet, zl as pb, zn as borderImageSlice, zo as indeterminate, zp as visited, zr as clear, zs as marginLeft, zt as animationTrigger, zu as rubyPosition } from "./theme-types-C5OAtybo.mjs";
2
+ export { AttrOp, type CSS, type CSSColorValue, type CSSImageValue, type CSSStyleValue, type CSSUnitValue, Chain, ChainStyle, CheckOverrides, type ClassValue, CvConfig, CvProps, CvValue, DtcgColor, DtcgCubicBezier, DtcgShadow, DtcgUnit, DtcgValue, type Fallback, FlexMethods, GridMethods, Keyframes, Layout, Overrides, type Part, PositionTry, Prop, QueryWrap, ScvConfig, ScvValue, StateWrap, Steps, type Style, Tokens, WebkitBoxOrient, WebkitBoxReflect, WebkitLineClamp, WebkitTapHighlightColor, WebkitTextFillColor, WebkitTextStroke, WebkitTextStrokeColor, WebkitTextStrokeWidth, WebkitTouchCallout, WebkitUserModify, Wrap, abs, accentColor, acos, active, alignContent, alignItems, alignSelf, alignmentBaseline, all, anchor, anchorName, anchorScope, anchorSize, animation, animationComposition, animationDelay, animationDirection, animationDuration, animationFillMode, animationIterationCount, animationName, animationPlayState, animationRange, animationRangeEnd, animationRangeStart, animationTimeline, animationTimingFunction, animationTrigger, anyLink, appearance, asin, aspectRatio, atan, atan2, attr, attrFn, autofill, backdropFilter, backfaceVisibility, background, backgroundAttachment, backgroundBlendMode, backgroundClip, backgroundColor, backgroundImage, backgroundOrigin, backgroundPosition, backgroundPositionX, backgroundPositionY, backgroundRepeat, backgroundSize, baselineShift, baselineSource, bg, blockSize, blur, border, borderBlock, borderBlockColor, borderBlockEnd, borderBlockEndColor, borderBlockEndStyle, borderBlockEndWidth, borderBlockStart, borderBlockStartColor, borderBlockStartStyle, borderBlockStartWidth, borderBlockStyle, borderBlockWidth, borderBottom, borderBottomColor, borderBottomLeftRadius, borderBottomRightRadius, borderBottomStyle, borderBottomWidth, borderCollapse, borderColor, borderEndEndRadius, borderEndStartRadius, borderImage, borderImageOutset, borderImageRepeat, borderImageSlice, borderImageSource, borderImageWidth, borderInline, borderInlineColor, borderInlineEnd, borderInlineEndColor, borderInlineEndStyle, borderInlineEndWidth, borderInlineStart, borderInlineStartColor, borderInlineStartStyle, borderInlineStartWidth, borderInlineStyle, borderInlineWidth, borderLeft, borderLeftColor, borderLeftStyle, borderLeftWidth, borderRadius, borderRight, borderRightColor, borderRightStyle, borderRightWidth, borderSpacing, borderStartEndRadius, borderStartStartRadius, borderStyle, borderTop, borderTopColor, borderTopLeftRadius, borderTopRightRadius, borderTopStyle, borderTopWidth, borderWidth, bottom, boxDecorationBreak, boxShadow, boxSizing, breakAfter, breakBefore, breakInside, brightness, buffering, calc, calcSize, captionSide, caret, caretAnimation, caretColor, caretShape, check, checked, circle, clamp, clear, clipPath, clipRule, cn, color, colorFn, colorInterpolationFilters, colorMix, colorScheme, columnCount, columnFill, columnGap, columnHeight, columnRule, columnRuleColor, columnRuleStyle, columnRuleWidth, columnSpan, columnWidth, columnWrap, columns, conicGradient, contain, containIntrinsicBlockSize, containIntrinsicHeight, containIntrinsicInlineSize, containIntrinsicSize, containIntrinsicWidth, container, containerName, containerType, content, contentVisibility, contrast, contrastColor, cornerBlockEndShape, cornerBlockStartShape, cornerBottomLeftShape, cornerBottomRightShape, cornerBottomShape, cornerEndEndShape, cornerEndStartShape, cornerInlineEndShape, cornerInlineStartShape, cornerLeftShape, cornerRightShape, cornerShape, cornerStartEndShape, cornerStartStartShape, cornerTopLeftShape, cornerTopRightShape, cornerTopShape, cos, counter, counterIncrement, counterReset, counterSet, counters, createGlobalTheme, createTokens, crossFade, css, cubicBezier, cursor, cv, cx, cy, d, defined, direction, disabled, display, dominantBaseline, dropShadow, dynamicRangeLimit, dynamicRangeLimitMix, element, ellipse, empty, emptyCells, enabled, env, exp, fieldSizing, fill, fillOpacity, fillRule, filter, firstChild, firstOfType, firstThatWorks, fitContent, flex, flexBasis, flexDirection, flexFlow, flexGrow, flexShrink, flexWrap, float, floodColor, floodOpacity, flowTolerance, focus, focusVisible, focusWithin, font, fontFamily, fontFeatureSettings, fontKerning, fontLanguageOverride, fontOpticalSizing, fontPalette, fontSize, fontSizeAdjust, fontStyle, fontSynthesis, fontSynthesisPosition, fontSynthesisSmallCaps, fontSynthesisStyle, fontSynthesisWeight, fontVariant, fontVariantAlternates, fontVariantCaps, fontVariantEastAsian, fontVariantEmoji, fontVariantLigatures, fontVariantNumeric, fontVariantPosition, fontVariationSettings, fontWeight, fontWidth, forcedColorAdjust, fullscreen, future, gap, global, grayscale, grid, gridArea, gridAutoColumns, gridAutoFlow, gridAutoRows, gridColumn, gridColumnEnd, gridColumnStart, gridRow, gridRowEnd, gridRowStart, gridTemplate, gridTemplateAreas, gridTemplateColumns, gridTemplateRows, group, hangingPunctuation, height, hover, hsl, hsla, hueRotate, hwb, hyphenateCharacter, hyphenateLimitChars, hyphens, hypot, image, imageOrientation, imageRendering, imageResolution, imageSet, inRange, indeterminate, initialLetter, initialLetterAlign, inlineSize, inset, insetBlock, insetBlockEnd, insetBlockStart, insetFn, insetInline, insetInlineEnd, insetInlineStart, interactivity, interestDelay, interestDelayEnd, interestDelayStart, interpolateSize, invalid, invert, isolation, justifyContent, justifyItems, justifySelf, keyframes, lab, lastChild, lastOfType, layer, layers, lch, leader, left, letterSpacing, lightDark, lightingColor, lineBreak, lineClamp, lineHeight, lineHeightStep, linear, linearGradient, link, listStyle, listStyleImage, listStylePosition, listStyleType, log, m, margin, marginBlock, marginBlockEnd, marginBlockStart, marginBottom, marginInline, marginInlineEnd, marginInlineStart, marginLeft, marginRight, marginTop, marginTrim, marker, markerEnd, markerMid, markerStart, mask, maskBorder, maskBorderMode, maskBorderOutset, maskBorderRepeat, maskBorderSlice, maskBorderSource, maskBorderWidth, maskClip, maskComposite, maskImage, maskMode, maskOrigin, maskPosition, maskRepeat, maskSize, maskType, mathDepth, mathShift, mathStyle, matrix, matrix3d, max, maxBlockSize, maxHeight, maxInlineSize, maxLines, maxWidth, mb, media, min, minBlockSize, minHeight, minInlineSize, minWidth, minmax, mixBlendMode, ml, mod, modal, mr, mt, muted, objectFit, objectPosition, objectViewBox, offset, offsetAnchor, offsetDistance, offsetPath, offsetPosition, offsetRotate, oklab, oklch, onlyChild, onlyOfType, opacity, opacityFn, open, optional, order, orphans, outOfRange, outline, outlineColor, outlineOffset, outlineStyle, outlineWidth, overflow, overflowAnchor, overflowBlock, overflowClipMargin, overflowInline, overflowWrap, overflowX, overflowY, overlay, overscrollBehavior, overscrollBehaviorBlock, overscrollBehaviorInline, overscrollBehaviorX, overscrollBehaviorY, p, padding, paddingBlock, paddingBlockEnd, paddingBlockStart, paddingBottom, paddingInline, paddingInlineEnd, paddingInlineStart, paddingLeft, paddingRight, paddingTop, page, paint, paintOrder, paletteMix, past, path, paused, pb, perspective, perspectiveFn, perspectiveOrigin, pictureInPicture, pl, placeContent, placeItems, placeSelf, placeholderShown, playing, pointerEvents, polygon, popoverOpen, position, positionAnchor, positionArea, positionTry, positionTryFallbacks, positionTryOrder, positionVisibility, pow, pr, printColorAdjust, pt, quotes, r, radialGradient, ray, readOnly, readWrite, readingFlow, readingOrder, rect, rem, repeatingConicGradient, repeatingLinearGradient, repeatingRadialGradient, required, resize, rgb, rgba, right, root, rotate, rotate3d, rotateFn, rotateX, rotateY, rotateZ, round, rowGap, rubyAlign, rubyMerge, rubyOverhang, rubyPosition, rx, ry, saturate, scale, scale3d, scaleFn, scaleX, scaleY, scaleZ, scope, scroll, scrollBehavior, scrollInitialTarget, scrollMargin, scrollMarginBlock, scrollMarginBlockEnd, scrollMarginBlockStart, scrollMarginBottom, scrollMarginInline, scrollMarginInlineEnd, scrollMarginInlineStart, scrollMarginLeft, scrollMarginRight, scrollMarginTop, scrollMarkerGroup, scrollPadding, scrollPaddingBlock, scrollPaddingBlockEnd, scrollPaddingBlockStart, scrollPaddingBottom, scrollPaddingInline, scrollPaddingInlineEnd, scrollPaddingInlineStart, scrollPaddingLeft, scrollPaddingRight, scrollPaddingTop, scrollSnapAlign, scrollSnapStop, scrollSnapType, scrollTargetGroup, scrollTimeline, scrollTimelineAxis, scrollTimelineName, scrollbarColor, scrollbarGutter, scrollbarWidth, scv, seeking, sepia, shapeImageThreshold, shapeMargin, shapeOutside, shapeRendering, sign, sin, skew, skewX, skewY, speakAs, sqrt, src, stalled, steps, stopColor, stopOpacity, stroke, strokeColor, strokeDasharray, strokeDashoffset, strokeLinecap, strokeLinejoin, strokeMiterlimit, strokeOpacity, strokeWidth, style, superellipse, supports, sx, symbols, tabSize, tableLayout, tan, target, targetCounter, targetCounters, targetText, textAlign, textAlignLast, textAnchor, textAutospace, textBox, textBoxEdge, textBoxTrim, textCombineUpright, textDecoration, textDecorationColor, textDecorationInset, textDecorationLine, textDecorationSkip, textDecorationSkipInk, textDecorationStyle, textDecorationThickness, textEmphasis, textEmphasisColor, textEmphasisPosition, textEmphasisStyle, textIndent, textJustify, textOrientation, textOverflow, textRendering, textShadow, textSizeAdjust, textSpacingTrim, textTransform, textUnderlineOffset, textUnderlinePosition, textWrap, textWrapMode, textWrapStyle, timelineScope, timelineTrigger, timelineTriggerExitRange, timelineTriggerExitRangeEnd, timelineTriggerExitRangeStart, timelineTriggerName, timelineTriggerRange, timelineTriggerRangeEnd, timelineTriggerRangeStart, timelineTriggerSource, token, top, touchAction, transform, transformBox, transformOrigin, transformStyle, transition, transitionBehavior, transitionDelay, transitionDuration, transitionProperty, transitionTimingFunction, translate, translate3d, translateFn, translateX, translateY, translateZ, triggerScope, unicodeBidi, url, userInvalid, userSelect, userValid, valid, _var as var, vectorEffect, verticalAlign, view, viewTimeline, viewTimelineAxis, viewTimelineInset, viewTimelineName, viewTransitionClass, viewTransitionName, visibility, visited, volumeLocked, whiteSpace, whiteSpaceCollapse, widows, width, willChange, within, wordBreak, wordSpacing, wordWrap, writingMode, x, xywh, y, zIndex, zoom };
package/dist/vite.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { c as EvalError, d as MacroError, f as MemberError, i as forgetWarnings, l as HookError, n as forget, p as SiteMissingError, t as Registry } from "./registry-8sYvlzyn.mjs";
2
2
  import { C as fallbackEntries, T as runtimeNames, a as closeNames, b as DERIVED, c as layerEntries, f as themedEntries, l as layerStatements, m as usesDerived, n as addGlobal, o as globalEntries, r as addLayers, s as globalNames, t as LAYERS, u as renderSheet, v as kernelEntries, w as runtimeModule, x as RUNTIME_ID } from "./sheet-qCuMvyUo.mjs";
3
- import { a as runtimeImport, i as instrument, o as tagged, s as writeSite } from "./instrument-BN47aTEW.mjs";
3
+ import { a as instrument, c as writeSite, o as runtimeImport, s as tagged } from "./instrument-D68RkfDU.mjs";
4
4
  import { r as verifyChecks } from "./contrast-Dw6gXoO3.mjs";
5
5
  import { i as serverId, n as gitRoot, o as sessionOf, r as register } from "./devtools-link-DN91p7g5.mjs";
6
6
  import { createRequire } from "node:module";
package/docs/API.md CHANGED
@@ -12,7 +12,7 @@ Every `ts` block here is type-checked against the workspace `cssints` types by `
12
12
  - **Values.** A property takes one or more parts joined by a space. Each part is a string or a Typed OM value: `border("1px solid", accent)`, `padding(CSS.rem(1), CSS.rem(2))`, `padding("1rem 2rem")`. Parts are checked against the mdn grammar in types and again at build time. `CSS.px`, `rem`, `em`, `percent`, `number`, `CSSUnitValue` and `CSSColorValue` come from `cssints`, imported with the attribute.
13
13
  - **Editor.** A bad part is marked on that part: `padding("2px", "red")` puts the error on `"red"`, with the message of the whole value. While a string is not a value yet, the editor offers the keywords of the property that the word under the cursor begins (`display("fl…")` gives `flex`, `flow`, `flow-root`; `border("1px", "so…")` gives `solid`), and all of them in an empty part (`border("1px", "")`; an empty part is an error). The offer is the keywords of the whole grammar, not only those that fit at that point, it stops once the string is valid, and functions such as `rgb(` are not offered.
14
14
  - **Math.** `calc()`, `min()`, `max()`, `clamp()` and the other CSS Values 4 math functions are accepted wherever their type is, as strings (`width("calc(100% - 2rem)")`, checked by the build: `calc(1px + 2s)` is an error) and as calls that take tokens (`calc(t.space.md, "*", 2)`, see "Functions").
15
- - **Layout contexts.** `flex()` and `grid()` without arguments set `display` and chain only their container properties. Names drop only the context prefix: `flex().direction("column").wrap("wrap").alignItems("center").justifyContent("space-between")`, `grid().templateColumns("1fr 2fr").gap(4)`. Plain styles do not chain; merge them with `cn(...)`. Item properties (`flexGrow`, `alignSelf`, `gridColumn`, `order`) are plain functions.
15
+ - **Layout contexts.** `flex()` and `grid()` without arguments set `display` and chain only their container properties. Names drop only the context prefix: `flex().direction("column").wrap("wrap").alignItems("center").justifyContent("space-between")`, `grid().templateColumns("1fr 2fr").gap(4)`. Plain styles do not chain; merge them with `cn(...)`, or write the style as a `sx()` (below), which chains every property. Item properties (`flexGrow`, `alignSelf`, `gridColumn`, `order`) are plain functions.
16
16
  - **`flex(...parts)` and `grid(...parts)` are the shorthand properties.** With at least one argument the call is the `flex` (or `grid`) property, checked by its grammar like any member: `flex("1")`, `flex(1)` and `flex("1 1 0")` are `flex: 1`, `flex: 1` and `flex: 1 1 0`, `grid("auto / 1fr 1fr")` is `grid: auto / 1fr 1fr`. A bare number is a `<number>` here, not a spacing step. The result is a plain style: it sets no `display` and does not chain. The types tell the two forms apart by overload.
17
17
  - **`container` is the condition.** `container("sidebar (width < 30rem)")` is a query; the `container` shorthand property is written with its longhands `containerName` and `containerType`.
18
18
  - **Arguments are build-time values.** The plugin runs your module at build time and replaces each call with a class string. A literal, a `const`, a token or a value from another attributed module works. A value that exists only at runtime (a prop, state) does not: `p(n)` with `n` a parameter is a build error (`css arguments must be known at build time: n is not defined where the call is evaluated`) that points at the call, also when the local is named like a global (`open`, `name`) or like a module binding. The types do not catch it: a helper module may take parameters (below), so a `string` or `number` is a fine argument there. Choose between styles with `cn(base, on && p(4))` (see "Runtime: `cn`, `cv`"), a `cv` variant, or a token set in a `style` prop. A helper module imported with the attribute may take parameters, because each call of it is a site with its own arguments: `stack(4)` below is a build-time call in the file that makes it.
@@ -87,7 +87,7 @@ The static arguments of `cn` are one class string; `prop && p(4)` depends on a r
87
87
  - **One sheet.** All rules are in `virtual:cssints.css`, each once, sorted by layer, then condition, then shorthand before longhand (`border` before `border-top`, counted from Chrome's own expansion of each shorthand), then class name. So a longhand wins over a shorthand that contains it, whatever the order of the arguments: `cn(pl(2), p(4))` keeps `padding-left: 0.5rem`.
88
88
  - **`cn()` keeps the later of the same property.** `cn(p(4), p(2))` is `p(2)`: the earlier declaration is dropped at build time (also for an alias: `wordWrap` is `overflowWrap`). Under different conditions both stay, because they are in different layers: `cn(md(p(6)), p(2))`. Two properties that overlap without one containing the other are a build error, because the sheet cannot order them by the arguments: `cn(borderTop("1px solid red"), borderColor("blue"))` both set `border-top-color`; so do a physical and a logical side (`marginLeft` and `marginInline`, `width` and `inlineSize`), since which physical side a logical one is depends on the writing mode. A logical property inside a physical shorthand that sets every side is contained, not overlapping: `cn(border(...), borderInline(...))` is fine, and `borderInline` wins. A style in a runtime argument is compared with the static arguments at build time, and replaces the classes it overrides while it is active (see "Runtime: `cn`, `cv`").
89
89
  - **A layout context** gives one string: `flex().alignItems("center")` is `"_1s47490 _1ob5z5m"`.
90
- - **Also exported:** `css` (the namespace as a value) and `cn`, `cv`, `firstThatWorks`, `media`, `container`, `supports`, `attr`, `within`, `group`, `global`, `token`, `style`, `createTokens`, `createGlobalTheme`, `check`. Nothing is exported for the browser: the runtime is the plugin's.
90
+ - **Also exported:** `css` (the namespace as a value) and `chain`, `cn`, `cv`, `firstThatWorks`, `media`, `container`, `supports`, `attr`, `within`, `group`, `global`, `token`, `style`, `createTokens`, `createGlobalTheme`, `check`. Nothing is exported for the browser: the runtime is the plugin's.
91
91
 
92
92
  ### Without runtime
93
93
 
@@ -566,9 +566,49 @@ export const f = positionTryFallbacks(fade); // error: a keyframes name is not a
566
566
  }
567
567
  ```
568
568
 
569
+ ### `sx()`: one style without `cn()` (decided 2026-10-25, cssints-ysyp)
570
+
571
+ `sx()` builds one style by chaining properties. Every property is a method, the methods return the chain, and the
572
+ build merges the declarations as `cn()` does. `cn()` stays the tool for merging runtime values, and for `cv()` variants.
573
+
574
+ ```ts
575
+ import { sx, cn, hover } from "cssints" with { type: "cssints" };
576
+
577
+ export const card = sx().flex().flexDirection("column").gap(2).p(4).bg("white");
578
+ export const row = sx().grid().gridTemplateColumns("1fr 2fr").gap(1);
579
+ export const box = cn(sx().p(2), hover(sx().bg("blue")));
580
+ ```
581
+
582
+ `card` is `"_1s47490 _1njigwa _g2iyum _lwugp7 _1ebepn0"`: one class per declaration, one string, no `cn()`.
583
+
584
+ - **Every property is a method**, by its member name: `p`, `bg`, `paddingLeft`, `gridTemplateColumns`. `.flex()` and
585
+ `.grid()` with no argument set `display` and keep chaining; with parts they are the `flex` and `grid` property. A
586
+ chain does not drop a prefix the way a context does: `sx().flex().flexDirection("column")` is the property,
587
+ where `css.flex().direction("column")` drops `flex-`.
588
+ - **A chain sets each property once: a second one is a type error.** The second method is `never`
589
+ (`This expression is not callable. Type 'never' has no call signatures.`), so the rewrite that `cn()` allows cannot
590
+ be written by accident. `bg` and `backgroundColor` are one property, as are `p` and `padding`, so
591
+ `sx().bg("red").backgroundColor("blue")` and `sx().p(4).padding("1rem")` fail in either order. A second
592
+ `.flex()` or `.grid()` is `Expected 1 arguments, but got 0`, since the no-argument form is what sets `display`.
593
+ Write a later value with `cn()`, which keeps the later one of a property, or a longhand.
594
+ - **A shorthand and a longhand of it are different properties**, and stay legal: `sx().p(4).paddingLeft("0.5rem")`
595
+ is both declarations, which the sheet orders (a longhand after its shorthand), exactly as in `cn()`. The types do not
596
+ compare containment, only the property: `sx().bg("red").background("blue")` is `background-color` and
597
+ `background`, not a duplicate.
598
+ - **A chain is a site**, like any `css.*` call: it compiles to its class string, so it works in a variable, in `cn()`,
599
+ in a condition (`hover(sx().bg("blue"))`), and as the `base` or a variant of `cv()`. A `keyframes()` or
600
+ `positionTry()` name in a chain carries its at-rule, as in `css.*`.
601
+ - **Not in a chain:** conditions (`hover`, `media`), other builders (`cn`, `keyframes`, `cv`) and plugin members
602
+ (`frame()`, `surface()`, a scope's members). A build error names the method (`cssints: sx() has no .hover()`).
603
+ Wrap the chain instead: `hover(sx().bg("blue"))`, `cn(frame(), sx().p(2))`.
604
+ - **The cost.** The chain surface is a second member list in the types, so every module that imports `cssints` pays
605
+ about 6.7 k more instantiations (`bench/unused.ts` 46 297 → 53 029, +14.5 %). A chain costs about what the `cn()`
606
+ form of the same declarations costs: 12 chains of five properties are 273 741 instantiations against 264 798 for the
607
+ same 60 declarations as `cn()` calls (+3.4 %, tsc 5.9); `bench/chain.ts` guards it.
608
+
569
609
  ### Runtime: `cn`, `cv` (decided 2026-09-29, cssints-lo9x; `cv` without `_cv` 2026-10-07, cssints-ep2l; `cx` folded into `cn` 2026-10-11, cssints-4e9f)
570
610
 
571
- - **One runtime package: `cssints` itself.** You import nothing for the browser. A module with a `cn()` that has runtime arguments, or a `cv()`, gets `import { _cx as __cx, _cv as __cv } from "cssints"` from the plugin, and those few lines are the only code that ships. `@cssints/variants` is gone.
611
+ - **One runtime package: `cssints` itself.** You import nothing for the browser. A module with a `cn()` that has runtime arguments, or a `cv()`/`scv()`, gets `import { _cx as __cx, _cv as __cv, _scv as __scv } from "cssints"` from the plugin (the ones it needs), and those few lines are the only code that ships. `@cssints/variants` is gone.
572
612
  - **`cn(...)` is the one function that merges.** Arguments known at build time merge into one class string, as above. An argument that depends on a runtime value is joined when the code runs, and the `css.*` calls inside it are still class strings made at build time: only the choice is left.
573
613
 
574
614
  ```ts
@@ -629,7 +669,86 @@ export const bad2 = cv({ base: "padding: 1rem" }); // error: a base is a css val
629
669
  - **Overlap is an error, as in `cn()`.** A base property and a variant property that overlap without one containing the other are a build error at the `cv()` call: `cssints: cv() base and variant active.yes: border-bottom and border-color overlap without one containing the other, so the sheet cannot order them: set one of them, or the longhands` (both set `border-bottom-color`; write `borderBottomColor` in the variant). The same holds for two variants of different keys, which can be active together. Two such variants that set the same property are an error too, since nothing says which wins: `cssints: cv() variants a.x and b.x both set color and can be active together, so nothing says which wins: set it in one of them, or in the base`. Values of one key are never compared, since only one is active.
630
670
  - **A compound wins over what it combines.** It is the most specific style, so under one condition it replaces what it sets again in the base and in the variant values it names (the same rule as a variant over the base): `compoundVariants: [{ size: "lg", tone: "loud", class: p(6) }]` drops the base's padding, `size.lg`'s padding and `tone.loud`'s padding while both are active, in the `compound` entry of the config (`{ when: { size: "lg", tone: "loud" }, class: "_x", drops: "_a _b" }`). The sheet order never decides. What a compound shares with other things that can be active together is compared as for variants: an overlap without containment is an error, and so is the same property in a compound and a variant of a key it does not name (it is active with any of its values), or in two compounds that can be active together (no key they both name with different values). Write the property in one of them, or in the base.
631
671
 
632
- Slot variants (`scv`) are not part of 0.1.
672
+ ### `scv()`: slot variants (decided 2026-10-25, cssints-43rj)
673
+
674
+ `scv()` is one function whose result is the class string of each slot (`{ base, label, icon }`): slots, variants worth a
675
+ style per slot, defaults and compound variants, as in tailwind-variants. The rules are `cv()`'s, computed per slot.
676
+
677
+ ```ts
678
+ import { bg, cn, color, fontSize, opacity, p, scv, width } from "cssints" with { type: "cssints" };
679
+
680
+ const button = scv({
681
+ slots: { base: cn(p(2), color("white")), label: fontSize("1rem"), icon: width("1rem") },
682
+ variants: {
683
+ size: { sm: p(1), lg: { base: p(4), label: fontSize("1.25rem") } },
684
+ tone: { quiet: color("gray"), loud: { base: color("black"), icon: color("red") } },
685
+ disabled: { true: opacity(0.5), false: opacity(1) },
686
+ },
687
+ defaultVariants: { size: "sm", disabled: false },
688
+ compoundVariants: [
689
+ { size: "lg", tone: "loud", class: p(6) },
690
+ { size: "lg", class: bg("crimson"), label: color("blue") },
691
+ ],
692
+ });
693
+
694
+ export const slots = () => button({ size: "lg" }); // { base: "...", label: "...", icon: "..." }
695
+ export const bad = () => button({ size: "xl" }); // error: not a size
696
+ export const badSlot = scv({
697
+ slots: { base: p(2), label: p(1) },
698
+ variants: { size: { sm: { labl: p(1) } } }, // error: labl is not a slot
699
+ });
700
+ ```
701
+
702
+ - **What ships** for `button` is `__scv({ base: { base, variants, defaultVariants, drops?, compound? }, label: {...}, icon: {...} })`,
703
+ one `cv()` config per slot, with `import { _scv as __scv } from "cssints"` added to the module: class strings only, and
704
+ one runtime function per slot, built once when the module loads. `scv()` works in a function, at the top of a module and
705
+ in a library; put the config at the top of the module so the per-slot runtimes are built once.
706
+ - **A slot value is a style, or a record by slot.** A variant value that is a style styles the slot named `base`, so a
707
+ config that gives a bare style and has no `base` slot is a build error; a record styles the slots it names, and a name
708
+ that is not a slot is a type error and a build error at the `scv()` call. In `compoundVariants`, `class` is the `base`
709
+ slot and a slot's own name styles that slot.
710
+ - **The rules are `cv()`'s, per slot.** A variant wins over the slot's base (its class is dropped while active), a compound
711
+ wins over both, and two things that can be active together and overlap without containment are a build error. Each
712
+ error names the slot, for example `cssints: scv() slot base: base and variant active.yes: border-bottom and border-color overlap without one containing the other`. A slot a value does not style is simply not in that slot's config, and the compound entries it has no style for keep their index, so the errors name the entry you wrote.
713
+ - **Props and result.** The props are `cv()`'s, typed from `variants` (`CvProps`): a typo in a name or a value is a type
714
+ error, and a boolean variant takes a boolean. The result is `{ [K in keyof slots]: string }`, so `button().label` is a
715
+ `string` and a slot that is not there is a type error.
716
+ - **Limits.** A `cv()` function as a slot value, and an `scv()` in `compoundVariants`, are not in this release: a slot
717
+ value is a `css.*` style (or a `cn()`/a chain). A slot may not share its name with a variant: a compound entry would
718
+ name both with one key, and the types make that entry impossible to write. A `scv()` site has no readable class in the
719
+ dev overlay yet (a `cn()` or `cv()` site has one).
720
+
721
+ **A slot that reads another slot's state uses `group()` and `within()`, not its class.** A class is a mark on the element
722
+ it is put on: passing `base`'s class to a condition of `label` would style `label`'s own state, not the root's. The root
723
+ marks itself a group and the other slots read that ancestor's state, one condition each:
724
+
725
+ ```ts
726
+ import {
727
+ bg,
728
+ cn,
729
+ color,
730
+ focusVisible,
731
+ fontSize,
732
+ group,
733
+ hover,
734
+ opacity,
735
+ p,
736
+ scv,
737
+ within,
738
+ } from "cssints" with { type: "cssints" };
739
+
740
+ const card = scv({
741
+ slots: {
742
+ base: cn(group(), p(4), bg("white")),
743
+ label: cn(fontSize("1rem"), within(hover)(color("red"))),
744
+ icon: within(focusVisible)(opacity(1)),
745
+ },
746
+ });
747
+ ```
748
+
749
+ `group()` puts `_g` on the element the `base` class is on, and `within(hover)` becomes `:where(._g:hover) .label`, one
750
+ class of specificity, so the sheet's order still decides. `group("card")` with `within(hover, "card")` tells nested cards
751
+ apart. A slot needs no dependency on another slot's value for this, which is why `scv()` takes no slot functions.
633
752
 
634
753
  ### Errors
635
754
 
@@ -1402,7 +1521,7 @@ export const pill = css.cn(
1402
1521
  );
1403
1522
  export const label = css.cn(css.color("#ebebf0"), css.fontSize(14));
1404
1523
  css.width("10rem"); // error: Clay counts pixels
1405
- css.boxShadow("0 0 1px red"); // error: no such member in Clay
1524
+ css.boxShadow("0 0 1px red"); // error: no such member in Clay (a shadow is css.shadow, below)
1406
1525
  ```
1407
1526
 
1408
1527
  ```c
@@ -1414,7 +1533,7 @@ static const Clay_TextElementConfig label_text = { .textColor = { .r = 235, .g =
1414
1533
  CLAY(CLAY_ID("Units"), pill) { CLAY_TEXT(CLAY_STRING("switch to g"), label_text); }
1415
1534
  ```
1416
1535
 
1417
- - **Members**: `width`, `height` (pixels, `N%`, `auto` for Clay's FIT, `stretch` for GROW), `padding`/`p` and the sides, `gap` (`childGap`), `flexDirection` (`row`, `column`), `justifyContent` and `alignItems` (start, center, end: Clay's `childAlignment`, the axis from `flexDirection`), `backgroundColor`/`bg`, `borderRadius`, `border(width, colour)`, `borderWidth`, `borderColor`, `overflow("hidden")` (`clip`), `float()` (`floating`, below), `image(src, { width, height, fit })` (`image`, below), and for text `color`, `fontSize`, `letterSpacing`, `lineHeight`, `textAlign`, `whiteSpace` (`wrapMode`); `cn` merges, a later prop wins. Any other property is not a member.
1536
+ - **Members**: `width`, `height` (pixels, `N%`, `auto` for Clay's FIT, `stretch` for GROW), `padding`/`p` and the sides, `gap` (`childGap`), `flexDirection` (`row`, `column`), `justifyContent` and `alignItems` (start, center, end: Clay's `childAlignment`, the axis from `flexDirection`), `backgroundColor`/`bg`, `borderRadius`, `border(width, colour)`, `borderWidth`, `borderColor`, `overflow("hidden")` (`clip`), `float()` (`floating`, below), `image(src, { width, height, fit })` (`image`, below), `backgroundImage("linear-gradient(...)")` (a renderer effect, not a Clay field: `backgroundImage`, below), `shadow({ x, y, blur, color })` and `backdrop({ blur })` (renderer effects, not Clay fields: `shadow` and `backdrop`, below), and for text `color`, `fontSize`, `letterSpacing`, `lineHeight`, `textAlign`, `whiteSpace` (`wrapMode`); `cn` merges, a later prop wins. Any other property is not a member.
1418
1537
  - **Pixels.** A number or `"Npx"`; padding, gap and border widths are whole numbers (`uint16_t` in Clay). Another unit is a type error and a build error.
1419
1538
  - **Colours** are checked by the web's `color` grammar, or are colour tokens of cssints/clay's `createTokens`, and are written as 0-255 `r g b a`.
1420
1539
  - **`header(exports)`** prints a `Clay_ElementDeclaration` per export and, for one with text props, a `Clay_TextElementConfig` named `<name>_text`. A field it does not set is zero, which is Clay's default.
@@ -1504,6 +1623,97 @@ css.image("logo.png", { width: 64, height: 32, fit: "cover" }); // error: fill o
1504
1623
  static const Clay_ElementDeclaration glyph = { .layout = { .sizing = { .width = { .size = { .minMax = { 32, 32 } }, .type = CLAY__SIZING_TYPE_FIXED }, .height = { .size = { .minMax = { 32, 32 } }, .type = CLAY__SIZING_TYPE_FIXED } } }, .image = { .imageData = (void *)"examples/sensors/glyph.png" } };
1505
1624
  ```
1506
1625
 
1626
+ - **Shadows** (2026-10-23): `shadow({ x, y, blur, color })` is a renderer effect, not a Clay field — `Clay_ElementDeclaration` has none in Clay 1.0. The declaration keeps its layout, the literal carries the shadow as a sibling key (as an image's path does), and `header()` prints nothing for it, so the C targets are unchanged and ignore it until a page's own renderer draws it. The shadow is the element's own box, moved by `x`/`y` and filled with `color`, its edge softened by `blur` (CSS's `box-shadow` reading, in pixels: the gaussian's sigma is half of it), drawn before the element's own command so the element covers the middle of it. The desktop renderer (`native/solid`) is the one that draws it today.
1627
+
1628
+ | Option | What the renderer draws | Default |
1629
+ | ------------- | ------------------------------------------------------------------------- | ------------------ |
1630
+ | `x`, `y` | the element's box moved that many pixels (a negative one goes left or up) | 0, 2 |
1631
+ | `blur` | the width of the soft edge, not negative (sigma is half of it) | 12 |
1632
+ | `color` | the shadow's colour, any colour a Clay page can draw | `rgb(0 0 0 / 0.4)` |
1633
+ | spread, inset | not drawn: the box is the element's own, and the shadow lies outside it | — |
1634
+
1635
+ The literal is whole — `shadow: { x, y, blur, color: { r, g, b, a } }`, unset fields at their defaults — and a state's overlay merges field by field, so `css.hover(css.shadow({ blur: 20 }))` keeps the base's `x`, `y` and colour. **The element needs an `id`**: the renderer keys the shadow by Clay's element id (a table a frame, cleared with it), one draw an element, and an anonymous element's shadow is dropped. A blur is not free: the Dialog page's 280x152 panel (blur 24) costs 0.8 ms a frame on the desktop and takes its 360x480 frame from 1.07 to 1.93 ms (Apple M2, one thread, `--bench 300`; quality 50 and 30 are 1.47 and 1.31 ms, for 5/255 and 15/255 at the shadow's edge). A colour's alpha is what the shadow is worth: over a dimmed page a black one can darken only a little (3/255 under the panel in the dark theme, 41/255 in the light one).
1636
+
1637
+ ```ts
1638
+ import * as css from "cssints/clay" with { type: "cssints" };
1639
+
1640
+ export const panel = css.cn(
1641
+ css.width(280),
1642
+ css.bg("#242834"),
1643
+ css.borderRadius(12),
1644
+ css.shadow({ y: 12, blur: 24, color: "rgb(0 0 0 / 0.45)" }),
1645
+ );
1646
+ css.shadow({ spread: 2 }); // error: the box is the element's own
1647
+ css.shadow({ blur: "1rem" }); // error: a blur is pixels
1648
+ ```
1649
+
1650
+ ```c
1651
+ // no shadow here: a renderer effect, not a Clay field
1652
+ static const Clay_ElementDeclaration panel = { .layout = { .sizing = { .width = { .size = { .minMax = { 280, 280 } }, .type = CLAY__SIZING_TYPE_FIXED } } }, .backgroundColor = { .r = 36, .g = 40, .b = 52, .a = 255 }, .cornerRadius = { .topLeft = 12, .topRight = 12, .bottomRight = 12, .bottomLeft = 12 } };
1653
+ ```
1654
+
1655
+ - **Backdrops** (2026-10-23): `backdrop({ blur })` is glass over our **own** content — a menu or a panel over the page we draw, its fill translucent, the pixels under it blurred. The window behind the window is out of reach: nothing outside the frame's buffer can be sampled, so this is what CSS's `backdrop-filter` shows when the backdrop is the same page, not the desktop. As `shadow` is, it is a renderer effect, not a Clay field: `Clay_ElementDeclaration` has none in Clay 1.0, the literal carries a sibling `backdrop: { blur }` key, `header()` prints nothing for it, and the C targets are unchanged. The renderer draws everything before the element's first command, blurs the element's box in its own buffer, then draws the element's own commands over the blurred pixels — its text and border stay crisp. **The element needs an `id`**, one backdrop an element. `blur` is a radius in pixels, read as CSS reads one (the gaussian's sigma is half of it).
1656
+
1657
+ | Option | What the renderer does | Default |
1658
+ | ------ | ----------------------------------------------------------------- | ------- |
1659
+ | `blur` | blurs the element's box under it, not negative | 12 |
1660
+ | — | no spread, no saturation or tint: only `blur`, and one an element | — |
1661
+
1662
+ The desktop renderer (`native/solid`) is the only one that draws a backdrop today; the box is the element's first rectangle command, clipped to the canvas, and nothing is blurred outside it. The blur is three box passes each way on the CPU, on the region alone; on the Dialog page's 150x133 menu (blur 10) the frame's draw goes from 2.2 to 3.0 ms (Apple M2, one thread, back-to-back 300-frame runs), and the radius barely moves it — the frame's split into two draws is the cost. A panel may keep its own shadow: it is drawn before the blur, so it lies on the unblurred page, under the glass. The browser (a dual Kawase pass), the board and the terminal have none.
1663
+
1664
+ ```ts
1665
+ import * as css from "cssints/clay" with { type: "cssints" };
1666
+
1667
+ // a menu: the page shows through its fill, blurred; its own text is drawn after the blur
1668
+ export const menu = css.cn(
1669
+ css.width(150),
1670
+ css.bg("rgb(23 27 32 / 0.72)"),
1671
+ css.borderRadius(10),
1672
+ css.backdrop({ blur: 10 }),
1673
+ );
1674
+ css.backdrop({ spread: 2 }); // error: the box is the element's own
1675
+ css.backdrop({ blur: "1rem" }); // error: a blur is pixels
1676
+ ```
1677
+
1678
+ ```c
1679
+ // no backdrop here either: the declaration keeps its layout and its translucent fill
1680
+ static const Clay_ElementDeclaration menu = { .layout = { .sizing = { .width = { .size = { .minMax = { 150, 150 } }, .type = CLAY__SIZING_TYPE_FIXED } } }, .backgroundColor = { .r = 23, .g = 27, .b = 32, .a = 184 }, .cornerRadius = { .topLeft = 10, .topRight = 10, .bottomRight = 10, .bottomLeft = 10 } };
1681
+ ```
1682
+
1683
+ - **Gradients** (2026-10-23): `backgroundImage("linear-gradient(...)")` fills the element's box with a linear gradient, written as CSS writes it — one string, the function, an optional direction, the stops. Clay 1.0 has no gradient field, so as `shadow` and `backdrop` are, it is a renderer effect: the declaration keeps its layout and its solid fill, the literal carries a sibling `backgroundImage: { kind: "linear", angle, stops: [{ offset, color: { r, g, b, a } }] }` key, `header()` prints nothing for it, the C targets draw the solid fill, and the desktop renderer (`native/solid`) fills the box with the gradient instead of `backgroundColor`. **The element needs an `id`**, and a solid `backgroundColor` too: Clay emits a rectangle command for a box whose fill is not transparent, and that command is where the gradient goes (the solid is not drawn then).
1684
+
1685
+ | Part | What it is | Default |
1686
+ | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------- |
1687
+ | `linear-gradient(` … `)` | the only function: `radial-gradient`, `conic-gradient`, a repeating one, `url()` and `image-set()` are build errors | — |
1688
+ | the direction | `<number>deg` (0 up, 90 right, 180 down, 270 left), or `to top`/`to right`/`to bottom`/`to left`, which are 0, 90, 180, 270 | `180deg`, `to bottom` |
1689
+ | two or more stops | a colour through `bg`'s parser (tokens too), and an optional `<number>%` from 0 to 100, in order; fewer than two, or a percentage that goes back, is a build error | — |
1690
+ | a stop without a `%` | spread evenly between the stops that have one, as CSS does: an unpositioned first stop is 0%, an unpositioned last one 100% | — |
1691
+
1692
+ The literal's offsets are 0 to 1. A stop's colour is resolved at build time per theme, as a `bg` token is, so a gradient of tokens lights up in the light theme by itself. A state may set `backgroundImage` whole, `css.hover(css.backgroundImage(...))`, which is how the Sky page's cards lighten under the pointer; it cannot unset one — override it or leave it out. Up to 8 stops are drawn; a ninth is dropped and counted as a renderer error, not a crash. Only a fill is drawn: there is no gradient on text, a border or an image, and the browser, the board and the terminal have none (the C targets keep the solid fill).
1693
+
1694
+ ```ts
1695
+ import * as css from "cssints/clay" with { type: "cssints" };
1696
+
1697
+ // a card's fill: the panel token at the top, a step deeper at the bottom; `to right` would be 90deg
1698
+ export const card = css.cn(
1699
+ css.width("100%"),
1700
+ css.bg("rgb(27 32 38)"),
1701
+ css.backgroundImage("linear-gradient(180deg, rgb(27 32 38), rgb(21 25 30))"),
1702
+ );
1703
+ // a state overrides the whole gradient: the card lightens under the pointer
1704
+ export const hovered = css.cn(
1705
+ card,
1706
+ css.hover(css.backgroundImage("linear-gradient(180deg, #2a303a, #1f242b)")),
1707
+ );
1708
+ css.backgroundImage({ angle: 180 }); // error: one string
1709
+ css.backgroundImage(); // error: the gradient is required
1710
+ ```
1711
+
1712
+ ```c
1713
+ // no gradient here either: the declaration keeps its layout and its solid fill
1714
+ static const Clay_ElementDeclaration card = { .layout = { .sizing = { .width = { .size = { .percent = 1 }, .type = CLAY__SIZING_TYPE_PERCENT } } }, .backgroundColor = { .r = 27, .g = 32, .b = 38, .a = 255 } };
1715
+ ```
1716
+
1507
1717
  - **Not yet**: min and max sizes, derived colour tokens (`color-mix()` of tokens: a colour Clay is given must parse as one), a theme under a condition (a theme is a name; `media()` has no meaning on a board).
1508
1718
 
1509
1719
  ### Export groups: `cssints/widely-available`, `cssints/css-grid-2`, … (decided 2026-10-11, cssints-n7z3)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cssints",
3
- "version": "0.6.1",
3
+ "version": "0.8.0",
4
4
  "description": "CSS in TypeScript: typed css.* calls compiled to atomic CSS at build time (a Vite plugin)",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -68,7 +68,7 @@
68
68
  }
69
69
  },
70
70
  "dependencies": {
71
- "@cssints/css-grammar": "^0.6.1",
71
+ "@cssints/css-grammar": "^0.8.0",
72
72
  "culori": "^4.0.2",
73
73
  "effect": "4.0.6",
74
74
  "happy-dom": "^20.14.5",
@@ -3,7 +3,7 @@ name: cssints
3
3
  description: >-
4
4
  Write, review and fix styles in a project that uses cssints, the CSS-in-TypeScript compiler (a Vite plugin that
5
5
  runs css.* calls at build time and replaces them with atomic class strings). Load it when code imports from
6
- "cssints" with { type: "cssints" }, uses cn(), cv(), css.* members, media()/hover()/container()/within(),
6
+ "cssints" with { type: "cssints" }, uses cn(), cv(), scv(), css.* members, media()/hover()/container()/within(),
7
7
  createTokens, createGlobalTheme, check.contrast, or an @cssints/* package (layout, motion, fluid, fonts, reset,
8
8
  tokens, icons, ...), and when a build fails with a "cssints:" message such as "must be known at build time",
9
9
  "without the attribute", "unexpected ... expected <...>", "overlap without one containing the other" or
@@ -15,7 +15,7 @@ description: >-
15
15
  Every `css.*` call runs at build time in Vite's Module Runner and is replaced by a class string. The values are
16
16
  checked against the CSS grammars (mdn-data) twice: in the types, where the call is, and again by the build, with the
17
17
  file and the place of the call. One sheet, `virtual:cssints.css`, holds every rule once, in `@layer`s. The browser
18
- gets class strings and the few lines behind `cn` with runtime arguments and `cv`. The reference is `docs/API.md` of the cssints repository; the
18
+ gets class strings and the few lines behind `cn` with runtime arguments, `cv` and `scv`. The reference is `docs/API.md` of the cssints repository; the
19
19
  parts below are what you need most of the time.
20
20
 
21
21
  If the cssints MCP server is configured, prefer it for checks: `check_declaration` (is this value valid, and the
@@ -92,7 +92,7 @@ the run does not reach (`false && p(4)`, a branch) still gets its class string.
92
92
  - `firstThatWorks("100dvh", "100vh")` is a value with fallbacks in one class.
93
93
  - `keyframes({ from: opacity(0), to: opacity(1) })` returns a name for `animation(fade, "200ms")`.
94
94
 
95
- ## Merging: cn, cv
95
+ ## Merging: cn, cv, scv
96
96
 
97
97
  - `cn(...)` merges at build time into one string; the later of one property wins (`cn(p(4), p(2))` is `p(2)`). A
98
98
  longhand beats its shorthand whatever the order. Two properties that overlap without one containing the other
@@ -115,6 +115,11 @@ const button = cv({
115
115
  button({ size: "lg", disabled: true });
116
116
  ```
117
117
 
118
+ - `scv({ slots, variants, defaultVariants, compoundVariants })` is the slot recipe: `button({ size: "lg" })` gives the
119
+ class string of every slot (`{ base, label, icon }`). A variant value that is a style styles the `base` slot, a record
120
+ by slot styles those slots (`{ base: p(4), label: fontSize("1.25rem") }`); in a compound, `class` is `base` and a slot's
121
+ name styles that slot. The rules are `cv()`'s, per slot.
122
+
118
123
  ## Conditions and layers
119
124
 
120
125
  Conditions are wrappers that nest: `hover(bg("#eee"))`, `media("(width >= 40rem)")(p(4))`, `md(hover(...))`.
@@ -1 +0,0 @@
1
- import "./theme-types-DVk08gse.mjs";