@vaneui/ui 0.3.0-alpha.20250914103012.c204dad → 0.3.1-alpha.20250914210126.5142197

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/components/ui/card.d.ts +6 -0
  2. package/dist/components/ui/card.d.ts.map +1 -1
  3. package/dist/components/ui/checkbox.d.ts +6 -0
  4. package/dist/components/ui/checkbox.d.ts.map +1 -1
  5. package/dist/components/ui/code.d.ts +6 -0
  6. package/dist/components/ui/code.d.ts.map +1 -1
  7. package/dist/components/ui/col.d.ts +6 -0
  8. package/dist/components/ui/col.d.ts.map +1 -1
  9. package/dist/components/ui/container.d.ts +6 -0
  10. package/dist/components/ui/container.d.ts.map +1 -1
  11. package/dist/components/ui/img.d.ts +6 -0
  12. package/dist/components/ui/img.d.ts.map +1 -1
  13. package/dist/components/ui/input.d.ts +6 -0
  14. package/dist/components/ui/input.d.ts.map +1 -1
  15. package/dist/components/ui/props/border.d.ts +18 -2
  16. package/dist/components/ui/props/border.d.ts.map +1 -1
  17. package/dist/components/ui/props/keys.d.ts +7 -5
  18. package/dist/components/ui/props/keys.d.ts.map +1 -1
  19. package/dist/components/ui/row.d.ts +6 -0
  20. package/dist/components/ui/row.d.ts.map +1 -1
  21. package/dist/components/ui/section.d.ts +6 -0
  22. package/dist/components/ui/section.d.ts.map +1 -1
  23. package/dist/components/ui/stack.d.ts +6 -0
  24. package/dist/components/ui/stack.d.ts.map +1 -1
  25. package/dist/components/ui/theme/appearance/appearanceTheme.d.ts +10 -0
  26. package/dist/components/ui/theme/appearance/appearanceTheme.d.ts.map +1 -1
  27. package/dist/components/ui/theme/appearance/genericVariantTheme.d.ts +2 -0
  28. package/dist/components/ui/theme/appearance/genericVariantTheme.d.ts.map +1 -1
  29. package/dist/components/ui/theme/appearance/shadowAppearanceTheme.d.ts +10 -0
  30. package/dist/components/ui/theme/appearance/shadowAppearanceTheme.d.ts.map +1 -1
  31. package/dist/components/ui/theme/common/ComponentTheme.d.ts.map +1 -1
  32. package/dist/components/ui/theme/layout/borderTheme.d.ts +16 -7
  33. package/dist/components/ui/theme/layout/borderTheme.d.ts.map +1 -1
  34. package/dist/components/ui/theme/layout/directionTheme.d.ts +4 -0
  35. package/dist/components/ui/theme/layout/directionTheme.d.ts.map +1 -1
  36. package/dist/components/ui/theme/layout/displayTheme.d.ts +11 -0
  37. package/dist/components/ui/theme/layout/displayTheme.d.ts.map +1 -1
  38. package/dist/components/ui/theme/layout/focusVisibleTheme.d.ts +5 -0
  39. package/dist/components/ui/theme/layout/focusVisibleTheme.d.ts.map +1 -1
  40. package/dist/components/ui/theme/layout/hideTheme.d.ts +5 -0
  41. package/dist/components/ui/theme/layout/hideTheme.d.ts.map +1 -1
  42. package/dist/components/ui/theme/layout/itemsTheme.d.ts +5 -0
  43. package/dist/components/ui/theme/layout/itemsTheme.d.ts.map +1 -1
  44. package/dist/components/ui/theme/layout/justifyTheme.d.ts +8 -0
  45. package/dist/components/ui/theme/layout/justifyTheme.d.ts.map +1 -1
  46. package/dist/components/ui/theme/layout/overflowTheme.d.ts +15 -0
  47. package/dist/components/ui/theme/layout/overflowTheme.d.ts.map +1 -1
  48. package/dist/components/ui/theme/layout/positionTheme.d.ts +5 -0
  49. package/dist/components/ui/theme/layout/positionTheme.d.ts.map +1 -1
  50. package/dist/components/ui/theme/layout/radiusTheme.d.ts +3 -0
  51. package/dist/components/ui/theme/layout/radiusTheme.d.ts.map +1 -1
  52. package/dist/components/ui/theme/layout/ringTheme.d.ts +5 -0
  53. package/dist/components/ui/theme/layout/ringTheme.d.ts.map +1 -1
  54. package/dist/components/ui/theme/layout/wrapTheme.d.ts +3 -0
  55. package/dist/components/ui/theme/layout/wrapTheme.d.ts.map +1 -1
  56. package/dist/components/ui/theme/list/listStyleTheme.d.ts +2 -0
  57. package/dist/components/ui/theme/list/listStyleTheme.d.ts.map +1 -1
  58. package/dist/components/ui/theme/size/breakpointTheme.d.ts +5 -0
  59. package/dist/components/ui/theme/size/breakpointTheme.d.ts.map +1 -1
  60. package/dist/components/ui/theme/size/gapTheme.d.ts +5 -0
  61. package/dist/components/ui/theme/size/gapTheme.d.ts.map +1 -1
  62. package/dist/components/ui/theme/size/paddingTheme.d.ts +5 -0
  63. package/dist/components/ui/theme/size/paddingTheme.d.ts.map +1 -1
  64. package/dist/components/ui/theme/size/plTheme.d.ts +1 -0
  65. package/dist/components/ui/theme/size/plTheme.d.ts.map +1 -1
  66. package/dist/components/ui/theme/size/pxTheme.d.ts +1 -0
  67. package/dist/components/ui/theme/size/pxTheme.d.ts.map +1 -1
  68. package/dist/components/ui/theme/size/pyTheme.d.ts +1 -0
  69. package/dist/components/ui/theme/size/pyTheme.d.ts.map +1 -1
  70. package/dist/components/ui/theme/size/sizeTheme.d.ts +5 -0
  71. package/dist/components/ui/theme/size/sizeTheme.d.ts.map +1 -1
  72. package/dist/components/ui/theme/typography/fontFamilyTheme.d.ts +3 -0
  73. package/dist/components/ui/theme/typography/fontFamilyTheme.d.ts.map +1 -1
  74. package/dist/components/ui/theme/typography/fontStyleTheme.d.ts +2 -0
  75. package/dist/components/ui/theme/typography/fontStyleTheme.d.ts.map +1 -1
  76. package/dist/components/ui/theme/typography/fontWeightTheme.d.ts +9 -0
  77. package/dist/components/ui/theme/typography/fontWeightTheme.d.ts.map +1 -1
  78. package/dist/components/ui/theme/typography/textAlignTheme.d.ts +4 -0
  79. package/dist/components/ui/theme/typography/textAlignTheme.d.ts.map +1 -1
  80. package/dist/components/ui/theme/typography/textDecorationTheme.d.ts +4 -0
  81. package/dist/components/ui/theme/typography/textDecorationTheme.d.ts.map +1 -1
  82. package/dist/components/ui/theme/typography/textTransformTheme.d.ts +4 -0
  83. package/dist/components/ui/theme/typography/textTransformTheme.d.ts.map +1 -1
  84. package/dist/index.esm.js +188 -22
  85. package/dist/index.esm.js.map +1 -1
  86. package/dist/index.js +194 -21
  87. package/dist/index.js.map +1 -1
  88. package/dist/ui.css +24 -0
  89. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -35,11 +35,25 @@ const LINK = 'link';
35
35
  const APPEARANCE_VALUES = [DEFAULT, ACCENT, PRIMARY, SECONDARY, TERTIARY, SUCCESS, DANGER, WARNING, INFO, LINK];
36
36
 
37
37
  /** Show border - adds appearance-based border styling */
38
- const BORDER = 'border';
38
+ const BORDER$1 = 'border';
39
+ /** Show top border */
40
+ const BORDER_T = 'borderT';
41
+ /** Show bottom border */
42
+ const BORDER_B = 'borderB';
43
+ /** Show left border */
44
+ const BORDER_L = 'borderL';
45
+ /** Show right border */
46
+ const BORDER_R = 'borderR';
47
+ /** Show horizontal borders (left and right) */
48
+ const BORDER_X = 'borderX';
49
+ /** Show vertical borders (top and bottom) */
50
+ const BORDER_Y = 'borderY';
39
51
  /** Hide border - removes border styling (overrides appearance colors) */
40
52
  const NO_BORDER = 'noBorder';
41
- /** All border property values */
42
- const BORDER_VALUES = [BORDER, NO_BORDER];
53
+ /** All border property values - includes all border variations and noBorder */
54
+ const BORDER_VALUES = [BORDER$1, BORDER_T, BORDER_B, BORDER_L, BORDER_R, BORDER_X, BORDER_Y, NO_BORDER];
55
+ /** All border side keys (excluding noBorder since it doesn't have a CSS class) */
56
+ const BORDER_KEYS = [BORDER$1, BORDER_T, BORDER_B, BORDER_L, BORDER_R, BORDER_X, BORDER_Y];
43
57
 
44
58
  /** Extra-small column breakpoint - responsive grid column sizing for xs screens */
45
59
  const XS_COL = 'xsCol';
@@ -374,10 +388,12 @@ const PADDING = ['padding'];
374
388
  const BREAKPOINT = ['breakpoint'];
375
389
  /** Core visual properties including appearance colors and transparency */
376
390
  const VISUAL_CORE = ['appearance', 'transparent'];
377
- /** Visual decoration properties for borders, shadows, and focus rings */
378
- const VISUAL_DECORATION = ['border', 'shadow', 'ring', 'focusVisible'];
391
+ /** Border properties for visual decoration */
392
+ const BORDER = ['border'];
393
+ /** Visual decoration properties for shadows and focus rings */
394
+ const VISUAL_DECORATION = ['shadow', 'ring', 'focusVisible'];
379
395
  /** Layout-specific visual decoration (excluding focusVisible for non-interactive elements) */
380
- const VISUAL_DECORATION_LAYOUT = ['border', 'shadow', 'ring'];
396
+ const VISUAL_DECORATION_LAYOUT = ['shadow', 'ring'];
381
397
  /** Shape properties for border radius and corner rounding */
382
398
  const SHAPE = ['shape'];
383
399
  /** Typography styling properties for text appearance and formatting */
@@ -395,6 +411,7 @@ const COMPONENT_PROPS_CATEGORY = [
395
411
  ...LAYOUT_CORE,
396
412
  ...BREAKPOINT,
397
413
  ...PADDING,
414
+ ...BORDER,
398
415
  ...VISUAL_DECORATION,
399
416
  ...SHAPE,
400
417
  ...VARIANT,
@@ -408,7 +425,7 @@ const APPEARANCE_CATEGORY = ['text', 'border', 'ring', 'shadow', 'bg', 'accent',
408
425
  const ComponentKeys = {
409
426
  /** Color appearance options */
410
427
  appearance: APPEARANCE_VALUES,
411
- /** Border visibility: border (show) or noBorder (hide) */
428
+ /** Border visibility: includes all border variations and noBorder (border, borderT, borderB, etc., noBorder) */
412
429
  border: BORDER_VALUES,
413
430
  /** Column breakpoints for responsive grid layouts */
414
431
  breakpoint: BREAKPOINT_VALUES,
@@ -467,9 +484,9 @@ const ComponentKeys = {
467
484
  /** Complete layout category including core and flex properties */
468
485
  const LAYOUT_FULL = [...LAYOUT_CORE, ...LAYOUT_FLEX];
469
486
  /** Complete visual category including core, decoration, and shape properties */
470
- const VISUAL_FULL = [...VISUAL_CORE, ...VISUAL_DECORATION, ...SHAPE];
487
+ const VISUAL_FULL = [...VISUAL_CORE, ...BORDER, ...VISUAL_DECORATION, ...SHAPE];
471
488
  /** Layout-specific visual category (excludes focusVisible for non-interactive elements) */
472
- const VISUAL_LAYOUT = [...VISUAL_CORE, ...VISUAL_DECORATION_LAYOUT, ...SHAPE];
489
+ const VISUAL_LAYOUT = [...VISUAL_CORE, ...BORDER, ...VISUAL_DECORATION_LAYOUT, ...SHAPE];
473
490
  /** Complete typography category for text styling */
474
491
  const TYPOGRAPHY_FULL = [...TYPOGRAPHY_STYLE];
475
492
  /** Categories for interactive components like buttons, badges, chips */
@@ -506,14 +523,14 @@ const DIVIDER_CATEGORIES = [...LAYOUT_CORE, ...VISUAL_CORE, ...PADDING];
506
523
  const SECTION_CATEGORIES = [...LAYOUT_FULL, ...VISUAL_LAYOUT, ...PADDING, ...BREAKPOINT, ...VARIANT];
507
524
  /** Form component categories */
508
525
  /** Categories for checkbox form components */
509
- const CHECKBOX_CATEGORIES = [...LAYOUT_CORE, ...VISUAL_CORE, ...VISUAL_DECORATION, ...SHAPE, ...VARIANT];
526
+ const CHECKBOX_CATEGORIES = [...LAYOUT_CORE, ...VISUAL_CORE, ...BORDER, ...VISUAL_DECORATION, ...SHAPE, ...VARIANT];
510
527
  /** Categories for label form components with typography support */
511
528
  const LABEL_CATEGORIES = [...TYPOGRAPHY_FULL, ...LAYOUT_FULL, ...VISUAL_CORE, ...VARIANT];
512
529
  /** Categories for input form components with interactive and form-specific properties */
513
530
  const INPUT_CATEGORIES = [...INTERACTIVE_CATEGORIES];
514
531
  /** Media component categories */
515
532
  /** Categories for image media components */
516
- const IMG_CATEGORIES = [...LAYOUT_CORE, ...VISUAL_CORE, ...VISUAL_DECORATION, ...SHAPE, ...VARIANT];
533
+ const IMG_CATEGORIES = [...LAYOUT_CORE, ...VISUAL_CORE, ...BORDER, ...VISUAL_DECORATION, ...SHAPE, ...VARIANT];
517
534
  /** All available component names in the library */
518
535
  const COMPONENT = ['button', 'badge', 'chip', 'code', 'card', 'divider', 'container', 'row', 'col', 'stack', 'section',
519
536
  'grid2', 'grid3', 'grid4', 'grid5', 'grid6', 'pageTitle', 'sectionTitle', 'title', 'text', 'link', 'list', 'listItem', 'checkbox', 'label', 'img', 'input'];
@@ -551,10 +568,15 @@ const ComponentCategories = {
551
568
  class HideTheme extends BaseTheme {
552
569
  constructor() {
553
570
  super(...arguments);
571
+ /** Hide element on extra-small screens and below */
554
572
  this.xsHide = "max-xs:hidden";
573
+ /** Hide element on small screens and below */
555
574
  this.smHide = "max-sm:hidden";
575
+ /** Hide element on medium screens and below */
556
576
  this.mdHide = "max-md:hidden";
577
+ /** Hide element on large screens and below */
557
578
  this.lgHide = "max-lg:hidden";
579
+ /** Hide element on extra-large screens and below */
558
580
  this.xlHide = "max-xl:hidden";
559
581
  }
560
582
  getClasses(extractedKeys) {
@@ -565,10 +587,15 @@ class HideTheme extends BaseTheme {
565
587
  class ItemsTheme extends BaseTheme {
566
588
  constructor() {
567
589
  super(...arguments);
590
+ /** Align flex items to the start of the cross axis */
568
591
  this.itemsStart = "items-start";
592
+ /** Align flex items to the end of the cross axis */
569
593
  this.itemsEnd = "items-end";
594
+ /** Center flex items along the cross axis */
570
595
  this.itemsCenter = "items-center";
596
+ /** Align flex items along their baseline */
571
597
  this.itemsBaseline = "items-baseline";
598
+ /** Stretch flex items to fill the cross axis */
572
599
  this.itemsStretch = "items-stretch";
573
600
  }
574
601
  getClasses(extractedKeys) {
@@ -579,13 +606,21 @@ class ItemsTheme extends BaseTheme {
579
606
  class JustifyTheme extends BaseTheme {
580
607
  constructor() {
581
608
  super(...arguments);
609
+ /** Pack flex items toward the start of the main axis */
582
610
  this.justifyStart = "justify-start";
611
+ /** Pack flex items toward the end of the main axis */
583
612
  this.justifyEnd = "justify-end";
613
+ /** Pack flex items around the center of the main axis */
584
614
  this.justifyCenter = "justify-center";
615
+ /** Distribute flex items with equal space between them */
585
616
  this.justifyBetween = "justify-between";
617
+ /** Distribute flex items with equal space around them */
586
618
  this.justifyAround = "justify-around";
619
+ /** Distribute flex items with equal space around them, including edges */
587
620
  this.justifyEvenly = "justify-evenly";
621
+ /** Stretch flex items to fill the main axis */
588
622
  this.justifyStretch = "justify-stretch";
623
+ /** Align flex items along their baseline on the main axis */
589
624
  this.justifyBaseline = "justify-baseline";
590
625
  }
591
626
  getClasses(extractedKeys) {
@@ -596,10 +631,15 @@ class JustifyTheme extends BaseTheme {
596
631
  class PositionTheme extends BaseTheme {
597
632
  constructor() {
598
633
  super(...arguments);
634
+ /** Relative positioning - positioned relative to its normal position */
599
635
  this.relative = "relative";
636
+ /** Absolute positioning - positioned relative to its closest positioned ancestor */
600
637
  this.absolute = "absolute";
638
+ /** Fixed positioning - positioned relative to the viewport */
601
639
  this.fixed = "fixed";
640
+ /** Sticky positioning - toggles between relative and fixed based on scroll position */
602
641
  this.sticky = "sticky";
642
+ /** Static positioning - default positioning, not affected by top/left/right/bottom */
603
643
  this.static = "static";
604
644
  }
605
645
  getClasses(extractedKeys) {
@@ -610,7 +650,9 @@ class PositionTheme extends BaseTheme {
610
650
  class FontStyleTheme extends BaseTheme {
611
651
  constructor() {
612
652
  super(...arguments);
653
+ /** Italic font style - slanted text */
613
654
  this.italic = "italic";
655
+ /** Normal font style - upright text (not italic) */
614
656
  this.notItalic = "not-italic";
615
657
  }
616
658
  getClasses(extractedKeys) {
@@ -621,8 +663,11 @@ class FontStyleTheme extends BaseTheme {
621
663
  class FontFamilyTheme extends BaseTheme {
622
664
  constructor() {
623
665
  super(...arguments);
666
+ /** Sans-serif font family - clean, modern fonts without serifs */
624
667
  this.sans = "font-sans";
668
+ /** Serif font family - traditional fonts with serifs */
625
669
  this.serif = "font-serif";
670
+ /** Monospace font family - fixed-width fonts for code and data */
626
671
  this.mono = "font-mono";
627
672
  }
628
673
  getClasses(extractedKeys) {
@@ -633,14 +678,23 @@ class FontFamilyTheme extends BaseTheme {
633
678
  class FontWeightTheme extends BaseTheme {
634
679
  constructor() {
635
680
  super(...arguments);
681
+ /** Thin font weight (100) - lightest weight */
636
682
  this.thin = "font-thin";
683
+ /** Extra-light font weight (200) - very light */
637
684
  this.extralight = "font-extralight";
685
+ /** Light font weight (300) - lighter than normal */
638
686
  this.light = "font-light";
687
+ /** Normal font weight (400) - default font weight */
639
688
  this.normal = "font-normal";
689
+ /** Medium font weight (500) - slightly bold */
640
690
  this.medium = "font-medium";
691
+ /** Semi-bold font weight (600) - moderately bold */
641
692
  this.semibold = "font-semibold";
693
+ /** Bold font weight (700) - standard bold */
642
694
  this.bold = "font-bold";
695
+ /** Extra-bold font weight (800) - very bold */
643
696
  this.extrabold = "font-extrabold";
697
+ /** Black font weight (900) - heaviest weight */
644
698
  this.black = "font-black";
645
699
  }
646
700
  getClasses(extractedKeys) {
@@ -651,9 +705,13 @@ class FontWeightTheme extends BaseTheme {
651
705
  class TextDecorationTheme extends BaseTheme {
652
706
  constructor() {
653
707
  super(...arguments);
708
+ /** Underline text decoration - line below text */
654
709
  this.underline = "underline";
710
+ /** Line-through text decoration - strikethrough */
655
711
  this.lineThrough = "line-through";
712
+ /** Remove underline text decoration */
656
713
  this.noUnderline = "no-underline";
714
+ /** Overline text decoration - line above text */
657
715
  this.overline = "overline";
658
716
  }
659
717
  getClasses(extractedKeys) {
@@ -664,9 +722,13 @@ class TextDecorationTheme extends BaseTheme {
664
722
  class TextTransformTheme extends BaseTheme {
665
723
  constructor() {
666
724
  super(...arguments);
725
+ /** Transform text to UPPERCASE */
667
726
  this.uppercase = "uppercase";
727
+ /** Transform text to lowercase */
668
728
  this.lowercase = "lowercase";
729
+ /** Capitalize First Letter Of Each Word */
669
730
  this.capitalize = "capitalize";
731
+ /** Normal case - no text transformation */
670
732
  this.normalCase = "normal-case";
671
733
  }
672
734
  getClasses(extractedKeys) {
@@ -677,9 +739,13 @@ class TextTransformTheme extends BaseTheme {
677
739
  class TextAlignTheme extends BaseTheme {
678
740
  constructor() {
679
741
  super(...arguments);
742
+ /** Left-align text */
680
743
  this.textLeft = "text-left";
744
+ /** Center-align text */
681
745
  this.textCenter = "text-center";
746
+ /** Right-align text */
682
747
  this.textRight = "text-right";
748
+ /** Justify text - stretch lines to fill width */
683
749
  this.textJustify = "text-justify";
684
750
  }
685
751
  getClasses(extractedKeys) {
@@ -690,16 +756,27 @@ class TextAlignTheme extends BaseTheme {
690
756
  class DisplayTheme extends BaseTheme {
691
757
  constructor() {
692
758
  super(...arguments);
759
+ /** Inline display - element flows with text */
693
760
  this.inline = "inline";
761
+ /** Block display - element takes full width */
694
762
  this.block = "block";
763
+ /** Inline-block display - element flows with text but can have width/height */
695
764
  this.inlineBlock = "inline-block";
765
+ /** Flex display - creates a flex container */
696
766
  this.flex = "flex";
767
+ /** Inline-flex display - creates an inline flex container */
697
768
  this.inlineFlex = "inline-flex";
769
+ /** Grid display - creates a grid container */
698
770
  this.grid = "grid";
771
+ /** Inline-grid display - creates an inline grid container */
699
772
  this.inlineGrid = "inline-grid";
773
+ /** Contents display - element's children behave as if they are direct children of the parent */
700
774
  this.contents = "contents";
775
+ /** Table display - element behaves like a table */
701
776
  this.table = "table";
777
+ /** Table-cell display - element behaves like a table cell */
702
778
  this.tableCell = "table-cell";
779
+ /** Hidden display - element is completely removed from layout */
703
780
  this.hidden = "hidden";
704
781
  }
705
782
  getClasses(extractedKeys) {
@@ -3421,20 +3498,35 @@ const twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);
3421
3498
  class OverflowTheme extends BaseTheme {
3422
3499
  constructor() {
3423
3500
  super(...arguments);
3501
+ /** Auto overflow - adds scrollbars when content overflows */
3424
3502
  this.overflowAuto = 'overflow-auto';
3503
+ /** Hidden overflow - clips content that overflows */
3425
3504
  this.overflowHidden = 'overflow-hidden';
3505
+ /** Clip overflow - clips content without scrollbars */
3426
3506
  this.overflowClip = 'overflow-clip';
3507
+ /** Visible overflow - content overflows and remains visible */
3427
3508
  this.overflowVisible = 'overflow-visible';
3509
+ /** Scroll overflow - always shows scrollbars */
3428
3510
  this.overflowScroll = 'overflow-scroll';
3511
+ /** Auto horizontal overflow - adds horizontal scrollbar when needed */
3429
3512
  this.overflowXAuto = 'overflow-x-auto';
3513
+ /** Auto vertical overflow - adds vertical scrollbar when needed */
3430
3514
  this.overflowYAuto = 'overflow-y-auto';
3515
+ /** Hidden horizontal overflow - clips content horizontally */
3431
3516
  this.overflowXHidden = 'overflow-x-hidden';
3517
+ /** Hidden vertical overflow - clips content vertically */
3432
3518
  this.overflowYHidden = 'overflow-y-hidden';
3519
+ /** Clip horizontal overflow - clips content horizontally without scrollbars */
3433
3520
  this.overflowXClip = 'overflow-x-clip';
3521
+ /** Clip vertical overflow - clips content vertically without scrollbars */
3434
3522
  this.overflowYClip = 'overflow-y-clip';
3523
+ /** Visible horizontal overflow - content overflows horizontally and remains visible */
3435
3524
  this.overflowXVisible = 'overflow-x-visible';
3525
+ /** Visible vertical overflow - content overflows vertically and remains visible */
3436
3526
  this.overflowYVisible = 'overflow-y-visible';
3527
+ /** Scroll horizontal overflow - always shows horizontal scrollbar */
3437
3528
  this.overflowXScroll = 'overflow-x-scroll';
3529
+ /** Scroll vertical overflow - always shows vertical scrollbar */
3438
3530
  this.overflowYScroll = 'overflow-y-scroll';
3439
3531
  }
3440
3532
  getClasses(extractedKeys) {
@@ -3506,6 +3598,9 @@ class ComponentTheme {
3506
3598
  extractedKeys[category] = key;
3507
3599
  }
3508
3600
  }
3601
+ // No need for border/noBorder mutual exclusion logic anymore
3602
+ // since noBorder is now part of the border category and
3603
+ // pickFirstTruthyKeyByCategory handles the priority naturally
3509
3604
  const walk = (map) => {
3510
3605
  for (const key of Object.keys(map)) {
3511
3606
  const node = map[key];
@@ -3561,10 +3656,15 @@ class ComponentTheme {
3561
3656
  class SizeTheme extends BaseTheme {
3562
3657
  constructor(sizeMap, useDefaultKey = true) {
3563
3658
  super();
3659
+ /** Extra-small size variant */
3564
3660
  this.xs = "";
3661
+ /** Small size variant */
3565
3662
  this.sm = "";
3663
+ /** Medium size variant (default) */
3566
3664
  this.md = "";
3665
+ /** Large size variant */
3567
3666
  this.lg = "";
3667
+ /** Extra-large size variant */
3568
3668
  this.xl = "";
3569
3669
  this.useDefaultKey = useDefaultKey;
3570
3670
  ComponentKeys.size.forEach((key) => {
@@ -3582,10 +3682,15 @@ class SizeTheme extends BaseTheme {
3582
3682
  class GapTheme extends BaseTheme {
3583
3683
  constructor(sizeMap) {
3584
3684
  super();
3685
+ /** Extra-small gap - 0.5rem spacing between items */
3585
3686
  this.xs = 'gap-2';
3687
+ /** Small gap - 0.75rem spacing between items */
3586
3688
  this.sm = 'gap-3';
3689
+ /** Medium gap - 1rem spacing between items */
3587
3690
  this.md = 'gap-4';
3691
+ /** Large gap - 1.25rem spacing between items */
3588
3692
  this.lg = 'gap-5';
3693
+ /** Extra-large gap - 1.5rem spacing between items */
3589
3694
  this.xl = 'gap-6';
3590
3695
  if (sizeMap) {
3591
3696
  ComponentKeys.size.forEach((key) => {
@@ -3623,7 +3728,9 @@ const layoutBorderRadiusClasses = {
3623
3728
  class RadiusTheme extends BaseTheme {
3624
3729
  constructor(roundedClasses) {
3625
3730
  super();
3731
+ /** Pill shape - fully rounded corners */
3626
3732
  this.pill = "rounded-full";
3733
+ /** Sharp shape - no rounded corners */
3627
3734
  this.sharp = "rounded-none";
3628
3735
  this.rounded = roundedClasses;
3629
3736
  }
@@ -3655,26 +3762,49 @@ class RadiusTheme extends BaseTheme {
3655
3762
  class BorderTheme extends BaseTheme {
3656
3763
  constructor() {
3657
3764
  super(...arguments);
3658
- this.base = "border";
3659
- this.hover = "";
3660
- this.active = "";
3661
- this.focus = "";
3662
- this.focusVisible = "";
3765
+ /** Show border - adds appearance-based border styling */
3766
+ this.border = "border";
3767
+ /** Show top border */
3768
+ this.borderT = "border-t";
3769
+ /** Show bottom border */
3770
+ this.borderB = "border-b";
3771
+ /** Show left border */
3772
+ this.borderL = "border-l";
3773
+ /** Show right border */
3774
+ this.borderR = "border-r";
3775
+ /** Show horizontal borders (left and right) */
3776
+ this.borderX = "border-x";
3777
+ /** Show vertical borders (top and bottom) */
3778
+ this.borderY = "border-y";
3663
3779
  }
3664
3780
  getClasses(extractedKeys) {
3665
- return (extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.border) === "border"
3666
- ? ModeKeys.mode.map((mode) => this[mode])
3667
- : [];
3781
+ const classes = [];
3782
+ // Now all border variations and noBorder come through the 'border' category
3783
+ const borderValue = extractedKeys === null || extractedKeys === void 0 ? void 0 : extractedKeys.border;
3784
+ // If noBorder is selected, don't apply any border classes
3785
+ if (borderValue === "noBorder") {
3786
+ return [];
3787
+ }
3788
+ // Check if the border value matches any of our border keys (BORDER_KEYS excludes noBorder)
3789
+ if (borderValue && BORDER_KEYS.includes(borderValue)) {
3790
+ classes.push(this[borderValue]);
3791
+ }
3792
+ return classes;
3668
3793
  }
3669
3794
  }
3670
3795
 
3671
3796
  class RingTheme extends BaseTheme {
3672
3797
  constructor() {
3673
3798
  super(...arguments);
3799
+ /** Base ring styling - ring with inset positioning */
3674
3800
  this.base = "ring ring-inset";
3801
+ /** Ring styling on hover state */
3675
3802
  this.hover = "";
3803
+ /** Ring styling on active state */
3676
3804
  this.active = "";
3805
+ /** Ring styling on focus state */
3677
3806
  this.focus = "";
3807
+ /** Ring styling on focus-visible state for keyboard navigation */
3678
3808
  this.focusVisible = "";
3679
3809
  }
3680
3810
  getClasses(extractedKeys) {
@@ -3687,10 +3817,15 @@ class RingTheme extends BaseTheme {
3687
3817
  class FocusVisibleTheme extends BaseTheme {
3688
3818
  constructor() {
3689
3819
  super(...arguments);
3820
+ /** Base focus-visible styling */
3690
3821
  this.base = "";
3822
+ /** Focus-visible styling on hover state */
3691
3823
  this.hover = "";
3824
+ /** Focus-visible styling on active state */
3692
3825
  this.active = "";
3826
+ /** Focus-visible styling on focus state */
3693
3827
  this.focus = "";
3828
+ /** Focus-visible styling for keyboard navigation - outline on focus */
3694
3829
  this.focusVisible = "focus-visible:outline-2 focus-visible:outline-offset-2";
3695
3830
  }
3696
3831
  getClasses(extractedKeys) {
@@ -3703,10 +3838,15 @@ class FocusVisibleTheme extends BaseTheme {
3703
3838
  class PaddingTheme extends BaseTheme {
3704
3839
  constructor(initial) {
3705
3840
  super();
3841
+ /** Extra-small padding - varies by component implementation */
3706
3842
  this.xs = "";
3843
+ /** Small padding - varies by component implementation */
3707
3844
  this.sm = "";
3845
+ /** Medium padding - varies by component implementation */
3708
3846
  this.md = "";
3847
+ /** Large padding - varies by component implementation */
3709
3848
  this.lg = "";
3849
+ /** Extra-large padding - varies by component implementation */
3710
3850
  this.xl = "";
3711
3851
  if (initial) {
3712
3852
  ComponentKeys.size.forEach((key) => {
@@ -3726,6 +3866,7 @@ class PaddingTheme extends BaseTheme {
3726
3866
  }
3727
3867
  }
3728
3868
 
3869
+ /** Horizontal padding theme - controls left and right padding */
3729
3870
  class PxTheme extends PaddingTheme {
3730
3871
  constructor(sizeMap) {
3731
3872
  super(sizeMap);
@@ -3740,6 +3881,7 @@ class PxTheme extends PaddingTheme {
3740
3881
  }
3741
3882
  }
3742
3883
 
3884
+ /** Vertical padding theme - controls top and bottom padding */
3743
3885
  class PyTheme extends PaddingTheme {
3744
3886
  constructor(sizeMap) {
3745
3887
  super(sizeMap);
@@ -3764,8 +3906,17 @@ class AppearanceTheme extends BaseTheme {
3764
3906
  }
3765
3907
  getClasses(extractedKeys) {
3766
3908
  var _a;
3767
- if (this.category === 'border' && (extractedKeys.border === 'noBorder' || extractedKeys.border === undefined)) {
3768
- return [];
3909
+ if (this.category === 'border') {
3910
+ // If noBorder is selected from the border category, don't apply appearance colors
3911
+ if (extractedKeys.border === NO_BORDER) {
3912
+ return [];
3913
+ }
3914
+ // Only apply appearance colors if any border prop is set (and not noBorder)
3915
+ const hasBorderProps = extractedKeys.border !== undefined && extractedKeys.border !== NO_BORDER;
3916
+ // If no border props are set, don't apply appearance colors
3917
+ if (!hasBorderProps) {
3918
+ return [];
3919
+ }
3769
3920
  }
3770
3921
  if (this.category === 'ring' && (extractedKeys.ring === 'noRing' || extractedKeys.ring === undefined)) {
3771
3922
  return [];
@@ -4308,8 +4459,11 @@ class GenericVariantTheme extends BaseTheme {
4308
4459
  class WrapTheme extends BaseTheme {
4309
4460
  constructor() {
4310
4461
  super(...arguments);
4462
+ /** Allow flex items to wrap to new lines */
4311
4463
  this.flexWrap = "flex-wrap";
4464
+ /** Prevent flex items from wrapping - keep on single line */
4312
4465
  this.flexNoWrap = "flex-nowrap";
4466
+ /** Allow flex items to wrap in reverse order */
4313
4467
  this.flexWrapReverse = "flex-wrap-reverse";
4314
4468
  }
4315
4469
  getClasses(extractedKeys) {
@@ -4320,9 +4474,13 @@ class WrapTheme extends BaseTheme {
4320
4474
  class DirectionTheme extends BaseTheme {
4321
4475
  constructor() {
4322
4476
  super(...arguments);
4477
+ /** Horizontal flex direction - items flow left to right */
4323
4478
  this.row = "flex-row";
4479
+ /** Vertical flex direction - items flow top to bottom */
4324
4480
  this.column = "flex-col";
4481
+ /** Reversed horizontal flex direction - items flow right to left */
4325
4482
  this.rowReverse = "flex-row-reverse";
4483
+ /** Reversed vertical flex direction - items flow bottom to top */
4326
4484
  this.columnReverse = "flex-col-reverse";
4327
4485
  }
4328
4486
  getClasses(extractedKeys) {
@@ -4767,6 +4925,7 @@ const mergeDefaults = (baseDefaults, overrideDefaults) => {
4767
4925
  return finalDefaults;
4768
4926
  };
4769
4927
 
4928
+ /** Left padding theme - controls left padding only */
4770
4929
  class PlTheme extends PaddingTheme {
4771
4930
  constructor(sizeMap) {
4772
4931
  super(sizeMap);
@@ -4784,7 +4943,9 @@ class PlTheme extends PaddingTheme {
4784
4943
  class ListStyleTheme extends BaseTheme {
4785
4944
  constructor() {
4786
4945
  super(...arguments);
4946
+ /** Disc list style - bullet points for unordered lists */
4787
4947
  this.disc = 'list-disc';
4948
+ /** Decimal list style - numbers for ordered lists */
4788
4949
  this.decimal = 'list-decimal';
4789
4950
  }
4790
4951
  getClasses(extractedKeys) {
@@ -4876,10 +5037,15 @@ const listTheme = new ComponentTheme("ul", "list-inside", {
4876
5037
  class BreakpointTheme extends BaseTheme {
4877
5038
  constructor() {
4878
5039
  super(...arguments);
5040
+ /** Switch to column layout on extra-small screens and below */
4879
5041
  this.xsCol = "max-xs:flex-col";
5042
+ /** Switch to column layout on small screens and below */
4880
5043
  this.smCol = "max-sm:flex-col";
5044
+ /** Switch to column layout on medium screens and below */
4881
5045
  this.mdCol = "max-md:flex-col";
5046
+ /** Switch to column layout on large screens and below */
4882
5047
  this.lgCol = "max-lg:flex-col";
5048
+ /** Switch to column layout on extra-large screens and below */
4883
5049
  this.xlCol = "max-xl:flex-col";
4884
5050
  }
4885
5051
  getClasses(extractedKeys) {
@@ -5530,7 +5696,14 @@ exports.BLACK = BLACK;
5530
5696
  exports.BLOCK = BLOCK;
5531
5697
  exports.BOLD = BOLD;
5532
5698
  exports.BORDER = BORDER;
5699
+ exports.BORDER_B = BORDER_B;
5700
+ exports.BORDER_KEYS = BORDER_KEYS;
5701
+ exports.BORDER_L = BORDER_L;
5702
+ exports.BORDER_R = BORDER_R;
5703
+ exports.BORDER_T = BORDER_T;
5533
5704
  exports.BORDER_VALUES = BORDER_VALUES;
5705
+ exports.BORDER_X = BORDER_X;
5706
+ exports.BORDER_Y = BORDER_Y;
5534
5707
  exports.BREAKPOINT = BREAKPOINT;
5535
5708
  exports.BREAKPOINT_VALUES = BREAKPOINT_VALUES;
5536
5709
  exports.BUTTON_CATEGORIES = BUTTON_CATEGORIES;