@databricks/design-system 2.0.4 → 2.0.6

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 (62) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/design-guidance/docs/README.md +40 -0
  3. package/design-guidance/docs/review-contract.md +22 -0
  4. package/design-guidance/docs/tokens.md +35 -0
  5. package/design-guidance/docs/voice.md +40 -0
  6. package/design-guidance/skills/dbui-build-screen.md +24 -0
  7. package/design-guidance/skills/dbui-check-ecosystem.md +21 -0
  8. package/design-guidance/skills/dbui-check-guidelines.md +29 -0
  9. package/design-guidance/skills/dbui-check-principles.md +26 -0
  10. package/design-guidance/skills/dbui-check-voice.md +17 -0
  11. package/design-guidance/skills/dbui-pick-component.md +23 -0
  12. package/design-guidance/skills/dbui-pick-icon.md +23 -0
  13. package/design-guidance/skills/dbui-review.md +30 -0
  14. package/design-guidance/skills/dbui-validate.md +23 -0
  15. package/dist/RHFControlledTypeaheadComboboxV2-Ct9x3rC1.js +172 -0
  16. package/dist/RHFControlledTypeaheadComboboxV2-Ct9x3rC1.js.map +1 -0
  17. package/dist/{WizardStepContentWrapper-8bs2FwRi.js → WizardStepContentWrapper-6YTjeEaA.js} +1017 -840
  18. package/dist/WizardStepContentWrapper-6YTjeEaA.js.map +1 -0
  19. package/dist/icon-metadata.json +2064 -0
  20. package/dist/index-DiRpSwH2.js +8509 -0
  21. package/dist/index-DiRpSwH2.js.map +1 -0
  22. package/dist/index-dark.css +648 -113
  23. package/dist/index-dark.mitigated.css +648 -113
  24. package/dist/index.css +1045 -145
  25. package/dist/index.js +27 -8148
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mitigated.css +1046 -146
  28. package/dist/patterns.js +3 -3
  29. package/dist-types/design-system/Breadcrumb/Breadcrumb.d.ts +10 -3
  30. package/dist-types/design-system/Button/AntDButtonInternal.d.ts +21 -0
  31. package/dist-types/design-system/Button/Button.d.ts +3 -19
  32. package/dist-types/design-system/Button/NativeButton.d.ts +3 -0
  33. package/dist-types/design-system/Button/getBtnClassName.d.ts +17 -0
  34. package/dist-types/design-system/Button/index.d.ts +1 -0
  35. package/dist-types/design-system/DesignSystemProvider/DesignTokenScopeWithEmotionTheme.d.ts +4 -4
  36. package/dist-types/design-system/Drawer/Drawer.d.ts +3 -1
  37. package/dist-types/design-system/FormV2/RHFAdapters.d.ts +8 -0
  38. package/dist-types/design-system/FormV2/RHFControlledTypeaheadComboboxV2.d.ts +58 -0
  39. package/dist-types/design-system/Icon/AntdIcon.d.ts +3 -0
  40. package/dist-types/design-system/Icon/Icon.d.ts +21 -7
  41. package/dist-types/design-system/Icon/NativeIcon.d.ts +3 -0
  42. package/dist-types/design-system/Icon/__generated/icons/ColorMappingEditIcon.d.ts +4 -0
  43. package/dist-types/design-system/Icon/__generated/icons/ColorMappingIcon.d.ts +4 -0
  44. package/dist-types/design-system/Icon/__generated/icons/LakewatchIcon.d.ts +4 -0
  45. package/dist-types/design-system/Icon/__generated/icons/MicrophoneIcon.d.ts +4 -0
  46. package/dist-types/design-system/Icon/__generated/icons/MicrophoneOffIcon.d.ts +4 -0
  47. package/dist-types/design-system/Icon/__generated/icons/OperatorIcon.d.ts +4 -0
  48. package/dist-types/design-system/Icon/__generated/icons/VoiceModeIcon.d.ts +4 -0
  49. package/dist-types/design-system/Icon/__generated/icons/index.d.ts +7 -0
  50. package/dist-types/design-system/Icon/index.d.ts +1 -0
  51. package/dist-types/design-system/Icon/utils.d.ts +1 -0
  52. package/dist-types/design-system/Overflow/Overflow.d.ts +3 -1
  53. package/dist-types/design-system/Overflow/OverflowPopover.d.ts +2 -1
  54. package/dist-types/design-system/TypeaheadComboboxV2/TypeaheadComboboxMenu.d.ts +2 -0
  55. package/dist-types/design-system/_shared_/Tabs/styles.d.ts +2 -3
  56. package/dist-types/design-system/shape-tokens.d.ts +1 -1
  57. package/dist-types/test-utils/rtl/buttonVariants.d.ts +4 -4
  58. package/dist-types/~patterns/Wizard/WizardModal.d.ts +1 -1
  59. package/dist-types/~patterns/Wizard/WizardStepNavigation.d.ts +9 -0
  60. package/dist-types/~patterns/Wizard/index.d.ts +1 -0
  61. package/package.json +9 -5
  62. package/dist/WizardStepContentWrapper-8bs2FwRi.js.map +0 -1
@@ -16289,113 +16289,145 @@ span.du-bois-dark-typography-ellipsis-single-line {
16289
16289
 
16290
16290
  :where(.du-bois-dark) {
16291
16291
  /* Neutral */
16292
- --db-neutral-surface: var(--db-color-background-primary);
16293
- --db-subtle-neutral-surface: var(--db-color-background-secondary);
16294
- --db-strong-neutral-surface: initial; /* TODO */
16292
+ --db-surface-base: var(--db-color-background-primary);
16293
+ --db-surface-subtle: var(--db-color-background-secondary);
16294
+ --db-surface-strong: initial; /* TODO */
16295
16295
 
16296
- --db-text-on-neutral-surface: var(--db-color-text-primary);
16297
- --db-subtle-text-on-neutral-surface: var(--db-color-text-secondary);
16298
- --db-strong-text-on-neutral-surface: initial; /* TODO */
16296
+ --db-surface-inverse: initial; /* TODO */
16297
+ --db-surface-active: var(--db-color-table-background-selected-default);
16298
+ --db-surface-hover: var(--db-color-table-background-unselected-hover);
16299
+ --db-surface-disabled: var(--db-color-action-disabled-background);
16299
16300
 
16300
- --db-neutral-border: var(--db-color-border);
16301
- --db-subtle-neutral-border: initial; /* TODO */
16302
- --db-strong-neutral-border: var(--db-color-border-accessible);
16301
+ --db-surface-selected: var(--db-color-table-background-selected-hover);
16302
+ --db-surface-selected-hover: initial; /* TODO */;
16303
+ --db-surface-selected-active: var(--db-color-table-background-selected-hover); /* no distinct active value */
16303
16304
 
16304
- --db-neutral-surface-active: var(--db-color-table-background-selected-default);
16305
- --db-neutral-surface-hover: var(--db-color-table-background-unselected-hover);
16306
- --db-neutral-surface-pressed: var(--db-color-table-background-selected-hover);
16307
- --db-neutral-surface-disabled: var(--db-color-action-disabled-background);
16308
- --db-text-on-neutral-surface-disabled: var(--db-color-action-disabled-text);
16305
+ /* Surface alpha-blending modifiers */
16306
+ --db-surface-backdrop: initial; /* TODO */;
16307
+ /* TODO: surface-tint for containers that distinguish some content */
16309
16308
 
16310
- /* Primary */
16311
- --db-primary-surface: var(--db-color-action-primary-background-default);
16312
- --db-subtle-primary-surface: var(--db-color-action-default-background-hover);
16313
- --db-strong-primary-surface: var(--db-color-action-primary-background-hover);
16309
+ --db-text-base: var(--db-color-text-primary);
16310
+ --db-text-subtle: var(--db-color-text-secondary);
16311
+ --db-text-strong: initial; /* TODO */
16312
+ --db-text-disabled: var(--db-color-action-disabled-text);
16313
+ --db-text-suggestion: initial; /* TODO - e.g. input placeholder, loading text */
16314
+ --db-text-inverse: initial; /* TODO, stark contrast e.g. tooltip text */
16314
16315
 
16315
- --db-text-on-primary-surface: var(--db-color-action-primary-text-default);
16316
- --db-primary-text-on-neutral-surface: var(--db-color-action-link-default);
16317
- --db-subtle-text-on-primary-surface: initial; /* TODO */
16318
- --db-strong-text-on-primary-surface: var(--db-color-action-primary-text-default);
16316
+ --db-border-base: var(--db-color-border);
16317
+ --db-border-subtle: initial; /* TODO */
16318
+ --db-border-strong: var(--db-color-border-accessible);
16319
+ --db-border-hover: initial; /* TODO */
16320
+ --db-border-active: initial; /* TODO */
16321
+ --db-border-disabled: initial; /* TODO */
16319
16322
 
16320
- --db-primary-border: var(--db-color-action-primary-background-default);
16321
- --db-subtle-primary-border: initial; /* TODO */
16322
- --db-strong-primary-border: var(--db-color-action-primary-background-press);
16323
+ /* Accent */
16324
+ --db-accent-surface: var(--db-color-action-primary-background-default);
16325
+ --db-accent-surface-subtle: var(--db-color-action-default-background-hover);
16326
+ --db-accent-surface-strong: var(--db-color-action-primary-background-hover);
16323
16327
 
16324
- --db-primary-surface-active: initial; /* TODO */
16325
- --db-primary-surface-hover: var(--db-color-action-primary-background-hover);
16326
- --db-primary-surface-pressed: var(--db-color-action-primary-background-press);
16327
- --db-primary-surface-disabled: var(--db-color-action-disabled-background);
16328
- --db-text-on-primary-surface-disabled: var(--db-color-action-disabled-text);
16328
+ --db-accent-surface-hover: var(--db-color-action-primary-background-hover);
16329
+ --db-accent-surface-active: var(--db-color-action-primary-background-press); /* no distinct active value */
16330
+ --db-accent-surface-selected: var(--db-color-action-primary-background-press);
16329
16331
 
16330
- /* Error */
16331
- --db-error-surface: var(--db-color-action-danger-primary-background-default);
16332
- --db-subtle-error-surface: var(--db-color-background-danger);
16333
- --db-strong-error-surface: var(--db-color-action-danger-primary-background-hover);
16332
+ /* In the current design, the text color for an accent surface does not change with hover, active, etc. */
16333
+ --db-accent-text: var(--db-color-action-link-default);
16334
+ --db-text-on-accent-surface: var(--db-color-action-primary-text-default);
16334
16335
 
16335
- --db-text-on-error-surface: var(--db-color-action-danger-primary-text);
16336
- --db-error-text-on-neutral-surface: var(--db-color-text-validation-danger);
16337
- --db-subtle-text-on-error-surface: initial; /* TODO */
16338
- --db-strong-text-on-error-surface: var(--db-color-action-danger-primary-text);
16336
+ --db-accent-border: var(--db-color-action-primary-background-default);
16337
+ --db-accent-border-hover: var(--db-color-action-primary-background-press);
16338
+ --db-accent-border-active: initial; /* TODO */;
16339
16339
 
16340
- --db-error-border: var(--db-color-action-danger-default-border-default);
16341
- --db-subtle-error-border: var(--db-color-border-danger);
16342
- --db-strong-error-border: var(--db-color-action-danger-primary-background-press);
16340
+ /* Negative */
16341
+ --db-negative-surface: var(--db-color-action-danger-primary-background-default);
16342
+ --db-negative-surface-subtle: var(--db-color-background-danger);
16343
+ --db-negative-surface-strong: var(--db-color-action-danger-primary-background-hover);
16343
16344
 
16344
- --db-error-surface-active: initial; /* TODO */
16345
- --db-error-surface-hover: var(--db-color-action-danger-primary-background-hover);
16346
- --db-error-surface-pressed: var(--db-color-action-danger-primary-background-press);
16347
- --db-error-surface-disabled: var(--db-color-action-disabled-background);
16348
- --db-text-on-error-surface-disabled: var(--db-color-action-disabled-text);
16345
+ --db-negative-surface-hover: var(--db-color-action-danger-primary-background-hover);
16346
+ --db-negative-surface-active: var(--db-color-action-danger-primary-background-press); /* no distinct active value */
16347
+ --db-negative-surface-selected: var(--db-color-action-danger-primary-background-press);
16349
16348
 
16350
- /* Warning */
16351
- --db-warning-surface: initial; /* TODO */
16352
- --db-subtle-warning-surface: var(--db-color-background-warning);
16349
+ --db-negative-text: var(--db-color-text-validation-danger);
16350
+ --db-text-on-negative-surface: var(--db-color-action-danger-primary-text);
16353
16351
 
16354
- --db-text-on-warning-surface: initial; /* TODO */
16355
- --db-warning-text-on-neutral-surface: var(--db-color-text-validation-warning);
16352
+ --db-negative-border: var(--db-color-action-danger-default-border-default);
16353
+ --db-negative-border-hover: initial; /* TODO */
16354
+ --db-negative-border-active: initial; /* TODO */
16356
16355
 
16357
- --db-warning-border: var(--db-color-border-warning);
16356
+ /* Caution */
16357
+ --db-caution-surface: initial; /* TODO */
16358
+ --db-caution-surface-subtle: var(--db-color-background-warning);
16359
+ --db-caution-surface-strong: initial; /* TODO */
16358
16360
 
16359
- /* Success */
16360
- --db-success-surface: initial; /* TODO */
16361
- --db-subtle-success-surface: var(--db-color-background-success);
16361
+ --db-caution-surface-hover: initial; /* TODO */
16362
+ --db-caution-surface-active: initial; /* TODO */
16363
+ --db-caution-surface-selected: initial; /* TODO */
16362
16364
 
16363
- --db-text-on-success-surface: initial; /* TODO */
16364
- --db-success-text-on-neutral-surface: var(--db-color-text-validation-success);
16365
+ --db-caution-text: var(--db-color-text-validation-warning);
16366
+ --db-text-on-caution-surface: initial; /* TODO */
16365
16367
 
16366
- --db-success-border: initial; /* TODO */
16368
+ --db-caution-border: var(--db-color-border-warning);
16369
+ --db-caution-border-hover: initial; /* TODO */
16370
+ --db-caution-border-active: initial; /* TODO */
16371
+
16372
+ /* Positive */
16373
+ --db-positive-surface: initial; /* TODO */
16374
+ --db-positive-surface-subtle: var(--db-color-background-success);
16375
+ --db-positive-surface-strong: initial; /* TODO */
16376
+
16377
+ --db-positive-surface-hover: initial; /* TODO */
16378
+ --db-positive-surface-active: initial; /* TODO */
16379
+ --db-positive-surface-selected: initial; /* TODO */
16380
+
16381
+ --db-positive-text: var(--db-color-text-validation-success);
16382
+ --db-text-on-positive-surface: initial; /* TODO */
16383
+
16384
+ --db-positive-border: initial; /* TODO */
16385
+ --db-positive-border-hover: initial; /* TODO */
16386
+ --db-positive-border-active: initial; /* TODO */
16387
+
16388
+ /* Branded (theme-invariant — same values as light) */
16389
+ --db-ai-gradient-start: #4299e0;
16390
+ --db-ai-gradient-mid: #ca42e0;
16391
+ --db-ai-gradient-end: #ff5f46;
16367
16392
  }
16368
16393
 
16369
16394
  :where(.du-bois-dark) {
16370
16395
  --db-layout-unit: 0.25rem; /* 4px */
16371
16396
  --db-density-scalar: 1;
16372
16397
  --db-size-scalar: 1;
16373
- --db-spacing-scalar: 1;
16398
+ --db-space-scalar: 1;
16374
16399
 
16375
16400
  /* Size and spacing are the same steps, but with their own scalars included in the calc. */
16376
16401
 
16377
- --db-size-3xs: calc(var(--db-layout-unit) * 1 * var(--db-density-scalar) * var(--db-size-scalar)); /* 4px */
16378
- --db-size-2xs: calc(var(--db-layout-unit) * 2 * var(--db-density-scalar) * var(--db-size-scalar)); /* 8px */
16379
- --db-size-xs: calc(var(--db-layout-unit) * 4 * var(--db-density-scalar) * var(--db-size-scalar)); /* 16px */
16380
- --db-size-sm: calc(var(--db-layout-unit) * 6 * var(--db-density-scalar) * var(--db-size-scalar)); /* 24px */
16381
- --db-size-md: calc(var(--db-layout-unit) * 8 * var(--db-density-scalar) * var(--db-size-scalar)); /* 32px */
16382
- --db-size-lg: calc(var(--db-layout-unit) * 10 * var(--db-density-scalar) * var(--db-size-scalar)); /* 40px */
16402
+ --db-size-1: calc(var(--db-layout-unit) * 1 * var(--db-density-scalar) * var(--db-size-scalar)); /* 4px */
16403
+ --db-size-2: calc(var(--db-layout-unit) * 2 * var(--db-density-scalar) * var(--db-size-scalar)); /* 8px */
16404
+ --db-size-3: calc(var(--db-layout-unit) * 3 * var(--db-density-scalar) * var(--db-size-scalar)); /* 12px */
16405
+ --db-size-4: calc(var(--db-layout-unit) * 4 * var(--db-density-scalar) * var(--db-size-scalar)); /* 16px */
16406
+ --db-size-5: calc(var(--db-layout-unit) * 5 * var(--db-density-scalar) * var(--db-size-scalar)); /* 20px */
16407
+ --db-size-6: calc(var(--db-layout-unit) * 6 * var(--db-density-scalar) * var(--db-size-scalar)); /* 24px */
16408
+ --db-size-7: calc(var(--db-layout-unit) * 7 * var(--db-density-scalar) * var(--db-size-scalar)); /* 28px */
16409
+ --db-size-8: calc(var(--db-layout-unit) * 8 * var(--db-density-scalar) * var(--db-size-scalar)); /* 32px */
16410
+ --db-size-10: calc(var(--db-layout-unit) * 10 * var(--db-density-scalar) * var(--db-size-scalar)); /* 40px */
16411
+ --db-size-12: calc(var(--db-layout-unit) * 12 * var(--db-density-scalar) * var(--db-size-scalar)); /* 48px */
16383
16412
 
16384
- --db-spacing-3xs: calc(var(--db-layout-unit) * 1 * var(--db-density-scalar) * var(--db-spacing-scalar)); /* 4px */
16385
- --db-spacing-2xs: calc(var(--db-layout-unit) * 2 * var(--db-density-scalar) * var(--db-spacing-scalar)); /* 8px */
16386
- --db-spacing-xs: calc(var(--db-layout-unit) * 4 * var(--db-density-scalar) * var(--db-spacing-scalar)); /* 16px */
16387
- --db-spacing-sm: calc(var(--db-layout-unit) * 6 * var(--db-density-scalar) * var(--db-spacing-scalar)); /* 24px */
16388
- --db-spacing-md: calc(var(--db-layout-unit) * 8 * var(--db-density-scalar) * var(--db-spacing-scalar)); /* 32px */
16389
- --db-spacing-lg: calc(var(--db-layout-unit) * 10 * var(--db-density-scalar) * var(--db-spacing-scalar)); /* 40px */
16413
+ --db-space-0-5: calc(var(--db-layout-unit) * 0.5 * var(--db-density-scalar) * var(--db-space-scalar)); /* 2px */
16414
+ --db-space-1: calc(var(--db-layout-unit) * 1 * var(--db-density-scalar) * var(--db-space-scalar)); /* 4px */
16415
+ --db-space-2: calc(var(--db-layout-unit) * 2 * var(--db-density-scalar) * var(--db-space-scalar)); /* 8px */
16416
+ --db-space-3: calc(var(--db-layout-unit) * 3 * var(--db-density-scalar) * var(--db-space-scalar)); /* 12px */
16417
+ --db-space-4: calc(var(--db-layout-unit) * 4 * var(--db-density-scalar) * var(--db-space-scalar)); /* 16px */
16418
+ --db-space-6: calc(var(--db-layout-unit) * 6 * var(--db-density-scalar) * var(--db-space-scalar)); /* 24px */
16419
+ --db-space-8: calc(var(--db-layout-unit) * 8 * var(--db-density-scalar) * var(--db-space-scalar)); /* 32px */
16420
+ --db-space-10: calc(var(--db-layout-unit) * 10 * var(--db-density-scalar) * var(--db-space-scalar)); /* 40px */
16390
16421
  }
16391
16422
 
16392
16423
  :where(.du-bois-dark) {
16393
16424
  --db-font-family:
16394
16425
  "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
16426
+ --db-numeric-font-family: var(--db-font-family);
16395
16427
  --db-mono-font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
16396
16428
 
16397
- --db-font-size-2xs: 0.6875rem; /* 11px */
16398
- --db-font-size-xs: 0.75rem; /* 12px */
16429
+ --db-font-size-xs: 0.6875rem; /* 11px */
16430
+ --db-font-size-sm: 0.75rem; /* 12px */
16399
16431
  --db-font-size-base: 0.8125rem; /* 13px */
16400
16432
  --db-font-size-md: 0.875rem; /* 14px */
16401
16433
  --db-font-size-lg: 0.9375rem; /* 15px */
@@ -16404,6 +16436,8 @@ span.du-bois-dark-typography-ellipsis-single-line {
16404
16436
  --db-font-size-3xl: 1.5rem; /* 24px */
16405
16437
  --db-font-size-4xl: 2rem; /* 32px */
16406
16438
 
16439
+ /* TODO: media query for mobile font sizes */
16440
+
16407
16441
  /* Du Bois v1 ships 400 and 600 only */
16408
16442
  --db-font-weight-normal: 400;
16409
16443
  --db-font-weight-medium: initial; /* TODO */
@@ -16421,6 +16455,57 @@ span.du-bois-dark-typography-ellipsis-single-line {
16421
16455
  :where(.du-bois-dark) {
16422
16456
  --db-focus-ring-color: var(--db-color-action-default-border-focus);
16423
16457
  --db-focus-ring-width: 2px;
16458
+ --db-focus-ring-offset: 2px;
16459
+ }
16460
+
16461
+ :where(.du-bois-dark) {
16462
+ --db-shape-control: 4px;
16463
+ --db-shape-control-large: 999px;
16464
+ --db-shape-container-small: 8px;
16465
+ --db-shape-container-medium: 12px;
16466
+ --db-shape-container-large: 16px;
16467
+ --db-shape-pill: 999px;
16468
+ }
16469
+
16470
+ :where(.du-bois-dark) {
16471
+ /* Shape */
16472
+ /* Mirrors the ShapeTokens host-override var used by list items; falls back to the theme radius. */
16473
+ --db-list-item-border-radius: var(--list-item-border-radius, 4px);
16474
+
16475
+ /* Color */
16476
+ --db-list-surface: var(--db-surface-base);
16477
+ --db-list-text: var(--db-text-base);
16478
+ --db-list-header-text: var(--db-text-subtle);
16479
+ --db-list-separator: var(--db-border-subtle);
16480
+
16481
+ --db-list-item-surface-hover: var(--db-surface-hover);
16482
+ --db-list-item-surface-active: var(--db-surface-active);
16483
+ --db-list-item-surface-selected: var(--db-accent-surface-subtle);
16484
+ --db-list-item-surface-disabled: var(--db-surface-disabled);
16485
+
16486
+ --db-list-item-text-selected: var(--db-accent-text);
16487
+ --db-list-item-text-disabled: var(--db-text-disabled);
16488
+
16489
+ --db-list-item-danger-text: var(--db-negative-text);
16490
+ --db-list-item-danger-surface-hover: var(--db-negative-surface-subtle);
16491
+
16492
+ /* Density */
16493
+ --db-list-item-padding: var(--db-space-2);
16494
+ --db-list-item-height: var(--db-size-8);
16495
+ }
16496
+
16497
+ :where(.du-bois-dark) {
16498
+ /* Shape */
16499
+ /* Mirrors the ShapeTokens host-override var; falls back to the v1 value (borderRadiusSm). */
16500
+ --db-popup-border-radius: var(--popup-border-radius, 4px);
16501
+
16502
+ /* Color */
16503
+ --db-popup-surface: var(--db-surface-base);
16504
+ --db-popup-text: var(--db-text-base);
16505
+ --db-popup-border: var(--db-border-base);
16506
+
16507
+ /* Elevation */
16508
+ --db-popup-elevation: var(--db-elevation-med);
16424
16509
  }
16425
16510
 
16426
16511
  :where(.du-bois-dark) {
@@ -16428,36 +16513,150 @@ span.du-bois-dark-typography-ellipsis-single-line {
16428
16513
  --db-selection-toggle-border-radius: 4px;
16429
16514
 
16430
16515
  /* Color */
16431
- --db-selection-toggle-surface: var(--db-neutral-surface);
16432
- --db-selection-toggle-mark: var(--db-text-on-primary-surface);
16433
- --db-selection-toggle-text: var(--db-text-on-neutral-surface);
16434
- --db-selection-toggle-border: var(--db-strong-neutral-border);
16435
-
16436
- --db-selection-toggle-surface-hover: var(--db-neutral-surface-hover);
16437
- --db-selection-toggle-surface-press: var(--db-neutral-surface-pressed);
16438
- --db-selection-toggle-surface-checked: var(--db-primary-surface);
16439
- --db-selection-toggle-surface-checked-hover: var(--db-primary-surface-hover);
16440
- --db-selection-toggle-surface-checked-press: var(--db-primary-surface-pressed);
16441
- --db-selection-toggle-surface-disabled: var(--db-neutral-surface-disabled);
16442
- --db-selection-toggle-surface-checked-disabled: var(--db-neutral-surface-disabled);
16443
-
16444
- --db-selection-toggle-border-hover: var(--db-primary-surface-hover);
16445
- --db-selection-toggle-border-press: var(--db-primary-surface-pressed);
16446
- --db-selection-toggle-border-disabled: var(--db-neutral-border);
16447
-
16448
- --db-selection-toggle-mark-disabled: var(--db-text-on-neutral-surface-disabled);
16449
- --db-selection-toggle-text-disabled: var(--db-text-on-neutral-surface-disabled);
16516
+ --db-selection-toggle-surface: var(--db-surface-base);
16517
+ --db-selection-toggle-mark: var(--db-text-on-accent-surface);
16518
+ --db-selection-toggle-text: var(--db-text-base);
16519
+ --db-selection-toggle-border: var(--db-border-strong);
16520
+
16521
+ --db-selection-toggle-surface-hover: var(--db-surface-hover);
16522
+ --db-selection-toggle-surface-active: var(--db-surface-selected-active);
16523
+ --db-selection-toggle-surface-checked: var(--db-accent-surface);
16524
+ --db-selection-toggle-surface-checked-hover: var(--db-accent-surface-hover);
16525
+ --db-selection-toggle-surface-checked-active: var(--db-accent-surface-active);
16526
+ --db-selection-toggle-surface-disabled: var(--db-surface-disabled);
16527
+ --db-selection-toggle-surface-checked-disabled: var(--db-surface-disabled);
16528
+
16529
+ --db-selection-toggle-border-hover: var(--db-accent-surface-hover);
16530
+ --db-selection-toggle-border-active: var(--db-accent-surface-active);
16531
+ --db-selection-toggle-border-disabled: var(--db-border-base);
16532
+
16533
+ --db-selection-toggle-mark-disabled: var(--db-text-disabled);
16534
+ --db-selection-toggle-text-disabled: var(--db-text-disabled);
16450
16535
 
16451
16536
  --db-selection-toggle-shadow-checked: 0 0 0 1px var(--db-color-action-primary-background-default);
16452
16537
 
16453
16538
  /* Density */
16454
- --db-selection-toggle-size: var(--db-size-xs);
16455
- --db-selection-toggle-label-spacing: var(--db-spacing-2xs);
16539
+ --db-selection-toggle-size: var(--db-size-4);
16540
+ --db-selection-toggle-label-spacing: var(--db-space-2);
16456
16541
 
16457
16542
  /* Motion */
16458
16543
  --db-selection-toggle-transition-duration: 120ms;
16459
16544
  }
16460
16545
 
16546
+
16547
+
16548
+ /* Component-tier tokens for the native <Button>, grouped by area (density, shape, typography, color).
16549
+ * Colors alias the action-* system tokens; sizes alias the system density scale.
16550
+ *
16551
+ * Follows the mortar/action.css pattern: one semantic set (surface / border / text, each with
16552
+ * -hover / -active / -disabled) whose defaults are the secondary variant. The variant classes that
16553
+ * re-set these tokens per variant live in NativeButton.css; this file declares only tokens. */
16554
+
16555
+ /* Declared under the theme classes too (not just :root) so the var() chain re-resolves inside a
16556
+ * `.du-bois-dark` subtree (or a portal that re-applies the theme class) instead of freezing at the root values. */
16557
+ :where(.du-bois-dark) {
16558
+ /* ── Density ──────────────────────────────────────────────────────────── */
16559
+ --db-btn-height: var(--db-size-8);
16560
+ --db-btn-height-small: var(--db-size-6);
16561
+ --db-btn-icon-size: var(--db-size-4);
16562
+ --db-btn-border-width: 1px;
16563
+ --db-btn-padding-vertical: var(--db-space-1);
16564
+ --db-btn-padding-horizontal: var(--db-space-3);
16565
+ --db-btn-padding-horizontal-small: var(--db-space-2);
16566
+ /* Icon/force-icon horizontal padding: half the standard horizontal padding. */
16567
+ --db-btn-padding-horizontal-icon: calc(var(--db-space-3) / 2); /* 6px */
16568
+ --db-btn-gap: var(--db-space-1);
16569
+ --db-btn-end-icon-gap: var(--db-space-2);
16570
+ --db-btn-end-icon-gap-small: var(--db-space-1);
16571
+ /* Width of a content-less button while loading, so the standalone spinner has room. */
16572
+ --db-btn-loading-empty-width: var(--db-size-10);
16573
+
16574
+ /* ── Shape ────────────────────────────────────────────────────────────── */
16575
+ --db-btn-border-radius: var(--db-shape-control);
16576
+
16577
+ /* ── Typography ───────────────────────────────────────────────────────── */
16578
+ --db-btn-font-size: var(--db-font-size-base);
16579
+ --db-btn-icon-only-font-size: var(--db-font-size-lg); /* 15px */
16580
+ --db-btn-font-weight: var(--db-font-weight-normal);
16581
+ /* Line heights are hard-coded until the typography scale ships computed per-level line-height tokens. */
16582
+ --db-btn-line-height: 1.25rem; /* 20px */
16583
+ --db-btn-line-height-small: 1rem; /* 16px */
16584
+
16585
+ /* ── Color: semantic set (defaults = secondary variant) ───────────────── */
16586
+ --db-btn-surface: var(--db-color-action-default-background-default);
16587
+ --db-btn-surface-hover: var(--db-color-action-default-background-hover);
16588
+ --db-btn-surface-active: var(--db-color-action-default-background-press);
16589
+ --db-btn-surface-disabled: transparent;
16590
+ --db-btn-border: var(--db-color-action-default-border-default);
16591
+ --db-btn-border-hover: var(--db-color-action-default-border-hover);
16592
+ --db-btn-border-active: var(--db-color-action-default-border-press);
16593
+ --db-btn-border-disabled: var(--db-color-action-disabled-border);
16594
+ --db-btn-text: var(--db-color-action-default-text-default);
16595
+ --db-btn-text-hover: var(--db-color-action-default-text-hover);
16596
+ --db-btn-text-active: var(--db-color-action-default-text-press);
16597
+ --db-btn-text-disabled: var(--db-color-action-disabled-text);
16598
+
16599
+ /* ── Focus & icon ─────────────────────────────────────────────────────── */
16600
+ --db-btn-focus-ring: var(--db-color-action-default-border-focus);
16601
+ --db-btn-danger-focus-ring: var(--db-color-action-danger-primary-background-default);
16602
+ --db-btn-icon-glyph: var(--db-color-text-secondary);
16603
+ }
16604
+
16605
+ /* Native <Button> visual styles. Consumes the component-tier `--db-btn-*` tokens (see tokens.css);
16606
+ * the variant classes below re-set those tokens per variant and the rules that follow paint them.
16607
+ * Shipped via mortar.css. */
16608
+
16609
+ /* ── 0. Variant token re-sets ──────────────────────────────────────────────
16610
+ * Each variant class re-sets the semantic tokens declared in tokens.css; combined classes win by
16611
+ * specificity, which beats the `:where(:root)` (specificity 0) defaults regardless of file order. */
16612
+ /* Link is borderless and text-only, so its hover/press surface stays transparent. */
16613
+ /* Every danger button (icon included) disables to the filled treatment. */
16614
+ /* Danger, filled (primary): re-set only the surface; text/transparent border come from primary. */
16615
+ /* Danger, secondary/outlined. */
16616
+ /* Danger, tertiary/link: danger text everywhere, danger surface on hover/press; resting/disabled
16617
+ * surface stay the tertiary ghost (override the filled danger-disabled set above). */
16618
+ /* Icon-only renders as the ghost (tertiary) treatment regardless of variant; re-set the semantic set
16619
+ * so the icon-only rules paint from these component tokens. */
16620
+ /* Danger icon-only keeps the ghost resting surface (inherited above) but uses danger text and a
16621
+ * danger hover/press surface. */
16622
+
16623
+ /* ── 1. Base — paints the default (secondary) variant ────────────────────── */
16624
+
16625
+ /* ── 2. Padding ──────────────────────────────────────────────────────────── */
16626
+
16627
+ /* ── 3. Interactive states ───────────────────────────────────────────────── */
16628
+
16629
+ /* ── 4. Focus ────────────────────────────────────────────────────────────── */
16630
+
16631
+ /* ── 5. Small / block (full-width) / empty ────────────────────────────────── */
16632
+
16633
+ /* ── 6. Tertiary & link ──────────────────────────────────────────────────── */
16634
+ /* Re-declare the text color for a non-icon-only tertiary/link at two-class weight so a plain
16635
+ * call-site `color` override loses; an icon-only glyph stays at base weight so its override wins. */
16636
+ /* Keep the resting border at two-class weight (parity with the shielded border-color). */
16637
+
16638
+ /* ── 7. Danger ───────────────────────────────────────────────────────────── */
16639
+
16640
+ /* ── 8. Icon-only ────────────────────────────────────────────────────────── */
16641
+ /* `:where()` keeps this at (0,1,0) so a call-site `css` width override wins, as it does for `height`. */
16642
+ /* `:where()` on the exclusion holds this at (0,2,0): enough to tint an un-overridden icon-only link
16643
+ * over the base color, while still letting a consumer's own icon-color override win on source order. */
16644
+
16645
+ /* ── 9. Disabled — base rules paint the per-variant `*-disabled` tokens (see tokens.css) ──────── */
16646
+ /* Empty disabled buttons keep a transparent border (set elsewhere), so exclude them.
16647
+ * `:where()` on the exclusion holds this at (0,2,0): enough to beat the base border, while still
16648
+ * letting a consumer's own `[disabled]` border override win on source order. */
16649
+
16650
+ /* ── 10. Icon & content layout ───────────────────────────────────────────── */
16651
+ /* The leading icon renders unwrapped as the button's direct `.anticon` child (see NativeButton.tsx),
16652
+ * so `> .anticon` targets only a real icon glyph — a non-glyph `icon` (e.g. a Spinner) keeps its own
16653
+ * sizing — and out-specifies AntD's runtime-injected global `.anticon` rule. */
16654
+
16655
+ /* ── 11. Loading ─────────────────────────────────────────────────────────── */
16656
+
16657
+ /* ── 12. dangerouslySetForceIconStyles ───────────────────────────────────── */
16658
+
16659
+
16461
16660
  :where(.du-bois-dark) {
16462
16661
  /* Shape */
16463
16662
  --db-checkbox-border-radius: var(--db-selection-toggle-border-radius);
@@ -16466,15 +16665,15 @@ span.du-bois-dark-typography-ellipsis-single-line {
16466
16665
  /* Color */
16467
16666
  --db-checkbox-surface: var(--db-selection-toggle-surface);
16468
16667
  --db-checkbox-surface-hover: var(--db-color-action-default-background-hover);
16469
- --db-checkbox-surface-press: var(--db-color-action-default-background-press);
16668
+ --db-checkbox-surface-active: var(--db-color-action-default-background-press);
16470
16669
  --db-checkbox-surface-checked: var(--db-selection-toggle-surface-checked);
16471
16670
  --db-checkbox-surface-checked-hover: var(--db-selection-toggle-surface-checked-hover);
16472
- --db-checkbox-surface-checked-press: var(--db-selection-toggle-surface-checked-press);
16671
+ --db-checkbox-surface-checked-active: var(--db-selection-toggle-surface-checked-active);
16473
16672
  --db-checkbox-surface-disabled: var(--db-selection-toggle-surface-disabled);
16474
16673
 
16475
16674
  --db-checkbox-border: var(--db-color-action-default-border-default);
16476
16675
  --db-checkbox-border-hover: var(--db-selection-toggle-border-hover);
16477
- --db-checkbox-border-press: var(--db-selection-toggle-border-press);
16676
+ --db-checkbox-border-active: var(--db-selection-toggle-border-active);
16478
16677
  --db-checkbox-focus-ring: var(--db-focus-ring-color);
16479
16678
  --db-checkbox-border-disabled: var(--db-color-action-disabled-border);
16480
16679
 
@@ -16489,8 +16688,8 @@ span.du-bois-dark-typography-ellipsis-single-line {
16489
16688
  --db-checkbox-size: var(--db-selection-toggle-size);
16490
16689
  --db-checkbox-label-spacing: var(--db-selection-toggle-label-spacing);
16491
16690
  --db-checkbox-focus-ring-width: var(--db-focus-ring-width);
16492
- --db-checkbox-indeterminate-mark-width: var(--db-size-2xs); /* 8px */
16493
- --db-checkbox-indeterminate-mark-height: calc(var(--db-size-3xs) * 0.75); /* 3px */
16691
+ --db-checkbox-indeterminate-mark-width: var(--db-size-2); /* 8px */
16692
+ --db-checkbox-indeterminate-mark-height: calc(var(--db-size-1) * 0.75); /* 3px */
16494
16693
 
16495
16694
  /* Motion */
16496
16695
  --db-checkbox-transition-duration: var(--db-selection-toggle-transition-duration);
@@ -16571,7 +16770,7 @@ span.du-bois-dark-typography-ellipsis-single-line {
16571
16770
  * vertical margin Hint/FormMessage carry. */
16572
16771
 
16573
16772
  /* Group spacing against sibling form text — 8px gap above the group when it
16574
- * follows a Hint, 8px gap above a FormMessage when it follows the group.
16773
+ * follows a Label or Hint, 8px gap above a FormMessage when it follows the group.
16575
16774
  * Doubled class on the group side beats FormMessage's `&&` for the same reason. */
16576
16775
 
16577
16776
  /* CheckboxGroup layout. Vertical delegates to the `.db-stack` primitive; the
@@ -16585,6 +16784,162 @@ span.du-bois-dark-typography-ellipsis-single-line {
16585
16784
 
16586
16785
  /* Vertical: .db-stack supplies flex-direction + gap; we only retarget the knob. */
16587
16786
 
16787
+
16788
+
16789
+ :where(.du-bois-dark) {
16790
+ /* Density */
16791
+ --db-drawer-padding-horizontal: var(--db-space-6);
16792
+ --db-drawer-padding-horizontal-small: var(--db-space-4);
16793
+ --db-drawer-content-padding-top: var(--db-space-4);
16794
+ --db-drawer-content-padding-top-small: var(--db-space-2);
16795
+ --db-drawer-footer-padding-top: var(--db-space-4);
16796
+ --db-drawer-footer-padding-bottom: var(--db-space-6);
16797
+ --db-drawer-footer-padding-bottom-small: var(--db-space-4);
16798
+ --db-drawer-title-margin-bottom: var(--db-space-2);
16799
+ --db-drawer-close-button-margin: var(--db-space-1);
16800
+
16801
+ /* Color */
16802
+ --db-drawer-surface: var(--db-surface-base);
16803
+ --db-drawer-text: var(--db-text-base);
16804
+ --db-drawer-border: var(--db-border-base);
16805
+ /* No v2 token holds the drawer scrim yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16806
+ --db-drawer-overlay: var(--db-color-overlay-overlay);
16807
+ }
16808
+
16809
+ :where(.du-bois-dark) {
16810
+ /* Elevation */
16811
+ /* No v2 token holds the dark drawer elevation yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16812
+ --db-drawer-shadow: 0px 8px 40px 0px rgba(0, 0, 0, 0.87);
16813
+ }
16814
+
16815
+
16816
+
16817
+
16818
+
16819
+
16820
+
16821
+
16822
+
16823
+
16824
+ /* Component tokens for the native Icon. */
16825
+ :where(.du-bois-dark) {
16826
+ --db-icon-size: var(--db-font-size-xl);
16827
+ --db-icon-color-danger: var(--db-color-text-validation-danger);
16828
+ --db-icon-color-warning: var(--db-color-text-validation-warning);
16829
+ --db-icon-color-success: var(--db-color-text-validation-success);
16830
+ --db-icon-ai-gradient-start: var(--db-ai-gradient-start);
16831
+ --db-icon-ai-gradient-mid: var(--db-ai-gradient-mid);
16832
+ --db-icon-ai-gradient-end: var(--db-ai-gradient-end);
16833
+ }
16834
+
16835
+ /* Native Icon styles. Ships through mortar.css and reads only component-tier --db-icon-* tokens.
16836
+ * Icon size is driven solely by the `--db-icon-size` design token: to resize an icon, set that
16837
+ * token in scope (default 16px in tokens.css) rather than overriding `font-size`. */
16838
+
16839
+ /* TODO: remove once clickable-icon callsites are gone. Kept for backwards compatibility with the
16840
+ * AntD icon, which made icons clickable via onClick; some callsites still rely on it. Actual icons
16841
+ * should never carry a tabindex — a clickable icon belongs inside a button. */
16842
+
16843
+ /* Semantic colors set `color` only; the SVG glyph paints its `fill`/`stroke` from `currentColor`,
16844
+ * so setting the text color recolors the icon. */
16845
+
16846
+ @keyframes db-icon-loading-circle {
16847
+ 100% {
16848
+ transform: rotate(360deg);
16849
+ }
16850
+ }
16851
+
16852
+
16853
+
16854
+
16855
+ :where(.du-bois-dark) {
16856
+ /* Shape */
16857
+ /* Must not scale with density; no non-scaling system token holds it. TODO(FEINF-6505): adopt a v2 system token when one is added. */
16858
+ --db-navigation-menu-indicator-thickness: 4px;
16859
+ /* No system token holds this control-specific inset. TODO(FEINF-6505): adopt a v2 system token when one is added. */
16860
+ --db-navigation-menu-focus-ring-offset: -1px;
16861
+
16862
+ /* Color */
16863
+ --db-navigation-menu-indicator: var(--db-accent-surface);
16864
+ --db-navigation-menu-focus-ring: var(--db-focus-ring-color);
16865
+ --db-navigation-menu-text: var(--db-text-subtle);
16866
+ --db-navigation-menu-text-selected: var(--db-text-base);
16867
+ /* No v2 semantic for default-action link text yet; bridges on the v1 --db-color-* token. */
16868
+ --db-navigation-menu-text-hover: var(--db-color-action-default-text-hover);
16869
+ --db-navigation-menu-text-active: var(--db-color-action-default-text-press);
16870
+
16871
+ /* Density */
16872
+ --db-navigation-menu-item-height: var(--db-size-8);
16873
+ --db-navigation-menu-item-min-width: var(--db-size-6);
16874
+ --db-navigation-menu-link-padding-top: var(--db-space-1);
16875
+ --db-navigation-menu-link-padding-bottom: var(--db-space-2);
16876
+ --db-navigation-menu-focus-ring-width: var(--db-focus-ring-width);
16877
+ }
16878
+
16879
+
16880
+ :where(.du-bois-dark) {
16881
+ /* Color */
16882
+ /* No v2 token holds tertiary action-text states yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16883
+ --db-overflow-trigger-text: var(--db-color-action-tertiary-text-default);
16884
+ --db-overflow-trigger-text-hover: var(--db-color-action-tertiary-text-hover);
16885
+ --db-overflow-trigger-text-press: var(--db-color-action-tertiary-text-press);
16886
+
16887
+ /* Density */
16888
+ --db-overflow-spacing: var(--db-space-2);
16889
+ --db-overflow-menu-spacing: var(--db-space-1);
16890
+ }
16891
+
16892
+
16893
+
16894
+ /* Popover is a neutral-card member of the popup family: surface, text, border, and radius come
16895
+ * from --db-popup-*. Link, focus, and spacing are popover-specific and reference system tokens
16896
+ * directly. The popup elevation scale is light-only, so the dark shadow is re-declared below. */
16897
+
16898
+ :where(.du-bois-dark) {
16899
+ /* Shape */
16900
+ --db-popover-border-radius: var(--db-popup-border-radius);
16901
+
16902
+ /* Color */
16903
+ --db-popover-surface: var(--db-popup-surface);
16904
+ --db-popover-text: var(--db-popup-text);
16905
+ --db-popover-border: var(--db-popup-border);
16906
+ /* No v2 token holds the tertiary link text yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16907
+ --db-popover-link-text: var(--db-color-action-tertiary-text-default);
16908
+ --db-popover-link-text-hover: var(--db-color-action-tertiary-text-hover);
16909
+ --db-popover-focus-ring: var(--db-focus-ring-color);
16910
+
16911
+ /* Density */
16912
+ --db-popover-spacing: var(--db-space-2);
16913
+ --db-popover-focus-ring-width: var(--db-focus-ring-width);
16914
+
16915
+ /* Elevation */
16916
+ --db-popover-shadow: var(--db-popup-elevation);
16917
+ }
16918
+
16919
+ :where(.du-bois-dark) {
16920
+ /* No v2 token holds the dark-scope popover elevation shadow yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16921
+ --db-popover-shadow: 0px 2px 16px 0px rgba(0, 0, 0, 0.61);
16922
+ }
16923
+
16924
+
16925
+ /* Declared under the theme classes too (not just :root) so the var() chain re-resolves inside a
16926
+ * `.du-bois-dark` subtree instead of freezing at the light values. */
16927
+ :where(.du-bois-dark) {
16928
+ /* Shape */
16929
+ --db-progress-border-radius: var(--db-shape-pill);
16930
+
16931
+ /* Color */
16932
+ --db-progress-track: var(--db-color-progress-track);
16933
+ --db-progress-fill: var(--db-color-progress-fill);
16934
+
16935
+ /* Density */
16936
+ --db-progress-size: var(--db-size-2);
16937
+
16938
+ /* Motion */
16939
+ /* No v2 motion token holds this duration. TODO(FEINF-6505): adopt a v2 motion token when one is added. */
16940
+ --db-progress-transition-duration: 300ms;
16941
+ }
16942
+
16588
16943
  :where(.du-bois-dark) {
16589
16944
  /* Shape */
16590
16945
  --db-radio-border-radius: var(--db-radius-full);
@@ -16593,19 +16948,19 @@ span.du-bois-dark-typography-ellipsis-single-line {
16593
16948
  /* Color */
16594
16949
  --db-radio-surface: var(--db-selection-toggle-surface);
16595
16950
  --db-radio-surface-hover: var(--db-color-action-default-background-hover);
16596
- --db-radio-surface-press: var(--db-color-action-default-background-press);
16951
+ --db-radio-surface-active: var(--db-color-action-default-background-press);
16597
16952
  --db-radio-surface-checked: var(--db-selection-toggle-surface-checked);
16598
16953
  --db-radio-surface-checked-hover: var(--db-selection-toggle-surface-checked-hover);
16599
- --db-radio-surface-checked-press: var(--db-color-action-default-background-press);
16954
+ --db-radio-surface-checked-active: var(--db-color-action-default-background-press);
16600
16955
  --db-radio-surface-disabled: var(--db-selection-toggle-surface-disabled);
16601
16956
 
16602
16957
  --db-radio-border: var(--db-color-action-default-border-default);
16603
16958
  --db-radio-border-hover: var(--db-selection-toggle-border-hover);
16604
- --db-radio-border-press: var(--db-selection-toggle-border-press);
16959
+ --db-radio-border-active: var(--db-selection-toggle-border-active);
16605
16960
  --db-radio-border-focus: var(--db-focus-ring-color);
16606
16961
  --db-radio-border-disabled: var(--db-color-action-disabled-border);
16607
- --db-radio-border-checked-hover: var(--db-selection-toggle-border-press);
16608
- --db-radio-border-checked-press: var(--db-color-action-default-border-press);
16962
+ --db-radio-border-checked-hover: var(--db-selection-toggle-border-active);
16963
+ --db-radio-border-checked-active: var(--db-color-action-default-border-press);
16609
16964
  --db-radio-border-unchecked-focus: var(--db-color-action-primary-background-default);
16610
16965
  --db-radio-outline-checked-focus: var(--db-color-action-primary-background-default);
16611
16966
 
@@ -16617,7 +16972,7 @@ span.du-bois-dark-typography-ellipsis-single-line {
16617
16972
  /* Density */
16618
16973
  --db-radio-size: var(--db-selection-toggle-size);
16619
16974
  --db-radio-label-spacing: var(--db-selection-toggle-label-spacing);
16620
- --db-radio-mark-size: var(--db-size-3xs);
16975
+ --db-radio-mark-size: var(--db-size-1);
16621
16976
 
16622
16977
  /* Motion */
16623
16978
  --db-radio-transition-duration: var(--db-selection-toggle-transition-duration);
@@ -16753,6 +17108,76 @@ span.du-bois-dark-typography-ellipsis-single-line {
16753
17108
  /* AntD `&& + form-message { marginTop: sm }` (horizontal): a form-message following
16754
17109
  * the whole group is separated by sm. */
16755
17110
 
17111
+
17112
+
17113
+
17114
+
17115
+ :where(.du-bois-dark) {
17116
+ /* Shape */
17117
+ --db-slider-border-radius: var(--db-shape-pill);
17118
+
17119
+ /* Color */
17120
+ /* No v2 token holds the track + disabled-range surface yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17121
+ --db-slider-track-surface: #e8ecf0;
17122
+ --db-slider-range-surface-disabled: #e8ecf0;
17123
+ /* No v2 token holds the range fill yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17124
+ --db-slider-range-surface: #2272b4;
17125
+
17126
+ --db-slider-thumb-surface: var(--db-accent-surface);
17127
+ --db-slider-thumb-surface-hover: var(--db-accent-surface-hover);
17128
+ --db-slider-thumb-surface-press: var(--db-accent-surface-active);
17129
+ /* No v2 token holds the disabled thumb yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17130
+ --db-slider-thumb-surface-disabled: #d1d9e1;
17131
+
17132
+ /* Density */
17133
+ --db-slider-size: var(--db-size-5); /* 20px */
17134
+ --db-slider-thumb-size: var(--db-size-5); /* 20px */
17135
+ --db-slider-track-thickness: calc(var(--db-size-1) * 0.75); /* 3px */
17136
+ }
17137
+
17138
+ :where(.du-bois-dark) {
17139
+ /* Shape */
17140
+ /* TODO(FEINF-6505): adopt --db-shape-container-* once a 4px container radius exists; kept on --db-radius-sm to preserve 4px. */
17141
+ --db-snackbar-border-radius: var(--db-radius-sm);
17142
+
17143
+ /* Density */
17144
+ --db-snackbar-spacing-vertical: var(--db-space-3);
17145
+ --db-snackbar-spacing-horizontal: var(--db-space-4);
17146
+ --db-snackbar-close-button-spacing: var(--db-space-2);
17147
+
17148
+ /* Color */
17149
+ /* No v1/v2 system token holds this theme-invariant white. TODO(FEINF-6505): adopt a v2 system token when one is added. */
17150
+ --db-snackbar-text: #ffffff;
17151
+ /* No v1/v2 system token holds these theme-invariant close-icon colors. TODO(FEINF-6505): adopt a v2 system token when one is added. */
17152
+ --db-snackbar-close-icon: #e8ecf0;
17153
+ --db-snackbar-close-icon-hover: #8acaff;
17154
+ --db-snackbar-close-icon-active: #bae1fc;
17155
+ }
17156
+
17157
+ :where(.du-bois-dark) {
17158
+ /* Color */
17159
+ /* No v1/v2 system token holds this light/dark surface pair. TODO(FEINF-6505): adopt a v2 system token when one is added. */
17160
+ --db-snackbar-surface: #445461;
17161
+
17162
+ /* Elevation */
17163
+ /* No v1/v2 system token holds this dark shadow; --db-elevation-med is theme-invariant (light). TODO(FEINF-6505): adopt a v2 system token when one is added. */
17164
+ --db-snackbar-shadow: 0px 2px 16px 0px rgba(0, 0, 0, 0.61);
17165
+ }
17166
+
17167
+ /* Spacer's height is a spacing step. The size prop (xs/sm/mid/md/lg) selects one component token,
17168
+ * each aliasing the system space scale — theme-invariant, so a single block (no light/dark split). */
17169
+
17170
+ :where(.du-bois-dark) {
17171
+ /* Density */
17172
+ --db-spacer-size-xs: var(--db-space-1); /* 4px */
17173
+ --db-spacer-size-sm: var(--db-space-2); /* 8px */
17174
+ --db-spacer-size-mid: var(--db-space-3); /* 12px */
17175
+ --db-spacer-size-md: var(--db-space-4); /* 16px */
17176
+ --db-spacer-size-lg: var(--db-space-6); /* 24px */
17177
+ }
17178
+
17179
+
17180
+
16756
17181
  :where(.du-bois-dark) {
16757
17182
  /* Shape */
16758
17183
  --db-switch-border-radius: var(--db-radius-full);
@@ -16761,20 +17186,20 @@ span.du-bois-dark-typography-ellipsis-single-line {
16761
17186
  /* Color */
16762
17187
  --db-switch-surface: var(--db-selection-toggle-surface);
16763
17188
  --db-switch-surface-hover: var(--db-color-action-default-background-hover);
16764
- --db-switch-surface-press: var(--db-color-action-default-background-press);
17189
+ --db-switch-surface-active: var(--db-color-action-default-background-press);
16765
17190
  --db-switch-surface-checked: var(--db-selection-toggle-surface-checked);
16766
17191
  --db-switch-surface-checked-hover: var(--db-selection-toggle-surface-checked-hover);
16767
- --db-switch-surface-checked-press: var(--db-selection-toggle-surface-checked-press);
17192
+ --db-switch-surface-checked-active: var(--db-selection-toggle-surface-checked-active);
16768
17193
  --db-switch-surface-disabled: var(--db-selection-toggle-surface-disabled);
16769
17194
  --db-switch-surface-checked-disabled: var(--db-color-action-disabled-text);
16770
17195
 
16771
17196
  --db-switch-border: var(--db-color-action-default-border-default);
16772
17197
  --db-switch-border-hover: var(--db-selection-toggle-border-hover);
16773
- --db-switch-border-press: var(--db-selection-toggle-border-press);
17198
+ --db-switch-border-active: var(--db-selection-toggle-border-active);
16774
17199
  --db-switch-border-disabled: var(--db-color-action-disabled-border);
16775
17200
  --db-switch-border-checked: var(--db-selection-toggle-surface-checked);
16776
17201
  --db-switch-border-checked-hover: var(--db-selection-toggle-surface-checked-hover);
16777
- --db-switch-border-checked-press: var(--db-selection-toggle-surface-checked-press);
17202
+ --db-switch-border-checked-active: var(--db-selection-toggle-surface-checked-active);
16778
17203
  --db-switch-border-focus: var(--db-selection-toggle-surface-checked);
16779
17204
 
16780
17205
  --db-switch-thumb: var(--db-selection-toggle-surface);
@@ -16783,8 +17208,8 @@ span.du-bois-dark-typography-ellipsis-single-line {
16783
17208
  --db-switch-text-disabled: var(--db-selection-toggle-text-disabled);
16784
17209
 
16785
17210
  /* Density */
16786
- --db-switch-track-width: calc(var(--db-size-xs) * 1.75); /* 28px */
16787
- --db-switch-track-height: var(--db-size-xs); /* 16px */
17211
+ --db-switch-track-width: calc(var(--db-size-4) * 1.75); /* 28px */
17212
+ --db-switch-track-height: var(--db-size-4); /* 16px */
16788
17213
  --db-switch-thumb-size: var(--db-switch-track-height);
16789
17214
  --db-switch-label-spacing: var(--db-selection-toggle-label-spacing);
16790
17215
 
@@ -16811,4 +17236,114 @@ span.du-bois-dark-typography-ellipsis-single-line {
16811
17236
  /* Target the <Label>'s class, not a bare `label` — that would also match the .db-switch root <label>. */
16812
17237
 
16813
17238
  /* Indent a following hint/message past the track. The class is doubled to out-specify FormMessage's
16814
- * own margin rule. */
17239
+ * own margin rule. Each rule's key (rightmost) selector is a single class, not a multi-item :is(),
17240
+ * so Chromium can hash-reject it instead of attempting the match against every element on every
17241
+ * recalc (the leading/middle :is() groups aren't the key selector, so they're left as-is). */
17242
+
17243
+ /* Component tokens for Tabs (no family). Re-declared under the theme classes, not only :root, so the
17244
+ * var() chain re-resolves inside a .du-bois-dark subtree instead of freezing at the light value. */
17245
+ :where(.du-bois-dark) {
17246
+ /* ── Density ──────────────────────────────────────────────────────────── */
17247
+ --db-tabs-height: var(--db-size-8);
17248
+ --db-tabs-trigger-min-width: var(--db-size-6);
17249
+ --db-tabs-trigger-min-width-closable: var(--db-size-10);
17250
+ --db-tabs-list-margin-bottom: var(--db-space-4);
17251
+ --db-tabs-trigger-gap: var(--db-space-4);
17252
+ --db-tabs-trigger-padding-top: var(--db-space-1);
17253
+ --db-tabs-trigger-padding-bottom: var(--db-space-2);
17254
+ --db-tabs-close-icon-gap: var(--db-space-1);
17255
+ --db-tabs-add-button-margin-top: var(--db-space-0-5);
17256
+ /* No 1.5-unit space step exists; synthesize 6px from the nearest. TODO: use a direct step if one lands. */
17257
+ --db-tabs-add-button-margin-bottom: calc(var(--db-space-1) * 1.5);
17258
+
17259
+ /* ── Shape ────────────────────────────────────────────────────────────── */
17260
+ --db-tabs-scrollbar-radius: var(--db-shape-control);
17261
+ --db-tabs-focus-ring-width: var(--db-focus-ring-width);
17262
+
17263
+ /* ── Typography ───────────────────────────────────────────────────────── */
17264
+ --db-tabs-font-size: var(--db-font-size-base);
17265
+ --db-tabs-font-weight: var(--db-font-weight-semibold);
17266
+ /* No v2 token holds the tab line-height yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17267
+ --db-tabs-line-height: 1.25rem;
17268
+
17269
+ /* ── Color ────────────────────────────────────────────────────────────── */
17270
+ /* No v2 token holds the tab text / hover / press / active / disabled colors yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17271
+ --db-tabs-text: var(--db-color-text-secondary);
17272
+ --db-tabs-text-hover: var(--db-color-action-default-text-hover);
17273
+ --db-tabs-text-press: var(--db-color-action-default-text-press);
17274
+ --db-tabs-text-active: var(--db-color-text-primary);
17275
+ --db-tabs-text-disabled: var(--db-color-action-disabled-text);
17276
+ /* No v2 token holds the tab panel content text color yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17277
+ --db-tabs-content-text: var(--db-color-text-primary);
17278
+ /* No v2 token holds the active-tab underline yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17279
+ --db-tabs-indicator: var(--db-color-action-primary-background-default);
17280
+ /* No v2 token holds the list divider yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17281
+ --db-tabs-border: var(--db-color-action-default-border-default);
17282
+ /* No v2 token holds the focus ring color yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17283
+ --db-tabs-focus-ring: var(--db-color-action-default-border-focus);
17284
+ }
17285
+
17286
+ /* No v2 token holds the scrollbar thumb yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17287
+ :where(.du-bois-dark) {
17288
+ --db-tabs-scrollbar-thumb: rgba(255, 255, 255, 0.2);
17289
+ --db-tabs-scrollbar-thumb-hover: rgba(255, 255, 255, 0.3);
17290
+ }
17291
+
17292
+
17293
+
17294
+ :where(.du-bois-dark) {
17295
+ /* Shape */
17296
+ --db-toolbar-border-radius: var(--db-shape-control);
17297
+
17298
+ /* Color */
17299
+ --db-toolbar-surface: var(--db-surface-subtle);
17300
+ --db-toolbar-border: var(--db-border-base);
17301
+ --db-toolbar-separator-surface: var(--db-border-base);
17302
+ --db-toolbar-toggle-item-text: var(--db-text-base);
17303
+ /* No v2 token holds the toggle hover / press text yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17304
+ --db-toolbar-toggle-item-text-hover: var(--db-color-action-default-text-hover);
17305
+ --db-toolbar-toggle-item-text-press: var(--db-color-action-default-text-press);
17306
+ --db-toolbar-shadow: var(--db-elevation-med);
17307
+
17308
+ /* Density */
17309
+ --db-toolbar-gap: var(--db-space-4);
17310
+ --db-toolbar-spacing: var(--db-space-2);
17311
+ }
17312
+
17313
+ :where(.du-bois-dark) {
17314
+ /* No v2 token holds the dark-mode elevation shadow yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17315
+ --db-toolbar-shadow: 0px 2px 16px 0px rgba(0, 0, 0, 0.61);
17316
+ }
17317
+
17318
+ /* Tooltip renders an inverted surface (dark chip in light mode, light chip in dark mode), so it does
17319
+ * not draw from the popover family's neutral surface. Surface/text reference the v1 tooltip
17320
+ * primitives from tokens-groups until a v2 semantic exists. */
17321
+
17322
+ :where(.du-bois-dark) {
17323
+ /* Shape */
17324
+ --db-tooltip-border-radius: var(--db-radius-sm);
17325
+
17326
+ /* Density */
17327
+ --db-tooltip-spacing-vertical: var(--db-space-1);
17328
+ --db-tooltip-spacing-horizontal: var(--db-space-2);
17329
+
17330
+ /* Typography */
17331
+ --db-tooltip-font-size: var(--db-font-size-base);
17332
+ --db-tooltip-font-weight: var(--db-font-weight-normal);
17333
+ }
17334
+
17335
+ :where(.du-bois-dark) {
17336
+ /* Color */
17337
+ --db-tooltip-surface: var(--db-color-tooltip-background-tooltip);
17338
+ --db-tooltip-text: var(--db-color-tooltip-text-tooltip);
17339
+ /* Darker v1 blue primitives than light mode — the chip is light here, so links need contrast. */
17340
+ --db-tooltip-link-text: #2272b4; /* blue600 */
17341
+ --db-tooltip-link-text-hover: #0e538b; /* blue700 */
17342
+ --db-tooltip-link-text-active: #04355d; /* blue800 */
17343
+
17344
+ /* Elevation */
17345
+ /* v2 elevation tokens are theme-invariant, so --db-elevation-med would keep the light shadow here.
17346
+ * Hold the v1 dark shadow as a literal to avoid a regression until elevation gains a dark value. */
17347
+ --db-tooltip-shadow: 0px 2px 16px 0px rgba(0, 0, 0, 0.61);
17348
+ }
17349
+