@incursa/ui-kit 1.5.0 → 1.7.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 (80) hide show
  1. package/LLMS.txt +4 -4
  2. package/README.md +46 -6
  3. package/dist/inc-design-language.css +273 -56
  4. package/dist/inc-design-language.css.map +1 -1
  5. package/dist/inc-design-language.js +326 -1
  6. package/dist/inc-design-language.min.css +1 -1
  7. package/dist/inc-design-language.min.css.map +1 -1
  8. package/dist/mcp/ai/agent-instructions.json +21 -0
  9. package/dist/mcp/ai/llms-txt.json +21 -0
  10. package/dist/mcp/components/buttons.json +29 -0
  11. package/dist/mcp/components/cards.json +29 -0
  12. package/dist/mcp/components/filter-bars.json +28 -0
  13. package/dist/mcp/components/form-choices.json +29 -0
  14. package/dist/mcp/components/forms.json +29 -0
  15. package/dist/mcp/components/interaction.json +28 -0
  16. package/dist/mcp/components/layout.json +28 -0
  17. package/dist/mcp/components/metrics.json +28 -0
  18. package/dist/mcp/components/states.json +28 -0
  19. package/dist/mcp/components/status.json +28 -0
  20. package/dist/mcp/components/tables.json +32 -0
  21. package/dist/mcp/components/utilities.json +28 -0
  22. package/dist/mcp/examples/data-grid-advanced.json +22 -0
  23. package/dist/mcp/examples/demo.json +24 -0
  24. package/dist/mcp/examples/forms-and-validation.json +21 -0
  25. package/dist/mcp/examples/native-patterns.json +21 -0
  26. package/dist/mcp/examples/overlay-workflows.json +22 -0
  27. package/dist/mcp/examples/record-detail.json +21 -0
  28. package/dist/mcp/examples/reference.json +23 -0
  29. package/dist/mcp/examples/states.json +21 -0
  30. package/dist/mcp/examples/web-components.json +24 -0
  31. package/dist/mcp/examples/work-queue.json +21 -0
  32. package/dist/mcp/guides/allowed-web-component-families.json +19 -0
  33. package/dist/mcp/guides/choose-css-vs-scss-vs-js-vs-web-components.json +20 -0
  34. package/dist/mcp/guides/customization-order.json +20 -0
  35. package/dist/mcp/guides/decision-tree.json +28 -0
  36. package/dist/mcp/guides/guardrails.json +20 -0
  37. package/dist/mcp/guides/install.json +31 -0
  38. package/dist/mcp/guides/latest.json +25 -0
  39. package/dist/mcp/guides/overview.json +26 -0
  40. package/dist/mcp/guides/package-metadata.json +25 -0
  41. package/dist/mcp/guides/update.json +26 -0
  42. package/dist/mcp/guides/when-to-use-css-first.json +20 -0
  43. package/dist/mcp/install.json +36 -0
  44. package/dist/mcp/patterns/data-grid-advanced.json +22 -0
  45. package/dist/mcp/patterns/demo.json +24 -0
  46. package/dist/mcp/patterns/forms-and-validation.json +21 -0
  47. package/dist/mcp/patterns/native-patterns.json +21 -0
  48. package/dist/mcp/patterns/overlay-workflows.json +22 -0
  49. package/dist/mcp/patterns/record-detail.json +21 -0
  50. package/dist/mcp/patterns/reference.json +24 -0
  51. package/dist/mcp/patterns/states.json +21 -0
  52. package/dist/mcp/patterns/web-components.json +24 -0
  53. package/dist/mcp/patterns/work-queue.json +21 -0
  54. package/dist/mcp/resources.json +2100 -0
  55. package/dist/mcp/search-index.json +827 -0
  56. package/dist/mcp/specs/control-conventions.json +21 -0
  57. package/dist/mcp/specs/public-surface.json +21 -0
  58. package/dist/mcp/specs/requirements-index.json +21 -0
  59. package/dist/mcp/specs/verification-index.json +21 -0
  60. package/dist/mcp/update.json +24 -0
  61. package/dist/mcp/worker.mjs +60079 -0
  62. package/dist/mcp/worker.mjs.map +7 -0
  63. package/dist/web-components/README.md +10 -4
  64. package/dist/web-components/RUNTIME-NOTES.md +7 -2
  65. package/dist/web-components/components/actions.js +633 -0
  66. package/dist/web-components/components/collections.js +272 -0
  67. package/dist/web-components/components/dom-helpers.js +46 -0
  68. package/dist/web-components/components/feedback.js +181 -3
  69. package/dist/web-components/index.js +4425 -813
  70. package/package.json +19 -8
  71. package/src/inc-design-language.js +326 -1
  72. package/src/inc-design-language.scss +300 -56
  73. package/src/mcp/worker.ts +858 -0
  74. package/src/web-components/README.md +10 -4
  75. package/src/web-components/RUNTIME-NOTES.md +7 -2
  76. package/src/web-components/components/actions.js +633 -0
  77. package/src/web-components/components/collections.js +272 -0
  78. package/src/web-components/components/dom-helpers.js +46 -0
  79. package/src/web-components/components/feedback.js +181 -3
  80. package/src/web-components/index.js +53 -847
@@ -23,20 +23,24 @@
23
23
  --inc-control-surface-border: var(--inc-border-default);
24
24
  --inc-surface-contrast: var(--bs-secondary);
25
25
  --inc-surface-contrast-rgb: var(--bs-secondary-rgb);
26
- --inc-surface-contrast-hover: #31384a;
27
- --inc-surface-contrast-hover-rgb: 49, 56, 74;
28
- --inc-surface-contrast-active: #2e3542;
29
- --inc-surface-contrast-active-rgb: 46, 53, 66;
26
+ --inc-surface-contrast-hover: #273042;
27
+ --inc-surface-contrast-hover-rgb: 39, 48, 66;
28
+ --inc-surface-contrast-active: #1f2737;
29
+ --inc-surface-contrast-active-rgb: 31, 39, 55;
30
30
  --inc-surface-contrast-text: var(--inc-text-inverse);
31
31
  --inc-surface-contrast-text-rgb: var(--inc-text-inverse-rgb);
32
32
  --inc-surface-contrast-border: var(--bs-secondary);
33
33
  --inc-surface-primary-rgb: var(--bs-body-bg-rgb);
34
34
  --inc-surface-secondary-rgb: var(--bs-secondary-bg-rgb);
35
35
  --inc-surface-muted-rgb: var(--bs-tertiary-bg-rgb);
36
+ --inc-surface-panel: rgba(var(--inc-surface-secondary-rgb), 0.56);
37
+ --inc-surface-panel-cap: rgba(var(--inc-surface-secondary-rgb), 0.86);
36
38
  --inc-text-primary-rgb: var(--bs-body-color-rgb);
37
39
  --inc-text-secondary-rgb: var(--bs-secondary-color-rgb);
38
40
  --inc-text-muted-rgb: var(--bs-tertiary-color-rgb);
39
41
  --inc-shadow-rgb: var(--bs-black-rgb);
42
+ --inc-surface-panel-shadow: 0 0.0625rem 0.125rem rgba(var(--inc-shadow-rgb), 0.05), 0 0.5rem 1.5rem rgba(var(--inc-shadow-rgb), 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.58);
43
+ --inc-surface-panel-shadow-raised: 0 0.125rem 0.25rem rgba(var(--inc-shadow-rgb), 0.06), 0 0.875rem 2rem rgba(var(--inc-shadow-rgb), 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.62);
40
44
  }
41
45
 
42
46
  [data-bs-theme="dark"] {
@@ -45,13 +49,17 @@
45
49
  --inc-control-surface-border: var(--inc-border-default);
46
50
  --inc-surface-contrast: var(--bs-gray-100);
47
51
  --inc-surface-contrast-rgb: 253, 253, 253;
48
- --inc-surface-contrast-hover: var(--bs-gray-200);
49
- --inc-surface-contrast-hover-rgb: 246, 246, 246;
50
- --inc-surface-contrast-active: var(--bs-gray-300);
51
- --inc-surface-contrast-active-rgb: 241, 241, 241;
52
+ --inc-surface-contrast-hover: #dfe3e8;
53
+ --inc-surface-contrast-hover-rgb: 223, 227, 232;
54
+ --inc-surface-contrast-active: #c8d0d9;
55
+ --inc-surface-contrast-active-rgb: 200, 208, 217;
52
56
  --inc-surface-contrast-text: var(--bs-dark);
53
57
  --inc-surface-contrast-text-rgb: 18, 19, 22;
54
58
  --inc-surface-contrast-border: var(--bs-gray-400);
59
+ --inc-surface-panel: rgba(var(--inc-surface-secondary-rgb), 0.72);
60
+ --inc-surface-panel-cap: rgba(var(--inc-surface-secondary-rgb), 0.9);
61
+ --inc-surface-panel-shadow: 0 0.0625rem 0.125rem rgba(var(--inc-shadow-rgb), 0.22), 0 0.75rem 1.75rem rgba(var(--inc-shadow-rgb), 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.06);
62
+ --inc-surface-panel-shadow-raised: 0 0.125rem 0.25rem rgba(var(--inc-shadow-rgb), 0.28), 0 1rem 2.25rem rgba(var(--inc-shadow-rgb), 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.08);
55
63
  --bs-success-bg-subtle: rgba(0, 151, 67, 0.18);
56
64
  --bs-success-border-subtle: rgb(72, 171, 109);
57
65
  --bs-form-valid-color: rgb(122, 214, 154);
@@ -447,6 +455,7 @@
447
455
  justify-content: center;
448
456
  gap: 0.375rem;
449
457
  vertical-align: middle;
458
+ transition: color 0.18s ease, background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
450
459
 
451
460
  &--primary {
452
461
  @extend .btn-primary;
@@ -459,7 +468,7 @@
459
468
  --bs-btn-border-color: var(--inc-surface-contrast-border);
460
469
  --bs-btn-hover-color: var(--inc-surface-contrast-text);
461
470
  --bs-btn-hover-bg: var(--inc-surface-contrast-hover);
462
- --bs-btn-hover-border-color: var(--inc-surface-contrast-border);
471
+ --bs-btn-hover-border-color: var(--inc-surface-contrast-hover);
463
472
  --bs-btn-focus-shadow-rgb: var(--inc-surface-contrast-rgb);
464
473
  --bs-btn-active-color: var(--inc-surface-contrast-text);
465
474
  --bs-btn-active-bg: var(--inc-surface-contrast-active);
@@ -467,6 +476,20 @@
467
476
  --bs-btn-disabled-color: var(--inc-surface-contrast-text);
468
477
  --bs-btn-disabled-bg: var(--inc-surface-contrast);
469
478
  --bs-btn-disabled-border-color: var(--inc-surface-contrast-border);
479
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.1);
480
+
481
+ &:hover,
482
+ &:focus-visible {
483
+ --bs-btn-hover-bg: var(--inc-surface-contrast-hover);
484
+ --bs-btn-hover-border-color: var(--inc-surface-contrast-hover);
485
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.1);
486
+ }
487
+
488
+ &:active,
489
+ &.active,
490
+ &:focus:active {
491
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.12);
492
+ }
470
493
  }
471
494
 
472
495
  &--success {
@@ -510,14 +533,14 @@
510
533
  &--outline-secondary {
511
534
  @extend .btn-outline-secondary;
512
535
  --bs-btn-color: var(--inc-text-primary);
513
- --bs-btn-border-color: var(--inc-border-default);
536
+ --bs-btn-border-color: var(--inc-border-subtle);
514
537
  --bs-btn-hover-color: var(--inc-text-primary);
515
- --bs-btn-hover-bg: var(--inc-surface-secondary);
516
- --bs-btn-hover-border-color: var(--inc-border-default);
538
+ --bs-btn-hover-bg: rgba(var(--inc-surface-strong-rgb), 0.12);
539
+ --bs-btn-hover-border-color: rgba(var(--inc-surface-strong-rgb), 0.32);
517
540
  --bs-btn-focus-shadow-rgb: var(--inc-surface-strong-rgb);
518
541
  --bs-btn-active-color: var(--inc-text-primary);
519
- --bs-btn-active-bg: var(--inc-surface-muted);
520
- --bs-btn-active-border-color: var(--inc-border-default);
542
+ --bs-btn-active-bg: rgba(var(--inc-surface-strong-rgb), 0.18);
543
+ --bs-btn-active-border-color: rgba(var(--inc-surface-strong-rgb), 0.4);
521
544
  --bs-btn-disabled-color: var(--inc-text-muted);
522
545
  --bs-btn-disabled-border-color: var(--inc-border-subtle);
523
546
  }
@@ -538,6 +561,28 @@
538
561
  @extend .btn-outline-info;
539
562
  }
540
563
 
564
+ &--outline-primary,
565
+ &--outline-secondary,
566
+ &--outline-success,
567
+ &--outline-danger,
568
+ &--outline-warning,
569
+ &--outline-info {
570
+ --bs-btn-bg: rgba(var(--inc-surface-secondary-rgb), 0.74);
571
+ --bs-btn-disabled-bg: rgba(var(--inc-surface-secondary-rgb), 0.54);
572
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.06);
573
+
574
+ &:hover,
575
+ &:focus-visible {
576
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.06);
577
+ }
578
+
579
+ &:active,
580
+ &.active,
581
+ &:focus:active {
582
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.18);
583
+ }
584
+ }
585
+
541
586
  &--sm {
542
587
  @extend .btn-sm;
543
588
  }
@@ -603,6 +648,15 @@
603
648
 
604
649
  .inc-badge {
605
650
  @extend .badge;
651
+ display: inline-flex;
652
+ align-items: center;
653
+ gap: 0.25rem;
654
+ background: rgba(var(--inc-surface-secondary-rgb), 0.88);
655
+ color: var(--inc-text-secondary);
656
+ border: 1px solid var(--inc-border-subtle);
657
+ border-radius: 0.5rem;
658
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.48), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.06);
659
+ font-weight: 600;
606
660
 
607
661
  &--primary {
608
662
  @extend .bg-primary;
@@ -625,9 +679,10 @@
625
679
  }
626
680
 
627
681
  &--warning {
628
- background-color: $inc-warning-50;
629
- color: $inc-warning-700;
630
- border: 1px solid $inc-warning-700;
682
+ background-color: #fff8df;
683
+ color: #765000;
684
+ border: 1px solid #b67b00;
685
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.58), 0 1px 2px rgba(182, 123, 0, 0.12);
631
686
  }
632
687
 
633
688
  &--info {
@@ -643,6 +698,11 @@
643
698
 
644
699
  .inc-alert {
645
700
  @extend .alert;
701
+ position: relative;
702
+ overflow: hidden;
703
+ border-radius: $inc-radius-md;
704
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 0.375rem 1rem rgba(var(--inc-shadow-rgb), 0.05);
705
+ background-clip: padding-box;
646
706
 
647
707
  &:empty {
648
708
  display: none;
@@ -679,6 +739,18 @@
679
739
  &__heading {
680
740
  @extend .alert-heading;
681
741
  }
742
+
743
+ &__progress {
744
+ position: absolute;
745
+ inset-inline: 0;
746
+ inset-block-end: 0;
747
+ height: 0.1875rem;
748
+ background: currentColor;
749
+ opacity: 0.2;
750
+ transform-origin: left center;
751
+ transform: scaleX(1);
752
+ pointer-events: none;
753
+ }
682
754
  }
683
755
 
684
756
  .alert:empty {
@@ -791,15 +863,19 @@
791
863
  padding: 1rem 1rem 0.875rem;
792
864
  border: 1px solid var(--inc-border-subtle);
793
865
  border-radius: $inc-radius-md;
794
- background: var(--inc-surface-secondary);
866
+ background: var(--inc-surface-panel);
867
+ box-shadow: var(--inc-surface-panel-shadow);
795
868
  }
796
869
 
797
870
  &__legend {
798
871
  float: none;
799
872
  width: auto;
800
873
  margin: 0;
801
- padding: 0 0.375rem;
802
- background-color: var(--inc-surface-secondary);
874
+ padding: 0.125rem 0.625rem;
875
+ border: 1px solid var(--inc-border-subtle);
876
+ border-radius: 999px;
877
+ background-color: var(--inc-surface-panel-cap);
878
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.48);
803
879
  color: var(--inc-text-primary);
804
880
  font-size: 0.8125rem;
805
881
  font-weight: 600;
@@ -823,6 +899,10 @@
823
899
  align-items: center;
824
900
  gap: 0.5rem;
825
901
  min-width: 0;
902
+ padding: 0.875rem 1rem;
903
+ border: 1px solid var(--inc-border-subtle);
904
+ border-radius: $inc-radius-md;
905
+ background: var(--inc-surface-secondary);
826
906
 
827
907
  > .inc-form__label {
828
908
  margin-bottom: 0;
@@ -898,6 +978,10 @@
898
978
 
899
979
  .inc-form__field {
900
980
  flex: 0 1 auto;
981
+ padding: 0;
982
+ border: 0;
983
+ border-radius: 0;
984
+ background: transparent;
901
985
  }
902
986
 
903
987
  .inc-form__field--grow,
@@ -1024,12 +1108,37 @@
1024
1108
 
1025
1109
  .inc-readonly-field {
1026
1110
  @extend .form-control;
1027
- background-color: $gray-200;
1028
- cursor: default;
1029
1111
  display: flex;
1030
- align-items: center;
1112
+ flex-direction: column;
1113
+ align-items: flex-start;
1114
+ gap: 0.125rem;
1115
+ padding: 0.875rem 1rem;
1116
+ border: 1px solid var(--inc-border-subtle);
1117
+ border-radius: $inc-radius-md;
1118
+ background: var(--inc-surface-secondary);
1119
+ color: var(--inc-text-primary);
1120
+ cursor: default;
1031
1121
  -webkit-user-select: none;
1032
1122
  user-select: none;
1123
+
1124
+ > [part~="label"] {
1125
+ font-size: 0.75rem;
1126
+ font-weight: 600;
1127
+ letter-spacing: 0.04em;
1128
+ text-transform: uppercase;
1129
+ color: var(--inc-text-muted);
1130
+ }
1131
+
1132
+ > [part~="value"] {
1133
+ font-size: 0.875rem;
1134
+ font-weight: 500;
1135
+ color: var(--inc-text-primary);
1136
+ }
1137
+
1138
+ > [part~="meta"] {
1139
+ font-size: 0.75rem;
1140
+ color: var(--inc-text-muted);
1141
+ }
1033
1142
  }
1034
1143
 
1035
1144
  .inc-empty-state {
@@ -1041,19 +1150,31 @@
1041
1150
  padding: $spacer * 2 $spacer * 1.5;
1042
1151
  border: $border-width solid var(--inc-border-subtle);
1043
1152
  border-radius: $inc-radius-panel;
1044
- background-color: var(--inc-surface-secondary);
1153
+ background: linear-gradient(180deg, var(--inc-surface-panel-cap), rgba(var(--inc-surface-primary-rgb), 0.96));
1154
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42);
1045
1155
  color: var(--inc-text-primary);
1046
1156
  min-height: 21.875rem;
1047
1157
 
1048
1158
  &__content {
1049
1159
  max-width: 32.5rem;
1050
1160
  width: 100%;
1161
+ padding: 1rem;
1162
+ border-radius: $inc-radius-md;
1051
1163
  }
1052
1164
 
1053
1165
  &__icon {
1166
+ width: 4.5rem;
1167
+ height: 4.5rem;
1168
+ margin: 0 auto $spacer * 1.5;
1169
+ border: 1px solid var(--inc-border-subtle);
1170
+ border-radius: 1.25rem;
1171
+ background: rgba(var(--inc-surface-secondary-rgb), 0.82);
1172
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.36), 0 0.375rem 1rem rgba(var(--inc-shadow-rgb), 0.04);
1054
1173
  font-size: $font-size-base * 3.5;
1055
- margin-bottom: $spacer * 1.5;
1056
1174
  color: var(--inc-text-muted);
1175
+ display: inline-flex;
1176
+ align-items: center;
1177
+ justify-content: center;
1057
1178
  }
1058
1179
 
1059
1180
  &__form {
@@ -1132,13 +1253,16 @@
1132
1253
  .inc-card {
1133
1254
  @extend .card;
1134
1255
 
1135
- --bs-card-bg: var(--inc-surface-primary);
1256
+ --bs-card-bg: var(--inc-surface-panel);
1136
1257
  --bs-card-color: var(--inc-text-primary);
1137
1258
  --bs-card-title-color: var(--inc-text-primary);
1138
1259
  --bs-card-subtitle-color: var(--inc-text-muted);
1139
1260
  --bs-card-border-color: var(--inc-border-subtle);
1140
- --bs-card-cap-bg: var(--inc-surface-secondary);
1261
+ --bs-card-cap-bg: var(--inc-surface-panel-cap);
1141
1262
  --bs-card-cap-color: var(--inc-text-primary);
1263
+ background: var(--bs-card-bg);
1264
+ box-shadow: var(--inc-surface-panel-shadow);
1265
+ transition: box-shadow 0.18s ease, border-color 0.18s ease, background-color 0.18s ease;
1142
1266
 
1143
1267
  &__header {
1144
1268
  @extend .card-header;
@@ -1191,6 +1315,10 @@
1191
1315
  &__img-overlay {
1192
1316
  @extend .card-img-overlay;
1193
1317
  }
1318
+
1319
+ &--elevated {
1320
+ box-shadow: var(--inc-surface-panel-shadow-raised);
1321
+ }
1194
1322
  }
1195
1323
 
1196
1324
  .inc-grid {
@@ -1507,16 +1635,19 @@
1507
1635
  border: 1px solid var(--bs-border-color);
1508
1636
  border-radius: var(--bs-border-radius);
1509
1637
  overflow: hidden;
1638
+ background-color: var(--inc-surface-panel);
1639
+ box-shadow: var(--inc-surface-panel-shadow);
1510
1640
 
1511
1641
  .inc-header-body__header {
1512
1642
  border-top-left-radius: var(--bs-border-radius);
1513
1643
  border-top-right-radius: var(--bs-border-radius);
1644
+ background-color: var(--inc-surface-panel-cap);
1514
1645
  }
1515
1646
  }
1516
1647
 
1517
1648
  &--panel {
1518
- background-color: var(--inc-surface-primary);
1519
- box-shadow: 0 0.125rem 0.25rem rgb(0 0 0 / 7.5%);
1649
+ background-color: var(--inc-surface-panel);
1650
+ box-shadow: var(--inc-surface-panel-shadow-raised);
1520
1651
  border-radius: var(--bs-border-radius);
1521
1652
 
1522
1653
  .inc-header-body__header {
@@ -1618,14 +1749,15 @@
1618
1749
  }
1619
1750
 
1620
1751
  .inc-summary-block {
1621
- background-color: var(--inc-surface-primary);
1752
+ background-color: var(--inc-surface-panel);
1622
1753
  border: $border-width solid var(--inc-border-default);
1623
1754
  border-radius: $border-radius;
1624
1755
  padding: $spacer * 1.25;
1625
- transition: box-shadow 0.2s ease-in-out;
1756
+ box-shadow: var(--inc-surface-panel-shadow);
1757
+ transition: box-shadow 0.18s ease-in-out, background-color 0.18s ease-in-out;
1626
1758
 
1627
1759
  &:hover {
1628
- box-shadow: $box-shadow-sm;
1760
+ box-shadow: var(--inc-surface-panel-shadow-raised);
1629
1761
  }
1630
1762
 
1631
1763
  &__header {
@@ -2309,6 +2441,8 @@
2309
2441
  list-style: none;
2310
2442
  padding-left: 0;
2311
2443
  margin-bottom: 0;
2444
+ position: relative;
2445
+ z-index: 1;
2312
2446
 
2313
2447
  > li + li {
2314
2448
  margin-left: 0.125rem;
@@ -2323,12 +2457,14 @@
2323
2457
  color: var(--inc-text-secondary);
2324
2458
  border-top-left-radius: $inc-radius-panel;
2325
2459
  border-top-right-radius: $inc-radius-panel;
2326
- background-color: var(--inc-surface-secondary);
2460
+ background: linear-gradient(180deg, rgba(var(--inc-surface-secondary-rgb), 0.96), rgba(var(--inc-surface-secondary-rgb), 0.82));
2327
2461
  height: 2.5rem;
2328
2462
  text-decoration: none;
2329
2463
  border: 1px solid var(--inc-border-subtle);
2330
2464
  cursor: pointer;
2331
2465
  appearance: none;
2466
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
2467
+ transition: color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
2332
2468
 
2333
2469
  .inc-tab-icon {
2334
2470
  color: var(--bs-primary);
@@ -2336,8 +2472,9 @@
2336
2472
 
2337
2473
  &:not(.active):hover {
2338
2474
  color: var(--inc-text-primary);
2339
- background-color: var(--inc-surface-muted);
2475
+ background: linear-gradient(180deg, rgba(var(--inc-surface-secondary-rgb), 1), rgba(var(--inc-surface-muted-rgb), 0.9));
2340
2476
  border-color: var(--inc-border-default);
2477
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.46);
2341
2478
 
2342
2479
  .inc-tab-icon {
2343
2480
  color: var(--bs-primary);
@@ -2346,24 +2483,27 @@
2346
2483
 
2347
2484
  &.active {
2348
2485
  color: var(--bs-primary-text-emphasis);
2349
- background-color: var(--inc-surface-primary);
2486
+ background-color: var(--inc-surface-panel);
2350
2487
  font-weight: 600;
2351
2488
  border-color: var(--inc-border-subtle);
2352
- border-bottom-color: var(--inc-surface-primary);
2489
+ border-bottom-color: var(--inc-surface-panel);
2353
2490
  position: relative;
2354
2491
  z-index: 1;
2492
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.62);
2493
+ transform: translateY(-1px);
2355
2494
  }
2356
2495
  }
2357
2496
  }
2358
2497
 
2359
2498
  .inc-tab-content {
2360
- background-color: var(--inc-surface-primary);
2499
+ background: linear-gradient(180deg, var(--inc-surface-panel-cap), rgba(var(--inc-surface-primary-rgb), 0.98));
2361
2500
  border: 1px solid var(--inc-border-subtle);
2362
2501
  padding: 1.5rem;
2363
2502
  border-radius: $inc-radius-panel;
2364
2503
  border-top-left-radius: 0;
2365
2504
  border-top-right-radius: $inc-radius-panel;
2366
2505
  margin-top: -1px;
2506
+ box-shadow: 0 0.125rem 0.25rem rgba(var(--inc-shadow-rgb), 0.06), 0 0.875rem 2rem rgba(var(--inc-shadow-rgb), 0.06);
2367
2507
  }
2368
2508
  }
2369
2509
 
@@ -3000,12 +3140,14 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3000
3140
  display: inline-flex;
3001
3141
  align-items: center;
3002
3142
  gap: 0.625rem;
3143
+ width: max-content;
3144
+ max-width: calc(100vw - 2rem);
3003
3145
  padding: 0.5rem 0.75rem;
3004
3146
  border: 1px solid var(--inc-border-subtle);
3005
3147
  border-radius: 999px;
3006
- background: rgba(var(--inc-surface-primary-rgb), 0.96);
3148
+ background: rgba(var(--inc-surface-primary-rgb), 0.92);
3007
3149
  color: var(--inc-text-primary);
3008
- box-shadow: 0 0.75rem 1.5rem rgba(var(--inc-surface-strong-rgb), 0.12);
3150
+ box-shadow: var(--inc-surface-panel-shadow-raised);
3009
3151
  font-size: 0.75rem;
3010
3152
  line-height: 1.2;
3011
3153
  white-space: nowrap;
@@ -3017,6 +3159,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3017
3159
  bottom: auto;
3018
3160
  z-index: auto;
3019
3161
  vertical-align: middle;
3162
+ max-width: 100%;
3020
3163
  }
3021
3164
 
3022
3165
  &__countdown,
@@ -3047,30 +3190,97 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3047
3190
  }
3048
3191
 
3049
3192
  &__toggle {
3193
+ --bs-btn-color: var(--inc-text-primary);
3194
+ --bs-btn-hover-color: var(--inc-text-primary);
3195
+ --bs-btn-active-color: var(--inc-text-primary);
3196
+ order: -1;
3050
3197
  flex: 0 0 auto;
3198
+ width: 1.875rem;
3199
+ height: 1.875rem;
3200
+ padding: 0;
3201
+ border-radius: 999px;
3202
+ display: inline-flex;
3203
+ align-items: center;
3204
+ justify-content: center;
3205
+ color: var(--inc-text-primary);
3206
+ border-color: var(--inc-border-default);
3207
+ background: linear-gradient(180deg, rgba(var(--inc-surface-secondary-rgb), 0.96), rgba(var(--inc-surface-primary-rgb), 0.94));
3208
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.08);
3051
3209
 
3052
3210
  &.inc-btn {
3053
- min-height: 1.625rem;
3054
- padding: 0.2rem 0.55rem;
3211
+ min-height: 1.875rem;
3055
3212
  font-size: 0.6875rem;
3056
3213
  line-height: 1;
3057
3214
  }
3215
+
3216
+ &:hover,
3217
+ &:focus-visible,
3218
+ &:active {
3219
+ color: var(--inc-text-primary);
3220
+ }
3221
+ }
3222
+
3223
+ &__toggle-icon {
3224
+ display: inline-flex;
3225
+ align-items: center;
3226
+ justify-content: center;
3227
+ width: 1rem;
3228
+ height: 1rem;
3229
+ color: var(--inc-text-primary);
3230
+
3231
+ .inc-auto-refresh__toggle:hover &,
3232
+ .inc-auto-refresh__toggle:focus-visible &,
3233
+ .inc-auto-refresh__toggle:active & {
3234
+ color: var(--inc-text-primary);
3235
+ }
3236
+
3237
+ svg {
3238
+ display: block;
3239
+ width: 1rem;
3240
+ height: 1rem;
3241
+ fill: currentColor;
3242
+ }
3058
3243
  }
3059
3244
 
3060
3245
  &__toggle-text {
3061
- display: inline-block;
3062
- min-width: 3.25rem;
3063
- text-align: center;
3246
+ @include visually-hidden();
3064
3247
  }
3065
3248
 
3066
3249
  &.is-paused {
3067
3250
  border-color: var(--bs-warning-border-subtle);
3068
3251
  box-shadow: 0 0.9rem 1.75rem rgba(var(--bs-warning-rgb), 0.1);
3252
+
3253
+ .inc-auto-refresh__toggle {
3254
+ color: var(--bs-warning-text-emphasis);
3255
+
3256
+ &:hover,
3257
+ &:focus-visible,
3258
+ &:active {
3259
+ color: var(--bs-warning-text-emphasis);
3260
+ }
3261
+ }
3262
+
3263
+ .inc-auto-refresh__toggle-icon {
3264
+ color: var(--inc-text-primary);
3265
+ svg {
3266
+ transform: translateX(0.03125rem);
3267
+ }
3268
+ }
3069
3269
  }
3070
3270
 
3071
3271
  &.is-loading {
3072
3272
  border-color: var(--bs-primary-border-subtle);
3073
3273
  box-shadow: 0 0.9rem 1.75rem rgba(var(--bs-primary-rgb), 0.14);
3274
+
3275
+ .inc-auto-refresh__toggle {
3276
+ color: var(--inc-text-primary);
3277
+
3278
+ &:hover,
3279
+ &:focus-visible,
3280
+ &:active {
3281
+ color: var(--inc-text-primary);
3282
+ }
3283
+ }
3074
3284
  }
3075
3285
  }
3076
3286
 
@@ -3163,7 +3373,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3163
3373
  .alert,
3164
3374
  .inc-alert {
3165
3375
  margin-bottom: 0.5rem;
3166
- box-shadow: $box-shadow-sm;
3376
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 0.375rem 1rem rgba(var(--inc-shadow-rgb), 0.05);
3167
3377
  border-radius: $inc-radius-panel;
3168
3378
  border-width: $border-width;
3169
3379
  padding: 0.75rem 1rem;
@@ -4293,7 +4503,9 @@ body.inc-offcanvas-open {
4293
4503
  border: 1px solid var(--bs-danger-border-subtle);
4294
4504
  border-left: 0.25rem solid var(--bs-danger-text-emphasis);
4295
4505
  border-radius: $inc-radius-md;
4296
- background: var(--bs-danger-bg-subtle);
4506
+ background: linear-gradient(180deg, rgba(var(--bs-danger-rgb), 0.14), rgba(var(--bs-danger-rgb), 0.1));
4507
+ box-shadow: var(--inc-surface-panel-shadow);
4508
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 0.375rem 1rem rgba(var(--inc-shadow-rgb), 0.05);
4297
4509
 
4298
4510
  &-title {
4299
4511
  margin: 0;
@@ -4318,7 +4530,8 @@ body.inc-offcanvas-open {
4318
4530
  padding: 1rem 1.125rem;
4319
4531
  border: 1px solid var(--inc-border-subtle);
4320
4532
  border-radius: $inc-radius-md;
4321
- background: var(--inc-surface-primary);
4533
+ background: var(--inc-surface-panel);
4534
+ box-shadow: var(--inc-surface-panel-shadow);
4322
4535
 
4323
4536
  &__main {
4324
4537
  display: flex;
@@ -4363,6 +4576,7 @@ body.inc-offcanvas-open {
4363
4576
  border: 1px solid var(--inc-border-subtle);
4364
4577
  border-radius: 999px;
4365
4578
  background: var(--inc-surface-secondary);
4579
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.05);
4366
4580
  color: var(--inc-text-primary);
4367
4581
  font-size: 0.75rem;
4368
4582
  font-weight: 600;
@@ -4386,6 +4600,22 @@ body.inc-offcanvas-open {
4386
4600
  }
4387
4601
  }
4388
4602
 
4603
+ [data-bs-theme="dark"] {
4604
+ .inc-filter-chip {
4605
+ &--accent {
4606
+ border-color: rgba(var(--bs-primary-rgb), 0.5);
4607
+ background: rgba(var(--bs-primary-rgb), 0.4);
4608
+ color: var(--bs-white);
4609
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.12);
4610
+ }
4611
+
4612
+ &--accent .inc-filter-chip__remove {
4613
+ color: currentColor;
4614
+ opacity: 0.88;
4615
+ }
4616
+ }
4617
+ }
4618
+
4389
4619
  .inc-state-panel {
4390
4620
  display: flex;
4391
4621
  flex-direction: column;
@@ -4393,7 +4623,8 @@ body.inc-offcanvas-open {
4393
4623
  padding: 1.5rem;
4394
4624
  border: 1px solid var(--inc-border-subtle);
4395
4625
  border-radius: $inc-radius-md;
4396
- background: var(--inc-surface-primary);
4626
+ background: var(--inc-surface-panel);
4627
+ box-shadow: var(--inc-surface-panel-shadow);
4397
4628
 
4398
4629
  &__head {
4399
4630
  display: flex;
@@ -4440,11 +4671,11 @@ body.inc-offcanvas-open {
4440
4671
 
4441
4672
  &--results {
4442
4673
  border-style: dashed;
4443
- background: var(--inc-surface-secondary);
4674
+ background: rgba(var(--inc-surface-secondary-rgb), 0.84);
4444
4675
  }
4445
4676
 
4446
4677
  &--loading {
4447
- background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), 0.04), var(--inc-surface-primary));
4678
+ background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), 0.05), var(--inc-surface-panel));
4448
4679
  }
4449
4680
 
4450
4681
  &--error {
@@ -4736,11 +4967,11 @@ body.inc-offcanvas-open {
4736
4967
  }
4737
4968
 
4738
4969
  .inc-form__fieldset {
4739
- background: var(--inc-surface-secondary);
4970
+ background: var(--inc-surface-panel);
4740
4971
  }
4741
4972
 
4742
4973
  .inc-form__legend {
4743
- background-color: var(--inc-surface-secondary);
4974
+ background-color: var(--inc-surface-panel-cap);
4744
4975
  }
4745
4976
 
4746
4977
  .inc-form__control.is-invalid,
@@ -4811,20 +5042,20 @@ body.inc-offcanvas-open {
4811
5042
  .inc-table__row--selected > *,
4812
5043
  .inc-table__row--warning > *,
4813
5044
  .inc-table__row--danger > * {
4814
- background: rgba(var(--bs-primary-rgb), 0.14) !important;
5045
+ background: rgba(var(--bs-primary-rgb), 0.26) !important;
4815
5046
  color: var(--inc-text-primary);
4816
5047
  }
4817
5048
 
4818
5049
  .inc-table__row--warning > * {
4819
- background: rgba(var(--bs-warning-rgb), 0.14) !important;
5050
+ background: rgba(var(--bs-warning-rgb), 0.24) !important;
4820
5051
  }
4821
5052
 
4822
5053
  .inc-table__row--danger > * {
4823
- background: rgba(var(--bs-danger-rgb), 0.14) !important;
5054
+ background: rgba(var(--bs-danger-rgb), 0.24) !important;
4824
5055
  }
4825
5056
 
4826
5057
  .inc-table__row--locked > * {
4827
- background: rgba(var(--bs-secondary-rgb), 0.22) !important;
5058
+ background: rgba(var(--bs-secondary-rgb), 0.32) !important;
4828
5059
  color: var(--inc-text-secondary);
4829
5060
  }
4830
5061
  }
@@ -5017,6 +5248,11 @@ body.inc-offcanvas-open {
5017
5248
  border: 1.5px dashed $inc-border-strong;
5018
5249
  border-radius: $inc-radius-md;
5019
5250
  background: linear-gradient(180deg, var(--inc-surface-secondary), var(--inc-surface-primary));
5251
+ transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
5252
+
5253
+ &[role="button"] {
5254
+ cursor: pointer;
5255
+ }
5020
5256
 
5021
5257
  &__content {
5022
5258
  display: flex;
@@ -5041,6 +5277,14 @@ body.inc-offcanvas-open {
5041
5277
  background: linear-gradient(180deg, var(--bs-primary-bg-subtle), var(--inc-surface-primary));
5042
5278
  }
5043
5279
 
5280
+ &.is-drag-over,
5281
+ &:focus-visible {
5282
+ border-color: var(--bs-primary);
5283
+ background: linear-gradient(180deg, var(--bs-primary-bg-subtle), var(--inc-surface-primary));
5284
+ box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.14);
5285
+ outline: 0;
5286
+ }
5287
+
5044
5288
  @media (max-width: 767.98px) {
5045
5289
  flex-direction: column;
5046
5290
  align-items: stretch;