@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/README.md +2 -0
- package/dist/index.cjs +278 -361
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +14 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +277 -362
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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)
|
|
503
|
+
if (themeValue !== void 0) {
|
|
504
|
+
namespace = key;
|
|
505
|
+
break;
|
|
506
|
+
}
|
|
483
507
|
}
|
|
484
508
|
if (themeValue !== void 0) {
|
|
485
|
-
extra.
|
|
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
|
-
|
|
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
|
|
2631
|
-
/* =============================== */
|
|
2632
|
-
|
|
2633
|
-
/* Box sizing rules */
|
|
2670
|
+
/* BaroCSS Preflight - Full (Tailwind 4.3.3) */
|
|
2634
2671
|
*,
|
|
2635
|
-
|
|
2636
|
-
|
|
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
|
-
|
|
2651
|
-
|
|
2652
|
-
min-height: 100vh;
|
|
2653
|
-
scroll-behavior: smooth;
|
|
2654
|
-
text-rendering: optimizeSpeed;
|
|
2682
|
+
html,
|
|
2683
|
+
:host {
|
|
2655
2684
|
line-height: 1.5;
|
|
2656
|
-
-webkit-
|
|
2657
|
-
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
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
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
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
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
display: block;
|
|
2699
|
+
abbr:where([title]) {
|
|
2700
|
+
-webkit-text-decoration: underline dotted;
|
|
2701
|
+
text-decoration: underline dotted;
|
|
2701
2702
|
}
|
|
2702
2703
|
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
font-
|
|
2710
|
-
font-
|
|
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
|
-
|
|
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
|
-
|
|
2785
|
-
|
|
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
|
-
|
|
2837
|
-
|
|
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
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
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
|
-
|
|
2779
|
+
img,
|
|
2780
|
+
svg,
|
|
2781
|
+
video,
|
|
2782
|
+
canvas,
|
|
2904
2783
|
audio,
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
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
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
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
|
-
/*
|
|
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
|
|
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")
|
|
4515
|
-
|
|
4516
|
-
|
|
4517
|
-
|
|
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,
|
|
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 = !
|
|
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 (!
|
|
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
|
|
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
|
-
|
|
6179
|
-
|
|
6180
|
-
|
|
6181
|
-
|
|
6182
|
-
|
|
6183
|
-
|
|
6184
|
-
|
|
6185
|
-
|
|
6186
|
-
|
|
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 }) =>
|
|
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
|
-
|
|
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",
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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: ["
|
|
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", "
|
|
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
|