@incursa/ui-kit 0.2.1 → 0.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.
@@ -289,6 +289,90 @@
289
289
  }
290
290
  }
291
291
 
292
+ // -----------------------------------------------------------------------------
293
+ // Utility layer
294
+ // -----------------------------------------------------------------------------
295
+
296
+ .inc-u-stack-xs > * + * {
297
+ margin-top: 0.25rem !important;
298
+ }
299
+
300
+ .inc-u-stack-sm > * + * {
301
+ margin-top: 0.5rem !important;
302
+ }
303
+
304
+ .inc-u-stack-md > * + * {
305
+ margin-top: 1rem !important;
306
+ }
307
+
308
+ .inc-u-stack-lg > * + * {
309
+ margin-top: 1.5rem !important;
310
+ }
311
+
312
+ .inc-u-gap-xs {
313
+ gap: 0.25rem !important;
314
+ }
315
+
316
+ .inc-u-gap-sm {
317
+ gap: 0.5rem !important;
318
+ }
319
+
320
+ .inc-u-gap-md {
321
+ gap: 1rem !important;
322
+ }
323
+
324
+ .inc-u-gap-lg {
325
+ gap: 1.5rem !important;
326
+ }
327
+
328
+ .inc-u-p-0 {
329
+ padding: 0 !important;
330
+ }
331
+
332
+ .inc-u-p-xs {
333
+ padding: 0.25rem !important;
334
+ }
335
+
336
+ .inc-u-p-sm {
337
+ padding: 0.5rem !important;
338
+ }
339
+
340
+ .inc-u-p-md {
341
+ padding: 1rem !important;
342
+ }
343
+
344
+ .inc-u-p-lg {
345
+ padding: 1.5rem !important;
346
+ }
347
+
348
+ .inc-u-px-md {
349
+ padding-inline: 1rem !important;
350
+ }
351
+
352
+ .inc-u-py-md {
353
+ padding-block: 1rem !important;
354
+ }
355
+
356
+ .inc-u-hidden {
357
+ display: none !important;
358
+ }
359
+
360
+ .inc-u-hidden-mobile {
361
+ @include media-breakpoint-down(md) {
362
+ display: none !important;
363
+ }
364
+ }
365
+
366
+ .inc-u-hidden-desktop {
367
+ @include media-breakpoint-up(lg) {
368
+ display: none !important;
369
+ }
370
+ }
371
+
372
+ .inc-u-visually-hidden {
373
+ @include visually-hidden();
374
+ }
375
+
292
376
  // -----------------------------------------------------------------------------
293
377
  // Buttons, badges, alerts, and form primitives
294
378
  // -----------------------------------------------------------------------------
@@ -3002,6 +3086,81 @@ dialog.inc-native-dialog {
3002
3086
  }
3003
3087
  }
3004
3088
 
3089
+ &--review-grid {
3090
+ thead th {
3091
+ font-size: 0.75rem;
3092
+ letter-spacing: 0.06em;
3093
+ text-transform: uppercase;
3094
+ }
3095
+
3096
+ tbody td,
3097
+ tbody th {
3098
+ padding-block: 0.625rem;
3099
+ font-size: 0.8125rem;
3100
+ line-height: 1.45;
3101
+ }
3102
+
3103
+ tbody tr:hover > * {
3104
+ background: rgba($primary, 0.035);
3105
+ }
3106
+ }
3107
+
3108
+ &--analytics-grid {
3109
+ border-color: rgba($inc-border-subtle, 0.95);
3110
+ box-shadow: 0 1rem 2rem rgba($inc-surface-strong, 0.05);
3111
+
3112
+ thead th {
3113
+ background-color: $inc-surface-secondary;
3114
+ color: $inc-text-primary;
3115
+ border-color: $inc-border-subtle;
3116
+ font-size: 0.75rem;
3117
+ letter-spacing: 0.08em;
3118
+ text-transform: uppercase;
3119
+ }
3120
+
3121
+ tbody tr:nth-child(even) > * {
3122
+ background: rgba($primary, 0.02);
3123
+ }
3124
+
3125
+ .inc-table__cell--numeric,
3126
+ .inc-table__cell--numeric-small,
3127
+ .inc-table__header--right {
3128
+ color: $inc-surface-strong;
3129
+ font-weight: 600;
3130
+ }
3131
+ }
3132
+
3133
+ &--spreadsheet-grid {
3134
+ border-color: rgba($inc-border-subtle, 1);
3135
+ border-radius: $inc-radius-md;
3136
+ box-shadow: inset 0 0 0 1px rgba($inc-border-subtle, 0.35);
3137
+
3138
+ thead th {
3139
+ background-color: #eef2f7;
3140
+ color: $inc-text-primary;
3141
+ border-color: $inc-border-subtle;
3142
+ font-size: 0.75rem;
3143
+ letter-spacing: 0.04em;
3144
+ }
3145
+
3146
+ thead th,
3147
+ tbody td,
3148
+ tbody th {
3149
+ padding: 0.5rem 0.625rem;
3150
+ }
3151
+
3152
+ tbody td,
3153
+ tbody th {
3154
+ font-family: $font-family-monospace;
3155
+ font-size: 0.8125rem;
3156
+ line-height: 1.4;
3157
+ }
3158
+
3159
+ tbody tr:hover > * {
3160
+ background: rgba($primary, 0.04);
3161
+ }
3162
+ }
3163
+
3005
3164
  &__header {
3006
3165
  &--primary,
3007
3166
  th.inc-table__header--primary {
@@ -3393,6 +3552,19 @@ dialog.inc-native-dialog {
3393
3552
  align-items: center;
3394
3553
  justify-content: center;
3395
3554
  pointer-events: none;
3555
+ opacity: 0;
3556
+ visibility: hidden;
3557
+ transition: opacity 0.2s ease, visibility 0.2s ease;
3558
+
3559
+ &[hidden] {
3560
+ display: none !important;
3561
+ }
3562
+
3563
+ &.is-open {
3564
+ pointer-events: auto;
3565
+ opacity: 1;
3566
+ visibility: visible;
3567
+ }
3396
3568
 
3397
3569
  &[style*="display: flex"],
3398
3570
  &[style*="display:flex"] {
@@ -3520,35 +3692,111 @@ body.inc-modal-open {
3520
3692
  }
3521
3693
 
3522
3694
  .inc-offcanvas {
3523
- @extend .offcanvas;
3695
+ position: fixed;
3696
+ z-index: $inc-z-index-modal;
3697
+ display: flex;
3698
+ flex-direction: column;
3699
+ max-width: 100%;
3700
+ background: $inc-surface-primary;
3701
+ color: $body-color;
3702
+ visibility: hidden;
3703
+ box-shadow: 0 1.25rem 2.5rem rgba($inc-surface-strong, 0.18);
3704
+ transition: transform 0.25s ease, visibility 0.25s ease;
3705
+
3706
+ &.is-open {
3707
+ visibility: visible;
3708
+ }
3709
+ }
3710
+
3711
+ .inc-offcanvas-start,
3712
+ .inc-offcanvas-end {
3713
+ top: 0;
3714
+ bottom: 0;
3715
+ width: min(34rem, 92vw);
3524
3716
  }
3525
3717
 
3526
3718
  .inc-offcanvas-start {
3527
- @extend .offcanvas-start;
3719
+ left: 0;
3720
+ transform: translateX(-100%);
3721
+
3722
+ &.is-open {
3723
+ transform: translateX(0);
3724
+ }
3528
3725
  }
3529
3726
 
3530
3727
  .inc-offcanvas-end {
3531
- @extend .offcanvas-end;
3728
+ right: 0;
3729
+ transform: translateX(100%);
3730
+
3731
+ &.is-open {
3732
+ transform: translateX(0);
3733
+ }
3734
+ }
3735
+
3736
+ .inc-offcanvas-top,
3737
+ .inc-offcanvas-bottom {
3738
+ left: 0;
3739
+ right: 0;
3740
+ height: min(24rem, 85vh);
3532
3741
  }
3533
3742
 
3534
3743
  .inc-offcanvas-top {
3535
- @extend .offcanvas-top;
3744
+ top: 0;
3745
+ transform: translateY(-100%);
3746
+
3747
+ &.is-open {
3748
+ transform: translateY(0);
3749
+ }
3536
3750
  }
3537
3751
 
3538
3752
  .inc-offcanvas-bottom {
3539
- @extend .offcanvas-bottom;
3753
+ bottom: 0;
3754
+ transform: translateY(100%);
3755
+
3756
+ &.is-open {
3757
+ transform: translateY(0);
3758
+ }
3759
+ }
3760
+
3761
+ .inc-offcanvas-backdrop {
3762
+ position: fixed;
3763
+ inset: 0;
3764
+ z-index: $inc-z-index-modal-backdrop;
3765
+ background: rgba(15, 20, 34, 0.46);
3766
+ opacity: 0;
3767
+ pointer-events: none;
3768
+ transition: opacity 0.2s ease;
3769
+
3770
+ &.is-open {
3771
+ opacity: 1;
3772
+ pointer-events: auto;
3773
+ }
3540
3774
  }
3541
3775
 
3542
3776
  .inc-offcanvas-header {
3543
- @extend .offcanvas-header;
3777
+ display: flex;
3778
+ align-items: flex-start;
3779
+ justify-content: space-between;
3780
+ gap: 1rem;
3781
+ padding: 1rem 1.25rem;
3782
+ border-bottom: 1px solid $inc-border-subtle;
3544
3783
  }
3545
3784
 
3546
3785
  .inc-offcanvas-title {
3547
- @extend .offcanvas-title;
3786
+ margin: 0;
3787
+ font-size: 1.125rem;
3788
+ font-weight: 600;
3789
+ line-height: 1.2;
3548
3790
  }
3549
3791
 
3550
3792
  .inc-offcanvas-body {
3551
- @extend .offcanvas-body;
3793
+ flex: 1 1 auto;
3794
+ padding: 1.25rem;
3795
+ overflow-y: auto;
3796
+ }
3797
+
3798
+ body.inc-offcanvas-open {
3799
+ overflow: hidden;
3552
3800
  }
3553
3801
 
3554
3802
  // -----------------------------------------------------------------------------