@tempots/beatui 1.2.2 → 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.
Files changed (26) hide show
  1. package/dist/beatui.css +1096 -141
  2. package/dist/beatui.tailwind.css +1096 -141
  3. package/dist/deep-merge-Bydz6jLt.cjs +1 -0
  4. package/dist/{deep-merge-DwXDd3iF.js → deep-merge-CzZVsVF-.js} +1 -1
  5. package/dist/{duration-input-CjNZyVkf.cjs → duration-input-BrYLC1js.cjs} +1 -1
  6. package/dist/{duration-input-CnMMvPgT.js → duration-input-CFu6vq-y.js} +1 -1
  7. package/dist/index.cjs.js +4 -4
  8. package/dist/index.es.js +6359 -5270
  9. package/dist/json-schema/index.cjs.js +1 -1
  10. package/dist/json-schema/index.es.js +3 -3
  11. package/dist/json-structure/index.cjs.js +1 -1
  12. package/dist/json-structure/index.es.js +2 -2
  13. package/dist/types/components/form/input/index.d.ts +2 -1
  14. package/dist/types/components/form/input/multi-select.d.ts +98 -0
  15. package/dist/types/components/form/input/range-slider.d.ts +175 -0
  16. package/dist/types/components/media/carousel.d.ts +117 -0
  17. package/dist/types/components/media/index.d.ts +1 -0
  18. package/dist/types/components/navigation/index.d.ts +1 -0
  19. package/dist/types/components/navigation/navigation-progress.d.ts +72 -0
  20. package/dist/types/components/overlay/index.d.ts +1 -0
  21. package/dist/types/components/overlay/onboarding-tour.d.ts +98 -0
  22. package/dist/{widget-customization-D2a6SVP3.js → widget-customization-BAchyOUo.js} +1 -1
  23. package/dist/{widget-customization-CD_NyRQ8.cjs → widget-customization-DELy3SMQ.cjs} +1 -1
  24. package/package.json +1 -1
  25. package/dist/deep-merge-Bjv1NvKj.cjs +0 -1
  26. package/dist/types/components/form/input/advanced-slider.d.ts +0 -143
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);
@@ -9224,101 +9436,378 @@ a:focus-visible {
9224
9436
  }
9225
9437
  }
9226
9438
 
9227
- /* Modal Component */
9228
- .bc-modal {
9229
- z-index: var(--z-index-modal);
9230
- width: 100%;
9439
+ /* MultiSelect Component */
9440
+
9441
+ .bc-multi-select {
9442
+ cursor: pointer;
9443
+ }
9444
+
9445
+ /* Placeholder when no items selected */
9446
+ .bc-multi-select__placeholder {
9447
+ color: var(--color-neutral-400);
9448
+ }
9449
+
9450
+ .bc-multi-select__badge-container {
9451
+ flex-grow: 1;
9452
+ display: flex;
9453
+ gap: var(--spacing-xs);
9454
+ flex-wrap: wrap;
9455
+ }
9456
+
9457
+ /* Dropdown panel */
9458
+ .bc-multi-select__dropdown {
9231
9459
  display: flex;
9232
9460
  flex-direction: column;
9233
- border-radius: var(--radius-overlay, var(--radius-lg));
9234
- box-shadow: var(--shadow-overlay, var(--shadow-xl));
9235
- background-color: var(--color-base-100);
9236
- border: var(--border-width-thick) solid var(--color-base-300);
9461
+ max-height: 320px;
9237
9462
  overflow: hidden;
9238
- transition: all var(--motion-transition-overlay) var(--motion-easing-emphasis);
9463
+ background: var(--color-white);
9464
+ border: var(--border-width-thin) solid var(--color-base-300);
9465
+ border-radius: var(--radius-md, 5px);
9466
+ box-shadow: var(--shadow-md);
9239
9467
  }
9240
9468
 
9241
- /* Modal anchored to body (default) */
9242
- .bc-modal--container-body {
9243
- position: fixed;
9244
- max-height: 90vh;
9245
- max-width: 90vw;
9469
+ /* Search input */
9470
+ .bc-multi-select__search {
9471
+ width: 100%;
9472
+ background: transparent;
9473
+ border: none;
9474
+ outline: none;
9475
+ font: inherit;
9476
+ color: inherit;
9477
+ padding: var(--spacing-sm) var(--spacing-md);
9478
+ margin: 0;
9479
+ background-color: var(--color-gray-50);
9480
+ border-bottom: var(--border-width-thin) solid var(--color-gray-300);
9246
9481
  }
9247
9482
 
9248
- /* Modal anchored to element container */
9249
- .bc-modal--container-element {
9250
- position: absolute;
9251
- max-height: 90%;
9252
- max-width: 90%;
9483
+ .bc-multi-select__search::placeholder {
9484
+ color: var(--color-base-400);
9253
9485
  }
9254
9486
 
9255
- /* Modal positioning - Center (default) */
9256
- .bc-modal--position-center.bc-modal--container-body {
9257
- top: 50%;
9258
- left: 50%;
9259
- transform: translate(-50%, -50%);
9487
+ /* Actions bar */
9488
+ .bc-multi-select__actions {
9489
+ display: flex;
9490
+ align-items: center;
9491
+ gap: var(--spacing-sm);
9492
+ padding: var(--spacing-xs) var(--spacing-md);
9493
+ border-bottom: var(--border-width-thin) solid var(--color-base-200);
9494
+ font-size: var(--font-size-xs);
9260
9495
  }
9261
9496
 
9262
- .bc-modal--position-center.bc-modal--container-element {
9263
- top: 50%;
9264
- left: 50%;
9265
- transform: translate(-50%, -50%);
9497
+ .bc-multi-select__action {
9498
+ background: none;
9499
+ border: none;
9500
+ cursor: pointer;
9501
+ color: var(--color-primary-600);
9502
+ font-size: inherit;
9503
+ font-family: inherit;
9504
+ padding: var(--spacing-xs) var(--spacing-xs);
9505
+ border-radius: var(--radius-sm, 3px);
9506
+ transition: background-color 120ms ease;
9266
9507
  }
9267
9508
 
9268
- /* Modal positioning - Top */
9269
- .bc-modal--position-top.bc-modal--container-body {
9270
- top: var(--spacing-2xl);
9271
- left: 50%;
9272
- transform: translateX(-50%);
9509
+ .bc-multi-select__action:hover {
9510
+ background-color: var(--color-primary-50);
9273
9511
  }
9274
9512
 
9275
- .bc-modal--position-top.bc-modal--container-element {
9276
- top: 5%;
9277
- left: 50%;
9278
- transform: translateX(-50%);
9513
+ .bc-multi-select__action-sep {
9514
+ color: var(--color-base-300);
9279
9515
  }
9280
9516
 
9281
- /* Modal positioning - Bottom */
9282
- .bc-modal--position-bottom.bc-modal--container-body {
9283
- bottom: var(--spacing-2xl);
9284
- left: 50%;
9285
- transform: translateX(-50%);
9517
+ /* Loading */
9518
+ .bc-multi-select__loading {
9519
+ padding: var(--spacing-md);
9520
+ text-align: center;
9521
+ font-size: var(--font-size-sm);
9522
+ color: var(--color-base-500);
9286
9523
  }
9287
9524
 
9288
- .bc-modal--position-bottom.bc-modal--container-element {
9289
- bottom: 5%;
9290
- left: 50%;
9291
- transform: translateX(-50%);
9525
+ /* Listbox */
9526
+ .bc-multi-select__listbox {
9527
+ overflow-y: auto;
9528
+ flex: 1;
9529
+ padding: var(--spacing-xs) 0;
9292
9530
  }
9293
9531
 
9294
- /* Modal positioning - Left */
9295
- .bc-modal--position-left.bc-modal--container-body {
9296
- top: 50%;
9297
- left: var(--spacing-2xl);
9298
- transform: translateY(-50%);
9532
+ /* Empty state */
9533
+ .bc-multi-select__empty {
9534
+ padding: var(--spacing-md);
9535
+ text-align: center;
9536
+ font-size: var(--font-size-sm);
9537
+ color: var(--color-base-400);
9299
9538
  }
9300
9539
 
9301
- .bc-modal--position-left.bc-modal--container-element {
9302
- top: 50%;
9303
- left: 5%;
9304
- transform: translateY(-50%);
9540
+ /* Option item */
9541
+ .bc-multi-select__option {
9542
+ display: flex;
9543
+ align-items: center;
9544
+ gap: var(--spacing-sm);
9545
+ padding: var(--spacing-sm) var(--spacing-md);
9546
+ cursor: pointer;
9547
+ font-size: var(--font-size-sm);
9548
+ color: var(--color-base-700);
9549
+ transition: background-color 100ms ease;
9550
+ user-select: none;
9305
9551
  }
9306
9552
 
9307
- /* Modal positioning - Right */
9308
- .bc-modal--position-right.bc-modal--container-body {
9309
- top: 50%;
9310
- right: var(--spacing-2xl);
9311
- transform: translateY(-50%);
9553
+ .bc-multi-select__option:hover {
9554
+ background-color: var(--color-base-50);
9312
9555
  }
9313
9556
 
9314
- .bc-modal--position-right.bc-modal--container-element {
9315
- top: 50%;
9316
- right: 5%;
9317
- transform: translateY(-50%);
9557
+ .bc-multi-select__option--focused {
9558
+ background-color: var(--color-primary-50);
9318
9559
  }
9319
9560
 
9320
- /* Modal positioning - Top Left */
9321
- .bc-modal--position-top-start.bc-modal--container-body {
9561
+ .bc-multi-select__option--selected {
9562
+ color: var(--color-primary-700);
9563
+ font-weight: var(--font-weight-medium, 500);
9564
+ }
9565
+
9566
+ .bc-multi-select__option--grouped {
9567
+ padding-left: calc(var(--spacing-md) + var(--spacing-md));
9568
+ }
9569
+
9570
+ .bc-multi-select__option[aria-disabled='true'] {
9571
+ opacity: 0.4;
9572
+ cursor: not-allowed;
9573
+ }
9574
+
9575
+ /* Check icon container */
9576
+ .bc-multi-select__option-check {
9577
+ display: flex;
9578
+ align-items: center;
9579
+ justify-content: center;
9580
+ width: 16px;
9581
+ height: 16px;
9582
+ flex-shrink: 0;
9583
+ border: var(--border-width-thin) solid var(--color-base-300);
9584
+ border-radius: var(--radius-xs, 2px);
9585
+ background: var(--color-white);
9586
+ transition:
9587
+ border-color 100ms ease,
9588
+ background-color 100ms ease;
9589
+ }
9590
+
9591
+ .bc-multi-select__option--selected .bc-multi-select__option-check {
9592
+ border-color: var(--color-primary-500);
9593
+ background-color: var(--color-primary-50);
9594
+ }
9595
+
9596
+ .bc-multi-select__option-label {
9597
+ flex: 1;
9598
+ overflow: hidden;
9599
+ text-overflow: ellipsis;
9600
+ white-space: nowrap;
9601
+ }
9602
+
9603
+ /* Group */
9604
+ .bc-multi-select__group {
9605
+ padding: var(--spacing-xs) 0;
9606
+ }
9607
+
9608
+ .bc-multi-select__group-label {
9609
+ padding: var(--spacing-xs) var(--spacing-md);
9610
+ font-size: var(--font-size-xs);
9611
+ font-weight: var(--font-weight-semibold, 600);
9612
+ color: var(--color-base-500);
9613
+ text-transform: uppercase;
9614
+ letter-spacing: 0.03em;
9615
+ }
9616
+
9617
+ /* Separator */
9618
+ .bc-multi-select__separator {
9619
+ height: 0;
9620
+ margin: var(--spacing-xs) var(--spacing-md);
9621
+ border-top: var(--border-width-thin) solid var(--color-base-200);
9622
+ }
9623
+
9624
+ /* Footer count */
9625
+ .bc-multi-select__footer {
9626
+ padding: var(--spacing-xs) var(--spacing-md);
9627
+ border-top: var(--border-width-thin) solid var(--color-base-200);
9628
+ font-size: var(--font-size-xs);
9629
+ color: var(--color-base-500);
9630
+ text-align: right;
9631
+ }
9632
+
9633
+ /* Dark mode */
9634
+ .dark .bc-multi-select__placeholder {
9635
+ color: var(--color-neutral-500);
9636
+ }
9637
+
9638
+ .dark .bc-multi-select__dropdown {
9639
+ background: var(--color-base-800);
9640
+ border-color: var(--color-base-600);
9641
+ }
9642
+
9643
+ .dark .bc-multi-select__search {
9644
+ background-color: var(--color-base-700);
9645
+ border-bottom-color: var(--color-base-600);
9646
+ color: var(--color-base-100);
9647
+ }
9648
+
9649
+ .dark .bc-multi-select__search::placeholder {
9650
+ color: var(--color-base-400);
9651
+ }
9652
+
9653
+ .dark .bc-multi-select__actions {
9654
+ border-bottom-color: var(--color-base-600);
9655
+ }
9656
+
9657
+ .dark .bc-multi-select__action {
9658
+ color: var(--color-primary-400);
9659
+ }
9660
+
9661
+ .dark .bc-multi-select__action:hover {
9662
+ background-color: var(--color-base-700);
9663
+ }
9664
+
9665
+ .dark .bc-multi-select__action-sep {
9666
+ color: var(--color-base-600);
9667
+ }
9668
+
9669
+ .dark .bc-multi-select__option {
9670
+ color: var(--color-base-200);
9671
+ }
9672
+
9673
+ .dark .bc-multi-select__option:hover {
9674
+ background-color: var(--color-base-700);
9675
+ }
9676
+
9677
+ .dark .bc-multi-select__option--focused {
9678
+ background-color: var(--color-base-700);
9679
+ }
9680
+
9681
+ .dark .bc-multi-select__option--selected {
9682
+ color: var(--color-primary-300);
9683
+ }
9684
+
9685
+ .dark .bc-multi-select__option-check {
9686
+ border-color: var(--color-base-500);
9687
+ background: var(--color-base-700);
9688
+ }
9689
+
9690
+ .dark .bc-multi-select__option--selected .bc-multi-select__option-check {
9691
+ border-color: var(--color-primary-400);
9692
+ background-color: var(--color-primary-900);
9693
+ }
9694
+
9695
+ .dark .bc-multi-select__group-label {
9696
+ color: var(--color-base-400);
9697
+ }
9698
+
9699
+ .dark .bc-multi-select__separator {
9700
+ border-top-color: var(--color-base-600);
9701
+ }
9702
+
9703
+ .dark .bc-multi-select__empty {
9704
+ color: var(--color-base-500);
9705
+ }
9706
+
9707
+ .dark .bc-multi-select__loading {
9708
+ color: var(--color-base-400);
9709
+ }
9710
+
9711
+ .dark .bc-multi-select__footer {
9712
+ border-top-color: var(--color-base-600);
9713
+ color: var(--color-base-400);
9714
+ }
9715
+
9716
+ /* Modal Component */
9717
+ .bc-modal {
9718
+ z-index: var(--z-index-modal);
9719
+ width: 100%;
9720
+ display: flex;
9721
+ flex-direction: column;
9722
+ border-radius: var(--radius-overlay, var(--radius-lg));
9723
+ box-shadow: var(--shadow-overlay, var(--shadow-xl));
9724
+ background-color: var(--color-base-100);
9725
+ border: var(--border-width-thick) solid var(--color-base-300);
9726
+ overflow: hidden;
9727
+ transition: all var(--motion-transition-overlay) var(--motion-easing-emphasis);
9728
+ }
9729
+
9730
+ /* Modal anchored to body (default) */
9731
+ .bc-modal--container-body {
9732
+ position: fixed;
9733
+ max-height: 90vh;
9734
+ max-width: 90vw;
9735
+ }
9736
+
9737
+ /* Modal anchored to element container */
9738
+ .bc-modal--container-element {
9739
+ position: absolute;
9740
+ max-height: 90%;
9741
+ max-width: 90%;
9742
+ }
9743
+
9744
+ /* Modal positioning - Center (default) */
9745
+ .bc-modal--position-center.bc-modal--container-body {
9746
+ top: 50%;
9747
+ left: 50%;
9748
+ transform: translate(-50%, -50%);
9749
+ }
9750
+
9751
+ .bc-modal--position-center.bc-modal--container-element {
9752
+ top: 50%;
9753
+ left: 50%;
9754
+ transform: translate(-50%, -50%);
9755
+ }
9756
+
9757
+ /* Modal positioning - Top */
9758
+ .bc-modal--position-top.bc-modal--container-body {
9759
+ top: var(--spacing-2xl);
9760
+ left: 50%;
9761
+ transform: translateX(-50%);
9762
+ }
9763
+
9764
+ .bc-modal--position-top.bc-modal--container-element {
9765
+ top: 5%;
9766
+ left: 50%;
9767
+ transform: translateX(-50%);
9768
+ }
9769
+
9770
+ /* Modal positioning - Bottom */
9771
+ .bc-modal--position-bottom.bc-modal--container-body {
9772
+ bottom: var(--spacing-2xl);
9773
+ left: 50%;
9774
+ transform: translateX(-50%);
9775
+ }
9776
+
9777
+ .bc-modal--position-bottom.bc-modal--container-element {
9778
+ bottom: 5%;
9779
+ left: 50%;
9780
+ transform: translateX(-50%);
9781
+ }
9782
+
9783
+ /* Modal positioning - Left */
9784
+ .bc-modal--position-left.bc-modal--container-body {
9785
+ top: 50%;
9786
+ left: var(--spacing-2xl);
9787
+ transform: translateY(-50%);
9788
+ }
9789
+
9790
+ .bc-modal--position-left.bc-modal--container-element {
9791
+ top: 50%;
9792
+ left: 5%;
9793
+ transform: translateY(-50%);
9794
+ }
9795
+
9796
+ /* Modal positioning - Right */
9797
+ .bc-modal--position-right.bc-modal--container-body {
9798
+ top: 50%;
9799
+ right: var(--spacing-2xl);
9800
+ transform: translateY(-50%);
9801
+ }
9802
+
9803
+ .bc-modal--position-right.bc-modal--container-element {
9804
+ top: 50%;
9805
+ right: 5%;
9806
+ transform: translateY(-50%);
9807
+ }
9808
+
9809
+ /* Modal positioning - Top Left */
9810
+ .bc-modal--position-top-start.bc-modal--container-body {
9322
9811
  top: var(--spacing-2xl);
9323
9812
  left: var(--spacing-2xl);
9324
9813
  }
@@ -15742,10 +16231,10 @@ span.bc-sidebar-link {
15742
16231
  }
15743
16232
  }
15744
16233
 
15745
- /* Advanced Slider Component */
15746
- .bc-advanced-slider {
15747
- --slider-color: var(--color-primary-500);
15748
- --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);
15749
16238
 
15750
16239
  position: relative;
15751
16240
  display: flex;
@@ -15756,14 +16245,18 @@ span.bc-sidebar-link {
15756
16245
  user-select: none;
15757
16246
  }
15758
16247
 
15759
- .bc-advanced-slider--disabled {
16248
+ .bc-range-slider--disabled {
15760
16249
  opacity: 0.5;
15761
16250
  pointer-events: none;
15762
16251
  cursor: not-allowed;
15763
16252
  }
15764
16253
 
16254
+ .bc-range-slider--readonly {
16255
+ pointer-events: none;
16256
+ }
16257
+
15765
16258
  /* Track */
15766
- .bc-advanced-slider__track {
16259
+ .bc-range-slider__track {
15767
16260
  position: relative;
15768
16261
  width: 100%;
15769
16262
  background-color: var(--color-gray-200);
@@ -15771,17 +16264,25 @@ span.bc-sidebar-link {
15771
16264
  }
15772
16265
 
15773
16266
  /* Filled portion */
15774
- .bc-advanced-slider__fill {
16267
+ .bc-range-slider__fill {
15775
16268
  position: absolute;
15776
16269
  top: 0;
15777
16270
  height: 100%;
15778
- background-color: var(--slider-color);
16271
+ background-color: var(--rs-color);
15779
16272
  border-radius: var(--radius-full);
15780
16273
  pointer-events: none;
15781
16274
  }
15782
16275
 
15783
- /* Thumb container (for positioning value label + thumb) */
15784
- .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 {
15785
16286
  position: absolute;
15786
16287
  top: 50%;
15787
16288
  transform: translate(-50%, -50%);
@@ -15792,9 +16293,9 @@ span.bc-sidebar-link {
15792
16293
  }
15793
16294
 
15794
16295
  /* Thumb */
15795
- .bc-advanced-slider__thumb {
16296
+ .bc-range-slider__thumb {
15796
16297
  background-color: var(--color-white);
15797
- border: var(--border-width-medium) solid var(--slider-color);
16298
+ border: var(--border-width-medium) solid var(--rs-color);
15798
16299
  border-radius: var(--radius-full);
15799
16300
  cursor: grab;
15800
16301
  box-shadow: var(--shadow-sm);
@@ -15803,23 +16304,23 @@ span.bc-sidebar-link {
15803
16304
  transform var(--motion-transition-fast) var(--motion-easing-standard);
15804
16305
  }
15805
16306
 
15806
- .bc-advanced-slider__thumb:hover {
16307
+ .bc-range-slider__thumb:hover {
15807
16308
  box-shadow: var(--shadow-md);
15808
16309
  transform: scale(1.15);
15809
16310
  }
15810
16311
 
15811
- .bc-advanced-slider__thumb:active {
16312
+ .bc-range-slider__thumb:active {
15812
16313
  cursor: grabbing;
15813
16314
  transform: scale(1.2);
15814
16315
  }
15815
16316
 
15816
- .bc-advanced-slider__thumb:focus-visible {
16317
+ .bc-range-slider__thumb:focus-visible {
15817
16318
  outline: var(--outline-width-focus) solid var(--color-primary-500);
15818
16319
  outline-offset: 2px;
15819
16320
  }
15820
16321
 
15821
- /* Custom thumb wrapper — no default visual styling */
15822
- .bc-advanced-slider__thumb-custom {
16322
+ /* Custom thumb wrapper */
16323
+ .bc-range-slider__thumb-custom {
15823
16324
  cursor: grab;
15824
16325
  display: flex;
15825
16326
  align-items: center;
@@ -15827,20 +16328,20 @@ span.bc-sidebar-link {
15827
16328
  outline: none;
15828
16329
  }
15829
16330
 
15830
- .bc-advanced-slider__thumb-custom:active {
16331
+ .bc-range-slider__thumb-custom:active {
15831
16332
  cursor: grabbing;
15832
16333
  }
15833
16334
 
15834
- .bc-advanced-slider__thumb-custom:focus-visible {
16335
+ .bc-range-slider__thumb-custom:focus-visible {
15835
16336
  outline: var(--outline-width-focus) solid var(--color-primary-500);
15836
16337
  outline-offset: 2px;
15837
16338
  }
15838
16339
 
15839
16340
  /* Value label */
15840
- .bc-advanced-slider__value-label {
16341
+ .bc-range-slider__value-label {
15841
16342
  position: absolute;
15842
16343
  white-space: nowrap;
15843
- background-color: var(--slider-color);
16344
+ background-color: var(--rs-color);
15844
16345
  color: var(--color-white);
15845
16346
  border-radius: var(--radius-sm);
15846
16347
  font-weight: var(--font-weight-semibold);
@@ -15850,7 +16351,7 @@ span.bc-sidebar-link {
15850
16351
  }
15851
16352
 
15852
16353
  /* Ticks container */
15853
- .bc-advanced-slider__ticks {
16354
+ .bc-range-slider__ticks {
15854
16355
  position: absolute;
15855
16356
  top: 0;
15856
16357
  left: 0;
@@ -15860,7 +16361,7 @@ span.bc-sidebar-link {
15860
16361
  }
15861
16362
 
15862
16363
  /* Individual tick */
15863
- .bc-advanced-slider__tick {
16364
+ .bc-range-slider__tick {
15864
16365
  position: absolute;
15865
16366
  top: 50%;
15866
16367
  transform: translateX(-50%);
@@ -15869,7 +16370,7 @@ span.bc-sidebar-link {
15869
16370
  align-items: center;
15870
16371
  }
15871
16372
 
15872
- .bc-advanced-slider__tick::before {
16373
+ .bc-range-slider__tick::before {
15873
16374
  content: '';
15874
16375
  display: block;
15875
16376
  background-color: var(--color-gray-400);
@@ -15877,7 +16378,7 @@ span.bc-sidebar-link {
15877
16378
  }
15878
16379
 
15879
16380
  /* Tick label */
15880
- .bc-advanced-slider__tick-label {
16381
+ .bc-range-slider__tick-label {
15881
16382
  position: absolute;
15882
16383
  white-space: nowrap;
15883
16384
  color: var(--text-muted);
@@ -15886,164 +16387,283 @@ span.bc-sidebar-link {
15886
16387
  /* ── Size variants ── */
15887
16388
 
15888
16389
  /* xs */
15889
- .bc-advanced-slider--size-xs {
16390
+ .bc-range-slider--size-xs {
15890
16391
  padding: var(--spacing-lg) var(--spacing-smh) var(--spacing-md);
15891
16392
  }
15892
- .bc-advanced-slider--size-xs .bc-advanced-slider__track {
16393
+ .bc-range-slider--size-xs .bc-range-slider__track {
15893
16394
  height: var(--spacing-xs);
15894
16395
  }
15895
- .bc-advanced-slider--size-xs .bc-advanced-slider__thumb {
16396
+ .bc-range-slider--size-xs .bc-range-slider__thumb {
15896
16397
  width: calc(var(--spacing-base) * 2.5);
15897
16398
  height: calc(var(--spacing-base) * 2.5);
15898
16399
  }
15899
- .bc-advanced-slider--size-xs .bc-advanced-slider__value-label {
16400
+ .bc-range-slider--size-xs .bc-range-slider__value-label {
15900
16401
  font-size: var(--font-size-2xs);
15901
16402
  padding: var(--spacing-px) var(--spacing-sm);
15902
16403
  bottom: calc(100% + var(--spacing-sm));
15903
16404
  }
15904
- .bc-advanced-slider--size-xs .bc-advanced-slider__tick::before {
16405
+ .bc-range-slider--size-xs .bc-range-slider__tick::before {
15905
16406
  width: var(--spacing-px);
15906
16407
  height: var(--spacing-smh);
15907
16408
  margin-top: var(--spacing-sm);
15908
16409
  }
15909
- .bc-advanced-slider--size-xs .bc-advanced-slider__tick-label {
16410
+ .bc-range-slider--size-xs .bc-range-slider__tick-label {
15910
16411
  top: calc(var(--spacing-base) * 2.5);
15911
16412
  font-size: var(--font-size-2xs);
15912
16413
  }
15913
16414
 
15914
16415
  /* sm */
15915
- .bc-advanced-slider--size-sm {
16416
+ .bc-range-slider--size-sm {
15916
16417
  padding: var(--spacing-xl) var(--spacing-md) var(--spacing-lg);
15917
16418
  }
15918
- .bc-advanced-slider--size-sm .bc-advanced-slider__track {
16419
+ .bc-range-slider--size-sm .bc-range-slider__track {
15919
16420
  height: calc(var(--spacing-base) * 0.75);
15920
16421
  }
15921
- .bc-advanced-slider--size-sm .bc-advanced-slider__thumb {
16422
+ .bc-range-slider--size-sm .bc-range-slider__thumb {
15922
16423
  width: calc(var(--spacing-base) * 3.5);
15923
16424
  height: calc(var(--spacing-base) * 3.5);
15924
16425
  }
15925
- .bc-advanced-slider--size-sm .bc-advanced-slider__value-label {
16426
+ .bc-range-slider--size-sm .bc-range-slider__value-label {
15926
16427
  font-size: var(--font-size-xs);
15927
16428
  padding: var(--spacing-xs) calc(var(--spacing-base) * 1.25);
15928
16429
  bottom: calc(100% + calc(var(--spacing-base) * 1.25));
15929
16430
  }
15930
- .bc-advanced-slider--size-sm .bc-advanced-slider__tick::before {
16431
+ .bc-range-slider--size-sm .bc-range-slider__tick::before {
15931
16432
  width: var(--spacing-px);
15932
16433
  height: var(--spacing-md);
15933
16434
  margin-top: calc(var(--spacing-base) * 1.25);
15934
16435
  }
15935
- .bc-advanced-slider--size-sm .bc-advanced-slider__tick-label {
16436
+ .bc-range-slider--size-sm .bc-range-slider__tick-label {
15936
16437
  top: calc(var(--spacing-base) * 3.5);
15937
16438
  font-size: var(--font-size-2xs);
15938
16439
  }
15939
16440
 
15940
16441
  /* md (default) */
15941
- .bc-advanced-slider--size-md {
16442
+ .bc-range-slider--size-md {
15942
16443
  padding: var(--spacing-2xl) calc(var(--spacing-base) * 2.5) var(--spacing-xl);
15943
16444
  }
15944
- .bc-advanced-slider--size-md .bc-advanced-slider__track {
16445
+ .bc-range-slider--size-md .bc-range-slider__track {
15945
16446
  height: var(--spacing-sm);
15946
16447
  }
15947
- .bc-advanced-slider--size-md .bc-advanced-slider__thumb {
16448
+ .bc-range-slider--size-md .bc-range-slider__thumb {
15948
16449
  width: calc(var(--spacing-base) * 4.5);
15949
16450
  height: calc(var(--spacing-base) * 4.5);
15950
16451
  }
15951
- .bc-advanced-slider--size-md .bc-advanced-slider__value-label {
16452
+ .bc-range-slider--size-md .bc-range-slider__value-label {
15952
16453
  font-size: var(--font-size-sm);
15953
16454
  padding: var(--spacing-xs) var(--spacing-smh);
15954
16455
  bottom: calc(100% + var(--spacing-smh));
15955
16456
  }
15956
- .bc-advanced-slider--size-md .bc-advanced-slider__tick::before {
16457
+ .bc-range-slider--size-md .bc-range-slider__tick::before {
15957
16458
  width: var(--spacing-xs);
15958
16459
  height: calc(var(--spacing-base) * 2.5);
15959
16460
  margin-top: var(--spacing-smh);
15960
16461
  }
15961
- .bc-advanced-slider--size-md .bc-advanced-slider__tick-label {
16462
+ .bc-range-slider--size-md .bc-range-slider__tick-label {
15962
16463
  top: calc(var(--spacing-base) * 4.5);
15963
16464
  font-size: var(--font-size-xs);
15964
16465
  }
15965
16466
 
15966
16467
  /* lg */
15967
- .bc-advanced-slider--size-lg {
16468
+ .bc-range-slider--size-lg {
15968
16469
  padding: var(--spacing-3xl) var(--spacing-mdh) var(--spacing-2xl);
15969
16470
  }
15970
- .bc-advanced-slider--size-lg .bc-advanced-slider__track {
16471
+ .bc-range-slider--size-lg .bc-range-slider__track {
15971
16472
  height: var(--spacing-smh);
15972
16473
  }
15973
- .bc-advanced-slider--size-lg .bc-advanced-slider__thumb {
16474
+ .bc-range-slider--size-lg .bc-range-slider__thumb {
15974
16475
  width: calc(var(--spacing-base) * 5.5);
15975
16476
  height: calc(var(--spacing-base) * 5.5);
15976
16477
  }
15977
- .bc-advanced-slider--size-lg .bc-advanced-slider__value-label {
16478
+ .bc-range-slider--size-lg .bc-range-slider__value-label {
15978
16479
  font-size: var(--font-size-md);
15979
16480
  padding: calc(var(--spacing-base) * 0.75) var(--spacing-md);
15980
16481
  bottom: calc(100% + var(--spacing-md));
15981
16482
  }
15982
- .bc-advanced-slider--size-lg .bc-advanced-slider__tick::before {
16483
+ .bc-range-slider--size-lg .bc-range-slider__tick::before {
15983
16484
  width: var(--spacing-xs);
15984
16485
  height: var(--spacing-mdh);
15985
16486
  margin-top: var(--spacing-md);
15986
16487
  }
15987
- .bc-advanced-slider--size-lg .bc-advanced-slider__tick-label {
16488
+ .bc-range-slider--size-lg .bc-range-slider__tick-label {
15988
16489
  top: calc(var(--spacing-base) * 5.5);
15989
16490
  font-size: var(--font-size-sm);
15990
16491
  }
15991
16492
 
15992
16493
  /* xl */
15993
- .bc-advanced-slider--size-xl {
16494
+ .bc-range-slider--size-xl {
15994
16495
  padding: var(--spacing-4xl) calc(var(--spacing-base) * 3.5) var(--spacing-3xl);
15995
16496
  }
15996
- .bc-advanced-slider--size-xl .bc-advanced-slider__track {
16497
+ .bc-range-slider--size-xl .bc-range-slider__track {
15997
16498
  height: var(--spacing-md);
15998
16499
  }
15999
- .bc-advanced-slider--size-xl .bc-advanced-slider__thumb {
16500
+ .bc-range-slider--size-xl .bc-range-slider__thumb {
16000
16501
  width: calc(var(--spacing-base) * 6.5);
16001
16502
  height: calc(var(--spacing-base) * 6.5);
16002
16503
  }
16003
- .bc-advanced-slider--size-xl .bc-advanced-slider__value-label {
16504
+ .bc-range-slider--size-xl .bc-range-slider__value-label {
16004
16505
  font-size: var(--font-size-lg);
16005
16506
  padding: var(--spacing-sm) calc(var(--spacing-base) * 2.5);
16006
16507
  bottom: calc(100% + calc(var(--spacing-base) * 2.5));
16007
16508
  }
16008
- .bc-advanced-slider--size-xl .bc-advanced-slider__tick::before {
16509
+ .bc-range-slider--size-xl .bc-range-slider__tick::before {
16009
16510
  width: var(--spacing-xs);
16010
16511
  height: calc(var(--spacing-base) * 3.5);
16011
16512
  margin-top: calc(var(--spacing-base) * 2.5);
16012
16513
  }
16013
- .bc-advanced-slider--size-xl .bc-advanced-slider__tick-label {
16514
+ .bc-range-slider--size-xl .bc-range-slider__tick-label {
16014
16515
  top: calc(var(--spacing-base) * 6.5);
16015
16516
  font-size: var(--font-size-md);
16016
16517
  }
16017
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
+
16018
16638
  /* Dark mode */
16019
- .dark .bc-advanced-slider__track {
16639
+ .dark .bc-range-slider__track {
16020
16640
  background-color: var(--bg-subtle);
16021
16641
  }
16022
16642
 
16023
- .dark .bc-advanced-slider__fill {
16024
- background-color: var(--slider-color-dark);
16643
+ .dark .bc-range-slider__fill {
16644
+ background-color: var(--rs-color-dark);
16025
16645
  }
16026
16646
 
16027
- .dark .bc-advanced-slider__thumb {
16647
+ .dark .bc-range-slider__thumb {
16028
16648
  background-color: var(--text-normal);
16029
- border-color: var(--slider-color-dark);
16649
+ border-color: var(--rs-color-dark);
16030
16650
  }
16031
16651
 
16032
- .dark .bc-advanced-slider__value-label {
16033
- background-color: var(--slider-color-dark);
16652
+ .dark .bc-range-slider__value-label {
16653
+ background-color: var(--rs-color-dark);
16034
16654
  }
16035
16655
 
16036
- .dark .bc-advanced-slider__tick::before {
16656
+ .dark .bc-range-slider__tick::before {
16037
16657
  background-color: var(--color-gray-500);
16038
16658
  }
16039
16659
 
16040
- .dark .bc-advanced-slider__tick-label {
16660
+ .dark .bc-range-slider__tick-label {
16041
16661
  color: var(--text-muted);
16042
16662
  }
16043
16663
 
16044
16664
  /* Reduced motion */
16045
16665
  @media (prefers-reduced-motion: reduce) {
16046
- .bc-advanced-slider__thumb {
16666
+ .bc-range-slider__thumb {
16047
16667
  transition: none;
16048
16668
  }
16049
16669
  }
@@ -16415,6 +17035,341 @@ span.bc-sidebar-link {
16415
17035
  color: var(--text-muted);
16416
17036
  }
16417
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
+
16418
17373
  /* Sortable Header */
16419
17374
  .bc-sortable-header {
16420
17375
  cursor: pointer;