@incursa/ui-kit 1.0.1 → 1.2.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 (45) hide show
  1. package/AI-AGENT-INSTRUCTIONS.md +41 -28
  2. package/LLMS.txt +55 -41
  3. package/README.md +181 -68
  4. package/dist/inc-design-language.css +413 -239
  5. package/dist/inc-design-language.css.map +1 -1
  6. package/dist/inc-design-language.js +520 -0
  7. package/dist/inc-design-language.min.css +1 -1
  8. package/dist/inc-design-language.min.css.map +1 -1
  9. package/dist/web-components/README.md +92 -0
  10. package/dist/web-components/RUNTIME-NOTES.md +40 -0
  11. package/dist/web-components/base-element.js +193 -0
  12. package/dist/web-components/components/feedback.js +1074 -0
  13. package/dist/web-components/components/forms.js +979 -0
  14. package/dist/web-components/components/layout.js +408 -0
  15. package/dist/web-components/components/navigation.js +854 -0
  16. package/dist/web-components/components/overlays.js +634 -0
  17. package/dist/web-components/controllers/focus.js +101 -0
  18. package/dist/web-components/controllers/overlay.js +128 -0
  19. package/dist/web-components/controllers/selection.js +145 -0
  20. package/dist/web-components/controllers/theme.js +173 -0
  21. package/dist/web-components/index.js +886 -0
  22. package/dist/web-components/package.json +3 -0
  23. package/dist/web-components/registry.js +74 -0
  24. package/dist/web-components/shared.js +186 -0
  25. package/dist/web-components/style.css +6 -0
  26. package/package.json +11 -2
  27. package/src/inc-design-language.js +520 -0
  28. package/src/inc-design-language.scss +434 -246
  29. package/src/web-components/README.md +92 -0
  30. package/src/web-components/RUNTIME-NOTES.md +40 -0
  31. package/src/web-components/base-element.js +193 -0
  32. package/src/web-components/components/feedback.js +1074 -0
  33. package/src/web-components/components/forms.js +979 -0
  34. package/src/web-components/components/layout.js +408 -0
  35. package/src/web-components/components/navigation.js +854 -0
  36. package/src/web-components/components/overlays.js +634 -0
  37. package/src/web-components/controllers/focus.js +101 -0
  38. package/src/web-components/controllers/overlay.js +128 -0
  39. package/src/web-components/controllers/selection.js +145 -0
  40. package/src/web-components/controllers/theme.js +173 -0
  41. package/src/web-components/index.js +886 -0
  42. package/src/web-components/package.json +3 -0
  43. package/src/web-components/registry.js +74 -0
  44. package/src/web-components/shared.js +186 -0
  45. package/src/web-components/style.css +6 -0
@@ -1,13 +1,39 @@
1
1
  @use "./inc-tokens" as *;
2
2
  @import "bootstrap/scss/bootstrap";
3
3
 
4
+ :root {
5
+ --inc-surface-primary: var(--bs-body-bg);
6
+ --inc-surface-secondary: var(--bs-secondary-bg);
7
+ --inc-surface-muted: var(--bs-tertiary-bg);
8
+ --inc-surface-highlight: var(--bs-primary-bg-subtle);
9
+ --inc-surface-strong: #2a3142;
10
+ --inc-surface-strong-rgb: 42, 49, 66;
11
+ --inc-border-subtle: var(--bs-border-color-translucent);
12
+ --inc-border-default: var(--bs-border-color);
13
+ --inc-border-strong: var(--bs-secondary-color);
14
+ --inc-text-primary: var(--bs-body-color);
15
+ --inc-text-secondary: var(--bs-secondary-color);
16
+ --inc-text-muted: var(--bs-tertiary-color);
17
+ --inc-text-inverse: #ffffff;
18
+ --inc-text-inverse-rgb: 255, 255, 255;
19
+ --inc-text-link: var(--bs-link-color);
20
+ --inc-text-link-hover: var(--bs-link-hover-color);
21
+ --inc-surface-primary-rgb: var(--bs-body-bg-rgb);
22
+ --inc-surface-secondary-rgb: var(--bs-secondary-bg-rgb);
23
+ --inc-surface-muted-rgb: var(--bs-tertiary-bg-rgb);
24
+ --inc-text-primary-rgb: var(--bs-body-color-rgb);
25
+ --inc-text-secondary-rgb: var(--bs-secondary-color-rgb);
26
+ --inc-text-muted-rgb: var(--bs-tertiary-color-rgb);
27
+ --inc-shadow-rgb: var(--bs-black-rgb);
28
+ }
29
+
4
30
  // -----------------------------------------------------------------------------
5
31
  // Typography
6
32
  // -----------------------------------------------------------------------------
7
33
 
8
34
  .inc-text {
9
35
  font-family: $font-family-sans-serif;
10
- color: $body-color;
36
+ color: var(--inc-text-primary);
11
37
  margin: 0;
12
38
 
13
39
  &--large {
@@ -76,7 +102,7 @@
76
102
  }
77
103
 
78
104
  &--muted {
79
- color: $text-muted !important;
105
+ color: var(--inc-text-muted) !important;
80
106
  }
81
107
 
82
108
  &--lead {
@@ -86,7 +112,7 @@
86
112
  &--body {
87
113
  font-size: $font-size-base;
88
114
  line-height: $line-height-base;
89
- color: $body-color;
115
+ color: var(--inc-text-primary);
90
116
  }
91
117
  }
92
118
 
@@ -175,7 +201,7 @@
175
201
 
176
202
  .inc-data {
177
203
  font-family: $font-family-monospace;
178
- color: $body-color;
204
+ color: var(--inc-text-primary);
179
205
  margin: 0;
180
206
 
181
207
  &--display {
@@ -285,7 +311,7 @@
285
311
 
286
312
  &--help {
287
313
  font-size: 0.75rem;
288
- color: $text-muted;
314
+ color: var(--inc-text-muted);
289
315
  }
290
316
  }
291
317
 
@@ -696,9 +722,9 @@
696
722
  &__fieldset {
697
723
  margin: 0;
698
724
  padding: 1rem 1rem 0.875rem;
699
- border: 1px solid $inc-border-subtle;
725
+ border: 1px solid var(--inc-border-subtle);
700
726
  border-radius: $inc-radius-md;
701
- background: linear-gradient(180deg, rgba($inc-surface-secondary, 0.72), $inc-surface-primary 3rem);
727
+ background: linear-gradient(180deg, rgba(var(--inc-surface-secondary-rgb), 0.72), var(--inc-surface-primary) 3rem);
702
728
  }
703
729
 
704
730
  &__legend {
@@ -706,7 +732,7 @@
706
732
  width: auto;
707
733
  margin: 0;
708
734
  padding: 0 0.375rem;
709
- color: $body-color;
735
+ color: var(--inc-text-primary);
710
736
  font-size: 0.8125rem;
711
737
  font-weight: 600;
712
738
  line-height: 1.4;
@@ -1037,6 +1063,14 @@
1037
1063
  .inc-card {
1038
1064
  @extend .card;
1039
1065
 
1066
+ --bs-card-bg: var(--inc-surface-primary);
1067
+ --bs-card-color: var(--inc-text-primary);
1068
+ --bs-card-title-color: var(--inc-text-primary);
1069
+ --bs-card-subtitle-color: var(--inc-text-muted);
1070
+ --bs-card-border-color: var(--inc-border-subtle);
1071
+ --bs-card-cap-bg: var(--inc-surface-secondary);
1072
+ --bs-card-cap-color: var(--inc-text-primary);
1073
+
1040
1074
  &__header {
1041
1075
  @extend .card-header;
1042
1076
 
@@ -1388,7 +1422,7 @@
1388
1422
  }
1389
1423
 
1390
1424
  &__subtitle {
1391
- color: var(--bs-secondary);
1425
+ color: var(--inc-text-secondary);
1392
1426
  font-size: 0.875rem;
1393
1427
  margin: 0.25rem 0 0;
1394
1428
  }
@@ -1412,7 +1446,7 @@
1412
1446
  }
1413
1447
 
1414
1448
  &--panel {
1415
- background-color: var(--bs-body-bg);
1449
+ background-color: var(--inc-surface-primary);
1416
1450
  box-shadow: 0 0.125rem 0.25rem rgb(0 0 0 / 7.5%);
1417
1451
  border-radius: var(--bs-border-radius);
1418
1452
 
@@ -1515,8 +1549,8 @@
1515
1549
  }
1516
1550
 
1517
1551
  .inc-summary-block {
1518
- background-color: $white;
1519
- border: $border-width solid $border-color;
1552
+ background-color: var(--inc-surface-primary);
1553
+ border: $border-width solid var(--inc-border-default);
1520
1554
  border-radius: $border-radius;
1521
1555
  padding: $spacer * 1.25;
1522
1556
  transition: box-shadow 0.2s ease-in-out;
@@ -1531,7 +1565,7 @@
1531
1565
  justify-content: space-between;
1532
1566
  margin-bottom: $spacer * 0.75;
1533
1567
  font-size: $font-size-sm;
1534
- color: $text-muted;
1568
+ color: var(--inc-text-muted);
1535
1569
  font-weight: $font-weight-medium;
1536
1570
  text-align: left;
1537
1571
 
@@ -1544,7 +1578,7 @@
1544
1578
 
1545
1579
  &__header-action {
1546
1580
  font-size: $font-size-sm;
1547
- color: $text-muted;
1581
+ color: var(--inc-text-muted);
1548
1582
  }
1549
1583
 
1550
1584
  &__body {
@@ -1566,7 +1600,7 @@
1566
1600
  &__value {
1567
1601
  font-size: $h2-font-size;
1568
1602
  font-weight: $font-weight-bold;
1569
- color: $dark;
1603
+ color: var(--inc-text-primary);
1570
1604
  line-height: 1.2;
1571
1605
  margin: 0;
1572
1606
 
@@ -1599,7 +1633,7 @@
1599
1633
  &__status-count {
1600
1634
  font-size: $h3-font-size;
1601
1635
  font-weight: $font-weight-bold;
1602
- color: $dark;
1636
+ color: var(--inc-text-primary);
1603
1637
  line-height: 1;
1604
1638
  margin: 0;
1605
1639
  }
@@ -1646,8 +1680,8 @@
1646
1680
  min-height: 100vh;
1647
1681
  display: flex;
1648
1682
  flex-direction: column;
1649
- background-color: $body-bg;
1650
- color: $body-color;
1683
+ background-color: var(--inc-surface-primary);
1684
+ color: var(--inc-text-primary);
1651
1685
 
1652
1686
  &__header {
1653
1687
  position: relative;
@@ -1663,8 +1697,8 @@
1663
1697
  &__sidebar {
1664
1698
  flex: 0 0 17rem;
1665
1699
  max-width: 17rem;
1666
- background-color: $inc-surface-secondary;
1667
- border-right: 1px solid $inc-border-subtle;
1700
+ background-color: var(--inc-surface-secondary);
1701
+ border-right: 1px solid var(--inc-border-subtle);
1668
1702
  padding: 1rem;
1669
1703
  }
1670
1704
 
@@ -1696,7 +1730,7 @@
1696
1730
  &__sidebar {
1697
1731
  max-width: none;
1698
1732
  border-right: 0;
1699
- border-bottom: 1px solid $inc-border-subtle;
1733
+ border-bottom: 1px solid var(--inc-border-subtle);
1700
1734
  }
1701
1735
 
1702
1736
  &__content {
@@ -1782,9 +1816,9 @@
1782
1816
  justify-content: space-between;
1783
1817
  gap: 1rem;
1784
1818
  padding: 0.5rem 1rem;
1785
- border-top: 1px solid $inc-border-subtle;
1786
- background-color: $inc-surface-secondary;
1787
- color: $inc-text-secondary;
1819
+ border-top: 1px solid var(--inc-border-subtle);
1820
+ background-color: var(--inc-surface-secondary);
1821
+ color: var(--inc-text-secondary);
1788
1822
 
1789
1823
  &__menu {
1790
1824
  display: flex;
@@ -1795,7 +1829,7 @@
1795
1829
 
1796
1830
  &__meta {
1797
1831
  font-size: 0.75rem;
1798
- color: $inc-text-muted;
1832
+ color: var(--inc-text-muted);
1799
1833
  }
1800
1834
  }
1801
1835
 
@@ -1975,6 +2009,41 @@
1975
2009
  margin-top: 0.5rem;
1976
2010
  }
1977
2011
 
2012
+ .inc-theme-toggle {
2013
+ display: inline-flex;
2014
+ flex-wrap: wrap;
2015
+ align-items: center;
2016
+ gap: 0.75rem;
2017
+ padding: 0.625rem 0.75rem;
2018
+ border: 1px solid var(--inc-border-subtle);
2019
+ border-radius: $inc-radius-panel;
2020
+ background: var(--inc-surface-primary);
2021
+ color: var(--inc-text-primary);
2022
+
2023
+ &__label {
2024
+ display: flex;
2025
+ flex-direction: column;
2026
+ gap: 0.125rem;
2027
+ min-width: 0;
2028
+ }
2029
+
2030
+ &__title {
2031
+ margin: 0;
2032
+ font-size: 0.6875rem;
2033
+ font-weight: 600;
2034
+ letter-spacing: 0.08em;
2035
+ text-transform: uppercase;
2036
+ color: var(--inc-text-muted);
2037
+ }
2038
+
2039
+ &__value {
2040
+ margin: 0;
2041
+ font-size: 0.875rem;
2042
+ font-weight: 600;
2043
+ color: var(--inc-text-primary);
2044
+ }
2045
+ }
2046
+
1978
2047
  .inc-sidebar-menu {
1979
2048
  display: flex;
1980
2049
  flex-direction: column;
@@ -1987,7 +2056,7 @@
1987
2056
  &__label {
1988
2057
  display: block;
1989
2058
  margin-bottom: 0.5rem;
1990
- color: $inc-text-muted;
2059
+ color: var(--inc-text-muted);
1991
2060
  font-size: 0.6875rem;
1992
2061
  font-weight: 600;
1993
2062
  letter-spacing: 0.08em;
@@ -2002,23 +2071,23 @@
2002
2071
  padding: 0.625rem 0.75rem;
2003
2072
  border: 1px solid transparent;
2004
2073
  border-radius: $inc-radius-panel;
2005
- color: $inc-text-secondary;
2074
+ color: var(--inc-text-secondary);
2006
2075
  text-decoration: none;
2007
2076
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
2008
2077
 
2009
2078
  &:hover,
2010
2079
  &:focus-visible {
2011
- background-color: $inc-surface-muted;
2012
- border-color: $inc-border-subtle;
2013
- color: $inc-text-primary;
2080
+ background-color: var(--inc-surface-muted);
2081
+ border-color: var(--inc-border-subtle);
2082
+ color: var(--inc-text-primary);
2014
2083
  text-decoration: none;
2015
2084
  }
2016
2085
 
2017
2086
  &.active,
2018
2087
  &--active {
2019
- background-color: rgba($inc-brand-300, 0.12);
2020
- border-color: rgba($inc-brand-700, 0.2);
2021
- color: $inc-brand-800;
2088
+ background-color: var(--inc-surface-highlight);
2089
+ border-color: rgba(var(--bs-primary-rgb), 0.2);
2090
+ color: var(--bs-primary-text-emphasis);
2022
2091
  font-weight: 600;
2023
2092
  }
2024
2093
  }
@@ -2028,15 +2097,15 @@
2028
2097
  }
2029
2098
 
2030
2099
  &__hint {
2031
- color: $inc-text-muted;
2100
+ color: var(--inc-text-muted);
2032
2101
  font-size: 0.75rem;
2033
2102
  white-space: nowrap;
2034
2103
  }
2035
2104
  }
2036
2105
 
2037
2106
  .inc-nav-triad {
2038
- background-color: var(--bs-light);
2039
- border-bottom: 1px solid var(--bs-border-color);
2107
+ background-color: var(--inc-surface-secondary);
2108
+ border-bottom: 1px solid var(--inc-border-default);
2040
2109
  padding: 0.75rem 1rem;
2041
2110
  min-height: 3rem;
2042
2111
  position: sticky;
@@ -2073,17 +2142,17 @@
2073
2142
  align-items: center;
2074
2143
  gap: 0.5rem;
2075
2144
  padding: 0.5rem 0.75rem;
2076
- border: 1px solid var(--bs-border-color);
2145
+ border: 1px solid var(--inc-border-default);
2077
2146
  border-radius: $inc-radius-panel;
2078
- background-color: var(--bs-white);
2079
- color: var(--bs-body-color);
2147
+ background-color: var(--inc-surface-primary);
2148
+ color: var(--inc-text-primary);
2080
2149
  text-decoration: none;
2081
2150
  font-size: 0.875rem;
2082
2151
  transition: all 0.2s ease;
2083
2152
 
2084
2153
  &:hover {
2085
- background-color: var(--bs-light);
2086
- border-color: var(--bs-secondary);
2154
+ background-color: var(--inc-surface-muted);
2155
+ border-color: var(--inc-border-strong);
2087
2156
  text-decoration: none;
2088
2157
  }
2089
2158
 
@@ -2096,12 +2165,12 @@
2096
2165
  &__btn--subtle {
2097
2166
  border-color: transparent;
2098
2167
  background-color: transparent;
2099
- color: var(--bs-secondary);
2168
+ color: var(--inc-text-secondary);
2100
2169
 
2101
2170
  &:hover {
2102
- background-color: var(--bs-light);
2103
- border-color: var(--bs-border-color);
2104
- color: var(--bs-body-color);
2171
+ background-color: var(--inc-surface-muted);
2172
+ border-color: var(--inc-border-default);
2173
+ color: var(--inc-text-primary);
2105
2174
  }
2106
2175
  }
2107
2176
 
@@ -2182,36 +2251,36 @@
2182
2251
  gap: 0.5rem;
2183
2252
  padding: 1rem;
2184
2253
  font: inherit;
2185
- color: $inc-ink-600;
2254
+ color: var(--inc-text-secondary);
2186
2255
  border-top-left-radius: $inc-radius-panel;
2187
2256
  border-top-right-radius: $inc-radius-panel;
2188
- background-color: $inc-surface-secondary;
2257
+ background-color: var(--inc-surface-secondary);
2189
2258
  height: 2.5rem;
2190
2259
  text-decoration: none;
2191
- border: 1px solid $inc-border-subtle;
2260
+ border: 1px solid var(--inc-border-subtle);
2192
2261
  cursor: pointer;
2193
2262
  appearance: none;
2194
2263
 
2195
2264
  .inc-tab-icon {
2196
- color: $inc-brand-800;
2265
+ color: var(--bs-primary);
2197
2266
  }
2198
2267
 
2199
2268
  &:not(.active):hover {
2200
- color: $inc-brand-900;
2201
- background-color: $inc-surface-muted;
2202
- border-color: $inc-border-default;
2269
+ color: var(--inc-text-primary);
2270
+ background-color: var(--inc-surface-muted);
2271
+ border-color: var(--inc-border-default);
2203
2272
 
2204
2273
  .inc-tab-icon {
2205
- color: $inc-brand-900;
2274
+ color: var(--bs-primary);
2206
2275
  }
2207
2276
  }
2208
2277
 
2209
2278
  &.active {
2210
- color: $inc-brand-800;
2211
- background-color: $inc-surface-primary;
2279
+ color: var(--bs-primary-text-emphasis);
2280
+ background-color: var(--inc-surface-primary);
2212
2281
  font-weight: 600;
2213
- border-color: $inc-border-subtle;
2214
- border-bottom-color: $inc-surface-primary;
2282
+ border-color: var(--inc-border-subtle);
2283
+ border-bottom-color: var(--inc-surface-primary);
2215
2284
  position: relative;
2216
2285
  z-index: 1;
2217
2286
  }
@@ -2219,8 +2288,8 @@
2219
2288
  }
2220
2289
 
2221
2290
  .inc-tab-content {
2222
- background-color: $inc-surface-primary;
2223
- border: 1px solid $inc-border-subtle;
2291
+ background-color: var(--inc-surface-primary);
2292
+ border: 1px solid var(--inc-border-subtle);
2224
2293
  padding: 1.5rem;
2225
2294
  border-radius: $inc-radius-panel;
2226
2295
  border-top-left-radius: 0;
@@ -2230,7 +2299,7 @@
2230
2299
  }
2231
2300
 
2232
2301
  .inc-tabs-line {
2233
- border-bottom: 1px solid $inc-border-subtle;
2302
+ border-bottom: 1px solid var(--inc-border-subtle);
2234
2303
 
2235
2304
  .inc-tabs-nav {
2236
2305
  display: flex;
@@ -2248,7 +2317,7 @@
2248
2317
  gap: 0.5rem;
2249
2318
  padding: 1rem 0.25rem;
2250
2319
  font: inherit;
2251
- color: $inc-text-secondary;
2320
+ color: var(--inc-text-secondary);
2252
2321
  background: none;
2253
2322
  border: 0;
2254
2323
  text-decoration: none;
@@ -2257,25 +2326,25 @@
2257
2326
  appearance: none;
2258
2327
 
2259
2328
  .inc-tab-icon {
2260
- color: $inc-brand-800;
2329
+ color: var(--bs-primary);
2261
2330
  }
2262
2331
 
2263
2332
  &:not(.active):hover {
2264
- color: $inc-accent-700;
2265
- border-bottom-color: $inc-accent-700;
2333
+ color: var(--bs-primary);
2334
+ border-bottom-color: var(--bs-primary);
2266
2335
 
2267
2336
  .inc-tab-icon {
2268
- color: $inc-accent-700;
2337
+ color: var(--bs-primary);
2269
2338
  }
2270
2339
  }
2271
2340
 
2272
2341
  &.active {
2273
- color: $inc-text-primary;
2342
+ color: var(--inc-text-primary);
2274
2343
  font-weight: 600;
2275
- border-bottom-color: $inc-accent-700;
2344
+ border-bottom-color: var(--bs-primary);
2276
2345
 
2277
2346
  .inc-tab-icon {
2278
- color: $inc-text-primary;
2347
+ color: var(--inc-text-primary);
2279
2348
  }
2280
2349
  }
2281
2350
  }
@@ -2337,9 +2406,9 @@
2337
2406
  }
2338
2407
 
2339
2408
  details.inc-disclosure {
2340
- border: 1px solid $inc-border-subtle;
2409
+ border: 1px solid var(--inc-border-subtle);
2341
2410
  border-radius: $inc-radius-panel;
2342
- background-color: $inc-surface-primary;
2411
+ background-color: var(--inc-surface-primary);
2343
2412
  box-shadow: $inc-shadow-xs;
2344
2413
  overflow: clip;
2345
2414
 
@@ -2354,8 +2423,8 @@ details.inc-disclosure {
2354
2423
  justify-content: space-between;
2355
2424
  gap: 1rem;
2356
2425
  padding: 1rem 1.25rem;
2357
- background-color: $inc-surface-secondary;
2358
- color: $inc-text-primary;
2426
+ background-color: var(--inc-surface-secondary);
2427
+ color: var(--inc-text-primary);
2359
2428
  cursor: pointer;
2360
2429
  list-style: none;
2361
2430
  font-size: 0.9375rem;
@@ -2382,8 +2451,8 @@ details.inc-disclosure {
2382
2451
  }
2383
2452
 
2384
2453
  details.inc-disclosure[open] > .inc-disclosure__summary {
2385
- border-bottom: 1px solid $inc-border-subtle;
2386
- background-color: rgba($inc-brand-50, 0.85);
2454
+ border-bottom: 1px solid var(--inc-border-subtle);
2455
+ background-color: var(--inc-surface-highlight);
2387
2456
 
2388
2457
  &::after {
2389
2458
  transform: rotate(225deg) translateY(-0.05rem);
@@ -2397,7 +2466,7 @@ details.inc-disclosure[open] > .inc-disclosure__summary {
2397
2466
  }
2398
2467
 
2399
2468
  .inc-disclosure__meta {
2400
- color: $inc-text-muted;
2469
+ color: var(--inc-text-muted);
2401
2470
  font-size: 0.75rem;
2402
2471
  font-weight: 500;
2403
2472
  }
@@ -2420,24 +2489,24 @@ details.inc-native-menu.inc-native-menu--navbar {
2420
2489
  .inc-native-menu__summary {
2421
2490
  min-height: 2.625rem;
2422
2491
  padding: 0.375rem 0.75rem;
2423
- border-color: rgba($inc-text-inverse, 0.16);
2424
- background-color: rgba($inc-text-inverse, 0.08);
2425
- color: rgba($inc-text-inverse, 0.92);
2492
+ border-color: rgba(255, 255, 255, 0.16);
2493
+ background-color: rgba(255, 255, 255, 0.08);
2494
+ color: rgba(255, 255, 255, 0.92);
2426
2495
  box-shadow: none;
2427
2496
  }
2428
2497
 
2429
2498
  .inc-user-menu__avatar {
2430
- background-color: rgba($inc-text-inverse, 0.18);
2499
+ background-color: rgba(255, 255, 255, 0.18);
2431
2500
  color: $inc-text-inverse;
2432
2501
  }
2433
2502
 
2434
2503
  .inc-user-menu__detail {
2435
- color: rgba($inc-text-inverse, 0.72);
2504
+ color: rgba(255, 255, 255, 0.72);
2436
2505
  }
2437
2506
 
2438
2507
  &[open] > .inc-native-menu__summary {
2439
- border-color: rgba($inc-text-inverse, 0.24);
2440
- background-color: rgba($inc-text-inverse, 0.14);
2508
+ border-color: rgba(255, 255, 255, 0.24);
2509
+ background-color: rgba(255, 255, 255, 0.14);
2441
2510
  }
2442
2511
 
2443
2512
  > .inc-native-menu__panel {
@@ -2451,10 +2520,10 @@ details.inc-native-menu.inc-native-menu--navbar {
2451
2520
  gap: 0.625rem;
2452
2521
  min-width: 0;
2453
2522
  padding: 0.5rem 0.75rem;
2454
- border: 1px solid $inc-border-subtle;
2523
+ border: 1px solid var(--inc-border-subtle);
2455
2524
  border-radius: $inc-radius-panel;
2456
- background-color: $inc-surface-primary;
2457
- color: $inc-text-primary;
2525
+ background-color: var(--inc-surface-primary);
2526
+ color: var(--inc-text-primary);
2458
2527
  cursor: pointer;
2459
2528
  list-style: none;
2460
2529
  box-shadow: $inc-shadow-xs;
@@ -2513,14 +2582,14 @@ details.inc-native-menu.inc-native-menu--navbar {
2513
2582
  .inc-user-menu__detail {
2514
2583
  display: block;
2515
2584
  font-size: 0.75rem;
2516
- color: $text-muted;
2585
+ color: var(--inc-text-muted);
2517
2586
  line-height: 1.15;
2518
2587
  }
2519
2588
  }
2520
2589
 
2521
2590
  details.inc-native-menu[open] > .inc-native-menu__summary {
2522
- border-color: $inc-border-default;
2523
- background-color: $inc-surface-secondary;
2591
+ border-color: var(--inc-border-default);
2592
+ background-color: var(--inc-surface-secondary);
2524
2593
 
2525
2594
  &::after {
2526
2595
  transform: rotate(225deg) translateY(-0.05rem);
@@ -2533,9 +2602,9 @@ details.inc-native-menu[open] > .inc-native-menu__summary {
2533
2602
  right: 0;
2534
2603
  min-width: 14rem;
2535
2604
  padding: 0.375rem 0;
2536
- border: 1px solid $inc-border-subtle;
2605
+ border: 1px solid var(--inc-border-subtle);
2537
2606
  border-radius: $inc-radius-panel;
2538
- background-color: $inc-surface-primary;
2607
+ background-color: var(--inc-surface-primary);
2539
2608
  box-shadow: $inc-shadow-md;
2540
2609
  z-index: $inc-z-index-dropdown;
2541
2610
  }
@@ -2545,7 +2614,7 @@ details.inc-native-menu.inc-native-menu--block > .inc-native-menu__summary {
2545
2614
  justify-content: flex-start;
2546
2615
  min-height: 3rem;
2547
2616
  padding: 0.625rem 0.75rem;
2548
- background: linear-gradient(180deg, $inc-surface-primary, $inc-surface-secondary);
2617
+ background: linear-gradient(180deg, var(--inc-surface-primary), var(--inc-surface-secondary));
2549
2618
  }
2550
2619
 
2551
2620
  details.inc-native-menu.inc-native-menu--block > .inc-native-menu__panel {
@@ -2556,7 +2625,7 @@ details.inc-native-menu.inc-native-menu--block > .inc-native-menu__panel {
2556
2625
 
2557
2626
  .inc-native-menu__header {
2558
2627
  padding: 0.25rem 0.875rem 0.5rem;
2559
- color: $inc-text-muted;
2628
+ color: var(--inc-text-muted);
2560
2629
  font-size: 0.75rem;
2561
2630
  font-weight: 600;
2562
2631
  }
@@ -2564,13 +2633,13 @@ details.inc-native-menu.inc-native-menu--block > .inc-native-menu__panel {
2564
2633
  .inc-native-menu__item {
2565
2634
  display: block;
2566
2635
  padding: 0.5rem 0.875rem;
2567
- color: $inc-text-primary;
2636
+ color: var(--inc-text-primary);
2568
2637
  text-decoration: none;
2569
2638
 
2570
2639
  &:hover,
2571
2640
  &:focus-visible {
2572
- background-color: $inc-surface-secondary;
2573
- color: $inc-text-primary;
2641
+ background-color: var(--inc-surface-secondary);
2642
+ color: var(--inc-text-primary);
2574
2643
  text-decoration: none;
2575
2644
  }
2576
2645
  }
@@ -2588,13 +2657,132 @@ details.inc-native-menu.inc-native-menu--block > .inc-native-menu__panel {
2588
2657
  }
2589
2658
  }
2590
2659
 
2660
+ .inc-theme-switcher {
2661
+ min-width: 0;
2662
+ }
2663
+
2664
+ .inc-theme-switcher__summary {
2665
+ min-width: 11rem;
2666
+ }
2667
+
2668
+ .inc-theme-switcher__meta {
2669
+ min-width: 0;
2670
+ display: flex;
2671
+ flex-direction: column;
2672
+ gap: 0.125rem;
2673
+ line-height: 1.15;
2674
+ }
2675
+
2676
+ .inc-theme-switcher__label {
2677
+ font-size: 0.6875rem;
2678
+ font-weight: 600;
2679
+ letter-spacing: 0.08em;
2680
+ text-transform: uppercase;
2681
+ color: var(--inc-text-muted);
2682
+ }
2683
+
2684
+ .inc-theme-switcher__status {
2685
+ font-size: 0.875rem;
2686
+ font-weight: 600;
2687
+ color: inherit;
2688
+ }
2689
+
2690
+ .inc-theme-switcher__panel {
2691
+ min-width: 16rem;
2692
+ }
2693
+
2694
+ .inc-theme-switcher__option {
2695
+ width: 100%;
2696
+ display: grid;
2697
+ grid-template-columns: auto minmax(0, 1fr) auto;
2698
+ align-items: center;
2699
+ gap: 0.75rem;
2700
+ padding: 0.625rem 0.875rem;
2701
+ border: 0;
2702
+ background: transparent;
2703
+ color: var(--inc-text-primary);
2704
+ text-align: left;
2705
+ cursor: pointer;
2706
+
2707
+ &::before,
2708
+ &::after {
2709
+ content: "";
2710
+ display: block;
2711
+ }
2712
+
2713
+ &::before {
2714
+ width: 0.75rem;
2715
+ height: 0.75rem;
2716
+ border: 1px solid var(--inc-border-strong);
2717
+ border-radius: 999px;
2718
+ background: var(--inc-surface-primary);
2719
+ box-shadow: inset 0 0 0 0 rgba(var(--bs-primary-rgb), 0.85);
2720
+ transition: border-color 0.18s ease, box-shadow 0.18s ease;
2721
+ }
2722
+
2723
+ &::after {
2724
+ width: 0.5rem;
2725
+ height: 0.5rem;
2726
+ border-radius: 999px;
2727
+ background: transparent;
2728
+ transition: background-color 0.18s ease;
2729
+ }
2730
+
2731
+ &:hover,
2732
+ &:focus-visible {
2733
+ background: var(--inc-surface-secondary);
2734
+ color: var(--inc-text-primary);
2735
+ }
2736
+
2737
+ &.is-selected {
2738
+ background: var(--bs-primary-bg-subtle);
2739
+ color: var(--bs-primary-text-emphasis);
2740
+
2741
+ &::before {
2742
+ border-color: rgba(var(--bs-primary-rgb), 0.72);
2743
+ box-shadow: inset 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.92);
2744
+ }
2745
+
2746
+ &::after {
2747
+ background: var(--bs-primary);
2748
+ }
2749
+ }
2750
+ }
2751
+
2752
+ .inc-theme-switcher__option-body {
2753
+ min-width: 0;
2754
+ display: flex;
2755
+ flex-direction: column;
2756
+ gap: 0.125rem;
2757
+ }
2758
+
2759
+ .inc-theme-switcher__option-label {
2760
+ font-size: 0.875rem;
2761
+ font-weight: 600;
2762
+ }
2763
+
2764
+ .inc-theme-switcher__option-detail {
2765
+ font-size: 0.75rem;
2766
+ color: var(--inc-text-muted);
2767
+ }
2768
+
2769
+ details.inc-theme-switcher.inc-native-menu--navbar {
2770
+ .inc-theme-switcher__label {
2771
+ color: rgba(var(--inc-text-inverse-rgb), 0.64);
2772
+ }
2773
+
2774
+ .inc-theme-switcher__status {
2775
+ color: rgba(var(--inc-text-inverse-rgb), 0.9);
2776
+ }
2777
+ }
2778
+
2591
2779
  dialog.inc-native-dialog {
2592
2780
  width: min(100% - 2rem, 42rem);
2593
2781
  max-width: 42rem;
2594
2782
  padding: 0;
2595
2783
  border: 0;
2596
2784
  background: transparent;
2597
- color: $inc-text-primary;
2785
+ color: var(--inc-text-primary);
2598
2786
 
2599
2787
  &::backdrop {
2600
2788
  background: rgba($inc-ink-900, 0.48);
@@ -2616,9 +2804,9 @@ dialog.inc-native-dialog.inc-native-dialog--drawer {
2616
2804
  }
2617
2805
 
2618
2806
  .inc-native-dialog__surface {
2619
- border: 1px solid $inc-border-subtle;
2807
+ border: 1px solid var(--inc-border-subtle);
2620
2808
  border-radius: $inc-radius-panel;
2621
- background-color: $inc-surface-primary;
2809
+ background-color: var(--inc-surface-primary);
2622
2810
  box-shadow: $inc-shadow-lg;
2623
2811
  overflow: hidden;
2624
2812
  }
@@ -2637,8 +2825,8 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__surface {
2637
2825
  justify-content: space-between;
2638
2826
  gap: 1rem;
2639
2827
  padding: 1rem 1.25rem;
2640
- border-bottom: 1px solid $inc-border-subtle;
2641
- background-color: $inc-surface-secondary;
2828
+ border-bottom: 1px solid var(--inc-border-subtle);
2829
+ background-color: var(--inc-surface-secondary);
2642
2830
  }
2643
2831
 
2644
2832
  .inc-native-dialog__title {
@@ -2661,8 +2849,8 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2661
2849
  justify-content: flex-end;
2662
2850
  gap: 0.75rem;
2663
2851
  padding: 1rem 1.25rem;
2664
- border-top: 1px solid $inc-border-subtle;
2665
- background-color: $inc-surface-secondary;
2852
+ border-top: 1px solid var(--inc-border-subtle);
2853
+ background-color: var(--inc-surface-secondary);
2666
2854
  }
2667
2855
 
2668
2856
  .inc-native-dialog__close {
@@ -2674,13 +2862,13 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2674
2862
  border: 0;
2675
2863
  border-radius: $inc-radius-panel;
2676
2864
  background: transparent;
2677
- color: $inc-text-secondary;
2865
+ color: var(--inc-text-secondary);
2678
2866
  cursor: pointer;
2679
2867
 
2680
2868
  &:hover,
2681
2869
  &:focus-visible {
2682
- background-color: rgba($inc-ink-300, 0.35);
2683
- color: $inc-text-primary;
2870
+ background-color: var(--inc-surface-muted);
2871
+ color: var(--inc-text-primary);
2684
2872
  }
2685
2873
  }
2686
2874
 
@@ -2744,11 +2932,11 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2744
2932
  align-items: center;
2745
2933
  gap: 0.625rem;
2746
2934
  padding: 0.5rem 0.75rem;
2747
- border: 1px solid $inc-border-subtle;
2935
+ border: 1px solid var(--inc-border-subtle);
2748
2936
  border-radius: 999px;
2749
- background: rgba($inc-surface-primary, 0.96);
2750
- color: $body-color;
2751
- box-shadow: 0 0.75rem 1.5rem rgba($inc-surface-strong, 0.12);
2937
+ background: rgba(var(--inc-surface-primary-rgb), 0.96);
2938
+ color: var(--inc-text-primary);
2939
+ box-shadow: 0 0.75rem 1.5rem rgba(var(--inc-surface-strong-rgb), 0.12);
2752
2940
  font-size: 0.75rem;
2753
2941
  line-height: 1.2;
2754
2942
  white-space: nowrap;
@@ -2772,7 +2960,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2772
2960
 
2773
2961
  &__label,
2774
2962
  &__status-text {
2775
- color: $text-muted;
2963
+ color: var(--inc-text-muted);
2776
2964
  font-weight: 600;
2777
2965
  }
2778
2966
 
@@ -2780,13 +2968,13 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2780
2968
  font-family: $font-family-monospace;
2781
2969
  font-variant-numeric: tabular-nums;
2782
2970
  font-weight: 600;
2783
- color: $inc-surface-strong;
2971
+ color: var(--inc-text-primary);
2784
2972
  }
2785
2973
 
2786
2974
  &__spinner {
2787
2975
  display: inline-flex;
2788
2976
  align-items: center;
2789
- color: $primary;
2977
+ color: var(--bs-primary);
2790
2978
  }
2791
2979
 
2792
2980
  &__toggle {
@@ -2807,13 +2995,13 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2807
2995
  }
2808
2996
 
2809
2997
  &.is-paused {
2810
- border-color: rgba($warning, 0.24);
2811
- box-shadow: 0 0.9rem 1.75rem rgba($warning, 0.1);
2998
+ border-color: var(--bs-warning-border-subtle);
2999
+ box-shadow: 0 0.9rem 1.75rem rgba(var(--bs-warning-rgb), 0.1);
2812
3000
  }
2813
3001
 
2814
3002
  &.is-loading {
2815
- border-color: rgba($primary, 0.2);
2816
- box-shadow: 0 0.9rem 1.75rem rgba($primary, 0.14);
3003
+ border-color: var(--bs-primary-border-subtle);
3004
+ box-shadow: 0 0.9rem 1.75rem rgba(var(--bs-primary-rgb), 0.14);
2817
3005
  }
2818
3006
  }
2819
3007
 
@@ -2824,10 +3012,10 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2824
3012
  overflow: hidden;
2825
3013
  border: 0;
2826
3014
  border-radius: 999px;
2827
- background: $inc-surface-muted;
3015
+ background: var(--inc-surface-muted);
2828
3016
  vertical-align: middle;
2829
3017
  appearance: none;
2830
- --inc-track-color: #{$inc-surface-muted};
3018
+ --inc-track-color: var(--inc-surface-muted);
2831
3019
  --inc-fill-color: #{$primary};
2832
3020
  }
2833
3021
 
@@ -2913,7 +3101,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2913
3101
  transition: opacity 0.3s ease, transform 0.3s ease;
2914
3102
 
2915
3103
  &:focus {
2916
- outline: 2px solid $primary;
3104
+ outline: 2px solid var(--bs-primary);
2917
3105
  outline-offset: 2px;
2918
3106
  }
2919
3107
 
@@ -2934,37 +3122,37 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
2934
3122
 
2935
3123
  .alert-success,
2936
3124
  .inc-alert--success {
2937
- background-color: rgba($inc-success-50, 0.9);
2938
- border-color: $inc-success-100;
2939
- color: $inc-success-700;
3125
+ background-color: var(--bs-success-bg-subtle);
3126
+ border-color: var(--bs-success-border-subtle);
3127
+ color: var(--bs-success-text-emphasis);
2940
3128
  }
2941
3129
 
2942
3130
  .alert-warning,
2943
3131
  .inc-alert--warning {
2944
- background-color: rgba($inc-warning-50, 0.9);
2945
- border-color: $inc-warning-100;
2946
- color: $inc-warning-700;
3132
+ background-color: var(--bs-warning-bg-subtle);
3133
+ border-color: var(--bs-warning-border-subtle);
3134
+ color: var(--bs-warning-text-emphasis);
2947
3135
  }
2948
3136
 
2949
3137
  .alert-danger,
2950
3138
  .inc-alert--danger {
2951
- background-color: rgba($inc-danger-50, 0.9);
2952
- border-color: $inc-danger-100;
2953
- color: $inc-danger-700;
3139
+ background-color: var(--bs-danger-bg-subtle);
3140
+ border-color: var(--bs-danger-border-subtle);
3141
+ color: var(--bs-danger-text-emphasis);
2954
3142
  }
2955
3143
 
2956
3144
  .alert-info,
2957
3145
  .inc-alert--info {
2958
- background-color: rgba($inc-blue-50, 0.9);
2959
- border-color: rgba($inc-blue-700, 0.25);
2960
- color: $inc-blue-800;
3146
+ background-color: var(--bs-info-bg-subtle);
3147
+ border-color: var(--bs-info-border-subtle);
3148
+ color: var(--bs-info-text-emphasis);
2961
3149
  }
2962
3150
 
2963
3151
  .alert-primary,
2964
3152
  .inc-alert--primary {
2965
- background-color: rgba($inc-brand-50, 0.9);
2966
- border-color: rgba($inc-brand-300, 0.35);
2967
- color: $inc-brand-800;
3153
+ background-color: var(--bs-primary-bg-subtle);
3154
+ border-color: var(--bs-primary-border-subtle);
3155
+ color: var(--bs-primary-text-emphasis);
2968
3156
  }
2969
3157
  }
2970
3158
 
@@ -3085,18 +3273,18 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3085
3273
  overflow: hidden;
3086
3274
  border-collapse: separate;
3087
3275
  border-spacing: 0;
3088
- border: 1px solid $inc-border-default;
3276
+ border: 1px solid var(--inc-border-default);
3089
3277
 
3090
3278
  thead {
3091
3279
  overflow: hidden;
3092
3280
 
3093
3281
  th {
3094
3282
  text-align: left;
3095
- background-color: $inc-brand-800;
3283
+ background-color: var(--bs-primary);
3096
3284
  color: $inc-text-inverse;
3097
- border-color: $inc-brand-800;
3285
+ border-color: var(--bs-primary);
3098
3286
  font-weight: 600;
3099
- border-right: 1px solid rgba($inc-text-inverse, 0.2);
3287
+ border-right: 1px solid rgba(var(--inc-text-inverse-rgb), 0.2);
3100
3288
  font-size: 1rem;
3101
3289
  line-height: 1.5;
3102
3290
 
@@ -3106,7 +3294,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3106
3294
 
3107
3295
  &:hover,
3108
3296
  &:focus {
3109
- color: rgba($inc-text-inverse, 0.9);
3297
+ color: rgba(var(--inc-text-inverse-rgb), 0.9);
3110
3298
  }
3111
3299
  }
3112
3300
  }
@@ -3125,7 +3313,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3125
3313
  tfoot {
3126
3314
  td,
3127
3315
  th {
3128
- border-right: 1px solid $inc-border-default;
3316
+ border-right: 1px solid var(--inc-border-default);
3129
3317
  vertical-align: middle;
3130
3318
 
3131
3319
  &:last-child {
@@ -3277,44 +3465,44 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3277
3465
  }
3278
3466
 
3279
3467
  tbody tr:hover > * {
3280
- background: rgba($primary, 0.035);
3468
+ background: rgba(var(--bs-primary-rgb), 0.035);
3281
3469
  }
3282
3470
  }
3283
3471
 
3284
3472
  &--analytics-grid {
3285
- border-color: rgba($inc-border-subtle, 0.95);
3286
- box-shadow: 0 1rem 2rem rgba($inc-surface-strong, 0.05);
3473
+ border-color: var(--inc-border-subtle);
3474
+ box-shadow: 0 1rem 2rem rgba(var(--inc-surface-strong-rgb), 0.05);
3287
3475
 
3288
3476
  thead th {
3289
- background-color: $inc-surface-secondary;
3290
- color: $inc-text-primary;
3291
- border-color: $inc-border-subtle;
3477
+ background-color: var(--inc-surface-secondary);
3478
+ color: var(--inc-text-primary);
3479
+ border-color: var(--inc-border-subtle);
3292
3480
  font-size: 0.75rem;
3293
3481
  letter-spacing: 0.08em;
3294
3482
  text-transform: uppercase;
3295
3483
  }
3296
3484
 
3297
3485
  tbody tr:nth-child(even) > * {
3298
- background: rgba($primary, 0.02);
3486
+ background: rgba(var(--bs-primary-rgb), 0.02);
3299
3487
  }
3300
3488
 
3301
3489
  .inc-table__cell--numeric,
3302
3490
  .inc-table__cell--numeric-small,
3303
3491
  .inc-table__header--right {
3304
- color: $inc-surface-strong;
3492
+ color: var(--inc-text-primary);
3305
3493
  font-weight: 600;
3306
3494
  }
3307
3495
  }
3308
3496
 
3309
3497
  &--spreadsheet-grid {
3310
- border-color: rgba($inc-border-subtle, 1);
3498
+ border-color: var(--inc-border-subtle);
3311
3499
  border-radius: $inc-radius-md;
3312
- box-shadow: inset 0 0 0 1px rgba($inc-border-subtle, 0.35);
3500
+ box-shadow: inset 0 0 0 1px var(--inc-border-subtle);
3313
3501
 
3314
3502
  thead th {
3315
- background-color: #eef2f7;
3316
- color: $inc-text-primary;
3317
- border-color: $inc-border-subtle;
3503
+ background-color: var(--inc-surface-secondary);
3504
+ color: var(--inc-text-primary);
3505
+ border-color: var(--inc-border-subtle);
3318
3506
  font-size: 0.75rem;
3319
3507
  letter-spacing: 0.04em;
3320
3508
  }
@@ -3333,7 +3521,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3333
3521
  }
3334
3522
 
3335
3523
  tbody tr:hover > * {
3336
- background: rgba($primary, 0.04);
3524
+ background: rgba(var(--bs-primary-rgb), 0.04);
3337
3525
  }
3338
3526
  }
3339
3527
 
@@ -3609,7 +3797,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3609
3797
  }
3610
3798
 
3611
3799
  .inc-table__bundle-hint {
3612
- color: $gray-700;
3800
+ color: var(--inc-text-muted);
3613
3801
  font-size: 0.75rem;
3614
3802
  line-height: 1.3;
3615
3803
  white-space: normal;
@@ -3671,8 +3859,8 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3671
3859
  justify-content: space-between;
3672
3860
  align-items: center;
3673
3861
  padding: 0.75rem;
3674
- background-color: var(--bs-light);
3675
- border-top: 1px solid var(--bs-border-color);
3862
+ background-color: var(--inc-surface-secondary);
3863
+ border-top: 1px solid var(--inc-border-default);
3676
3864
  }
3677
3865
 
3678
3866
  &__pagination {
@@ -3733,13 +3921,13 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3733
3921
  }
3734
3922
 
3735
3923
  &__dialog {
3736
- background: $inc-surface-primary;
3924
+ background: var(--inc-surface-primary);
3737
3925
  border-radius: $inc-radius-md;
3738
3926
  max-width: 31.25rem;
3739
3927
  width: 90%;
3740
3928
  max-height: 90vh;
3741
3929
  overflow-y: auto;
3742
- box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
3930
+ box-shadow: 0 10px 25px rgba(var(--inc-surface-strong-rgb), 0.5);
3743
3931
  position: relative;
3744
3932
  z-index: 2;
3745
3933
 
@@ -3771,7 +3959,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3771
3959
 
3772
3960
  &__header {
3773
3961
  padding: 1rem 1.5rem;
3774
- border-bottom: 1px solid $inc-border-subtle;
3962
+ border-bottom: 1px solid var(--inc-border-subtle);
3775
3963
  display: flex;
3776
3964
  align-items: center;
3777
3965
  justify-content: space-between;
@@ -3806,7 +3994,7 @@ dialog.inc-native-dialog.inc-native-dialog--drawer .inc-native-dialog__body {
3806
3994
 
3807
3995
  &__footer {
3808
3996
  padding: 1rem 1.5rem;
3809
- border-top: 1px solid $inc-border-subtle;
3997
+ border-top: 1px solid var(--inc-border-subtle);
3810
3998
  display: flex;
3811
3999
  gap: 1rem;
3812
4000
  justify-content: flex-end;
@@ -3848,10 +4036,10 @@ body.inc-modal-open {
3848
4036
  display: flex;
3849
4037
  flex-direction: column;
3850
4038
  max-width: 100%;
3851
- background: $inc-surface-primary;
3852
- color: $body-color;
4039
+ background: var(--inc-surface-primary);
4040
+ color: var(--inc-text-primary);
3853
4041
  visibility: hidden;
3854
- box-shadow: 0 1.25rem 2.5rem rgba($inc-surface-strong, 0.18);
4042
+ box-shadow: 0 1.25rem 2.5rem rgba(var(--inc-surface-strong-rgb), 0.18);
3855
4043
  transition: transform 0.25s ease, visibility 0.25s ease;
3856
4044
 
3857
4045
  &.is-open {
@@ -3930,7 +4118,7 @@ body.inc-modal-open {
3930
4118
  justify-content: space-between;
3931
4119
  gap: 1rem;
3932
4120
  padding: 1rem 1.25rem;
3933
- border-bottom: 1px solid $inc-border-subtle;
4121
+ border-bottom: 1px solid var(--inc-border-subtle);
3934
4122
  }
3935
4123
 
3936
4124
  .inc-offcanvas-title {
@@ -3981,7 +4169,7 @@ body.inc-offcanvas-open {
3981
4169
  &__label {
3982
4170
  &--required::after {
3983
4171
  content: " *";
3984
- color: $danger;
4172
+ color: var(--bs-danger-text-emphasis);
3985
4173
  }
3986
4174
  }
3987
4175
 
@@ -3993,18 +4181,18 @@ body.inc-offcanvas-open {
3993
4181
  }
3994
4182
 
3995
4183
  &__hint {
3996
- color: $text-muted;
4184
+ color: var(--inc-text-muted);
3997
4185
  }
3998
4186
 
3999
4187
  &__feedback {
4000
4188
  font-weight: 500;
4001
4189
 
4002
4190
  &--error {
4003
- color: $danger;
4191
+ color: var(--bs-danger-text-emphasis);
4004
4192
  }
4005
4193
 
4006
4194
  &--success {
4007
- color: $success;
4195
+ color: var(--bs-success-text-emphasis);
4008
4196
  }
4009
4197
  }
4010
4198
 
@@ -4012,19 +4200,19 @@ body.inc-offcanvas-open {
4012
4200
  &__select {
4013
4201
  &.is-invalid,
4014
4202
  &[aria-invalid="true"] {
4015
- border-color: $danger;
4016
- box-shadow: 0 0 0 0.1875rem rgba($danger, 0.12);
4203
+ border-color: var(--bs-danger-border-subtle);
4204
+ box-shadow: 0 0 0 0.1875rem rgba(var(--bs-danger-rgb), 0.12);
4017
4205
  }
4018
4206
 
4019
4207
  &.is-valid {
4020
- border-color: $success;
4021
- box-shadow: 0 0 0 0.1875rem rgba($success, 0.12);
4208
+ border-color: var(--bs-success-border-subtle);
4209
+ box-shadow: 0 0 0 0.1875rem rgba(var(--bs-success-rgb), 0.12);
4022
4210
  }
4023
4211
  }
4024
4212
 
4025
4213
  &__check {
4026
4214
  &.is-invalid .inc-form__check-label {
4027
- color: $danger;
4215
+ color: var(--bs-danger-text-emphasis);
4028
4216
  }
4029
4217
  }
4030
4218
 
@@ -4033,23 +4221,23 @@ body.inc-offcanvas-open {
4033
4221
  flex-direction: column;
4034
4222
  gap: 0.5rem;
4035
4223
  padding: 1rem 1.125rem;
4036
- border: 1px solid rgba($danger, 0.3);
4037
- border-left: 0.25rem solid $danger;
4224
+ border: 1px solid var(--bs-danger-border-subtle);
4225
+ border-left: 0.25rem solid var(--bs-danger-text-emphasis);
4038
4226
  border-radius: $inc-radius-md;
4039
- background: rgba($danger, 0.06);
4227
+ background: var(--bs-danger-bg-subtle);
4040
4228
 
4041
4229
  &-title {
4042
4230
  margin: 0;
4043
4231
  font-size: 0.875rem;
4044
4232
  font-weight: 600;
4045
- color: $danger;
4233
+ color: var(--bs-danger-text-emphasis);
4046
4234
  }
4047
4235
 
4048
4236
  &-list {
4049
4237
  margin: 0;
4050
4238
  padding-left: 1rem;
4051
4239
  font-size: 0.8125rem;
4052
- color: $body-color;
4240
+ color: var(--inc-text-primary);
4053
4241
  }
4054
4242
  }
4055
4243
  }
@@ -4059,9 +4247,9 @@ body.inc-offcanvas-open {
4059
4247
  flex-direction: column;
4060
4248
  gap: 1rem;
4061
4249
  padding: 1rem 1.125rem;
4062
- border: 1px solid $inc-border-subtle;
4250
+ border: 1px solid var(--inc-border-subtle);
4063
4251
  border-radius: $inc-radius-md;
4064
- background: $inc-surface-primary;
4252
+ background: var(--inc-surface-primary);
4065
4253
 
4066
4254
  &__main {
4067
4255
  display: flex;
@@ -4103,10 +4291,10 @@ body.inc-offcanvas-open {
4103
4291
  align-items: center;
4104
4292
  gap: 0.5rem;
4105
4293
  padding: 0.375rem 0.75rem;
4106
- border: 1px solid $inc-border-subtle;
4294
+ border: 1px solid var(--inc-border-subtle);
4107
4295
  border-radius: 999px;
4108
- background: $inc-surface-secondary;
4109
- color: $body-color;
4296
+ background: var(--inc-surface-secondary);
4297
+ color: var(--inc-text-primary);
4110
4298
  font-size: 0.75rem;
4111
4299
  font-weight: 600;
4112
4300
  line-height: 1;
@@ -4115,7 +4303,7 @@ body.inc-offcanvas-open {
4115
4303
  appearance: none;
4116
4304
  border: 0;
4117
4305
  background: transparent;
4118
- color: $text-muted;
4306
+ color: var(--inc-text-muted);
4119
4307
  font-size: 0.875rem;
4120
4308
  line-height: 1;
4121
4309
  padding: 0;
@@ -4123,9 +4311,9 @@ body.inc-offcanvas-open {
4123
4311
  }
4124
4312
 
4125
4313
  &--accent {
4126
- border-color: rgba($primary, 0.2);
4127
- background: rgba($primary, 0.08);
4128
- color: $primary;
4314
+ border-color: rgba(var(--bs-primary-rgb), 0.2);
4315
+ background: rgba(var(--bs-primary-rgb), 0.08);
4316
+ color: var(--bs-primary);
4129
4317
  }
4130
4318
  }
4131
4319
 
@@ -4134,9 +4322,9 @@ body.inc-offcanvas-open {
4134
4322
  flex-direction: column;
4135
4323
  gap: 1rem;
4136
4324
  padding: 1.5rem;
4137
- border: 1px solid $inc-border-subtle;
4325
+ border: 1px solid var(--inc-border-subtle);
4138
4326
  border-radius: $inc-radius-md;
4139
- background: $inc-surface-primary;
4327
+ background: var(--inc-surface-primary);
4140
4328
 
4141
4329
  &__head {
4142
4330
  display: flex;
@@ -4151,8 +4339,8 @@ body.inc-offcanvas-open {
4151
4339
  align-items: center;
4152
4340
  justify-content: center;
4153
4341
  border-radius: 0.875rem;
4154
- background: $inc-surface-secondary;
4155
- color: $primary;
4342
+ background: var(--inc-surface-secondary);
4343
+ color: var(--bs-primary);
4156
4344
  font-size: 1.25rem;
4157
4345
  font-weight: 700;
4158
4346
  flex: 0 0 auto;
@@ -4165,7 +4353,7 @@ body.inc-offcanvas-open {
4165
4353
  }
4166
4354
 
4167
4355
  &__body {
4168
- color: $text-muted;
4356
+ color: var(--inc-text-muted);
4169
4357
  font-size: 0.875rem;
4170
4358
  line-height: 1.6;
4171
4359
  margin: 0;
@@ -4178,35 +4366,35 @@ body.inc-offcanvas-open {
4178
4366
  }
4179
4367
 
4180
4368
  &--empty {
4181
- background: linear-gradient(180deg, rgba($primary, 0.05), rgba($primary, 0.01));
4369
+ background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), 0.05), rgba(var(--bs-primary-rgb), 0.01));
4182
4370
  }
4183
4371
 
4184
4372
  &--results {
4185
4373
  border-style: dashed;
4186
- background: $inc-surface-secondary;
4374
+ background: var(--inc-surface-secondary);
4187
4375
  }
4188
4376
 
4189
4377
  &--loading {
4190
- background: linear-gradient(180deg, rgba($primary, 0.04), $inc-surface-primary);
4378
+ background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), 0.04), var(--inc-surface-primary));
4191
4379
  }
4192
4380
 
4193
4381
  &--error {
4194
- border-color: rgba($danger, 0.22);
4195
- background: rgba($danger, 0.04);
4382
+ border-color: var(--bs-danger-border-subtle);
4383
+ background: var(--bs-danger-bg-subtle);
4196
4384
 
4197
4385
  .inc-state-panel__icon {
4198
- background: rgba($danger, 0.12);
4199
- color: $danger;
4386
+ background: rgba(var(--bs-danger-rgb), 0.12);
4387
+ color: var(--bs-danger-text-emphasis);
4200
4388
  }
4201
4389
  }
4202
4390
 
4203
4391
  &--locked {
4204
- border-color: rgba($warning, 0.24);
4205
- background: rgba($warning, 0.05);
4392
+ border-color: var(--bs-warning-border-subtle);
4393
+ background: var(--bs-warning-bg-subtle);
4206
4394
 
4207
4395
  .inc-state-panel__icon {
4208
- background: rgba($warning, 0.14);
4209
- color: $warning;
4396
+ background: rgba(var(--bs-warning-rgb), 0.14);
4397
+ color: var(--bs-warning-text-emphasis);
4210
4398
  }
4211
4399
  }
4212
4400
  }
@@ -4216,9 +4404,9 @@ body.inc-offcanvas-open {
4216
4404
  align-items: flex-start;
4217
4405
  gap: 1rem;
4218
4406
  padding: 1rem 1.125rem;
4219
- border: 1px solid rgba($warning, 0.22);
4407
+ border: 1px solid var(--bs-warning-border-subtle);
4220
4408
  border-radius: $inc-radius-md;
4221
- background: rgba($warning, 0.06);
4409
+ background: var(--bs-warning-bg-subtle);
4222
4410
 
4223
4411
  &__icon {
4224
4412
  width: 2rem;
@@ -4227,8 +4415,8 @@ body.inc-offcanvas-open {
4227
4415
  display: inline-flex;
4228
4416
  align-items: center;
4229
4417
  justify-content: center;
4230
- background: rgba($warning, 0.14);
4231
- color: $warning;
4418
+ background: rgba(var(--bs-warning-rgb), 0.14);
4419
+ color: var(--bs-warning-text-emphasis);
4232
4420
  font-weight: 700;
4233
4421
  flex: 0 0 auto;
4234
4422
  }
@@ -4242,7 +4430,7 @@ body.inc-offcanvas-open {
4242
4430
  &__text {
4243
4431
  margin: 0;
4244
4432
  font-size: 0.8125rem;
4245
- color: $body-color;
4433
+ color: var(--inc-text-primary);
4246
4434
  }
4247
4435
  }
4248
4436
 
@@ -4261,14 +4449,14 @@ body.inc-offcanvas-open {
4261
4449
 
4262
4450
  &--card {
4263
4451
  padding: 0.875rem 1rem;
4264
- border: 1px solid $inc-border-subtle;
4452
+ border: 1px solid var(--inc-border-subtle);
4265
4453
  border-radius: $inc-radius-md;
4266
- background: $inc-surface-primary;
4454
+ background: var(--inc-surface-primary);
4267
4455
  }
4268
4456
 
4269
4457
  &__label {
4270
4458
  margin: 0;
4271
- color: $text-muted;
4459
+ color: var(--inc-text-muted);
4272
4460
  font-size: 0.75rem;
4273
4461
  font-weight: 600;
4274
4462
  letter-spacing: 0.04em;
@@ -4277,7 +4465,7 @@ body.inc-offcanvas-open {
4277
4465
 
4278
4466
  &__value {
4279
4467
  margin: 0;
4280
- color: $body-color;
4468
+ color: var(--inc-text-primary);
4281
4469
  font-size: 0.875rem;
4282
4470
  font-weight: 500;
4283
4471
  line-height: 1.5;
@@ -4296,7 +4484,7 @@ body.inc-offcanvas-open {
4296
4484
  .inc-skeleton {
4297
4485
  display: block;
4298
4486
  border-radius: 999px;
4299
- background: linear-gradient(90deg, rgba($inc-border-subtle, 0.8) 20%, rgba($inc-surface-muted, 0.95) 50%, rgba($inc-border-subtle, 0.8) 80%);
4487
+ background: linear-gradient(90deg, var(--inc-surface-muted) 20%, var(--inc-surface-secondary) 50%, var(--inc-surface-muted) 80%);
4300
4488
  background-size: 200% 100%;
4301
4489
  animation: inc-skeleton-shimmer 1.5s linear infinite;
4302
4490
 
@@ -4401,9 +4589,9 @@ body.inc-offcanvas-open {
4401
4589
  justify-content: space-between;
4402
4590
  gap: 1rem;
4403
4591
  padding: 0.75rem 1rem;
4404
- border: 1px solid rgba($primary, 0.18);
4592
+ border: 1px solid var(--bs-primary-border-subtle);
4405
4593
  border-radius: $inc-radius-md;
4406
- background: rgba($primary, 0.08);
4594
+ background: var(--bs-primary-bg-subtle);
4407
4595
 
4408
4596
  &__meta {
4409
4597
  display: flex;
@@ -4416,7 +4604,7 @@ body.inc-offcanvas-open {
4416
4604
  &__count {
4417
4605
  font-size: 0.875rem;
4418
4606
  font-weight: 600;
4419
- color: $primary;
4607
+ color: var(--bs-primary-text-emphasis);
4420
4608
  }
4421
4609
 
4422
4610
  &__actions {
@@ -4460,20 +4648,20 @@ body.inc-offcanvas-open {
4460
4648
 
4461
4649
  &__row {
4462
4650
  &--selected > * {
4463
- background: rgba($primary, 0.08) !important;
4651
+ background: rgba(var(--bs-primary-rgb), 0.08) !important;
4464
4652
  }
4465
4653
 
4466
4654
  &--warning > * {
4467
- background: rgba($warning, 0.08) !important;
4655
+ background: rgba(var(--bs-warning-rgb), 0.08) !important;
4468
4656
  }
4469
4657
 
4470
4658
  &--danger > * {
4471
- background: rgba($danger, 0.06) !important;
4659
+ background: rgba(var(--bs-danger-rgb), 0.06) !important;
4472
4660
  }
4473
4661
 
4474
4662
  &--locked > * {
4475
- background: rgba($inc-border-subtle, 0.35) !important;
4476
- color: $text-muted;
4663
+ background: var(--inc-surface-muted) !important;
4664
+ color: var(--inc-text-muted);
4477
4665
  }
4478
4666
  }
4479
4667
  }
@@ -4507,7 +4695,7 @@ body.inc-offcanvas-open {
4507
4695
  top: 0;
4508
4696
  bottom: -1rem;
4509
4697
  width: 0.125rem;
4510
- background: $inc-border-subtle;
4698
+ background: var(--inc-border-subtle);
4511
4699
  }
4512
4700
  }
4513
4701
 
@@ -4520,7 +4708,7 @@ body.inc-offcanvas-open {
4520
4708
  height: 0.75rem;
4521
4709
  border-radius: 999px;
4522
4710
  background: $primary;
4523
- box-shadow: 0 0 0 0.1875rem $inc-surface-primary;
4711
+ box-shadow: 0 0 0 0.1875rem var(--inc-surface-primary);
4524
4712
  position: relative;
4525
4713
  z-index: 1;
4526
4714
 
@@ -4542,9 +4730,9 @@ body.inc-offcanvas-open {
4542
4730
  flex-direction: column;
4543
4731
  gap: 0.5rem;
4544
4732
  padding: 0.875rem 1rem;
4545
- border: 1px solid $inc-border-subtle;
4733
+ border: 1px solid var(--inc-border-subtle);
4546
4734
  border-radius: $inc-radius-md;
4547
- background: $inc-surface-primary;
4735
+ background: var(--inc-surface-primary);
4548
4736
  }
4549
4737
 
4550
4738
  &__header,
@@ -4562,13 +4750,13 @@ body.inc-offcanvas-open {
4562
4750
  }
4563
4751
 
4564
4752
  &__meta {
4565
- color: $text-muted;
4753
+ color: var(--inc-text-muted);
4566
4754
  font-size: 0.75rem;
4567
4755
  }
4568
4756
 
4569
4757
  &__body {
4570
4758
  margin: 0;
4571
- color: $body-color;
4759
+ color: var(--inc-text-primary);
4572
4760
  font-size: 0.8125rem;
4573
4761
  line-height: 1.6;
4574
4762
  }
@@ -4582,7 +4770,7 @@ body.inc-offcanvas-open {
4582
4770
  padding: 1rem 1.125rem;
4583
4771
  border: 1.5px dashed $inc-border-strong;
4584
4772
  border-radius: $inc-radius-md;
4585
- background: linear-gradient(180deg, $inc-surface-secondary, $inc-surface-primary);
4773
+ background: linear-gradient(180deg, var(--inc-surface-secondary), var(--inc-surface-primary));
4586
4774
 
4587
4775
  &__content {
4588
4776
  display: flex;
@@ -4599,12 +4787,12 @@ body.inc-offcanvas-open {
4599
4787
  &__text {
4600
4788
  margin: 0;
4601
4789
  font-size: 0.8125rem;
4602
- color: $text-muted;
4790
+ color: var(--inc-text-muted);
4603
4791
  }
4604
4792
 
4605
4793
  &--active {
4606
- border-color: $primary;
4607
- background: linear-gradient(180deg, rgba($primary, 0.08), rgba($primary, 0.02));
4794
+ border-color: var(--bs-primary);
4795
+ background: linear-gradient(180deg, var(--bs-primary-bg-subtle), var(--inc-surface-primary));
4608
4796
  }
4609
4797
 
4610
4798
  @media (max-width: 767.98px) {
@@ -4625,9 +4813,9 @@ body.inc-offcanvas-open {
4625
4813
  gap: 1rem;
4626
4814
  align-items: center;
4627
4815
  padding: 0.875rem 1rem;
4628
- border: 1px solid $inc-border-subtle;
4816
+ border: 1px solid var(--inc-border-subtle);
4629
4817
  border-radius: $inc-radius-md;
4630
- background: $inc-surface-primary;
4818
+ background: var(--inc-surface-primary);
4631
4819
 
4632
4820
  &__meta {
4633
4821
  display: flex;
@@ -4645,7 +4833,7 @@ body.inc-offcanvas-open {
4645
4833
  &__detail {
4646
4834
  margin: 0;
4647
4835
  font-size: 0.75rem;
4648
- color: $text-muted;
4836
+ color: var(--inc-text-muted);
4649
4837
  }
4650
4838
 
4651
4839
  &__actions {
@@ -4671,9 +4859,9 @@ body.inc-offcanvas-open {
4671
4859
  gap: 1rem;
4672
4860
  height: 100%;
4673
4861
  padding: 1.25rem;
4674
- border-left: 1px solid $inc-border-subtle;
4675
- background: $inc-surface-primary;
4676
- box-shadow: -1rem 0 2rem rgba($inc-surface-strong, 0.08);
4862
+ border-left: 1px solid var(--inc-border-subtle);
4863
+ background: var(--inc-surface-primary);
4864
+ box-shadow: -1rem 0 2rem rgba(var(--inc-surface-strong-rgb), 0.08);
4677
4865
 
4678
4866
  &__header {
4679
4867
  display: flex;
@@ -4681,7 +4869,7 @@ body.inc-offcanvas-open {
4681
4869
  justify-content: space-between;
4682
4870
  gap: 1rem;
4683
4871
  padding-bottom: 1rem;
4684
- border-bottom: 1px solid $inc-border-subtle;
4872
+ border-bottom: 1px solid var(--inc-border-subtle);
4685
4873
  }
4686
4874
 
4687
4875
  &__body {
@@ -4695,7 +4883,7 @@ body.inc-offcanvas-open {
4695
4883
  flex-wrap: wrap;
4696
4884
  gap: 0.75rem;
4697
4885
  padding-top: 1rem;
4698
- border-top: 1px solid $inc-border-subtle;
4886
+ border-top: 1px solid var(--inc-border-subtle);
4699
4887
  margin-top: auto;
4700
4888
  }
4701
4889
  }
@@ -4711,10 +4899,10 @@ body.inc-offcanvas-open {
4711
4899
  align-items: flex-start;
4712
4900
  gap: 0.875rem;
4713
4901
  padding: 0.875rem 1rem;
4714
- border: 1px solid $inc-border-subtle;
4902
+ border: 1px solid var(--inc-border-subtle);
4715
4903
  border-radius: $inc-radius-md;
4716
- background: $inc-surface-primary;
4717
- box-shadow: 0 0.75rem 1.5rem rgba($inc-surface-strong, 0.08);
4904
+ background: var(--inc-surface-primary);
4905
+ box-shadow: 0 0.75rem 1.5rem rgba(var(--inc-surface-strong-rgb), 0.08);
4718
4906
 
4719
4907
  &__icon {
4720
4908
  width: 2rem;
@@ -4723,8 +4911,8 @@ body.inc-offcanvas-open {
4723
4911
  display: inline-flex;
4724
4912
  align-items: center;
4725
4913
  justify-content: center;
4726
- background: rgba($primary, 0.1);
4727
- color: $primary;
4914
+ background: var(--bs-primary-bg-subtle);
4915
+ color: var(--bs-primary-text-emphasis);
4728
4916
  font-weight: 700;
4729
4917
  flex: 0 0 auto;
4730
4918
  }
@@ -4738,6 +4926,6 @@ body.inc-offcanvas-open {
4738
4926
  &__text {
4739
4927
  margin: 0;
4740
4928
  font-size: 0.8125rem;
4741
- color: $text-muted;
4929
+ color: var(--inc-text-muted);
4742
4930
  }
4743
4931
  }