orbcafe-ui 3.1.8 → 3.1.9

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
@@ -83,6 +83,9 @@
83
83
  --orb-p600: color-mix(in oklch, var(--orb-primary) 85%, #000000);
84
84
  --orb-p700: color-mix(in oklch, var(--orb-primary) 70%, #000000);
85
85
  --orb-accent: #fc4c02;
86
+ /* ORBIS Highlight Pink。风险授权卡的边框用它,不借用由橙色加深得到的 --orb-err。 */
87
+ --orb-highlight: #db3360;
88
+ --orb-omph-approval-tradeoff: color-mix(in oklch, var(--orb-primary) 58%, #ffffff);
86
89
  --orb-divider: var(--orb-border);
87
90
  --orb-primary-bg: var(--orb-p50);
88
91
  --orb-info: var(--orb-primary);
@@ -150,6 +153,8 @@
150
153
  --orb-p600: color-mix(in oklch, var(--orb-primary) 85%, #ffffff);
151
154
  --orb-p700: color-mix(in oklch, var(--orb-primary) 60%, #ffffff);
152
155
  --orb-accent: #fc4c02;
156
+ --orb-highlight: #db3360;
157
+ --orb-omph-approval-tradeoff: color-mix(in oklch, var(--orb-primary) 58%, #ffffff);
153
158
  --orb-divider: var(--orb-border);
154
159
  --orb-primary-bg: var(--orb-p50);
155
160
  --orb-info: var(--orb-p300);
@@ -2580,6 +2585,11 @@ button.orb-app-header-locale:hover,
2580
2585
  /* ---------- markdown: HTML artifact card + inline demo ---------- */
2581
2586
  /* The html fence renders as a card or an expanded inline block; react-markdown's
2582
2587
  <pre> wrapper steps aside so neither sits in a second padded frame. */
2588
+ .markdown-body pre:has(.mermaid-block) {
2589
+ font: inherit;
2590
+ color: inherit;
2591
+ }
2592
+
2583
2593
  .markdown-body pre:has(.orb-html-demo-card),
2584
2594
  .markdown-body pre:has(.orb-html-demo) {
2585
2595
  margin: 0;
@@ -2810,7 +2820,7 @@ button.orb-app-header-locale:hover,
2810
2820
 
2811
2821
  .orb-omph-approval-card {
2812
2822
  overflow: hidden;
2813
- border: 1px solid var(--orb-warn);
2823
+ border: 2px solid var(--orb-warn);
2814
2824
  border-radius: var(--orb-shell-radius);
2815
2825
  background: color-mix(in oklch, var(--orb-canvas) 64%, transparent);
2816
2826
  backdrop-filter: blur(28px);
@@ -2818,6 +2828,60 @@ button.orb-app-header-locale:hover,
2818
2828
  box-shadow: var(--orb-shadow-2);
2819
2829
  }
2820
2830
 
2831
+ .orb-omph-approval-card[data-kind='clarify'] {
2832
+ border-color: var(--orb-accent);
2833
+ --orb-omph-kind-ink: var(--orb-accent);
2834
+ --orb-omph-kind-wash: var(--orb-warn-bg);
2835
+ }
2836
+
2837
+ .orb-omph-approval-card[data-kind='tradeoff'] {
2838
+ border-color: var(--orb-omph-approval-tradeoff);
2839
+ --orb-omph-kind-ink: var(--orb-primary);
2840
+ --orb-omph-kind-wash: color-mix(in oklch, var(--orb-primary) 8%, var(--orb-canvas));
2841
+ }
2842
+
2843
+ .orb-omph-approval-card[data-kind='authorize'] {
2844
+ border-color: var(--orb-highlight);
2845
+ --orb-omph-kind-ink: var(--orb-highlight);
2846
+ --orb-omph-kind-wash: color-mix(in oklch, var(--orb-highlight) 8%, var(--orb-canvas));
2847
+ }
2848
+
2849
+ .orb-omph-approval-card[data-kind] .orb-omph-approval-strip {
2850
+ background: var(--orb-omph-kind-wash);
2851
+ color: var(--orb-omph-kind-ink);
2852
+ }
2853
+
2854
+ .orb-omph-approval-card[data-kind] .orb-omph-approval-dot {
2855
+ background: var(--orb-omph-kind-ink);
2856
+ }
2857
+
2858
+ .orb-omph-approval-card[data-kind] .orb-omph-approval-headline {
2859
+ color: var(--orb-omph-kind-ink);
2860
+ }
2861
+
2862
+ /* 夜里标题跟边框同一色相,但要亮到能从夜蓝底上读出来。
2863
+ oklch 把橙/红混进夜蓝会绕成紫,底纹改走 srgb。 */
2864
+ .orb-dark .orb-omph-approval-card[data-kind='clarify'],
2865
+ [data-orb-mode='dark'] .orb-omph-approval-card[data-kind='clarify'] {
2866
+ --orb-omph-kind-ink: oklch(from var(--orb-accent) 0.74 c h);
2867
+ --orb-omph-kind-wash: color-mix(in srgb, var(--orb-accent) 16%, var(--orb-canvas));
2868
+ border-color: var(--orb-omph-kind-ink);
2869
+ }
2870
+
2871
+ .orb-dark .orb-omph-approval-card[data-kind='tradeoff'],
2872
+ [data-orb-mode='dark'] .orb-omph-approval-card[data-kind='tradeoff'] {
2873
+ --orb-omph-kind-ink: oklch(from var(--orb-primary) 0.74 0.15 h);
2874
+ --orb-omph-kind-wash: color-mix(in srgb, var(--orb-primary) 32%, var(--orb-canvas));
2875
+ border-color: var(--orb-omph-kind-ink);
2876
+ }
2877
+
2878
+ .orb-dark .orb-omph-approval-card[data-kind='authorize'],
2879
+ [data-orb-mode='dark'] .orb-omph-approval-card[data-kind='authorize'] {
2880
+ --orb-omph-kind-ink: oklch(from var(--orb-highlight) 0.74 c h);
2881
+ --orb-omph-kind-wash: color-mix(in srgb, var(--orb-highlight) 16%, var(--orb-canvas));
2882
+ border-color: var(--orb-omph-kind-ink);
2883
+ }
2884
+
2821
2885
  .orb-omph-approval-strip {
2822
2886
  display: flex;
2823
2887
  align-items: center;
@@ -2908,6 +2972,12 @@ button.orb-app-header-locale:hover,
2908
2972
  font: 400 13px/1.45 var(--orb-font);
2909
2973
  }
2910
2974
 
2975
+ .orb-omph-approval-recommended {
2976
+ margin-left: 6px;
2977
+ color: var(--orb-muted);
2978
+ font: 500 12px/1.4 var(--orb-font);
2979
+ }
2980
+
2911
2981
  .orb-omph-approval-other {
2912
2982
  width: 100%;
2913
2983
  min-height: 72px;
@@ -3050,6 +3120,255 @@ button.orb-app-header-locale:hover,
3050
3120
  color: var(--orb-muted);
3051
3121
  }
3052
3122
 
3123
+ /* 新会话初始画面。背景只用 ORBIS 色的透明:夜蓝、企业蓝、石油青、品红。 */
3124
+ .orb-omph-initial {
3125
+ --orb-omph-initial-night: #16203b;
3126
+ --orb-omph-initial-blue: #00488a;
3127
+ --orb-omph-initial-petrol: #00a3a3;
3128
+ --orb-omph-initial-pink: #db3360;
3129
+ /* 磨砂玻璃:取自 ORBIS 材质系统的 ultra-thin(着色 32% / 模糊 12px / 饱和 180%) */
3130
+ --orb-frost-blur: 12px;
3131
+ --orb-frost-tint: 32%;
3132
+ --orb-frost-saturate: 180%;
3133
+ --orb-frost-base: #ffffff;
3134
+ --orb-frost-stroke: color-mix(in srgb, #ffffff 60%, transparent);
3135
+ --orb-frost-highlight: color-mix(in srgb, #ffffff 85%, transparent);
3136
+ --orb-frost-shadow: 0 1px 3px color-mix(in srgb, #16203b 8%, transparent),
3137
+ 0 6px 16px color-mix(in srgb, #16203b 10%, transparent);
3138
+ --orb-frost-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
3139
+ position: relative;
3140
+ isolation: isolate;
3141
+ display: flex;
3142
+ flex: 1 1 auto;
3143
+ align-items: center;
3144
+ justify-content: center;
3145
+ min-height: 0;
3146
+ overflow: hidden;
3147
+ background: var(--orb-canvas);
3148
+ color: var(--orb-fg);
3149
+ }
3150
+
3151
+ .orb-omph-initial-stage {
3152
+ position: absolute;
3153
+ inset: 0;
3154
+ z-index: 0;
3155
+ pointer-events: none;
3156
+ }
3157
+
3158
+ .orb-omph-initial-bloom {
3159
+ position: absolute;
3160
+ border-radius: 50%;
3161
+ filter: blur(24px);
3162
+ }
3163
+
3164
+ .orb-omph-initial-bloom-petrol {
3165
+ width: min(78vw, 920px);
3166
+ height: min(78vw, 920px);
3167
+ left: -8vw;
3168
+ top: -8vh;
3169
+ background: radial-gradient(circle, color-mix(in srgb, var(--orb-omph-initial-petrol) 42%, transparent), transparent 68%);
3170
+ }
3171
+
3172
+ .orb-omph-initial-bloom-blue {
3173
+ width: min(62vw, 720px);
3174
+ height: min(62vw, 720px);
3175
+ left: 28vw;
3176
+ top: 18vh;
3177
+ background: radial-gradient(circle, color-mix(in srgb, var(--orb-omph-initial-blue) 28%, transparent), transparent 70%);
3178
+ }
3179
+
3180
+ .orb-omph-initial-bloom-pink {
3181
+ width: min(52vw, 600px);
3182
+ height: min(52vw, 600px);
3183
+ right: -4vw;
3184
+ bottom: -8vh;
3185
+ background: radial-gradient(circle, color-mix(in srgb, var(--orb-omph-initial-pink) 28%, transparent), transparent 70%);
3186
+ }
3187
+
3188
+ .orb-omph-initial-arc {
3189
+ position: absolute;
3190
+ inset: -8% -6%;
3191
+ width: 112%;
3192
+ height: 116%;
3193
+ fill: none;
3194
+ stroke: var(--orb-omph-initial-petrol);
3195
+ stroke-width: 1.25;
3196
+ opacity: 0.28;
3197
+ }
3198
+
3199
+ .orb-omph-initial-arc path:last-child {
3200
+ opacity: 0.45;
3201
+ }
3202
+
3203
+ .orb-dark .orb-omph-initial,
3204
+ [data-orb-mode="dark"] .orb-omph-initial {
3205
+ background: var(--orb-omph-initial-night);
3206
+ --orb-frost-base: #16203b;
3207
+ --orb-frost-stroke: color-mix(in srgb, #ffffff 14%, transparent);
3208
+ --orb-frost-highlight: color-mix(in srgb, #ffffff 18%, transparent);
3209
+ --orb-frost-shadow: 0 1px 3px color-mix(in srgb, #000000 24%, transparent),
3210
+ 0 6px 16px color-mix(in srgb, #000000 30%, transparent);
3211
+ }
3212
+
3213
+ .orb-dark .orb-omph-initial-bloom-petrol,
3214
+ [data-orb-mode="dark"] .orb-omph-initial-bloom-petrol {
3215
+ background: radial-gradient(circle, color-mix(in srgb, var(--orb-omph-initial-petrol) 48%, transparent), transparent 68%);
3216
+ }
3217
+
3218
+ .orb-dark .orb-omph-initial-bloom-pink,
3219
+ [data-orb-mode="dark"] .orb-omph-initial-bloom-pink {
3220
+ background: radial-gradient(circle, color-mix(in srgb, var(--orb-omph-initial-pink) 36%, transparent), transparent 70%);
3221
+ }
3222
+
3223
+ .orb-dark .orb-omph-initial-arc,
3224
+ [data-orb-mode="dark"] .orb-omph-initial-arc {
3225
+ opacity: 0.42;
3226
+ }
3227
+
3228
+ .orb-omph-initial-center {
3229
+ position: relative;
3230
+ z-index: 1;
3231
+ display: flex;
3232
+ flex-direction: column;
3233
+ align-items: center;
3234
+ width: min(760px, calc(100% - 48px));
3235
+ gap: 28px;
3236
+ }
3237
+
3238
+ .orb-omph-initial-mark {
3239
+ display: flex;
3240
+ justify-content: center;
3241
+ }
3242
+
3243
+ .orb-omph-initial-composer {
3244
+ position: relative;
3245
+ width: 100%;
3246
+ }
3247
+
3248
+ .orb-omph-initial-composer > div {
3249
+ max-width: none;
3250
+ }
3251
+
3252
+ .orb-omph-initial-composer .orb-agent-input,
3253
+ .orb-omph-initial-suggestion,
3254
+ .orb-omph-initial-menu .orb-omph-icon-btn {
3255
+ position: relative;
3256
+ isolation: isolate;
3257
+ border: 1px solid var(--orb-frost-stroke);
3258
+ background-color: color-mix(in srgb, var(--orb-frost-base) var(--orb-frost-tint), transparent);
3259
+ box-shadow: inset 0 1px 0 var(--orb-frost-highlight), var(--orb-frost-shadow);
3260
+ -webkit-backdrop-filter: blur(var(--orb-frost-blur)) saturate(var(--orb-frost-saturate));
3261
+ backdrop-filter: blur(var(--orb-frost-blur)) saturate(var(--orb-frost-saturate));
3262
+ }
3263
+
3264
+ .orb-omph-initial-composer .orb-agent-input::after,
3265
+ .orb-omph-initial-suggestion::after,
3266
+ .orb-omph-initial-menu .orb-omph-icon-btn::after {
3267
+ content: "";
3268
+ position: absolute;
3269
+ inset: 0;
3270
+ z-index: -1;
3271
+ border-radius: inherit;
3272
+ background-image: var(--orb-frost-grain);
3273
+ background-size: 180px;
3274
+ opacity: 0.05;
3275
+ mix-blend-mode: overlay;
3276
+ pointer-events: none;
3277
+ }
3278
+
3279
+ .orb-dark .orb-omph-initial-composer .orb-agent-input::after,
3280
+ .orb-dark .orb-omph-initial-suggestion::after,
3281
+ .orb-dark .orb-omph-initial-menu .orb-omph-icon-btn::after,
3282
+ [data-orb-mode="dark"] .orb-omph-initial-composer .orb-agent-input::after,
3283
+ [data-orb-mode="dark"] .orb-omph-initial-suggestion::after,
3284
+ [data-orb-mode="dark"] .orb-omph-initial-menu .orb-omph-icon-btn::after {
3285
+ opacity: 0.07;
3286
+ }
3287
+
3288
+ .orb-omph-initial-composer .orb-agent-input:focus-within {
3289
+ border-color: var(--orb-frost-stroke);
3290
+ --tw-ring-shadow: 0 0 #0000;
3291
+ box-shadow: inset 0 1px 0 var(--orb-frost-highlight), var(--orb-frost-shadow);
3292
+ }
3293
+
3294
+ .orb-omph-initial-composer .orb-agent-input .flex-col > div:first-child {
3295
+ padding-right: 52px;
3296
+ }
3297
+
3298
+ .orb-omph-initial-menu {
3299
+ position: absolute;
3300
+ top: 10px;
3301
+ right: 10px;
3302
+ z-index: 2;
3303
+ }
3304
+
3305
+ .orb-omph-initial-menu .orb-omph-icon-btn {
3306
+ width: 40px;
3307
+ height: 40px;
3308
+ border-radius: 12px;
3309
+ }
3310
+
3311
+ .orb-omph-initial-hint {
3312
+ margin: 0;
3313
+ max-width: 42em;
3314
+ color: var(--orb-muted);
3315
+ font: 500 14px/1.55 var(--orb-font);
3316
+ text-align: center;
3317
+ }
3318
+
3319
+ .orb-omph-initial-suggestions {
3320
+ display: flex;
3321
+ flex-direction: column;
3322
+ align-items: flex-start;
3323
+ gap: 10px;
3324
+ width: 100%;
3325
+ margin: 0;
3326
+ }
3327
+
3328
+ .orb-omph-initial-suggestion {
3329
+ margin: 0;
3330
+ padding: 16px 18px;
3331
+ border-radius: var(--orb-shell-radius);
3332
+ color: var(--orb-fg);
3333
+ font: 500 14px/1.55 var(--orb-font);
3334
+ text-align: left;
3335
+ cursor: pointer;
3336
+ transition: background-color 0.2s ease, box-shadow 0.2s ease;
3337
+ }
3338
+
3339
+ .orb-omph-initial-suggestion:hover:not(:disabled) {
3340
+ background-color: color-mix(in srgb, var(--orb-frost-base) calc(var(--orb-frost-tint) + 8%), transparent);
3341
+ }
3342
+
3343
+ .orb-omph-initial-suggestion:focus-visible {
3344
+ outline: 2px solid var(--orb-focus-ring);
3345
+ outline-offset: 2px;
3346
+ }
3347
+
3348
+ .orb-omph-initial-suggestion:disabled {
3349
+ cursor: default;
3350
+ opacity: 0.55;
3351
+ }
3352
+
3353
+ @media (prefers-reduced-transparency: reduce) {
3354
+ .orb-omph-initial {
3355
+ --orb-frost-tint: 96%;
3356
+ }
3357
+
3358
+ .orb-omph-initial-composer .orb-agent-input,
3359
+ .orb-omph-initial-suggestion,
3360
+ .orb-omph-initial-menu .orb-omph-icon-btn {
3361
+ -webkit-backdrop-filter: none;
3362
+ backdrop-filter: none;
3363
+ }
3364
+
3365
+ .orb-omph-initial-composer .orb-agent-input::after,
3366
+ .orb-omph-initial-suggestion::after,
3367
+ .orb-omph-initial-menu .orb-omph-icon-btn::after {
3368
+ opacity: 0;
3369
+ }
3370
+ }
3371
+
3053
3372
  .orb-omph-conversation-empty {
3054
3373
  margin: 0;
3055
3374
  padding: 12px 10px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orbcafe-ui",
3
- "version": "3.1.8",
3
+ "version": "3.1.9",
4
4
  "description": "ORBCAFE UI components — ORBIS brand system, MUI-free",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",