@q1travel/design-system 0.31.2 → 0.31.3

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.
@@ -8432,7 +8432,7 @@ a.q1-card:focus-visible {
8432
8432
  visibility: hidden;
8433
8433
  }
8434
8434
  /* 变体:default 是浅灰底 + border-strong 外框,分割线与外框同为 border-strong,在浅灰底上保持清晰;
8435
- secondary 是面板底 + 与 Button 次要档一致的外框(亮色 border、暗色 border-control);分割线始终与外框同色同粗。 */
8435
+ secondary 是面板底 + 与 Button 次要档一致的外框(亮色 border-strong、暗色 border-control);分割线始终与外框同色同粗。 */
8436
8436
  .split-button--default .split-button__primary,
8437
8437
  .split-button--default .split-button__toggle {
8438
8438
  background: var(--q1-color-bg-subtle);
@@ -8469,6 +8469,21 @@ a.q1-card:focus-visible {
8469
8469
  .split-button__toggle[aria-disabled='true'] {
8470
8470
  cursor: progress;
8471
8471
  }
8472
+ /* 亮色次要按钮的常态与交互边框;暗色和纯图标悬停沿用既有配方。 */
8473
+ :where(:root:not([data-theme='dark']), [data-q1-theme='light']) .button:where(:not(.button--primary, .button--ghost, .button--warning, .button--danger, .button--selected)):not(:where([data-q1-theme='dark'], [data-q1-theme='dark'] *)),
8474
+ :where(:root:not([data-theme='dark']), [data-q1-theme='light']) .split-button--secondary :is(.split-button__primary, .split-button__toggle):not(:where([data-q1-theme='dark'], [data-q1-theme='dark'] *)) {
8475
+ border-color: var(--q1-color-border-strong);
8476
+ }
8477
+ :where(:root:not([data-theme='dark']), [data-q1-theme='light']) .button:where(:not(.button--primary, .button--ghost, .button--warning, .button--danger, .button--selected, .button--icon)):not(:where([data-q1-theme='dark'], [data-q1-theme='dark'] *)):active:not(:disabled, [aria-disabled='true']),
8478
+ :where(:root:not([data-theme='dark']), [data-q1-theme='light']) .split-button--secondary :is(.split-button__primary, .split-button__toggle):not(:where([data-q1-theme='dark'], [data-q1-theme='dark'] *)):active:not(:disabled, [aria-disabled='true']) {
8479
+ border-color: var(--q1-color-gray-600);
8480
+ }
8481
+ @media (hover: hover) and (pointer: fine) {
8482
+ :where(:root:not([data-theme='dark']), [data-q1-theme='light']) .button:where(:not(.button--primary, .button--ghost, .button--warning, .button--danger, .button--selected, .button--icon)):not(:where([data-q1-theme='dark'], [data-q1-theme='dark'] *)):hover:not(:disabled, [aria-disabled='true']),
8483
+ :where(:root:not([data-theme='dark']), [data-q1-theme='light']) .split-button--secondary :is(.split-button__primary, .split-button__toggle):not(:where([data-q1-theme='dark'], [data-q1-theme='dark'] *)):hover:not(:disabled, [aria-disabled='true']) {
8484
+ border-color: var(--q1-color-gray-600);
8485
+ }
8486
+ }
8472
8487
  /* 尺寸(与 Button 家族共享刻度:高 32/40/48、radius 6/6/8、字号 14/14/16) */
8473
8488
  .split-button--sm .split-button__primary {
8474
8489
  min-height: 32px;
@@ -11566,6 +11581,62 @@ a.q1-navigation__item[aria-disabled='true'] {
11566
11581
  display: none;
11567
11582
  }
11568
11583
 
11584
+ .empty-state--panel {
11585
+ box-sizing: border-box;
11586
+ inline-size: 100%;
11587
+ max-inline-size: none;
11588
+ max-width: none;
11589
+ flex-direction: row;
11590
+ align-items: center;
11591
+ justify-content: space-between;
11592
+ gap: var(--q1-space-4);
11593
+ padding: var(--q1-space-4) var(--q1-space-6);
11594
+ border: calc(var(--q1-space-1) / 4) solid var(--q1-color-border-subtle);
11595
+ border-radius: var(--q1-radius-3);
11596
+ background: var(--q1-color-bg-subtle);
11597
+ text-align: start;
11598
+ }
11599
+
11600
+ .empty-state--panel > .empty-state__body {
11601
+ min-inline-size: 0;
11602
+ display: grid;
11603
+ gap: var(--q1-space-1);
11604
+ overflow-wrap: anywhere;
11605
+ }
11606
+
11607
+ .empty-state--panel .empty-state__title,
11608
+ .empty-state--panel .empty-state__desc {
11609
+ font-size: var(--q1-font-size-copy-14);
11610
+ line-height: var(--q1-line-height-copy-14);
11611
+ }
11612
+
11613
+ .empty-state--panel .empty-state__title {
11614
+ font-weight: var(--q1-font-weight-semibold);
11615
+ color: var(--q1-color-text-primary);
11616
+ }
11617
+
11618
+ .empty-state--panel .empty-state__desc {
11619
+ font-weight: var(--q1-font-weight-regular);
11620
+ color: var(--q1-color-text-secondary);
11621
+ }
11622
+
11623
+ .empty-state--panel > .empty-state__actions {
11624
+ flex-shrink: 0;
11625
+ justify-content: start;
11626
+ margin: 0;
11627
+ }
11628
+
11629
+ @media (max-width: 30rem) {
11630
+ .empty-state--panel {
11631
+ flex-direction: column;
11632
+ align-items: start;
11633
+ }
11634
+
11635
+ .empty-state--panel > .empty-state__actions {
11636
+ max-inline-size: 100%;
11637
+ }
11638
+ }
11639
+
11569
11640
  .q1-cascader { display: grid; gap: var(--q1-space-2); min-inline-size: 0; }
11570
11641
  .q1-cascader__label { color: var(--q1-color-text-primary); font-size: var(--q1-font-size-label-14); line-height: var(--q1-line-height-label-14); }
11571
11642
  .q1-cascader__control { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: var(--q1-space-2); border: calc(var(--q1-space-1) / 4) solid var(--q1-color-border-control); border-radius: var(--q1-radius-2); background: var(--q1-color-bg-sunken); }
@@ -14308,16 +14379,17 @@ a.q1-navigation__item[aria-disabled='true'] {
14308
14379
 
14309
14380
  .empty-state__illustration {
14310
14381
  display: grid;
14382
+ grid-template-columns: minmax(0, 1fr);
14311
14383
  place-items: center;
14312
- max-inline-size: calc(var(--q1-space-6) * 4);
14313
- margin-block-end: var(--q1-space-2);
14384
+ max-inline-size: var(--q1-space-16);
14385
+ margin-block-end: 0;
14314
14386
  }
14315
14387
 
14316
14388
  .empty-state--inline > .empty-state__illustration {
14317
14389
  grid-template-columns: minmax(0, 1fr);
14318
14390
  flex-shrink: 0;
14319
- inline-size: var(--q1-space-16);
14320
- max-inline-size: var(--q1-space-16);
14391
+ inline-size: var(--q1-space-10);
14392
+ max-inline-size: var(--q1-space-10);
14321
14393
  margin-block-end: 0;
14322
14394
  }
14323
14395
 
@@ -14337,7 +14409,7 @@ a.q1-navigation__item[aria-disabled='true'] {
14337
14409
 
14338
14410
  .empty-list-illustration__back { fill: var(--q1-color-gray-400); }
14339
14411
  .empty-list-illustration__card { fill: var(--q1-color-gray-500); stroke: var(--q1-color-border-strong); }
14340
- .empty-list-illustration rect { rx: var(--q1-radius-3); }
14412
+ .empty-list-illustration rect:not(:where(.empty-illustration-redraw *)) { rx: var(--q1-radius-3); }
14341
14413
  .empty-list-illustration .empty-list-illustration__clip { rx: var(--q1-radius-1); }
14342
14414
  .empty-list-illustration__rows { fill: none; stroke: var(--q1-color-gray-600); }
14343
14415
  .empty-list-illustration__lens { stroke: var(--q1-color-border-control); }
@@ -14391,6 +14463,72 @@ a.q1-navigation__item[aria-disabled='true'] {
14391
14463
  }
14392
14464
  }
14393
14465
 
14466
+ .empty-list-illustration .empty-illustration-redraw .empty-illustration-redraw__surface { fill: var(--q1-color-background-100); }
14467
+ .empty-illustration-redraw__outline { stroke: var(--q1-color-gray-700); }
14468
+ .empty-illustration-redraw__detail { fill: none; stroke: var(--q1-color-gray-700); }
14469
+ .empty-illustration-redraw__tint { fill: var(--q1-color-teal-300); stroke: var(--q1-color-teal-900); }
14470
+ .empty-illustration-redraw__tint-detail { fill: none; stroke: var(--q1-color-teal-900); }
14471
+ .empty-illustration-redraw__shadow { fill: var(--q1-color-gray-alpha-100); stroke: none; }
14472
+ .empty-illustration-redraw__brand { fill: var(--q1-color-primary-700); stroke: none; }
14473
+ .empty-illustration-redraw__brand-line { fill: none; stroke: var(--q1-color-primary-700); }
14474
+
14475
+ [data-scene='inventory'] .empty-illustration-redraw__tint { fill: var(--q1-color-amber-300); stroke: var(--q1-color-amber-900); }
14476
+ [data-scene='orders'] .empty-illustration-redraw__tint { fill: var(--q1-color-green-300); stroke: var(--q1-color-green-900); }
14477
+ [data-scene='orders'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-green-900); }
14478
+ [data-scene='activity'] .empty-illustration-redraw__tint { fill: var(--q1-color-blue-300); stroke: var(--q1-color-blue-900); }
14479
+ [data-scene='activity'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-blue-900); }
14480
+
14481
+ [data-scene='purchase'] .empty-illustration-redraw__tint { fill: var(--q1-color-green-300); stroke: var(--q1-color-green-900); }
14482
+ [data-scene='purchase'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-green-900); }
14483
+ [data-scene='search'] .empty-illustration-redraw__tint { fill: var(--q1-color-blue-300); stroke: var(--q1-color-blue-900); }
14484
+ [data-scene='search'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-blue-900); }
14485
+ [data-scene='supplier'] .empty-illustration-redraw__tint { fill: var(--q1-color-blue-300); stroke: var(--q1-color-blue-900); }
14486
+ [data-scene='supplier'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-blue-900); }
14487
+ [data-scene='product'] .empty-illustration-redraw__tint { fill: var(--q1-color-teal-300); stroke: var(--q1-color-teal-900); }
14488
+ [data-scene='product'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-teal-900); }
14489
+ [data-scene='team'] .empty-illustration-redraw__tint { fill: var(--q1-color-green-300); stroke: var(--q1-color-green-900); }
14490
+ [data-scene='team'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-green-900); }
14491
+ [data-scene='store'] .empty-illustration-redraw__tint { fill: var(--q1-color-blue-300); stroke: var(--q1-color-blue-900); }
14492
+ [data-scene='store'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-blue-900); }
14493
+
14494
+ :is(:root[data-theme='dark'], [data-q1-theme='dark']) .empty-illustration-redraw__tint:not(:where([data-q1-theme='light'], [data-q1-theme='light'] *)),
14495
+ :is(:root[data-theme='dark'], [data-q1-theme='dark']) .empty-illustration-redraw__tint-detail:not(:where([data-q1-theme='light'], [data-q1-theme='light'] *)) { stroke: var(--q1-color-gray-700); }
14496
+ :is(:root[data-theme='dark'], [data-q1-theme='dark']) [data-scene='inventory'] .empty-illustration-redraw__tint:not(:where([data-q1-theme='light'], [data-q1-theme='light'] *)) { fill: var(--q1-color-blue-300); }
14497
+ :is(:root[data-theme='dark'], [data-q1-theme='dark']) .empty-illustration-redraw__shadow:not(:where([data-q1-theme='light'], [data-q1-theme='light'] *)) { fill: var(--q1-color-gray-alpha-200); }
14498
+ :is(:root[data-theme='dark'], [data-q1-theme='dark']) .empty-illustration-redraw__brand:not(:where([data-q1-theme='light'], [data-q1-theme='light'] *)) { fill: var(--q1-color-primary-900); }
14499
+ :is(:root[data-theme='dark'], [data-q1-theme='dark']) .empty-illustration-redraw__brand-line:not(:where([data-q1-theme='light'], [data-q1-theme='light'] *)) { stroke: var(--q1-color-primary-900); }
14500
+
14501
+ @media (forced-colors: active) {
14502
+ .empty-illustration-redraw :is(.empty-illustration-redraw__surface, .empty-illustration-redraw__tint) { fill: Canvas !important; stroke: CanvasText !important; }
14503
+ .empty-illustration-redraw :is(.empty-illustration-redraw__outline, .empty-illustration-redraw__detail, .empty-illustration-redraw__tint-detail, .empty-illustration-redraw__brand-line) { stroke: CanvasText !important; }
14504
+ .empty-illustration-redraw__brand { fill: CanvasText !important; }
14505
+ .empty-illustration-redraw__shadow { fill: none !important; }
14506
+ }
14507
+
14508
+ .empty-state--inline { padding-inline: 0; }
14509
+ .empty-state--inline .empty-state__title { color: var(--q1-color-text-primary); }
14510
+ .empty-state--inline .empty-illustration-inline :is(rect, path, circle) { vector-effect: non-scaling-stroke; }
14511
+ [data-scene='complete'] .empty-illustration-redraw__tint { fill: var(--q1-color-green-300); stroke: var(--q1-color-green-900); }
14512
+ [data-scene='complete'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-green-900); }
14513
+ [data-scene='permission'] .empty-illustration-redraw__tint { fill: var(--q1-color-blue-300); stroke: var(--q1-color-blue-900); }
14514
+ [data-scene='permission'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-blue-900); }
14515
+ [data-scene='notification'] .empty-illustration-redraw__tint { fill: var(--q1-color-teal-300); stroke: var(--q1-color-teal-900); }
14516
+ [data-scene='notification'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-teal-900); }
14517
+ [data-scene='session'] .empty-illustration-redraw__tint { fill: var(--q1-color-blue-300); stroke: var(--q1-color-blue-900); }
14518
+ [data-scene='session'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-blue-900); }
14519
+ [data-scene='integration'] .empty-illustration-redraw__tint { fill: var(--q1-color-teal-300); stroke: var(--q1-color-teal-900); }
14520
+ [data-scene='integration'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-teal-900); }
14521
+ [data-scene='payment'] .empty-illustration-redraw__tint { fill: var(--q1-color-green-300); stroke: var(--q1-color-green-900); }
14522
+ [data-scene='payment'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-green-900); }
14523
+ [data-scene='security'] .empty-illustration-redraw__tint { fill: var(--q1-color-blue-300); stroke: var(--q1-color-blue-900); }
14524
+ [data-scene='security'] .empty-illustration-redraw__tint-detail { stroke: var(--q1-color-blue-900); }
14525
+
14526
+ :is(:root[data-theme='dark'], [data-q1-theme='dark']) .empty-illustration-redraw__tint:not(:where([data-q1-theme='light'], [data-q1-theme='light'] *)),
14527
+ :is(:root[data-theme='dark'], [data-q1-theme='dark']) .empty-illustration-redraw__tint-detail:not(:where([data-q1-theme='light'], [data-q1-theme='light'] *)) { stroke: var(--q1-color-gray-700); }
14528
+
14529
+ [data-scene='activity'] .empty-illustration-inline__solid { fill: var(--q1-color-blue-900); stroke: none; }
14530
+ :is(:root[data-theme='dark'], [data-q1-theme='dark']) [data-scene='activity'] .empty-illustration-inline__solid:not(:where([data-q1-theme='light'], [data-q1-theme='light'] *)) { fill: var(--q1-color-blue-900); stroke: none; }
14531
+
14394
14532
  /* Private geometry derives from existing spacing; no new consumer token surface. */
14395
14533
  .control-option.checkbox-circle {
14396
14534
  --checkbox-circle-diameter: calc(var(--q1-space-4) + var(--q1-space-1) / 2);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@q1travel/design-system",
3
- "version": "0.31.2",
3
+ "version": "0.31.3",
4
4
  "description": "React components, design tokens, and interface contracts for q1travel products.",
5
5
  "keywords": [
6
6
  "react",