@tempots/beatui 1.2.3 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2850,6 +2850,228 @@ a:focus-visible {
2850
2850
  --card-bg: var(--bg-elevated);
2851
2851
  }
2852
2852
 
2853
+ /* Carousel Component */
2854
+ .bc-carousel {
2855
+ --carousel-arrow-size: 36px;
2856
+ --carousel-arrow-bg: rgba(255, 255, 255, 0.85);
2857
+ --carousel-arrow-bg-hover: rgba(255, 255, 255, 1);
2858
+ --carousel-arrow-color: var(--color-neutral-800, #1f2937);
2859
+ --carousel-arrow-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
2860
+ --carousel-dot-size: 8px;
2861
+ --carousel-dot-gap: 6px;
2862
+ --carousel-dot-color: var(--color-neutral-300, #d1d5db);
2863
+ --carousel-dot-active-color: var(--color-primary-500, #6366f1);
2864
+ --carousel-radius: var(--radius-lg, 12px);
2865
+ --carousel-peek: 0px;
2866
+
2867
+ position: relative;
2868
+ overflow: hidden;
2869
+ border-radius: var(--carousel-radius);
2870
+ outline: none;
2871
+ }
2872
+
2873
+ .bc-carousel:focus-visible {
2874
+ outline: 2px solid var(--color-primary-500, #6366f1);
2875
+ outline-offset: 2px;
2876
+ }
2877
+
2878
+ /* Viewport */
2879
+ .bc-carousel__viewport {
2880
+ overflow: hidden;
2881
+ width: 100%;
2882
+ cursor: grab;
2883
+ }
2884
+
2885
+ .bc-carousel--dragging .bc-carousel__viewport,
2886
+ .bc-carousel__viewport:active {
2887
+ cursor: grabbing;
2888
+ }
2889
+
2890
+ /* Track */
2891
+ .bc-carousel__track {
2892
+ display: flex;
2893
+ will-change: transform;
2894
+ transition-property: transform;
2895
+ transition-timing-function: var(
2896
+ --motion-easing-standard,
2897
+ cubic-bezier(0.2, 0, 0, 1)
2898
+ );
2899
+ }
2900
+
2901
+ /* Fade transition */
2902
+ .bc-carousel--fade .bc-carousel__track {
2903
+ transition-property: none;
2904
+ }
2905
+
2906
+ .bc-carousel--fade .bc-carousel__slide {
2907
+ transition: opacity var(--motion-transition-slow, 0.4s)
2908
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
2909
+ }
2910
+
2911
+ /* Slides */
2912
+ .bc-carousel__slide {
2913
+ flex-shrink: 0;
2914
+ overflow: hidden;
2915
+ user-select: none;
2916
+ -webkit-user-drag: none;
2917
+ }
2918
+
2919
+ .bc-carousel__slide img {
2920
+ pointer-events: none;
2921
+ -webkit-user-drag: none;
2922
+ }
2923
+
2924
+ /* Navigation arrows */
2925
+ .bc-carousel__arrow {
2926
+ position: absolute;
2927
+ top: 50%;
2928
+ transform: translateY(-50%);
2929
+ z-index: 2;
2930
+ display: flex;
2931
+ align-items: center;
2932
+ justify-content: center;
2933
+ width: var(--carousel-arrow-size);
2934
+ height: var(--carousel-arrow-size);
2935
+ border-radius: 50%;
2936
+ border: none;
2937
+ background: var(--carousel-arrow-bg);
2938
+ color: var(--carousel-arrow-color);
2939
+ box-shadow: var(--carousel-arrow-shadow);
2940
+ cursor: pointer;
2941
+ padding: 0;
2942
+ transition: all
2943
+ var(--motion-transition-fast, var(--motion-duration-fast, 0.2s))
2944
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
2945
+ }
2946
+
2947
+ .bc-carousel__arrow:hover:not(:disabled) {
2948
+ background: var(--carousel-arrow-bg-hover);
2949
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
2950
+ transform: translateY(-50%) scale(1.08);
2951
+ }
2952
+
2953
+ .bc-carousel__arrow:active:not(:disabled) {
2954
+ transform: translateY(-50%) scale(0.96);
2955
+ }
2956
+
2957
+ .bc-carousel__arrow .bc-icon {
2958
+ pointer-events: none;
2959
+ }
2960
+
2961
+ .bc-carousel__arrow--prev {
2962
+ left: calc(var(--carousel-peek) + 8px);
2963
+ }
2964
+
2965
+ .bc-carousel__arrow--next {
2966
+ right: calc(var(--carousel-peek) + 8px);
2967
+ }
2968
+
2969
+ /* Disabled arrow state */
2970
+ .bc-carousel__arrow--disabled,
2971
+ .bc-carousel__arrow:disabled {
2972
+ opacity: 0.35;
2973
+ cursor: default;
2974
+ pointer-events: none;
2975
+ }
2976
+
2977
+ /* Dot indicators */
2978
+ .bc-carousel__dots {
2979
+ display: flex;
2980
+ align-items: center;
2981
+ justify-content: center;
2982
+ gap: var(--carousel-dot-gap);
2983
+ padding: 10px 0;
2984
+ }
2985
+
2986
+ .bc-carousel__dot {
2987
+ width: var(--carousel-dot-size);
2988
+ height: var(--carousel-dot-size);
2989
+ border-radius: 50%;
2990
+ border: none;
2991
+ padding: 0;
2992
+ background: var(--carousel-dot-color);
2993
+ cursor: pointer;
2994
+ transition: all
2995
+ var(--motion-transition-fast, var(--motion-duration-fast, 0.2s))
2996
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
2997
+ }
2998
+
2999
+ .bc-carousel__dot:hover {
3000
+ background: var(--color-neutral-400, #9ca3af);
3001
+ transform: scale(1.3);
3002
+ }
3003
+
3004
+ .bc-carousel__dot--active {
3005
+ background: var(--carousel-dot-active-color);
3006
+ transform: scale(1.25);
3007
+ }
3008
+
3009
+ .bc-carousel__dot--active:hover {
3010
+ background: var(--carousel-dot-active-color);
3011
+ }
3012
+
3013
+ /* Progress bar indicator */
3014
+ .bc-carousel__progress {
3015
+ height: 3px;
3016
+ background: var(--carousel-dot-color);
3017
+ border-radius: 2px;
3018
+ margin: 10px 16px;
3019
+ overflow: hidden;
3020
+ }
3021
+
3022
+ .bc-carousel__progress-fill {
3023
+ height: 100%;
3024
+ background: var(--carousel-dot-active-color);
3025
+ border-radius: 2px;
3026
+ transition: width
3027
+ var(--motion-transition-fast, var(--motion-duration-fast, 0.2s))
3028
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
3029
+ }
3030
+
3031
+ /* Fraction indicator */
3032
+ .bc-carousel__fraction {
3033
+ text-align: center;
3034
+ padding: 8px 0;
3035
+ font-size: 0.875rem;
3036
+ color: var(--color-neutral-500, #6b7280);
3037
+ font-variant-numeric: tabular-nums;
3038
+ }
3039
+
3040
+ /* Dark mode */
3041
+ .dark .bc-carousel {
3042
+ --carousel-arrow-bg: rgba(30, 30, 30, 0.85);
3043
+ --carousel-arrow-bg-hover: rgba(40, 40, 40, 1);
3044
+ --carousel-arrow-color: var(--color-neutral-200, #e5e7eb);
3045
+ --carousel-arrow-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
3046
+ --carousel-dot-color: var(--color-neutral-600, #4b5563);
3047
+ --carousel-dot-active-color: var(--color-primary-400, #818cf8);
3048
+ }
3049
+
3050
+ .dark .bc-carousel__dot:hover {
3051
+ background: var(--color-neutral-500, #6b7280);
3052
+ }
3053
+
3054
+ .dark .bc-carousel__fraction {
3055
+ color: var(--color-neutral-400, #9ca3af);
3056
+ }
3057
+
3058
+ /* Reduced motion */
3059
+ @media (prefers-reduced-motion: reduce) {
3060
+ .bc-carousel__track {
3061
+ transition-duration: 0.01ms !important;
3062
+ }
3063
+
3064
+ .bc-carousel--fade .bc-carousel__slide {
3065
+ transition: none !important;
3066
+ }
3067
+
3068
+ .bc-carousel__arrow,
3069
+ .bc-carousel__dot,
3070
+ .bc-carousel__progress-fill {
3071
+ transition: none !important;
3072
+ }
3073
+ }
3074
+
2853
3075
  /* Center Component */
2854
3076
  .bc-center {
2855
3077
  display: flex;
@@ -3322,20 +3544,10 @@ a:focus-visible {
3322
3544
  .bc-dropdown__display {
3323
3545
  flex: 1;
3324
3546
  text-align: left;
3325
- overflow: hidden;
3326
3547
  text-overflow: ellipsis;
3327
3548
  white-space: nowrap;
3328
3549
  }
3329
3550
 
3330
- /* Arrow indicator */
3331
- .bc-dropdown__arrow {
3332
- display: flex;
3333
- align-items: center;
3334
- justify-content: center;
3335
- flex-shrink: 0;
3336
- margin-inline-start: var(--spacing-xs);
3337
- }
3338
-
3339
3551
  /* Listbox (dropdown) */
3340
3552
  .bc-dropdown__listbox {
3341
3553
  background-color: var(--color-white);
@@ -8896,14 +9108,16 @@ a:focus-visible {
8896
9108
  cursor: pointer;
8897
9109
  }
8898
9110
 
8899
- .bc-multi-select__tags {
8900
- position: relative;
9111
+ /* Placeholder when no items selected */
9112
+ .bc-multi-select__placeholder {
9113
+ color: var(--color-neutral-400);
8901
9114
  }
8902
9115
 
8903
- .bc-multi-select__arrow {
8904
- flex-shrink: 0;
8905
- margin-left: auto;
8906
- opacity: 0.5;
9116
+ .bc-multi-select__badge-container {
9117
+ flex-grow: 1;
9118
+ display: flex;
9119
+ gap: var(--spacing-xs);
9120
+ flex-wrap: wrap;
8907
9121
  }
8908
9122
 
8909
9123
  /* Dropdown panel */
@@ -9083,6 +9297,10 @@ a:focus-visible {
9083
9297
  }
9084
9298
 
9085
9299
  /* Dark mode */
9300
+ .dark .bc-multi-select__placeholder {
9301
+ color: var(--color-neutral-500);
9302
+ }
9303
+
9086
9304
  .dark .bc-multi-select__dropdown {
9087
9305
  background: var(--color-base-800);
9088
9306
  border-color: var(--color-base-600);
@@ -15679,10 +15897,10 @@ span.bc-sidebar-link {
15679
15897
  }
15680
15898
  }
15681
15899
 
15682
- /* Advanced Slider Component */
15683
- .bc-advanced-slider {
15684
- --slider-color: var(--color-primary-500);
15685
- --slider-color-dark: var(--color-primary-600);
15900
+ /* Range Slider Component */
15901
+ .bc-range-slider {
15902
+ --rs-color: var(--color-primary-500);
15903
+ --rs-color-dark: var(--color-primary-600);
15686
15904
 
15687
15905
  position: relative;
15688
15906
  display: flex;
@@ -15693,14 +15911,18 @@ span.bc-sidebar-link {
15693
15911
  user-select: none;
15694
15912
  }
15695
15913
 
15696
- .bc-advanced-slider--disabled {
15914
+ .bc-range-slider--disabled {
15697
15915
  opacity: 0.5;
15698
15916
  pointer-events: none;
15699
15917
  cursor: not-allowed;
15700
15918
  }
15701
15919
 
15920
+ .bc-range-slider--readonly {
15921
+ pointer-events: none;
15922
+ }
15923
+
15702
15924
  /* Track */
15703
- .bc-advanced-slider__track {
15925
+ .bc-range-slider__track {
15704
15926
  position: relative;
15705
15927
  width: 100%;
15706
15928
  background-color: var(--color-gray-200);
@@ -15708,17 +15930,25 @@ span.bc-sidebar-link {
15708
15930
  }
15709
15931
 
15710
15932
  /* Filled portion */
15711
- .bc-advanced-slider__fill {
15933
+ .bc-range-slider__fill {
15712
15934
  position: absolute;
15713
15935
  top: 0;
15714
15936
  height: 100%;
15715
- background-color: var(--slider-color);
15937
+ background-color: var(--rs-color);
15716
15938
  border-radius: var(--radius-full);
15717
15939
  pointer-events: none;
15718
15940
  }
15719
15941
 
15720
- /* Thumb container (for positioning value label + thumb) */
15721
- .bc-advanced-slider__thumb-container {
15942
+ /* Segment overrides */
15943
+ .bc-range-slider__segment {
15944
+ position: absolute;
15945
+ top: 50%;
15946
+ transform: translateY(-50%);
15947
+ border-radius: var(--radius-full);
15948
+ }
15949
+
15950
+ /* Thumb container */
15951
+ .bc-range-slider__thumb-container {
15722
15952
  position: absolute;
15723
15953
  top: 50%;
15724
15954
  transform: translate(-50%, -50%);
@@ -15729,9 +15959,9 @@ span.bc-sidebar-link {
15729
15959
  }
15730
15960
 
15731
15961
  /* Thumb */
15732
- .bc-advanced-slider__thumb {
15962
+ .bc-range-slider__thumb {
15733
15963
  background-color: var(--color-white);
15734
- border: var(--border-width-medium) solid var(--slider-color);
15964
+ border: var(--border-width-medium) solid var(--rs-color);
15735
15965
  border-radius: var(--radius-full);
15736
15966
  cursor: grab;
15737
15967
  box-shadow: var(--shadow-sm);
@@ -15740,23 +15970,23 @@ span.bc-sidebar-link {
15740
15970
  transform var(--motion-transition-fast) var(--motion-easing-standard);
15741
15971
  }
15742
15972
 
15743
- .bc-advanced-slider__thumb:hover {
15973
+ .bc-range-slider__thumb:hover {
15744
15974
  box-shadow: var(--shadow-md);
15745
15975
  transform: scale(1.15);
15746
15976
  }
15747
15977
 
15748
- .bc-advanced-slider__thumb:active {
15978
+ .bc-range-slider__thumb:active {
15749
15979
  cursor: grabbing;
15750
15980
  transform: scale(1.2);
15751
15981
  }
15752
15982
 
15753
- .bc-advanced-slider__thumb:focus-visible {
15983
+ .bc-range-slider__thumb:focus-visible {
15754
15984
  outline: var(--outline-width-focus) solid var(--color-primary-500);
15755
15985
  outline-offset: 2px;
15756
15986
  }
15757
15987
 
15758
- /* Custom thumb wrapper — no default visual styling */
15759
- .bc-advanced-slider__thumb-custom {
15988
+ /* Custom thumb wrapper */
15989
+ .bc-range-slider__thumb-custom {
15760
15990
  cursor: grab;
15761
15991
  display: flex;
15762
15992
  align-items: center;
@@ -15764,20 +15994,20 @@ span.bc-sidebar-link {
15764
15994
  outline: none;
15765
15995
  }
15766
15996
 
15767
- .bc-advanced-slider__thumb-custom:active {
15997
+ .bc-range-slider__thumb-custom:active {
15768
15998
  cursor: grabbing;
15769
15999
  }
15770
16000
 
15771
- .bc-advanced-slider__thumb-custom:focus-visible {
16001
+ .bc-range-slider__thumb-custom:focus-visible {
15772
16002
  outline: var(--outline-width-focus) solid var(--color-primary-500);
15773
16003
  outline-offset: 2px;
15774
16004
  }
15775
16005
 
15776
16006
  /* Value label */
15777
- .bc-advanced-slider__value-label {
16007
+ .bc-range-slider__value-label {
15778
16008
  position: absolute;
15779
16009
  white-space: nowrap;
15780
- background-color: var(--slider-color);
16010
+ background-color: var(--rs-color);
15781
16011
  color: var(--color-white);
15782
16012
  border-radius: var(--radius-sm);
15783
16013
  font-weight: var(--font-weight-semibold);
@@ -15787,7 +16017,7 @@ span.bc-sidebar-link {
15787
16017
  }
15788
16018
 
15789
16019
  /* Ticks container */
15790
- .bc-advanced-slider__ticks {
16020
+ .bc-range-slider__ticks {
15791
16021
  position: absolute;
15792
16022
  top: 0;
15793
16023
  left: 0;
@@ -15797,7 +16027,7 @@ span.bc-sidebar-link {
15797
16027
  }
15798
16028
 
15799
16029
  /* Individual tick */
15800
- .bc-advanced-slider__tick {
16030
+ .bc-range-slider__tick {
15801
16031
  position: absolute;
15802
16032
  top: 50%;
15803
16033
  transform: translateX(-50%);
@@ -15806,7 +16036,7 @@ span.bc-sidebar-link {
15806
16036
  align-items: center;
15807
16037
  }
15808
16038
 
15809
- .bc-advanced-slider__tick::before {
16039
+ .bc-range-slider__tick::before {
15810
16040
  content: '';
15811
16041
  display: block;
15812
16042
  background-color: var(--color-gray-400);
@@ -15814,7 +16044,7 @@ span.bc-sidebar-link {
15814
16044
  }
15815
16045
 
15816
16046
  /* Tick label */
15817
- .bc-advanced-slider__tick-label {
16047
+ .bc-range-slider__tick-label {
15818
16048
  position: absolute;
15819
16049
  white-space: nowrap;
15820
16050
  color: var(--text-muted);
@@ -15823,164 +16053,283 @@ span.bc-sidebar-link {
15823
16053
  /* ── Size variants ── */
15824
16054
 
15825
16055
  /* xs */
15826
- .bc-advanced-slider--size-xs {
16056
+ .bc-range-slider--size-xs {
15827
16057
  padding: var(--spacing-lg) var(--spacing-smh) var(--spacing-md);
15828
16058
  }
15829
- .bc-advanced-slider--size-xs .bc-advanced-slider__track {
16059
+ .bc-range-slider--size-xs .bc-range-slider__track {
15830
16060
  height: var(--spacing-xs);
15831
16061
  }
15832
- .bc-advanced-slider--size-xs .bc-advanced-slider__thumb {
16062
+ .bc-range-slider--size-xs .bc-range-slider__thumb {
15833
16063
  width: calc(var(--spacing-base) * 2.5);
15834
16064
  height: calc(var(--spacing-base) * 2.5);
15835
16065
  }
15836
- .bc-advanced-slider--size-xs .bc-advanced-slider__value-label {
16066
+ .bc-range-slider--size-xs .bc-range-slider__value-label {
15837
16067
  font-size: var(--font-size-2xs);
15838
16068
  padding: var(--spacing-px) var(--spacing-sm);
15839
16069
  bottom: calc(100% + var(--spacing-sm));
15840
16070
  }
15841
- .bc-advanced-slider--size-xs .bc-advanced-slider__tick::before {
16071
+ .bc-range-slider--size-xs .bc-range-slider__tick::before {
15842
16072
  width: var(--spacing-px);
15843
16073
  height: var(--spacing-smh);
15844
16074
  margin-top: var(--spacing-sm);
15845
16075
  }
15846
- .bc-advanced-slider--size-xs .bc-advanced-slider__tick-label {
16076
+ .bc-range-slider--size-xs .bc-range-slider__tick-label {
15847
16077
  top: calc(var(--spacing-base) * 2.5);
15848
16078
  font-size: var(--font-size-2xs);
15849
16079
  }
15850
16080
 
15851
16081
  /* sm */
15852
- .bc-advanced-slider--size-sm {
16082
+ .bc-range-slider--size-sm {
15853
16083
  padding: var(--spacing-xl) var(--spacing-md) var(--spacing-lg);
15854
16084
  }
15855
- .bc-advanced-slider--size-sm .bc-advanced-slider__track {
16085
+ .bc-range-slider--size-sm .bc-range-slider__track {
15856
16086
  height: calc(var(--spacing-base) * 0.75);
15857
16087
  }
15858
- .bc-advanced-slider--size-sm .bc-advanced-slider__thumb {
16088
+ .bc-range-slider--size-sm .bc-range-slider__thumb {
15859
16089
  width: calc(var(--spacing-base) * 3.5);
15860
16090
  height: calc(var(--spacing-base) * 3.5);
15861
16091
  }
15862
- .bc-advanced-slider--size-sm .bc-advanced-slider__value-label {
16092
+ .bc-range-slider--size-sm .bc-range-slider__value-label {
15863
16093
  font-size: var(--font-size-xs);
15864
16094
  padding: var(--spacing-xs) calc(var(--spacing-base) * 1.25);
15865
16095
  bottom: calc(100% + calc(var(--spacing-base) * 1.25));
15866
16096
  }
15867
- .bc-advanced-slider--size-sm .bc-advanced-slider__tick::before {
16097
+ .bc-range-slider--size-sm .bc-range-slider__tick::before {
15868
16098
  width: var(--spacing-px);
15869
16099
  height: var(--spacing-md);
15870
16100
  margin-top: calc(var(--spacing-base) * 1.25);
15871
16101
  }
15872
- .bc-advanced-slider--size-sm .bc-advanced-slider__tick-label {
16102
+ .bc-range-slider--size-sm .bc-range-slider__tick-label {
15873
16103
  top: calc(var(--spacing-base) * 3.5);
15874
16104
  font-size: var(--font-size-2xs);
15875
16105
  }
15876
16106
 
15877
16107
  /* md (default) */
15878
- .bc-advanced-slider--size-md {
16108
+ .bc-range-slider--size-md {
15879
16109
  padding: var(--spacing-2xl) calc(var(--spacing-base) * 2.5) var(--spacing-xl);
15880
16110
  }
15881
- .bc-advanced-slider--size-md .bc-advanced-slider__track {
16111
+ .bc-range-slider--size-md .bc-range-slider__track {
15882
16112
  height: var(--spacing-sm);
15883
16113
  }
15884
- .bc-advanced-slider--size-md .bc-advanced-slider__thumb {
16114
+ .bc-range-slider--size-md .bc-range-slider__thumb {
15885
16115
  width: calc(var(--spacing-base) * 4.5);
15886
16116
  height: calc(var(--spacing-base) * 4.5);
15887
16117
  }
15888
- .bc-advanced-slider--size-md .bc-advanced-slider__value-label {
16118
+ .bc-range-slider--size-md .bc-range-slider__value-label {
15889
16119
  font-size: var(--font-size-sm);
15890
16120
  padding: var(--spacing-xs) var(--spacing-smh);
15891
16121
  bottom: calc(100% + var(--spacing-smh));
15892
16122
  }
15893
- .bc-advanced-slider--size-md .bc-advanced-slider__tick::before {
16123
+ .bc-range-slider--size-md .bc-range-slider__tick::before {
15894
16124
  width: var(--spacing-xs);
15895
16125
  height: calc(var(--spacing-base) * 2.5);
15896
16126
  margin-top: var(--spacing-smh);
15897
16127
  }
15898
- .bc-advanced-slider--size-md .bc-advanced-slider__tick-label {
16128
+ .bc-range-slider--size-md .bc-range-slider__tick-label {
15899
16129
  top: calc(var(--spacing-base) * 4.5);
15900
16130
  font-size: var(--font-size-xs);
15901
16131
  }
15902
16132
 
15903
16133
  /* lg */
15904
- .bc-advanced-slider--size-lg {
16134
+ .bc-range-slider--size-lg {
15905
16135
  padding: var(--spacing-3xl) var(--spacing-mdh) var(--spacing-2xl);
15906
16136
  }
15907
- .bc-advanced-slider--size-lg .bc-advanced-slider__track {
16137
+ .bc-range-slider--size-lg .bc-range-slider__track {
15908
16138
  height: var(--spacing-smh);
15909
16139
  }
15910
- .bc-advanced-slider--size-lg .bc-advanced-slider__thumb {
16140
+ .bc-range-slider--size-lg .bc-range-slider__thumb {
15911
16141
  width: calc(var(--spacing-base) * 5.5);
15912
16142
  height: calc(var(--spacing-base) * 5.5);
15913
16143
  }
15914
- .bc-advanced-slider--size-lg .bc-advanced-slider__value-label {
16144
+ .bc-range-slider--size-lg .bc-range-slider__value-label {
15915
16145
  font-size: var(--font-size-md);
15916
16146
  padding: calc(var(--spacing-base) * 0.75) var(--spacing-md);
15917
16147
  bottom: calc(100% + var(--spacing-md));
15918
16148
  }
15919
- .bc-advanced-slider--size-lg .bc-advanced-slider__tick::before {
16149
+ .bc-range-slider--size-lg .bc-range-slider__tick::before {
15920
16150
  width: var(--spacing-xs);
15921
16151
  height: var(--spacing-mdh);
15922
16152
  margin-top: var(--spacing-md);
15923
16153
  }
15924
- .bc-advanced-slider--size-lg .bc-advanced-slider__tick-label {
16154
+ .bc-range-slider--size-lg .bc-range-slider__tick-label {
15925
16155
  top: calc(var(--spacing-base) * 5.5);
15926
16156
  font-size: var(--font-size-sm);
15927
16157
  }
15928
16158
 
15929
16159
  /* xl */
15930
- .bc-advanced-slider--size-xl {
16160
+ .bc-range-slider--size-xl {
15931
16161
  padding: var(--spacing-4xl) calc(var(--spacing-base) * 3.5) var(--spacing-3xl);
15932
16162
  }
15933
- .bc-advanced-slider--size-xl .bc-advanced-slider__track {
16163
+ .bc-range-slider--size-xl .bc-range-slider__track {
15934
16164
  height: var(--spacing-md);
15935
16165
  }
15936
- .bc-advanced-slider--size-xl .bc-advanced-slider__thumb {
16166
+ .bc-range-slider--size-xl .bc-range-slider__thumb {
15937
16167
  width: calc(var(--spacing-base) * 6.5);
15938
16168
  height: calc(var(--spacing-base) * 6.5);
15939
16169
  }
15940
- .bc-advanced-slider--size-xl .bc-advanced-slider__value-label {
16170
+ .bc-range-slider--size-xl .bc-range-slider__value-label {
15941
16171
  font-size: var(--font-size-lg);
15942
16172
  padding: var(--spacing-sm) calc(var(--spacing-base) * 2.5);
15943
16173
  bottom: calc(100% + calc(var(--spacing-base) * 2.5));
15944
16174
  }
15945
- .bc-advanced-slider--size-xl .bc-advanced-slider__tick::before {
16175
+ .bc-range-slider--size-xl .bc-range-slider__tick::before {
15946
16176
  width: var(--spacing-xs);
15947
16177
  height: calc(var(--spacing-base) * 3.5);
15948
16178
  margin-top: calc(var(--spacing-base) * 2.5);
15949
16179
  }
15950
- .bc-advanced-slider--size-xl .bc-advanced-slider__tick-label {
16180
+ .bc-range-slider--size-xl .bc-range-slider__tick-label {
15951
16181
  top: calc(var(--spacing-base) * 6.5);
15952
16182
  font-size: var(--font-size-md);
15953
16183
  }
15954
16184
 
16185
+ /* ── Vertical orientation ── */
16186
+
16187
+ .bc-range-slider--vertical {
16188
+ width: auto;
16189
+ height: 100%;
16190
+ min-height: 120px;
16191
+ touch-action: none;
16192
+ }
16193
+
16194
+ .bc-range-slider--vertical .bc-range-slider__track {
16195
+ width: auto;
16196
+ flex: 1;
16197
+ min-height: 60px;
16198
+ }
16199
+
16200
+ /* Fill: runs from bottom upward */
16201
+ .bc-range-slider--vertical .bc-range-slider__fill {
16202
+ left: 0;
16203
+ width: 100%;
16204
+ top: auto;
16205
+ bottom: 0;
16206
+ height: auto;
16207
+ }
16208
+
16209
+ /* Segments: vertical positioning, override horizontal transform */
16210
+ .bc-range-slider--vertical .bc-range-slider__segment {
16211
+ left: 0;
16212
+ width: 100%;
16213
+ top: auto;
16214
+ transform: none;
16215
+ }
16216
+
16217
+ /* Thumb container: centered horizontally, positioned via bottom */
16218
+ .bc-range-slider--vertical .bc-range-slider__thumb-container {
16219
+ left: 50%;
16220
+ top: auto;
16221
+ transform: translate(-50%, 50%);
16222
+ }
16223
+
16224
+ /* Value label: to the right of thumb in vertical mode */
16225
+ .bc-range-slider--vertical .bc-range-slider__value-label {
16226
+ bottom: auto;
16227
+ left: calc(100% + var(--spacing-sm));
16228
+ top: 50%;
16229
+ transform: translateY(-50%);
16230
+ }
16231
+
16232
+ /* Ticks: full height */
16233
+ .bc-range-slider--vertical .bc-range-slider__ticks {
16234
+ width: 100%;
16235
+ height: 100%;
16236
+ }
16237
+
16238
+ /* Tick: positioned via bottom, centered vertically */
16239
+ .bc-range-slider--vertical .bc-range-slider__tick {
16240
+ left: 50%;
16241
+ top: auto;
16242
+ transform: translateY(50%);
16243
+ flex-direction: row;
16244
+ }
16245
+
16246
+ .bc-range-slider--vertical .bc-range-slider__tick::before {
16247
+ margin-top: 0;
16248
+ margin-left: var(--spacing-sm);
16249
+ }
16250
+
16251
+ /* Tick label: to the right in vertical mode */
16252
+ .bc-range-slider--vertical .bc-range-slider__tick-label {
16253
+ top: auto;
16254
+ left: calc(100% + var(--spacing-sm));
16255
+ }
16256
+
16257
+ /* Vertical size variants — swap track width/height, adjust padding */
16258
+
16259
+ /* xs vertical */
16260
+ .bc-range-slider--vertical.bc-range-slider--size-xs {
16261
+ padding: var(--spacing-smh) var(--spacing-lg) var(--spacing-smh)
16262
+ var(--spacing-md);
16263
+ }
16264
+ .bc-range-slider--vertical.bc-range-slider--size-xs .bc-range-slider__track {
16265
+ width: var(--spacing-xs);
16266
+ }
16267
+
16268
+ /* sm vertical */
16269
+ .bc-range-slider--vertical.bc-range-slider--size-sm {
16270
+ padding: var(--spacing-md) var(--spacing-xl) var(--spacing-lg)
16271
+ var(--spacing-lg);
16272
+ }
16273
+ .bc-range-slider--vertical.bc-range-slider--size-sm .bc-range-slider__track {
16274
+ width: calc(var(--spacing-base) * 0.75);
16275
+ }
16276
+
16277
+ /* md vertical */
16278
+ .bc-range-slider--vertical.bc-range-slider--size-md {
16279
+ padding: var(--spacing-xl) var(--spacing-2xl) var(--spacing-xl)
16280
+ calc(var(--spacing-base) * 2.5);
16281
+ }
16282
+ .bc-range-slider--vertical.bc-range-slider--size-md .bc-range-slider__track {
16283
+ width: var(--spacing-sm);
16284
+ }
16285
+
16286
+ /* lg vertical */
16287
+ .bc-range-slider--vertical.bc-range-slider--size-lg {
16288
+ padding: var(--spacing-2xl) var(--spacing-3xl) var(--spacing-2xl)
16289
+ var(--spacing-mdh);
16290
+ }
16291
+ .bc-range-slider--vertical.bc-range-slider--size-lg .bc-range-slider__track {
16292
+ width: var(--spacing-smh);
16293
+ }
16294
+
16295
+ /* xl vertical */
16296
+ .bc-range-slider--vertical.bc-range-slider--size-xl {
16297
+ padding: var(--spacing-3xl) var(--spacing-4xl) var(--spacing-3xl)
16298
+ calc(var(--spacing-base) * 3.5);
16299
+ }
16300
+ .bc-range-slider--vertical.bc-range-slider--size-xl .bc-range-slider__track {
16301
+ width: var(--spacing-md);
16302
+ }
16303
+
15955
16304
  /* Dark mode */
15956
- .dark .bc-advanced-slider__track {
16305
+ .dark .bc-range-slider__track {
15957
16306
  background-color: var(--bg-subtle);
15958
16307
  }
15959
16308
 
15960
- .dark .bc-advanced-slider__fill {
15961
- background-color: var(--slider-color-dark);
16309
+ .dark .bc-range-slider__fill {
16310
+ background-color: var(--rs-color-dark);
15962
16311
  }
15963
16312
 
15964
- .dark .bc-advanced-slider__thumb {
16313
+ .dark .bc-range-slider__thumb {
15965
16314
  background-color: var(--text-normal);
15966
- border-color: var(--slider-color-dark);
16315
+ border-color: var(--rs-color-dark);
15967
16316
  }
15968
16317
 
15969
- .dark .bc-advanced-slider__value-label {
15970
- background-color: var(--slider-color-dark);
16318
+ .dark .bc-range-slider__value-label {
16319
+ background-color: var(--rs-color-dark);
15971
16320
  }
15972
16321
 
15973
- .dark .bc-advanced-slider__tick::before {
16322
+ .dark .bc-range-slider__tick::before {
15974
16323
  background-color: var(--color-gray-500);
15975
16324
  }
15976
16325
 
15977
- .dark .bc-advanced-slider__tick-label {
16326
+ .dark .bc-range-slider__tick-label {
15978
16327
  color: var(--text-muted);
15979
16328
  }
15980
16329
 
15981
16330
  /* Reduced motion */
15982
16331
  @media (prefers-reduced-motion: reduce) {
15983
- .bc-advanced-slider__thumb {
16332
+ .bc-range-slider__thumb {
15984
16333
  transition: none;
15985
16334
  }
15986
16335
  }
@@ -16352,6 +16701,341 @@ span.bc-sidebar-link {
16352
16701
  color: var(--text-muted);
16353
16702
  }
16354
16703
 
16704
+ /* NavigationProgress Component - Top/bottom viewport progress bar for navigation/loading */
16705
+
16706
+ .bc-navigation-progress {
16707
+ --nav-progress-fill: var(--color-primary-500);
16708
+ --nav-progress-fill-dark: var(--color-primary-600);
16709
+
16710
+ position: fixed;
16711
+ left: 0;
16712
+ right: 0;
16713
+ height: 3px;
16714
+ z-index: var(--z-index-maximum, 1000);
16715
+ pointer-events: none;
16716
+ overflow: hidden;
16717
+ }
16718
+
16719
+ .bc-navigation-progress--top {
16720
+ top: 0;
16721
+ }
16722
+
16723
+ .bc-navigation-progress--bottom {
16724
+ bottom: 0;
16725
+ }
16726
+
16727
+ /* Progress bar fill */
16728
+ .bc-navigation-progress__bar {
16729
+ position: absolute;
16730
+ top: 0;
16731
+ left: 0;
16732
+ width: 100%;
16733
+ height: 100%;
16734
+ background-color: var(--nav-progress-fill);
16735
+ will-change: transform;
16736
+ }
16737
+
16738
+ .bc-navigation-progress__bar--done {
16739
+ opacity: 0;
16740
+ transition: opacity 0.2s ease;
16741
+ }
16742
+
16743
+ /* Peg - the glowing leading edge */
16744
+ .bc-navigation-progress__peg {
16745
+ position: absolute;
16746
+ right: 0;
16747
+ top: 0;
16748
+ width: 100px;
16749
+ height: 100%;
16750
+ box-shadow:
16751
+ 0 0 10px var(--nav-progress-fill),
16752
+ 0 0 5px var(--nav-progress-fill);
16753
+ opacity: 1;
16754
+ transform: rotate(3deg) translateY(-4px);
16755
+ }
16756
+
16757
+ /* Spinner */
16758
+ .bc-navigation-progress__spinner {
16759
+ position: fixed;
16760
+ top: 15px;
16761
+ right: 15px;
16762
+ z-index: calc(var(--z-index-maximum, 1000) + 1);
16763
+ pointer-events: none;
16764
+ }
16765
+
16766
+ .bc-navigation-progress__spinner--bottom {
16767
+ top: auto;
16768
+ bottom: 15px;
16769
+ }
16770
+
16771
+ .bc-navigation-progress__spinner-icon {
16772
+ width: 18px;
16773
+ height: 18px;
16774
+ border: 2px solid transparent;
16775
+ border-top-color: var(--nav-progress-fill);
16776
+ border-left-color: var(--nav-progress-fill);
16777
+ border-radius: 50%;
16778
+ animation: bc-nav-progress-spin 0.4s linear infinite;
16779
+ }
16780
+
16781
+ @keyframes bc-nav-progress-spin {
16782
+ from {
16783
+ transform: rotate(0deg);
16784
+ }
16785
+ to {
16786
+ transform: rotate(360deg);
16787
+ }
16788
+ }
16789
+
16790
+ /* Dark mode */
16791
+ .dark .bc-navigation-progress__bar {
16792
+ background-color: var(--nav-progress-fill-dark);
16793
+ }
16794
+
16795
+ .dark .bc-navigation-progress__peg {
16796
+ box-shadow:
16797
+ 0 0 10px var(--nav-progress-fill-dark),
16798
+ 0 0 5px var(--nav-progress-fill-dark);
16799
+ }
16800
+
16801
+ .dark .bc-navigation-progress__spinner-icon {
16802
+ border-top-color: var(--nav-progress-fill-dark);
16803
+ border-left-color: var(--nav-progress-fill-dark);
16804
+ }
16805
+
16806
+ /* Accessibility: respect reduced motion preference */
16807
+ @media (prefers-reduced-motion: reduce) {
16808
+ .bc-navigation-progress__bar {
16809
+ transition: none !important;
16810
+ }
16811
+
16812
+ .bc-navigation-progress__bar--done {
16813
+ transition: none;
16814
+ }
16815
+
16816
+ .bc-navigation-progress__spinner-icon {
16817
+ animation: none;
16818
+ }
16819
+ }
16820
+
16821
+ /* High contrast mode */
16822
+ @media (prefers-contrast: high) {
16823
+ .bc-navigation-progress__bar {
16824
+ outline: var(--outline-width-default, 2px) solid currentColor;
16825
+ outline-offset: calc(-1 * var(--outline-width-default, 2px));
16826
+ }
16827
+ }
16828
+
16829
+ /* OnboardingTour Component - Step-by-step guided tour with spotlight overlay */
16830
+
16831
+ .bc-onboarding-tour {
16832
+ position: fixed;
16833
+ inset: 0;
16834
+ z-index: var(--z-index-modal, 600);
16835
+ pointer-events: none;
16836
+ transition: opacity 0.2s
16837
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
16838
+ }
16839
+
16840
+ /* SVG backdrop with spotlight cutout */
16841
+ .bc-onboarding-tour__backdrop {
16842
+ position: fixed;
16843
+ inset: 0;
16844
+ width: 100%;
16845
+ height: 100%;
16846
+ pointer-events: all;
16847
+ cursor: default;
16848
+ }
16849
+
16850
+ .bc-onboarding-tour__backdrop--interactive {
16851
+ pointer-events: none;
16852
+ }
16853
+
16854
+ .bc-onboarding-tour__mask {
16855
+ fill: rgba(0, 0, 0, 0.5);
16856
+ transition: d 0.3s var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
16857
+ }
16858
+
16859
+ /* Tooltip */
16860
+ .bc-onboarding-tour__tooltip {
16861
+ position: fixed;
16862
+ width: 320px;
16863
+ max-width: calc(100vw - 16px);
16864
+ background-color: var(--bg-surface, #fff);
16865
+ border-radius: var(--radius-lg, 12px);
16866
+ box-shadow: var(
16867
+ --shadow-xl,
16868
+ 0 20px 25px -5px rgba(0, 0, 0, 0.1),
16869
+ 0 8px 10px -6px rgba(0, 0, 0, 0.1)
16870
+ );
16871
+ pointer-events: all;
16872
+ z-index: 1;
16873
+ transition:
16874
+ top 0.3s var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),
16875
+ left 0.3s var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
16876
+ }
16877
+
16878
+ /* Arrow indicator */
16879
+ .bc-onboarding-tour__arrow {
16880
+ position: absolute;
16881
+ width: 12px;
16882
+ height: 12px;
16883
+ background-color: var(--bg-surface, #fff);
16884
+ transform: rotate(45deg);
16885
+ }
16886
+
16887
+ .bc-onboarding-tour__tooltip--top .bc-onboarding-tour__arrow {
16888
+ bottom: -6px;
16889
+ left: 50%;
16890
+ margin-left: -6px;
16891
+ }
16892
+
16893
+ .bc-onboarding-tour__tooltip--bottom .bc-onboarding-tour__arrow {
16894
+ top: -6px;
16895
+ left: 50%;
16896
+ margin-left: -6px;
16897
+ }
16898
+
16899
+ .bc-onboarding-tour__tooltip--left .bc-onboarding-tour__arrow {
16900
+ right: -6px;
16901
+ top: 50%;
16902
+ margin-top: -6px;
16903
+ }
16904
+
16905
+ .bc-onboarding-tour__tooltip--right .bc-onboarding-tour__arrow {
16906
+ left: -6px;
16907
+ top: 50%;
16908
+ margin-top: -6px;
16909
+ }
16910
+
16911
+ /* Content area */
16912
+ .bc-onboarding-tour__content {
16913
+ padding: var(--spacing-lg, 16px);
16914
+ display: flex;
16915
+ flex-direction: column;
16916
+ gap: var(--spacing-sm, 8px);
16917
+ }
16918
+
16919
+ /* Step indicator */
16920
+ .bc-onboarding-tour__step-indicator {
16921
+ font-family: var(
16922
+ --font-family-default-ui,
16923
+ var(--font-ui, var(--font-body, var(--font-family-sans)))
16924
+ );
16925
+ font-size: var(--font-size-xs, 12px);
16926
+ color: var(--text-muted, #6b7280);
16927
+ font-weight: 500;
16928
+ text-transform: uppercase;
16929
+ letter-spacing: 0.05em;
16930
+ }
16931
+
16932
+ /* Title */
16933
+ .bc-onboarding-tour__title {
16934
+ font-family: var(
16935
+ --font-family-default-ui,
16936
+ var(--font-ui, var(--font-body, var(--font-family-sans)))
16937
+ );
16938
+ font-size: var(--font-size-lg, 18px);
16939
+ font-weight: 600;
16940
+ color: var(--text-default, #111827);
16941
+ margin: 0;
16942
+ line-height: var(--line-height-tight, 1.25);
16943
+ }
16944
+
16945
+ /* Description */
16946
+ .bc-onboarding-tour__description {
16947
+ font-family: var(
16948
+ --font-family-default-ui,
16949
+ var(--font-ui, var(--font-body, var(--font-family-sans)))
16950
+ );
16951
+ font-size: var(--font-size-sm, 14px);
16952
+ color: var(--text-muted, #6b7280);
16953
+ margin: 0;
16954
+ line-height: var(--line-height-normal, 1.5);
16955
+ }
16956
+
16957
+ /* Body (custom content) */
16958
+ .bc-onboarding-tour__body {
16959
+ font-size: var(--font-size-sm, 14px);
16960
+ color: var(--text-default, #111827);
16961
+ }
16962
+
16963
+ /* Navigation */
16964
+ .bc-onboarding-tour__nav {
16965
+ display: flex;
16966
+ align-items: center;
16967
+ justify-content: space-between;
16968
+ margin-top: var(--spacing-sm, 8px);
16969
+ }
16970
+
16971
+ .bc-onboarding-tour__nav-left {
16972
+ display: flex;
16973
+ gap: var(--spacing-sm, 8px);
16974
+ }
16975
+
16976
+ .bc-onboarding-tour__nav-right {
16977
+ display: flex;
16978
+ gap: var(--spacing-sm, 8px);
16979
+ }
16980
+
16981
+ /* Dark mode */
16982
+ .dark .bc-onboarding-tour__mask {
16983
+ fill: rgba(0, 0, 0, 0.7);
16984
+ }
16985
+
16986
+ .dark .bc-onboarding-tour__tooltip {
16987
+ background-color: var(--bg-surface-dark, #1f2937);
16988
+ box-shadow:
16989
+ 0 20px 25px -5px rgba(0, 0, 0, 0.3),
16990
+ 0 8px 10px -6px rgba(0, 0, 0, 0.3);
16991
+ }
16992
+
16993
+ .dark .bc-onboarding-tour__arrow {
16994
+ background-color: var(--bg-surface-dark, #1f2937);
16995
+ }
16996
+
16997
+ .dark .bc-onboarding-tour__title {
16998
+ color: var(--text-default-dark, #f9fafb);
16999
+ }
17000
+
17001
+ .dark .bc-onboarding-tour__description {
17002
+ color: var(--text-muted-dark, #9ca3af);
17003
+ }
17004
+
17005
+ .dark .bc-onboarding-tour__step-indicator {
17006
+ color: var(--text-muted-dark, #9ca3af);
17007
+ }
17008
+
17009
+ .dark .bc-onboarding-tour__body {
17010
+ color: var(--text-default-dark, #f9fafb);
17011
+ }
17012
+
17013
+ /* Accessibility: respect reduced motion preference */
17014
+ @media (prefers-reduced-motion: reduce) {
17015
+ .bc-onboarding-tour {
17016
+ transition: none;
17017
+ }
17018
+
17019
+ .bc-onboarding-tour__mask {
17020
+ transition: none;
17021
+ }
17022
+
17023
+ .bc-onboarding-tour__tooltip {
17024
+ transition: none;
17025
+ }
17026
+ }
17027
+
17028
+ /* High contrast mode */
17029
+ @media (prefers-contrast: high) {
17030
+ .bc-onboarding-tour__tooltip {
17031
+ outline: var(--outline-width-default, 2px) solid currentColor;
17032
+ }
17033
+
17034
+ .bc-onboarding-tour__mask {
17035
+ fill: rgba(0, 0, 0, 0.8);
17036
+ }
17037
+ }
17038
+
16355
17039
  /* Sortable Header */
16356
17040
  .bc-sortable-header {
16357
17041
  cursor: pointer;