@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
@@ -16115,113 +16115,145 @@ span.du-bois-dark-typography-ellipsis-single-line {
16115
16115
 
16116
16116
  :where(.du-bois-dark) {
16117
16117
  /* Neutral */
16118
- --db-neutral-surface: var(--db-color-background-primary);
16119
- --db-subtle-neutral-surface: var(--db-color-background-secondary);
16120
- --db-strong-neutral-surface: initial; /* TODO */
16118
+ --db-surface-base: var(--db-color-background-primary);
16119
+ --db-surface-subtle: var(--db-color-background-secondary);
16120
+ --db-surface-strong: initial; /* TODO */
16121
16121
 
16122
- --db-text-on-neutral-surface: var(--db-color-text-primary);
16123
- --db-subtle-text-on-neutral-surface: var(--db-color-text-secondary);
16124
- --db-strong-text-on-neutral-surface: initial; /* TODO */
16122
+ --db-surface-inverse: initial; /* TODO */
16123
+ --db-surface-active: var(--db-color-table-background-selected-default);
16124
+ --db-surface-hover: var(--db-color-table-background-unselected-hover);
16125
+ --db-surface-disabled: var(--db-color-action-disabled-background);
16125
16126
 
16126
- --db-neutral-border: var(--db-color-border);
16127
- --db-subtle-neutral-border: initial; /* TODO */
16128
- --db-strong-neutral-border: var(--db-color-border-accessible);
16127
+ --db-surface-selected: var(--db-color-table-background-selected-hover);
16128
+ --db-surface-selected-hover: initial; /* TODO */;
16129
+ --db-surface-selected-active: var(--db-color-table-background-selected-hover); /* no distinct active value */
16129
16130
 
16130
- --db-neutral-surface-active: var(--db-color-table-background-selected-default);
16131
- --db-neutral-surface-hover: var(--db-color-table-background-unselected-hover);
16132
- --db-neutral-surface-pressed: var(--db-color-table-background-selected-hover);
16133
- --db-neutral-surface-disabled: var(--db-color-action-disabled-background);
16134
- --db-text-on-neutral-surface-disabled: var(--db-color-action-disabled-text);
16131
+ /* Surface alpha-blending modifiers */
16132
+ --db-surface-backdrop: initial; /* TODO */;
16133
+ /* TODO: surface-tint for containers that distinguish some content */
16135
16134
 
16136
- /* Primary */
16137
- --db-primary-surface: var(--db-color-action-primary-background-default);
16138
- --db-subtle-primary-surface: var(--db-color-action-default-background-hover);
16139
- --db-strong-primary-surface: var(--db-color-action-primary-background-hover);
16135
+ --db-text-base: var(--db-color-text-primary);
16136
+ --db-text-subtle: var(--db-color-text-secondary);
16137
+ --db-text-strong: initial; /* TODO */
16138
+ --db-text-disabled: var(--db-color-action-disabled-text);
16139
+ --db-text-suggestion: initial; /* TODO - e.g. input placeholder, loading text */
16140
+ --db-text-inverse: initial; /* TODO, stark contrast e.g. tooltip text */
16140
16141
 
16141
- --db-text-on-primary-surface: var(--db-color-action-primary-text-default);
16142
- --db-primary-text-on-neutral-surface: var(--db-color-action-link-default);
16143
- --db-subtle-text-on-primary-surface: initial; /* TODO */
16144
- --db-strong-text-on-primary-surface: var(--db-color-action-primary-text-default);
16142
+ --db-border-base: var(--db-color-border);
16143
+ --db-border-subtle: initial; /* TODO */
16144
+ --db-border-strong: var(--db-color-border-accessible);
16145
+ --db-border-hover: initial; /* TODO */
16146
+ --db-border-active: initial; /* TODO */
16147
+ --db-border-disabled: initial; /* TODO */
16145
16148
 
16146
- --db-primary-border: var(--db-color-action-primary-background-default);
16147
- --db-subtle-primary-border: initial; /* TODO */
16148
- --db-strong-primary-border: var(--db-color-action-primary-background-press);
16149
+ /* Accent */
16150
+ --db-accent-surface: var(--db-color-action-primary-background-default);
16151
+ --db-accent-surface-subtle: var(--db-color-action-default-background-hover);
16152
+ --db-accent-surface-strong: var(--db-color-action-primary-background-hover);
16149
16153
 
16150
- --db-primary-surface-active: initial; /* TODO */
16151
- --db-primary-surface-hover: var(--db-color-action-primary-background-hover);
16152
- --db-primary-surface-pressed: var(--db-color-action-primary-background-press);
16153
- --db-primary-surface-disabled: var(--db-color-action-disabled-background);
16154
- --db-text-on-primary-surface-disabled: var(--db-color-action-disabled-text);
16154
+ --db-accent-surface-hover: var(--db-color-action-primary-background-hover);
16155
+ --db-accent-surface-active: var(--db-color-action-primary-background-press); /* no distinct active value */
16156
+ --db-accent-surface-selected: var(--db-color-action-primary-background-press);
16155
16157
 
16156
- /* Error */
16157
- --db-error-surface: var(--db-color-action-danger-primary-background-default);
16158
- --db-subtle-error-surface: var(--db-color-background-danger);
16159
- --db-strong-error-surface: var(--db-color-action-danger-primary-background-hover);
16158
+ /* In the current design, the text color for an accent surface does not change with hover, active, etc. */
16159
+ --db-accent-text: var(--db-color-action-link-default);
16160
+ --db-text-on-accent-surface: var(--db-color-action-primary-text-default);
16160
16161
 
16161
- --db-text-on-error-surface: var(--db-color-action-danger-primary-text);
16162
- --db-error-text-on-neutral-surface: var(--db-color-text-validation-danger);
16163
- --db-subtle-text-on-error-surface: initial; /* TODO */
16164
- --db-strong-text-on-error-surface: var(--db-color-action-danger-primary-text);
16162
+ --db-accent-border: var(--db-color-action-primary-background-default);
16163
+ --db-accent-border-hover: var(--db-color-action-primary-background-press);
16164
+ --db-accent-border-active: initial; /* TODO */;
16165
16165
 
16166
- --db-error-border: var(--db-color-action-danger-default-border-default);
16167
- --db-subtle-error-border: var(--db-color-border-danger);
16168
- --db-strong-error-border: var(--db-color-action-danger-primary-background-press);
16166
+ /* Negative */
16167
+ --db-negative-surface: var(--db-color-action-danger-primary-background-default);
16168
+ --db-negative-surface-subtle: var(--db-color-background-danger);
16169
+ --db-negative-surface-strong: var(--db-color-action-danger-primary-background-hover);
16169
16170
 
16170
- --db-error-surface-active: initial; /* TODO */
16171
- --db-error-surface-hover: var(--db-color-action-danger-primary-background-hover);
16172
- --db-error-surface-pressed: var(--db-color-action-danger-primary-background-press);
16173
- --db-error-surface-disabled: var(--db-color-action-disabled-background);
16174
- --db-text-on-error-surface-disabled: var(--db-color-action-disabled-text);
16171
+ --db-negative-surface-hover: var(--db-color-action-danger-primary-background-hover);
16172
+ --db-negative-surface-active: var(--db-color-action-danger-primary-background-press); /* no distinct active value */
16173
+ --db-negative-surface-selected: var(--db-color-action-danger-primary-background-press);
16175
16174
 
16176
- /* Warning */
16177
- --db-warning-surface: initial; /* TODO */
16178
- --db-subtle-warning-surface: var(--db-color-background-warning);
16175
+ --db-negative-text: var(--db-color-text-validation-danger);
16176
+ --db-text-on-negative-surface: var(--db-color-action-danger-primary-text);
16179
16177
 
16180
- --db-text-on-warning-surface: initial; /* TODO */
16181
- --db-warning-text-on-neutral-surface: var(--db-color-text-validation-warning);
16178
+ --db-negative-border: var(--db-color-action-danger-default-border-default);
16179
+ --db-negative-border-hover: initial; /* TODO */
16180
+ --db-negative-border-active: initial; /* TODO */
16182
16181
 
16183
- --db-warning-border: var(--db-color-border-warning);
16182
+ /* Caution */
16183
+ --db-caution-surface: initial; /* TODO */
16184
+ --db-caution-surface-subtle: var(--db-color-background-warning);
16185
+ --db-caution-surface-strong: initial; /* TODO */
16184
16186
 
16185
- /* Success */
16186
- --db-success-surface: initial; /* TODO */
16187
- --db-subtle-success-surface: var(--db-color-background-success);
16187
+ --db-caution-surface-hover: initial; /* TODO */
16188
+ --db-caution-surface-active: initial; /* TODO */
16189
+ --db-caution-surface-selected: initial; /* TODO */
16188
16190
 
16189
- --db-text-on-success-surface: initial; /* TODO */
16190
- --db-success-text-on-neutral-surface: var(--db-color-text-validation-success);
16191
+ --db-caution-text: var(--db-color-text-validation-warning);
16192
+ --db-text-on-caution-surface: initial; /* TODO */
16191
16193
 
16192
- --db-success-border: initial; /* TODO */
16194
+ --db-caution-border: var(--db-color-border-warning);
16195
+ --db-caution-border-hover: initial; /* TODO */
16196
+ --db-caution-border-active: initial; /* TODO */
16197
+
16198
+ /* Positive */
16199
+ --db-positive-surface: initial; /* TODO */
16200
+ --db-positive-surface-subtle: var(--db-color-background-success);
16201
+ --db-positive-surface-strong: initial; /* TODO */
16202
+
16203
+ --db-positive-surface-hover: initial; /* TODO */
16204
+ --db-positive-surface-active: initial; /* TODO */
16205
+ --db-positive-surface-selected: initial; /* TODO */
16206
+
16207
+ --db-positive-text: var(--db-color-text-validation-success);
16208
+ --db-text-on-positive-surface: initial; /* TODO */
16209
+
16210
+ --db-positive-border: initial; /* TODO */
16211
+ --db-positive-border-hover: initial; /* TODO */
16212
+ --db-positive-border-active: initial; /* TODO */
16213
+
16214
+ /* Branded (theme-invariant — same values as light) */
16215
+ --db-ai-gradient-start: #4299e0;
16216
+ --db-ai-gradient-mid: #ca42e0;
16217
+ --db-ai-gradient-end: #ff5f46;
16193
16218
  }
16194
16219
 
16195
16220
  :where(.du-bois-dark) {
16196
16221
  --db-layout-unit: 0.25rem; /* 4px */
16197
16222
  --db-density-scalar: 1;
16198
16223
  --db-size-scalar: 1;
16199
- --db-spacing-scalar: 1;
16224
+ --db-space-scalar: 1;
16200
16225
 
16201
16226
  /* Size and spacing are the same steps, but with their own scalars included in the calc. */
16202
16227
 
16203
- --db-size-3xs: calc(var(--db-layout-unit) * 1 * var(--db-density-scalar) * var(--db-size-scalar)); /* 4px */
16204
- --db-size-2xs: calc(var(--db-layout-unit) * 2 * var(--db-density-scalar) * var(--db-size-scalar)); /* 8px */
16205
- --db-size-xs: calc(var(--db-layout-unit) * 4 * var(--db-density-scalar) * var(--db-size-scalar)); /* 16px */
16206
- --db-size-sm: calc(var(--db-layout-unit) * 6 * var(--db-density-scalar) * var(--db-size-scalar)); /* 24px */
16207
- --db-size-md: calc(var(--db-layout-unit) * 8 * var(--db-density-scalar) * var(--db-size-scalar)); /* 32px */
16208
- --db-size-lg: calc(var(--db-layout-unit) * 10 * var(--db-density-scalar) * var(--db-size-scalar)); /* 40px */
16228
+ --db-size-1: calc(var(--db-layout-unit) * 1 * var(--db-density-scalar) * var(--db-size-scalar)); /* 4px */
16229
+ --db-size-2: calc(var(--db-layout-unit) * 2 * var(--db-density-scalar) * var(--db-size-scalar)); /* 8px */
16230
+ --db-size-3: calc(var(--db-layout-unit) * 3 * var(--db-density-scalar) * var(--db-size-scalar)); /* 12px */
16231
+ --db-size-4: calc(var(--db-layout-unit) * 4 * var(--db-density-scalar) * var(--db-size-scalar)); /* 16px */
16232
+ --db-size-5: calc(var(--db-layout-unit) * 5 * var(--db-density-scalar) * var(--db-size-scalar)); /* 20px */
16233
+ --db-size-6: calc(var(--db-layout-unit) * 6 * var(--db-density-scalar) * var(--db-size-scalar)); /* 24px */
16234
+ --db-size-7: calc(var(--db-layout-unit) * 7 * var(--db-density-scalar) * var(--db-size-scalar)); /* 28px */
16235
+ --db-size-8: calc(var(--db-layout-unit) * 8 * var(--db-density-scalar) * var(--db-size-scalar)); /* 32px */
16236
+ --db-size-10: calc(var(--db-layout-unit) * 10 * var(--db-density-scalar) * var(--db-size-scalar)); /* 40px */
16237
+ --db-size-12: calc(var(--db-layout-unit) * 12 * var(--db-density-scalar) * var(--db-size-scalar)); /* 48px */
16209
16238
 
16210
- --db-spacing-3xs: calc(var(--db-layout-unit) * 1 * var(--db-density-scalar) * var(--db-spacing-scalar)); /* 4px */
16211
- --db-spacing-2xs: calc(var(--db-layout-unit) * 2 * var(--db-density-scalar) * var(--db-spacing-scalar)); /* 8px */
16212
- --db-spacing-xs: calc(var(--db-layout-unit) * 4 * var(--db-density-scalar) * var(--db-spacing-scalar)); /* 16px */
16213
- --db-spacing-sm: calc(var(--db-layout-unit) * 6 * var(--db-density-scalar) * var(--db-spacing-scalar)); /* 24px */
16214
- --db-spacing-md: calc(var(--db-layout-unit) * 8 * var(--db-density-scalar) * var(--db-spacing-scalar)); /* 32px */
16215
- --db-spacing-lg: calc(var(--db-layout-unit) * 10 * var(--db-density-scalar) * var(--db-spacing-scalar)); /* 40px */
16239
+ --db-space-0-5: calc(var(--db-layout-unit) * 0.5 * var(--db-density-scalar) * var(--db-space-scalar)); /* 2px */
16240
+ --db-space-1: calc(var(--db-layout-unit) * 1 * var(--db-density-scalar) * var(--db-space-scalar)); /* 4px */
16241
+ --db-space-2: calc(var(--db-layout-unit) * 2 * var(--db-density-scalar) * var(--db-space-scalar)); /* 8px */
16242
+ --db-space-3: calc(var(--db-layout-unit) * 3 * var(--db-density-scalar) * var(--db-space-scalar)); /* 12px */
16243
+ --db-space-4: calc(var(--db-layout-unit) * 4 * var(--db-density-scalar) * var(--db-space-scalar)); /* 16px */
16244
+ --db-space-6: calc(var(--db-layout-unit) * 6 * var(--db-density-scalar) * var(--db-space-scalar)); /* 24px */
16245
+ --db-space-8: calc(var(--db-layout-unit) * 8 * var(--db-density-scalar) * var(--db-space-scalar)); /* 32px */
16246
+ --db-space-10: calc(var(--db-layout-unit) * 10 * var(--db-density-scalar) * var(--db-space-scalar)); /* 40px */
16216
16247
  }
16217
16248
 
16218
16249
  :where(.du-bois-dark) {
16219
16250
  --db-font-family:
16220
16251
  "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
16252
+ --db-numeric-font-family: var(--db-font-family);
16221
16253
  --db-mono-font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
16222
16254
 
16223
- --db-font-size-2xs: 0.6875rem; /* 11px */
16224
- --db-font-size-xs: 0.75rem; /* 12px */
16255
+ --db-font-size-xs: 0.6875rem; /* 11px */
16256
+ --db-font-size-sm: 0.75rem; /* 12px */
16225
16257
  --db-font-size-base: 0.8125rem; /* 13px */
16226
16258
  --db-font-size-md: 0.875rem; /* 14px */
16227
16259
  --db-font-size-lg: 0.9375rem; /* 15px */
@@ -16230,6 +16262,8 @@ span.du-bois-dark-typography-ellipsis-single-line {
16230
16262
  --db-font-size-3xl: 1.5rem; /* 24px */
16231
16263
  --db-font-size-4xl: 2rem; /* 32px */
16232
16264
 
16265
+ /* TODO: media query for mobile font sizes */
16266
+
16233
16267
  /* Du Bois v1 ships 400 and 600 only */
16234
16268
  --db-font-weight-normal: 400;
16235
16269
  --db-font-weight-medium: initial; /* TODO */
@@ -16247,6 +16281,57 @@ span.du-bois-dark-typography-ellipsis-single-line {
16247
16281
  :where(.du-bois-dark) {
16248
16282
  --db-focus-ring-color: var(--db-color-action-default-border-focus);
16249
16283
  --db-focus-ring-width: 2px;
16284
+ --db-focus-ring-offset: 2px;
16285
+ }
16286
+
16287
+ :where(.du-bois-dark) {
16288
+ --db-shape-control: 4px;
16289
+ --db-shape-control-large: 999px;
16290
+ --db-shape-container-small: 8px;
16291
+ --db-shape-container-medium: 12px;
16292
+ --db-shape-container-large: 16px;
16293
+ --db-shape-pill: 999px;
16294
+ }
16295
+
16296
+ :where(.du-bois-dark) {
16297
+ /* Shape */
16298
+ /* Mirrors the ShapeTokens host-override var used by list items; falls back to the theme radius. */
16299
+ --db-list-item-border-radius: var(--list-item-border-radius, 4px);
16300
+
16301
+ /* Color */
16302
+ --db-list-surface: var(--db-surface-base);
16303
+ --db-list-text: var(--db-text-base);
16304
+ --db-list-header-text: var(--db-text-subtle);
16305
+ --db-list-separator: var(--db-border-subtle);
16306
+
16307
+ --db-list-item-surface-hover: var(--db-surface-hover);
16308
+ --db-list-item-surface-active: var(--db-surface-active);
16309
+ --db-list-item-surface-selected: var(--db-accent-surface-subtle);
16310
+ --db-list-item-surface-disabled: var(--db-surface-disabled);
16311
+
16312
+ --db-list-item-text-selected: var(--db-accent-text);
16313
+ --db-list-item-text-disabled: var(--db-text-disabled);
16314
+
16315
+ --db-list-item-danger-text: var(--db-negative-text);
16316
+ --db-list-item-danger-surface-hover: var(--db-negative-surface-subtle);
16317
+
16318
+ /* Density */
16319
+ --db-list-item-padding: var(--db-space-2);
16320
+ --db-list-item-height: var(--db-size-8);
16321
+ }
16322
+
16323
+ :where(.du-bois-dark) {
16324
+ /* Shape */
16325
+ /* Mirrors the ShapeTokens host-override var; falls back to the v1 value (borderRadiusSm). */
16326
+ --db-popup-border-radius: var(--popup-border-radius, 4px);
16327
+
16328
+ /* Color */
16329
+ --db-popup-surface: var(--db-surface-base);
16330
+ --db-popup-text: var(--db-text-base);
16331
+ --db-popup-border: var(--db-border-base);
16332
+
16333
+ /* Elevation */
16334
+ --db-popup-elevation: var(--db-elevation-med);
16250
16335
  }
16251
16336
 
16252
16337
  :where(.du-bois-dark) {
@@ -16254,36 +16339,150 @@ span.du-bois-dark-typography-ellipsis-single-line {
16254
16339
  --db-selection-toggle-border-radius: 4px;
16255
16340
 
16256
16341
  /* Color */
16257
- --db-selection-toggle-surface: var(--db-neutral-surface);
16258
- --db-selection-toggle-mark: var(--db-text-on-primary-surface);
16259
- --db-selection-toggle-text: var(--db-text-on-neutral-surface);
16260
- --db-selection-toggle-border: var(--db-strong-neutral-border);
16261
-
16262
- --db-selection-toggle-surface-hover: var(--db-neutral-surface-hover);
16263
- --db-selection-toggle-surface-press: var(--db-neutral-surface-pressed);
16264
- --db-selection-toggle-surface-checked: var(--db-primary-surface);
16265
- --db-selection-toggle-surface-checked-hover: var(--db-primary-surface-hover);
16266
- --db-selection-toggle-surface-checked-press: var(--db-primary-surface-pressed);
16267
- --db-selection-toggle-surface-disabled: var(--db-neutral-surface-disabled);
16268
- --db-selection-toggle-surface-checked-disabled: var(--db-neutral-surface-disabled);
16269
-
16270
- --db-selection-toggle-border-hover: var(--db-primary-surface-hover);
16271
- --db-selection-toggle-border-press: var(--db-primary-surface-pressed);
16272
- --db-selection-toggle-border-disabled: var(--db-neutral-border);
16273
-
16274
- --db-selection-toggle-mark-disabled: var(--db-text-on-neutral-surface-disabled);
16275
- --db-selection-toggle-text-disabled: var(--db-text-on-neutral-surface-disabled);
16342
+ --db-selection-toggle-surface: var(--db-surface-base);
16343
+ --db-selection-toggle-mark: var(--db-text-on-accent-surface);
16344
+ --db-selection-toggle-text: var(--db-text-base);
16345
+ --db-selection-toggle-border: var(--db-border-strong);
16346
+
16347
+ --db-selection-toggle-surface-hover: var(--db-surface-hover);
16348
+ --db-selection-toggle-surface-active: var(--db-surface-selected-active);
16349
+ --db-selection-toggle-surface-checked: var(--db-accent-surface);
16350
+ --db-selection-toggle-surface-checked-hover: var(--db-accent-surface-hover);
16351
+ --db-selection-toggle-surface-checked-active: var(--db-accent-surface-active);
16352
+ --db-selection-toggle-surface-disabled: var(--db-surface-disabled);
16353
+ --db-selection-toggle-surface-checked-disabled: var(--db-surface-disabled);
16354
+
16355
+ --db-selection-toggle-border-hover: var(--db-accent-surface-hover);
16356
+ --db-selection-toggle-border-active: var(--db-accent-surface-active);
16357
+ --db-selection-toggle-border-disabled: var(--db-border-base);
16358
+
16359
+ --db-selection-toggle-mark-disabled: var(--db-text-disabled);
16360
+ --db-selection-toggle-text-disabled: var(--db-text-disabled);
16276
16361
 
16277
16362
  --db-selection-toggle-shadow-checked: 0 0 0 1px var(--db-color-action-primary-background-default);
16278
16363
 
16279
16364
  /* Density */
16280
- --db-selection-toggle-size: var(--db-size-xs);
16281
- --db-selection-toggle-label-spacing: var(--db-spacing-2xs);
16365
+ --db-selection-toggle-size: var(--db-size-4);
16366
+ --db-selection-toggle-label-spacing: var(--db-space-2);
16282
16367
 
16283
16368
  /* Motion */
16284
16369
  --db-selection-toggle-transition-duration: 120ms;
16285
16370
  }
16286
16371
 
16372
+
16373
+
16374
+ /* Component-tier tokens for the native <Button>, grouped by area (density, shape, typography, color).
16375
+ * Colors alias the action-* system tokens; sizes alias the system density scale.
16376
+ *
16377
+ * Follows the mortar/action.css pattern: one semantic set (surface / border / text, each with
16378
+ * -hover / -active / -disabled) whose defaults are the secondary variant. The variant classes that
16379
+ * re-set these tokens per variant live in NativeButton.css; this file declares only tokens. */
16380
+
16381
+ /* Declared under the theme classes too (not just :root) so the var() chain re-resolves inside a
16382
+ * `.du-bois-dark` subtree (or a portal that re-applies the theme class) instead of freezing at the root values. */
16383
+ :where(.du-bois-dark) {
16384
+ /* ── Density ──────────────────────────────────────────────────────────── */
16385
+ --db-btn-height: var(--db-size-8);
16386
+ --db-btn-height-small: var(--db-size-6);
16387
+ --db-btn-icon-size: var(--db-size-4);
16388
+ --db-btn-border-width: 1px;
16389
+ --db-btn-padding-vertical: var(--db-space-1);
16390
+ --db-btn-padding-horizontal: var(--db-space-3);
16391
+ --db-btn-padding-horizontal-small: var(--db-space-2);
16392
+ /* Icon/force-icon horizontal padding: half the standard horizontal padding. */
16393
+ --db-btn-padding-horizontal-icon: calc(var(--db-space-3) / 2); /* 6px */
16394
+ --db-btn-gap: var(--db-space-1);
16395
+ --db-btn-end-icon-gap: var(--db-space-2);
16396
+ --db-btn-end-icon-gap-small: var(--db-space-1);
16397
+ /* Width of a content-less button while loading, so the standalone spinner has room. */
16398
+ --db-btn-loading-empty-width: var(--db-size-10);
16399
+
16400
+ /* ── Shape ────────────────────────────────────────────────────────────── */
16401
+ --db-btn-border-radius: var(--db-shape-control);
16402
+
16403
+ /* ── Typography ───────────────────────────────────────────────────────── */
16404
+ --db-btn-font-size: var(--db-font-size-base);
16405
+ --db-btn-icon-only-font-size: var(--db-font-size-lg); /* 15px */
16406
+ --db-btn-font-weight: var(--db-font-weight-normal);
16407
+ /* Line heights are hard-coded until the typography scale ships computed per-level line-height tokens. */
16408
+ --db-btn-line-height: 1.25rem; /* 20px */
16409
+ --db-btn-line-height-small: 1rem; /* 16px */
16410
+
16411
+ /* ── Color: semantic set (defaults = secondary variant) ───────────────── */
16412
+ --db-btn-surface: var(--db-color-action-default-background-default);
16413
+ --db-btn-surface-hover: var(--db-color-action-default-background-hover);
16414
+ --db-btn-surface-active: var(--db-color-action-default-background-press);
16415
+ --db-btn-surface-disabled: transparent;
16416
+ --db-btn-border: var(--db-color-action-default-border-default);
16417
+ --db-btn-border-hover: var(--db-color-action-default-border-hover);
16418
+ --db-btn-border-active: var(--db-color-action-default-border-press);
16419
+ --db-btn-border-disabled: var(--db-color-action-disabled-border);
16420
+ --db-btn-text: var(--db-color-action-default-text-default);
16421
+ --db-btn-text-hover: var(--db-color-action-default-text-hover);
16422
+ --db-btn-text-active: var(--db-color-action-default-text-press);
16423
+ --db-btn-text-disabled: var(--db-color-action-disabled-text);
16424
+
16425
+ /* ── Focus & icon ─────────────────────────────────────────────────────── */
16426
+ --db-btn-focus-ring: var(--db-color-action-default-border-focus);
16427
+ --db-btn-danger-focus-ring: var(--db-color-action-danger-primary-background-default);
16428
+ --db-btn-icon-glyph: var(--db-color-text-secondary);
16429
+ }
16430
+
16431
+ /* Native <Button> visual styles. Consumes the component-tier `--db-btn-*` tokens (see tokens.css);
16432
+ * the variant classes below re-set those tokens per variant and the rules that follow paint them.
16433
+ * Shipped via mortar.css. */
16434
+
16435
+ /* ── 0. Variant token re-sets ──────────────────────────────────────────────
16436
+ * Each variant class re-sets the semantic tokens declared in tokens.css; combined classes win by
16437
+ * specificity, which beats the `:where(:root)` (specificity 0) defaults regardless of file order. */
16438
+ /* Link is borderless and text-only, so its hover/press surface stays transparent. */
16439
+ /* Every danger button (icon included) disables to the filled treatment. */
16440
+ /* Danger, filled (primary): re-set only the surface; text/transparent border come from primary. */
16441
+ /* Danger, secondary/outlined. */
16442
+ /* Danger, tertiary/link: danger text everywhere, danger surface on hover/press; resting/disabled
16443
+ * surface stay the tertiary ghost (override the filled danger-disabled set above). */
16444
+ /* Icon-only renders as the ghost (tertiary) treatment regardless of variant; re-set the semantic set
16445
+ * so the icon-only rules paint from these component tokens. */
16446
+ /* Danger icon-only keeps the ghost resting surface (inherited above) but uses danger text and a
16447
+ * danger hover/press surface. */
16448
+
16449
+ /* ── 1. Base — paints the default (secondary) variant ────────────────────── */
16450
+
16451
+ /* ── 2. Padding ──────────────────────────────────────────────────────────── */
16452
+
16453
+ /* ── 3. Interactive states ───────────────────────────────────────────────── */
16454
+
16455
+ /* ── 4. Focus ────────────────────────────────────────────────────────────── */
16456
+
16457
+ /* ── 5. Small / block (full-width) / empty ────────────────────────────────── */
16458
+
16459
+ /* ── 6. Tertiary & link ──────────────────────────────────────────────────── */
16460
+ /* Re-declare the text color for a non-icon-only tertiary/link at two-class weight so a plain
16461
+ * call-site `color` override loses; an icon-only glyph stays at base weight so its override wins. */
16462
+ /* Keep the resting border at two-class weight (parity with the shielded border-color). */
16463
+
16464
+ /* ── 7. Danger ───────────────────────────────────────────────────────────── */
16465
+
16466
+ /* ── 8. Icon-only ────────────────────────────────────────────────────────── */
16467
+ /* `:where()` keeps this at (0,1,0) so a call-site `css` width override wins, as it does for `height`. */
16468
+ /* `:where()` on the exclusion holds this at (0,2,0): enough to tint an un-overridden icon-only link
16469
+ * over the base color, while still letting a consumer's own icon-color override win on source order. */
16470
+
16471
+ /* ── 9. Disabled — base rules paint the per-variant `*-disabled` tokens (see tokens.css) ──────── */
16472
+ /* Empty disabled buttons keep a transparent border (set elsewhere), so exclude them.
16473
+ * `:where()` on the exclusion holds this at (0,2,0): enough to beat the base border, while still
16474
+ * letting a consumer's own `[disabled]` border override win on source order. */
16475
+
16476
+ /* ── 10. Icon & content layout ───────────────────────────────────────────── */
16477
+ /* The leading icon renders unwrapped as the button's direct `.anticon` child (see NativeButton.tsx),
16478
+ * so `> .anticon` targets only a real icon glyph — a non-glyph `icon` (e.g. a Spinner) keeps its own
16479
+ * sizing — and out-specifies AntD's runtime-injected global `.anticon` rule. */
16480
+
16481
+ /* ── 11. Loading ─────────────────────────────────────────────────────────── */
16482
+
16483
+ /* ── 12. dangerouslySetForceIconStyles ───────────────────────────────────── */
16484
+
16485
+
16287
16486
  :where(.du-bois-dark) {
16288
16487
  /* Shape */
16289
16488
  --db-checkbox-border-radius: var(--db-selection-toggle-border-radius);
@@ -16292,15 +16491,15 @@ span.du-bois-dark-typography-ellipsis-single-line {
16292
16491
  /* Color */
16293
16492
  --db-checkbox-surface: var(--db-selection-toggle-surface);
16294
16493
  --db-checkbox-surface-hover: var(--db-color-action-default-background-hover);
16295
- --db-checkbox-surface-press: var(--db-color-action-default-background-press);
16494
+ --db-checkbox-surface-active: var(--db-color-action-default-background-press);
16296
16495
  --db-checkbox-surface-checked: var(--db-selection-toggle-surface-checked);
16297
16496
  --db-checkbox-surface-checked-hover: var(--db-selection-toggle-surface-checked-hover);
16298
- --db-checkbox-surface-checked-press: var(--db-selection-toggle-surface-checked-press);
16497
+ --db-checkbox-surface-checked-active: var(--db-selection-toggle-surface-checked-active);
16299
16498
  --db-checkbox-surface-disabled: var(--db-selection-toggle-surface-disabled);
16300
16499
 
16301
16500
  --db-checkbox-border: var(--db-color-action-default-border-default);
16302
16501
  --db-checkbox-border-hover: var(--db-selection-toggle-border-hover);
16303
- --db-checkbox-border-press: var(--db-selection-toggle-border-press);
16502
+ --db-checkbox-border-active: var(--db-selection-toggle-border-active);
16304
16503
  --db-checkbox-focus-ring: var(--db-focus-ring-color);
16305
16504
  --db-checkbox-border-disabled: var(--db-color-action-disabled-border);
16306
16505
 
@@ -16315,8 +16514,8 @@ span.du-bois-dark-typography-ellipsis-single-line {
16315
16514
  --db-checkbox-size: var(--db-selection-toggle-size);
16316
16515
  --db-checkbox-label-spacing: var(--db-selection-toggle-label-spacing);
16317
16516
  --db-checkbox-focus-ring-width: var(--db-focus-ring-width);
16318
- --db-checkbox-indeterminate-mark-width: var(--db-size-2xs); /* 8px */
16319
- --db-checkbox-indeterminate-mark-height: calc(var(--db-size-3xs) * 0.75); /* 3px */
16517
+ --db-checkbox-indeterminate-mark-width: var(--db-size-2); /* 8px */
16518
+ --db-checkbox-indeterminate-mark-height: calc(var(--db-size-1) * 0.75); /* 3px */
16320
16519
 
16321
16520
  /* Motion */
16322
16521
  --db-checkbox-transition-duration: var(--db-selection-toggle-transition-duration);
@@ -16397,7 +16596,7 @@ span.du-bois-dark-typography-ellipsis-single-line {
16397
16596
  * vertical margin Hint/FormMessage carry. */
16398
16597
 
16399
16598
  /* Group spacing against sibling form text — 8px gap above the group when it
16400
- * follows a Hint, 8px gap above a FormMessage when it follows the group.
16599
+ * follows a Label or Hint, 8px gap above a FormMessage when it follows the group.
16401
16600
  * Doubled class on the group side beats FormMessage's `&&` for the same reason. */
16402
16601
 
16403
16602
  /* CheckboxGroup layout. Vertical delegates to the `.db-stack` primitive; the
@@ -16411,6 +16610,162 @@ span.du-bois-dark-typography-ellipsis-single-line {
16411
16610
 
16412
16611
  /* Vertical: .db-stack supplies flex-direction + gap; we only retarget the knob. */
16413
16612
 
16613
+
16614
+
16615
+ :where(.du-bois-dark) {
16616
+ /* Density */
16617
+ --db-drawer-padding-horizontal: var(--db-space-6);
16618
+ --db-drawer-padding-horizontal-small: var(--db-space-4);
16619
+ --db-drawer-content-padding-top: var(--db-space-4);
16620
+ --db-drawer-content-padding-top-small: var(--db-space-2);
16621
+ --db-drawer-footer-padding-top: var(--db-space-4);
16622
+ --db-drawer-footer-padding-bottom: var(--db-space-6);
16623
+ --db-drawer-footer-padding-bottom-small: var(--db-space-4);
16624
+ --db-drawer-title-margin-bottom: var(--db-space-2);
16625
+ --db-drawer-close-button-margin: var(--db-space-1);
16626
+
16627
+ /* Color */
16628
+ --db-drawer-surface: var(--db-surface-base);
16629
+ --db-drawer-text: var(--db-text-base);
16630
+ --db-drawer-border: var(--db-border-base);
16631
+ /* No v2 token holds the drawer scrim yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16632
+ --db-drawer-overlay: var(--db-color-overlay-overlay);
16633
+ }
16634
+
16635
+ :where(.du-bois-dark) {
16636
+ /* Elevation */
16637
+ /* No v2 token holds the dark drawer elevation yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16638
+ --db-drawer-shadow: 0px 8px 40px 0px rgba(0, 0, 0, 0.87);
16639
+ }
16640
+
16641
+
16642
+
16643
+
16644
+
16645
+
16646
+
16647
+
16648
+
16649
+
16650
+ /* Component tokens for the native Icon. */
16651
+ :where(.du-bois-dark) {
16652
+ --db-icon-size: var(--db-font-size-xl);
16653
+ --db-icon-color-danger: var(--db-color-text-validation-danger);
16654
+ --db-icon-color-warning: var(--db-color-text-validation-warning);
16655
+ --db-icon-color-success: var(--db-color-text-validation-success);
16656
+ --db-icon-ai-gradient-start: var(--db-ai-gradient-start);
16657
+ --db-icon-ai-gradient-mid: var(--db-ai-gradient-mid);
16658
+ --db-icon-ai-gradient-end: var(--db-ai-gradient-end);
16659
+ }
16660
+
16661
+ /* Native Icon styles. Ships through mortar.css and reads only component-tier --db-icon-* tokens.
16662
+ * Icon size is driven solely by the `--db-icon-size` design token: to resize an icon, set that
16663
+ * token in scope (default 16px in tokens.css) rather than overriding `font-size`. */
16664
+
16665
+ /* TODO: remove once clickable-icon callsites are gone. Kept for backwards compatibility with the
16666
+ * AntD icon, which made icons clickable via onClick; some callsites still rely on it. Actual icons
16667
+ * should never carry a tabindex — a clickable icon belongs inside a button. */
16668
+
16669
+ /* Semantic colors set `color` only; the SVG glyph paints its `fill`/`stroke` from `currentColor`,
16670
+ * so setting the text color recolors the icon. */
16671
+
16672
+ @keyframes db-icon-loading-circle {
16673
+ 100% {
16674
+ transform: rotate(360deg);
16675
+ }
16676
+ }
16677
+
16678
+
16679
+
16680
+
16681
+ :where(.du-bois-dark) {
16682
+ /* Shape */
16683
+ /* Must not scale with density; no non-scaling system token holds it. TODO(FEINF-6505): adopt a v2 system token when one is added. */
16684
+ --db-navigation-menu-indicator-thickness: 4px;
16685
+ /* No system token holds this control-specific inset. TODO(FEINF-6505): adopt a v2 system token when one is added. */
16686
+ --db-navigation-menu-focus-ring-offset: -1px;
16687
+
16688
+ /* Color */
16689
+ --db-navigation-menu-indicator: var(--db-accent-surface);
16690
+ --db-navigation-menu-focus-ring: var(--db-focus-ring-color);
16691
+ --db-navigation-menu-text: var(--db-text-subtle);
16692
+ --db-navigation-menu-text-selected: var(--db-text-base);
16693
+ /* No v2 semantic for default-action link text yet; bridges on the v1 --db-color-* token. */
16694
+ --db-navigation-menu-text-hover: var(--db-color-action-default-text-hover);
16695
+ --db-navigation-menu-text-active: var(--db-color-action-default-text-press);
16696
+
16697
+ /* Density */
16698
+ --db-navigation-menu-item-height: var(--db-size-8);
16699
+ --db-navigation-menu-item-min-width: var(--db-size-6);
16700
+ --db-navigation-menu-link-padding-top: var(--db-space-1);
16701
+ --db-navigation-menu-link-padding-bottom: var(--db-space-2);
16702
+ --db-navigation-menu-focus-ring-width: var(--db-focus-ring-width);
16703
+ }
16704
+
16705
+
16706
+ :where(.du-bois-dark) {
16707
+ /* Color */
16708
+ /* No v2 token holds tertiary action-text states yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16709
+ --db-overflow-trigger-text: var(--db-color-action-tertiary-text-default);
16710
+ --db-overflow-trigger-text-hover: var(--db-color-action-tertiary-text-hover);
16711
+ --db-overflow-trigger-text-press: var(--db-color-action-tertiary-text-press);
16712
+
16713
+ /* Density */
16714
+ --db-overflow-spacing: var(--db-space-2);
16715
+ --db-overflow-menu-spacing: var(--db-space-1);
16716
+ }
16717
+
16718
+
16719
+
16720
+ /* Popover is a neutral-card member of the popup family: surface, text, border, and radius come
16721
+ * from --db-popup-*. Link, focus, and spacing are popover-specific and reference system tokens
16722
+ * directly. The popup elevation scale is light-only, so the dark shadow is re-declared below. */
16723
+
16724
+ :where(.du-bois-dark) {
16725
+ /* Shape */
16726
+ --db-popover-border-radius: var(--db-popup-border-radius);
16727
+
16728
+ /* Color */
16729
+ --db-popover-surface: var(--db-popup-surface);
16730
+ --db-popover-text: var(--db-popup-text);
16731
+ --db-popover-border: var(--db-popup-border);
16732
+ /* No v2 token holds the tertiary link text yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16733
+ --db-popover-link-text: var(--db-color-action-tertiary-text-default);
16734
+ --db-popover-link-text-hover: var(--db-color-action-tertiary-text-hover);
16735
+ --db-popover-focus-ring: var(--db-focus-ring-color);
16736
+
16737
+ /* Density */
16738
+ --db-popover-spacing: var(--db-space-2);
16739
+ --db-popover-focus-ring-width: var(--db-focus-ring-width);
16740
+
16741
+ /* Elevation */
16742
+ --db-popover-shadow: var(--db-popup-elevation);
16743
+ }
16744
+
16745
+ :where(.du-bois-dark) {
16746
+ /* No v2 token holds the dark-scope popover elevation shadow yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16747
+ --db-popover-shadow: 0px 2px 16px 0px rgba(0, 0, 0, 0.61);
16748
+ }
16749
+
16750
+
16751
+ /* Declared under the theme classes too (not just :root) so the var() chain re-resolves inside a
16752
+ * `.du-bois-dark` subtree instead of freezing at the light values. */
16753
+ :where(.du-bois-dark) {
16754
+ /* Shape */
16755
+ --db-progress-border-radius: var(--db-shape-pill);
16756
+
16757
+ /* Color */
16758
+ --db-progress-track: var(--db-color-progress-track);
16759
+ --db-progress-fill: var(--db-color-progress-fill);
16760
+
16761
+ /* Density */
16762
+ --db-progress-size: var(--db-size-2);
16763
+
16764
+ /* Motion */
16765
+ /* No v2 motion token holds this duration. TODO(FEINF-6505): adopt a v2 motion token when one is added. */
16766
+ --db-progress-transition-duration: 300ms;
16767
+ }
16768
+
16414
16769
  :where(.du-bois-dark) {
16415
16770
  /* Shape */
16416
16771
  --db-radio-border-radius: var(--db-radius-full);
@@ -16419,19 +16774,19 @@ span.du-bois-dark-typography-ellipsis-single-line {
16419
16774
  /* Color */
16420
16775
  --db-radio-surface: var(--db-selection-toggle-surface);
16421
16776
  --db-radio-surface-hover: var(--db-color-action-default-background-hover);
16422
- --db-radio-surface-press: var(--db-color-action-default-background-press);
16777
+ --db-radio-surface-active: var(--db-color-action-default-background-press);
16423
16778
  --db-radio-surface-checked: var(--db-selection-toggle-surface-checked);
16424
16779
  --db-radio-surface-checked-hover: var(--db-selection-toggle-surface-checked-hover);
16425
- --db-radio-surface-checked-press: var(--db-color-action-default-background-press);
16780
+ --db-radio-surface-checked-active: var(--db-color-action-default-background-press);
16426
16781
  --db-radio-surface-disabled: var(--db-selection-toggle-surface-disabled);
16427
16782
 
16428
16783
  --db-radio-border: var(--db-color-action-default-border-default);
16429
16784
  --db-radio-border-hover: var(--db-selection-toggle-border-hover);
16430
- --db-radio-border-press: var(--db-selection-toggle-border-press);
16785
+ --db-radio-border-active: var(--db-selection-toggle-border-active);
16431
16786
  --db-radio-border-focus: var(--db-focus-ring-color);
16432
16787
  --db-radio-border-disabled: var(--db-color-action-disabled-border);
16433
- --db-radio-border-checked-hover: var(--db-selection-toggle-border-press);
16434
- --db-radio-border-checked-press: var(--db-color-action-default-border-press);
16788
+ --db-radio-border-checked-hover: var(--db-selection-toggle-border-active);
16789
+ --db-radio-border-checked-active: var(--db-color-action-default-border-press);
16435
16790
  --db-radio-border-unchecked-focus: var(--db-color-action-primary-background-default);
16436
16791
  --db-radio-outline-checked-focus: var(--db-color-action-primary-background-default);
16437
16792
 
@@ -16443,7 +16798,7 @@ span.du-bois-dark-typography-ellipsis-single-line {
16443
16798
  /* Density */
16444
16799
  --db-radio-size: var(--db-selection-toggle-size);
16445
16800
  --db-radio-label-spacing: var(--db-selection-toggle-label-spacing);
16446
- --db-radio-mark-size: var(--db-size-3xs);
16801
+ --db-radio-mark-size: var(--db-size-1);
16447
16802
 
16448
16803
  /* Motion */
16449
16804
  --db-radio-transition-duration: var(--db-selection-toggle-transition-duration);
@@ -16579,6 +16934,76 @@ span.du-bois-dark-typography-ellipsis-single-line {
16579
16934
  /* AntD `&& + form-message { marginTop: sm }` (horizontal): a form-message following
16580
16935
  * the whole group is separated by sm. */
16581
16936
 
16937
+
16938
+
16939
+
16940
+
16941
+ :where(.du-bois-dark) {
16942
+ /* Shape */
16943
+ --db-slider-border-radius: var(--db-shape-pill);
16944
+
16945
+ /* Color */
16946
+ /* No v2 token holds the track + disabled-range surface yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16947
+ --db-slider-track-surface: #e8ecf0;
16948
+ --db-slider-range-surface-disabled: #e8ecf0;
16949
+ /* No v2 token holds the range fill yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16950
+ --db-slider-range-surface: #2272b4;
16951
+
16952
+ --db-slider-thumb-surface: var(--db-accent-surface);
16953
+ --db-slider-thumb-surface-hover: var(--db-accent-surface-hover);
16954
+ --db-slider-thumb-surface-press: var(--db-accent-surface-active);
16955
+ /* No v2 token holds the disabled thumb yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
16956
+ --db-slider-thumb-surface-disabled: #d1d9e1;
16957
+
16958
+ /* Density */
16959
+ --db-slider-size: var(--db-size-5); /* 20px */
16960
+ --db-slider-thumb-size: var(--db-size-5); /* 20px */
16961
+ --db-slider-track-thickness: calc(var(--db-size-1) * 0.75); /* 3px */
16962
+ }
16963
+
16964
+ :where(.du-bois-dark) {
16965
+ /* Shape */
16966
+ /* TODO(FEINF-6505): adopt --db-shape-container-* once a 4px container radius exists; kept on --db-radius-sm to preserve 4px. */
16967
+ --db-snackbar-border-radius: var(--db-radius-sm);
16968
+
16969
+ /* Density */
16970
+ --db-snackbar-spacing-vertical: var(--db-space-3);
16971
+ --db-snackbar-spacing-horizontal: var(--db-space-4);
16972
+ --db-snackbar-close-button-spacing: var(--db-space-2);
16973
+
16974
+ /* Color */
16975
+ /* No v1/v2 system token holds this theme-invariant white. TODO(FEINF-6505): adopt a v2 system token when one is added. */
16976
+ --db-snackbar-text: #ffffff;
16977
+ /* No v1/v2 system token holds these theme-invariant close-icon colors. TODO(FEINF-6505): adopt a v2 system token when one is added. */
16978
+ --db-snackbar-close-icon: #e8ecf0;
16979
+ --db-snackbar-close-icon-hover: #8acaff;
16980
+ --db-snackbar-close-icon-active: #bae1fc;
16981
+ }
16982
+
16983
+ :where(.du-bois-dark) {
16984
+ /* Color */
16985
+ /* No v1/v2 system token holds this light/dark surface pair. TODO(FEINF-6505): adopt a v2 system token when one is added. */
16986
+ --db-snackbar-surface: #445461;
16987
+
16988
+ /* Elevation */
16989
+ /* 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. */
16990
+ --db-snackbar-shadow: 0px 2px 16px 0px rgba(0, 0, 0, 0.61);
16991
+ }
16992
+
16993
+ /* Spacer's height is a spacing step. The size prop (xs/sm/mid/md/lg) selects one component token,
16994
+ * each aliasing the system space scale — theme-invariant, so a single block (no light/dark split). */
16995
+
16996
+ :where(.du-bois-dark) {
16997
+ /* Density */
16998
+ --db-spacer-size-xs: var(--db-space-1); /* 4px */
16999
+ --db-spacer-size-sm: var(--db-space-2); /* 8px */
17000
+ --db-spacer-size-mid: var(--db-space-3); /* 12px */
17001
+ --db-spacer-size-md: var(--db-space-4); /* 16px */
17002
+ --db-spacer-size-lg: var(--db-space-6); /* 24px */
17003
+ }
17004
+
17005
+
17006
+
16582
17007
  :where(.du-bois-dark) {
16583
17008
  /* Shape */
16584
17009
  --db-switch-border-radius: var(--db-radius-full);
@@ -16587,20 +17012,20 @@ span.du-bois-dark-typography-ellipsis-single-line {
16587
17012
  /* Color */
16588
17013
  --db-switch-surface: var(--db-selection-toggle-surface);
16589
17014
  --db-switch-surface-hover: var(--db-color-action-default-background-hover);
16590
- --db-switch-surface-press: var(--db-color-action-default-background-press);
17015
+ --db-switch-surface-active: var(--db-color-action-default-background-press);
16591
17016
  --db-switch-surface-checked: var(--db-selection-toggle-surface-checked);
16592
17017
  --db-switch-surface-checked-hover: var(--db-selection-toggle-surface-checked-hover);
16593
- --db-switch-surface-checked-press: var(--db-selection-toggle-surface-checked-press);
17018
+ --db-switch-surface-checked-active: var(--db-selection-toggle-surface-checked-active);
16594
17019
  --db-switch-surface-disabled: var(--db-selection-toggle-surface-disabled);
16595
17020
  --db-switch-surface-checked-disabled: var(--db-color-action-disabled-text);
16596
17021
 
16597
17022
  --db-switch-border: var(--db-color-action-default-border-default);
16598
17023
  --db-switch-border-hover: var(--db-selection-toggle-border-hover);
16599
- --db-switch-border-press: var(--db-selection-toggle-border-press);
17024
+ --db-switch-border-active: var(--db-selection-toggle-border-active);
16600
17025
  --db-switch-border-disabled: var(--db-color-action-disabled-border);
16601
17026
  --db-switch-border-checked: var(--db-selection-toggle-surface-checked);
16602
17027
  --db-switch-border-checked-hover: var(--db-selection-toggle-surface-checked-hover);
16603
- --db-switch-border-checked-press: var(--db-selection-toggle-surface-checked-press);
17028
+ --db-switch-border-checked-active: var(--db-selection-toggle-surface-checked-active);
16604
17029
  --db-switch-border-focus: var(--db-selection-toggle-surface-checked);
16605
17030
 
16606
17031
  --db-switch-thumb: var(--db-selection-toggle-surface);
@@ -16609,8 +17034,8 @@ span.du-bois-dark-typography-ellipsis-single-line {
16609
17034
  --db-switch-text-disabled: var(--db-selection-toggle-text-disabled);
16610
17035
 
16611
17036
  /* Density */
16612
- --db-switch-track-width: calc(var(--db-size-xs) * 1.75); /* 28px */
16613
- --db-switch-track-height: var(--db-size-xs); /* 16px */
17037
+ --db-switch-track-width: calc(var(--db-size-4) * 1.75); /* 28px */
17038
+ --db-switch-track-height: var(--db-size-4); /* 16px */
16614
17039
  --db-switch-thumb-size: var(--db-switch-track-height);
16615
17040
  --db-switch-label-spacing: var(--db-selection-toggle-label-spacing);
16616
17041
 
@@ -16637,7 +17062,117 @@ span.du-bois-dark-typography-ellipsis-single-line {
16637
17062
  /* Target the <Label>'s class, not a bare `label` — that would also match the .db-switch root <label>. */
16638
17063
 
16639
17064
  /* Indent a following hint/message past the track. The class is doubled to out-specify FormMessage's
16640
- * own margin rule. */
17065
+ * own margin rule. Each rule's key (rightmost) selector is a single class, not a multi-item :is(),
17066
+ * so Chromium can hash-reject it instead of attempting the match against every element on every
17067
+ * recalc (the leading/middle :is() groups aren't the key selector, so they're left as-is). */
17068
+
17069
+ /* Component tokens for Tabs (no family). Re-declared under the theme classes, not only :root, so the
17070
+ * var() chain re-resolves inside a .du-bois-dark subtree instead of freezing at the light value. */
17071
+ :where(.du-bois-dark) {
17072
+ /* ── Density ──────────────────────────────────────────────────────────── */
17073
+ --db-tabs-height: var(--db-size-8);
17074
+ --db-tabs-trigger-min-width: var(--db-size-6);
17075
+ --db-tabs-trigger-min-width-closable: var(--db-size-10);
17076
+ --db-tabs-list-margin-bottom: var(--db-space-4);
17077
+ --db-tabs-trigger-gap: var(--db-space-4);
17078
+ --db-tabs-trigger-padding-top: var(--db-space-1);
17079
+ --db-tabs-trigger-padding-bottom: var(--db-space-2);
17080
+ --db-tabs-close-icon-gap: var(--db-space-1);
17081
+ --db-tabs-add-button-margin-top: var(--db-space-0-5);
17082
+ /* No 1.5-unit space step exists; synthesize 6px from the nearest. TODO: use a direct step if one lands. */
17083
+ --db-tabs-add-button-margin-bottom: calc(var(--db-space-1) * 1.5);
17084
+
17085
+ /* ── Shape ────────────────────────────────────────────────────────────── */
17086
+ --db-tabs-scrollbar-radius: var(--db-shape-control);
17087
+ --db-tabs-focus-ring-width: var(--db-focus-ring-width);
17088
+
17089
+ /* ── Typography ───────────────────────────────────────────────────────── */
17090
+ --db-tabs-font-size: var(--db-font-size-base);
17091
+ --db-tabs-font-weight: var(--db-font-weight-semibold);
17092
+ /* No v2 token holds the tab line-height yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17093
+ --db-tabs-line-height: 1.25rem;
17094
+
17095
+ /* ── Color ────────────────────────────────────────────────────────────── */
17096
+ /* No v2 token holds the tab text / hover / press / active / disabled colors yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17097
+ --db-tabs-text: var(--db-color-text-secondary);
17098
+ --db-tabs-text-hover: var(--db-color-action-default-text-hover);
17099
+ --db-tabs-text-press: var(--db-color-action-default-text-press);
17100
+ --db-tabs-text-active: var(--db-color-text-primary);
17101
+ --db-tabs-text-disabled: var(--db-color-action-disabled-text);
17102
+ /* No v2 token holds the tab panel content text color yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17103
+ --db-tabs-content-text: var(--db-color-text-primary);
17104
+ /* No v2 token holds the active-tab underline yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17105
+ --db-tabs-indicator: var(--db-color-action-primary-background-default);
17106
+ /* No v2 token holds the list divider yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17107
+ --db-tabs-border: var(--db-color-action-default-border-default);
17108
+ /* No v2 token holds the focus ring color yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17109
+ --db-tabs-focus-ring: var(--db-color-action-default-border-focus);
17110
+ }
17111
+
17112
+ /* No v2 token holds the scrollbar thumb yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17113
+ :where(.du-bois-dark) {
17114
+ --db-tabs-scrollbar-thumb: rgba(255, 255, 255, 0.2);
17115
+ --db-tabs-scrollbar-thumb-hover: rgba(255, 255, 255, 0.3);
17116
+ }
17117
+
17118
+
17119
+
17120
+ :where(.du-bois-dark) {
17121
+ /* Shape */
17122
+ --db-toolbar-border-radius: var(--db-shape-control);
17123
+
17124
+ /* Color */
17125
+ --db-toolbar-surface: var(--db-surface-subtle);
17126
+ --db-toolbar-border: var(--db-border-base);
17127
+ --db-toolbar-separator-surface: var(--db-border-base);
17128
+ --db-toolbar-toggle-item-text: var(--db-text-base);
17129
+ /* No v2 token holds the toggle hover / press text yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17130
+ --db-toolbar-toggle-item-text-hover: var(--db-color-action-default-text-hover);
17131
+ --db-toolbar-toggle-item-text-press: var(--db-color-action-default-text-press);
17132
+ --db-toolbar-shadow: var(--db-elevation-med);
17133
+
17134
+ /* Density */
17135
+ --db-toolbar-gap: var(--db-space-4);
17136
+ --db-toolbar-spacing: var(--db-space-2);
17137
+ }
17138
+
17139
+ :where(.du-bois-dark) {
17140
+ /* No v2 token holds the dark-mode elevation shadow yet. TODO(FEINF-6505): adopt a v2 token when one lands. */
17141
+ --db-toolbar-shadow: 0px 2px 16px 0px rgba(0, 0, 0, 0.61);
17142
+ }
17143
+
17144
+ /* Tooltip renders an inverted surface (dark chip in light mode, light chip in dark mode), so it does
17145
+ * not draw from the popover family's neutral surface. Surface/text reference the v1 tooltip
17146
+ * primitives from tokens-groups until a v2 semantic exists. */
17147
+
17148
+ :where(.du-bois-dark) {
17149
+ /* Shape */
17150
+ --db-tooltip-border-radius: var(--db-radius-sm);
17151
+
17152
+ /* Density */
17153
+ --db-tooltip-spacing-vertical: var(--db-space-1);
17154
+ --db-tooltip-spacing-horizontal: var(--db-space-2);
17155
+
17156
+ /* Typography */
17157
+ --db-tooltip-font-size: var(--db-font-size-base);
17158
+ --db-tooltip-font-weight: var(--db-font-weight-normal);
17159
+ }
17160
+
17161
+ :where(.du-bois-dark) {
17162
+ /* Color */
17163
+ --db-tooltip-surface: var(--db-color-tooltip-background-tooltip);
17164
+ --db-tooltip-text: var(--db-color-tooltip-text-tooltip);
17165
+ /* Darker v1 blue primitives than light mode — the chip is light here, so links need contrast. */
17166
+ --db-tooltip-link-text: #2272b4; /* blue600 */
17167
+ --db-tooltip-link-text-hover: #0e538b; /* blue700 */
17168
+ --db-tooltip-link-text-active: #04355d; /* blue800 */
17169
+
17170
+ /* Elevation */
17171
+ /* v2 elevation tokens are theme-invariant, so --db-elevation-med would keep the light shadow here.
17172
+ * Hold the v1 dark shadow as a literal to avoid a regression until elevation gains a dark value. */
17173
+ --db-tooltip-shadow: 0px 2px 16px 0px rgba(0, 0, 0, 0.61);
17174
+ }
17175
+
16641
17176
 
16642
17177
 
16643
17178
  :where(.du-bois-dark-btn-icon-only) > :where(.anticon),