orbcafe-ui 3.1.4 → 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/index.d.mts +119 -9
- package/dist/index.d.ts +119 -9
- package/dist/index.js +22 -21
- package/dist/index.mjs +20 -19
- package/dist/orbis.css +313 -7
- package/package.json +2 -1
package/dist/orbis.css
CHANGED
|
@@ -2577,28 +2577,164 @@ button.orb-app-header-locale:hover,
|
|
|
2577
2577
|
font-size: 12px;
|
|
2578
2578
|
}
|
|
2579
2579
|
|
|
2580
|
-
|
|
2580
|
+
/* ---------- markdown: HTML artifact card + inline demo ---------- */
|
|
2581
|
+
/* The html fence renders as a card or an expanded inline block; react-markdown's
|
|
2582
|
+
<pre> wrapper steps aside so neither sits in a second padded frame. */
|
|
2583
|
+
.markdown-body pre:has(.orb-html-demo-card),
|
|
2584
|
+
.markdown-body pre:has(.orb-html-demo) {
|
|
2585
|
+
margin: 0;
|
|
2586
|
+
padding: 0;
|
|
2587
|
+
overflow: visible;
|
|
2588
|
+
background: transparent;
|
|
2589
|
+
border: 0;
|
|
2590
|
+
}
|
|
2591
|
+
|
|
2592
|
+
.markdown-body .orb-html-demo-card {
|
|
2581
2593
|
margin: 12px 0 4px;
|
|
2582
|
-
|
|
2594
|
+
}
|
|
2595
|
+
|
|
2596
|
+
.orb-html-demo-card {
|
|
2597
|
+
display: flex;
|
|
2598
|
+
align-items: center;
|
|
2599
|
+
gap: 12px;
|
|
2600
|
+
width: 100%;
|
|
2601
|
+
padding: 10px 12px;
|
|
2583
2602
|
border: 1px solid var(--orb-border);
|
|
2584
2603
|
border-radius: var(--orb-r);
|
|
2585
2604
|
background: var(--orb-canvas);
|
|
2605
|
+
color: var(--orb-fg);
|
|
2606
|
+
font-family: var(--orb-font);
|
|
2607
|
+
text-align: left;
|
|
2608
|
+
cursor: pointer;
|
|
2609
|
+
transition: background var(--orb-t-fast), border-color var(--orb-t-fast);
|
|
2586
2610
|
}
|
|
2587
2611
|
|
|
2588
|
-
.
|
|
2589
|
-
|
|
2612
|
+
.orb-html-demo-card:hover {
|
|
2613
|
+
background: var(--orb-hover);
|
|
2614
|
+
border-color: var(--orb-p200);
|
|
2615
|
+
}
|
|
2616
|
+
|
|
2617
|
+
.orb-html-demo-card:focus-visible {
|
|
2618
|
+
outline: 2px solid var(--orb-focus-solid);
|
|
2619
|
+
outline-offset: 1px;
|
|
2620
|
+
}
|
|
2621
|
+
|
|
2622
|
+
.orb-html-demo-glyph {
|
|
2623
|
+
flex: none;
|
|
2624
|
+
display: grid;
|
|
2625
|
+
place-items: center;
|
|
2626
|
+
width: 36px;
|
|
2627
|
+
height: 36px;
|
|
2628
|
+
border-radius: 8px;
|
|
2629
|
+
background: var(--orb-p100);
|
|
2630
|
+
color: var(--orb-primary);
|
|
2631
|
+
font: 600 13px/1 ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
|
|
2632
|
+
}
|
|
2633
|
+
|
|
2634
|
+
.orb-html-demo-info {
|
|
2635
|
+
flex: 1;
|
|
2636
|
+
min-width: 0;
|
|
2637
|
+
display: flex;
|
|
2638
|
+
flex-direction: column;
|
|
2639
|
+
gap: 2px;
|
|
2640
|
+
}
|
|
2641
|
+
|
|
2642
|
+
.orb-html-demo-title {
|
|
2643
|
+
overflow: hidden;
|
|
2644
|
+
text-overflow: ellipsis;
|
|
2645
|
+
white-space: nowrap;
|
|
2646
|
+
font: 600 14px/1.35 var(--orb-font);
|
|
2647
|
+
color: var(--orb-fg-strong);
|
|
2648
|
+
}
|
|
2649
|
+
|
|
2650
|
+
.orb-html-demo-meta {
|
|
2651
|
+
font: 500 12px/1.3 var(--orb-font);
|
|
2652
|
+
color: var(--orb-muted);
|
|
2653
|
+
}
|
|
2654
|
+
|
|
2655
|
+
.orb-html-demo-openpill {
|
|
2656
|
+
flex: none;
|
|
2657
|
+
padding: 7px 16px;
|
|
2658
|
+
border-radius: 999px;
|
|
2659
|
+
background: var(--orb-primary);
|
|
2660
|
+
color: var(--orb-on-primary);
|
|
2661
|
+
font: 600 13px/1.2 var(--orb-font);
|
|
2662
|
+
transition: background var(--orb-t-fast);
|
|
2663
|
+
}
|
|
2664
|
+
|
|
2665
|
+
.orb-html-demo-card:hover .orb-html-demo-openpill {
|
|
2666
|
+
background: var(--orb-p600);
|
|
2667
|
+
}
|
|
2668
|
+
|
|
2669
|
+
/* Expanded demo: lives in the reply flow, no overlay. Height comes from the
|
|
2670
|
+
iframe's content probe (clamped 200–560px in HtmlDemo). */
|
|
2671
|
+
.orb-html-demo {
|
|
2672
|
+
margin: 12px 0;
|
|
2673
|
+
overflow: hidden;
|
|
2674
|
+
background: var(--orb-canvas);
|
|
2675
|
+
border: 1px solid var(--orb-border);
|
|
2676
|
+
border-radius: var(--orb-r);
|
|
2677
|
+
}
|
|
2678
|
+
|
|
2679
|
+
.orb-html-demo-head {
|
|
2680
|
+
display: flex;
|
|
2681
|
+
align-items: center;
|
|
2682
|
+
gap: 12px;
|
|
2683
|
+
padding: 8px 10px 8px 14px;
|
|
2590
2684
|
border-bottom: 1px solid var(--orb-border);
|
|
2591
2685
|
background: var(--orb-surface);
|
|
2592
|
-
|
|
2686
|
+
}
|
|
2687
|
+
|
|
2688
|
+
.orb-html-demo-head .orb-html-demo-glyph {
|
|
2689
|
+
width: 28px;
|
|
2690
|
+
height: 28px;
|
|
2691
|
+
font-size: 11px;
|
|
2692
|
+
}
|
|
2693
|
+
|
|
2694
|
+
.orb-html-demo-head-title {
|
|
2695
|
+
flex: 1;
|
|
2696
|
+
min-width: 0;
|
|
2697
|
+
overflow: hidden;
|
|
2698
|
+
text-overflow: ellipsis;
|
|
2699
|
+
white-space: nowrap;
|
|
2593
2700
|
font: 600 14px/1.3 var(--orb-font);
|
|
2701
|
+
color: var(--orb-fg-strong);
|
|
2702
|
+
}
|
|
2703
|
+
|
|
2704
|
+
.orb-html-demo-segment {
|
|
2705
|
+
flex: none;
|
|
2706
|
+
}
|
|
2707
|
+
|
|
2708
|
+
.orb-html-demo-actions {
|
|
2709
|
+
flex: none;
|
|
2710
|
+
display: flex;
|
|
2711
|
+
align-items: center;
|
|
2712
|
+
gap: 4px;
|
|
2594
2713
|
}
|
|
2595
2714
|
|
|
2596
|
-
.
|
|
2715
|
+
.orb-html-demo-frame {
|
|
2597
2716
|
display: block;
|
|
2598
2717
|
width: 100%;
|
|
2599
|
-
margin: 0;
|
|
2600
2718
|
border: 0;
|
|
2601
2719
|
background: var(--orb-canvas);
|
|
2720
|
+
transition: height var(--orb-t-fast);
|
|
2721
|
+
}
|
|
2722
|
+
|
|
2723
|
+
.orb-html-demo-code {
|
|
2724
|
+
max-height: 480px;
|
|
2725
|
+
overflow: auto;
|
|
2726
|
+
}
|
|
2727
|
+
|
|
2728
|
+
/* Author display rules would beat the UA's [hidden], so hide explicitly. */
|
|
2729
|
+
.orb-html-demo-frame[hidden],
|
|
2730
|
+
.orb-html-demo-code[hidden] {
|
|
2731
|
+
display: none;
|
|
2732
|
+
}
|
|
2733
|
+
|
|
2734
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2735
|
+
.orb-html-demo-frame {
|
|
2736
|
+
transition: none;
|
|
2737
|
+
}
|
|
2602
2738
|
}
|
|
2603
2739
|
|
|
2604
2740
|
.markdown-body blockquote {
|
|
@@ -2933,6 +3069,19 @@ button.orb-app-header-locale:hover,
|
|
|
2933
3069
|
color: var(--orb-on-primary);
|
|
2934
3070
|
font: 600 12px/1 var(--orb-font);
|
|
2935
3071
|
}
|
|
3072
|
+
/* 传 <img> 时放开圆形底:宽高自适应、无底色,宿主用它放品牌标识(如 MIXER pill) */
|
|
3073
|
+
.orb-omph-avatar:has(img) {
|
|
3074
|
+
width: auto;
|
|
3075
|
+
height: auto;
|
|
3076
|
+
border-radius: 0;
|
|
3077
|
+
background: none;
|
|
3078
|
+
overflow: visible;
|
|
3079
|
+
}
|
|
3080
|
+
.orb-omph-avatar img {
|
|
3081
|
+
display: block;
|
|
3082
|
+
height: 28px;
|
|
3083
|
+
width: auto;
|
|
3084
|
+
}
|
|
2936
3085
|
|
|
2937
3086
|
.orb-omph-title {
|
|
2938
3087
|
font: 600 14px/1.2 var(--orb-font);
|
|
@@ -3031,6 +3180,26 @@ button.orb-app-header-locale:hover,
|
|
|
3031
3180
|
white-space: pre-wrap;
|
|
3032
3181
|
}
|
|
3033
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
|
+
|
|
3034
3203
|
.orb-omph-clock {
|
|
3035
3204
|
font: 500 11px/1.3 var(--orb-font);
|
|
3036
3205
|
color: var(--orb-muted);
|
|
@@ -3403,6 +3572,28 @@ button.orb-app-header-locale:hover,
|
|
|
3403
3572
|
background: var(--orb-err);
|
|
3404
3573
|
}
|
|
3405
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
|
+
|
|
3406
3597
|
@media (prefers-reduced-motion: reduce) {
|
|
3407
3598
|
.orb-omph-dot[data-active="true"],
|
|
3408
3599
|
.orb-omph-caret,
|
|
@@ -3644,6 +3835,121 @@ button.orb-app-header-locale:hover,
|
|
|
3644
3835
|
font: 500 12px/1.5 var(--orb-font);
|
|
3645
3836
|
}
|
|
3646
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
|
+
|
|
3647
3953
|
.orb-omph-pv-doc {
|
|
3648
3954
|
max-width: 760px;
|
|
3649
3955
|
margin: 0 auto;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "orbcafe-ui",
|
|
3
|
-
"version": "3.1.
|
|
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",
|