@incursa/ui-kit 1.2.0 → 1.4.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.
@@ -4,12 +4,20 @@ Use this package as a reusable data-heavy UI baseline.
4
4
 
5
5
  Repository brand assets live under [`assets/brand/`](assets/brand). Prefer those local files when adding logos, favicons, or README imagery.
6
6
 
7
+ ## Surface selection
8
+
9
+ - Start with the highest-level public surface that already fits the job.
10
+ - Prefer [`web-components.html`](web-components.html) and the same-package [`./web-components`](./web-components) entrypoint when you are building new UI from plain HTML/JS and the capability exists in the approved v1 component set.
11
+ - Prefer [`dist/inc-design-language.css`](dist/inc-design-language.css) with raw HTML plus [`inc-*`](reference.html) classes when the markup already exists, the family is CSS-only, or you only need styling.
12
+ - Use native `<button>`, `<input>`, `<details>`, and `<dialog>` before adding helper wiring or custom elements.
13
+ - Drop into `src/*` or token files only when the public surface cannot express the needed layout or behavior.
14
+
7
15
  ## Fast path
8
16
 
9
17
  - Prefer [`dist/inc-design-language.css`](dist/inc-design-language.css) if the target app already has working HTML and only needs the look.
10
18
  - Prefer [`src/inc-design-language.scss`](src/inc-design-language.scss) if you need to tune tokens, density, or Bootstrap defaults.
11
19
  - Prefer [`dist/inc-design-language.js`](dist/inc-design-language.js) only for stateful UI primitives such as menus, tabs, collapsible sections, modal/offcanvas shells, native dialog launch hooks, and auto-refresh widgets.
12
- - Prefer the optional [`web-components.html`](web-components.html) landing page and the same-package `./web-components` entrypoint when you need browser-native custom elements for the approved v1 families and want declarative slots, attributes, and DOM events from plain HTML.
20
+ - Prefer the optional [`web-components.html`](web-components.html) landing page and the same-package [`./web-components`](./web-components) entrypoint when you want declarative browser-native components for the approved v1 families from plain HTML/JS.
13
21
  - Prefer [`reference.html`](reference.html) when you need copy/paste starter markup for a supported control or page-frame primitive before composing a full page.
14
22
  - Prefer [`states.html`](states.html), [`forms-and-validation.html`](forms-and-validation.html), and [`data-grid-advanced.html`](data-grid-advanced.html) when the target screen is workflow-heavy and you need realistic composition patterns, not isolated snippets.
15
23
 
@@ -50,7 +58,7 @@ Repository brand assets live under [`assets/brand/`](assets/brand). Prefer those
50
58
  - Native interaction:
51
59
  Use [`details.inc-disclosure`](reference.html) for section stacks, [`details.inc-native-menu`](reference.html) for lightweight menus, and [`dialog.inc-native-dialog`](reference.html) for native modal surfaces.
52
60
  - Web Components:
53
- Keep the CSS class surface canonical, use the optional layered entrypoint for the approved v1 component families, and prefer native HTML primitives when they already satisfy the semantic and interaction contract.
61
+ Keep the CSS class surface canonical, use the optional layered entrypoint for the approved v1 component families when declarative markup is the better fit, and fall back to raw HTML/CSS for CSS-first surfaces or when the markup already exists.
54
62
  - Status:
55
63
  Use [`inc-badge--success|warning|danger|info`](reference.html) for compact status signals.
56
64
  - Metrics:
package/LLMS.txt CHANGED
@@ -1,17 +1,18 @@
1
1
  Incursa UI Kit
2
2
 
3
3
  Short description:
4
- Reusable UI kit for data-heavy business applications. The public surface stays CSS-first through [`inc-*`](reference.html) classes, with optional vanilla-JS helpers, SCSS source entrypoints, and a layered `./web-components` entrypoint for browser-native components.
4
+ Reusable UI kit for data-heavy business applications. Start from the highest-level public surface that already fits: raw HTML plus [`inc-*`](reference.html) classes for existing markup and CSS-only families, the optional [`./web-components`](./web-components) entrypoint for supported v1 browser-native components when declarative markup is the better fit, and [`dist/inc-design-language.js`](dist/inc-design-language.js) only for helper-managed state.
5
5
 
6
6
  Package identity:
7
7
  - npm package: `@incursa/ui-kit`
8
8
  - license: Apache-2.0
9
9
  - repository: https://github.com/incursa/ui-kit
10
10
 
11
- Fast path:
11
+ Surface selection:
12
12
  - Use [`dist/inc-design-language.css`](dist/inc-design-language.css) if the target app already has working HTML and mainly needs the visual language.
13
+ - Use [`web-components.html`](web-components.html) and the same-package [`./web-components`](./web-components) entrypoint when you are building from plain HTML/JS and the capability exists in the approved v1 component set.
14
+ - Use raw HTML plus [`inc-*`](reference.html) classes when the markup already exists, the family is CSS-only, or the job is styling rather than composition.
13
15
  - Use [`dist/inc-design-language.js`](dist/inc-design-language.js) only for stateful primitives such as menus, tabs, collapsible sections, auto-refresh widgets, the native dialog launch hook, and legacy modal/offcanvas shells.
14
- - Use [`web-components.html`](web-components.html) and the same-package `./web-components` entrypoint when you want declarative custom elements for the approved v1 component families.
15
16
  - Use [`src/inc-design-language.scss`](src/inc-design-language.scss) if the consumer needs to tune tokens, theme variables, density, or Bootstrap defaults.
16
17
 
17
18
  Primary files:
@@ -32,6 +33,7 @@ Primary files:
32
33
  - [`states.html`](states.html), [`forms-and-validation.html`](forms-and-validation.html), [`data-grid-advanced.html`](data-grid-advanced.html), [`overlay-workflows.html`](overlay-workflows.html): workflow-heavy composition patterns.
33
34
  - [`demo.html`](demo.html), [`work-queue.html`](work-queue.html), [`record-detail.html`](record-detail.html), [`native-patterns.html`](native-patterns.html): fuller page examples.
34
35
  - The v1 Web Component families are layouts and shells, navbar/tabs/user-menu, field/input-group/choice-group/readonly-field/validation-summary, state-panel/live-region/auto-refresh/theme-switcher, and disclosure/dialog/drawer.
36
+ - Prefer those browser-native components for supported v1 surfaces when the consumer wants declarative markup from plain HTML/JS; keep CSS-first HTML for surfaces that are intentionally outside the WC layer.
35
37
  - Tables, utilities, filter/bulk/file workflows, permission banners, toasts, and compatibility overlay shells stay CSS-only or deferred in v1.
36
38
 
37
39
  Markdown links:
@@ -12185,6 +12185,18 @@ textarea.form-control-lg, textarea.inc-form__control--lg {
12185
12185
  --inc-text-inverse-rgb: 255, 255, 255;
12186
12186
  --inc-text-link: var(--bs-link-color);
12187
12187
  --inc-text-link-hover: var(--bs-link-hover-color);
12188
+ --inc-control-surface: var(--inc-surface-primary);
12189
+ --inc-control-surface-text: var(--inc-text-primary);
12190
+ --inc-control-surface-border: var(--inc-border-default);
12191
+ --inc-surface-contrast: var(--bs-secondary);
12192
+ --inc-surface-contrast-rgb: var(--bs-secondary-rgb);
12193
+ --inc-surface-contrast-hover: #31384a;
12194
+ --inc-surface-contrast-hover-rgb: 49, 56, 74;
12195
+ --inc-surface-contrast-active: #2e3542;
12196
+ --inc-surface-contrast-active-rgb: 46, 53, 66;
12197
+ --inc-surface-contrast-text: var(--inc-text-inverse);
12198
+ --inc-surface-contrast-text-rgb: var(--inc-text-inverse-rgb);
12199
+ --inc-surface-contrast-border: var(--bs-secondary);
12188
12200
  --inc-surface-primary-rgb: var(--bs-body-bg-rgb);
12189
12201
  --inc-surface-secondary-rgb: var(--bs-secondary-bg-rgb);
12190
12202
  --inc-surface-muted-rgb: var(--bs-tertiary-bg-rgb);
@@ -12194,6 +12206,31 @@ textarea.form-control-lg, textarea.inc-form__control--lg {
12194
12206
  --inc-shadow-rgb: var(--bs-black-rgb);
12195
12207
  }
12196
12208
 
12209
+ [data-bs-theme=dark] {
12210
+ --inc-control-surface: var(--inc-surface-secondary);
12211
+ --inc-control-surface-text: var(--inc-text-primary);
12212
+ --inc-control-surface-border: var(--inc-border-default);
12213
+ --inc-surface-contrast: var(--bs-gray-100);
12214
+ --inc-surface-contrast-rgb: 253, 253, 253;
12215
+ --inc-surface-contrast-hover: var(--bs-gray-200);
12216
+ --inc-surface-contrast-hover-rgb: 246, 246, 246;
12217
+ --inc-surface-contrast-active: var(--bs-gray-300);
12218
+ --inc-surface-contrast-active-rgb: 241, 241, 241;
12219
+ --inc-surface-contrast-text: var(--bs-dark);
12220
+ --inc-surface-contrast-text-rgb: 18, 19, 22;
12221
+ --inc-surface-contrast-border: var(--bs-gray-400);
12222
+ --bs-success-bg-subtle: rgba(0, 151, 67, 0.18);
12223
+ --bs-success-border-subtle: rgb(72, 171, 109);
12224
+ --bs-form-valid-color: rgb(122, 214, 154);
12225
+ --bs-form-valid-border-color: rgb(122, 214, 154);
12226
+ --bs-danger-bg-subtle: rgba(209, 26, 42, 0.18);
12227
+ --bs-danger-border-subtle: rgb(219, 89, 105);
12228
+ --bs-form-invalid-color: rgb(248, 126, 143);
12229
+ --bs-form-invalid-border-color: rgb(248, 126, 143);
12230
+ --bs-warning-bg-subtle: rgba(200, 138, 0, 0.18);
12231
+ --bs-warning-border-subtle: rgb(214, 160, 41);
12232
+ }
12233
+
12197
12234
  .inc-text {
12198
12235
  font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
12199
12236
  color: var(--inc-text-primary);
@@ -12496,6 +12533,21 @@ textarea.form-control-lg, textarea.inc-form__control--lg {
12496
12533
  gap: 0.375rem;
12497
12534
  vertical-align: middle;
12498
12535
  }
12536
+ .inc-btn--secondary {
12537
+ --bs-btn-color: var(--inc-surface-contrast-text);
12538
+ --bs-btn-bg: var(--inc-surface-contrast);
12539
+ --bs-btn-border-color: var(--inc-surface-contrast-border);
12540
+ --bs-btn-hover-color: var(--inc-surface-contrast-text);
12541
+ --bs-btn-hover-bg: var(--inc-surface-contrast-hover);
12542
+ --bs-btn-hover-border-color: var(--inc-surface-contrast-border);
12543
+ --bs-btn-focus-shadow-rgb: var(--inc-surface-contrast-rgb);
12544
+ --bs-btn-active-color: var(--inc-surface-contrast-text);
12545
+ --bs-btn-active-bg: var(--inc-surface-contrast-active);
12546
+ --bs-btn-active-border-color: var(--inc-surface-contrast-border);
12547
+ --bs-btn-disabled-color: var(--inc-surface-contrast-text);
12548
+ --bs-btn-disabled-bg: var(--inc-surface-contrast);
12549
+ --bs-btn-disabled-border-color: var(--inc-surface-contrast-border);
12550
+ }
12499
12551
  .inc-btn--success {
12500
12552
  color: #ffffff;
12501
12553
  }
@@ -12512,6 +12564,19 @@ textarea.form-control-lg, textarea.inc-form__control--lg {
12512
12564
  .inc-btn--info {
12513
12565
  color: #ffffff;
12514
12566
  }
12567
+ .inc-btn--outline-secondary {
12568
+ --bs-btn-color: var(--inc-text-primary);
12569
+ --bs-btn-border-color: var(--inc-border-default);
12570
+ --bs-btn-hover-color: var(--inc-text-primary);
12571
+ --bs-btn-hover-bg: var(--inc-surface-secondary);
12572
+ --bs-btn-hover-border-color: var(--inc-border-default);
12573
+ --bs-btn-focus-shadow-rgb: var(--inc-surface-strong-rgb);
12574
+ --bs-btn-active-color: var(--inc-text-primary);
12575
+ --bs-btn-active-bg: var(--inc-surface-muted);
12576
+ --bs-btn-active-border-color: var(--inc-border-default);
12577
+ --bs-btn-disabled-color: var(--inc-text-muted);
12578
+ --bs-btn-disabled-border-color: var(--inc-border-subtle);
12579
+ }
12515
12580
  .inc-btn--micro {
12516
12581
  padding: 0.15rem 0.4rem;
12517
12582
  font-size: 0.7rem;
@@ -12564,6 +12629,11 @@ textarea.form-control-lg, textarea.inc-form__control--lg {
12564
12629
  display: none;
12565
12630
  }
12566
12631
 
12632
+ .inc-form__control {
12633
+ color: var(--inc-control-surface-text);
12634
+ background-color: var(--inc-control-surface);
12635
+ border-color: var(--inc-control-surface-border);
12636
+ }
12567
12637
  .inc-form__control--micro {
12568
12638
  padding: 0.15rem 0.4rem;
12569
12639
  font-size: 0.7rem;
@@ -12577,6 +12647,11 @@ textarea.form-control-lg, textarea.inc-form__control--lg {
12577
12647
  .inc-form__control--error {
12578
12648
  border-color: #dc3545 !important;
12579
12649
  }
12650
+ .inc-form__select {
12651
+ color: var(--inc-control-surface-text);
12652
+ background-color: var(--inc-control-surface);
12653
+ border-color: var(--inc-control-surface-border);
12654
+ }
12580
12655
  .inc-form__select--micro {
12581
12656
  padding: 0.15rem 0.4rem 0.15rem 0.75rem;
12582
12657
  font-size: 0.7rem;
@@ -12594,13 +12669,14 @@ textarea.form-control-lg, textarea.inc-form__control--lg {
12594
12669
  padding: 1rem 1rem 0.875rem;
12595
12670
  border: 1px solid var(--inc-border-subtle);
12596
12671
  border-radius: 0.5rem;
12597
- background: linear-gradient(180deg, rgba(var(--inc-surface-secondary-rgb), 0.72), var(--inc-surface-primary) 3rem);
12672
+ background: var(--inc-surface-secondary);
12598
12673
  }
12599
12674
  .inc-form__legend {
12600
12675
  float: none;
12601
12676
  width: auto;
12602
12677
  margin: 0;
12603
12678
  padding: 0 0.375rem;
12679
+ background-color: var(--inc-surface-secondary);
12604
12680
  color: var(--inc-text-primary);
12605
12681
  font-size: 0.8125rem;
12606
12682
  font-weight: 600;
@@ -12764,9 +12840,10 @@ textarea.form-control-lg, textarea.inc-form__control--lg {
12764
12840
  justify-content: center;
12765
12841
  text-align: center;
12766
12842
  padding: 2rem 1.5rem;
12767
- border: 0.0625rem solid #949596;
12843
+ border: 0.0625rem solid var(--inc-border-subtle);
12768
12844
  border-radius: 0.25rem;
12769
- background-color: #fdfdfd;
12845
+ background-color: var(--inc-surface-secondary);
12846
+ color: var(--inc-text-primary);
12770
12847
  min-height: 21.875rem;
12771
12848
  }
12772
12849
  .inc-empty-state__content {
@@ -12776,7 +12853,7 @@ textarea.form-control-lg, textarea.inc-form__control--lg {
12776
12853
  .inc-empty-state__icon {
12777
12854
  font-size: 3.0625rem;
12778
12855
  margin-bottom: 1.5rem;
12779
- color: #c4c4c5;
12856
+ color: var(--inc-text-muted);
12780
12857
  }
12781
12858
  .inc-empty-state__form {
12782
12859
  margin-top: 1.5rem;
@@ -13056,7 +13133,7 @@ textarea.form-control-lg, textarea.inc-form__control--lg {
13056
13133
  .inc-header-body__header {
13057
13134
  padding: 1rem;
13058
13135
  border-bottom: 1px solid var(--bs-border-color);
13059
- background-color: var(--bs-light);
13136
+ background-color: var(--inc-surface-secondary);
13060
13137
  display: flex;
13061
13138
  align-items: center;
13062
13139
  justify-content: space-between;
@@ -13942,10 +14019,10 @@ details.inc-native-menu.inc-native-menu--navbar > .inc-native-menu__panel {
13942
14019
  align-items: center;
13943
14020
  justify-content: center;
13944
14021
  flex: 0 0 auto;
13945
- background-color: rgba(68, 89, 198, 0.14);
13946
- color: #4459c6;
14022
+ background-color: var(--bs-primary-bg-subtle);
14023
+ color: var(--bs-primary-text-emphasis);
13947
14024
  font-size: 0.75rem;
13948
- font-weight: 600;
14025
+ font-weight: 700;
13949
14026
  line-height: 1;
13950
14027
  }
13951
14028
  .inc-native-menu__summary .inc-user-menu__meta {
@@ -13994,7 +14071,7 @@ details.inc-native-menu.inc-native-menu--block > .inc-native-menu__summary {
13994
14071
  justify-content: flex-start;
13995
14072
  min-height: 3rem;
13996
14073
  padding: 0.625rem 0.75rem;
13997
- background: linear-gradient(180deg, var(--inc-surface-primary), var(--inc-surface-secondary));
14074
+ background-color: var(--inc-surface-secondary);
13998
14075
  }
13999
14076
 
14000
14077
  details.inc-native-menu.inc-native-menu--block > .inc-native-menu__panel {
@@ -15379,6 +15456,17 @@ body.inc-offcanvas-open {
15379
15456
  .inc-btn.is-loading:has(> .inc-spinner)::after, .inc-btn.is-loading:has(> .inc-loading-dots)::after {
15380
15457
  display: none;
15381
15458
  }
15459
+ .inc-btn.is-loading > .inc-spinner {
15460
+ position: absolute;
15461
+ inset: 50% auto auto 50%;
15462
+ margin: -0.5rem 0 0 -0.5rem;
15463
+ transform: none;
15464
+ }
15465
+ .inc-btn.is-loading > .inc-loading-dots {
15466
+ position: absolute;
15467
+ inset: 50% auto auto 50%;
15468
+ transform: translate(-50%, -50%);
15469
+ }
15382
15470
  .inc-btn.is-loading::after {
15383
15471
  content: "";
15384
15472
  position: absolute;
@@ -15391,11 +15479,153 @@ body.inc-offcanvas-open {
15391
15479
  border-right-color: transparent;
15392
15480
  animation: inc-loading-spin 0.8s linear infinite;
15393
15481
  }
15394
- .inc-btn.is-loading > .inc-spinner,
15395
- .inc-btn.is-loading > .inc-loading-dots {
15396
- position: absolute;
15397
- inset: 50% auto auto 50%;
15398
- transform: translate(-50%, -50%);
15482
+
15483
+ [data-bs-theme=dark] .form-control,
15484
+ [data-bs-theme=dark] .inc-readonly-field,
15485
+ [data-bs-theme=dark] .inc-form__control {
15486
+ color: var(--inc-control-surface-text);
15487
+ background-color: var(--inc-control-surface);
15488
+ border-color: var(--inc-control-surface-border);
15489
+ }
15490
+ [data-bs-theme=dark] .form-control:focus,
15491
+ [data-bs-theme=dark] .inc-readonly-field:focus,
15492
+ [data-bs-theme=dark] .inc-form__control:focus {
15493
+ color: var(--inc-control-surface-text);
15494
+ background-color: var(--inc-control-surface);
15495
+ }
15496
+ [data-bs-theme=dark] .form-control::placeholder,
15497
+ [data-bs-theme=dark] .inc-readonly-field::placeholder,
15498
+ [data-bs-theme=dark] .inc-form__control::placeholder {
15499
+ color: var(--bs-secondary-color);
15500
+ }
15501
+ [data-bs-theme=dark] .form-control::file-selector-button,
15502
+ [data-bs-theme=dark] .inc-readonly-field::file-selector-button,
15503
+ [data-bs-theme=dark] .inc-form__control::file-selector-button {
15504
+ color: var(--inc-control-surface-text);
15505
+ background-color: var(--inc-surface-muted);
15506
+ }
15507
+ [data-bs-theme=dark] .form-control:hover:not(:disabled):not([readonly])::file-selector-button,
15508
+ [data-bs-theme=dark] .inc-readonly-field:hover:not(:disabled):not([readonly])::file-selector-button,
15509
+ [data-bs-theme=dark] .inc-form__control:hover:not(:disabled):not([readonly])::file-selector-button {
15510
+ background-color: var(--inc-surface-secondary);
15511
+ }
15512
+ [data-bs-theme=dark] .form-select,
15513
+ [data-bs-theme=dark] .inc-form__select {
15514
+ color: var(--inc-control-surface-text);
15515
+ background-color: var(--inc-control-surface);
15516
+ border-color: var(--inc-control-surface-border);
15517
+ }
15518
+ [data-bs-theme=dark] .form-select:focus,
15519
+ [data-bs-theme=dark] .inc-form__select:focus {
15520
+ color: var(--inc-control-surface-text);
15521
+ background-color: var(--inc-control-surface);
15522
+ }
15523
+ [data-bs-theme=dark] .form-select:-moz-focusring,
15524
+ [data-bs-theme=dark] .inc-form__select:-moz-focusring {
15525
+ color: transparent;
15526
+ text-shadow: 0 0 0 var(--inc-control-surface-text);
15527
+ }
15528
+ [data-bs-theme=dark] .input-group-text,
15529
+ [data-bs-theme=dark] .inc-input-group__text {
15530
+ color: var(--inc-surface-contrast-text);
15531
+ background-color: var(--inc-surface-contrast);
15532
+ border-color: var(--inc-surface-contrast-border);
15533
+ }
15534
+ [data-bs-theme=dark] .inc-btn--secondary {
15535
+ --bs-btn-color: var(--inc-surface-contrast-text);
15536
+ --bs-btn-bg: var(--inc-surface-contrast);
15537
+ --bs-btn-border-color: var(--inc-surface-contrast-border);
15538
+ --bs-btn-hover-color: var(--inc-surface-contrast-text);
15539
+ --bs-btn-hover-bg: var(--inc-surface-contrast-hover);
15540
+ --bs-btn-hover-border-color: var(--inc-surface-contrast-border);
15541
+ --bs-btn-focus-shadow-rgb: var(--inc-surface-contrast-rgb);
15542
+ --bs-btn-active-color: var(--inc-surface-contrast-text);
15543
+ --bs-btn-active-bg: var(--inc-surface-contrast-active);
15544
+ --bs-btn-active-border-color: var(--inc-surface-contrast-border);
15545
+ --bs-btn-disabled-color: var(--inc-surface-contrast-text);
15546
+ --bs-btn-disabled-bg: var(--inc-surface-contrast);
15547
+ --bs-btn-disabled-border-color: var(--inc-surface-contrast-border);
15548
+ }
15549
+ [data-bs-theme=dark] .inc-form__fieldset {
15550
+ background: var(--inc-surface-secondary);
15551
+ }
15552
+ [data-bs-theme=dark] .inc-form__legend {
15553
+ background-color: var(--inc-surface-secondary);
15554
+ }
15555
+ [data-bs-theme=dark] .inc-form__control.is-invalid, [data-bs-theme=dark] .inc-form__control.inc-form--is-invalid,
15556
+ [data-bs-theme=dark] .inc-form__control[aria-invalid=true],
15557
+ [data-bs-theme=dark] .inc-form__select.is-invalid,
15558
+ [data-bs-theme=dark] .inc-form__select.inc-form--is-invalid {
15559
+ border-color: var(--bs-form-invalid-border-color);
15560
+ }
15561
+ [data-bs-theme=dark] .inc-form__control.is-valid, [data-bs-theme=dark] .inc-form__control.inc-form--is-valid,
15562
+ [data-bs-theme=dark] .inc-form__select.is-valid,
15563
+ [data-bs-theme=dark] .inc-form__select.inc-form--is-valid {
15564
+ border-color: var(--bs-form-valid-border-color);
15565
+ }
15566
+ [data-bs-theme=dark] .was-validated .form-control:invalid,
15567
+ [data-bs-theme=dark] .was-validated .inc-readonly-field:invalid,
15568
+ [data-bs-theme=dark] .was-validated .inc-form__control:invalid,
15569
+ [data-bs-theme=dark] .form-control.is-invalid,
15570
+ [data-bs-theme=dark] .is-invalid.inc-readonly-field,
15571
+ [data-bs-theme=dark] .form-control.inc-form--is-invalid,
15572
+ [data-bs-theme=dark] .inc-form--is-invalid.inc-readonly-field,
15573
+ [data-bs-theme=dark] .is-invalid.inc-form__control,
15574
+ [data-bs-theme=dark] .inc-form__control.inc-form--is-invalid {
15575
+ border-color: var(--bs-form-invalid-border-color);
15576
+ }
15577
+ [data-bs-theme=dark] .was-validated .form-select:invalid,
15578
+ [data-bs-theme=dark] .was-validated .inc-form__select:invalid,
15579
+ [data-bs-theme=dark] .form-select.is-invalid,
15580
+ [data-bs-theme=dark] .form-select.inc-form--is-invalid,
15581
+ [data-bs-theme=dark] .is-invalid.inc-form__select,
15582
+ [data-bs-theme=dark] .inc-form__select.inc-form--is-invalid {
15583
+ border-color: var(--bs-form-invalid-border-color);
15584
+ }
15585
+ [data-bs-theme=dark] .was-validated .form-control:invalid:focus,
15586
+ [data-bs-theme=dark] .was-validated .inc-readonly-field:invalid:focus,
15587
+ [data-bs-theme=dark] .was-validated .inc-form__control:invalid:focus,
15588
+ [data-bs-theme=dark] .form-control.is-invalid:focus,
15589
+ [data-bs-theme=dark] .is-invalid.inc-readonly-field:focus,
15590
+ [data-bs-theme=dark] .form-control.inc-form--is-invalid:focus,
15591
+ [data-bs-theme=dark] .inc-form--is-invalid.inc-readonly-field:focus,
15592
+ [data-bs-theme=dark] .is-invalid.inc-form__control:focus,
15593
+ [data-bs-theme=dark] .inc-form__control.inc-form--is-invalid:focus {
15594
+ border-color: var(--bs-form-invalid-border-color);
15595
+ box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
15596
+ }
15597
+ [data-bs-theme=dark] .was-validated .form-select:invalid:focus,
15598
+ [data-bs-theme=dark] .was-validated .inc-form__select:invalid:focus,
15599
+ [data-bs-theme=dark] .form-select.is-invalid:focus,
15600
+ [data-bs-theme=dark] .form-select.inc-form--is-invalid:focus,
15601
+ [data-bs-theme=dark] .is-invalid.inc-form__select:focus,
15602
+ [data-bs-theme=dark] .inc-form__select.inc-form--is-invalid:focus {
15603
+ border-color: var(--bs-form-invalid-border-color);
15604
+ box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
15605
+ }
15606
+ [data-bs-theme=dark] .inc-table__row--selected,
15607
+ [data-bs-theme=dark] .inc-table__row--warning,
15608
+ [data-bs-theme=dark] .inc-table__row--danger {
15609
+ --bs-table-color: var(--inc-text-primary);
15610
+ }
15611
+ [data-bs-theme=dark] .inc-table__row--locked {
15612
+ --bs-table-color: var(--inc-text-secondary);
15613
+ }
15614
+ [data-bs-theme=dark] .inc-table__row--selected > *,
15615
+ [data-bs-theme=dark] .inc-table__row--warning > *,
15616
+ [data-bs-theme=dark] .inc-table__row--danger > * {
15617
+ background: rgba(var(--bs-primary-rgb), 0.14) !important;
15618
+ color: var(--inc-text-primary);
15619
+ }
15620
+ [data-bs-theme=dark] .inc-table__row--warning > * {
15621
+ background: rgba(var(--bs-warning-rgb), 0.14) !important;
15622
+ }
15623
+ [data-bs-theme=dark] .inc-table__row--danger > * {
15624
+ background: rgba(var(--bs-danger-rgb), 0.14) !important;
15625
+ }
15626
+ [data-bs-theme=dark] .inc-table__row--locked > * {
15627
+ background: rgba(var(--bs-secondary-rgb), 0.22) !important;
15628
+ color: var(--inc-text-secondary);
15399
15629
  }
15400
15630
 
15401
15631
  .inc-bulk-bar {