@vaneui/md 0.3.1-alpha.20260104201635.7d81a8e → 0.9.0-alpha.20260105192120.1be78c6

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,24 @@ 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 - switches --fs-unit via breakpoint classes.
11808
+ * CSS variable values (--fs-unit-desktop/tablet/mobile) are set in vars.css.
11809
+ * The formula --fs = --fs-unit * --fs-base is computed once in CSS.
11818
11810
  */
11819
11811
  class FontSizeTheme extends BaseTheme {
11820
11812
  constructor() {
11821
11813
  super(...arguments);
11822
- /** Consumer class for font size */
11814
+ /** Desktop breakpoint unit switch */
11815
+ this.desktop = "[--fs-unit:var(--fs-unit-desktop)]";
11816
+ /** Tablet breakpoint unit switch */
11817
+ this.tablet = "max-tablet:[--fs-unit:var(--fs-unit-tablet)]";
11818
+ /** Mobile breakpoint unit switch */
11819
+ this.mobile = "max-mobile:[--fs-unit:var(--fs-unit-mobile)]";
11820
+ /** Consumer class */
11823
11821
  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)]";
11830
11822
  }
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];
11823
+ getClasses(_extractedKeys) {
11824
+ return [this.desktop, this.tablet, this.mobile, this.fontSize];
11841
11825
  }
11842
11826
  }
11843
11827
 
@@ -11858,36 +11842,25 @@ class LineHeightTheme extends BaseTheme {
11858
11842
  }
11859
11843
 
11860
11844
  /**
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.
11845
+ * Gap theme - switches --gap-unit via breakpoint classes.
11846
+ * CSS variable values (--gap-unit-desktop/tablet/mobile) are set in vars.css.
11847
+ * The formula --gap = --gap-unit * --spacing is computed once in CSS.
11867
11848
  */
11868
11849
  class GapTheme extends BaseTheme {
11869
11850
  constructor() {
11870
11851
  super(...arguments);
11871
- /** Consumer class for gap spacing */
11852
+ /** Desktop breakpoint unit switch */
11853
+ this.desktop = "[--gap-unit:var(--gap-unit-desktop)]";
11854
+ /** Tablet breakpoint unit switch */
11855
+ this.tablet = "max-tablet:[--gap-unit:var(--gap-unit-tablet)]";
11856
+ /** Mobile breakpoint unit switch */
11857
+ this.mobile = "max-mobile:[--gap-unit:var(--gap-unit-mobile)]";
11858
+ /** Consumer class */
11872
11859
  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)]";
11879
11860
  }
11880
11861
  getClasses(extractedKeys) {
11881
11862
  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];
11863
+ return [this.desktop, this.tablet, this.mobile, this.gap];
11891
11864
  }
11892
11865
  return [];
11893
11866
  }
@@ -12005,55 +11978,52 @@ class FocusVisibleTheme extends BaseTheme {
12005
11978
  }
12006
11979
 
12007
11980
  /**
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.
11981
+ * Horizontal padding theme - switches --py-unit via breakpoint classes.
11982
+ * The formula --px = --aspect-ratio * --py-unit * --spacing is computed in CSS.
11983
+ * Uses same --py-unit as PyTheme since px is derived from py.
12011
11984
  */
12012
11985
  class PxTheme extends BaseTheme {
12013
11986
  constructor() {
12014
11987
  super(...arguments);
12015
- /** Consumer class for horizontal padding */
11988
+ /** Desktop breakpoint unit switch */
11989
+ this.desktop = "[--py-unit:var(--py-unit-desktop)]";
11990
+ /** Tablet breakpoint unit switch */
11991
+ this.tablet = "max-tablet:[--py-unit:var(--py-unit-tablet)]";
11992
+ /** Mobile breakpoint unit switch */
11993
+ this.mobile = "max-mobile:[--py-unit:var(--py-unit-mobile)]";
11994
+ /** Consumer class */
12016
11995
  this.px = "px-(--px)";
12017
11996
  }
12018
11997
  getClasses(extractedKeys) {
12019
11998
  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];
11999
+ // Note: unit switching classes are same as py, but we still emit them
12000
+ // in case px is used without py. twMerge will dedupe if both are used.
12001
+ return [this.desktop, this.tablet, this.mobile, this.px];
12021
12002
  }
12022
12003
  return [];
12023
12004
  }
12024
12005
  }
12025
12006
 
12026
12007
  /**
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.
12008
+ * Vertical padding theme - switches --py-unit via breakpoint classes.
12009
+ * CSS variable values (--py-unit-desktop/tablet/mobile) are set in vars.css.
12010
+ * The formula --py = --py-unit * --spacing is computed once in CSS.
12033
12011
  */
12034
12012
  class PyTheme extends BaseTheme {
12035
12013
  constructor() {
12036
12014
  super(...arguments);
12037
- /** Consumer class for vertical padding */
12015
+ /** Desktop breakpoint unit switch */
12016
+ this.desktop = "[--py-unit:var(--py-unit-desktop)]";
12017
+ /** Tablet breakpoint unit switch */
12018
+ this.tablet = "max-tablet:[--py-unit:var(--py-unit-tablet)]";
12019
+ /** Mobile breakpoint unit switch */
12020
+ this.mobile = "max-mobile:[--py-unit:var(--py-unit-mobile)]";
12021
+ /** Consumer class */
12038
12022
  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)]";
12045
12023
  }
12046
12024
  getClasses(extractedKeys) {
12047
12025
  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];
12026
+ return [this.desktop, this.tablet, this.mobile, this.py];
12057
12027
  }
12058
12028
  return [];
12059
12029
  }
@@ -12102,8 +12072,8 @@ class SimpleConsumerTheme extends BaseTheme {
12102
12072
  if (this.category === 'focusVisible' && (extractedKeys.focusVisible === 'noFocusVisible' || extractedKeys.focusVisible === undefined)) {
12103
12073
  return [];
12104
12074
  }
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)) {
12075
+ // Only output classes if an appearance is set (unless alwaysOutput is true)
12076
+ if (!this.alwaysOutput && !(extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.appearance)) {
12107
12077
  return [];
12108
12078
  }
12109
12079
  const classes = [];
@@ -12123,43 +12093,42 @@ class SimpleConsumerTheme extends BaseTheme {
12123
12093
  }
12124
12094
  }
12125
12095
 
12096
+ /**
12097
+ * Shadow theme using CSS variables for customizable shadows.
12098
+ *
12099
+ * Shadow variables (--shadow-base, --shadow-hover) are set via CSS rules in vars.css
12100
+ * based on data-vane-type and data-size attributes.
12101
+ * This theme only outputs the consumer classes that use those variables.
12102
+ * - UI: shadow-(--shadow-base) + hover:shadow-(--shadow-hover) (interactive with hover)
12103
+ * - Layout: shadow-(--shadow-base) (static, no hover)
12104
+ */
12126
12105
  class ShadowAppearanceTheme extends BaseTheme {
12127
- constructor(initial) {
12106
+ constructor(shadowClasses) {
12128
12107
  super();
12129
- ComponentKeys.appearance.forEach((key) => {
12130
- this[key] = initial;
12131
- });
12108
+ this.shadowClasses = shadowClasses;
12132
12109
  }
12133
12110
  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
12111
  const shadow = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.shadow;
12138
12112
  return shadow === undefined || shadow === 'noShadow'
12139
12113
  ? []
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 : ""; });
12114
+ : this.shadowClasses;
12141
12115
  }
12142
12116
  static createUITheme() {
12143
- return new ShadowAppearanceTheme(ShadowAppearanceTheme.defaultUIShadow);
12117
+ return new ShadowAppearanceTheme(ShadowAppearanceTheme.uiShadowClasses);
12144
12118
  }
12145
12119
  static createLayoutTheme() {
12146
- return new ShadowAppearanceTheme(ShadowAppearanceTheme.defaultLayoutShadow);
12120
+ return new ShadowAppearanceTheme(ShadowAppearanceTheme.layoutShadowClasses);
12147
12121
  }
12148
12122
  }
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
- };
12123
+ // UI shadows: consumer classes (CSS sets variables based on data-vane-type + data-size)
12124
+ ShadowAppearanceTheme.uiShadowClasses = [
12125
+ "shadow-(--shadow-base)",
12126
+ "hover:shadow-(--shadow-hover)"
12127
+ ];
12128
+ // Layout shadows: consumer class only (no hover)
12129
+ ShadowAppearanceTheme.layoutShadowClasses = [
12130
+ "shadow-(--shadow-base)"
12131
+ ];
12163
12132
 
12164
12133
  class WrapTheme extends BaseTheme {
12165
12134
  constructor() {
@@ -12284,7 +12253,6 @@ const themeDefaults = {
12284
12253
  noBorder: true,
12285
12254
  noRing: true,
12286
12255
  noShadow: true,
12287
- responsive: true,
12288
12256
  sharp: true,
12289
12257
  },
12290
12258
  stack: {
@@ -12405,7 +12373,6 @@ const themeDefaults = {
12405
12373
  sans: true,
12406
12374
  semibold: true,
12407
12375
  textLeft: true,
12408
- responsive: true,
12409
12376
  outline: true,
12410
12377
  primary: true,
12411
12378
  },
@@ -12414,7 +12381,6 @@ const themeDefaults = {
12414
12381
  sans: true,
12415
12382
  semibold: true,
12416
12383
  textLeft: true,
12417
- responsive: true,
12418
12384
  outline: true,
12419
12385
  primary: true,
12420
12386
  },
@@ -12423,7 +12389,6 @@ const themeDefaults = {
12423
12389
  sans: true,
12424
12390
  semibold: true,
12425
12391
  textLeft: true,
12426
- responsive: true,
12427
12392
  outline: true,
12428
12393
  primary: true,
12429
12394
  },
@@ -12464,7 +12429,6 @@ const themeDefaults = {
12464
12429
  filled: true,
12465
12430
  },
12466
12431
  wrapper: {
12467
- transparent: true,
12468
12432
  md: true,
12469
12433
  inlineGrid: true,
12470
12434
  itemsCenter: true,
@@ -12540,7 +12504,7 @@ const defaultButtonTheme = new ComponentTheme("button", "vane-button w-fit h-fit
12540
12504
  }, themeDefaults.button, BUTTON_CATEGORIES, (props) => {
12541
12505
  // Determine tag based on href prop
12542
12506
  return props.href ? "a" : "button";
12543
- });
12507
+ }, 'ui');
12544
12508
 
12545
12509
  const defaultBadgeTheme = new ComponentTheme("span", "vane-badge w-fit h-fit transition-all duration-200 whitespace-nowrap", {
12546
12510
  size: {
@@ -12570,7 +12534,7 @@ const defaultBadgeTheme = new ComponentTheme("span", "vane-badge w-fit h-fit tra
12570
12534
  typography: defaultTypographyThemes,
12571
12535
  }, themeDefaults.badge, BADGE_CATEGORIES, (props) => {
12572
12536
  return props.href ? "a" : "span";
12573
- });
12537
+ }, 'ui');
12574
12538
 
12575
12539
  const defaultChipTheme = new ComponentTheme("span", "vane-chip w-fit h-fit transition-all duration-200 whitespace-nowrap", {
12576
12540
  size: {
@@ -12600,7 +12564,7 @@ const defaultChipTheme = new ComponentTheme("span", "vane-chip w-fit h-fit trans
12600
12564
  typography: defaultTypographyThemes,
12601
12565
  }, themeDefaults.chip, CHIP_CATEGORIES, (props) => {
12602
12566
  return props.href ? "a" : "span";
12603
- });
12567
+ }, 'ui');
12604
12568
 
12605
12569
  const defaultCodeTheme = new ComponentTheme("code", "vane-code", {
12606
12570
  size: {
@@ -12628,7 +12592,7 @@ const defaultCodeTheme = new ComponentTheme("code", "vane-code", {
12628
12592
  flexDirection: new DirectionTheme(),
12629
12593
  },
12630
12594
  typography: defaultTypographyThemes,
12631
- }, themeDefaults.code, CODE_CATEGORIES);
12595
+ }, themeDefaults.code, CODE_CATEGORIES, undefined, 'ui');
12632
12596
 
12633
12597
  /**
12634
12598
  * Link-specific variant theme that handles text colors
@@ -12830,7 +12794,7 @@ const defaultCardTheme = new ComponentTheme("div", "vane-card", {
12830
12794
  ring: new SimpleConsumerTheme({ base: ringConsumerClass }, 'ring'),
12831
12795
  },
12832
12796
  typography: defaultTypographyThemes,
12833
- }, themeDefaults.card, CARD_CATEGORIES);
12797
+ }, themeDefaults.card, CARD_CATEGORIES, undefined, 'layout');
12834
12798
 
12835
12799
  const defaultRowTheme = new ComponentTheme("div", "vane-row", {
12836
12800
  size: {
@@ -12852,7 +12816,7 @@ const defaultRowTheme = new ComponentTheme("div", "vane-row", {
12852
12816
  ring: new SimpleConsumerTheme({ base: ringConsumerClass }, 'ring'),
12853
12817
  shadow: ShadowAppearanceTheme.createLayoutTheme(),
12854
12818
  }
12855
- }, themeDefaults.row, ROW_CATEGORIES);
12819
+ }, themeDefaults.row, ROW_CATEGORIES, undefined, 'layout');
12856
12820
 
12857
12821
  const defaultDividerTheme = new ComponentTheme("div", "vane-divider h-(--bw) w-full", {
12858
12822
  size: {
@@ -12863,7 +12827,7 @@ const defaultDividerTheme = new ComponentTheme("div", "vane-divider h-(--bw) w-f
12863
12827
  background: new SimpleConsumerTheme({ base: '[background:var(--border-color)]' }, 'bg'),
12864
12828
  },
12865
12829
  layout: defaultLayoutsThemes,
12866
- }, themeDefaults.divider, DIVIDER_CATEGORIES);
12830
+ }, themeDefaults.divider, DIVIDER_CATEGORIES, undefined, 'layout');
12867
12831
 
12868
12832
  /**
12869
12833
  * Size theme - can operate in two modes:
@@ -12924,7 +12888,7 @@ const defaultContainerTheme = new ComponentTheme("div", "vane-container mx-auto
12924
12888
  ring: new SimpleConsumerTheme({ base: ringConsumerClass }, 'ring'),
12925
12889
  shadow: ShadowAppearanceTheme.createLayoutTheme(),
12926
12890
  }
12927
- }, themeDefaults.container, CONTAINER_CATEGORIES);
12891
+ }, themeDefaults.container, CONTAINER_CATEGORIES, undefined, 'layout');
12928
12892
 
12929
12893
  const defaultColTheme = new ComponentTheme("div", "vane-col", {
12930
12894
  size: {
@@ -12945,7 +12909,7 @@ const defaultColTheme = new ComponentTheme("div", "vane-col", {
12945
12909
  ring: new SimpleConsumerTheme({ base: ringConsumerClass }, 'ring'),
12946
12910
  shadow: ShadowAppearanceTheme.createLayoutTheme(),
12947
12911
  }
12948
- }, themeDefaults.col, COL_CATEGORIES);
12912
+ }, themeDefaults.col, COL_CATEGORIES, undefined, 'layout');
12949
12913
 
12950
12914
  const defaultStackTheme = new ComponentTheme("div", "vane-stack", {
12951
12915
  size: {
@@ -12969,7 +12933,7 @@ const defaultStackTheme = new ComponentTheme("div", "vane-stack", {
12969
12933
  ring: new SimpleConsumerTheme({ base: ringConsumerClass }, 'ring'),
12970
12934
  shadow: ShadowAppearanceTheme.createLayoutTheme(),
12971
12935
  }
12972
- }, themeDefaults.stack, STACK_CATEGORIES);
12936
+ }, themeDefaults.stack, STACK_CATEGORIES, undefined, 'layout');
12973
12937
 
12974
12938
  const defaultSectionTheme = new ComponentTheme("div", "vane-section w-full", {
12975
12939
  size: {
@@ -12993,7 +12957,7 @@ const defaultSectionTheme = new ComponentTheme("div", "vane-section w-full", {
12993
12957
  ring: new RingTheme(),
12994
12958
  radius: new RadiusTheme(),
12995
12959
  },
12996
- }, themeDefaults.section, SECTION_CATEGORIES);
12960
+ }, themeDefaults.section, SECTION_CATEGORIES, undefined, 'layout');
12997
12961
 
12998
12962
  const gridSubThemes = {
12999
12963
  size: {
@@ -13012,7 +12976,7 @@ const gridSubThemes = {
13012
12976
  border: new BorderTheme(),
13013
12977
  },
13014
12978
  };
13015
- const defaultGrid2Theme = new ComponentTheme("div", "vane-grid vane-grid-2 grid-cols-1 md:grid-cols-2", gridSubThemes, themeDefaults.grid2, GRID_CATEGORIES);
12979
+ 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
12980
  const defaultGrid3Theme = new ComponentTheme("div", "vane-grid vane-grid-3 grid-cols-1 md:grid-cols-3", gridSubThemes, themeDefaults.grid3, GRID_CATEGORIES);
13017
12981
  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
12982
  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 +13004,7 @@ const defaultCheckboxTheme = new ComponentTheme("input", "vane-checkbox peer col
13040
13004
  check: new SimpleConsumerTheme({ base: checkedBgConsumerClass }, 'bg'),
13041
13005
  shadow: ShadowAppearanceTheme.createUITheme(),
13042
13006
  }
13043
- }, ((_a = themeDefaults.checkbox) === null || _a === void 0 ? void 0 : _a.input) || {}, CHECKBOX_CATEGORIES);
13007
+ }, ((_a = themeDefaults.checkbox) === null || _a === void 0 ? void 0 : _a.input) || {}, CHECKBOX_CATEGORIES, undefined, 'ui');
13044
13008
  const defaultCheckTheme = new ComponentTheme("span", "invisible col-start-1 row-start-1 peer-checked:visible", {
13045
13009
  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
13010
  appearance: {
@@ -13087,7 +13051,7 @@ const defaultLabelTheme = new ComponentTheme("label", "vane-label has-[input]:cu
13087
13051
  wrap: new WrapTheme(),
13088
13052
  flexDirection: new DirectionTheme(),
13089
13053
  },
13090
- }, themeDefaults.label, LABEL_CATEGORIES);
13054
+ }, themeDefaults.label, LABEL_CATEGORIES, undefined, 'ui');
13091
13055
 
13092
13056
  const defaultImgTheme = new ComponentTheme("img", "vane-img object-cover", // Default to cover for better image display
13093
13057
  {
@@ -13105,7 +13069,7 @@ const defaultImgTheme = new ComponentTheme("img", "vane-img object-cover", // De
13105
13069
  focusVisible: new SimpleConsumerTheme({ base: focusVisibleConsumerClass }, 'focusVisible'),
13106
13070
  shadow: ShadowAppearanceTheme.createLayoutTheme()
13107
13071
  }
13108
- }, themeDefaults.img, IMG_CATEGORIES);
13072
+ }, themeDefaults.img, IMG_CATEGORIES, undefined, 'layout');
13109
13073
 
13110
13074
  const defaultInputTheme = new ComponentTheme("input", "vane-input w-full transition-all duration-200", {
13111
13075
  size: {
@@ -13133,7 +13097,7 @@ const defaultInputTheme = new ComponentTheme("input", "vane-input w-full transit
13133
13097
  flexDirection: new DirectionTheme(),
13134
13098
  },
13135
13099
  typography: defaultTypographyThemes,
13136
- }, themeDefaults.input, INPUT_CATEGORIES, () => "input");
13100
+ }, themeDefaults.input, INPUT_CATEGORIES, () => "input", 'ui');
13137
13101
 
13138
13102
  const defaultTheme = {
13139
13103
  button: defaultButtonTheme,
@@ -13416,7 +13380,7 @@ const Checkbox = React.forwardRef(function Checkbox(props, ref) {
13416
13380
  // Size props
13417
13381
  xs, sm, md, lg, xl,
13418
13382
  // Appearance props
13419
- primary, brand, accent, secondary, tertiary, success, danger, warning, info, transparent,
13383
+ primary, brand, accent, secondary, tertiary, success, danger, warning, info,
13420
13384
  // Variant props
13421
13385
  filled, outline,
13422
13386
  // Shape props
@@ -13427,7 +13391,7 @@ const Checkbox = React.forwardRef(function Checkbox(props, ref) {
13427
13391
  id, className, tabIndex, 'aria-label': ariaLabel, ...remainingProps } = props;
13428
13392
  const themeProps = {
13429
13393
  xs, sm, md, lg, xl,
13430
- primary, brand, accent, secondary, tertiary, success, danger, warning, info, transparent,
13394
+ primary, brand, accent, secondary, tertiary, success, danger, warning, info,
13431
13395
  filled, outline,
13432
13396
  pill, sharp, rounded
13433
13397
  };