@barocss/kit 0.8.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -435,6 +435,26 @@ function staticUtility(name, decls, opts, ctx) {
435
435
  * category: 'layout',
436
436
  * });
437
437
  */
438
+ /**
439
+ * #300: a theme key that no built-in utility names (`theme.extend.borderRadius.card`) still resolves, as in
440
+ * Tailwind 4 where `--radius-card` gives `rounded-card`. Only word keys that start with a letter (numbers stay
441
+ * bare values), never `DEFAULT`; unknown keys return null so the utility emits nothing (#213).
442
+ */
443
+ function themeKeyEntry(ctx, namespace, key) {
444
+ if (key === "DEFAULT" || !/^[a-zA-Z][\w-]*$/.test(key) || typeof ctx?.theme !== "function") return void 0;
445
+ const table = ctx.theme(namespace);
446
+ if (!table || typeof table !== "object" || !Object.prototype.hasOwnProperty.call(table, key)) return void 0;
447
+ return table[key] ?? void 0;
448
+ }
449
+ /** #300: the literal value of `theme.<namespace>.<key>` when it is a string, else null. */
450
+ function themeKeyValue(ctx, namespace, key) {
451
+ const v = themeKeyEntry(ctx, namespace, key);
452
+ return typeof v === "string" ? v : null;
453
+ }
454
+ /** #300: `var(--<varPrefix>-<key>)` when `theme.<namespace>.<key>` exists (the :root var BaroCSS emits for it), else null. */
455
+ function themeKeyVar(ctx, namespace, key, varPrefix) {
456
+ return themeKeyEntry(ctx, namespace, key) === void 0 ? null : `var(--${varPrefix}-${key})`;
457
+ }
438
458
  /** #261: `var(--spacing-<key>)` for a named (non-numeric) `theme.spacing` key, else null. */
439
459
  function spacingKeyValue(ctx, key, negative) {
440
460
  if (key === "px" || !/^[a-zA-Z][\w-]*$/.test(key) || ctx.theme("spacing", key) == null) return null;
@@ -477,12 +497,18 @@ function functionalUtility(opts, ctx) {
477
497
  }
478
498
  let themeValue;
479
499
  if (opts.themeKey && ctx.theme) themeValue = themeScalar(ctx.theme(opts.themeKey, finalValue));
500
+ let namespace = themeValue !== void 0 ? opts.themeKey : void 0;
480
501
  if (!themeValue && opts.themeKeys && ctx.theme) for (const key of opts.themeKeys) {
481
502
  themeValue = themeScalar(ctx.theme(key, finalValue));
482
- if (themeValue !== void 0) break;
503
+ if (themeValue !== void 0) {
504
+ namespace = key;
505
+ break;
506
+ }
483
507
  }
484
508
  if (themeValue !== void 0) {
485
- extra.realThemeValue = finalValue;
509
+ extra.themeNamespace = namespace;
510
+ extra.themeKey = finalValue;
511
+ if (namespace === "colors" || !(opts.themeKeys ?? [opts.themeKey]).includes("colors")) extra.realThemeValue = finalValue;
486
512
  finalValue = themeValue;
487
513
  if (opts.prop) return [decl(opts.prop, finalValue)];
488
514
  if (opts.handle) {
@@ -1208,6 +1234,14 @@ function boxShadowToCssVars(boxShadow) {
1208
1234
  * fontSize: { xs: ['0.75rem', '1rem'], ... }
1209
1235
  * → { '--text-xs': '0.75rem', '--text-xs--line-height': '1rem' }
1210
1236
  */
1237
+ /** The line height of a fontSize tuple: `['4rem', '1.1']` or Tailwind's `['4rem', { lineHeight: '1.1' }]` (#300). */
1238
+ function fontSizeLineHeight(value) {
1239
+ if (!Array.isArray(value)) return void 0;
1240
+ const second = value[1];
1241
+ if (typeof second === "string" || typeof second === "number") return String(second);
1242
+ const lh = second?.lineHeight;
1243
+ return lh == null ? void 0 : String(lh);
1244
+ }
1211
1245
  function fontSizeToCssVars(fontSize) {
1212
1246
  if (!fontSize) return {};
1213
1247
  const result = {};
@@ -1215,7 +1249,8 @@ function fontSizeToCssVars(fontSize) {
1215
1249
  const value = fontSize[key];
1216
1250
  if (Array.isArray(value)) {
1217
1251
  result[`--text-${key}`] = value[0];
1218
- if (value[1]) result[`--text-${key}--line-height`] = value[1];
1252
+ const lineHeight = fontSizeLineHeight(value);
1253
+ if (lineHeight) result[`--text-${key}--line-height`] = lineHeight;
1219
1254
  } else result[`--text-${key}`] = value;
1220
1255
  }
1221
1256
  return result;
@@ -2626,105 +2661,81 @@ textarea {
2626
2661
  resize: vertical;
2627
2662
  }
2628
2663
  `;
2664
+ /**
2665
+ * Full preflight: a port of Tailwind CSS v4.3.3's preflight.css (MIT), rule for rule (#336).
2666
+ * `--theme(--x, fallback)` becomes `var(--x, fallback)`; the default sans/mono families also fall back to
2667
+ * `--font-sans`/`--font-mono` so a BaroCSS theme applies. Checked by tests/compat/preflight-336.test.ts.
2668
+ */
2629
2669
  var preflightFullCSS = `
2630
- /* BaroCSS Preflight - Full Reset */
2631
- /* =============================== */
2632
-
2633
- /* Box sizing rules */
2670
+ /* BaroCSS Preflight - Full (Tailwind 4.3.3) */
2634
2671
  *,
2635
- *::before,
2636
- *::after {
2672
+ ::after,
2673
+ ::before,
2674
+ ::backdrop,
2675
+ ::file-selector-button {
2637
2676
  box-sizing: border-box;
2638
- }
2639
-
2640
- /* Remove default margin and padding; reset border to Tailwind v4's universal
2641
- \`border: 0 solid\` so a bare border/border-t (width set by the utility, style
2642
- otherwise \`none\`) renders. Width 0 keeps borders invisible until a utility
2643
- sets one. */
2644
- * {
2645
2677
  margin: 0;
2646
2678
  padding: 0;
2647
2679
  border: 0 solid;
2648
2680
  }
2649
2681
 
2650
- /* Set core body defaults */
2651
- body {
2652
- min-height: 100vh;
2653
- scroll-behavior: smooth;
2654
- text-rendering: optimizeSpeed;
2682
+ html,
2683
+ :host {
2655
2684
  line-height: 1.5;
2656
- -webkit-font-smoothing: antialiased;
2657
- -moz-osx-font-smoothing: grayscale;
2658
- }
2659
-
2660
- /* Remove list styles on ul, ol elements */
2661
- ul,
2662
- ol {
2663
- list-style: none;
2664
- }
2665
-
2666
- /* Make images easier to work with */
2667
- img,
2668
- picture {
2669
- max-width: 100%;
2670
- display: block;
2671
- }
2672
-
2673
- /* Inherit fonts for inputs and buttons */
2674
- input,
2675
- button,
2676
- textarea,
2677
- select {
2678
- font: inherit;
2685
+ -webkit-text-size-adjust: 100%;
2686
+ tab-size: 4;
2687
+ font-family: var(--default-font-family, var(--font-sans, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'));
2688
+ font-feature-settings: var(--default-font-feature-settings, normal);
2689
+ font-variation-settings: var(--default-font-variation-settings, normal);
2690
+ -webkit-tap-highlight-color: transparent;
2679
2691
  }
2680
2692
 
2681
- /* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
2682
- @media (prefers-reduced-motion: reduce) {
2683
- html {
2684
- scroll-behavior: auto;
2685
- }
2686
-
2687
- *,
2688
- *::before,
2689
- *::after {
2690
- animation-duration: 0.01ms !important;
2691
- animation-iteration-count: 1 !important;
2692
- transition-duration: 0.01ms !important;
2693
- scroll-behavior: auto !important;
2694
- }
2693
+ hr {
2694
+ height: 0;
2695
+ color: inherit;
2696
+ border-top-width: 1px;
2695
2697
  }
2696
2698
 
2697
- /* HTML5 display-role reset for older browsers */
2698
- article, aside, details, figcaption, figure,
2699
- footer, header, hgroup, menu, nav, section {
2700
- display: block;
2699
+ abbr:where([title]) {
2700
+ -webkit-text-decoration: underline dotted;
2701
+ text-decoration: underline dotted;
2701
2702
  }
2702
2703
 
2703
- /* Additional full resets */
2704
- html {
2705
- line-height: 1.15;
2706
- -webkit-text-size-adjust: 100%;
2707
- -ms-text-size-adjust: 100%;
2708
- /* Tailwind 4.1.13 root font (app --default-font-family / --font-sans win) */
2709
- font-family: var(--default-font-family, var(--font-sans, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'));
2710
- font-feature-settings: var(--default-font-feature-settings, normal);
2711
- font-variation-settings: var(--default-font-variation-settings, normal);
2704
+ h1,
2705
+ h2,
2706
+ h3,
2707
+ h4,
2708
+ h5,
2709
+ h6 {
2710
+ font-size: inherit;
2711
+ font-weight: inherit;
2712
2712
  }
2713
2713
 
2714
- /* Remove the gray background on active links in IE 10 */
2715
2714
  a {
2716
- background-color: transparent;
2717
- text-decoration: none;
2718
2715
  color: inherit;
2716
+ -webkit-text-decoration: inherit;
2717
+ text-decoration: inherit;
2719
2718
  }
2720
2719
 
2721
- /* Add the correct font weight in Chrome, Edge, and Safari */
2722
2720
  b,
2723
2721
  strong {
2724
2722
  font-weight: bolder;
2725
2723
  }
2726
2724
 
2727
- /* Prevent sub and sup elements from affecting the line height */
2725
+ code,
2726
+ kbd,
2727
+ samp,
2728
+ pre {
2729
+ font-family: var(--default-mono-font-family, var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace));
2730
+ font-feature-settings: var(--default-mono-font-feature-settings, normal);
2731
+ font-variation-settings: var(--default-mono-font-variation-settings, normal);
2732
+ font-size: 1em;
2733
+ }
2734
+
2735
+ small {
2736
+ font-size: 80%;
2737
+ }
2738
+
2728
2739
  sub,
2729
2740
  sup {
2730
2741
  font-size: 75%;
@@ -2741,265 +2752,49 @@ sup {
2741
2752
  top: -0.5em;
2742
2753
  }
2743
2754
 
2744
- /* Improve media defaults */
2745
- svg {
2746
- vertical-align: middle;
2747
- }
2748
-
2749
- /* Remove border on iframe */
2750
- iframe {
2751
- border: 0;
2752
- }
2753
-
2754
- /* Table defaults */
2755
2755
  table {
2756
+ text-indent: 0;
2757
+ border-color: inherit;
2756
2758
  border-collapse: collapse;
2757
- border-spacing: 0;
2758
- }
2759
-
2760
- /* Form element defaults */
2761
- button,
2762
- input,
2763
- optgroup,
2764
- select,
2765
- textarea {
2766
- font-family: inherit;
2767
- font-size: 100%;
2768
- line-height: 1.15;
2769
- margin: 0;
2770
- }
2771
-
2772
- button,
2773
- select {
2774
- text-transform: none;
2775
- }
2776
-
2777
- button,
2778
- [type="button"],
2779
- [type="reset"],
2780
- [type="submit"] {
2781
- -webkit-appearance: button;
2782
2759
  }
2783
2760
 
2784
- button::-moz-focus-inner,
2785
- [type="button"]::-moz-focus-inner,
2786
- [type="reset"]::-moz-focus-inner,
2787
- [type="submit"]::-moz-focus-inner {
2788
- border-style: none;
2789
- padding: 0;
2790
- }
2791
-
2792
- button:-moz-focusring,
2793
- [type="button"]:-moz-focusring,
2794
- [type="reset"]:-moz-focusring,
2795
- [type="submit"]:-moz-focusring {
2796
- outline: 1px dotted ButtonText;
2797
- }
2798
-
2799
- /* Remove the inner border and padding in Firefox */
2800
- button::-moz-focus-inner,
2801
- [type="button"]::-moz-focus-inner,
2802
- [type="reset"]::-moz-focus-inner,
2803
- [type="submit"]::-moz-focus-inner {
2804
- border-style: none;
2805
- padding: 0;
2761
+ :-moz-focusring:where(:not(iframe)) {
2762
+ outline: auto;
2806
2763
  }
2807
2764
 
2808
- /* Restore the focus styles unset by the previous rule */
2809
- button:-moz-focusring,
2810
- [type="button"]:-moz-focusring,
2811
- [type="reset"]:-moz-focusring,
2812
- [type="submit"]:-moz-focusring {
2813
- outline: 1px dotted ButtonText;
2814
- }
2815
-
2816
- /* Correct the padding in Firefox */
2817
- fieldset {
2818
- padding: 0.35em 0.75em 0.625em;
2819
- }
2820
-
2821
- /* Remove padding so developers aren't caught out when they zero out fieldset elements */
2822
- legend {
2823
- box-sizing: border-box;
2824
- color: inherit;
2825
- display: table;
2826
- max-width: 100%;
2827
- padding: 0;
2828
- white-space: normal;
2829
- }
2830
-
2831
- /* Add the correct vertical alignment in Chrome, Firefox, and Opera */
2832
2765
  progress {
2833
2766
  vertical-align: baseline;
2834
2767
  }
2835
2768
 
2836
- /* Remove the default vertical scrollbar in IE */
2837
- textarea {
2838
- overflow: auto;
2839
- }
2840
-
2841
- /* Correct the cursor style of increment and decrement buttons in Chrome */
2842
- [type="number"]::-webkit-inner-spin-button,
2843
- [type="number"]::-webkit-outer-spin-button {
2844
- height: auto;
2845
- }
2846
-
2847
- /* Remove the inner padding in Chrome and Safari on macOS */
2848
- [type="search"] {
2849
- -webkit-appearance: textfield;
2850
- outline-offset: -2px;
2851
- }
2852
-
2853
- /* Remove the inner padding in Chrome and Safari on macOS */
2854
- [type="search"]::-webkit-search-decoration {
2855
- -webkit-appearance: none;
2856
- }
2857
-
2858
- /* Remove the default vertical scrollbar in IE */
2859
- textarea {
2860
- overflow: auto;
2861
- }
2862
-
2863
- /* Correct the cursor style of increment and decrement buttons in Chrome */
2864
- [type="number"]::-webkit-inner-spin-button,
2865
- [type="number"]::-webkit-outer-spin-button {
2866
- height: auto;
2867
- }
2868
-
2869
- /* Remove the inner padding in Chrome and Safari on macOS */
2870
- [type="search"] {
2871
- -webkit-appearance: textfield;
2872
- outline-offset: -2px;
2873
- }
2874
-
2875
- /* Remove the inner padding in Chrome and Safari on macOS */
2876
- [type="search"]::-webkit-search-decoration {
2877
- -webkit-appearance: none;
2878
- }
2879
-
2880
- /* Additional full reset styles */
2881
- abbr[title] {
2882
- border-bottom: none;
2883
- text-decoration: underline;
2884
- text-decoration: underline dotted;
2885
- }
2886
-
2887
- /* Add the correct font size in all browsers */
2888
- small {
2889
- font-size: 80%;
2769
+ summary {
2770
+ display: list-item;
2890
2771
  }
2891
2772
 
2892
- /* Prevent overflow of the container in all browsers */
2893
- code,
2894
- kbd,
2895
- pre,
2896
- samp {
2897
- font-family: var(--default-mono-font-family, var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace));
2898
- font-feature-settings: var(--default-mono-font-feature-settings, normal);
2899
- font-variation-settings: var(--default-mono-font-variation-settings, normal);
2900
- font-size: 1em;
2773
+ ol,
2774
+ ul,
2775
+ menu {
2776
+ list-style: none;
2901
2777
  }
2902
2778
 
2903
- /* Add the correct display in IE 9 */
2779
+ img,
2780
+ svg,
2781
+ video,
2782
+ canvas,
2904
2783
  audio,
2905
- video {
2906
- display: inline-block;
2907
- }
2908
-
2909
- /* Add the correct display in IE */
2910
- template {
2911
- display: none;
2912
- }
2913
-
2914
- /* Hidden attribute */
2915
- [hidden] {
2916
- display: none;
2917
- }
2918
-
2919
- /* Focus styles */
2920
- :focus {
2921
- outline: 2px solid #3b82f6;
2922
- outline-offset: 2px;
2923
- }
2924
-
2925
- /* Skip link for accessibility */
2926
- .skip-link {
2927
- position: absolute;
2928
- top: -40px;
2929
- left: 6px;
2930
- background: #000;
2931
- color: white;
2932
- padding: 8px;
2933
- text-decoration: none;
2934
- z-index: 100;
2935
- }
2936
-
2937
- .skip-link:focus {
2938
- top: 6px;
2784
+ iframe,
2785
+ embed,
2786
+ object {
2787
+ display: block;
2788
+ vertical-align: middle;
2939
2789
  }
2940
2790
 
2941
- /* Print styles */
2942
- @media print {
2943
- *,
2944
- *::before,
2945
- *::after {
2946
- background: transparent !important;
2947
- color: #000 !important;
2948
- box-shadow: none !important;
2949
- text-shadow: none !important;
2950
- }
2951
-
2952
- a,
2953
- a:visited {
2954
- text-decoration: underline;
2955
- }
2956
-
2957
- a[href]:after {
2958
- content: " (" attr(href) ")";
2959
- }
2960
-
2961
- abbr[title]:after {
2962
- content: " (" attr(title) ")";
2963
- }
2964
-
2965
- a[href^="#"]:after,
2966
- a[href^="javascript:"]:after {
2967
- content: "";
2968
- }
2969
-
2970
- pre,
2971
- blockquote {
2972
- border: 1px solid #999;
2973
- page-break-inside: avoid;
2974
- }
2975
-
2976
- thead {
2977
- display: table-header-group;
2978
- }
2979
-
2980
- tr,
2981
- img {
2982
- page-break-inside: avoid;
2983
- }
2984
-
2985
- img {
2986
- max-width: 100% !important;
2987
- }
2988
-
2989
- p,
2990
- h2,
2991
- h3 {
2992
- orphans: 3;
2993
- widows: 3;
2994
- }
2995
-
2996
- h2,
2997
- h3 {
2998
- page-break-after: avoid;
2999
- }
2791
+ img,
2792
+ video {
2793
+ max-width: 100%;
2794
+ height: auto;
3000
2795
  }
3001
2796
 
3002
- /* Tailwind 4.1.13 form-control reset: inherit typography and colour, drop native radius/background (#228) */
2797
+ /* form-control reset */
3003
2798
  button,
3004
2799
  input,
3005
2800
  select,
@@ -3032,7 +2827,8 @@ textarea,
3032
2827
  opacity: 1;
3033
2828
  }
3034
2829
 
3035
- @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
2830
+ @supports (not (-webkit-appearance: -apple-pay-button)) or
2831
+ (contain-intrinsic-size: 1px) {
3036
2832
  ::placeholder {
3037
2833
  color: color-mix(in oklab, currentcolor 50%, transparent);
3038
2834
  }
@@ -3041,6 +2837,58 @@ textarea,
3041
2837
  textarea {
3042
2838
  resize: vertical;
3043
2839
  }
2840
+
2841
+ ::-webkit-search-decoration {
2842
+ -webkit-appearance: none;
2843
+ }
2844
+
2845
+ ::-webkit-date-and-time-value {
2846
+ min-height: 1lh;
2847
+ text-align: inherit;
2848
+ }
2849
+
2850
+ ::-webkit-datetime-edit {
2851
+ display: inline-flex;
2852
+ }
2853
+
2854
+ ::-webkit-datetime-edit-fields-wrapper {
2855
+ padding: 0;
2856
+ }
2857
+
2858
+ ::-webkit-datetime-edit,
2859
+ ::-webkit-datetime-edit-year-field,
2860
+ ::-webkit-datetime-edit-month-field,
2861
+ ::-webkit-datetime-edit-day-field,
2862
+ ::-webkit-datetime-edit-hour-field,
2863
+ ::-webkit-datetime-edit-minute-field,
2864
+ ::-webkit-datetime-edit-second-field,
2865
+ ::-webkit-datetime-edit-millisecond-field,
2866
+ ::-webkit-datetime-edit-meridiem-field {
2867
+ padding-block: 0;
2868
+ }
2869
+
2870
+ ::-webkit-calendar-picker-indicator {
2871
+ line-height: 1;
2872
+ }
2873
+
2874
+ :-moz-ui-invalid {
2875
+ box-shadow: none;
2876
+ }
2877
+
2878
+ button,
2879
+ input:where([type='button'], [type='reset'], [type='submit']),
2880
+ ::file-selector-button {
2881
+ appearance: button;
2882
+ }
2883
+
2884
+ ::-webkit-inner-spin-button,
2885
+ ::-webkit-outer-spin-button {
2886
+ height: auto;
2887
+ }
2888
+
2889
+ [hidden]:where(:not([hidden='until-found'])) {
2890
+ display: none !important;
2891
+ }
3044
2892
  `;
3045
2893
  //#endregion
3046
2894
  //#region src/core/context.ts
@@ -3952,6 +3800,7 @@ functionalUtility({
3952
3800
  prop: "transition-timing-function",
3953
3801
  supportsArbitrary: true,
3954
3802
  supportsCustomProperty: true,
3803
+ handleBareValue: ({ value, ctx }) => themeKeyVar(ctx, "transitionTimingFunction", value, "ease") ?? (/^(\d|\.\d)/.test(value) ? value : null),
3955
3804
  handle: (value, _ctx, _token) => {
3956
3805
  return [decl("transition-timing-function", value)];
3957
3806
  },
@@ -4136,6 +3985,7 @@ functionalUtility({
4136
3985
  prop: "filter",
4137
3986
  supportsArbitrary: true,
4138
3987
  supportsCustomProperty: true,
3988
+ handleBareValue: ({ value, ctx }) => themeKeyVar(ctx, "blur", value, "blur") ?? (/^(\d|\.\d)/.test(value) ? value : null),
4139
3989
  handle: (value, _ctx, token) => {
4140
3990
  if (token.customProperty) return [decl("--baro-blur", `blur(var(${value}))`), filters$1()];
4141
3991
  return [decl("--baro-blur", `blur(${value})`), filters$1()];
@@ -4231,13 +4081,14 @@ functionalUtility({
4231
4081
  transparent: "transparent"
4232
4082
  }[extra?.realThemeValue ?? value];
4233
4083
  if (keyword) return dropShadowColor(keyword, opacity);
4084
+ const key = extra?.realThemeValue ?? value;
4085
+ const named = token.arbitrary ? null : namedDropShadow(ctx, key);
4086
+ if (named) return dropShadowValue(named, opacity, `drop-shadow(var(--drop-shadow-${key}))`);
4234
4087
  if (extra?.realThemeValue) return dropShadowColor(value, opacity, `var(--color-${extra.realThemeValue})`);
4235
4088
  if (token.arbitrary) {
4236
4089
  if (parseColor(value)) return dropShadowColor(value, opacity);
4237
4090
  return dropShadowValue(value, opacity);
4238
4091
  }
4239
- const named = namedDropShadow(ctx, value);
4240
- if (named) return dropShadowValue(named, opacity, `drop-shadow(var(--drop-shadow-${value}))`);
4241
4092
  return null;
4242
4093
  },
4243
4094
  handleCustomProperty: (value) => {
@@ -4355,6 +4206,7 @@ functionalUtility({
4355
4206
  prop: "backdrop-filter",
4356
4207
  supportsArbitrary: true,
4357
4208
  supportsCustomProperty: true,
4209
+ handleBareValue: ({ value, ctx }) => themeKeyVar(ctx, "blur", value, "blur") ?? (/^(\d|\.\d)/.test(value) ? value : null),
4358
4210
  handle: (value, _ctx, token) => {
4359
4211
  if (token.customProperty) return [decl("--baro-backdrop-blur", `blur(var(${value}))`), ...filters()];
4360
4212
  return [decl("--baro-backdrop-blur", `blur(${value})`), ...filters()];
@@ -4510,11 +4362,15 @@ function boxShadowLayer(layer, value, opacity) {
4510
4362
  decl("box-shadow", SHADOW_COMPOSITE)
4511
4363
  ];
4512
4364
  }
4513
- function namedBoxShadow(layer, name, opacity) {
4514
- if (layer === "shadow") return own(NAMED_SHADOWS, name) ? boxShadowLayer(layer, NAMED_SHADOWS[name], opacity) : null;
4515
- if (own(NAMED_INSET_SHADOWS, name)) return boxShadowLayer(layer, NAMED_INSET_SHADOWS[name], opacity);
4516
- if (!opacity && own(INSET_EXTENSIONS, name)) return boxShadowLayer(layer, INSET_EXTENSIONS[name], void 0);
4517
- return null;
4365
+ function namedBoxShadow(layer, name, opacity, ctx) {
4366
+ if (layer === "shadow") {
4367
+ if (own(NAMED_SHADOWS, name)) return boxShadowLayer(layer, NAMED_SHADOWS[name], opacity);
4368
+ } else {
4369
+ if (own(NAMED_INSET_SHADOWS, name)) return boxShadowLayer(layer, NAMED_INSET_SHADOWS[name], opacity);
4370
+ if (!opacity && own(INSET_EXTENSIONS, name)) return boxShadowLayer(layer, INSET_EXTENSIONS[name], void 0);
4371
+ }
4372
+ const custom = ctx && name !== "none" ? themeKeyValue(ctx, layer === "shadow" ? "boxShadow" : "insetShadow", name) : null;
4373
+ return custom ? boxShadowLayer(layer, custom, opacity) : null;
4518
4374
  }
4519
4375
  staticUtility("shadow-none", [
4520
4376
  ringShadowProperties,
@@ -4554,10 +4410,10 @@ for (const layer of ["shadow", "inset-shadow"]) functionalUtility({
4554
4410
  supportsCustomProperty: true,
4555
4411
  supportsOpacity: true,
4556
4412
  themeKeys: ["colors"],
4557
- handleBareValue: ({ value, extra }) => namedBoxShadow(layer, value, extra?.opacity) ? value : null,
4558
- handle: (value, _ctx, token, extra) => {
4413
+ handleBareValue: ({ value, ctx, extra }) => namedBoxShadow(layer, value, extra?.opacity, ctx) ? value : null,
4414
+ handle: (value, ctx, token, extra) => {
4559
4415
  const opacity = extra?.opacity;
4560
- const named = !extra?.realThemeValue && !token.arbitrary ? namedBoxShadow(layer, value, opacity) : null;
4416
+ const named = !token.arbitrary ? namedBoxShadow(layer, extra?.realThemeValue ?? value, opacity, ctx) : null;
4561
4417
  if (named) return named;
4562
4418
  const color = layerColor(layer, value, opacity, token, extra?.realThemeValue);
4563
4419
  if (color !== void 0) return color;
@@ -4589,8 +4445,8 @@ functionalUtility({
4589
4445
  handleBareValue: ({ value, ctx }) => namedTextShadow(ctx, value) ? value : null,
4590
4446
  handle: (value, ctx, token, extra) => {
4591
4447
  const opacity = extra?.opacity;
4592
- if (!extra?.realThemeValue && !token.arbitrary) {
4593
- const named = namedTextShadow(ctx, value);
4448
+ if (!token.arbitrary) {
4449
+ const named = namedTextShadow(ctx, extra?.realThemeValue ?? value);
4594
4450
  if (named) return textShadowValue(named, opacity);
4595
4451
  }
4596
4452
  const color = layerColor("text-shadow", value, opacity, token, extra?.realThemeValue);
@@ -4631,6 +4487,22 @@ function ringShadowValue(width) {
4631
4487
  ["--baro-ring-offset-shadow", `var(--baro-ring-inset,) 0 0 0 var(--baro-ring-offset-width) var(--baro-ring-offset-color)`]
4632
4488
  ], { category: "effects" });
4633
4489
  });
4490
+ var ringOffsetWidth = (width) => [decl("--baro-ring-offset-width", width), decl("--baro-ring-offset-shadow", "var(--baro-ring-inset,) 0 0 0 var(--baro-ring-offset-width) var(--baro-ring-offset-color)")];
4491
+ functionalUtility({
4492
+ name: "ring-offset",
4493
+ themeKeys: ["ringOffsetWidth", "colors"],
4494
+ supportsArbitrary: true,
4495
+ supportsOpacity: true,
4496
+ handleBareValue: ({ value }) => /^\d+$/.test(value) ? `${value}px` : null,
4497
+ handle: (value, _ctx, token, extra) => {
4498
+ if (extra?.themeNamespace === "ringOffsetWidth") return ringOffsetWidth(value);
4499
+ if (extra?.realThemeValue) return themeColorDecls("--baro-ring-offset-color", value, extra);
4500
+ if (token.arbitrary) return parseColor(value) ? [decl("--baro-ring-offset-color", value)] : parseLength(value) ? ringOffsetWidth(value) : null;
4501
+ if (/^\d+px$/.test(value)) return ringOffsetWidth(value);
4502
+ return null;
4503
+ },
4504
+ category: "effects"
4505
+ });
4634
4506
  [
4635
4507
  ["inset-ring", "1px"],
4636
4508
  ["inset-ring-0", "0px"],
@@ -4662,9 +4534,14 @@ functionalUtility({
4662
4534
  supportsArbitrary: true,
4663
4535
  supportsCustomProperty: true,
4664
4536
  supportsOpacity: true,
4665
- themeKeys: ["colors"],
4537
+ themeKeys: ["colors", "ringWidth"],
4666
4538
  handle: (value, ctx, token, extra) => {
4667
4539
  const main = value;
4540
+ if (extra?.themeNamespace === "ringWidth") return [
4541
+ ringShadowProperties(),
4542
+ decl("--baro-ring-shadow", ringShadowValue(value)),
4543
+ decl("box-shadow", SHADOW_COMPOSITE)
4544
+ ];
4668
4545
  const opacity = extra?.opacity;
4669
4546
  const realThemeValue = extra?.realThemeValue;
4670
4547
  if (realThemeValue) return createRingColorDecls("--baro-ring-color", main, opacity, realThemeValue);
@@ -4960,6 +4837,7 @@ functionalUtility({
4960
4837
  supportsArbitrary: true,
4961
4838
  supportsCustomProperty: true,
4962
4839
  supportsFraction: true,
4840
+ handleBareValue: ({ value, ctx }) => themeKeyVar(ctx, "aspect", value, "aspect") ?? (/^(\d|\.\d)/.test(value) ? value : null),
4963
4841
  description: "aspect-ratio utility (theme, arbitrary, custom property, fraction supported)",
4964
4842
  category: "layout"
4965
4843
  });
@@ -4983,7 +4861,7 @@ functionalUtility({
4983
4861
  supportsArbitrary: true,
4984
4862
  supportsCustomProperty: true,
4985
4863
  supportsFraction: true,
4986
- handleBareValue: ({ value }) => parseNumber(value),
4864
+ handleBareValue: ({ value, ctx }) => parseNumber(value) ?? themeKeyVar(ctx, "container", value, "container"),
4987
4865
  description: "columns utility (theme, arbitrary, custom property, fraction supported)",
4988
4866
  category: "layout"
4989
4867
  });
@@ -6032,10 +5910,10 @@ functionalUtility({
6032
5910
  supportsArbitrary: true,
6033
5911
  supportsCustomProperty: true,
6034
5912
  supportsFraction: true,
6035
- handleBareValue: ({ value }) => {
5913
+ handleBareValue: ({ value, ctx }) => {
6036
5914
  if (parseNumber(value)) return `calc(var(--spacing) * ${value})`;
6037
5915
  if (parseFractionOrNumber(value)) return `calc(${value} * 100%)`;
6038
- return null;
5916
+ return themeKeyVar(ctx, "container", value, "container");
6039
5917
  },
6040
5918
  description: "max-width utility (spacing, fraction, arbitrary, custom property, static supported)",
6041
5919
  category: "sizing"
@@ -6145,11 +6023,11 @@ functionalUtility({
6145
6023
  supportsArbitrary: true,
6146
6024
  supportsCustomProperty: true,
6147
6025
  supportsFraction: true,
6148
- handleBareValue: ({ value, token }) => {
6026
+ handleBareValue: ({ value, token, ctx }) => {
6149
6027
  if (token.negative) return null;
6150
6028
  if (parseNumber(value)) return `calc(var(--spacing) * ${value})`;
6151
6029
  if (parseFractionOrNumber(value)) return `calc(${value} * 100%)`;
6152
- return null;
6030
+ return name.includes("inline") ? themeKeyVar(ctx, "container", value, "container") : null;
6153
6031
  },
6154
6032
  description: `${prop} utility (spacing, fraction, arbitrary, custom property, keywords)`,
6155
6033
  category: "sizing"
@@ -6175,21 +6053,34 @@ staticUtility("text-6xl", [["font-size", "var(--text-6xl)"], ["line-height", "va
6175
6053
  staticUtility("text-7xl", [["font-size", "var(--text-7xl)"], ["line-height", "var(--baro-leading, var(--text-7xl--line-height))"]], { category: "typography" });
6176
6054
  staticUtility("text-8xl", [["font-size", "var(--text-8xl)"], ["line-height", "var(--baro-leading, var(--text-8xl--line-height))"]], { category: "typography" });
6177
6055
  staticUtility("text-9xl", [["font-size", "var(--text-9xl)"], ["line-height", "var(--baro-leading, var(--text-9xl--line-height))"]], { category: "typography" });
6178
- staticUtility("font-thin", [["font-weight", "var(--font-weight-thin)"]], { category: "typography" });
6179
- staticUtility("font-extralight", [["font-weight", "var(--font-weight-extralight)"]], { category: "typography" });
6180
- staticUtility("font-light", [["font-weight", "var(--font-weight-light)"]], { category: "typography" });
6181
- staticUtility("font-normal", [["font-weight", "var(--font-weight-normal)"]], { category: "typography" });
6182
- staticUtility("font-medium", [["font-weight", "var(--font-weight-medium)"]], { category: "typography" });
6183
- staticUtility("font-semibold", [["font-weight", "var(--font-weight-semibold)"]], { category: "typography" });
6184
- staticUtility("font-bold", [["font-weight", "var(--font-weight-bold)"]], { category: "typography" });
6185
- staticUtility("font-extrabold", [["font-weight", "var(--font-weight-extrabold)"]], { category: "typography" });
6186
- staticUtility("font-black", [["font-weight", "var(--font-weight-black)"]], { category: "typography" });
6056
+ function fontWeightUtility(name) {
6057
+ registerUtility({
6058
+ name: `font-${name}`,
6059
+ match: (className) => className === `font-${name}`,
6060
+ handler: (_value, ctx) => {
6061
+ const family = themeKeyVar(ctx, "fontFamily", name, "font");
6062
+ return family ? [decl("font-family", family)] : [decl("font-weight", `var(--font-weight-${name})`)];
6063
+ },
6064
+ category: "typography"
6065
+ });
6066
+ }
6067
+ fontWeightUtility("thin");
6068
+ fontWeightUtility("extralight");
6069
+ fontWeightUtility("light");
6070
+ fontWeightUtility("normal");
6071
+ fontWeightUtility("medium");
6072
+ fontWeightUtility("semibold");
6073
+ fontWeightUtility("bold");
6074
+ fontWeightUtility("extrabold");
6075
+ fontWeightUtility("black");
6187
6076
  functionalUtility({
6188
6077
  name: "font",
6189
6078
  supportsArbitrary: true,
6190
6079
  supportsCustomProperty: true,
6080
+ handleBareValue: ({ value, ctx }) => themeKeyVar(ctx, "fontFamily", value, "font") ?? themeKeyVar(ctx, "fontWeight", value, "font-weight") ?? (/^(\d|\.\d)/.test(value) ? value : null),
6191
6081
  handle: (value, _ctx, token) => {
6192
6082
  if (token.prefix !== "font") return null;
6083
+ if (!token.arbitrary && value.startsWith("var(--font-weight-")) return [decl("font-weight", value)];
6193
6084
  if (parseNumber(value)) return [decl("font-weight", value)];
6194
6085
  return [decl("font-family", value)];
6195
6086
  },
@@ -6212,9 +6103,9 @@ staticUtility("tracking-widest", [["letter-spacing", "var(--letter-spacing-wides
6212
6103
  functionalUtility({
6213
6104
  name: "tracking",
6214
6105
  prop: "letter-spacing",
6215
- themeKey: "letterSpacing",
6216
6106
  supportsArbitrary: true,
6217
6107
  supportsCustomProperty: true,
6108
+ handleBareValue: ({ value, ctx }) => themeKeyVar(ctx, "letterSpacing", value, "letter-spacing") ?? (/^(\d|\.\d)/.test(value) ? value : null),
6218
6109
  description: "letter-spacing utility (theme, arbitrary, custom property supported)",
6219
6110
  category: "typography"
6220
6111
  });
@@ -6250,11 +6141,14 @@ staticUtility("leading-loose", [
6250
6141
  ], { category: "typography" });
6251
6142
  functionalUtility({
6252
6143
  name: "leading",
6253
- prop: "line-height",
6254
- themeKey: "lineHeight",
6255
6144
  supportsArbitrary: true,
6256
6145
  supportsCustomProperty: true,
6257
- handleBareValue: ({ value }) => parseNumber(value),
6146
+ handleBareValue: ({ value, ctx }) => {
6147
+ const v = themeKeyValue(ctx, "lineHeight", value);
6148
+ if (v != null) return `var(--leading-${value}, ${v})`;
6149
+ const numbered = ctx.theme("lineHeight", value);
6150
+ return typeof numbered === "string" ? numbered : parseNumber(value);
6151
+ },
6258
6152
  handle: (value) => [
6259
6153
  decl("--baro-leading", value),
6260
6154
  decl("line-height", value),
@@ -6311,8 +6205,11 @@ functionalUtility({
6311
6205
  supportsArbitrary: true,
6312
6206
  supportsCustomProperty: true,
6313
6207
  supportsOpacity: true,
6208
+ handleBareValue: ({ value, ctx, extra }) => (extra?.opacity ? null : themeKeyVar(ctx, "fontSize", value, "text")) ?? (/^(\d|\.\d)/.test(value) ? value : null),
6314
6209
  handle: (value, ctx, token, extra) => {
6315
6210
  if (extra?.realThemeValue) return themeColorDecls("color", value, extra);
6211
+ const sizeKey = !token.arbitrary && !token.customProperty ? /^var\(--text-([\w-]+)\)$/.exec(value)?.[1] : void 0;
6212
+ if (sizeKey) return fontSizeLineHeight(ctx.theme("fontSize", sizeKey)) ? [decl("font-size", value), decl("line-height", `var(--baro-leading, var(--text-${sizeKey}--line-height))`)] : [decl("font-size", value)];
6316
6213
  const kind = textArbitraryKind(value);
6317
6214
  return [decl(kind.fontSize ? "font-size" : "color", kind.value)];
6318
6215
  },
@@ -6435,11 +6332,12 @@ functionalUtility({
6435
6332
  });
6436
6333
  functionalUtility({
6437
6334
  name: "decoration",
6438
- themeKey: "colors",
6335
+ themeKeys: ["textDecorationThickness", "colors"],
6439
6336
  supportsArbitrary: true,
6440
6337
  supportsCustomProperty: true,
6441
6338
  supportsOpacity: true,
6442
6339
  handle: (value, ctx, token, extra) => {
6340
+ if (extra?.themeNamespace === "textDecorationThickness") return [decl("text-decoration-thickness", value)];
6443
6341
  if (extra?.realThemeValue) return themeColorDecls("text-decoration-color", value, extra);
6444
6342
  return [decl("text-decoration-color", value)];
6445
6343
  },
@@ -6523,7 +6421,7 @@ functionalUtility({
6523
6421
  prop: "content",
6524
6422
  supportsArbitrary: true,
6525
6423
  supportsCustomProperty: true,
6526
- handle: (value) => [decl("--baro-content", `"${value}"`), decl("content", "var(--baro-content)")],
6424
+ handle: (value) => [decl("--baro-content", value), decl("content", "var(--baro-content)")],
6527
6425
  handleCustomProperty: (value) => [decl("--baro-content", `var(${value})`), decl("content", "var(--baro-content)")],
6528
6426
  description: "content utility (arbitrary, custom property supported)",
6529
6427
  category: "typography"
@@ -6803,7 +6701,20 @@ staticUtility("rounded-2xl", [["border-radius", "var(--radius-2xl)"]], { categor
6803
6701
  staticUtility("rounded-3xl", [["border-radius", "var(--radius-3xl)"]], { category: "borders" });
6804
6702
  staticUtility("rounded-4xl", [["border-radius", "var(--radius-4xl)"]], { category: "borders" });
6805
6703
  staticUtility("rounded-xs", [["border-radius", "var(--radius-xs)"]], { category: "borders" });
6806
- staticUtility("rounded-full", [["border-radius", "9999px"]], { category: "borders" });
6704
+ var FULL = "calc(infinity * 1px)";
6705
+ function roundedFull(name, props) {
6706
+ registerUtility({
6707
+ name,
6708
+ match: (className) => className === name,
6709
+ handler: (_value, ctx) => {
6710
+ const own = themeKeyValue(ctx, "borderRadius", "full");
6711
+ const value = own != null && own !== "9999px" && own !== FULL ? "var(--radius-full)" : FULL;
6712
+ return props.map((prop) => decl(prop, value));
6713
+ },
6714
+ category: "borders"
6715
+ });
6716
+ }
6717
+ roundedFull("rounded-full", ["border-radius"]);
6807
6718
  [
6808
6719
  ["rounded-t", ["border-top-left-radius", "border-top-right-radius"]],
6809
6720
  ["rounded-r", ["border-top-right-radius", "border-bottom-right-radius"]],
@@ -6832,14 +6743,14 @@ staticUtility("rounded-full", [["border-radius", "9999px"]], { category: "border
6832
6743
  staticUtility(`${name}-3xl`, propList.map((prop) => [prop, "var(--radius-3xl)"]), { category: "borders" });
6833
6744
  staticUtility(`${name}-4xl`, propList.map((prop) => [prop, "var(--radius-4xl)"]), { category: "borders" });
6834
6745
  staticUtility(`${name}-xs`, propList.map((prop) => [prop, "var(--radius-xs)"]), { category: "borders" });
6835
- staticUtility(`${name}-full`, propList.map((prop) => [prop, logical ? "calc(infinity * 1px)" : "9999px"]), { category: "borders" });
6746
+ roundedFull(`${name}-full`, propList);
6836
6747
  functionalUtility({
6837
6748
  name,
6838
6749
  supportsArbitrary: true,
6839
6750
  supportsCustomProperty: true,
6840
- handleBareValue: ({ value }) => {
6751
+ handleBareValue: ({ value, ctx }) => {
6841
6752
  if (!logical && parseNumber(value)) return `calc(var(--spacing) * ${value})`;
6842
- return null;
6753
+ return themeKeyVar(ctx, "borderRadius", value, "radius");
6843
6754
  },
6844
6755
  handle: (value) => propList.map((prop) => decl(prop, value)),
6845
6756
  description: `${name} utility (spacing, arbitrary, custom property support)`,
@@ -6851,9 +6762,9 @@ functionalUtility({
6851
6762
  handle: (value, _ctx, token) => token.prefix === "rounded" ? [decl("border-radius", value)] : null,
6852
6763
  supportsArbitrary: true,
6853
6764
  supportsCustomProperty: true,
6854
- handleBareValue: ({ value }) => {
6765
+ handleBareValue: ({ value, ctx }) => {
6855
6766
  if (parseNumber(value)) return `calc(var(--spacing) * ${value})`;
6856
- return null;
6767
+ return themeKeyVar(ctx, "borderRadius", value, "radius");
6857
6768
  },
6858
6769
  description: "border-radius utility (spacing, arbitrary, custom property support)",
6859
6770
  category: "borders"
@@ -6902,7 +6813,7 @@ var withBorderStyle = (props, width) => [
6902
6813
  staticUtility(`${name}`, styled("1px"));
6903
6814
  functionalUtility({
6904
6815
  name,
6905
- themeKeys: ["borderWidth", "colors"],
6816
+ themeKeys: ["colors", "borderWidth"],
6906
6817
  supportsOpacity: true,
6907
6818
  supportsArbitrary: true,
6908
6819
  supportsCustomProperty: true,
@@ -6911,6 +6822,7 @@ var withBorderStyle = (props, width) => [
6911
6822
  return null;
6912
6823
  },
6913
6824
  handle: (value, ctx, token, extra) => {
6825
+ if (extra?.themeNamespace === "borderWidth") return withBorderStyle(propList, value);
6914
6826
  if (extra?.realThemeValue) return propList.flatMap((prop) => themeColorDecls(prop.replace("width", "color"), value, extra));
6915
6827
  if (parseColor(value)) return propList.map((prop) => decl(prop.replace("width", "color"), value));
6916
6828
  if (token.arbitrary) return withBorderStyle(propList, value);
@@ -6957,6 +6869,7 @@ Object.entries({
6957
6869
  staticUtility(`divide-${axis}-reverse`, [rule(":where(& > :not(:last-child))", [decl(rev, "1")])], { category: "borders" });
6958
6870
  functionalUtility({
6959
6871
  name: `divide-${axis}`,
6872
+ themeKeys: ["divideWidth", "borderWidth"],
6960
6873
  supportsArbitrary: true,
6961
6874
  handleBareValue: ({ value }) => /^\d+$/.test(value) ? `${value}px` : null,
6962
6875
  handle: (value) => divide(value),
@@ -6971,6 +6884,7 @@ functionalUtility({
6971
6884
  supportsCustomProperty: true,
6972
6885
  supportsOpacity: true,
6973
6886
  handle: (value, ctx, token, extra) => {
6887
+ if (extra?.themeNamespace === "borderWidth") return withBorderStyle(["border-width"], value);
6974
6888
  if (extra?.realThemeValue) return themeColorDecls("border-color", value, extra);
6975
6889
  if (token.arbitrary) {
6976
6890
  if (parseLength(value)) return withBorderStyle(["border-width"], value);
@@ -7047,11 +6961,12 @@ functionalUtility({
7047
6961
  });
7048
6962
  functionalUtility({
7049
6963
  name: "outline",
7050
- themeKeys: ["colors", "borderWidth"],
6964
+ themeKeys: ["colors", "outlineWidth"],
7051
6965
  supportsArbitrary: true,
7052
6966
  supportsCustomProperty: true,
7053
6967
  supportsOpacity: true,
7054
6968
  handle: (value, ctx, token, extra) => {
6969
+ if (extra?.themeNamespace === "outlineWidth") return withOutlineStyle(value);
7055
6970
  if (extra?.realThemeValue) return themeColorDecls("outline-color", value, extra);
7056
6971
  if (parseColor(value)) return [decl("outline-color", value)];
7057
6972
  if (parseNumber(value)) return withOutlineStyle(`${value}px`);
@@ -7524,11 +7439,11 @@ staticUtility("stroke-black", [["stroke", "#000"]], { category: "svg" });
7524
7439
  staticUtility("stroke-white", [["stroke", "#fff"]], { category: "svg" });
7525
7440
  functionalUtility({
7526
7441
  name: "stroke",
7527
- themeKeys: ["colors"],
7442
+ themeKeys: ["colors", "strokeWidth"],
7528
7443
  supportsArbitrary: true,
7529
7444
  supportsCustomProperty: true,
7530
7445
  handle: (value, ctx, token, extra) => {
7531
- if (parseNumber(value)) return [decl("stroke-width", value)];
7446
+ if (parseNumber(value) || extra?.themeNamespace === "strokeWidth") return [decl("stroke-width", value)];
7532
7447
  if (extra?.realThemeValue) return [decl("stroke", `var(--color-${extra.realThemeValue})`)];
7533
7448
  return [decl("stroke", value)];
7534
7449
  },
@@ -7684,7 +7599,7 @@ staticModifier("open", ["&:is([open], :popover-open, :open)"], {
7684
7599
  var withPseudoContent = (ast) => [
7685
7600
  atRoot([property("--baro-content", "\"\"")]),
7686
7601
  ...ast,
7687
- decl("content", "var(--baro-content)")
7602
+ ...ast.some((n) => n.type === "decl" && n.prop === "content") ? [] : [decl("content", "var(--baro-content)")]
7688
7603
  ];
7689
7604
  staticModifier("before", ["&::before"], {
7690
7605
  source: "pseudo",
@@ -8434,6 +8349,6 @@ function upperBound(keys, key) {
8434
8349
  return lo;
8435
8350
  }
8436
8351
  //#endregion
8437
- export { AstCache, IncrementalParser, ParseResultCache, UtilityCache, WeakCache, arbitraryPropertyRegistration, astCache, astToCss, atRoot, atRule, clearAllCaches, clearAstCache, collectDeclPaths, comment, compareKeys, configGetter, createContext, decl, declPathToAst, deepMerge, defaultConfig, escapeClassName, expandThemeFunctions, functionalModifier, functionalUtility, generateCss, generateCssFromJson, generateCssRules, getAstCacheStats, getModifier, getPreflightCSS, getUtility, hasCommentDelimiter, hasCommentToken, hasHtmlEndTagOpener, hasPreset, isBalancedPrelude, isDebug, isSafeVariantToken, isSafeVariantValue, isStructureSafeValue, isWellFormedVariantBrackets, jsonToAst, mergeAstTreeList, modifierRegistry, normalizeMathSpacing, optimizeAst, parseClassName, parseClassToAst, parseResultCache, property, raw, registerModifier, registerUtility, resolveTheme, rootToCss, rule, ruleSortKey, setContextCacheReset, setDebug, staticModifier, staticUtility, styleRule, themeGetter, themeToCssVars, tokenize, upperBound, utilityCache };
8352
+ export { AstCache, IncrementalParser, ParseResultCache, UtilityCache, WeakCache, arbitraryPropertyRegistration, astCache, astToCss, atRoot, atRule, clearAllCaches, clearAstCache, collectDeclPaths, comment, compareKeys, configGetter, createContext, decl, declPathToAst, deepMerge, defaultConfig, escapeClassName, expandThemeFunctions, functionalModifier, functionalUtility, generateCss, generateCssFromJson, generateCssRules, getAstCacheStats, getModifier, getPreflightCSS, getUtility, hasCommentDelimiter, hasCommentToken, hasHtmlEndTagOpener, hasPreset, isBalancedPrelude, isDebug, isSafeVariantToken, isSafeVariantValue, isStructureSafeValue, isWellFormedVariantBrackets, jsonToAst, mergeAstTreeList, modifierRegistry, normalizeMathSpacing, optimizeAst, parseClassName, parseClassToAst, parseResultCache, property, raw, registerModifier, registerUtility, resolveTheme, rootToCss, rule, ruleSortKey, setContextCacheReset, setDebug, staticModifier, staticUtility, styleRule, themeGetter, themeKeyValue, themeKeyVar, themeToCssVars, tokenize, upperBound, utilityCache };
8438
8353
 
8439
8354
  //# sourceMappingURL=index.js.map