@revikornmann/muka-ui 0.28.0 → 0.28.1

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.
@@ -2439,38 +2439,6 @@ body {
2439
2439
  }
2440
2440
 
2441
2441
 
2442
- /* VoiceMessage */
2443
- /* VoiceMessage Component Styles */
2444
-
2445
- .muka-voice-message {
2446
- display: flex;
2447
- align-items: center;
2448
- gap: var(--spacing-3);
2449
- width: 100%;
2450
- min-width: min(16rem, 60vw);
2451
- }
2452
-
2453
- .muka-voice-message__wave {
2454
- flex: 1 1 auto;
2455
- min-width: 0;
2456
- }
2457
-
2458
- .muka-voice-message__time {
2459
- flex: 0 0 auto;
2460
- white-space: nowrap;
2461
- font-size: var(--text-label-sm-fontSize, 0.75rem);
2462
- line-height: var(--text-label-sm-lineHeight, 1);
2463
- font-variant-numeric: tabular-nums;
2464
- color: var(--color-text-subtle-default);
2465
- }
2466
-
2467
- /* On the tinted own bubble the surface is the action color, so the timer flips
2468
- * to the inverse text token for contrast. */
2469
- .muka-voice-message--own .muka-voice-message__time {
2470
- color: var(--color-text-default-inverse);
2471
- }
2472
-
2473
-
2474
2442
  /* View */
2475
2443
  /* View Component Styles */
2476
2444
 
@@ -2581,6 +2549,38 @@ body {
2581
2549
  }
2582
2550
 
2583
2551
 
2552
+ /* VoiceMessage */
2553
+ /* VoiceMessage Component Styles */
2554
+
2555
+ .muka-voice-message {
2556
+ display: flex;
2557
+ align-items: center;
2558
+ gap: var(--spacing-3);
2559
+ width: 100%;
2560
+ min-width: min(16rem, 60vw);
2561
+ }
2562
+
2563
+ .muka-voice-message__wave {
2564
+ flex: 1 1 auto;
2565
+ min-width: 0;
2566
+ }
2567
+
2568
+ .muka-voice-message__time {
2569
+ flex: 0 0 auto;
2570
+ white-space: nowrap;
2571
+ font-size: var(--text-label-sm-fontSize, 0.75rem);
2572
+ line-height: var(--text-label-sm-lineHeight, 1);
2573
+ font-variant-numeric: tabular-nums;
2574
+ color: var(--color-text-subtle-default);
2575
+ }
2576
+
2577
+ /* On the tinted own bubble the surface is the action color, so the timer flips
2578
+ * to the inverse text token for contrast. */
2579
+ .muka-voice-message--own .muka-voice-message__time {
2580
+ color: var(--color-text-default-inverse);
2581
+ }
2582
+
2583
+
2584
2584
  /* Typography */
2585
2585
  .muka-typography-catalog {
2586
2586
  display: flex;
@@ -7348,6 +7348,178 @@ body {
7348
7348
  }
7349
7349
 
7350
7350
 
7351
+ /* Progress */
7352
+ /* Progress Component Styles - Using Muka Design Tokens */
7353
+
7354
+ /* ========================================
7355
+ BAR VARIANT
7356
+ ======================================== */
7357
+
7358
+ .muka-progress--bar {
7359
+ display: flex;
7360
+ align-items: center;
7361
+ gap: var(--spacing-2);
7362
+ width: 100%;
7363
+ }
7364
+
7365
+ .muka-progress--bar .muka-progress__track {
7366
+ flex: 1;
7367
+ background-color: var(--color-surface-level1);
7368
+ border-radius: var(--border-radius-full);
7369
+ overflow: hidden;
7370
+ }
7371
+
7372
+ .muka-progress--bar.muka-progress--sm .muka-progress__track {
7373
+ height: var(--progress-size-bar-height-sm);
7374
+ }
7375
+
7376
+ .muka-progress--bar.muka-progress--md .muka-progress__track {
7377
+ height: var(--progress-size-bar-height-md);
7378
+ }
7379
+
7380
+ .muka-progress--bar.muka-progress--lg .muka-progress__track {
7381
+ height: var(--progress-size-bar-height-lg);
7382
+ }
7383
+
7384
+ .muka-progress--bar .muka-progress__fill {
7385
+ height: 100%;
7386
+ background-color: var(--color-action-default);
7387
+ border-radius: var(--border-radius-full);
7388
+ transition: width 0.3s ease;
7389
+ }
7390
+
7391
+ .muka-progress--bar .muka-progress__label {
7392
+ flex-shrink: 0;
7393
+ font-family: var(--text-label-sm-semibold-fontFamily);
7394
+ font-weight: var(--text-label-sm-semibold-fontWeight);
7395
+ font-size: var(--text-label-sm-semibold-fontSize);
7396
+ line-height: var(--text-label-sm-semibold-lineHeight);
7397
+ color: var(--color-text-default-default);
7398
+ min-width: 3ch;
7399
+ text-align: right;
7400
+ }
7401
+
7402
+ /* Indeterminate animation for bar */
7403
+ .muka-progress--bar.muka-progress--indeterminate .muka-progress__fill {
7404
+ width: 40%;
7405
+ animation: muka-progress-bar-indeterminate 1.5s ease-in-out infinite;
7406
+ }
7407
+
7408
+ @keyframes muka-progress-bar-indeterminate {
7409
+ 0% {
7410
+ transform: translateX(-100%);
7411
+ }
7412
+ 100% {
7413
+ transform: translateX(250%);
7414
+ }
7415
+ }
7416
+
7417
+ /* ========================================
7418
+ CIRCLE VARIANT
7419
+ ======================================== */
7420
+
7421
+ .muka-progress--circle {
7422
+ position: relative;
7423
+ display: inline-flex;
7424
+ align-items: center;
7425
+ justify-content: center;
7426
+ }
7427
+
7428
+ .muka-progress--circle.muka-progress--sm {
7429
+ width: var(--progress-size-circle-diameter-sm);
7430
+ height: var(--progress-size-circle-diameter-sm);
7431
+ }
7432
+
7433
+ .muka-progress--circle.muka-progress--md {
7434
+ width: var(--progress-size-circle-diameter-md);
7435
+ height: var(--progress-size-circle-diameter-md);
7436
+ }
7437
+
7438
+ .muka-progress--circle.muka-progress--lg {
7439
+ width: var(--progress-size-circle-diameter-lg);
7440
+ height: var(--progress-size-circle-diameter-lg);
7441
+ }
7442
+
7443
+ .muka-progress__circle {
7444
+ width: 100%;
7445
+ height: 100%;
7446
+ transform: rotate(-90deg);
7447
+ }
7448
+
7449
+ .muka-progress--circle .muka-progress__track {
7450
+ fill: none;
7451
+ stroke: var(--color-surface-level1);
7452
+ }
7453
+
7454
+ .muka-progress--circle.muka-progress--sm .muka-progress__track,
7455
+ .muka-progress--circle.muka-progress--sm .muka-progress__fill {
7456
+ stroke-width: var(--progress-size-circle-strokeWidth-sm);
7457
+ }
7458
+
7459
+ .muka-progress--circle.muka-progress--md .muka-progress__track,
7460
+ .muka-progress--circle.muka-progress--md .muka-progress__fill {
7461
+ stroke-width: var(--progress-size-circle-strokeWidth-md);
7462
+ }
7463
+
7464
+ .muka-progress--circle.muka-progress--lg .muka-progress__track,
7465
+ .muka-progress--circle.muka-progress--lg .muka-progress__fill {
7466
+ stroke-width: var(--progress-size-circle-strokeWidth-lg);
7467
+ }
7468
+
7469
+ .muka-progress--circle .muka-progress__fill {
7470
+ fill: none;
7471
+ stroke: var(--color-action-default);
7472
+ stroke-linecap: round;
7473
+ transition: stroke-dashoffset 0.3s ease;
7474
+ }
7475
+
7476
+ .muka-progress--circle .muka-progress__label {
7477
+ position: absolute;
7478
+ font-family: var(--text-label-sm-semibold-fontFamily);
7479
+ font-weight: var(--text-label-sm-semibold-fontWeight);
7480
+ color: var(--color-text-default-default);
7481
+ }
7482
+
7483
+ .muka-progress--circle.muka-progress--sm .muka-progress__label {
7484
+ font-size: var(--text-label-sm-semibold-fontSize);
7485
+ }
7486
+
7487
+ .muka-progress--circle.muka-progress--md .muka-progress__label {
7488
+ font-size: var(--text-label-md-semibold-fontSize);
7489
+ }
7490
+
7491
+ .muka-progress--circle.muka-progress--lg .muka-progress__label {
7492
+ font-size: var(--text-label-lg-semibold-fontSize);
7493
+ }
7494
+
7495
+ /* Indeterminate animation for circle */
7496
+ .muka-progress--circle.muka-progress--indeterminate .muka-progress__circle {
7497
+ animation: muka-progress-circle-rotate 2s linear infinite;
7498
+ }
7499
+
7500
+ .muka-progress--circle.muka-progress--indeterminate .muka-progress__fill {
7501
+ animation: muka-progress-circle-dash 1.5s ease-in-out infinite;
7502
+ }
7503
+
7504
+ @keyframes muka-progress-circle-rotate {
7505
+ 100% {
7506
+ transform: rotate(270deg);
7507
+ }
7508
+ }
7509
+
7510
+ @keyframes muka-progress-circle-dash {
7511
+ 0% {
7512
+ stroke-dashoffset: 220;
7513
+ }
7514
+ 50% {
7515
+ stroke-dashoffset: 70;
7516
+ }
7517
+ 100% {
7518
+ stroke-dashoffset: 220;
7519
+ }
7520
+ }
7521
+
7522
+
7351
7523
  /* ProfileBadge */
7352
7524
  /* ProfileBadge Component Styles - Using Muka Design Tokens */
7353
7525
 
@@ -7419,115 +7591,18 @@ body {
7419
7591
  }
7420
7592
 
7421
7593
 
7422
- /* PriceTag */
7423
- /* PriceTag Component Styles - Using Muka Design Tokens */
7594
+ /* Popover */
7595
+ /* Popover Component Styles */
7424
7596
 
7425
- .muka-price-tag {
7426
- display: flex;
7427
- flex-shrink: 0;
7428
- }
7429
-
7430
- /* Medium: stacked layout (price on top, unit below) */
7431
- .muka-price-tag--md {
7432
- flex-direction: column;
7433
- align-items: flex-end;
7434
- justify-content: center;
7435
- }
7436
-
7437
- /* Small: inline layout */
7438
- .muka-price-tag--sm {
7439
- flex-direction: row;
7440
- align-items: center;
7441
- gap: 3px;
7442
- }
7443
-
7444
- /* Amount row: currency + numbers */
7445
- .muka-price-tag__amount {
7446
- display: flex;
7447
- align-items: flex-start;
7448
- gap: var(--spacing-1);
7449
- }
7450
-
7451
- .muka-price-tag--sm .muka-price-tag__amount {
7452
- align-items: center;
7453
- }
7454
-
7455
- /* Numbers group: whole + decimal + cents */
7456
- .muka-price-tag__numbers {
7457
- display: flex;
7458
- align-items: baseline;
7459
- }
7460
-
7461
- /* ─── Medium size typography ──────────────────────────── */
7462
-
7463
- .muka-price-tag--md .muka-price-tag__currency {
7464
- font-family: var(--text-subheading-md-fontFamily);
7465
- font-weight: var(--text-subheading-md-fontWeight);
7466
- font-size: var(--text-subheading-md-fontSize);
7467
- line-height: var(--text-label-2xl-bold-lineHeight);
7468
- color: var(--color-text-subtle-default);
7469
- }
7470
-
7471
- .muka-price-tag--md .muka-price-tag__whole {
7472
- font-family: var(--text-label-2xl-bold-fontFamily);
7473
- font-weight: var(--text-label-2xl-bold-fontWeight);
7474
- font-size: var(--text-label-2xl-bold-fontSize);
7475
- line-height: var(--text-label-2xl-bold-lineHeight);
7476
- color: var(--color-text-default-default);
7477
- }
7478
-
7479
- .muka-price-tag--md .muka-price-tag__decimal,
7480
- .muka-price-tag--md .muka-price-tag__cents {
7481
- font-family: var(--text-label-md-bold-fontFamily);
7482
- font-weight: var(--text-label-md-bold-fontWeight);
7483
- font-size: var(--text-label-md-bold-fontSize);
7484
- line-height: var(--text-label-md-bold-lineHeight);
7485
- color: var(--color-text-default-default);
7486
- }
7487
-
7488
- /* ─── Small size typography ───────────────────────────── */
7489
-
7490
- .muka-price-tag--sm .muka-price-tag__currency {
7491
- font-family: var(--text-body-base-regular-fontFamily);
7492
- font-weight: var(--text-body-base-regular-fontWeight);
7493
- font-size: var(--text-body-base-regular-fontSize);
7494
- line-height: var(--text-label-md-bold-lineHeight);
7495
- color: var(--color-text-subtle-default);
7496
- }
7497
-
7498
- .muka-price-tag--sm .muka-price-tag__whole,
7499
- .muka-price-tag--sm .muka-price-tag__decimal,
7500
- .muka-price-tag--sm .muka-price-tag__cents {
7501
- font-family: var(--text-label-md-bold-fontFamily);
7502
- font-weight: var(--text-label-md-bold-fontWeight);
7503
- font-size: var(--text-label-md-bold-fontSize);
7504
- line-height: var(--text-label-md-bold-lineHeight);
7505
- color: var(--color-text-default-default);
7506
- }
7507
-
7508
- /* ─── Unit label (same for both sizes) ────────────────── */
7509
-
7510
- .muka-price-tag__unit {
7511
- font-family: var(--text-body-sm-regular-fontFamily);
7512
- font-weight: var(--text-body-sm-regular-fontWeight);
7513
- font-size: var(--text-body-sm-regular-fontSize);
7514
- line-height: var(--text-body-sm-regular-lineHeight);
7515
- color: var(--color-text-subtle-default);
7516
- }
7517
-
7518
-
7519
- /* Popover */
7520
- /* Popover Component Styles */
7521
-
7522
- .muka-popover__content {
7523
- background-color: var(--color-surface-level3);
7524
- border: var(--border-width-regular) solid var(--color-border-default);
7525
- border-radius: var(--radius-md);
7526
- padding: var(--spacing-4);
7527
- box-shadow: var(--shadow-level3);
7528
- max-width: 20rem;
7529
- z-index: 50;
7530
- animation: muka-popover-fade-in 150ms ease;
7597
+ .muka-popover__content {
7598
+ background-color: var(--color-surface-level3);
7599
+ border: var(--border-width-regular) solid var(--color-border-default);
7600
+ border-radius: var(--radius-md);
7601
+ padding: var(--spacing-4);
7602
+ box-shadow: var(--shadow-level3);
7603
+ max-width: 20rem;
7604
+ z-index: 50;
7605
+ animation: muka-popover-fade-in 150ms ease;
7531
7606
  }
7532
7607
 
7533
7608
  @keyframes muka-popover-fade-in {
@@ -7772,197 +7847,122 @@ body {
7772
7847
  }
7773
7848
 
7774
7849
 
7775
- /* Progress */
7776
- /* Progress Component Styles - Using Muka Design Tokens */
7777
-
7778
- /* ========================================
7779
- BAR VARIANT
7780
- ======================================== */
7850
+ /* PriceTag */
7851
+ /* PriceTag Component Styles - Using Muka Design Tokens */
7781
7852
 
7782
- .muka-progress--bar {
7853
+ .muka-price-tag {
7783
7854
  display: flex;
7784
- align-items: center;
7785
- gap: var(--spacing-2);
7786
- width: 100%;
7855
+ flex-shrink: 0;
7787
7856
  }
7788
7857
 
7789
- .muka-progress--bar .muka-progress__track {
7790
- flex: 1;
7791
- background-color: var(--color-surface-level1);
7792
- border-radius: var(--border-radius-full);
7793
- overflow: hidden;
7858
+ /* Medium: stacked layout (price on top, unit below) */
7859
+ .muka-price-tag--md {
7860
+ flex-direction: column;
7861
+ align-items: flex-end;
7862
+ justify-content: center;
7794
7863
  }
7795
7864
 
7796
- .muka-progress--bar.muka-progress--sm .muka-progress__track {
7797
- height: var(--progress-size-bar-height-sm);
7865
+ /* Small: inline layout */
7866
+ .muka-price-tag--sm {
7867
+ flex-direction: row;
7868
+ align-items: center;
7869
+ gap: 3px;
7798
7870
  }
7799
7871
 
7800
- .muka-progress--bar.muka-progress--md .muka-progress__track {
7801
- height: var(--progress-size-bar-height-md);
7872
+ /* Amount row: currency + numbers */
7873
+ .muka-price-tag__amount {
7874
+ display: flex;
7875
+ align-items: flex-start;
7876
+ gap: var(--spacing-1);
7802
7877
  }
7803
7878
 
7804
- .muka-progress--bar.muka-progress--lg .muka-progress__track {
7805
- height: var(--progress-size-bar-height-lg);
7879
+ .muka-price-tag--sm .muka-price-tag__amount {
7880
+ align-items: center;
7806
7881
  }
7807
7882
 
7808
- .muka-progress--bar .muka-progress__fill {
7809
- height: 100%;
7810
- background-color: var(--color-action-default);
7811
- border-radius: var(--border-radius-full);
7812
- transition: width 0.3s ease;
7883
+ /* Numbers group: whole + decimal + cents */
7884
+ .muka-price-tag__numbers {
7885
+ display: flex;
7886
+ align-items: baseline;
7813
7887
  }
7814
7888
 
7815
- .muka-progress--bar .muka-progress__label {
7816
- flex-shrink: 0;
7817
- font-family: var(--text-label-sm-semibold-fontFamily);
7818
- font-weight: var(--text-label-sm-semibold-fontWeight);
7819
- font-size: var(--text-label-sm-semibold-fontSize);
7820
- line-height: var(--text-label-sm-semibold-lineHeight);
7821
- color: var(--color-text-default-default);
7822
- min-width: 3ch;
7823
- text-align: right;
7889
+ /* ─── Medium size typography ──────────────────────────── */
7890
+
7891
+ .muka-price-tag--md .muka-price-tag__currency {
7892
+ font-family: var(--text-subheading-md-fontFamily);
7893
+ font-weight: var(--text-subheading-md-fontWeight);
7894
+ font-size: var(--text-subheading-md-fontSize);
7895
+ line-height: var(--text-label-2xl-bold-lineHeight);
7896
+ color: var(--color-text-subtle-default);
7824
7897
  }
7825
7898
 
7826
- /* Indeterminate animation for bar */
7827
- .muka-progress--bar.muka-progress--indeterminate .muka-progress__fill {
7828
- width: 40%;
7829
- animation: muka-progress-bar-indeterminate 1.5s ease-in-out infinite;
7899
+ .muka-price-tag--md .muka-price-tag__whole {
7900
+ font-family: var(--text-label-2xl-bold-fontFamily);
7901
+ font-weight: var(--text-label-2xl-bold-fontWeight);
7902
+ font-size: var(--text-label-2xl-bold-fontSize);
7903
+ line-height: var(--text-label-2xl-bold-lineHeight);
7904
+ color: var(--color-text-default-default);
7830
7905
  }
7831
7906
 
7832
- @keyframes muka-progress-bar-indeterminate {
7833
- 0% {
7834
- transform: translateX(-100%);
7835
- }
7836
- 100% {
7837
- transform: translateX(250%);
7838
- }
7907
+ .muka-price-tag--md .muka-price-tag__decimal,
7908
+ .muka-price-tag--md .muka-price-tag__cents {
7909
+ font-family: var(--text-label-md-bold-fontFamily);
7910
+ font-weight: var(--text-label-md-bold-fontWeight);
7911
+ font-size: var(--text-label-md-bold-fontSize);
7912
+ line-height: var(--text-label-md-bold-lineHeight);
7913
+ color: var(--color-text-default-default);
7839
7914
  }
7840
7915
 
7841
- /* ========================================
7842
- CIRCLE VARIANT
7843
- ======================================== */
7916
+ /* ─── Small size typography ───────────────────────────── */
7844
7917
 
7845
- .muka-progress--circle {
7846
- position: relative;
7847
- display: inline-flex;
7848
- align-items: center;
7849
- justify-content: center;
7918
+ .muka-price-tag--sm .muka-price-tag__currency {
7919
+ font-family: var(--text-body-base-regular-fontFamily);
7920
+ font-weight: var(--text-body-base-regular-fontWeight);
7921
+ font-size: var(--text-body-base-regular-fontSize);
7922
+ line-height: var(--text-label-md-bold-lineHeight);
7923
+ color: var(--color-text-subtle-default);
7850
7924
  }
7851
7925
 
7852
- .muka-progress--circle.muka-progress--sm {
7853
- width: var(--progress-size-circle-diameter-sm);
7854
- height: var(--progress-size-circle-diameter-sm);
7926
+ .muka-price-tag--sm .muka-price-tag__whole,
7927
+ .muka-price-tag--sm .muka-price-tag__decimal,
7928
+ .muka-price-tag--sm .muka-price-tag__cents {
7929
+ font-family: var(--text-label-md-bold-fontFamily);
7930
+ font-weight: var(--text-label-md-bold-fontWeight);
7931
+ font-size: var(--text-label-md-bold-fontSize);
7932
+ line-height: var(--text-label-md-bold-lineHeight);
7933
+ color: var(--color-text-default-default);
7855
7934
  }
7856
7935
 
7857
- .muka-progress--circle.muka-progress--md {
7858
- width: var(--progress-size-circle-diameter-md);
7859
- height: var(--progress-size-circle-diameter-md);
7860
- }
7936
+ /* ─── Unit label (same for both sizes) ────────────────── */
7861
7937
 
7862
- .muka-progress--circle.muka-progress--lg {
7863
- width: var(--progress-size-circle-diameter-lg);
7864
- height: var(--progress-size-circle-diameter-lg);
7938
+ .muka-price-tag__unit {
7939
+ font-family: var(--text-body-sm-regular-fontFamily);
7940
+ font-weight: var(--text-body-sm-regular-fontWeight);
7941
+ font-size: var(--text-body-sm-regular-fontSize);
7942
+ line-height: var(--text-body-sm-regular-lineHeight);
7943
+ color: var(--color-text-subtle-default);
7865
7944
  }
7866
7945
 
7867
- .muka-progress__circle {
7946
+
7947
+ /* PhotoDraftStrip */
7948
+ /* PhotoDraftStrip Component Styles */
7949
+
7950
+ .muka-photo-draft-strip {
7951
+ display: flex;
7952
+ align-items: center;
7953
+ gap: var(--spacing-3);
7868
7954
  width: 100%;
7869
- height: 100%;
7870
- transform: rotate(-90deg);
7955
+ padding: var(--spacing-2) 0;
7871
7956
  }
7872
7957
 
7873
- .muka-progress--circle .muka-progress__track {
7874
- fill: none;
7875
- stroke: var(--color-surface-level1);
7876
- }
7877
-
7878
- .muka-progress--circle.muka-progress--sm .muka-progress__track,
7879
- .muka-progress--circle.muka-progress--sm .muka-progress__fill {
7880
- stroke-width: var(--progress-size-circle-strokeWidth-sm);
7881
- }
7882
-
7883
- .muka-progress--circle.muka-progress--md .muka-progress__track,
7884
- .muka-progress--circle.muka-progress--md .muka-progress__fill {
7885
- stroke-width: var(--progress-size-circle-strokeWidth-md);
7886
- }
7887
-
7888
- .muka-progress--circle.muka-progress--lg .muka-progress__track,
7889
- .muka-progress--circle.muka-progress--lg .muka-progress__fill {
7890
- stroke-width: var(--progress-size-circle-strokeWidth-lg);
7891
- }
7892
-
7893
- .muka-progress--circle .muka-progress__fill {
7894
- fill: none;
7895
- stroke: var(--color-action-default);
7896
- stroke-linecap: round;
7897
- transition: stroke-dashoffset 0.3s ease;
7898
- }
7899
-
7900
- .muka-progress--circle .muka-progress__label {
7901
- position: absolute;
7902
- font-family: var(--text-label-sm-semibold-fontFamily);
7903
- font-weight: var(--text-label-sm-semibold-fontWeight);
7904
- color: var(--color-text-default-default);
7905
- }
7906
-
7907
- .muka-progress--circle.muka-progress--sm .muka-progress__label {
7908
- font-size: var(--text-label-sm-semibold-fontSize);
7909
- }
7910
-
7911
- .muka-progress--circle.muka-progress--md .muka-progress__label {
7912
- font-size: var(--text-label-md-semibold-fontSize);
7913
- }
7914
-
7915
- .muka-progress--circle.muka-progress--lg .muka-progress__label {
7916
- font-size: var(--text-label-lg-semibold-fontSize);
7917
- }
7918
-
7919
- /* Indeterminate animation for circle */
7920
- .muka-progress--circle.muka-progress--indeterminate .muka-progress__circle {
7921
- animation: muka-progress-circle-rotate 2s linear infinite;
7922
- }
7923
-
7924
- .muka-progress--circle.muka-progress--indeterminate .muka-progress__fill {
7925
- animation: muka-progress-circle-dash 1.5s ease-in-out infinite;
7926
- }
7927
-
7928
- @keyframes muka-progress-circle-rotate {
7929
- 100% {
7930
- transform: rotate(270deg);
7931
- }
7932
- }
7933
-
7934
- @keyframes muka-progress-circle-dash {
7935
- 0% {
7936
- stroke-dashoffset: 220;
7937
- }
7938
- 50% {
7939
- stroke-dashoffset: 70;
7940
- }
7941
- 100% {
7942
- stroke-dashoffset: 220;
7943
- }
7944
- }
7945
-
7946
-
7947
- /* PhotoDraftStrip */
7948
- /* PhotoDraftStrip Component Styles */
7949
-
7950
- .muka-photo-draft-strip {
7951
- display: flex;
7952
- align-items: center;
7953
- gap: var(--spacing-3);
7954
- width: 100%;
7955
- padding: var(--spacing-2) 0;
7956
- }
7957
-
7958
- .muka-photo-draft-strip__track {
7959
- display: flex;
7960
- gap: var(--spacing-2);
7961
- flex: 1 1 auto;
7962
- min-width: 0;
7963
- overflow-x: auto;
7964
- scroll-behavior: smooth;
7965
- scrollbar-width: none;
7958
+ .muka-photo-draft-strip__track {
7959
+ display: flex;
7960
+ gap: var(--spacing-2);
7961
+ flex: 1 1 auto;
7962
+ min-width: 0;
7963
+ overflow-x: auto;
7964
+ scroll-behavior: smooth;
7965
+ scrollbar-width: none;
7966
7966
  }
7967
7967
 
7968
7968
  .muka-photo-draft-strip__track::-webkit-scrollbar {
@@ -8106,34 +8106,6 @@ body {
8106
8106
  }
8107
8107
 
8108
8108
 
8109
- /* NavigationTransition */
8110
- /* NavigationTransition Component Styles */
8111
-
8112
- /* ─── Wrapper ────────────────────────────────────────── */
8113
-
8114
- .muka-nav-transition {
8115
- position: relative;
8116
- height: 100vh;
8117
- overflow: hidden;
8118
- }
8119
-
8120
- /* Disable interaction during animation */
8121
- .muka-nav-transition--active {
8122
- pointer-events: none;
8123
- }
8124
-
8125
- /* ─── View slots ─────────────────────────────────────── */
8126
-
8127
- .muka-nav-transition--active .muka-nav-transition__view {
8128
- position: absolute;
8129
- inset: 0;
8130
- }
8131
-
8132
- /* Z-index layering */
8133
- .muka-nav-transition__view--bottom { z-index: 1; }
8134
- .muka-nav-transition__view--top { z-index: 2; }
8135
-
8136
-
8137
8109
  /* Menu */
8138
8110
  /* Menu Component Styles */
8139
8111
 
@@ -8704,7 +8676,10 @@ body {
8704
8676
  max-width: 100%;
8705
8677
  max-height: 100%;
8706
8678
  object-fit: contain;
8707
- pointer-events: none;
8679
+ /* The image takes touches, so a long press opens the OS menu (save, share,
8680
+ copy). The swipe still works: pointer events bubble to the stage, and a
8681
+ long press doesn't move far enough to start a drag. */
8682
+ -webkit-touch-callout: default;
8708
8683
  }
8709
8684
 
8710
8685
  /* ─── Previous / next: devices that can hover ─────────── */
@@ -8796,6 +8771,34 @@ body {
8796
8771
  }
8797
8772
 
8798
8773
 
8774
+ /* NavigationTransition */
8775
+ /* NavigationTransition Component Styles */
8776
+
8777
+ /* ─── Wrapper ────────────────────────────────────────── */
8778
+
8779
+ .muka-nav-transition {
8780
+ position: relative;
8781
+ height: 100vh;
8782
+ overflow: hidden;
8783
+ }
8784
+
8785
+ /* Disable interaction during animation */
8786
+ .muka-nav-transition--active {
8787
+ pointer-events: none;
8788
+ }
8789
+
8790
+ /* ─── View slots ─────────────────────────────────────── */
8791
+
8792
+ .muka-nav-transition--active .muka-nav-transition__view {
8793
+ position: absolute;
8794
+ inset: 0;
8795
+ }
8796
+
8797
+ /* Z-index layering */
8798
+ .muka-nav-transition__view--bottom { z-index: 1; }
8799
+ .muka-nav-transition__view--top { z-index: 2; }
8800
+
8801
+
8799
8802
  /* ListItem */
8800
8803
  /* ListItem Component Styles - Using Muka Design Tokens */
8801
8804
 
@@ -8990,255 +8993,62 @@ li.muka-listitem {
8990
8993
  }
8991
8994
 
8992
8995
 
8993
- /* LicensePlateInput */
8994
- /* LicensePlateInput — Dutch RDW-style plate input
8995
- *
8996
- * Plate body colors are regulatory (EU/NL) and intentionally fixed:
8997
- * - Plate yellow: #F0CE3D
8998
- * - EU strip blue: #003399
8999
- * - EU stars yellow: #FFCC00
9000
- * - Plate text: #1A1A1A
9001
- *
9002
- * All surrounding UI (label, helper, focus ring, error border) uses Muka tokens.
9003
- */
9004
-
9005
- .muka-license-plate-input {
9006
- --plate-yellow: #f0ce3d;
9007
- --plate-blue: #003399;
9008
- --plate-text: #1a1a1a;
9009
- --plate-stars: #ffcc00;
8996
+ /* Label */
8997
+ /* Label Component Styles - Using Muka Design Tokens */
9010
8998
 
8999
+ .muka-label {
9011
9000
  display: inline-flex;
9012
- flex-direction: column;
9013
- gap: var(--spacing-2);
9001
+ align-items: center;
9002
+ color: var(--color-text-default-default);
9003
+ cursor: pointer;
9014
9004
  }
9015
9005
 
9016
- /* Plate body */
9017
- .muka-license-plate-input__plate {
9018
- display: inline-flex;
9019
- align-items: stretch;
9020
- background-color: var(--plate-yellow);
9021
- border-radius: var(--input-field-radius-md);
9022
- cursor: text;
9023
- position: relative;
9024
- overflow: hidden;
9025
- box-sizing: border-box;
9026
- /* Subtle outline to lift the plate from light backgrounds */
9027
- box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
9028
- /* Reserve space for the focus / error solid ring without shifting layout */
9029
- outline: 3px solid transparent;
9030
- outline-offset: 2px;
9031
- transition: outline-color 0.15s ease, opacity 0.15s ease;
9006
+ .muka-label--sm {
9007
+ font-family: var(--text-label-sm-semibold-fontFamily);
9008
+ font-weight: var(--text-label-sm-semibold-fontWeight);
9009
+ font-size: var(--text-label-sm-semibold-fontSize);
9010
+ line-height: var(--text-label-sm-semibold-lineHeight);
9032
9011
  }
9033
9012
 
9034
- /* Size variants — plate aspect echoes the real RDW plate (~5:1) */
9035
- .muka-license-plate-input__plate--sm {
9036
- height: 44px;
9037
- min-width: 220px;
9038
- border-radius: var(--input-field-radius-sm);
9013
+ .muka-label--md {
9014
+ font-family: var(--text-label-md-semibold-fontFamily);
9015
+ font-weight: var(--text-label-md-semibold-fontWeight);
9016
+ font-size: var(--text-label-md-semibold-fontSize);
9017
+ line-height: var(--text-label-md-semibold-lineHeight);
9039
9018
  }
9040
9019
 
9041
- .muka-license-plate-input__plate--md {
9042
- height: 60px;
9043
- min-width: 300px;
9044
- border-radius: var(--input-field-radius-md);
9020
+ .muka-label--lg {
9021
+ font-family: var(--text-label-lg-semibold-fontFamily);
9022
+ font-weight: var(--text-label-lg-semibold-fontWeight);
9023
+ font-size: var(--text-label-lg-semibold-fontSize);
9024
+ line-height: var(--text-label-lg-semibold-lineHeight);
9045
9025
  }
9046
9026
 
9047
- .muka-license-plate-input__plate--lg {
9048
- height: 80px;
9049
- min-width: 400px;
9050
- border-radius: var(--input-field-radius-lg);
9027
+ .muka-label--disabled {
9028
+ color: var(--color-text-subtle-default);
9029
+ cursor: not-allowed;
9051
9030
  }
9052
9031
 
9053
- /* Focus — solid outline ring */
9054
- .muka-license-plate-input__plate--focused:not(.muka-license-plate-input__plate--disabled) {
9055
- outline-color: var(--input-field-color-focus-border);
9032
+ .muka-label__required {
9033
+ color: var(--color-state-error-default);
9056
9034
  }
9057
9035
 
9058
- /* Error — solid outline ring in error color */
9059
- .muka-license-plate-input__plate--error:not(.muka-license-plate-input__plate--disabled) {
9060
- outline-color: var(--input-field-color-error-border);
9061
- }
9062
9036
 
9063
- /* Disabled */
9064
- .muka-license-plate-input__plate--disabled {
9065
- cursor: not-allowed;
9066
- opacity: 0.55;
9067
- }
9037
+ /* InputCounter */
9038
+ /* InputCounter — numeric field + joined decrement/increment buttons.
9039
+ Label, helper and error text reuse Input.css (../Input/Input.css).
9040
+ Field and button group share one radius per size:
9041
+ sm/md → input.field.radius.md, lg → input.field.radius.lg. */
9042
+
9043
+ .muka-inputcounter {
9044
+ --muka-inputcounter-radius: var(--input-field-radius-md);
9045
+ --muka-inputcounter-height: var(--input-field-height-default);
9046
+ --muka-inputcounter-pad: calc(var(--spacing-2) + var(--spacing-1));
9047
+ --muka-inputcounter-min: var(--size-3xl);
9068
9048
 
9069
- /* EU strip */
9070
- .muka-license-plate-input__eu-strip {
9071
9049
  display: inline-flex;
9072
9050
  flex-direction: column;
9073
- align-items: center;
9074
- justify-content: center;
9075
- background-color: var(--plate-blue);
9076
- color: #ffffff;
9077
- flex-shrink: 0;
9078
- padding: 0 0.4em;
9079
- gap: 0.15em;
9080
- /* Strip width scales with plate height for a consistent ratio */
9081
- width: 14%;
9082
- min-width: 36px;
9083
- }
9084
-
9085
- .muka-license-plate-input__eu-stars {
9086
- width: 60%;
9087
- max-width: 28px;
9088
- aspect-ratio: 1 / 1;
9089
- display: block;
9090
- }
9091
-
9092
- .muka-license-plate-input__plate--sm .muka-license-plate-input__eu-stars {
9093
- max-width: 20px;
9094
- }
9095
-
9096
- .muka-license-plate-input__plate--lg .muka-license-plate-input__eu-stars {
9097
- max-width: 36px;
9098
- }
9099
-
9100
- .muka-license-plate-input__country-code {
9101
- font-family:
9102
- 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
9103
- font-weight: 700;
9104
- letter-spacing: 0.04em;
9105
- line-height: 1;
9106
- color: #ffffff;
9107
- }
9108
-
9109
- .muka-license-plate-input__plate--sm .muka-license-plate-input__country-code {
9110
- font-size: 10px;
9111
- }
9112
-
9113
- .muka-license-plate-input__plate--md .muka-license-plate-input__country-code {
9114
- font-size: 13px;
9115
- }
9116
-
9117
- .muka-license-plate-input__plate--lg .muka-license-plate-input__country-code {
9118
- font-size: 16px;
9119
- }
9120
-
9121
- /* Native input */
9122
- .muka-license-plate-input__native {
9123
- flex: 1;
9124
- min-width: 0;
9125
- border: none;
9126
- outline: none;
9127
- background: transparent;
9128
- color: var(--plate-text);
9129
- text-align: center;
9130
- text-transform: uppercase;
9131
- letter-spacing: 0.06em;
9132
- /* Plate font — bold condensed sans is closest to the FE-Schrift look without
9133
- shipping a custom font. JetBrains Mono is the system mono brand font. */
9134
- font-family:
9135
- 'Arial Narrow', 'Helvetica Neue', Helvetica, Arial, sans-serif;
9136
- font-weight: 800;
9137
- padding: 0 0.5em;
9138
- width: 100%;
9139
- caret-color: var(--plate-text);
9140
- }
9141
-
9142
- .muka-license-plate-input__plate--sm .muka-license-plate-input__native {
9143
- font-size: 22px;
9144
- }
9145
-
9146
- .muka-license-plate-input__plate--md .muka-license-plate-input__native {
9147
- font-size: 30px;
9148
- }
9149
-
9150
- .muka-license-plate-input__plate--lg .muka-license-plate-input__native {
9151
- font-size: 42px;
9152
- }
9153
-
9154
- .muka-license-plate-input__native::placeholder {
9155
- color: var(--plate-text);
9156
- opacity: 0.55;
9157
- font-weight: 700;
9158
- letter-spacing: 0.08em;
9159
- }
9160
-
9161
- .muka-license-plate-input__plate--disabled .muka-license-plate-input__native {
9162
- cursor: not-allowed;
9163
- }
9164
-
9165
- /* Helper text */
9166
- .muka-license-plate-input__helper {
9167
- font-family: var(--text-label-sm-regular-fontFamily);
9168
- font-weight: var(--text-label-sm-regular-fontWeight);
9169
- font-size: var(--text-label-sm-regular-fontSize);
9170
- line-height: var(--text-label-sm-regular-lineHeight);
9171
- color: var(--color-text-subtle-default);
9172
- margin: 0;
9173
- }
9174
-
9175
- /* Error message */
9176
- .muka-license-plate-input__error {
9177
- font-family: var(--text-label-sm-regular-fontFamily);
9178
- font-weight: var(--text-label-sm-regular-fontWeight);
9179
- font-size: var(--text-label-sm-regular-fontSize);
9180
- line-height: var(--text-label-sm-regular-lineHeight);
9181
- color: var(--color-state-error-default);
9182
- margin: 0;
9183
- }
9184
-
9185
-
9186
- /* Label */
9187
- /* Label Component Styles - Using Muka Design Tokens */
9188
-
9189
- .muka-label {
9190
- display: inline-flex;
9191
- align-items: center;
9192
- color: var(--color-text-default-default);
9193
- cursor: pointer;
9194
- }
9195
-
9196
- .muka-label--sm {
9197
- font-family: var(--text-label-sm-semibold-fontFamily);
9198
- font-weight: var(--text-label-sm-semibold-fontWeight);
9199
- font-size: var(--text-label-sm-semibold-fontSize);
9200
- line-height: var(--text-label-sm-semibold-lineHeight);
9201
- }
9202
-
9203
- .muka-label--md {
9204
- font-family: var(--text-label-md-semibold-fontFamily);
9205
- font-weight: var(--text-label-md-semibold-fontWeight);
9206
- font-size: var(--text-label-md-semibold-fontSize);
9207
- line-height: var(--text-label-md-semibold-lineHeight);
9208
- }
9209
-
9210
- .muka-label--lg {
9211
- font-family: var(--text-label-lg-semibold-fontFamily);
9212
- font-weight: var(--text-label-lg-semibold-fontWeight);
9213
- font-size: var(--text-label-lg-semibold-fontSize);
9214
- line-height: var(--text-label-lg-semibold-lineHeight);
9215
- }
9216
-
9217
- .muka-label--disabled {
9218
- color: var(--color-text-subtle-default);
9219
- cursor: not-allowed;
9220
- }
9221
-
9222
- .muka-label__required {
9223
- color: var(--color-state-error-default);
9224
- }
9225
-
9226
-
9227
- /* InputCounter */
9228
- /* InputCounter — numeric field + joined decrement/increment buttons.
9229
- Label, helper and error text reuse Input.css (../Input/Input.css).
9230
- Field and button group share one radius per size:
9231
- sm/md → input.field.radius.md, lg → input.field.radius.lg. */
9232
-
9233
- .muka-inputcounter {
9234
- --muka-inputcounter-radius: var(--input-field-radius-md);
9235
- --muka-inputcounter-height: var(--input-field-height-default);
9236
- --muka-inputcounter-pad: calc(var(--spacing-2) + var(--spacing-1));
9237
- --muka-inputcounter-min: var(--size-3xl);
9238
-
9239
- display: inline-flex;
9240
- flex-direction: column;
9241
- gap: var(--spacing-2);
9051
+ gap: var(--spacing-2);
9242
9052
  }
9243
9053
 
9244
9054
  .muka-inputcounter--sm {
@@ -9402,67 +9212,260 @@ li.muka-listitem {
9402
9212
  }
9403
9213
 
9404
9214
 
9405
- /* Input */
9406
- /* Input Component Styles - Using Muka Design Tokens */
9215
+ /* LicensePlateInput */
9216
+ /* LicensePlateInput — Dutch RDW-style plate input
9217
+ *
9218
+ * Plate body colors are regulatory (EU/NL) and intentionally fixed:
9219
+ * - Plate yellow: #F0CE3D
9220
+ * - EU strip blue: #003399
9221
+ * - EU stars yellow: #FFCC00
9222
+ * - Plate text: #1A1A1A
9223
+ *
9224
+ * All surrounding UI (label, helper, focus ring, error border) uses Muka tokens.
9225
+ */
9226
+
9227
+ .muka-license-plate-input {
9228
+ --plate-yellow: #f0ce3d;
9229
+ --plate-blue: #003399;
9230
+ --plate-text: #1a1a1a;
9231
+ --plate-stars: #ffcc00;
9407
9232
 
9408
- /* Wrapper — label, field, helper spacing per Figma */
9409
- .muka-input {
9410
9233
  display: inline-flex;
9411
9234
  flex-direction: column;
9412
9235
  gap: var(--spacing-2);
9413
9236
  }
9414
9237
 
9415
- .muka-input--full-width {
9416
- width: 100%;
9238
+ /* Plate body */
9239
+ .muka-license-plate-input__plate {
9240
+ display: inline-flex;
9241
+ align-items: stretch;
9242
+ background-color: var(--plate-yellow);
9243
+ border-radius: var(--input-field-radius-md);
9244
+ cursor: text;
9245
+ position: relative;
9246
+ overflow: hidden;
9247
+ box-sizing: border-box;
9248
+ /* Subtle outline to lift the plate from light backgrounds */
9249
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
9250
+ /* Reserve space for the focus / error solid ring without shifting layout */
9251
+ outline: 3px solid transparent;
9252
+ outline-offset: 2px;
9253
+ transition: outline-color 0.15s ease, opacity 0.15s ease;
9417
9254
  }
9418
9255
 
9419
- /* Label */
9420
- .muka-input__label {
9421
- color: var(--color-text-default-default);
9422
- cursor: pointer;
9256
+ /* Size variants — plate aspect echoes the real RDW plate (~5:1) */
9257
+ .muka-license-plate-input__plate--sm {
9258
+ height: 44px;
9259
+ min-width: 220px;
9260
+ border-radius: var(--input-field-radius-sm);
9423
9261
  }
9424
9262
 
9425
- .muka-input__label--sm {
9426
- font-family: var(--text-label-sm-semibold-fontFamily);
9427
- font-weight: var(--text-label-sm-semibold-fontWeight);
9428
- font-size: var(--text-label-sm-semibold-fontSize);
9429
- line-height: var(--text-label-sm-semibold-lineHeight);
9263
+ .muka-license-plate-input__plate--md {
9264
+ height: 60px;
9265
+ min-width: 300px;
9266
+ border-radius: var(--input-field-radius-md);
9430
9267
  }
9431
9268
 
9432
- .muka-input__label--md {
9433
- font-family: var(--text-label-md-semibold-fontFamily);
9434
- font-weight: var(--text-label-md-semibold-fontWeight);
9435
- font-size: var(--text-label-md-semibold-fontSize);
9436
- line-height: var(--text-label-md-semibold-lineHeight);
9269
+ .muka-license-plate-input__plate--lg {
9270
+ height: 80px;
9271
+ min-width: 400px;
9272
+ border-radius: var(--input-field-radius-lg);
9437
9273
  }
9438
9274
 
9439
- .muka-input__label--lg {
9440
- font-family: var(--text-label-lg-semibold-fontFamily);
9441
- font-weight: var(--text-label-lg-semibold-fontWeight);
9442
- font-size: var(--text-label-lg-semibold-fontSize);
9443
- line-height: var(--text-label-lg-semibold-lineHeight);
9275
+ /* Focus — solid outline ring */
9276
+ .muka-license-plate-input__plate--focused:not(.muka-license-plate-input__plate--disabled) {
9277
+ outline-color: var(--input-field-color-focus-border);
9444
9278
  }
9445
9279
 
9446
- .muka-input__required {
9447
- color: var(--color-state-error-default);
9280
+ /* Error — solid outline ring in error color */
9281
+ .muka-license-plate-input__plate--error:not(.muka-license-plate-input__plate--disabled) {
9282
+ outline-color: var(--input-field-color-error-border);
9448
9283
  }
9449
9284
 
9450
- .muka-input__label--sm + .muka-input__field--disabled,
9451
- .muka-input__label--md + .muka-input__field--disabled,
9452
- .muka-input__label--lg + .muka-input__field--disabled {
9285
+ /* Disabled */
9286
+ .muka-license-plate-input__plate--disabled {
9453
9287
  cursor: not-allowed;
9288
+ opacity: 0.55;
9454
9289
  }
9455
9290
 
9456
- /* Field container — default/hover: 1px border. Radius per Figma (812-10825): input field tokens. */
9457
- .muka-input__field {
9458
- display: flex;
9291
+ /* EU strip */
9292
+ .muka-license-plate-input__eu-strip {
9293
+ display: inline-flex;
9294
+ flex-direction: column;
9459
9295
  align-items: center;
9460
- gap: var(--spacing-2);
9461
- background-color: var(--input-field-color-default-background);
9462
- border: var(--border-width-regular) solid var(--input-field-color-default-border);
9463
- border-radius: var(--input-field-radius-md);
9464
- padding: var(--input-field-padding-y) var(--input-field-padding-x);
9465
- transition: border-color 0.2s ease, background-color 0.2s ease;
9296
+ justify-content: center;
9297
+ background-color: var(--plate-blue);
9298
+ color: #ffffff;
9299
+ flex-shrink: 0;
9300
+ padding: 0 0.4em;
9301
+ gap: 0.15em;
9302
+ /* Strip width scales with plate height for a consistent ratio */
9303
+ width: 14%;
9304
+ min-width: 36px;
9305
+ }
9306
+
9307
+ .muka-license-plate-input__eu-stars {
9308
+ width: 60%;
9309
+ max-width: 28px;
9310
+ aspect-ratio: 1 / 1;
9311
+ display: block;
9312
+ }
9313
+
9314
+ .muka-license-plate-input__plate--sm .muka-license-plate-input__eu-stars {
9315
+ max-width: 20px;
9316
+ }
9317
+
9318
+ .muka-license-plate-input__plate--lg .muka-license-plate-input__eu-stars {
9319
+ max-width: 36px;
9320
+ }
9321
+
9322
+ .muka-license-plate-input__country-code {
9323
+ font-family:
9324
+ 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
9325
+ font-weight: 700;
9326
+ letter-spacing: 0.04em;
9327
+ line-height: 1;
9328
+ color: #ffffff;
9329
+ }
9330
+
9331
+ .muka-license-plate-input__plate--sm .muka-license-plate-input__country-code {
9332
+ font-size: 10px;
9333
+ }
9334
+
9335
+ .muka-license-plate-input__plate--md .muka-license-plate-input__country-code {
9336
+ font-size: 13px;
9337
+ }
9338
+
9339
+ .muka-license-plate-input__plate--lg .muka-license-plate-input__country-code {
9340
+ font-size: 16px;
9341
+ }
9342
+
9343
+ /* Native input */
9344
+ .muka-license-plate-input__native {
9345
+ flex: 1;
9346
+ min-width: 0;
9347
+ border: none;
9348
+ outline: none;
9349
+ background: transparent;
9350
+ color: var(--plate-text);
9351
+ text-align: center;
9352
+ text-transform: uppercase;
9353
+ letter-spacing: 0.06em;
9354
+ /* Plate font — bold condensed sans is closest to the FE-Schrift look without
9355
+ shipping a custom font. JetBrains Mono is the system mono brand font. */
9356
+ font-family:
9357
+ 'Arial Narrow', 'Helvetica Neue', Helvetica, Arial, sans-serif;
9358
+ font-weight: 800;
9359
+ padding: 0 0.5em;
9360
+ width: 100%;
9361
+ caret-color: var(--plate-text);
9362
+ }
9363
+
9364
+ .muka-license-plate-input__plate--sm .muka-license-plate-input__native {
9365
+ font-size: 22px;
9366
+ }
9367
+
9368
+ .muka-license-plate-input__plate--md .muka-license-plate-input__native {
9369
+ font-size: 30px;
9370
+ }
9371
+
9372
+ .muka-license-plate-input__plate--lg .muka-license-plate-input__native {
9373
+ font-size: 42px;
9374
+ }
9375
+
9376
+ .muka-license-plate-input__native::placeholder {
9377
+ color: var(--plate-text);
9378
+ opacity: 0.55;
9379
+ font-weight: 700;
9380
+ letter-spacing: 0.08em;
9381
+ }
9382
+
9383
+ .muka-license-plate-input__plate--disabled .muka-license-plate-input__native {
9384
+ cursor: not-allowed;
9385
+ }
9386
+
9387
+ /* Helper text */
9388
+ .muka-license-plate-input__helper {
9389
+ font-family: var(--text-label-sm-regular-fontFamily);
9390
+ font-weight: var(--text-label-sm-regular-fontWeight);
9391
+ font-size: var(--text-label-sm-regular-fontSize);
9392
+ line-height: var(--text-label-sm-regular-lineHeight);
9393
+ color: var(--color-text-subtle-default);
9394
+ margin: 0;
9395
+ }
9396
+
9397
+ /* Error message */
9398
+ .muka-license-plate-input__error {
9399
+ font-family: var(--text-label-sm-regular-fontFamily);
9400
+ font-weight: var(--text-label-sm-regular-fontWeight);
9401
+ font-size: var(--text-label-sm-regular-fontSize);
9402
+ line-height: var(--text-label-sm-regular-lineHeight);
9403
+ color: var(--color-state-error-default);
9404
+ margin: 0;
9405
+ }
9406
+
9407
+
9408
+ /* Input */
9409
+ /* Input Component Styles - Using Muka Design Tokens */
9410
+
9411
+ /* Wrapper — label, field, helper spacing per Figma */
9412
+ .muka-input {
9413
+ display: inline-flex;
9414
+ flex-direction: column;
9415
+ gap: var(--spacing-2);
9416
+ }
9417
+
9418
+ .muka-input--full-width {
9419
+ width: 100%;
9420
+ }
9421
+
9422
+ /* Label */
9423
+ .muka-input__label {
9424
+ color: var(--color-text-default-default);
9425
+ cursor: pointer;
9426
+ }
9427
+
9428
+ .muka-input__label--sm {
9429
+ font-family: var(--text-label-sm-semibold-fontFamily);
9430
+ font-weight: var(--text-label-sm-semibold-fontWeight);
9431
+ font-size: var(--text-label-sm-semibold-fontSize);
9432
+ line-height: var(--text-label-sm-semibold-lineHeight);
9433
+ }
9434
+
9435
+ .muka-input__label--md {
9436
+ font-family: var(--text-label-md-semibold-fontFamily);
9437
+ font-weight: var(--text-label-md-semibold-fontWeight);
9438
+ font-size: var(--text-label-md-semibold-fontSize);
9439
+ line-height: var(--text-label-md-semibold-lineHeight);
9440
+ }
9441
+
9442
+ .muka-input__label--lg {
9443
+ font-family: var(--text-label-lg-semibold-fontFamily);
9444
+ font-weight: var(--text-label-lg-semibold-fontWeight);
9445
+ font-size: var(--text-label-lg-semibold-fontSize);
9446
+ line-height: var(--text-label-lg-semibold-lineHeight);
9447
+ }
9448
+
9449
+ .muka-input__required {
9450
+ color: var(--color-state-error-default);
9451
+ }
9452
+
9453
+ .muka-input__label--sm + .muka-input__field--disabled,
9454
+ .muka-input__label--md + .muka-input__field--disabled,
9455
+ .muka-input__label--lg + .muka-input__field--disabled {
9456
+ cursor: not-allowed;
9457
+ }
9458
+
9459
+ /* Field container — default/hover: 1px border. Radius per Figma (812-10825): input field tokens. */
9460
+ .muka-input__field {
9461
+ display: flex;
9462
+ align-items: center;
9463
+ gap: var(--spacing-2);
9464
+ background-color: var(--input-field-color-default-background);
9465
+ border: var(--border-width-regular) solid var(--input-field-color-default-border);
9466
+ border-radius: var(--input-field-radius-md);
9467
+ padding: var(--input-field-padding-y) var(--input-field-padding-x);
9468
+ transition: border-color 0.2s ease, background-color 0.2s ease;
9466
9469
  cursor: text;
9467
9470
  position: relative;
9468
9471
  box-sizing: border-box;
@@ -9683,60 +9686,6 @@ li.muka-listitem {
9683
9686
  }
9684
9687
 
9685
9688
 
9686
- /* Icon */
9687
- /* Icon Component Styles - Using Muka Design Tokens */
9688
-
9689
- .muka-icon {
9690
- display: inline-flex;
9691
- align-items: center;
9692
- justify-content: center;
9693
- flex-shrink: 0;
9694
- color: var(--color-icon-default-default, currentColor);
9695
- }
9696
-
9697
- /* Icons inside buttons should inherit from button's foreground color */
9698
- .muka-button .muka-icon {
9699
- color: inherit;
9700
- }
9701
-
9702
- .muka-icon--subtle {
9703
- color: var(--color-icon-subtle-default);
9704
- }
9705
-
9706
- .muka-icon--muted {
9707
- color: var(--color-icon-muted-default);
9708
- }
9709
-
9710
- .muka-icon--inverse {
9711
- color: var(--color-icon-default-inverse);
9712
- }
9713
-
9714
- .muka-icon--xs {
9715
- width: var(--icon-size-xs);
9716
- height: var(--icon-size-xs);
9717
- }
9718
-
9719
- .muka-icon--sm {
9720
- width: var(--icon-size-sm);
9721
- height: var(--icon-size-sm);
9722
- }
9723
-
9724
- .muka-icon--md {
9725
- width: var(--icon-size-default);
9726
- height: var(--icon-size-default);
9727
- }
9728
-
9729
- .muka-icon--lg {
9730
- width: var(--icon-size-lg);
9731
- height: var(--icon-size-lg);
9732
- }
9733
-
9734
- .muka-icon svg {
9735
- width: 100%;
9736
- height: 100%;
9737
- }
9738
-
9739
-
9740
9689
  /* Form */
9741
9690
  .muka-form {
9742
9691
  display: flex;
@@ -10019,146 +9968,59 @@ li.muka-listitem {
10019
9968
  }
10020
9969
 
10021
9970
 
10022
- /* FAB */
10023
- /* FAB (Floating Action Button) Component Styles */
10024
-
10025
- .muka-fab {
10026
- position: fixed;
10027
- z-index: 40;
9971
+ /* Icon */
9972
+ /* Icon Component Styles - Using Muka Design Tokens */
10028
9973
 
9974
+ .muka-icon {
10029
9975
  display: inline-flex;
10030
9976
  align-items: center;
10031
9977
  justify-content: center;
10032
- gap: var(--spacing-2);
10033
-
10034
- border: none;
10035
- cursor: pointer;
10036
- font-family: inherit;
10037
- box-shadow: var(--shadow-level4);
9978
+ flex-shrink: 0;
9979
+ color: var(--color-icon-default-default, currentColor);
9980
+ }
10038
9981
 
10039
- transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
10040
- -webkit-tap-highlight-color: transparent;
9982
+ /* Icons inside buttons should inherit from button's foreground color */
9983
+ .muka-button .muka-icon {
9984
+ color: inherit;
10041
9985
  }
10042
9986
 
10043
- .muka-fab:active {
10044
- transform: scale(0.96);
10045
- box-shadow: var(--shadow-level3);
9987
+ .muka-icon--subtle {
9988
+ color: var(--color-icon-subtle-default);
10046
9989
  }
10047
9990
 
10048
- .muka-fab:focus-visible {
10049
- outline: 2px solid var(--color-action-default);
10050
- outline-offset: 2px;
10051
- }
10052
-
10053
- .muka-fab:disabled {
10054
- opacity: 0.5;
10055
- cursor: not-allowed;
10056
- box-shadow: none;
10057
- }
10058
-
10059
- /* ─── Variants ────────────────────────────────────────── */
10060
-
10061
- .muka-fab--primary {
10062
- background-color: var(--color-action-default);
10063
- color: var(--color-text-default-inverse);
10064
- }
10065
-
10066
- .muka-fab--primary:hover:not(:disabled) {
10067
- background-color: var(--color-action-hover);
10068
- }
10069
-
10070
- .muka-fab--secondary {
10071
- background-color: var(--color-surface-level3);
10072
- color: var(--color-text-default-default);
10073
- }
10074
-
10075
- .muka-fab--secondary:hover:not(:disabled) {
10076
- background-color: var(--color-surface-level2);
9991
+ .muka-icon--muted {
9992
+ color: var(--color-icon-muted-default);
10077
9993
  }
10078
9994
 
10079
- /* ─── Sizes (circular by default) ─────────────────────── */
10080
-
10081
- .muka-fab--md {
10082
- width: 56px;
10083
- height: 56px;
10084
- border-radius: 50%;
9995
+ .muka-icon--inverse {
9996
+ color: var(--color-icon-default-inverse);
10085
9997
  }
10086
9998
 
10087
- .muka-fab--lg {
10088
- width: 64px;
10089
- height: 64px;
10090
- border-radius: 50%;
9999
+ .muka-icon--xs {
10000
+ width: var(--icon-size-xs);
10001
+ height: var(--icon-size-xs);
10091
10002
  }
10092
10003
 
10093
- /* ─── Extended (pill shape with label) ────────────────── */
10094
-
10095
- .muka-fab--extended {
10096
- width: auto;
10097
- height: auto;
10098
- padding: var(--spacing-3) var(--spacing-4);
10099
- border-radius: var(--radius-full);
10004
+ .muka-icon--sm {
10005
+ width: var(--icon-size-sm);
10006
+ height: var(--icon-size-sm);
10100
10007
  }
10101
10008
 
10102
- .muka-fab--extended.muka-fab--lg {
10103
- padding: var(--spacing-4) var(--spacing-5);
10009
+ .muka-icon--md {
10010
+ width: var(--icon-size-default);
10011
+ height: var(--icon-size-default);
10104
10012
  }
10105
10013
 
10106
- .muka-fab__icon {
10107
- display: inline-flex;
10108
- align-items: center;
10109
- justify-content: center;
10110
- width: 24px;
10111
- height: 24px;
10014
+ .muka-icon--lg {
10015
+ width: var(--icon-size-lg);
10016
+ height: var(--icon-size-lg);
10112
10017
  }
10113
10018
 
10114
- .muka-fab__icon svg {
10019
+ .muka-icon svg {
10115
10020
  width: 100%;
10116
10021
  height: 100%;
10117
10022
  }
10118
10023
 
10119
- .muka-fab__label {
10120
- font-family: var(--text-label-md-semibold-fontFamily);
10121
- font-weight: var(--text-label-md-semibold-fontWeight);
10122
- font-size: var(--text-label-md-semibold-fontSize);
10123
- line-height: var(--text-label-md-semibold-lineHeight);
10124
- }
10125
-
10126
- /* ─── Positioning ─────────────────────────────────────── */
10127
-
10128
- .muka-fab--bottom-right {
10129
- right: var(--spacing-4);
10130
- bottom: var(--spacing-4);
10131
- }
10132
-
10133
- .muka-fab--bottom-left {
10134
- left: var(--spacing-4);
10135
- bottom: var(--spacing-4);
10136
- }
10137
-
10138
- .muka-fab--bottom-center {
10139
- left: 50%;
10140
- bottom: var(--spacing-4);
10141
- transform: translateX(-50%);
10142
- }
10143
-
10144
- .muka-fab--bottom-center:active {
10145
- transform: translateX(-50%) scale(0.96);
10146
- }
10147
-
10148
- /* Add the iOS home-indicator inset to the bottom offset. */
10149
- .muka-fab:not(.muka-fab--no-safe-area) {
10150
- bottom: calc(var(--spacing-4) + env(safe-area-inset-bottom));
10151
- }
10152
-
10153
- /* Lateral safe-area for landscape iPhone with notch. */
10154
- .muka-fab--bottom-right:not(.muka-fab--no-safe-area) {
10155
- right: max(var(--spacing-4), env(safe-area-inset-right));
10156
- }
10157
-
10158
- .muka-fab--bottom-left:not(.muka-fab--no-safe-area) {
10159
- left: max(var(--spacing-4), env(safe-area-inset-left));
10160
- }
10161
-
10162
10024
 
10163
10025
  /* EmptyState */
10164
10026
  /* EmptyState Component Styles - Using Muka Design Tokens */
@@ -10301,6 +10163,147 @@ li.muka-listitem {
10301
10163
  }
10302
10164
 
10303
10165
 
10166
+ /* FAB */
10167
+ /* FAB (Floating Action Button) Component Styles */
10168
+
10169
+ .muka-fab {
10170
+ position: fixed;
10171
+ z-index: 40;
10172
+
10173
+ display: inline-flex;
10174
+ align-items: center;
10175
+ justify-content: center;
10176
+ gap: var(--spacing-2);
10177
+
10178
+ border: none;
10179
+ cursor: pointer;
10180
+ font-family: inherit;
10181
+ box-shadow: var(--shadow-level4);
10182
+
10183
+ transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
10184
+ -webkit-tap-highlight-color: transparent;
10185
+ }
10186
+
10187
+ .muka-fab:active {
10188
+ transform: scale(0.96);
10189
+ box-shadow: var(--shadow-level3);
10190
+ }
10191
+
10192
+ .muka-fab:focus-visible {
10193
+ outline: 2px solid var(--color-action-default);
10194
+ outline-offset: 2px;
10195
+ }
10196
+
10197
+ .muka-fab:disabled {
10198
+ opacity: 0.5;
10199
+ cursor: not-allowed;
10200
+ box-shadow: none;
10201
+ }
10202
+
10203
+ /* ─── Variants ────────────────────────────────────────── */
10204
+
10205
+ .muka-fab--primary {
10206
+ background-color: var(--color-action-default);
10207
+ color: var(--color-text-default-inverse);
10208
+ }
10209
+
10210
+ .muka-fab--primary:hover:not(:disabled) {
10211
+ background-color: var(--color-action-hover);
10212
+ }
10213
+
10214
+ .muka-fab--secondary {
10215
+ background-color: var(--color-surface-level3);
10216
+ color: var(--color-text-default-default);
10217
+ }
10218
+
10219
+ .muka-fab--secondary:hover:not(:disabled) {
10220
+ background-color: var(--color-surface-level2);
10221
+ }
10222
+
10223
+ /* ─── Sizes (circular by default) ─────────────────────── */
10224
+
10225
+ .muka-fab--md {
10226
+ width: 56px;
10227
+ height: 56px;
10228
+ border-radius: 50%;
10229
+ }
10230
+
10231
+ .muka-fab--lg {
10232
+ width: 64px;
10233
+ height: 64px;
10234
+ border-radius: 50%;
10235
+ }
10236
+
10237
+ /* ─── Extended (pill shape with label) ────────────────── */
10238
+
10239
+ .muka-fab--extended {
10240
+ width: auto;
10241
+ height: auto;
10242
+ padding: var(--spacing-3) var(--spacing-4);
10243
+ border-radius: var(--radius-full);
10244
+ }
10245
+
10246
+ .muka-fab--extended.muka-fab--lg {
10247
+ padding: var(--spacing-4) var(--spacing-5);
10248
+ }
10249
+
10250
+ .muka-fab__icon {
10251
+ display: inline-flex;
10252
+ align-items: center;
10253
+ justify-content: center;
10254
+ width: 24px;
10255
+ height: 24px;
10256
+ }
10257
+
10258
+ .muka-fab__icon svg {
10259
+ width: 100%;
10260
+ height: 100%;
10261
+ }
10262
+
10263
+ .muka-fab__label {
10264
+ font-family: var(--text-label-md-semibold-fontFamily);
10265
+ font-weight: var(--text-label-md-semibold-fontWeight);
10266
+ font-size: var(--text-label-md-semibold-fontSize);
10267
+ line-height: var(--text-label-md-semibold-lineHeight);
10268
+ }
10269
+
10270
+ /* ─── Positioning ─────────────────────────────────────── */
10271
+
10272
+ .muka-fab--bottom-right {
10273
+ right: var(--spacing-4);
10274
+ bottom: var(--spacing-4);
10275
+ }
10276
+
10277
+ .muka-fab--bottom-left {
10278
+ left: var(--spacing-4);
10279
+ bottom: var(--spacing-4);
10280
+ }
10281
+
10282
+ .muka-fab--bottom-center {
10283
+ left: 50%;
10284
+ bottom: var(--spacing-4);
10285
+ transform: translateX(-50%);
10286
+ }
10287
+
10288
+ .muka-fab--bottom-center:active {
10289
+ transform: translateX(-50%) scale(0.96);
10290
+ }
10291
+
10292
+ /* Add the iOS home-indicator inset to the bottom offset. */
10293
+ .muka-fab:not(.muka-fab--no-safe-area) {
10294
+ bottom: calc(var(--spacing-4) + env(safe-area-inset-bottom));
10295
+ }
10296
+
10297
+ /* Lateral safe-area for landscape iPhone with notch. */
10298
+ .muka-fab--bottom-right:not(.muka-fab--no-safe-area) {
10299
+ right: max(var(--spacing-4), env(safe-area-inset-right));
10300
+ }
10301
+
10302
+ .muka-fab--bottom-left:not(.muka-fab--no-safe-area) {
10303
+ left: max(var(--spacing-4), env(safe-area-inset-left));
10304
+ }
10305
+
10306
+
10304
10307
  /* EmojiPicker */
10305
10308
  /* EmojiPicker Component Styles */
10306
10309
 
@@ -10707,429 +10710,150 @@ li.muka-listitem {
10707
10710
  }
10708
10711
 
10709
10712
 
10710
- /* DocumentViewer */
10711
- /* DocumentViewer Component Styles - Using Muka Design Tokens */
10712
-
10713
- .muka-documentviewer {
10714
- display: flex;
10715
- flex-direction: column;
10716
- background-color: var(--documentviewer-container-background);
10717
- border-radius: var(--documentviewer-container-borderRadius);
10718
- overflow: hidden;
10719
- position: relative;
10720
- }
10721
-
10722
- .muka-documentviewer--fullscreen {
10723
- position: fixed;
10724
- top: 0;
10725
- left: 0;
10726
- right: 0;
10727
- bottom: 0;
10728
- width: 100vw;
10729
- height: 100vh;
10730
- z-index: 9999;
10731
- border-radius: 0;
10732
- }
10713
+ /* Divider */
10714
+ /* Divider Component Styles - Using Muka Design Tokens */
10733
10715
 
10734
- /* Toolbar */
10735
- .muka-documentviewer__toolbar {
10736
- display: flex;
10737
- align-items: center;
10738
- justify-content: space-between;
10739
- height: var(--documentviewer-toolbar-height);
10740
- padding: var(--documentviewer-toolbar-padding-y) var(--documentviewer-toolbar-padding-x);
10741
- background-color: var(--documentviewer-toolbar-background);
10742
- border-bottom: 1px solid var(--documentviewer-toolbar-border);
10743
- gap: var(--documentviewer-toolbar-gap);
10716
+ .muka-divider {
10744
10717
  flex-shrink: 0;
10745
10718
  }
10746
10719
 
10747
- .muka-documentviewer__toolbar-section {
10748
- display: flex;
10749
- align-items: center;
10750
- gap: var(--documentviewer-toolbar-gap);
10720
+ .muka-divider--horizontal {
10721
+ width: 100%;
10722
+ height: var(--separator-width);
10751
10723
  }
10752
10724
 
10753
- .muka-documentviewer__toolbar-section--center {
10754
- flex: 1;
10755
- justify-content: center;
10725
+ .muka-divider--vertical {
10726
+ height: 100%;
10727
+ width: var(--separator-width);
10728
+ align-self: stretch;
10756
10729
  }
10757
10730
 
10758
- .muka-documentviewer__toolbar-section--end {
10759
- justify-content: flex-end;
10731
+ .muka-divider--default {
10732
+ background-color: var(--separator-color-default);
10760
10733
  }
10761
10734
 
10762
- /* Page navigation */
10763
- .muka-documentviewer__page-input {
10764
- display: flex;
10765
- align-items: center;
10766
- gap: var(--spacing-1);
10735
+ .muka-divider--contrast {
10736
+ background-color: var(--separator-color-contrast);
10767
10737
  }
10768
10738
 
10769
- .muka-documentviewer__page-number {
10770
- width: 3rem;
10771
- padding: var(--spacing-1) var(--spacing-2);
10772
- text-align: center;
10773
- font-family: var(--alias-font-brand-family);
10774
- font-size: var(--text-label-sm-fontSize);
10775
- line-height: var(--text-label-sm-lineHeight);
10776
- border: 1px solid var(--color-border-default);
10777
- border-radius: var(--border-radius-md);
10778
- background-color: var(--color-surface-level0);
10779
- color: var(--color-text-default-default);
10780
- }
10781
10739
 
10782
- .muka-documentviewer__page-number:focus {
10783
- outline: 2px solid var(--color-border-focus);
10784
- outline-offset: 0;
10785
- border-color: var(--color-border-focus);
10786
- }
10740
+ /* Dialog */
10741
+ /* Dialog Component Styles */
10787
10742
 
10788
- .muka-documentviewer__page-total {
10789
- font-family: var(--alias-font-brand-family);
10790
- font-size: var(--text-label-sm-fontSize);
10791
- color: var(--color-text-subtle-default);
10792
- }
10743
+ /* ─── Native dialog reset ─────────────────────────────── */
10793
10744
 
10794
- /* Zoom controls */
10795
- .muka-documentviewer__zoom-display {
10796
- min-width: var(--documentviewer-zoom-button-width);
10797
- padding: var(--spacing-1) var(--spacing-2);
10798
- font-family: var(--alias-font-brand-family);
10799
- font-size: var(--text-label-sm-fontSize);
10800
- font-weight: var(--alias-font-brand-weight-semibold);
10801
- color: var(--color-text-default-default);
10802
- background: transparent;
10745
+ .muka-dialog {
10803
10746
  border: none;
10804
- border-radius: var(--border-radius-md);
10805
- cursor: pointer;
10806
- transition: background-color 0.2s ease;
10747
+ padding: 0;
10748
+ max-width: none;
10749
+ max-height: none;
10750
+ overflow: visible;
10751
+ background: transparent;
10752
+ color: inherit;
10753
+ box-shadow: none;
10807
10754
  }
10808
10755
 
10809
- .muka-documentviewer__zoom-display:hover {
10810
- background-color: var(--color-surface-level2);
10756
+ .muka-dialog:not([open]) {
10757
+ display: none;
10811
10758
  }
10812
10759
 
10813
- .muka-documentviewer__zoom-display:focus {
10814
- outline: 2px solid var(--color-border-focus);
10815
- outline-offset: 0;
10760
+ /* ─── Backdrop ────────────────────────────────────────── */
10761
+
10762
+ .muka-dialog::backdrop {
10763
+ background-color: var(--dialog-color-backdrop);
10816
10764
  }
10817
10765
 
10818
- /* Content area */
10819
- .muka-documentviewer__content {
10820
- display: flex;
10821
- flex: 1;
10822
- overflow: hidden;
10766
+ /* ─── Non-modal modifier ──────────────────────────────── */
10767
+
10768
+ .muka-dialog--non-modal::backdrop {
10769
+ pointer-events: auto;
10823
10770
  }
10824
10771
 
10825
- .muka-documentviewer__main {
10826
- flex: 1;
10772
+ /* ─── Mobile: all sizes bottom-attached (< 1024px) ───── */
10773
+
10774
+ .muka-dialog--sm,
10775
+ .muka-dialog--md,
10776
+ .muka-dialog--lg {
10777
+ width: 100%;
10778
+ height: 100%;
10779
+ max-width: 100vw;
10780
+ max-height: 100vh;
10781
+ max-height: 100dvh;
10782
+ margin: 0;
10827
10783
  display: flex;
10828
10784
  flex-direction: column;
10829
- overflow: hidden;
10830
- position: relative;
10785
+ justify-content: flex-end;
10786
+ align-items: stretch;
10831
10787
  }
10832
10788
 
10833
- /* Canvas */
10834
- .muka-documentviewer__canvas {
10835
- flex: 1;
10836
- background-color: var(--documentviewer-canvas-background);
10837
- padding: var(--documentviewer-canvas-padding);
10838
- overflow: auto;
10839
- display: flex;
10840
- align-items: flex-start;
10841
- justify-content: center;
10789
+ .muka-dialog__surface:focus {
10790
+ outline: none;
10842
10791
  }
10843
10792
 
10844
- .muka-documentviewer__page {
10845
- background-color: var(--documentviewer-page-background);
10846
- box-shadow: var(--documentviewer-page-shadow);
10847
- border-radius: var(--documentviewer-page-borderRadius);
10793
+ .muka-dialog--sm .muka-dialog__surface,
10794
+ .muka-dialog--md .muka-dialog__surface,
10795
+ .muka-dialog--lg .muka-dialog__surface {
10796
+ background-color: var(--dialog-color-background);
10797
+ border-radius: var(--dialog-border-radius) var(--dialog-border-radius) 0 0;
10798
+ box-shadow: var(--dialog-shadow-default);
10799
+ display: flex;
10800
+ flex-direction: column;
10848
10801
  overflow: hidden;
10802
+ min-height: var(--dialog-min-height-mobile);
10849
10803
  }
10850
10804
 
10851
- .muka-documentviewer__page canvas {
10852
- display: block;
10853
- max-width: 100%;
10854
- height: auto;
10805
+ /* Mobile per-size heights */
10806
+ .muka-dialog--sm .muka-dialog__surface {
10807
+ height: var(--dialog-height-mobile-sm);
10855
10808
  }
10856
10809
 
10857
- .muka-documentviewer__page-number {
10858
- text-align: center;
10859
- padding: var(--spacing-2);
10860
- font-family: var(--alias-font-brand-family);
10861
- font-size: var(--text-label-sm-fontSize);
10862
- color: var(--color-text-subtle-default);
10810
+ .muka-dialog--md .muka-dialog__surface {
10811
+ height: var(--dialog-height-mobile-md);
10863
10812
  }
10864
10813
 
10865
- /* Thumbnails */
10866
- .muka-documentviewer__thumbnails {
10867
- width: var(--documentviewer-thumbnails-width);
10868
- background-color: var(--documentviewer-thumbnails-background);
10869
- border-right: 1px solid var(--documentviewer-thumbnails-border);
10870
- overflow-y: auto;
10871
- flex-shrink: 0;
10814
+ .muka-dialog--lg .muka-dialog__surface {
10815
+ height: calc(100vh - var(--dialog-margin-top-mobile));
10816
+ /* dvh tracks the visible area as mobile toolbars show and hide */
10817
+ height: calc(100dvh - var(--dialog-margin-top-mobile));
10872
10818
  }
10873
10819
 
10874
- .muka-documentviewer__thumbnails-list {
10875
- display: flex;
10876
- flex-direction: column;
10877
- gap: var(--documentviewer-thumbnails-item-gap);
10878
- padding: var(--spacing-2);
10820
+ /* Body */
10821
+ .muka-dialog--sm .muka-dialog__body,
10822
+ .muka-dialog--md .muka-dialog__body,
10823
+ .muka-dialog--lg .muka-dialog__body {
10824
+ flex: 1;
10825
+ overflow-y: auto;
10826
+ padding: var(--dialog-padding-x);
10827
+ background-color: var(--dialog-color-body-background);
10879
10828
  }
10880
10829
 
10881
- .muka-documentviewer__thumbnail-item {
10882
- display: flex;
10883
- flex-direction: column;
10884
- align-items: center;
10885
- gap: var(--spacing-1);
10886
- padding: var(--documentviewer-thumbnails-item-padding);
10887
- border-radius: var(--documentviewer-thumbnails-item-borderRadius);
10888
- border: 2px solid var(--documentviewer-thumbnails-item-border-default);
10889
- background-color: var(--documentviewer-thumbnails-item-background-default);
10890
- cursor: pointer;
10891
- transition: all 0.2s ease;
10892
- width: 100%;
10893
- }
10830
+ /* ─── Surface level variants ─────────────────────────── */
10894
10831
 
10895
- .muka-documentviewer__thumbnail-item:hover {
10896
- background-color: var(--documentviewer-thumbnails-item-background-hover);
10832
+ .muka-dialog--surface-2 .muka-dialog__body {
10833
+ background-color: var(--color-surface-level2);
10897
10834
  }
10898
10835
 
10899
- .muka-documentviewer__thumbnail-item--selected {
10900
- background-color: var(--documentviewer-thumbnails-item-background-selected);
10901
- border-color: var(--documentviewer-thumbnails-item-border-selected);
10902
- }
10836
+ /* ─── Footer ──────────────────────────────────────────── */
10903
10837
 
10904
- .muka-documentviewer__thumbnail-item:focus {
10905
- outline: 2px solid var(--color-border-focus);
10906
- outline-offset: 2px;
10838
+ .muka-dialog__footer {
10839
+ flex-shrink: 0;
10907
10840
  }
10908
10841
 
10909
- .muka-documentviewer__thumbnail-preview {
10910
- width: 100%;
10911
- overflow: hidden;
10912
- border-radius: var(--border-radius-sm);
10913
- }
10842
+ /* Hide footer on mobile for modal dialogs with inputs (actions move to TopBar),
10843
+ unless the consumer keeps them in the BottomBar (mobileActions="footer") */
10844
+ @media (max-width: 1023px) {
10845
+ .muka-dialog:not(.muka-dialog--non-modal):not(.muka-dialog--no-inputs):not(.muka-dialog--mobile-actions-footer) .muka-dialog__footer {
10846
+ display: none;
10847
+ }
10914
10848
 
10915
- .muka-documentviewer__thumbnail-preview canvas {
10916
- display: block;
10917
- width: 100%;
10918
- height: auto;
10919
- }
10920
-
10921
- .muka-documentviewer__thumbnail-label {
10922
- font-family: var(--alias-font-brand-family);
10923
- font-size: var(--text-label-xs-regular-fontSize);
10924
- color: var(--color-text-default-default);
10925
- font-weight: var(--alias-font-brand-weight-medium);
10926
- }
10927
-
10928
- /* Loading state */
10929
- .muka-documentviewer__loading {
10930
- display: flex;
10931
- align-items: center;
10932
- justify-content: center;
10933
- flex: 1;
10934
- background-color: var(--documentviewer-loading-overlay-background);
10935
- }
10936
-
10937
- /* Error state */
10938
- .muka-documentviewer__error {
10939
- display: flex;
10940
- align-items: center;
10941
- justify-content: center;
10942
- flex: 1;
10943
- padding: var(--spacing-4);
10944
- background-color: var(--documentviewer-error-background);
10945
- }
10946
-
10947
- /* Accessibility - visually hidden */
10948
- .visually-hidden {
10949
- position: absolute;
10950
- width: 1px;
10951
- height: 1px;
10952
- margin: -1px;
10953
- padding: 0;
10954
- overflow: hidden;
10955
- clip: rect(0, 0, 0, 0);
10956
- white-space: nowrap;
10957
- border-width: 0;
10958
- }
10959
-
10960
- /* React-PDF specific styles */
10961
- .react-pdf__Document {
10962
- display: flex;
10963
- flex-direction: column;
10964
- align-items: center;
10965
- }
10966
-
10967
- .react-pdf__Page {
10968
- max-width: 100%;
10969
- box-shadow: var(--documentviewer-page-shadow);
10970
- border-radius: var(--documentviewer-page-borderRadius);
10971
- overflow: hidden;
10972
- }
10973
-
10974
- .react-pdf__Page__canvas {
10975
- max-width: 100%;
10976
- height: auto !important;
10977
- display: block;
10978
- }
10979
-
10980
- .react-pdf__Page__textContent {
10981
- max-width: 100%;
10982
- }
10983
-
10984
- .react-pdf__Page__annotations {
10985
- max-width: 100%;
10986
- }
10987
-
10988
-
10989
- /* Divider */
10990
- /* Divider Component Styles - Using Muka Design Tokens */
10991
-
10992
- .muka-divider {
10993
- flex-shrink: 0;
10994
- }
10995
-
10996
- .muka-divider--horizontal {
10997
- width: 100%;
10998
- height: var(--separator-width);
10999
- }
11000
-
11001
- .muka-divider--vertical {
11002
- height: 100%;
11003
- width: var(--separator-width);
11004
- align-self: stretch;
11005
- }
11006
-
11007
- .muka-divider--default {
11008
- background-color: var(--separator-color-default);
11009
- }
11010
-
11011
- .muka-divider--contrast {
11012
- background-color: var(--separator-color-contrast);
11013
- }
11014
-
11015
-
11016
- /* Dialog */
11017
- /* Dialog Component Styles */
11018
-
11019
- /* ─── Native dialog reset ─────────────────────────────── */
11020
-
11021
- .muka-dialog {
11022
- border: none;
11023
- padding: 0;
11024
- max-width: none;
11025
- max-height: none;
11026
- overflow: visible;
11027
- background: transparent;
11028
- color: inherit;
11029
- box-shadow: none;
11030
- }
11031
-
11032
- .muka-dialog:not([open]) {
11033
- display: none;
11034
- }
11035
-
11036
- /* ─── Backdrop ────────────────────────────────────────── */
11037
-
11038
- .muka-dialog::backdrop {
11039
- background-color: var(--dialog-color-backdrop);
11040
- }
11041
-
11042
- /* ─── Non-modal modifier ──────────────────────────────── */
11043
-
11044
- .muka-dialog--non-modal::backdrop {
11045
- pointer-events: auto;
11046
- }
11047
-
11048
- /* ─── Mobile: all sizes bottom-attached (< 1024px) ───── */
11049
-
11050
- .muka-dialog--sm,
11051
- .muka-dialog--md,
11052
- .muka-dialog--lg {
11053
- width: 100%;
11054
- height: 100%;
11055
- max-width: 100vw;
11056
- max-height: 100vh;
11057
- max-height: 100dvh;
11058
- margin: 0;
11059
- display: flex;
11060
- flex-direction: column;
11061
- justify-content: flex-end;
11062
- align-items: stretch;
11063
- }
11064
-
11065
- .muka-dialog__surface:focus {
11066
- outline: none;
11067
- }
11068
-
11069
- .muka-dialog--sm .muka-dialog__surface,
11070
- .muka-dialog--md .muka-dialog__surface,
11071
- .muka-dialog--lg .muka-dialog__surface {
11072
- background-color: var(--dialog-color-background);
11073
- border-radius: var(--dialog-border-radius) var(--dialog-border-radius) 0 0;
11074
- box-shadow: var(--dialog-shadow-default);
11075
- display: flex;
11076
- flex-direction: column;
11077
- overflow: hidden;
11078
- min-height: var(--dialog-min-height-mobile);
11079
- }
11080
-
11081
- /* Mobile per-size heights */
11082
- .muka-dialog--sm .muka-dialog__surface {
11083
- height: var(--dialog-height-mobile-sm);
11084
- }
11085
-
11086
- .muka-dialog--md .muka-dialog__surface {
11087
- height: var(--dialog-height-mobile-md);
11088
- }
11089
-
11090
- .muka-dialog--lg .muka-dialog__surface {
11091
- height: calc(100vh - var(--dialog-margin-top-mobile));
11092
- /* dvh tracks the visible area as mobile toolbars show and hide */
11093
- height: calc(100dvh - var(--dialog-margin-top-mobile));
11094
- }
11095
-
11096
- /* Body */
11097
- .muka-dialog--sm .muka-dialog__body,
11098
- .muka-dialog--md .muka-dialog__body,
11099
- .muka-dialog--lg .muka-dialog__body {
11100
- flex: 1;
11101
- overflow-y: auto;
11102
- padding: var(--dialog-padding-x);
11103
- background-color: var(--dialog-color-body-background);
11104
- }
11105
-
11106
- /* ─── Surface level variants ─────────────────────────── */
11107
-
11108
- .muka-dialog--surface-2 .muka-dialog__body {
11109
- background-color: var(--color-surface-level2);
11110
- }
11111
-
11112
- /* ─── Footer ──────────────────────────────────────────── */
11113
-
11114
- .muka-dialog__footer {
11115
- flex-shrink: 0;
11116
- }
11117
-
11118
- /* Hide footer on mobile for modal dialogs with inputs (actions move to TopBar),
11119
- unless the consumer keeps them in the BottomBar (mobileActions="footer") */
11120
- @media (max-width: 1023px) {
11121
- .muka-dialog:not(.muka-dialog--non-modal):not(.muka-dialog--no-inputs):not(.muka-dialog--mobile-actions-footer) .muka-dialog__footer {
11122
- display: none;
11123
- }
11124
-
11125
- /* No-input modals: stack footer buttons vertically on mobile */
11126
- .muka-dialog--no-inputs .muka-bottombar--actions .muka-bottombar__content {
11127
- flex-direction: column;
11128
- }
11129
-
11130
- .muka-dialog--no-inputs .muka-bottombar--actions .muka-bottombar__content > * {
11131
- width: 100%;
11132
- }
10849
+ /* No-input modals: stack footer buttons vertically on mobile */
10850
+ .muka-dialog--no-inputs .muka-bottombar--actions .muka-bottombar__content {
10851
+ flex-direction: column;
10852
+ }
10853
+
10854
+ .muka-dialog--no-inputs .muka-bottombar--actions .muka-bottombar__content > * {
10855
+ width: 100%;
10856
+ }
11133
10857
  }
11134
10858
 
11135
10859
  /* ─── Mobile slide animation (< 1024px) ─────────────── */
@@ -11284,6 +11008,285 @@ li.muka-listitem {
11284
11008
  }
11285
11009
 
11286
11010
 
11011
+ /* DocumentViewer */
11012
+ /* DocumentViewer Component Styles - Using Muka Design Tokens */
11013
+
11014
+ .muka-documentviewer {
11015
+ display: flex;
11016
+ flex-direction: column;
11017
+ background-color: var(--documentviewer-container-background);
11018
+ border-radius: var(--documentviewer-container-borderRadius);
11019
+ overflow: hidden;
11020
+ position: relative;
11021
+ }
11022
+
11023
+ .muka-documentviewer--fullscreen {
11024
+ position: fixed;
11025
+ top: 0;
11026
+ left: 0;
11027
+ right: 0;
11028
+ bottom: 0;
11029
+ width: 100vw;
11030
+ height: 100vh;
11031
+ z-index: 9999;
11032
+ border-radius: 0;
11033
+ }
11034
+
11035
+ /* Toolbar */
11036
+ .muka-documentviewer__toolbar {
11037
+ display: flex;
11038
+ align-items: center;
11039
+ justify-content: space-between;
11040
+ height: var(--documentviewer-toolbar-height);
11041
+ padding: var(--documentviewer-toolbar-padding-y) var(--documentviewer-toolbar-padding-x);
11042
+ background-color: var(--documentviewer-toolbar-background);
11043
+ border-bottom: 1px solid var(--documentviewer-toolbar-border);
11044
+ gap: var(--documentviewer-toolbar-gap);
11045
+ flex-shrink: 0;
11046
+ }
11047
+
11048
+ .muka-documentviewer__toolbar-section {
11049
+ display: flex;
11050
+ align-items: center;
11051
+ gap: var(--documentviewer-toolbar-gap);
11052
+ }
11053
+
11054
+ .muka-documentviewer__toolbar-section--center {
11055
+ flex: 1;
11056
+ justify-content: center;
11057
+ }
11058
+
11059
+ .muka-documentviewer__toolbar-section--end {
11060
+ justify-content: flex-end;
11061
+ }
11062
+
11063
+ /* Page navigation */
11064
+ .muka-documentviewer__page-input {
11065
+ display: flex;
11066
+ align-items: center;
11067
+ gap: var(--spacing-1);
11068
+ }
11069
+
11070
+ .muka-documentviewer__page-number {
11071
+ width: 3rem;
11072
+ padding: var(--spacing-1) var(--spacing-2);
11073
+ text-align: center;
11074
+ font-family: var(--alias-font-brand-family);
11075
+ font-size: var(--text-label-sm-fontSize);
11076
+ line-height: var(--text-label-sm-lineHeight);
11077
+ border: 1px solid var(--color-border-default);
11078
+ border-radius: var(--border-radius-md);
11079
+ background-color: var(--color-surface-level0);
11080
+ color: var(--color-text-default-default);
11081
+ }
11082
+
11083
+ .muka-documentviewer__page-number:focus {
11084
+ outline: 2px solid var(--color-border-focus);
11085
+ outline-offset: 0;
11086
+ border-color: var(--color-border-focus);
11087
+ }
11088
+
11089
+ .muka-documentviewer__page-total {
11090
+ font-family: var(--alias-font-brand-family);
11091
+ font-size: var(--text-label-sm-fontSize);
11092
+ color: var(--color-text-subtle-default);
11093
+ }
11094
+
11095
+ /* Zoom controls */
11096
+ .muka-documentviewer__zoom-display {
11097
+ min-width: var(--documentviewer-zoom-button-width);
11098
+ padding: var(--spacing-1) var(--spacing-2);
11099
+ font-family: var(--alias-font-brand-family);
11100
+ font-size: var(--text-label-sm-fontSize);
11101
+ font-weight: var(--alias-font-brand-weight-semibold);
11102
+ color: var(--color-text-default-default);
11103
+ background: transparent;
11104
+ border: none;
11105
+ border-radius: var(--border-radius-md);
11106
+ cursor: pointer;
11107
+ transition: background-color 0.2s ease;
11108
+ }
11109
+
11110
+ .muka-documentviewer__zoom-display:hover {
11111
+ background-color: var(--color-surface-level2);
11112
+ }
11113
+
11114
+ .muka-documentviewer__zoom-display:focus {
11115
+ outline: 2px solid var(--color-border-focus);
11116
+ outline-offset: 0;
11117
+ }
11118
+
11119
+ /* Content area */
11120
+ .muka-documentviewer__content {
11121
+ display: flex;
11122
+ flex: 1;
11123
+ overflow: hidden;
11124
+ }
11125
+
11126
+ .muka-documentviewer__main {
11127
+ flex: 1;
11128
+ display: flex;
11129
+ flex-direction: column;
11130
+ overflow: hidden;
11131
+ position: relative;
11132
+ }
11133
+
11134
+ /* Canvas */
11135
+ .muka-documentviewer__canvas {
11136
+ flex: 1;
11137
+ background-color: var(--documentviewer-canvas-background);
11138
+ padding: var(--documentviewer-canvas-padding);
11139
+ overflow: auto;
11140
+ display: flex;
11141
+ align-items: flex-start;
11142
+ justify-content: center;
11143
+ }
11144
+
11145
+ .muka-documentviewer__page {
11146
+ background-color: var(--documentviewer-page-background);
11147
+ box-shadow: var(--documentviewer-page-shadow);
11148
+ border-radius: var(--documentviewer-page-borderRadius);
11149
+ overflow: hidden;
11150
+ }
11151
+
11152
+ .muka-documentviewer__page canvas {
11153
+ display: block;
11154
+ max-width: 100%;
11155
+ height: auto;
11156
+ }
11157
+
11158
+ .muka-documentviewer__page-number {
11159
+ text-align: center;
11160
+ padding: var(--spacing-2);
11161
+ font-family: var(--alias-font-brand-family);
11162
+ font-size: var(--text-label-sm-fontSize);
11163
+ color: var(--color-text-subtle-default);
11164
+ }
11165
+
11166
+ /* Thumbnails */
11167
+ .muka-documentviewer__thumbnails {
11168
+ width: var(--documentviewer-thumbnails-width);
11169
+ background-color: var(--documentviewer-thumbnails-background);
11170
+ border-right: 1px solid var(--documentviewer-thumbnails-border);
11171
+ overflow-y: auto;
11172
+ flex-shrink: 0;
11173
+ }
11174
+
11175
+ .muka-documentviewer__thumbnails-list {
11176
+ display: flex;
11177
+ flex-direction: column;
11178
+ gap: var(--documentviewer-thumbnails-item-gap);
11179
+ padding: var(--spacing-2);
11180
+ }
11181
+
11182
+ .muka-documentviewer__thumbnail-item {
11183
+ display: flex;
11184
+ flex-direction: column;
11185
+ align-items: center;
11186
+ gap: var(--spacing-1);
11187
+ padding: var(--documentviewer-thumbnails-item-padding);
11188
+ border-radius: var(--documentviewer-thumbnails-item-borderRadius);
11189
+ border: 2px solid var(--documentviewer-thumbnails-item-border-default);
11190
+ background-color: var(--documentviewer-thumbnails-item-background-default);
11191
+ cursor: pointer;
11192
+ transition: all 0.2s ease;
11193
+ width: 100%;
11194
+ }
11195
+
11196
+ .muka-documentviewer__thumbnail-item:hover {
11197
+ background-color: var(--documentviewer-thumbnails-item-background-hover);
11198
+ }
11199
+
11200
+ .muka-documentviewer__thumbnail-item--selected {
11201
+ background-color: var(--documentviewer-thumbnails-item-background-selected);
11202
+ border-color: var(--documentviewer-thumbnails-item-border-selected);
11203
+ }
11204
+
11205
+ .muka-documentviewer__thumbnail-item:focus {
11206
+ outline: 2px solid var(--color-border-focus);
11207
+ outline-offset: 2px;
11208
+ }
11209
+
11210
+ .muka-documentviewer__thumbnail-preview {
11211
+ width: 100%;
11212
+ overflow: hidden;
11213
+ border-radius: var(--border-radius-sm);
11214
+ }
11215
+
11216
+ .muka-documentviewer__thumbnail-preview canvas {
11217
+ display: block;
11218
+ width: 100%;
11219
+ height: auto;
11220
+ }
11221
+
11222
+ .muka-documentviewer__thumbnail-label {
11223
+ font-family: var(--alias-font-brand-family);
11224
+ font-size: var(--text-label-xs-regular-fontSize);
11225
+ color: var(--color-text-default-default);
11226
+ font-weight: var(--alias-font-brand-weight-medium);
11227
+ }
11228
+
11229
+ /* Loading state */
11230
+ .muka-documentviewer__loading {
11231
+ display: flex;
11232
+ align-items: center;
11233
+ justify-content: center;
11234
+ flex: 1;
11235
+ background-color: var(--documentviewer-loading-overlay-background);
11236
+ }
11237
+
11238
+ /* Error state */
11239
+ .muka-documentviewer__error {
11240
+ display: flex;
11241
+ align-items: center;
11242
+ justify-content: center;
11243
+ flex: 1;
11244
+ padding: var(--spacing-4);
11245
+ background-color: var(--documentviewer-error-background);
11246
+ }
11247
+
11248
+ /* Accessibility - visually hidden */
11249
+ .visually-hidden {
11250
+ position: absolute;
11251
+ width: 1px;
11252
+ height: 1px;
11253
+ margin: -1px;
11254
+ padding: 0;
11255
+ overflow: hidden;
11256
+ clip: rect(0, 0, 0, 0);
11257
+ white-space: nowrap;
11258
+ border-width: 0;
11259
+ }
11260
+
11261
+ /* React-PDF specific styles */
11262
+ .react-pdf__Document {
11263
+ display: flex;
11264
+ flex-direction: column;
11265
+ align-items: center;
11266
+ }
11267
+
11268
+ .react-pdf__Page {
11269
+ max-width: 100%;
11270
+ box-shadow: var(--documentviewer-page-shadow);
11271
+ border-radius: var(--documentviewer-page-borderRadius);
11272
+ overflow: hidden;
11273
+ }
11274
+
11275
+ .react-pdf__Page__canvas {
11276
+ max-width: 100%;
11277
+ height: auto !important;
11278
+ display: block;
11279
+ }
11280
+
11281
+ .react-pdf__Page__textContent {
11282
+ max-width: 100%;
11283
+ }
11284
+
11285
+ .react-pdf__Page__annotations {
11286
+ max-width: 100%;
11287
+ }
11288
+
11289
+
11287
11290
  /* DatePicker */
11288
11291
  /* DatePicker — compact native date field. */
11289
11292
  /* Field/label/helper styling is inherited from ../Input/Input.css. */