@vaneui/md 0.9.0-alpha.20260105111433.5364a62 → 0.9.0-alpha.20260106191130.bc0ea5f

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
@@ -8562,10 +8562,8 @@ const LAYOUT_FLEX = ['wrap', 'gap', 'flexDirection', 'reverse'];
8562
8562
  const PADDING = ['padding'];
8563
8563
  /** Responsive breakpoint properties for different screen sizes */
8564
8564
  const BREAKPOINT = ['breakpoint'];
8565
- /** Responsive CSS variable switching for automatic breakpoint adaptation */
8566
- const RESPONSIVE = ['responsive'];
8567
8565
  /** Core visual properties including appearance colors and transparency */
8568
- const VISUAL_CORE = ['appearance', 'transparent'];
8566
+ const VISUAL_CORE = ['appearance'];
8569
8567
  /** Border properties for visual decoration */
8570
8568
  const BORDER = ['border'];
8571
8569
  /** Visual decoration properties for shadows and focus rings */
@@ -8619,8 +8617,6 @@ const ComponentKeys = {
8619
8617
  padding: ['padding', 'noPadding'],
8620
8618
  /** CSS positioning: relative, absolute, fixed, sticky, static */
8621
8619
  position: ['relative', 'absolute', 'fixed', 'sticky', 'static'],
8622
- /** Responsive CSS variable switching: responsive (enabled) */
8623
- responsive: ['responsive'],
8624
8620
  /** Reverse the order of flex items */
8625
8621
  reverse: ['reverse'],
8626
8622
  /** Focus ring visibility: ring (show) or noRing (hide) */
@@ -8639,8 +8635,6 @@ const ComponentKeys = {
8639
8635
  textDecoration: ['underline', 'lineThrough', 'noUnderline', 'overline'],
8640
8636
  /** Text case transformation: UPPERCASE, lowercase, Capitalize, normalCase */
8641
8637
  textTransform: ['uppercase', 'lowercase', 'capitalize', 'normalCase'],
8642
- /** Make background (layout/UI) or text (typography) transparent */
8643
- transparent: ['transparent'],
8644
8638
  /** Style variant: filled (solid background) or outline (border only) */
8645
8639
  variant: ['filled', 'outline'],
8646
8640
  /** Flex item wrapping behavior: wrap, no-wrap, or wrap-reverse */
@@ -8669,7 +8663,7 @@ const CHIP_CATEGORIES = INTERACTIVE_CATEGORIES;
8669
8663
  const CODE_CATEGORIES = INTERACTIVE_CATEGORIES;
8670
8664
  /** Typography component categories */
8671
8665
  /** Categories for typography components like Text, Title, Link */
8672
- const TYPOGRAPHY_CATEGORIES = [...TYPOGRAPHY_FULL, ...LAYOUT_CORE, ...VISUAL_CORE, ...VARIANT, ...RESPONSIVE];
8666
+ const TYPOGRAPHY_CATEGORIES = [...TYPOGRAPHY_FULL, ...LAYOUT_CORE, ...VISUAL_CORE, ...VARIANT];
8673
8667
  /** Categories for list components with typography and list-specific styling */
8674
8668
  const LIST_CATEGORIES = [...TYPOGRAPHY_FULL, ...LIST_STYLE, ...LAYOUT_CORE, ...VISUAL_CORE, ...PADDING, ...VARIANT];
8675
8669
  /** Layout component categories */
@@ -8688,7 +8682,7 @@ const CARD_CATEGORIES = [...TYPOGRAPHY_FULL, ...LAYOUT_FULL, ...BREAKPOINT, ...V
8688
8682
  /** Categories for divider components with basic layout and visual properties */
8689
8683
  const DIVIDER_CATEGORIES = [...LAYOUT_CORE, ...VISUAL_CORE, ...PADDING, ...VARIANT];
8690
8684
  /** Categories for section layout components with full responsive support */
8691
- const SECTION_CATEGORIES = [...LAYOUT_FULL, ...VISUAL_LAYOUT, ...PADDING, ...BREAKPOINT, ...VARIANT, ...RESPONSIVE];
8685
+ const SECTION_CATEGORIES = [...LAYOUT_FULL, ...VISUAL_LAYOUT, ...PADDING, ...BREAKPOINT, ...VARIANT];
8692
8686
  /** Form component categories */
8693
8687
  /** Categories for checkbox form components */
8694
8688
  const CHECKBOX_CATEGORIES = [...LAYOUT_CORE, ...VISUAL_CORE, ...BORDER, ...VISUAL_DECORATION, ...SHAPE, ...VARIANT];
@@ -11705,13 +11699,14 @@ const defaultTypographyThemes = {
11705
11699
  textAlign: new TextAlignTheme()
11706
11700
  };
11707
11701
  class ComponentTheme {
11708
- constructor(tag, base, themes, defaults = {}, categories, tagFunction) {
11702
+ constructor(tag, base, themes, defaults = {}, categories, tagFunction, vaneType) {
11709
11703
  this.tag = tag;
11710
11704
  this.base = base;
11711
11705
  this.defaults = defaults;
11712
11706
  this.extraClasses = {};
11713
11707
  this.categories = categories;
11714
11708
  this.tagFunction = tagFunction;
11709
+ this.vaneType = vaneType;
11715
11710
  // Type assertion: we trust that all default themes provide complete objects
11716
11711
  this.themes = themes;
11717
11712
  }
@@ -11730,7 +11725,7 @@ class ComponentTheme {
11730
11725
  }
11731
11726
  }
11732
11727
  // No need for border/noBorder mutual exclusion logic anymore
11733
- // since noBorder is now part of the border category and
11728
+ // since noBorder is now part of the border category and
11734
11729
  // pickFirstTruthyKeyByCategory handles the priority naturally
11735
11730
  const walk = (map) => {
11736
11731
  for (const key of Object.keys(map)) {
@@ -11788,6 +11783,9 @@ class ComponentTheme {
11788
11783
  const finalClasses = twMerge(...themeGeneratedClasses, className);
11789
11784
  // Build data attributes for key categories
11790
11785
  const dataAttributes = {};
11786
+ if (this.vaneType) {
11787
+ dataAttributes['data-vane-type'] = this.vaneType;
11788
+ }
11791
11789
  if (extractedKeys.size) {
11792
11790
  dataAttributes['data-size'] = extractedKeys.size;
11793
11791
  }
@@ -11797,9 +11795,6 @@ class ComponentTheme {
11797
11795
  if (extractedKeys.variant) {
11798
11796
  dataAttributes['data-variant'] = extractedKeys.variant;
11799
11797
  }
11800
- if (extractedKeys.transparent) {
11801
- dataAttributes['data-transparent'] = 'true';
11802
- }
11803
11798
  return {
11804
11799
  Tag: componentTag,
11805
11800
  finalClasses,
@@ -11809,35 +11804,21 @@ class ComponentTheme {
11809
11804
  }
11810
11805
 
11811
11806
  /**
11812
- * Font size theme - outputs the consumer class text-(length:--fs).
11813
- * CSS variable values (--fs-unit) are set via CSS rules in vars.css
11814
- * using semantic classes and data attributes.
11815
- *
11816
- * When the 'responsive' prop is set, adds Tailwind classes to switch
11817
- * between breakpoint-specific variables for automatic size adaptation.
11807
+ * Font size theme - applies text size using pre-computed breakpoint variables.
11808
+ * CSS computes --fs-desktop/tablet/mobile from --fs-unit (with fallbacks for responsive overrides).
11818
11809
  */
11819
11810
  class FontSizeTheme extends BaseTheme {
11820
11811
  constructor() {
11821
11812
  super(...arguments);
11822
- /** Consumer class for font size */
11823
- this.fontSize = "text-(length:--fs)";
11824
- /** Responsive desktop unit class */
11825
- this.responsiveDesktop = "[--fs-unit:var(--fs-unit-desktop)]";
11826
- /** Responsive laptop unit class */
11827
- this.responsiveTablet = "max-tablet:[--fs-unit:var(--fs-unit-tablet)]";
11828
- /** Responsive tablet unit class */
11829
- this.responsiveMobile = "max-mobile:[--fs-unit:var(--fs-unit-mobile)]";
11813
+ /** Desktop: apply font size using --fs-desktop */
11814
+ this.desktop = "text-(length:--fs-desktop)";
11815
+ /** Tablet: apply font size using --fs-tablet */
11816
+ this.tablet = "max-tablet:text-(length:--fs-tablet)";
11817
+ /** Mobile: apply font size using --fs-mobile */
11818
+ this.mobile = "max-mobile:text-(length:--fs-mobile)";
11830
11819
  }
11831
- getClasses(extractedKeys) {
11832
- if ((extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.responsive) === 'responsive') {
11833
- return [
11834
- this.responsiveDesktop,
11835
- this.responsiveTablet,
11836
- this.responsiveMobile,
11837
- this.fontSize
11838
- ];
11839
- }
11840
- return [this.fontSize];
11820
+ getClasses(_extractedKeys) {
11821
+ return [this.desktop, this.tablet, this.mobile];
11841
11822
  }
11842
11823
  }
11843
11824
 
@@ -11858,36 +11839,22 @@ class LineHeightTheme extends BaseTheme {
11858
11839
  }
11859
11840
 
11860
11841
  /**
11861
- * Gap theme - outputs the consumer class gap-(--gap).
11862
- * CSS variable values (--gap-unit) are set via CSS rules in vars.css
11863
- * using semantic classes and data attributes.
11864
- *
11865
- * When the 'responsive' prop is set, adds Tailwind classes to switch
11866
- * between breakpoint-specific variables for automatic size adaptation.
11842
+ * Gap theme - applies gap using pre-computed breakpoint variables.
11843
+ * CSS computes --gap-desktop/tablet/mobile from --gap-unit (with fallbacks for responsive overrides).
11867
11844
  */
11868
11845
  class GapTheme extends BaseTheme {
11869
11846
  constructor() {
11870
11847
  super(...arguments);
11871
- /** Consumer class for gap spacing */
11872
- this.gap = "gap-(--gap)";
11873
- /** Responsive desktop unit class */
11874
- this.responsiveDesktop = "[--gap-unit:var(--gap-unit-desktop)]";
11875
- /** Responsive laptop unit class */
11876
- this.responsiveTablet = "max-tablet:[--gap-unit:var(--gap-unit-tablet)]";
11877
- /** Responsive tablet unit class */
11878
- this.responsiveMobile = "max-mobile:[--gap-unit:var(--gap-unit-mobile)]";
11848
+ /** Desktop: apply gap using --gap-desktop */
11849
+ this.desktop = "gap-(--gap-desktop)";
11850
+ /** Tablet: apply gap using --gap-tablet */
11851
+ this.tablet = "max-tablet:gap-(--gap-tablet)";
11852
+ /** Mobile: apply gap using --gap-mobile */
11853
+ this.mobile = "max-mobile:gap-(--gap-mobile)";
11879
11854
  }
11880
11855
  getClasses(extractedKeys) {
11881
11856
  if ((extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.gap) === 'gap') {
11882
- if ((extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.responsive) === 'responsive') {
11883
- return [
11884
- this.responsiveDesktop,
11885
- this.responsiveTablet,
11886
- this.responsiveMobile,
11887
- this.gap
11888
- ];
11889
- }
11890
- return [this.gap];
11857
+ return [this.desktop, this.tablet, this.mobile];
11891
11858
  }
11892
11859
  return [];
11893
11860
  }
@@ -12005,55 +11972,44 @@ class FocusVisibleTheme extends BaseTheme {
12005
11972
  }
12006
11973
 
12007
11974
  /**
12008
- * Horizontal padding theme - only outputs the consumer class px-(--px).
12009
- * CSS variable values (--aspect-ratio, --py-unit) are now set via CSS rules
12010
- * in vars.css using semantic classes and data attributes.
11975
+ * Horizontal padding theme - applies px using pre-computed breakpoint variables.
11976
+ * CSS computes --px-desktop/tablet/mobile from --py-unit and --aspect-ratio.
12011
11977
  */
12012
11978
  class PxTheme extends BaseTheme {
12013
11979
  constructor() {
12014
11980
  super(...arguments);
12015
- /** Consumer class for horizontal padding */
12016
- this.px = "px-(--px)";
11981
+ /** Desktop: apply horizontal padding using --px-desktop */
11982
+ this.desktop = "px-(--px-desktop)";
11983
+ /** Tablet: apply horizontal padding using --px-tablet */
11984
+ this.tablet = "max-tablet:px-(--px-tablet)";
11985
+ /** Mobile: apply horizontal padding using --px-mobile */
11986
+ this.mobile = "max-mobile:px-(--px-mobile)";
12017
11987
  }
12018
11988
  getClasses(extractedKeys) {
12019
11989
  if ((extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.padding) === 'padding' || (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.padding) === undefined) {
12020
- return [this.px];
11990
+ return [this.desktop, this.tablet, this.mobile];
12021
11991
  }
12022
11992
  return [];
12023
11993
  }
12024
11994
  }
12025
11995
 
12026
11996
  /**
12027
- * Vertical padding theme - outputs the consumer class py-(--py).
12028
- * CSS variable values (--py-unit) are set via CSS rules in vars.css
12029
- * using semantic classes and data attributes.
12030
- *
12031
- * When the 'responsive' prop is set, adds Tailwind classes to switch
12032
- * between breakpoint-specific variables for automatic size adaptation.
11997
+ * Vertical padding theme - applies py using pre-computed breakpoint variables.
11998
+ * CSS computes --py-desktop/tablet/mobile from --py-unit (with fallbacks for responsive overrides).
12033
11999
  */
12034
12000
  class PyTheme extends BaseTheme {
12035
12001
  constructor() {
12036
12002
  super(...arguments);
12037
- /** Consumer class for vertical padding */
12038
- this.py = "py-(--py)";
12039
- /** Responsive desktop unit class */
12040
- this.responsiveDesktop = "[--py-unit:var(--py-unit-desktop)]";
12041
- /** Responsive laptop unit class */
12042
- this.responsiveTablet = "max-tablet:[--py-unit:var(--py-unit-tablet)]";
12043
- /** Responsive tablet unit class */
12044
- this.responsiveMobile = "max-mobile:[--py-unit:var(--py-unit-mobile)]";
12003
+ /** Desktop: apply vertical padding using --py-desktop */
12004
+ this.desktop = "py-(--py-desktop)";
12005
+ /** Tablet: apply vertical padding using --py-tablet */
12006
+ this.tablet = "max-tablet:py-(--py-tablet)";
12007
+ /** Mobile: apply vertical padding using --py-mobile */
12008
+ this.mobile = "max-mobile:py-(--py-mobile)";
12045
12009
  }
12046
12010
  getClasses(extractedKeys) {
12047
12011
  if ((extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.padding) === 'padding' || (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.padding) === undefined) {
12048
- if ((extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.responsive) === 'responsive') {
12049
- return [
12050
- this.responsiveDesktop,
12051
- this.responsiveTablet,
12052
- this.responsiveMobile,
12053
- this.py
12054
- ];
12055
- }
12056
- return [this.py];
12012
+ return [this.desktop, this.tablet, this.mobile];
12057
12013
  }
12058
12014
  return [];
12059
12015
  }
@@ -12102,8 +12058,8 @@ class SimpleConsumerTheme extends BaseTheme {
12102
12058
  if (this.category === 'focusVisible' && (extractedKeys.focusVisible === 'noFocusVisible' || extractedKeys.focusVisible === undefined)) {
12103
12059
  return [];
12104
12060
  }
12105
- // Only output classes if an appearance or transparent is set (unless alwaysOutput is true)
12106
- if (!this.alwaysOutput && !(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.appearance) && !(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.transparent)) {
12061
+ // Only output classes if an appearance is set (unless alwaysOutput is true)
12062
+ if (!this.alwaysOutput && !(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.appearance)) {
12107
12063
  return [];
12108
12064
  }
12109
12065
  const classes = [];
@@ -12123,43 +12079,42 @@ class SimpleConsumerTheme extends BaseTheme {
12123
12079
  }
12124
12080
  }
12125
12081
 
12082
+ /**
12083
+ * Shadow theme using CSS variables for customizable shadows.
12084
+ *
12085
+ * Shadow variables (--shadow-base, --shadow-hover) are set via CSS rules in vars.css
12086
+ * based on data-vane-type and data-size attributes.
12087
+ * This theme only outputs the consumer classes that use those variables.
12088
+ * - UI: shadow-(--shadow-base) + hover:shadow-(--shadow-hover) (interactive with hover)
12089
+ * - Layout: shadow-(--shadow-base) (static, no hover)
12090
+ */
12126
12091
  class ShadowAppearanceTheme extends BaseTheme {
12127
- constructor(initial) {
12092
+ constructor(shadowClasses) {
12128
12093
  super();
12129
- ComponentKeys.appearance.forEach((key) => {
12130
- this[key] = initial;
12131
- });
12094
+ this.shadowClasses = shadowClasses;
12132
12095
  }
12133
12096
  getClasses(extractedKeys) {
12134
- var _a, _b;
12135
- const appearance = (_a = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.appearance) !== null && _a !== void 0 ? _a : 'primary';
12136
- const size = (_b = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.size) !== null && _b !== void 0 ? _b : 'md';
12137
12097
  const shadow = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.shadow;
12138
12098
  return shadow === undefined || shadow === 'noShadow'
12139
12099
  ? []
12140
- : ModeKeys.mode.map(mode => { var _a, _b, _c; return (_c = (_b = (_a = this[appearance]) === null || _a === void 0 ? void 0 : _a[size]) === null || _b === void 0 ? void 0 : _b[mode]) !== null && _c !== void 0 ? _c : ""; });
12100
+ : this.shadowClasses;
12141
12101
  }
12142
12102
  static createUITheme() {
12143
- return new ShadowAppearanceTheme(ShadowAppearanceTheme.defaultUIShadow);
12103
+ return new ShadowAppearanceTheme(ShadowAppearanceTheme.uiShadowClasses);
12144
12104
  }
12145
12105
  static createLayoutTheme() {
12146
- return new ShadowAppearanceTheme(ShadowAppearanceTheme.defaultLayoutShadow);
12106
+ return new ShadowAppearanceTheme(ShadowAppearanceTheme.layoutShadowClasses);
12147
12107
  }
12148
12108
  }
12149
- ShadowAppearanceTheme.defaultUIShadow = {
12150
- xs: { base: "shadow-2xs", hover: "hover:shadow-xs", active: "", focus: "", focusVisible: "" },
12151
- sm: { base: "shadow-xs", hover: "hover:shadow-sm", active: "", focus: "", focusVisible: "" },
12152
- md: { base: "shadow-sm", hover: "hover:shadow-md", active: "", focus: "", focusVisible: "" },
12153
- lg: { base: "shadow-md", hover: "hover:shadow-lg", active: "", focus: "", focusVisible: "" },
12154
- xl: { base: "shadow-lg", hover: "hover:shadow-xl", active: "", focus: "", focusVisible: "" }
12155
- };
12156
- ShadowAppearanceTheme.defaultLayoutShadow = {
12157
- xs: { base: "shadow-2xs", hover: "", active: "", focus: "", focusVisible: "" },
12158
- sm: { base: "shadow-xs", hover: "", active: "", focus: "", focusVisible: "" },
12159
- md: { base: "shadow-sm", hover: "", active: "", focus: "", focusVisible: "" },
12160
- lg: { base: "shadow-md", hover: "", active: "", focus: "", focusVisible: "" },
12161
- xl: { base: "shadow-lg", hover: "", active: "", focus: "", focusVisible: "" }
12162
- };
12109
+ // UI shadows: consumer classes (CSS sets variables based on data-vane-type + data-size)
12110
+ ShadowAppearanceTheme.uiShadowClasses = [
12111
+ "shadow-(--shadow-base)",
12112
+ "hover:shadow-(--shadow-hover)"
12113
+ ];
12114
+ // Layout shadows: consumer class only (no hover)
12115
+ ShadowAppearanceTheme.layoutShadowClasses = [
12116
+ "shadow-(--shadow-base)"
12117
+ ];
12163
12118
 
12164
12119
  class WrapTheme extends BaseTheme {
12165
12120
  constructor() {
@@ -12284,7 +12239,6 @@ const themeDefaults = {
12284
12239
  noBorder: true,
12285
12240
  noRing: true,
12286
12241
  noShadow: true,
12287
- responsive: true,
12288
12242
  sharp: true,
12289
12243
  },
12290
12244
  stack: {
@@ -12405,7 +12359,6 @@ const themeDefaults = {
12405
12359
  sans: true,
12406
12360
  semibold: true,
12407
12361
  textLeft: true,
12408
- responsive: true,
12409
12362
  outline: true,
12410
12363
  primary: true,
12411
12364
  },
@@ -12414,7 +12367,6 @@ const themeDefaults = {
12414
12367
  sans: true,
12415
12368
  semibold: true,
12416
12369
  textLeft: true,
12417
- responsive: true,
12418
12370
  outline: true,
12419
12371
  primary: true,
12420
12372
  },
@@ -12423,7 +12375,6 @@ const themeDefaults = {
12423
12375
  sans: true,
12424
12376
  semibold: true,
12425
12377
  textLeft: true,
12426
- responsive: true,
12427
12378
  outline: true,
12428
12379
  primary: true,
12429
12380
  },
@@ -12464,7 +12415,6 @@ const themeDefaults = {
12464
12415
  filled: true,
12465
12416
  },
12466
12417
  wrapper: {
12467
- transparent: true,
12468
12418
  md: true,
12469
12419
  inlineGrid: true,
12470
12420
  itemsCenter: true,
@@ -12540,7 +12490,7 @@ const defaultButtonTheme = new ComponentTheme("button", "vane-button w-fit h-fit
12540
12490
  }, themeDefaults.button, BUTTON_CATEGORIES, (props) => {
12541
12491
  // Determine tag based on href prop
12542
12492
  return props.href ? "a" : "button";
12543
- });
12493
+ }, 'ui');
12544
12494
 
12545
12495
  const defaultBadgeTheme = new ComponentTheme("span", "vane-badge w-fit h-fit transition-all duration-200 whitespace-nowrap", {
12546
12496
  size: {
@@ -12570,7 +12520,7 @@ const defaultBadgeTheme = new ComponentTheme("span", "vane-badge w-fit h-fit tra
12570
12520
  typography: defaultTypographyThemes,
12571
12521
  }, themeDefaults.badge, BADGE_CATEGORIES, (props) => {
12572
12522
  return props.href ? "a" : "span";
12573
- });
12523
+ }, 'ui');
12574
12524
 
12575
12525
  const defaultChipTheme = new ComponentTheme("span", "vane-chip w-fit h-fit transition-all duration-200 whitespace-nowrap", {
12576
12526
  size: {
@@ -12600,7 +12550,7 @@ const defaultChipTheme = new ComponentTheme("span", "vane-chip w-fit h-fit trans
12600
12550
  typography: defaultTypographyThemes,
12601
12551
  }, themeDefaults.chip, CHIP_CATEGORIES, (props) => {
12602
12552
  return props.href ? "a" : "span";
12603
- });
12553
+ }, 'ui');
12604
12554
 
12605
12555
  const defaultCodeTheme = new ComponentTheme("code", "vane-code", {
12606
12556
  size: {
@@ -12628,7 +12578,7 @@ const defaultCodeTheme = new ComponentTheme("code", "vane-code", {
12628
12578
  flexDirection: new DirectionTheme(),
12629
12579
  },
12630
12580
  typography: defaultTypographyThemes,
12631
- }, themeDefaults.code, CODE_CATEGORIES);
12581
+ }, themeDefaults.code, CODE_CATEGORIES, undefined, 'ui');
12632
12582
 
12633
12583
  /**
12634
12584
  * Link-specific variant theme that handles text colors
@@ -12830,7 +12780,7 @@ const defaultCardTheme = new ComponentTheme("div", "vane-card", {
12830
12780
  ring: new SimpleConsumerTheme({ base: ringConsumerClass }, 'ring'),
12831
12781
  },
12832
12782
  typography: defaultTypographyThemes,
12833
- }, themeDefaults.card, CARD_CATEGORIES);
12783
+ }, themeDefaults.card, CARD_CATEGORIES, undefined, 'layout');
12834
12784
 
12835
12785
  const defaultRowTheme = new ComponentTheme("div", "vane-row", {
12836
12786
  size: {
@@ -12852,7 +12802,7 @@ const defaultRowTheme = new ComponentTheme("div", "vane-row", {
12852
12802
  ring: new SimpleConsumerTheme({ base: ringConsumerClass }, 'ring'),
12853
12803
  shadow: ShadowAppearanceTheme.createLayoutTheme(),
12854
12804
  }
12855
- }, themeDefaults.row, ROW_CATEGORIES);
12805
+ }, themeDefaults.row, ROW_CATEGORIES, undefined, 'layout');
12856
12806
 
12857
12807
  const defaultDividerTheme = new ComponentTheme("div", "vane-divider h-(--bw) w-full", {
12858
12808
  size: {
@@ -12863,7 +12813,7 @@ const defaultDividerTheme = new ComponentTheme("div", "vane-divider h-(--bw) w-f
12863
12813
  background: new SimpleConsumerTheme({ base: '[background:var(--border-color)]' }, 'bg'),
12864
12814
  },
12865
12815
  layout: defaultLayoutsThemes,
12866
- }, themeDefaults.divider, DIVIDER_CATEGORIES);
12816
+ }, themeDefaults.divider, DIVIDER_CATEGORIES, undefined, 'layout');
12867
12817
 
12868
12818
  /**
12869
12819
  * Size theme - can operate in two modes:
@@ -12924,7 +12874,7 @@ const defaultContainerTheme = new ComponentTheme("div", "vane-container mx-auto
12924
12874
  ring: new SimpleConsumerTheme({ base: ringConsumerClass }, 'ring'),
12925
12875
  shadow: ShadowAppearanceTheme.createLayoutTheme(),
12926
12876
  }
12927
- }, themeDefaults.container, CONTAINER_CATEGORIES);
12877
+ }, themeDefaults.container, CONTAINER_CATEGORIES, undefined, 'layout');
12928
12878
 
12929
12879
  const defaultColTheme = new ComponentTheme("div", "vane-col", {
12930
12880
  size: {
@@ -12945,7 +12895,7 @@ const defaultColTheme = new ComponentTheme("div", "vane-col", {
12945
12895
  ring: new SimpleConsumerTheme({ base: ringConsumerClass }, 'ring'),
12946
12896
  shadow: ShadowAppearanceTheme.createLayoutTheme(),
12947
12897
  }
12948
- }, themeDefaults.col, COL_CATEGORIES);
12898
+ }, themeDefaults.col, COL_CATEGORIES, undefined, 'layout');
12949
12899
 
12950
12900
  const defaultStackTheme = new ComponentTheme("div", "vane-stack", {
12951
12901
  size: {
@@ -12969,7 +12919,7 @@ const defaultStackTheme = new ComponentTheme("div", "vane-stack", {
12969
12919
  ring: new SimpleConsumerTheme({ base: ringConsumerClass }, 'ring'),
12970
12920
  shadow: ShadowAppearanceTheme.createLayoutTheme(),
12971
12921
  }
12972
- }, themeDefaults.stack, STACK_CATEGORIES);
12922
+ }, themeDefaults.stack, STACK_CATEGORIES, undefined, 'layout');
12973
12923
 
12974
12924
  const defaultSectionTheme = new ComponentTheme("div", "vane-section w-full", {
12975
12925
  size: {
@@ -12993,7 +12943,7 @@ const defaultSectionTheme = new ComponentTheme("div", "vane-section w-full", {
12993
12943
  ring: new RingTheme(),
12994
12944
  radius: new RadiusTheme(),
12995
12945
  },
12996
- }, themeDefaults.section, SECTION_CATEGORIES);
12946
+ }, themeDefaults.section, SECTION_CATEGORIES, undefined, 'layout');
12997
12947
 
12998
12948
  const gridSubThemes = {
12999
12949
  size: {
@@ -13012,7 +12962,7 @@ const gridSubThemes = {
13012
12962
  border: new BorderTheme(),
13013
12963
  },
13014
12964
  };
13015
- const defaultGrid2Theme = new ComponentTheme("div", "vane-grid vane-grid-2 grid-cols-1 md:grid-cols-2", gridSubThemes, themeDefaults.grid2, GRID_CATEGORIES);
12965
+ const defaultGrid2Theme = new ComponentTheme("div", "vane-grid vane-grid-2 grid-cols-1 md:grid-cols-2", gridSubThemes, themeDefaults.grid2, GRID_CATEGORIES, undefined, 'layout');
13016
12966
  const defaultGrid3Theme = new ComponentTheme("div", "vane-grid vane-grid-3 grid-cols-1 md:grid-cols-3", gridSubThemes, themeDefaults.grid3, GRID_CATEGORIES);
13017
12967
  const defaultGrid4Theme = new ComponentTheme("div", "vane-grid vane-grid-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-4", gridSubThemes, themeDefaults.grid4, GRID_CATEGORIES);
13018
12968
  const defaultGrid5Theme = new ComponentTheme("div", "vane-grid vane-grid-5 grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5", gridSubThemes, themeDefaults.grid5, GRID_CATEGORIES);
@@ -13040,7 +12990,7 @@ const defaultCheckboxTheme = new ComponentTheme("input", "vane-checkbox peer col
13040
12990
  check: new SimpleConsumerTheme({ base: checkedBgConsumerClass }, 'bg'),
13041
12991
  shadow: ShadowAppearanceTheme.createUITheme(),
13042
12992
  }
13043
- }, ((_a = themeDefaults.checkbox) === null || _a === void 0 ? void 0 : _a.input) || {}, CHECKBOX_CATEGORIES);
12993
+ }, ((_a = themeDefaults.checkbox) === null || _a === void 0 ? void 0 : _a.input) || {}, CHECKBOX_CATEGORIES, undefined, 'ui');
13044
12994
  const defaultCheckTheme = new ComponentTheme("span", "invisible col-start-1 row-start-1 peer-checked:visible", {
13045
12995
  checkElement: () => jsxRuntime.jsx("svg", { viewBox: "0 0 14 14", fill: "none", children: jsxRuntime.jsx("path", { d: "M3 8L6 11L11 3.5", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", fill: "none", stroke: "currentColor" }) }),
13046
12996
  appearance: {
@@ -13087,7 +13037,7 @@ const defaultLabelTheme = new ComponentTheme("label", "vane-label has-[input]:cu
13087
13037
  wrap: new WrapTheme(),
13088
13038
  flexDirection: new DirectionTheme(),
13089
13039
  },
13090
- }, themeDefaults.label, LABEL_CATEGORIES);
13040
+ }, themeDefaults.label, LABEL_CATEGORIES, undefined, 'ui');
13091
13041
 
13092
13042
  const defaultImgTheme = new ComponentTheme("img", "vane-img object-cover", // Default to cover for better image display
13093
13043
  {
@@ -13105,7 +13055,7 @@ const defaultImgTheme = new ComponentTheme("img", "vane-img object-cover", // De
13105
13055
  focusVisible: new SimpleConsumerTheme({ base: focusVisibleConsumerClass }, 'focusVisible'),
13106
13056
  shadow: ShadowAppearanceTheme.createLayoutTheme()
13107
13057
  }
13108
- }, themeDefaults.img, IMG_CATEGORIES);
13058
+ }, themeDefaults.img, IMG_CATEGORIES, undefined, 'layout');
13109
13059
 
13110
13060
  const defaultInputTheme = new ComponentTheme("input", "vane-input w-full transition-all duration-200", {
13111
13061
  size: {
@@ -13133,7 +13083,7 @@ const defaultInputTheme = new ComponentTheme("input", "vane-input w-full transit
13133
13083
  flexDirection: new DirectionTheme(),
13134
13084
  },
13135
13085
  typography: defaultTypographyThemes,
13136
- }, themeDefaults.input, INPUT_CATEGORIES, () => "input");
13086
+ }, themeDefaults.input, INPUT_CATEGORIES, () => "input", 'ui');
13137
13087
 
13138
13088
  const defaultTheme = {
13139
13089
  button: defaultButtonTheme,
@@ -13416,7 +13366,7 @@ const Checkbox = React.forwardRef(function Checkbox(props, ref) {
13416
13366
  // Size props
13417
13367
  xs, sm, md, lg, xl,
13418
13368
  // Appearance props
13419
- primary, brand, accent, secondary, tertiary, success, danger, warning, info, transparent,
13369
+ primary, brand, accent, secondary, tertiary, success, danger, warning, info,
13420
13370
  // Variant props
13421
13371
  filled, outline,
13422
13372
  // Shape props
@@ -13427,7 +13377,7 @@ const Checkbox = React.forwardRef(function Checkbox(props, ref) {
13427
13377
  id, className, tabIndex, 'aria-label': ariaLabel, ...remainingProps } = props;
13428
13378
  const themeProps = {
13429
13379
  xs, sm, md, lg, xl,
13430
- primary, brand, accent, secondary, tertiary, success, danger, warning, info, transparent,
13380
+ primary, brand, accent, secondary, tertiary, success, danger, warning, info,
13431
13381
  filled, outline,
13432
13382
  pill, sharp, rounded
13433
13383
  };