@incursa/ui-kit 1.5.0 → 1.6.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.
Files changed (78) hide show
  1. package/LLMS.txt +4 -4
  2. package/README.md +46 -6
  3. package/dist/inc-design-language.css +192 -35
  4. package/dist/inc-design-language.css.map +1 -1
  5. package/dist/inc-design-language.min.css +1 -1
  6. package/dist/inc-design-language.min.css.map +1 -1
  7. package/dist/mcp/ai/agent-instructions.json +21 -0
  8. package/dist/mcp/ai/llms-txt.json +21 -0
  9. package/dist/mcp/components/buttons.json +29 -0
  10. package/dist/mcp/components/cards.json +29 -0
  11. package/dist/mcp/components/filter-bars.json +28 -0
  12. package/dist/mcp/components/form-choices.json +29 -0
  13. package/dist/mcp/components/forms.json +29 -0
  14. package/dist/mcp/components/interaction.json +28 -0
  15. package/dist/mcp/components/layout.json +28 -0
  16. package/dist/mcp/components/metrics.json +28 -0
  17. package/dist/mcp/components/states.json +28 -0
  18. package/dist/mcp/components/status.json +28 -0
  19. package/dist/mcp/components/tables.json +32 -0
  20. package/dist/mcp/components/utilities.json +28 -0
  21. package/dist/mcp/examples/data-grid-advanced.json +22 -0
  22. package/dist/mcp/examples/demo.json +24 -0
  23. package/dist/mcp/examples/forms-and-validation.json +21 -0
  24. package/dist/mcp/examples/native-patterns.json +21 -0
  25. package/dist/mcp/examples/overlay-workflows.json +22 -0
  26. package/dist/mcp/examples/record-detail.json +21 -0
  27. package/dist/mcp/examples/reference.json +23 -0
  28. package/dist/mcp/examples/states.json +21 -0
  29. package/dist/mcp/examples/web-components.json +24 -0
  30. package/dist/mcp/examples/work-queue.json +21 -0
  31. package/dist/mcp/guides/allowed-web-component-families.json +19 -0
  32. package/dist/mcp/guides/choose-css-vs-scss-vs-js-vs-web-components.json +20 -0
  33. package/dist/mcp/guides/customization-order.json +20 -0
  34. package/dist/mcp/guides/decision-tree.json +28 -0
  35. package/dist/mcp/guides/guardrails.json +20 -0
  36. package/dist/mcp/guides/install.json +31 -0
  37. package/dist/mcp/guides/latest.json +25 -0
  38. package/dist/mcp/guides/overview.json +26 -0
  39. package/dist/mcp/guides/package-metadata.json +25 -0
  40. package/dist/mcp/guides/update.json +26 -0
  41. package/dist/mcp/guides/when-to-use-css-first.json +20 -0
  42. package/dist/mcp/install.json +36 -0
  43. package/dist/mcp/patterns/data-grid-advanced.json +22 -0
  44. package/dist/mcp/patterns/demo.json +24 -0
  45. package/dist/mcp/patterns/forms-and-validation.json +21 -0
  46. package/dist/mcp/patterns/native-patterns.json +21 -0
  47. package/dist/mcp/patterns/overlay-workflows.json +22 -0
  48. package/dist/mcp/patterns/record-detail.json +21 -0
  49. package/dist/mcp/patterns/reference.json +24 -0
  50. package/dist/mcp/patterns/states.json +21 -0
  51. package/dist/mcp/patterns/web-components.json +24 -0
  52. package/dist/mcp/patterns/work-queue.json +21 -0
  53. package/dist/mcp/resources.json +2100 -0
  54. package/dist/mcp/search-index.json +827 -0
  55. package/dist/mcp/specs/control-conventions.json +21 -0
  56. package/dist/mcp/specs/public-surface.json +21 -0
  57. package/dist/mcp/specs/requirements-index.json +21 -0
  58. package/dist/mcp/specs/verification-index.json +21 -0
  59. package/dist/mcp/update.json +24 -0
  60. package/dist/mcp/worker.mjs +59959 -0
  61. package/dist/mcp/worker.mjs.map +7 -0
  62. package/dist/web-components/README.md +10 -4
  63. package/dist/web-components/RUNTIME-NOTES.md +7 -2
  64. package/dist/web-components/components/actions.js +557 -0
  65. package/dist/web-components/components/collections.js +272 -0
  66. package/dist/web-components/components/dom-helpers.js +46 -0
  67. package/dist/web-components/components/feedback.js +165 -0
  68. package/dist/web-components/index.js +4350 -813
  69. package/package.json +19 -8
  70. package/src/inc-design-language.scss +193 -35
  71. package/src/mcp/worker.ts +858 -0
  72. package/src/web-components/README.md +10 -4
  73. package/src/web-components/RUNTIME-NOTES.md +7 -2
  74. package/src/web-components/components/actions.js +557 -0
  75. package/src/web-components/components/collections.js +272 -0
  76. package/src/web-components/components/dom-helpers.js +46 -0
  77. package/src/web-components/components/feedback.js +165 -0
  78. package/src/web-components/index.js +53 -847
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@incursa/ui-kit",
3
- "version": "1.5.0",
3
+ "version": "1.6.1",
4
4
  "private": false,
5
5
  "description": "Reusable UI kit for data-heavy business applications.",
6
6
  "keywords": [
@@ -25,13 +25,13 @@
25
25
  "type": "commonjs",
26
26
  "exports": {
27
27
  ".": {
28
- "default": "./dist/inc-design-language.js",
29
28
  "style": "./dist/inc-design-language.css",
30
- "sass": "./src/inc-design-language.scss"
29
+ "sass": "./src/inc-design-language.scss",
30
+ "default": "./dist/inc-design-language.js"
31
31
  },
32
32
  "./web-components": {
33
- "default": "./dist/web-components/index.js",
34
- "style": "./dist/web-components/style.css"
33
+ "style": "./dist/web-components/style.css",
34
+ "default": "./dist/web-components/index.js"
35
35
  },
36
36
  "./web-components/style.css": "./dist/web-components/style.css",
37
37
  "./dist/inc-design-language.css": "./dist/inc-design-language.css",
@@ -54,11 +54,15 @@
54
54
  "build:css:min": "sass --load-path=node_modules --quiet-deps --silence-deprecation=import src/inc-design-language.scss dist/inc-design-language.min.css --style=compressed",
55
55
  "build:js": "node -e \"require('fs').copyFileSync('src/inc-design-language.js', 'dist/inc-design-language.js')\"",
56
56
  "build:wc": "node scripts/build-web-components.mjs",
57
- "build": "npm run build:css && npm run build:css:min && npm run build:js && npm run build:wc",
57
+ "build:mcp:manifests": "node scripts/generate-mcp.mjs",
58
+ "build:mcp": "node scripts/build-mcp.mjs",
59
+ "build": "npm run build:css && npm run build:css:min && npm run build:js && npm run build:wc && npm run build:mcp",
58
60
  "test:browser:install": "playwright install chromium",
59
61
  "test:browser": "playwright test",
62
+ "test:mcp": "node --test tests/mcp/transport.test.mjs tests/mcp/search.test.mjs tests/mcp/installation.test.mjs tests/mcp/markup.test.mjs tests/mcp/freshness.test.mjs",
60
63
  "smoke": "node scripts/verify-ui-kit.mjs",
61
- "verify": "npm run build && npm run smoke && npm pack --dry-run",
64
+ "verify": "npm run smoke && npm run build && npm run test:mcp && npm pack --dry-run",
65
+ "deploy:mcp": "npm run build:mcp && wrangler deploy --config wrangler.toml",
62
66
  "preversion": "npm run verify",
63
67
  "release:patch": "node scripts/assert-changelog-version.mjs patch && npm version patch",
64
68
  "release:minor": "node scripts/assert-changelog-version.mjs minor && npm version minor",
@@ -67,10 +71,17 @@
67
71
  "package": "npm run build && npm run smoke && npm run pack:tarball"
68
72
  },
69
73
  "devDependencies": {
74
+ "@modelcontextprotocol/sdk": "^1.29.0",
70
75
  "@playwright/test": "^1.58.2",
71
76
  "bootstrap": "^5.3.3",
77
+ "esbuild": "^0.27.4",
72
78
  "linkedom": "^0.18.12",
73
- "sass": "^1.93.2"
79
+ "sass": "^1.98.0",
80
+ "wrangler": "^4.79.0",
81
+ "zod": "^4.3.6"
82
+ },
83
+ "overrides": {
84
+ "picomatch": "4.0.4"
74
85
  },
75
86
  "publishConfig": {
76
87
  "access": "public"
@@ -33,10 +33,14 @@
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"] {
@@ -52,6 +56,10 @@
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);
@@ -538,6 +546,17 @@
538
546
  @extend .btn-outline-info;
539
547
  }
540
548
 
549
+ &--outline-primary,
550
+ &--outline-secondary,
551
+ &--outline-success,
552
+ &--outline-danger,
553
+ &--outline-warning,
554
+ &--outline-info {
555
+ --bs-btn-bg: rgba(var(--inc-surface-secondary-rgb), 0.74);
556
+ --bs-btn-disabled-bg: rgba(var(--inc-surface-secondary-rgb), 0.54);
557
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.06);
558
+ }
559
+
541
560
  &--sm {
542
561
  @extend .btn-sm;
543
562
  }
@@ -603,6 +622,15 @@
603
622
 
604
623
  .inc-badge {
605
624
  @extend .badge;
625
+ display: inline-flex;
626
+ align-items: center;
627
+ gap: 0.25rem;
628
+ background: rgba(var(--inc-surface-secondary-rgb), 0.88);
629
+ color: var(--inc-text-secondary);
630
+ border: 1px solid var(--inc-border-subtle);
631
+ border-radius: 0.5rem;
632
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.48), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.06);
633
+ font-weight: 600;
606
634
 
607
635
  &--primary {
608
636
  @extend .bg-primary;
@@ -643,6 +671,9 @@
643
671
 
644
672
  .inc-alert {
645
673
  @extend .alert;
674
+ border-radius: $inc-radius-md;
675
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 0.375rem 1rem rgba(var(--inc-shadow-rgb), 0.05);
676
+ background-clip: padding-box;
646
677
 
647
678
  &:empty {
648
679
  display: none;
@@ -791,15 +822,19 @@
791
822
  padding: 1rem 1rem 0.875rem;
792
823
  border: 1px solid var(--inc-border-subtle);
793
824
  border-radius: $inc-radius-md;
794
- background: var(--inc-surface-secondary);
825
+ background: var(--inc-surface-panel);
826
+ box-shadow: var(--inc-surface-panel-shadow);
795
827
  }
796
828
 
797
829
  &__legend {
798
830
  float: none;
799
831
  width: auto;
800
832
  margin: 0;
801
- padding: 0 0.375rem;
802
- background-color: var(--inc-surface-secondary);
833
+ padding: 0.125rem 0.625rem;
834
+ border: 1px solid var(--inc-border-subtle);
835
+ border-radius: 999px;
836
+ background-color: var(--inc-surface-panel-cap);
837
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.48);
803
838
  color: var(--inc-text-primary);
804
839
  font-size: 0.8125rem;
805
840
  font-weight: 600;
@@ -823,6 +858,10 @@
823
858
  align-items: center;
824
859
  gap: 0.5rem;
825
860
  min-width: 0;
861
+ padding: 0.875rem 1rem;
862
+ border: 1px solid var(--inc-border-subtle);
863
+ border-radius: $inc-radius-md;
864
+ background: var(--inc-surface-secondary);
826
865
 
827
866
  > .inc-form__label {
828
867
  margin-bottom: 0;
@@ -898,6 +937,10 @@
898
937
 
899
938
  .inc-form__field {
900
939
  flex: 0 1 auto;
940
+ padding: 0;
941
+ border: 0;
942
+ border-radius: 0;
943
+ background: transparent;
901
944
  }
902
945
 
903
946
  .inc-form__field--grow,
@@ -1024,12 +1067,37 @@
1024
1067
 
1025
1068
  .inc-readonly-field {
1026
1069
  @extend .form-control;
1027
- background-color: $gray-200;
1028
- cursor: default;
1029
1070
  display: flex;
1030
- align-items: center;
1071
+ flex-direction: column;
1072
+ align-items: flex-start;
1073
+ gap: 0.125rem;
1074
+ padding: 0.875rem 1rem;
1075
+ border: 1px solid var(--inc-border-subtle);
1076
+ border-radius: $inc-radius-md;
1077
+ background: var(--inc-surface-secondary);
1078
+ color: var(--inc-text-primary);
1079
+ cursor: default;
1031
1080
  -webkit-user-select: none;
1032
1081
  user-select: none;
1082
+
1083
+ > [part~="label"] {
1084
+ font-size: 0.75rem;
1085
+ font-weight: 600;
1086
+ letter-spacing: 0.04em;
1087
+ text-transform: uppercase;
1088
+ color: var(--inc-text-muted);
1089
+ }
1090
+
1091
+ > [part~="value"] {
1092
+ font-size: 0.875rem;
1093
+ font-weight: 500;
1094
+ color: var(--inc-text-primary);
1095
+ }
1096
+
1097
+ > [part~="meta"] {
1098
+ font-size: 0.75rem;
1099
+ color: var(--inc-text-muted);
1100
+ }
1033
1101
  }
1034
1102
 
1035
1103
  .inc-empty-state {
@@ -1041,19 +1109,31 @@
1041
1109
  padding: $spacer * 2 $spacer * 1.5;
1042
1110
  border: $border-width solid var(--inc-border-subtle);
1043
1111
  border-radius: $inc-radius-panel;
1044
- background-color: var(--inc-surface-secondary);
1112
+ background: linear-gradient(180deg, var(--inc-surface-panel-cap), rgba(var(--inc-surface-primary-rgb), 0.96));
1113
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42);
1045
1114
  color: var(--inc-text-primary);
1046
1115
  min-height: 21.875rem;
1047
1116
 
1048
1117
  &__content {
1049
1118
  max-width: 32.5rem;
1050
1119
  width: 100%;
1120
+ padding: 1rem;
1121
+ border-radius: $inc-radius-md;
1051
1122
  }
1052
1123
 
1053
1124
  &__icon {
1125
+ width: 4.5rem;
1126
+ height: 4.5rem;
1127
+ margin: 0 auto $spacer * 1.5;
1128
+ border: 1px solid var(--inc-border-subtle);
1129
+ border-radius: 1.25rem;
1130
+ background: rgba(var(--inc-surface-secondary-rgb), 0.82);
1131
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.36), 0 0.375rem 1rem rgba(var(--inc-shadow-rgb), 0.04);
1054
1132
  font-size: $font-size-base * 3.5;
1055
- margin-bottom: $spacer * 1.5;
1056
1133
  color: var(--inc-text-muted);
1134
+ display: inline-flex;
1135
+ align-items: center;
1136
+ justify-content: center;
1057
1137
  }
1058
1138
 
1059
1139
  &__form {
@@ -1132,13 +1212,16 @@
1132
1212
  .inc-card {
1133
1213
  @extend .card;
1134
1214
 
1135
- --bs-card-bg: var(--inc-surface-primary);
1215
+ --bs-card-bg: var(--inc-surface-panel);
1136
1216
  --bs-card-color: var(--inc-text-primary);
1137
1217
  --bs-card-title-color: var(--inc-text-primary);
1138
1218
  --bs-card-subtitle-color: var(--inc-text-muted);
1139
1219
  --bs-card-border-color: var(--inc-border-subtle);
1140
- --bs-card-cap-bg: var(--inc-surface-secondary);
1220
+ --bs-card-cap-bg: var(--inc-surface-panel-cap);
1141
1221
  --bs-card-cap-color: var(--inc-text-primary);
1222
+ background: var(--bs-card-bg);
1223
+ box-shadow: var(--inc-surface-panel-shadow);
1224
+ transition: box-shadow 0.18s ease, border-color 0.18s ease, background-color 0.18s ease;
1142
1225
 
1143
1226
  &__header {
1144
1227
  @extend .card-header;
@@ -1191,6 +1274,10 @@
1191
1274
  &__img-overlay {
1192
1275
  @extend .card-img-overlay;
1193
1276
  }
1277
+
1278
+ &--elevated {
1279
+ box-shadow: var(--inc-surface-panel-shadow-raised);
1280
+ }
1194
1281
  }
1195
1282
 
1196
1283
  .inc-grid {
@@ -1507,16 +1594,19 @@
1507
1594
  border: 1px solid var(--bs-border-color);
1508
1595
  border-radius: var(--bs-border-radius);
1509
1596
  overflow: hidden;
1597
+ background-color: var(--inc-surface-panel);
1598
+ box-shadow: var(--inc-surface-panel-shadow);
1510
1599
 
1511
1600
  .inc-header-body__header {
1512
1601
  border-top-left-radius: var(--bs-border-radius);
1513
1602
  border-top-right-radius: var(--bs-border-radius);
1603
+ background-color: var(--inc-surface-panel-cap);
1514
1604
  }
1515
1605
  }
1516
1606
 
1517
1607
  &--panel {
1518
- background-color: var(--inc-surface-primary);
1519
- box-shadow: 0 0.125rem 0.25rem rgb(0 0 0 / 7.5%);
1608
+ background-color: var(--inc-surface-panel);
1609
+ box-shadow: var(--inc-surface-panel-shadow-raised);
1520
1610
  border-radius: var(--bs-border-radius);
1521
1611
 
1522
1612
  .inc-header-body__header {
@@ -1618,14 +1708,15 @@
1618
1708
  }
1619
1709
 
1620
1710
  .inc-summary-block {
1621
- background-color: var(--inc-surface-primary);
1711
+ background-color: var(--inc-surface-panel);
1622
1712
  border: $border-width solid var(--inc-border-default);
1623
1713
  border-radius: $border-radius;
1624
1714
  padding: $spacer * 1.25;
1625
- transition: box-shadow 0.2s ease-in-out;
1715
+ box-shadow: var(--inc-surface-panel-shadow);
1716
+ transition: box-shadow 0.18s ease-in-out, background-color 0.18s ease-in-out;
1626
1717
 
1627
1718
  &:hover {
1628
- box-shadow: $box-shadow-sm;
1719
+ box-shadow: var(--inc-surface-panel-shadow-raised);
1629
1720
  }
1630
1721
 
1631
1722
  &__header {
@@ -2309,6 +2400,8 @@
2309
2400
  list-style: none;
2310
2401
  padding-left: 0;
2311
2402
  margin-bottom: 0;
2403
+ position: relative;
2404
+ z-index: 1;
2312
2405
 
2313
2406
  > li + li {
2314
2407
  margin-left: 0.125rem;
@@ -2323,12 +2416,14 @@
2323
2416
  color: var(--inc-text-secondary);
2324
2417
  border-top-left-radius: $inc-radius-panel;
2325
2418
  border-top-right-radius: $inc-radius-panel;
2326
- background-color: var(--inc-surface-secondary);
2419
+ background: linear-gradient(180deg, rgba(var(--inc-surface-secondary-rgb), 0.96), rgba(var(--inc-surface-secondary-rgb), 0.82));
2327
2420
  height: 2.5rem;
2328
2421
  text-decoration: none;
2329
2422
  border: 1px solid var(--inc-border-subtle);
2330
2423
  cursor: pointer;
2331
2424
  appearance: none;
2425
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.06);
2426
+ transition: color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
2332
2427
 
2333
2428
  .inc-tab-icon {
2334
2429
  color: var(--bs-primary);
@@ -2336,8 +2431,9 @@
2336
2431
 
2337
2432
  &:not(.active):hover {
2338
2433
  color: var(--inc-text-primary);
2339
- background-color: var(--inc-surface-muted);
2434
+ background: linear-gradient(180deg, rgba(var(--inc-surface-secondary-rgb), 1), rgba(var(--inc-surface-muted-rgb), 0.9));
2340
2435
  border-color: var(--inc-border-default);
2436
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.46), 0 2px 4px rgba(var(--inc-shadow-rgb), 0.07);
2341
2437
 
2342
2438
  .inc-tab-icon {
2343
2439
  color: var(--bs-primary);
@@ -2346,24 +2442,27 @@
2346
2442
 
2347
2443
  &.active {
2348
2444
  color: var(--bs-primary-text-emphasis);
2349
- background-color: var(--inc-surface-primary);
2445
+ background-color: var(--inc-surface-panel);
2350
2446
  font-weight: 600;
2351
2447
  border-color: var(--inc-border-subtle);
2352
- border-bottom-color: var(--inc-surface-primary);
2448
+ border-bottom-color: var(--inc-surface-panel);
2353
2449
  position: relative;
2354
2450
  z-index: 1;
2451
+ box-shadow: var(--inc-surface-panel-shadow-raised);
2452
+ transform: translateY(-1px);
2355
2453
  }
2356
2454
  }
2357
2455
  }
2358
2456
 
2359
2457
  .inc-tab-content {
2360
- background-color: var(--inc-surface-primary);
2458
+ background: linear-gradient(180deg, var(--inc-surface-panel-cap), rgba(var(--inc-surface-primary-rgb), 0.98));
2361
2459
  border: 1px solid var(--inc-border-subtle);
2362
2460
  padding: 1.5rem;
2363
2461
  border-radius: $inc-radius-panel;
2364
2462
  border-top-left-radius: 0;
2365
2463
  border-top-right-radius: $inc-radius-panel;
2366
2464
  margin-top: -1px;
2465
+ box-shadow: var(--inc-surface-panel-shadow-raised);
2367
2466
  }
2368
2467
  }
2369
2468
 
@@ -3003,9 +3102,9 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3003
3102
  padding: 0.5rem 0.75rem;
3004
3103
  border: 1px solid var(--inc-border-subtle);
3005
3104
  border-radius: 999px;
3006
- background: rgba(var(--inc-surface-primary-rgb), 0.96);
3105
+ background: rgba(var(--inc-surface-primary-rgb), 0.92);
3007
3106
  color: var(--inc-text-primary);
3008
- box-shadow: 0 0.75rem 1.5rem rgba(var(--inc-surface-strong-rgb), 0.12);
3107
+ box-shadow: var(--inc-surface-panel-shadow-raised);
3009
3108
  font-size: 0.75rem;
3010
3109
  line-height: 1.2;
3011
3110
  white-space: nowrap;
@@ -3048,24 +3147,78 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3048
3147
 
3049
3148
  &__toggle {
3050
3149
  flex: 0 0 auto;
3150
+ width: 1.875rem;
3151
+ height: 1.875rem;
3152
+ padding: 0;
3153
+ border-radius: 999px;
3154
+ display: inline-flex;
3155
+ align-items: center;
3156
+ justify-content: center;
3157
+ color: var(--inc-text-primary);
3158
+ border-color: var(--inc-border-default);
3159
+ background: linear-gradient(180deg, rgba(var(--inc-surface-secondary-rgb), 0.96), rgba(var(--inc-surface-primary-rgb), 0.94));
3160
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.08);
3051
3161
 
3052
3162
  &.inc-btn {
3053
- min-height: 1.625rem;
3054
- padding: 0.2rem 0.55rem;
3163
+ min-height: 1.875rem;
3055
3164
  font-size: 0.6875rem;
3056
3165
  line-height: 1;
3057
3166
  }
3058
3167
  }
3059
3168
 
3169
+ &__toggle-icon {
3170
+ position: relative;
3171
+ display: inline-flex;
3172
+ width: 0.75rem;
3173
+ height: 0.75rem;
3174
+ color: currentColor;
3175
+
3176
+ &::before,
3177
+ &::after {
3178
+ content: "";
3179
+ position: absolute;
3180
+ inset-block: 0.0625rem;
3181
+ width: 0.1875rem;
3182
+ border-radius: 999px;
3183
+ background: currentColor;
3184
+ }
3185
+
3186
+ &::before {
3187
+ left: 0.125rem;
3188
+ }
3189
+
3190
+ &::after {
3191
+ right: 0.125rem;
3192
+ }
3193
+ }
3194
+
3060
3195
  &__toggle-text {
3061
- display: inline-block;
3062
- min-width: 3.25rem;
3063
- text-align: center;
3196
+ @include visually-hidden();
3064
3197
  }
3065
3198
 
3066
3199
  &.is-paused {
3067
3200
  border-color: var(--bs-warning-border-subtle);
3068
3201
  box-shadow: 0 0.9rem 1.75rem rgba(var(--bs-warning-rgb), 0.1);
3202
+
3203
+ .inc-auto-refresh__toggle {
3204
+ color: var(--bs-warning-text-emphasis);
3205
+ }
3206
+
3207
+ .inc-auto-refresh__toggle-icon {
3208
+ width: 0.7rem;
3209
+ height: 0.7rem;
3210
+
3211
+ &::before {
3212
+ inset: 0;
3213
+ width: 100%;
3214
+ background: currentColor;
3215
+ clip-path: polygon(14% 8%, 14% 92%, 86% 50%);
3216
+ }
3217
+
3218
+ &::after {
3219
+ display: none;
3220
+ }
3221
+ }
3069
3222
  }
3070
3223
 
3071
3224
  &.is-loading {
@@ -3163,7 +3316,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3163
3316
  .alert,
3164
3317
  .inc-alert {
3165
3318
  margin-bottom: 0.5rem;
3166
- box-shadow: $box-shadow-sm;
3319
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 0.375rem 1rem rgba(var(--inc-shadow-rgb), 0.05);
3167
3320
  border-radius: $inc-radius-panel;
3168
3321
  border-width: $border-width;
3169
3322
  padding: 0.75rem 1rem;
@@ -4293,7 +4446,9 @@ body.inc-offcanvas-open {
4293
4446
  border: 1px solid var(--bs-danger-border-subtle);
4294
4447
  border-left: 0.25rem solid var(--bs-danger-text-emphasis);
4295
4448
  border-radius: $inc-radius-md;
4296
- background: var(--bs-danger-bg-subtle);
4449
+ background: linear-gradient(180deg, rgba(var(--bs-danger-rgb), 0.14), rgba(var(--bs-danger-rgb), 0.1));
4450
+ box-shadow: var(--inc-surface-panel-shadow);
4451
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 0.375rem 1rem rgba(var(--inc-shadow-rgb), 0.05);
4297
4452
 
4298
4453
  &-title {
4299
4454
  margin: 0;
@@ -4318,7 +4473,8 @@ body.inc-offcanvas-open {
4318
4473
  padding: 1rem 1.125rem;
4319
4474
  border: 1px solid var(--inc-border-subtle);
4320
4475
  border-radius: $inc-radius-md;
4321
- background: var(--inc-surface-primary);
4476
+ background: var(--inc-surface-panel);
4477
+ box-shadow: var(--inc-surface-panel-shadow);
4322
4478
 
4323
4479
  &__main {
4324
4480
  display: flex;
@@ -4363,6 +4519,7 @@ body.inc-offcanvas-open {
4363
4519
  border: 1px solid var(--inc-border-subtle);
4364
4520
  border-radius: 999px;
4365
4521
  background: var(--inc-surface-secondary);
4522
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 1px 2px rgba(var(--inc-shadow-rgb), 0.05);
4366
4523
  color: var(--inc-text-primary);
4367
4524
  font-size: 0.75rem;
4368
4525
  font-weight: 600;
@@ -4393,7 +4550,8 @@ body.inc-offcanvas-open {
4393
4550
  padding: 1.5rem;
4394
4551
  border: 1px solid var(--inc-border-subtle);
4395
4552
  border-radius: $inc-radius-md;
4396
- background: var(--inc-surface-primary);
4553
+ background: var(--inc-surface-panel);
4554
+ box-shadow: var(--inc-surface-panel-shadow);
4397
4555
 
4398
4556
  &__head {
4399
4557
  display: flex;
@@ -4440,11 +4598,11 @@ body.inc-offcanvas-open {
4440
4598
 
4441
4599
  &--results {
4442
4600
  border-style: dashed;
4443
- background: var(--inc-surface-secondary);
4601
+ background: rgba(var(--inc-surface-secondary-rgb), 0.84);
4444
4602
  }
4445
4603
 
4446
4604
  &--loading {
4447
- background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), 0.04), var(--inc-surface-primary));
4605
+ background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), 0.05), var(--inc-surface-panel));
4448
4606
  }
4449
4607
 
4450
4608
  &--error {
@@ -4736,11 +4894,11 @@ body.inc-offcanvas-open {
4736
4894
  }
4737
4895
 
4738
4896
  .inc-form__fieldset {
4739
- background: var(--inc-surface-secondary);
4897
+ background: var(--inc-surface-panel);
4740
4898
  }
4741
4899
 
4742
4900
  .inc-form__legend {
4743
- background-color: var(--inc-surface-secondary);
4901
+ background-color: var(--inc-surface-panel-cap);
4744
4902
  }
4745
4903
 
4746
4904
  .inc-form__control.is-invalid,