orbcafe-ui 3.1.7 → 3.1.8

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.
package/dist/orbis.css CHANGED
@@ -3180,6 +3180,26 @@ button.orb-app-header-locale:hover,
3180
3180
  white-space: pre-wrap;
3181
3181
  }
3182
3182
 
3183
+ /* 运行中补充的输入:虚线描边表示还没送达,送达后宿主清掉 queued 回到实线 */
3184
+ .orb-omph-user-bubble[data-queued] {
3185
+ border-style: dashed;
3186
+ }
3187
+
3188
+ .orb-omph-user-meta {
3189
+ display: flex;
3190
+ align-items: center;
3191
+ gap: 8px;
3192
+ }
3193
+
3194
+ .orb-omph-user-queued {
3195
+ padding: 1px 8px;
3196
+ border: 1px solid var(--orb-p100);
3197
+ border-radius: 999px;
3198
+ color: var(--orb-primary);
3199
+ font: 600 10px/1.4 var(--orb-font);
3200
+ letter-spacing: 0.02em;
3201
+ }
3202
+
3183
3203
  .orb-omph-clock {
3184
3204
  font: 500 11px/1.3 var(--orb-font);
3185
3205
  color: var(--orb-muted);
@@ -3552,6 +3572,28 @@ button.orb-app-header-locale:hover,
3552
3572
  background: var(--orb-err);
3553
3573
  }
3554
3574
 
3575
+ /* 忙碌且有草稿时的次级停止:描边样式和主发送按钮区分开 */
3576
+ .orb-omph-stop-secondary {
3577
+ display: inline-flex;
3578
+ align-items: center;
3579
+ justify-content: center;
3580
+ flex: none;
3581
+ width: 36px;
3582
+ height: 36px;
3583
+ border: 1px solid var(--orb-border);
3584
+ border-radius: 50%;
3585
+ background: transparent;
3586
+ color: var(--orb-muted);
3587
+ cursor: pointer;
3588
+ transition: color var(--orb-t-fast), border-color var(--orb-t-fast);
3589
+ }
3590
+
3591
+ .orb-omph-stop-secondary:hover,
3592
+ .orb-omph-stop-secondary:focus-visible {
3593
+ border-color: var(--orb-err);
3594
+ color: var(--orb-err);
3595
+ }
3596
+
3555
3597
  @media (prefers-reduced-motion: reduce) {
3556
3598
  .orb-omph-dot[data-active="true"],
3557
3599
  .orb-omph-caret,
@@ -3793,6 +3835,121 @@ button.orb-app-header-locale:hover,
3793
3835
  font: 500 12px/1.5 var(--orb-font);
3794
3836
  }
3795
3837
 
3838
+ /* ----- sheet (xlsx) ----- */
3839
+ /* 表格吃满内容区:标签条固定,网格区两轴滚动 */
3840
+ .orb-omph-pv-body[data-kind="sheet"] {
3841
+ display: flex;
3842
+ flex-direction: column;
3843
+ overflow: hidden;
3844
+ }
3845
+
3846
+ .orb-omph-sheet {
3847
+ flex: 1;
3848
+ min-height: 0;
3849
+ display: flex;
3850
+ flex-direction: column;
3851
+ }
3852
+
3853
+ .orb-omph-sheet-bar {
3854
+ flex: none;
3855
+ display: flex;
3856
+ align-items: center;
3857
+ gap: 8px;
3858
+ padding: 8px 12px;
3859
+ border-bottom: 1px solid var(--orb-border);
3860
+ background: var(--orb-surface);
3861
+ }
3862
+
3863
+ .orb-omph-sheet-tabs {
3864
+ flex: 1;
3865
+ min-width: 0;
3866
+ display: flex;
3867
+ gap: 4px;
3868
+ overflow-x: auto;
3869
+ }
3870
+
3871
+ .orb-omph-sheet-tab {
3872
+ flex: none;
3873
+ padding: 4px 12px;
3874
+ border: 1px solid transparent;
3875
+ border-radius: var(--orb-r);
3876
+ background: transparent;
3877
+ color: var(--orb-muted);
3878
+ font: 500 12px/1.4 var(--orb-font);
3879
+ white-space: nowrap;
3880
+ cursor: pointer;
3881
+ transition: background var(--orb-t-fast), color var(--orb-t-fast);
3882
+ }
3883
+
3884
+ .orb-omph-sheet-tab:hover {
3885
+ background: var(--orb-hover);
3886
+ color: var(--orb-fg-strong);
3887
+ }
3888
+
3889
+ .orb-omph-sheet-tab[data-active] {
3890
+ background: var(--orb-p100);
3891
+ color: var(--orb-primary);
3892
+ }
3893
+
3894
+ .orb-omph-sheet-tab:focus-visible {
3895
+ outline: 2px solid var(--orb-focus-solid);
3896
+ outline-offset: 1px;
3897
+ }
3898
+
3899
+ .orb-omph-sheet-scroll {
3900
+ flex: 1;
3901
+ min-height: 0;
3902
+ overflow: auto;
3903
+ overscroll-behavior: contain;
3904
+ }
3905
+
3906
+ .orb-omph-sheet-grid {
3907
+ border-collapse: separate;
3908
+ border-spacing: 0;
3909
+ font: 400 12px/1.5 var(--orb-font);
3910
+ color: var(--orb-fg);
3911
+ }
3912
+
3913
+ .orb-omph-sheet-grid th,
3914
+ .orb-omph-sheet-grid td {
3915
+ padding: 4px 10px;
3916
+ border-right: 1px solid var(--orb-border);
3917
+ border-bottom: 1px solid var(--orb-border);
3918
+ text-align: left;
3919
+ vertical-align: top;
3920
+ white-space: pre-wrap;
3921
+ word-break: break-word;
3922
+ max-width: 320px;
3923
+ }
3924
+
3925
+ .orb-omph-sheet-grid thead th {
3926
+ position: sticky;
3927
+ top: 0;
3928
+ z-index: 2;
3929
+ background: var(--orb-surface);
3930
+ color: var(--orb-muted);
3931
+ font-weight: 500;
3932
+ text-align: center;
3933
+ min-width: 72px;
3934
+ }
3935
+
3936
+ .orb-omph-sheet-grid tbody th {
3937
+ position: sticky;
3938
+ left: 0;
3939
+ z-index: 1;
3940
+ background: var(--orb-surface);
3941
+ color: var(--orb-muted);
3942
+ font-weight: 500;
3943
+ text-align: right;
3944
+ min-width: 40px;
3945
+ }
3946
+
3947
+ .orb-omph-sheet-grid .orb-omph-sheet-corner {
3948
+ left: 0;
3949
+ z-index: 3;
3950
+ min-width: 40px;
3951
+ }
3952
+
3796
3953
  .orb-omph-pv-doc {
3797
3954
  max-width: 760px;
3798
3955
  margin: 0 auto;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orbcafe-ui",
3
- "version": "3.1.7",
3
+ "version": "3.1.8",
4
4
  "description": "ORBCAFE UI components — ORBIS brand system, MUI-free",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -87,6 +87,7 @@
87
87
  "dayjs": "^1.11.19",
88
88
  "framer-motion": "^12.35.1",
89
89
  "i18next": "^25.8.18",
90
+ "jszip": "^3.10.2",
90
91
  "mermaid": "^10.9.0",
91
92
  "ogl": "^1.0.11",
92
93
  "react-i18next": "^16.5.8",