@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.
package/dist/beatui.css CHANGED
@@ -3184,6 +3184,228 @@ a:focus-visible {
3184
3184
  --card-bg: var(--bg-elevated);
3185
3185
  }
3186
3186
 
3187
+ /* Carousel Component */
3188
+ .bc-carousel {
3189
+ --carousel-arrow-size: 36px;
3190
+ --carousel-arrow-bg: rgba(255, 255, 255, 0.85);
3191
+ --carousel-arrow-bg-hover: rgba(255, 255, 255, 1);
3192
+ --carousel-arrow-color: var(--color-neutral-800, #1f2937);
3193
+ --carousel-arrow-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
3194
+ --carousel-dot-size: 8px;
3195
+ --carousel-dot-gap: 6px;
3196
+ --carousel-dot-color: var(--color-neutral-300, #d1d5db);
3197
+ --carousel-dot-active-color: var(--color-primary-500, #6366f1);
3198
+ --carousel-radius: var(--radius-lg, 12px);
3199
+ --carousel-peek: 0px;
3200
+
3201
+ position: relative;
3202
+ overflow: hidden;
3203
+ border-radius: var(--carousel-radius);
3204
+ outline: none;
3205
+ }
3206
+
3207
+ .bc-carousel:focus-visible {
3208
+ outline: 2px solid var(--color-primary-500, #6366f1);
3209
+ outline-offset: 2px;
3210
+ }
3211
+
3212
+ /* Viewport */
3213
+ .bc-carousel__viewport {
3214
+ overflow: hidden;
3215
+ width: 100%;
3216
+ cursor: grab;
3217
+ }
3218
+
3219
+ .bc-carousel--dragging .bc-carousel__viewport,
3220
+ .bc-carousel__viewport:active {
3221
+ cursor: grabbing;
3222
+ }
3223
+
3224
+ /* Track */
3225
+ .bc-carousel__track {
3226
+ display: flex;
3227
+ will-change: transform;
3228
+ transition-property: transform;
3229
+ transition-timing-function: var(
3230
+ --motion-easing-standard,
3231
+ cubic-bezier(0.2, 0, 0, 1)
3232
+ );
3233
+ }
3234
+
3235
+ /* Fade transition */
3236
+ .bc-carousel--fade .bc-carousel__track {
3237
+ transition-property: none;
3238
+ }
3239
+
3240
+ .bc-carousel--fade .bc-carousel__slide {
3241
+ transition: opacity var(--motion-transition-slow, 0.4s)
3242
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
3243
+ }
3244
+
3245
+ /* Slides */
3246
+ .bc-carousel__slide {
3247
+ flex-shrink: 0;
3248
+ overflow: hidden;
3249
+ user-select: none;
3250
+ -webkit-user-drag: none;
3251
+ }
3252
+
3253
+ .bc-carousel__slide img {
3254
+ pointer-events: none;
3255
+ -webkit-user-drag: none;
3256
+ }
3257
+
3258
+ /* Navigation arrows */
3259
+ .bc-carousel__arrow {
3260
+ position: absolute;
3261
+ top: 50%;
3262
+ transform: translateY(-50%);
3263
+ z-index: 2;
3264
+ display: flex;
3265
+ align-items: center;
3266
+ justify-content: center;
3267
+ width: var(--carousel-arrow-size);
3268
+ height: var(--carousel-arrow-size);
3269
+ border-radius: 50%;
3270
+ border: none;
3271
+ background: var(--carousel-arrow-bg);
3272
+ color: var(--carousel-arrow-color);
3273
+ box-shadow: var(--carousel-arrow-shadow);
3274
+ cursor: pointer;
3275
+ padding: 0;
3276
+ transition: all
3277
+ var(--motion-transition-fast, var(--motion-duration-fast, 0.2s))
3278
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
3279
+ }
3280
+
3281
+ .bc-carousel__arrow:hover:not(:disabled) {
3282
+ background: var(--carousel-arrow-bg-hover);
3283
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
3284
+ transform: translateY(-50%) scale(1.08);
3285
+ }
3286
+
3287
+ .bc-carousel__arrow:active:not(:disabled) {
3288
+ transform: translateY(-50%) scale(0.96);
3289
+ }
3290
+
3291
+ .bc-carousel__arrow .bc-icon {
3292
+ pointer-events: none;
3293
+ }
3294
+
3295
+ .bc-carousel__arrow--prev {
3296
+ left: calc(var(--carousel-peek) + 8px);
3297
+ }
3298
+
3299
+ .bc-carousel__arrow--next {
3300
+ right: calc(var(--carousel-peek) + 8px);
3301
+ }
3302
+
3303
+ /* Disabled arrow state */
3304
+ .bc-carousel__arrow--disabled,
3305
+ .bc-carousel__arrow:disabled {
3306
+ opacity: 0.35;
3307
+ cursor: default;
3308
+ pointer-events: none;
3309
+ }
3310
+
3311
+ /* Dot indicators */
3312
+ .bc-carousel__dots {
3313
+ display: flex;
3314
+ align-items: center;
3315
+ justify-content: center;
3316
+ gap: var(--carousel-dot-gap);
3317
+ padding: 10px 0;
3318
+ }
3319
+
3320
+ .bc-carousel__dot {
3321
+ width: var(--carousel-dot-size);
3322
+ height: var(--carousel-dot-size);
3323
+ border-radius: 50%;
3324
+ border: none;
3325
+ padding: 0;
3326
+ background: var(--carousel-dot-color);
3327
+ cursor: pointer;
3328
+ transition: all
3329
+ var(--motion-transition-fast, var(--motion-duration-fast, 0.2s))
3330
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
3331
+ }
3332
+
3333
+ .bc-carousel__dot:hover {
3334
+ background: var(--color-neutral-400, #9ca3af);
3335
+ transform: scale(1.3);
3336
+ }
3337
+
3338
+ .bc-carousel__dot--active {
3339
+ background: var(--carousel-dot-active-color);
3340
+ transform: scale(1.25);
3341
+ }
3342
+
3343
+ .bc-carousel__dot--active:hover {
3344
+ background: var(--carousel-dot-active-color);
3345
+ }
3346
+
3347
+ /* Progress bar indicator */
3348
+ .bc-carousel__progress {
3349
+ height: 3px;
3350
+ background: var(--carousel-dot-color);
3351
+ border-radius: 2px;
3352
+ margin: 10px 16px;
3353
+ overflow: hidden;
3354
+ }
3355
+
3356
+ .bc-carousel__progress-fill {
3357
+ height: 100%;
3358
+ background: var(--carousel-dot-active-color);
3359
+ border-radius: 2px;
3360
+ transition: width
3361
+ var(--motion-transition-fast, var(--motion-duration-fast, 0.2s))
3362
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
3363
+ }
3364
+
3365
+ /* Fraction indicator */
3366
+ .bc-carousel__fraction {
3367
+ text-align: center;
3368
+ padding: 8px 0;
3369
+ font-size: 0.875rem;
3370
+ color: var(--color-neutral-500, #6b7280);
3371
+ font-variant-numeric: tabular-nums;
3372
+ }
3373
+
3374
+ /* Dark mode */
3375
+ .dark .bc-carousel {
3376
+ --carousel-arrow-bg: rgba(30, 30, 30, 0.85);
3377
+ --carousel-arrow-bg-hover: rgba(40, 40, 40, 1);
3378
+ --carousel-arrow-color: var(--color-neutral-200, #e5e7eb);
3379
+ --carousel-arrow-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
3380
+ --carousel-dot-color: var(--color-neutral-600, #4b5563);
3381
+ --carousel-dot-active-color: var(--color-primary-400, #818cf8);
3382
+ }
3383
+
3384
+ .dark .bc-carousel__dot:hover {
3385
+ background: var(--color-neutral-500, #6b7280);
3386
+ }
3387
+
3388
+ .dark .bc-carousel__fraction {
3389
+ color: var(--color-neutral-400, #9ca3af);
3390
+ }
3391
+
3392
+ /* Reduced motion */
3393
+ @media (prefers-reduced-motion: reduce) {
3394
+ .bc-carousel__track {
3395
+ transition-duration: 0.01ms !important;
3396
+ }
3397
+
3398
+ .bc-carousel--fade .bc-carousel__slide {
3399
+ transition: none !important;
3400
+ }
3401
+
3402
+ .bc-carousel__arrow,
3403
+ .bc-carousel__dot,
3404
+ .bc-carousel__progress-fill {
3405
+ transition: none !important;
3406
+ }
3407
+ }
3408
+
3187
3409
  /* Center Component */
3188
3410
  .bc-center {
3189
3411
  display: flex;
@@ -3656,20 +3878,10 @@ a:focus-visible {
3656
3878
  .bc-dropdown__display {
3657
3879
  flex: 1;
3658
3880
  text-align: left;
3659
- overflow: hidden;
3660
3881
  text-overflow: ellipsis;
3661
3882
  white-space: nowrap;
3662
3883
  }
3663
3884
 
3664
- /* Arrow indicator */
3665
- .bc-dropdown__arrow {
3666
- display: flex;
3667
- align-items: center;
3668
- justify-content: center;
3669
- flex-shrink: 0;
3670
- margin-inline-start: var(--spacing-xs);
3671
- }
3672
-
3673
3885
  /* Listbox (dropdown) */
3674
3886
  .bc-dropdown__listbox {
3675
3887
  background-color: var(--color-white);
@@ -9230,14 +9442,16 @@ a:focus-visible {
9230
9442
  cursor: pointer;
9231
9443
  }
9232
9444
 
9233
- .bc-multi-select__tags {
9234
- position: relative;
9445
+ /* Placeholder when no items selected */
9446
+ .bc-multi-select__placeholder {
9447
+ color: var(--color-neutral-400);
9235
9448
  }
9236
9449
 
9237
- .bc-multi-select__arrow {
9238
- flex-shrink: 0;
9239
- margin-left: auto;
9240
- opacity: 0.5;
9450
+ .bc-multi-select__badge-container {
9451
+ flex-grow: 1;
9452
+ display: flex;
9453
+ gap: var(--spacing-xs);
9454
+ flex-wrap: wrap;
9241
9455
  }
9242
9456
 
9243
9457
  /* Dropdown panel */
@@ -9417,6 +9631,10 @@ a:focus-visible {
9417
9631
  }
9418
9632
 
9419
9633
  /* Dark mode */
9634
+ .dark .bc-multi-select__placeholder {
9635
+ color: var(--color-neutral-500);
9636
+ }
9637
+
9420
9638
  .dark .bc-multi-select__dropdown {
9421
9639
  background: var(--color-base-800);
9422
9640
  border-color: var(--color-base-600);
@@ -16013,10 +16231,10 @@ span.bc-sidebar-link {
16013
16231
  }
16014
16232
  }
16015
16233
 
16016
- /* Advanced Slider Component */
16017
- .bc-advanced-slider {
16018
- --slider-color: var(--color-primary-500);
16019
- --slider-color-dark: var(--color-primary-600);
16234
+ /* Range Slider Component */
16235
+ .bc-range-slider {
16236
+ --rs-color: var(--color-primary-500);
16237
+ --rs-color-dark: var(--color-primary-600);
16020
16238
 
16021
16239
  position: relative;
16022
16240
  display: flex;
@@ -16027,14 +16245,18 @@ span.bc-sidebar-link {
16027
16245
  user-select: none;
16028
16246
  }
16029
16247
 
16030
- .bc-advanced-slider--disabled {
16248
+ .bc-range-slider--disabled {
16031
16249
  opacity: 0.5;
16032
16250
  pointer-events: none;
16033
16251
  cursor: not-allowed;
16034
16252
  }
16035
16253
 
16254
+ .bc-range-slider--readonly {
16255
+ pointer-events: none;
16256
+ }
16257
+
16036
16258
  /* Track */
16037
- .bc-advanced-slider__track {
16259
+ .bc-range-slider__track {
16038
16260
  position: relative;
16039
16261
  width: 100%;
16040
16262
  background-color: var(--color-gray-200);
@@ -16042,17 +16264,25 @@ span.bc-sidebar-link {
16042
16264
  }
16043
16265
 
16044
16266
  /* Filled portion */
16045
- .bc-advanced-slider__fill {
16267
+ .bc-range-slider__fill {
16046
16268
  position: absolute;
16047
16269
  top: 0;
16048
16270
  height: 100%;
16049
- background-color: var(--slider-color);
16271
+ background-color: var(--rs-color);
16050
16272
  border-radius: var(--radius-full);
16051
16273
  pointer-events: none;
16052
16274
  }
16053
16275
 
16054
- /* Thumb container (for positioning value label + thumb) */
16055
- .bc-advanced-slider__thumb-container {
16276
+ /* Segment overrides */
16277
+ .bc-range-slider__segment {
16278
+ position: absolute;
16279
+ top: 50%;
16280
+ transform: translateY(-50%);
16281
+ border-radius: var(--radius-full);
16282
+ }
16283
+
16284
+ /* Thumb container */
16285
+ .bc-range-slider__thumb-container {
16056
16286
  position: absolute;
16057
16287
  top: 50%;
16058
16288
  transform: translate(-50%, -50%);
@@ -16063,9 +16293,9 @@ span.bc-sidebar-link {
16063
16293
  }
16064
16294
 
16065
16295
  /* Thumb */
16066
- .bc-advanced-slider__thumb {
16296
+ .bc-range-slider__thumb {
16067
16297
  background-color: var(--color-white);
16068
- border: var(--border-width-medium) solid var(--slider-color);
16298
+ border: var(--border-width-medium) solid var(--rs-color);
16069
16299
  border-radius: var(--radius-full);
16070
16300
  cursor: grab;
16071
16301
  box-shadow: var(--shadow-sm);
@@ -16074,23 +16304,23 @@ span.bc-sidebar-link {
16074
16304
  transform var(--motion-transition-fast) var(--motion-easing-standard);
16075
16305
  }
16076
16306
 
16077
- .bc-advanced-slider__thumb:hover {
16307
+ .bc-range-slider__thumb:hover {
16078
16308
  box-shadow: var(--shadow-md);
16079
16309
  transform: scale(1.15);
16080
16310
  }
16081
16311
 
16082
- .bc-advanced-slider__thumb:active {
16312
+ .bc-range-slider__thumb:active {
16083
16313
  cursor: grabbing;
16084
16314
  transform: scale(1.2);
16085
16315
  }
16086
16316
 
16087
- .bc-advanced-slider__thumb:focus-visible {
16317
+ .bc-range-slider__thumb:focus-visible {
16088
16318
  outline: var(--outline-width-focus) solid var(--color-primary-500);
16089
16319
  outline-offset: 2px;
16090
16320
  }
16091
16321
 
16092
- /* Custom thumb wrapper — no default visual styling */
16093
- .bc-advanced-slider__thumb-custom {
16322
+ /* Custom thumb wrapper */
16323
+ .bc-range-slider__thumb-custom {
16094
16324
  cursor: grab;
16095
16325
  display: flex;
16096
16326
  align-items: center;
@@ -16098,20 +16328,20 @@ span.bc-sidebar-link {
16098
16328
  outline: none;
16099
16329
  }
16100
16330
 
16101
- .bc-advanced-slider__thumb-custom:active {
16331
+ .bc-range-slider__thumb-custom:active {
16102
16332
  cursor: grabbing;
16103
16333
  }
16104
16334
 
16105
- .bc-advanced-slider__thumb-custom:focus-visible {
16335
+ .bc-range-slider__thumb-custom:focus-visible {
16106
16336
  outline: var(--outline-width-focus) solid var(--color-primary-500);
16107
16337
  outline-offset: 2px;
16108
16338
  }
16109
16339
 
16110
16340
  /* Value label */
16111
- .bc-advanced-slider__value-label {
16341
+ .bc-range-slider__value-label {
16112
16342
  position: absolute;
16113
16343
  white-space: nowrap;
16114
- background-color: var(--slider-color);
16344
+ background-color: var(--rs-color);
16115
16345
  color: var(--color-white);
16116
16346
  border-radius: var(--radius-sm);
16117
16347
  font-weight: var(--font-weight-semibold);
@@ -16121,7 +16351,7 @@ span.bc-sidebar-link {
16121
16351
  }
16122
16352
 
16123
16353
  /* Ticks container */
16124
- .bc-advanced-slider__ticks {
16354
+ .bc-range-slider__ticks {
16125
16355
  position: absolute;
16126
16356
  top: 0;
16127
16357
  left: 0;
@@ -16131,7 +16361,7 @@ span.bc-sidebar-link {
16131
16361
  }
16132
16362
 
16133
16363
  /* Individual tick */
16134
- .bc-advanced-slider__tick {
16364
+ .bc-range-slider__tick {
16135
16365
  position: absolute;
16136
16366
  top: 50%;
16137
16367
  transform: translateX(-50%);
@@ -16140,7 +16370,7 @@ span.bc-sidebar-link {
16140
16370
  align-items: center;
16141
16371
  }
16142
16372
 
16143
- .bc-advanced-slider__tick::before {
16373
+ .bc-range-slider__tick::before {
16144
16374
  content: '';
16145
16375
  display: block;
16146
16376
  background-color: var(--color-gray-400);
@@ -16148,7 +16378,7 @@ span.bc-sidebar-link {
16148
16378
  }
16149
16379
 
16150
16380
  /* Tick label */
16151
- .bc-advanced-slider__tick-label {
16381
+ .bc-range-slider__tick-label {
16152
16382
  position: absolute;
16153
16383
  white-space: nowrap;
16154
16384
  color: var(--text-muted);
@@ -16157,164 +16387,283 @@ span.bc-sidebar-link {
16157
16387
  /* ── Size variants ── */
16158
16388
 
16159
16389
  /* xs */
16160
- .bc-advanced-slider--size-xs {
16390
+ .bc-range-slider--size-xs {
16161
16391
  padding: var(--spacing-lg) var(--spacing-smh) var(--spacing-md);
16162
16392
  }
16163
- .bc-advanced-slider--size-xs .bc-advanced-slider__track {
16393
+ .bc-range-slider--size-xs .bc-range-slider__track {
16164
16394
  height: var(--spacing-xs);
16165
16395
  }
16166
- .bc-advanced-slider--size-xs .bc-advanced-slider__thumb {
16396
+ .bc-range-slider--size-xs .bc-range-slider__thumb {
16167
16397
  width: calc(var(--spacing-base) * 2.5);
16168
16398
  height: calc(var(--spacing-base) * 2.5);
16169
16399
  }
16170
- .bc-advanced-slider--size-xs .bc-advanced-slider__value-label {
16400
+ .bc-range-slider--size-xs .bc-range-slider__value-label {
16171
16401
  font-size: var(--font-size-2xs);
16172
16402
  padding: var(--spacing-px) var(--spacing-sm);
16173
16403
  bottom: calc(100% + var(--spacing-sm));
16174
16404
  }
16175
- .bc-advanced-slider--size-xs .bc-advanced-slider__tick::before {
16405
+ .bc-range-slider--size-xs .bc-range-slider__tick::before {
16176
16406
  width: var(--spacing-px);
16177
16407
  height: var(--spacing-smh);
16178
16408
  margin-top: var(--spacing-sm);
16179
16409
  }
16180
- .bc-advanced-slider--size-xs .bc-advanced-slider__tick-label {
16410
+ .bc-range-slider--size-xs .bc-range-slider__tick-label {
16181
16411
  top: calc(var(--spacing-base) * 2.5);
16182
16412
  font-size: var(--font-size-2xs);
16183
16413
  }
16184
16414
 
16185
16415
  /* sm */
16186
- .bc-advanced-slider--size-sm {
16416
+ .bc-range-slider--size-sm {
16187
16417
  padding: var(--spacing-xl) var(--spacing-md) var(--spacing-lg);
16188
16418
  }
16189
- .bc-advanced-slider--size-sm .bc-advanced-slider__track {
16419
+ .bc-range-slider--size-sm .bc-range-slider__track {
16190
16420
  height: calc(var(--spacing-base) * 0.75);
16191
16421
  }
16192
- .bc-advanced-slider--size-sm .bc-advanced-slider__thumb {
16422
+ .bc-range-slider--size-sm .bc-range-slider__thumb {
16193
16423
  width: calc(var(--spacing-base) * 3.5);
16194
16424
  height: calc(var(--spacing-base) * 3.5);
16195
16425
  }
16196
- .bc-advanced-slider--size-sm .bc-advanced-slider__value-label {
16426
+ .bc-range-slider--size-sm .bc-range-slider__value-label {
16197
16427
  font-size: var(--font-size-xs);
16198
16428
  padding: var(--spacing-xs) calc(var(--spacing-base) * 1.25);
16199
16429
  bottom: calc(100% + calc(var(--spacing-base) * 1.25));
16200
16430
  }
16201
- .bc-advanced-slider--size-sm .bc-advanced-slider__tick::before {
16431
+ .bc-range-slider--size-sm .bc-range-slider__tick::before {
16202
16432
  width: var(--spacing-px);
16203
16433
  height: var(--spacing-md);
16204
16434
  margin-top: calc(var(--spacing-base) * 1.25);
16205
16435
  }
16206
- .bc-advanced-slider--size-sm .bc-advanced-slider__tick-label {
16436
+ .bc-range-slider--size-sm .bc-range-slider__tick-label {
16207
16437
  top: calc(var(--spacing-base) * 3.5);
16208
16438
  font-size: var(--font-size-2xs);
16209
16439
  }
16210
16440
 
16211
16441
  /* md (default) */
16212
- .bc-advanced-slider--size-md {
16442
+ .bc-range-slider--size-md {
16213
16443
  padding: var(--spacing-2xl) calc(var(--spacing-base) * 2.5) var(--spacing-xl);
16214
16444
  }
16215
- .bc-advanced-slider--size-md .bc-advanced-slider__track {
16445
+ .bc-range-slider--size-md .bc-range-slider__track {
16216
16446
  height: var(--spacing-sm);
16217
16447
  }
16218
- .bc-advanced-slider--size-md .bc-advanced-slider__thumb {
16448
+ .bc-range-slider--size-md .bc-range-slider__thumb {
16219
16449
  width: calc(var(--spacing-base) * 4.5);
16220
16450
  height: calc(var(--spacing-base) * 4.5);
16221
16451
  }
16222
- .bc-advanced-slider--size-md .bc-advanced-slider__value-label {
16452
+ .bc-range-slider--size-md .bc-range-slider__value-label {
16223
16453
  font-size: var(--font-size-sm);
16224
16454
  padding: var(--spacing-xs) var(--spacing-smh);
16225
16455
  bottom: calc(100% + var(--spacing-smh));
16226
16456
  }
16227
- .bc-advanced-slider--size-md .bc-advanced-slider__tick::before {
16457
+ .bc-range-slider--size-md .bc-range-slider__tick::before {
16228
16458
  width: var(--spacing-xs);
16229
16459
  height: calc(var(--spacing-base) * 2.5);
16230
16460
  margin-top: var(--spacing-smh);
16231
16461
  }
16232
- .bc-advanced-slider--size-md .bc-advanced-slider__tick-label {
16462
+ .bc-range-slider--size-md .bc-range-slider__tick-label {
16233
16463
  top: calc(var(--spacing-base) * 4.5);
16234
16464
  font-size: var(--font-size-xs);
16235
16465
  }
16236
16466
 
16237
16467
  /* lg */
16238
- .bc-advanced-slider--size-lg {
16468
+ .bc-range-slider--size-lg {
16239
16469
  padding: var(--spacing-3xl) var(--spacing-mdh) var(--spacing-2xl);
16240
16470
  }
16241
- .bc-advanced-slider--size-lg .bc-advanced-slider__track {
16471
+ .bc-range-slider--size-lg .bc-range-slider__track {
16242
16472
  height: var(--spacing-smh);
16243
16473
  }
16244
- .bc-advanced-slider--size-lg .bc-advanced-slider__thumb {
16474
+ .bc-range-slider--size-lg .bc-range-slider__thumb {
16245
16475
  width: calc(var(--spacing-base) * 5.5);
16246
16476
  height: calc(var(--spacing-base) * 5.5);
16247
16477
  }
16248
- .bc-advanced-slider--size-lg .bc-advanced-slider__value-label {
16478
+ .bc-range-slider--size-lg .bc-range-slider__value-label {
16249
16479
  font-size: var(--font-size-md);
16250
16480
  padding: calc(var(--spacing-base) * 0.75) var(--spacing-md);
16251
16481
  bottom: calc(100% + var(--spacing-md));
16252
16482
  }
16253
- .bc-advanced-slider--size-lg .bc-advanced-slider__tick::before {
16483
+ .bc-range-slider--size-lg .bc-range-slider__tick::before {
16254
16484
  width: var(--spacing-xs);
16255
16485
  height: var(--spacing-mdh);
16256
16486
  margin-top: var(--spacing-md);
16257
16487
  }
16258
- .bc-advanced-slider--size-lg .bc-advanced-slider__tick-label {
16488
+ .bc-range-slider--size-lg .bc-range-slider__tick-label {
16259
16489
  top: calc(var(--spacing-base) * 5.5);
16260
16490
  font-size: var(--font-size-sm);
16261
16491
  }
16262
16492
 
16263
16493
  /* xl */
16264
- .bc-advanced-slider--size-xl {
16494
+ .bc-range-slider--size-xl {
16265
16495
  padding: var(--spacing-4xl) calc(var(--spacing-base) * 3.5) var(--spacing-3xl);
16266
16496
  }
16267
- .bc-advanced-slider--size-xl .bc-advanced-slider__track {
16497
+ .bc-range-slider--size-xl .bc-range-slider__track {
16268
16498
  height: var(--spacing-md);
16269
16499
  }
16270
- .bc-advanced-slider--size-xl .bc-advanced-slider__thumb {
16500
+ .bc-range-slider--size-xl .bc-range-slider__thumb {
16271
16501
  width: calc(var(--spacing-base) * 6.5);
16272
16502
  height: calc(var(--spacing-base) * 6.5);
16273
16503
  }
16274
- .bc-advanced-slider--size-xl .bc-advanced-slider__value-label {
16504
+ .bc-range-slider--size-xl .bc-range-slider__value-label {
16275
16505
  font-size: var(--font-size-lg);
16276
16506
  padding: var(--spacing-sm) calc(var(--spacing-base) * 2.5);
16277
16507
  bottom: calc(100% + calc(var(--spacing-base) * 2.5));
16278
16508
  }
16279
- .bc-advanced-slider--size-xl .bc-advanced-slider__tick::before {
16509
+ .bc-range-slider--size-xl .bc-range-slider__tick::before {
16280
16510
  width: var(--spacing-xs);
16281
16511
  height: calc(var(--spacing-base) * 3.5);
16282
16512
  margin-top: calc(var(--spacing-base) * 2.5);
16283
16513
  }
16284
- .bc-advanced-slider--size-xl .bc-advanced-slider__tick-label {
16514
+ .bc-range-slider--size-xl .bc-range-slider__tick-label {
16285
16515
  top: calc(var(--spacing-base) * 6.5);
16286
16516
  font-size: var(--font-size-md);
16287
16517
  }
16288
16518
 
16519
+ /* ── Vertical orientation ── */
16520
+
16521
+ .bc-range-slider--vertical {
16522
+ width: auto;
16523
+ height: 100%;
16524
+ min-height: 120px;
16525
+ touch-action: none;
16526
+ }
16527
+
16528
+ .bc-range-slider--vertical .bc-range-slider__track {
16529
+ width: auto;
16530
+ flex: 1;
16531
+ min-height: 60px;
16532
+ }
16533
+
16534
+ /* Fill: runs from bottom upward */
16535
+ .bc-range-slider--vertical .bc-range-slider__fill {
16536
+ left: 0;
16537
+ width: 100%;
16538
+ top: auto;
16539
+ bottom: 0;
16540
+ height: auto;
16541
+ }
16542
+
16543
+ /* Segments: vertical positioning, override horizontal transform */
16544
+ .bc-range-slider--vertical .bc-range-slider__segment {
16545
+ left: 0;
16546
+ width: 100%;
16547
+ top: auto;
16548
+ transform: none;
16549
+ }
16550
+
16551
+ /* Thumb container: centered horizontally, positioned via bottom */
16552
+ .bc-range-slider--vertical .bc-range-slider__thumb-container {
16553
+ left: 50%;
16554
+ top: auto;
16555
+ transform: translate(-50%, 50%);
16556
+ }
16557
+
16558
+ /* Value label: to the right of thumb in vertical mode */
16559
+ .bc-range-slider--vertical .bc-range-slider__value-label {
16560
+ bottom: auto;
16561
+ left: calc(100% + var(--spacing-sm));
16562
+ top: 50%;
16563
+ transform: translateY(-50%);
16564
+ }
16565
+
16566
+ /* Ticks: full height */
16567
+ .bc-range-slider--vertical .bc-range-slider__ticks {
16568
+ width: 100%;
16569
+ height: 100%;
16570
+ }
16571
+
16572
+ /* Tick: positioned via bottom, centered vertically */
16573
+ .bc-range-slider--vertical .bc-range-slider__tick {
16574
+ left: 50%;
16575
+ top: auto;
16576
+ transform: translateY(50%);
16577
+ flex-direction: row;
16578
+ }
16579
+
16580
+ .bc-range-slider--vertical .bc-range-slider__tick::before {
16581
+ margin-top: 0;
16582
+ margin-left: var(--spacing-sm);
16583
+ }
16584
+
16585
+ /* Tick label: to the right in vertical mode */
16586
+ .bc-range-slider--vertical .bc-range-slider__tick-label {
16587
+ top: auto;
16588
+ left: calc(100% + var(--spacing-sm));
16589
+ }
16590
+
16591
+ /* Vertical size variants — swap track width/height, adjust padding */
16592
+
16593
+ /* xs vertical */
16594
+ .bc-range-slider--vertical.bc-range-slider--size-xs {
16595
+ padding: var(--spacing-smh) var(--spacing-lg) var(--spacing-smh)
16596
+ var(--spacing-md);
16597
+ }
16598
+ .bc-range-slider--vertical.bc-range-slider--size-xs .bc-range-slider__track {
16599
+ width: var(--spacing-xs);
16600
+ }
16601
+
16602
+ /* sm vertical */
16603
+ .bc-range-slider--vertical.bc-range-slider--size-sm {
16604
+ padding: var(--spacing-md) var(--spacing-xl) var(--spacing-lg)
16605
+ var(--spacing-lg);
16606
+ }
16607
+ .bc-range-slider--vertical.bc-range-slider--size-sm .bc-range-slider__track {
16608
+ width: calc(var(--spacing-base) * 0.75);
16609
+ }
16610
+
16611
+ /* md vertical */
16612
+ .bc-range-slider--vertical.bc-range-slider--size-md {
16613
+ padding: var(--spacing-xl) var(--spacing-2xl) var(--spacing-xl)
16614
+ calc(var(--spacing-base) * 2.5);
16615
+ }
16616
+ .bc-range-slider--vertical.bc-range-slider--size-md .bc-range-slider__track {
16617
+ width: var(--spacing-sm);
16618
+ }
16619
+
16620
+ /* lg vertical */
16621
+ .bc-range-slider--vertical.bc-range-slider--size-lg {
16622
+ padding: var(--spacing-2xl) var(--spacing-3xl) var(--spacing-2xl)
16623
+ var(--spacing-mdh);
16624
+ }
16625
+ .bc-range-slider--vertical.bc-range-slider--size-lg .bc-range-slider__track {
16626
+ width: var(--spacing-smh);
16627
+ }
16628
+
16629
+ /* xl vertical */
16630
+ .bc-range-slider--vertical.bc-range-slider--size-xl {
16631
+ padding: var(--spacing-3xl) var(--spacing-4xl) var(--spacing-3xl)
16632
+ calc(var(--spacing-base) * 3.5);
16633
+ }
16634
+ .bc-range-slider--vertical.bc-range-slider--size-xl .bc-range-slider__track {
16635
+ width: var(--spacing-md);
16636
+ }
16637
+
16289
16638
  /* Dark mode */
16290
- .dark .bc-advanced-slider__track {
16639
+ .dark .bc-range-slider__track {
16291
16640
  background-color: var(--bg-subtle);
16292
16641
  }
16293
16642
 
16294
- .dark .bc-advanced-slider__fill {
16295
- background-color: var(--slider-color-dark);
16643
+ .dark .bc-range-slider__fill {
16644
+ background-color: var(--rs-color-dark);
16296
16645
  }
16297
16646
 
16298
- .dark .bc-advanced-slider__thumb {
16647
+ .dark .bc-range-slider__thumb {
16299
16648
  background-color: var(--text-normal);
16300
- border-color: var(--slider-color-dark);
16649
+ border-color: var(--rs-color-dark);
16301
16650
  }
16302
16651
 
16303
- .dark .bc-advanced-slider__value-label {
16304
- background-color: var(--slider-color-dark);
16652
+ .dark .bc-range-slider__value-label {
16653
+ background-color: var(--rs-color-dark);
16305
16654
  }
16306
16655
 
16307
- .dark .bc-advanced-slider__tick::before {
16656
+ .dark .bc-range-slider__tick::before {
16308
16657
  background-color: var(--color-gray-500);
16309
16658
  }
16310
16659
 
16311
- .dark .bc-advanced-slider__tick-label {
16660
+ .dark .bc-range-slider__tick-label {
16312
16661
  color: var(--text-muted);
16313
16662
  }
16314
16663
 
16315
16664
  /* Reduced motion */
16316
16665
  @media (prefers-reduced-motion: reduce) {
16317
- .bc-advanced-slider__thumb {
16666
+ .bc-range-slider__thumb {
16318
16667
  transition: none;
16319
16668
  }
16320
16669
  }
@@ -16686,6 +17035,341 @@ span.bc-sidebar-link {
16686
17035
  color: var(--text-muted);
16687
17036
  }
16688
17037
 
17038
+ /* NavigationProgress Component - Top/bottom viewport progress bar for navigation/loading */
17039
+
17040
+ .bc-navigation-progress {
17041
+ --nav-progress-fill: var(--color-primary-500);
17042
+ --nav-progress-fill-dark: var(--color-primary-600);
17043
+
17044
+ position: fixed;
17045
+ left: 0;
17046
+ right: 0;
17047
+ height: 3px;
17048
+ z-index: var(--z-index-maximum, 1000);
17049
+ pointer-events: none;
17050
+ overflow: hidden;
17051
+ }
17052
+
17053
+ .bc-navigation-progress--top {
17054
+ top: 0;
17055
+ }
17056
+
17057
+ .bc-navigation-progress--bottom {
17058
+ bottom: 0;
17059
+ }
17060
+
17061
+ /* Progress bar fill */
17062
+ .bc-navigation-progress__bar {
17063
+ position: absolute;
17064
+ top: 0;
17065
+ left: 0;
17066
+ width: 100%;
17067
+ height: 100%;
17068
+ background-color: var(--nav-progress-fill);
17069
+ will-change: transform;
17070
+ }
17071
+
17072
+ .bc-navigation-progress__bar--done {
17073
+ opacity: 0;
17074
+ transition: opacity 0.2s ease;
17075
+ }
17076
+
17077
+ /* Peg - the glowing leading edge */
17078
+ .bc-navigation-progress__peg {
17079
+ position: absolute;
17080
+ right: 0;
17081
+ top: 0;
17082
+ width: 100px;
17083
+ height: 100%;
17084
+ box-shadow:
17085
+ 0 0 10px var(--nav-progress-fill),
17086
+ 0 0 5px var(--nav-progress-fill);
17087
+ opacity: 1;
17088
+ transform: rotate(3deg) translateY(-4px);
17089
+ }
17090
+
17091
+ /* Spinner */
17092
+ .bc-navigation-progress__spinner {
17093
+ position: fixed;
17094
+ top: 15px;
17095
+ right: 15px;
17096
+ z-index: calc(var(--z-index-maximum, 1000) + 1);
17097
+ pointer-events: none;
17098
+ }
17099
+
17100
+ .bc-navigation-progress__spinner--bottom {
17101
+ top: auto;
17102
+ bottom: 15px;
17103
+ }
17104
+
17105
+ .bc-navigation-progress__spinner-icon {
17106
+ width: 18px;
17107
+ height: 18px;
17108
+ border: 2px solid transparent;
17109
+ border-top-color: var(--nav-progress-fill);
17110
+ border-left-color: var(--nav-progress-fill);
17111
+ border-radius: 50%;
17112
+ animation: bc-nav-progress-spin 0.4s linear infinite;
17113
+ }
17114
+
17115
+ @keyframes bc-nav-progress-spin {
17116
+ from {
17117
+ transform: rotate(0deg);
17118
+ }
17119
+ to {
17120
+ transform: rotate(360deg);
17121
+ }
17122
+ }
17123
+
17124
+ /* Dark mode */
17125
+ .dark .bc-navigation-progress__bar {
17126
+ background-color: var(--nav-progress-fill-dark);
17127
+ }
17128
+
17129
+ .dark .bc-navigation-progress__peg {
17130
+ box-shadow:
17131
+ 0 0 10px var(--nav-progress-fill-dark),
17132
+ 0 0 5px var(--nav-progress-fill-dark);
17133
+ }
17134
+
17135
+ .dark .bc-navigation-progress__spinner-icon {
17136
+ border-top-color: var(--nav-progress-fill-dark);
17137
+ border-left-color: var(--nav-progress-fill-dark);
17138
+ }
17139
+
17140
+ /* Accessibility: respect reduced motion preference */
17141
+ @media (prefers-reduced-motion: reduce) {
17142
+ .bc-navigation-progress__bar {
17143
+ transition: none !important;
17144
+ }
17145
+
17146
+ .bc-navigation-progress__bar--done {
17147
+ transition: none;
17148
+ }
17149
+
17150
+ .bc-navigation-progress__spinner-icon {
17151
+ animation: none;
17152
+ }
17153
+ }
17154
+
17155
+ /* High contrast mode */
17156
+ @media (prefers-contrast: high) {
17157
+ .bc-navigation-progress__bar {
17158
+ outline: var(--outline-width-default, 2px) solid currentColor;
17159
+ outline-offset: calc(-1 * var(--outline-width-default, 2px));
17160
+ }
17161
+ }
17162
+
17163
+ /* OnboardingTour Component - Step-by-step guided tour with spotlight overlay */
17164
+
17165
+ .bc-onboarding-tour {
17166
+ position: fixed;
17167
+ inset: 0;
17168
+ z-index: var(--z-index-modal, 600);
17169
+ pointer-events: none;
17170
+ transition: opacity 0.2s
17171
+ var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
17172
+ }
17173
+
17174
+ /* SVG backdrop with spotlight cutout */
17175
+ .bc-onboarding-tour__backdrop {
17176
+ position: fixed;
17177
+ inset: 0;
17178
+ width: 100%;
17179
+ height: 100%;
17180
+ pointer-events: all;
17181
+ cursor: default;
17182
+ }
17183
+
17184
+ .bc-onboarding-tour__backdrop--interactive {
17185
+ pointer-events: none;
17186
+ }
17187
+
17188
+ .bc-onboarding-tour__mask {
17189
+ fill: rgba(0, 0, 0, 0.5);
17190
+ transition: d 0.3s var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
17191
+ }
17192
+
17193
+ /* Tooltip */
17194
+ .bc-onboarding-tour__tooltip {
17195
+ position: fixed;
17196
+ width: 320px;
17197
+ max-width: calc(100vw - 16px);
17198
+ background-color: var(--bg-surface, #fff);
17199
+ border-radius: var(--radius-lg, 12px);
17200
+ box-shadow: var(
17201
+ --shadow-xl,
17202
+ 0 20px 25px -5px rgba(0, 0, 0, 0.1),
17203
+ 0 8px 10px -6px rgba(0, 0, 0, 0.1)
17204
+ );
17205
+ pointer-events: all;
17206
+ z-index: 1;
17207
+ transition:
17208
+ top 0.3s var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1)),
17209
+ left 0.3s var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
17210
+ }
17211
+
17212
+ /* Arrow indicator */
17213
+ .bc-onboarding-tour__arrow {
17214
+ position: absolute;
17215
+ width: 12px;
17216
+ height: 12px;
17217
+ background-color: var(--bg-surface, #fff);
17218
+ transform: rotate(45deg);
17219
+ }
17220
+
17221
+ .bc-onboarding-tour__tooltip--top .bc-onboarding-tour__arrow {
17222
+ bottom: -6px;
17223
+ left: 50%;
17224
+ margin-left: -6px;
17225
+ }
17226
+
17227
+ .bc-onboarding-tour__tooltip--bottom .bc-onboarding-tour__arrow {
17228
+ top: -6px;
17229
+ left: 50%;
17230
+ margin-left: -6px;
17231
+ }
17232
+
17233
+ .bc-onboarding-tour__tooltip--left .bc-onboarding-tour__arrow {
17234
+ right: -6px;
17235
+ top: 50%;
17236
+ margin-top: -6px;
17237
+ }
17238
+
17239
+ .bc-onboarding-tour__tooltip--right .bc-onboarding-tour__arrow {
17240
+ left: -6px;
17241
+ top: 50%;
17242
+ margin-top: -6px;
17243
+ }
17244
+
17245
+ /* Content area */
17246
+ .bc-onboarding-tour__content {
17247
+ padding: var(--spacing-lg, 16px);
17248
+ display: flex;
17249
+ flex-direction: column;
17250
+ gap: var(--spacing-sm, 8px);
17251
+ }
17252
+
17253
+ /* Step indicator */
17254
+ .bc-onboarding-tour__step-indicator {
17255
+ font-family: var(
17256
+ --font-family-default-ui,
17257
+ var(--font-ui, var(--font-body, var(--font-family-sans)))
17258
+ );
17259
+ font-size: var(--font-size-xs, 12px);
17260
+ color: var(--text-muted, #6b7280);
17261
+ font-weight: 500;
17262
+ text-transform: uppercase;
17263
+ letter-spacing: 0.05em;
17264
+ }
17265
+
17266
+ /* Title */
17267
+ .bc-onboarding-tour__title {
17268
+ font-family: var(
17269
+ --font-family-default-ui,
17270
+ var(--font-ui, var(--font-body, var(--font-family-sans)))
17271
+ );
17272
+ font-size: var(--font-size-lg, 18px);
17273
+ font-weight: 600;
17274
+ color: var(--text-default, #111827);
17275
+ margin: 0;
17276
+ line-height: var(--line-height-tight, 1.25);
17277
+ }
17278
+
17279
+ /* Description */
17280
+ .bc-onboarding-tour__description {
17281
+ font-family: var(
17282
+ --font-family-default-ui,
17283
+ var(--font-ui, var(--font-body, var(--font-family-sans)))
17284
+ );
17285
+ font-size: var(--font-size-sm, 14px);
17286
+ color: var(--text-muted, #6b7280);
17287
+ margin: 0;
17288
+ line-height: var(--line-height-normal, 1.5);
17289
+ }
17290
+
17291
+ /* Body (custom content) */
17292
+ .bc-onboarding-tour__body {
17293
+ font-size: var(--font-size-sm, 14px);
17294
+ color: var(--text-default, #111827);
17295
+ }
17296
+
17297
+ /* Navigation */
17298
+ .bc-onboarding-tour__nav {
17299
+ display: flex;
17300
+ align-items: center;
17301
+ justify-content: space-between;
17302
+ margin-top: var(--spacing-sm, 8px);
17303
+ }
17304
+
17305
+ .bc-onboarding-tour__nav-left {
17306
+ display: flex;
17307
+ gap: var(--spacing-sm, 8px);
17308
+ }
17309
+
17310
+ .bc-onboarding-tour__nav-right {
17311
+ display: flex;
17312
+ gap: var(--spacing-sm, 8px);
17313
+ }
17314
+
17315
+ /* Dark mode */
17316
+ .dark .bc-onboarding-tour__mask {
17317
+ fill: rgba(0, 0, 0, 0.7);
17318
+ }
17319
+
17320
+ .dark .bc-onboarding-tour__tooltip {
17321
+ background-color: var(--bg-surface-dark, #1f2937);
17322
+ box-shadow:
17323
+ 0 20px 25px -5px rgba(0, 0, 0, 0.3),
17324
+ 0 8px 10px -6px rgba(0, 0, 0, 0.3);
17325
+ }
17326
+
17327
+ .dark .bc-onboarding-tour__arrow {
17328
+ background-color: var(--bg-surface-dark, #1f2937);
17329
+ }
17330
+
17331
+ .dark .bc-onboarding-tour__title {
17332
+ color: var(--text-default-dark, #f9fafb);
17333
+ }
17334
+
17335
+ .dark .bc-onboarding-tour__description {
17336
+ color: var(--text-muted-dark, #9ca3af);
17337
+ }
17338
+
17339
+ .dark .bc-onboarding-tour__step-indicator {
17340
+ color: var(--text-muted-dark, #9ca3af);
17341
+ }
17342
+
17343
+ .dark .bc-onboarding-tour__body {
17344
+ color: var(--text-default-dark, #f9fafb);
17345
+ }
17346
+
17347
+ /* Accessibility: respect reduced motion preference */
17348
+ @media (prefers-reduced-motion: reduce) {
17349
+ .bc-onboarding-tour {
17350
+ transition: none;
17351
+ }
17352
+
17353
+ .bc-onboarding-tour__mask {
17354
+ transition: none;
17355
+ }
17356
+
17357
+ .bc-onboarding-tour__tooltip {
17358
+ transition: none;
17359
+ }
17360
+ }
17361
+
17362
+ /* High contrast mode */
17363
+ @media (prefers-contrast: high) {
17364
+ .bc-onboarding-tour__tooltip {
17365
+ outline: var(--outline-width-default, 2px) solid currentColor;
17366
+ }
17367
+
17368
+ .bc-onboarding-tour__mask {
17369
+ fill: rgba(0, 0, 0, 0.8);
17370
+ }
17371
+ }
17372
+
16689
17373
  /* Sortable Header */
16690
17374
  .bc-sortable-header {
16691
17375
  cursor: pointer;