@@ -35,6 +35,7 @@ interface ModelItem {
3535const DEMO_ASSET_BASE = ' /pricing-e-final/assets' ;
3636
3737const popularModels: ModelItem [] = [
38+ { name: ' DeepSeek V4 Flash Vision Exp' , icon: ' /agents/deepseek.svg' },
3839 { name: ' DeepSeek V4 Flash' , icon: ' /agents/deepseek.svg' },
3940 { name: ' GLM-5.2' , icon: ` ${DEMO_ASSET_BASE }/zai-logo-official-Byn-xbrp.png ` , iconClass: ' model-logo-zhipu' },
4041 { name: ' Kimi K2.7 Code' , icon: ' /model-icons/kimi.svg' , iconClass: ' model-logo-kimi' },
@@ -71,13 +72,12 @@ const imageModels: ModelItem[] = [
7172];
7273
7374const unlimitedByTier: Record <TierId , Set <string >> = {
74- go: new Set ([' DeepSeek V4 Flash' , ' DeepSeek V4 Pro' , ' GLM-5.2' ]),
75- plus: new Set ([' DeepSeek V4 Flash' , ' DeepSeek V4 Pro' , ' GLM-5.2' , ' Kimi K2.7 Code' ]),
76- // Pro's fifth slot is GLM-5.2, not MiniMax M2.7: every tier from Go up
77- // carries GLM-5.2, and MiniMax M2.7 stays metered until Max. The two were
78- // swapped here, so the page promised Pro subscribers unlimited MiniMax while
79- // marking the GLM-5.2 they do get as metered.
75+ go: new Set ([' DeepSeek V4 Flash Vision Exp' , ' DeepSeek V4 Flash' , ' DeepSeek V4 Pro' , ' GLM-5.2' ]),
76+ plus: new Set ([' DeepSeek V4 Flash Vision Exp' , ' DeepSeek V4 Flash' , ' DeepSeek V4 Pro' , ' GLM-5.2' , ' Kimi K2.7 Code' ]),
77+ // Pro includes GLM-5.2, not MiniMax M2.7: every tier from Go up carries
78+ // GLM-5.2, while MiniMax M2.7 stays metered until Max.
8079 pro: new Set ([
80+ ' DeepSeek V4 Flash Vision Exp' ,
8181 ' DeepSeek V4 Flash' ,
8282 ' DeepSeek V4 Pro' ,
8383 ' GLM-5.2' ,
@@ -88,6 +88,7 @@ const unlimitedByTier: Record<TierId, Set<string>> = {
8888};
8989
9090const popularModelDisplayOrder = [
91+ ' DeepSeek V4 Flash Vision Exp' ,
9192 ' DeepSeek V4 Flash' ,
9293 ' DeepSeek V4 Pro' ,
9394 ' GLM-5.2' ,
@@ -242,6 +243,7 @@ const popularModel = (name: string) => popularModels.find((model) => model.name
242243const usageRows = [
243244 { ... popularModel (' DeepSeek V4 Flash' ), value: 13000 },
244245 { ... popularModel (' MiMo V2.5 Pro' ), value: 11000 },
246+ { ... popularModel (' DeepSeek V4 Flash Vision Exp' ), value: 8000 },
245247 { ... popularModel (' DeepSeek V4 Pro' ), value: 4300 },
246248 { ... popularModel (' MiniMax M2.7' ), value: 2800 },
247249 { ... popularModel (' Kimi K2.6' ), value: 1000 },
@@ -270,7 +272,7 @@ const comparisonFlagship = [
270272const categoryCopy: Record <ModelCategory , { title: string ; count: string }> = {
271273 popular: {
272274 title: P .popularModels ,
273- count: fillTemplate (P .modelCount , { count: ' 8 ' }),
275+ count: fillTemplate (P .modelCount , { count: String ( comparisonPopular . length ) }),
274276 },
275277 flagship: {
276278 title: P .flagshipModels ,
@@ -388,15 +390,24 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
388390 <div class = " plan-model-modules" >
389391 <section class = " plan-model-module unlimited-module" data-model-module >
390392 <header >
391- <h4 >{ fillTemplate (P .unlimitedPopularModels , { count: String (unlimitedByTier [tier ].size ) })} </h4 >
393+ <div class = " plan-model-title-with-help" >
394+ <h4 >{ fillTemplate (P .unlimitedPopularModels , { count: String (unlimitedByTier [tier ].size ) })} </h4 >
395+ <details class = " plan-model-help" >
396+ <summary aria-label = { P .aboutModelEntitlements } >?</summary >
397+ <span class = " plan-model-help-copy" >{ P .modelEntitlementActivationNote } </span >
398+ </details >
399+ </div >
392400 </header >
393401 <ul >
394402 { popular .map ((model ) => {
395403 const popularStatus = popularAccessStatus (model .name , tier );
396404 return (
397405 <li class = " model-with-status" >
398406 <span class :list = { [' model-logo' , model .iconClass ]} ><img src = { model .icon } alt = " " loading = " lazy" /></span >
399- <span >{ model .name } </span >
407+ <span
408+ class :list = { { ' long-model-name' : model .name .length > 24 }}
409+ title = { model .name }
410+ >{ model .name } </span >
400411 { popularStatus .kind === ' unlimited' && <em class = { popularStatus .kind } >{ popularStatus .text } </em >}
401412 </li >
402413 );
@@ -623,6 +634,12 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
623634 .pricing-card:nth-child(3) { animation-delay: 0.2s; }
624635 .pricing-card:nth-child(4) { animation-delay: 0.3s; }
625636
637+ .pricing-card:has(.plan-model-help[open]),
638+ .pricing-card:has(.plan-model-help:hover),
639+ .pricing-card:has(.plan-model-help:focus-within) {
640+ z-index: 20;
641+ }
642+
626643 .pricing-card.plan-max {
627644 color: #f7f8f4;
628645 background: #11130f;
@@ -934,6 +951,70 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
934951 white-space: nowrap;
935952 }
936953
954+ .plan-model-title-with-help {
955+ display: inline-flex;
956+ align-items: center;
957+ gap: 6px;
958+ min-width: 0;
959+ }
960+
961+ .plan-model-help {
962+ position: relative;
963+ z-index: 3;
964+ flex: 0 0 16px;
965+ width: 16px;
966+ height: 16px;
967+ }
968+
969+ .plan-model-help summary {
970+ display: flex;
971+ align-items: center;
972+ justify-content: center;
973+ width: 16px;
974+ height: 16px;
975+ padding: 0;
976+ color: #5f645c;
977+ font-size: 10px;
978+ font-weight: 700;
979+ line-height: 1;
980+ list-style: none;
981+ cursor: help;
982+ background: rgba(255, 255, 255, 0.52);
983+ border: 1px solid #8a8f86;
984+ border-radius: 50%;
985+ }
986+
987+ .plan-model-help summary::-webkit-details-marker { display: none; }
988+ .plan-model-help summary::marker { content: ''; }
989+ .plan-model-help summary:focus-visible {
990+ outline: 2px solid #1f7e16;
991+ outline-offset: 2px;
992+ }
993+
994+ .plan-model-help-copy {
995+ position: absolute;
996+ z-index: 5;
997+ top: 23px;
998+ left: -8px;
999+ display: block;
1000+ width: min(250px, calc(100vw - 32px));
1001+ padding: 10px 12px;
1002+ color: #30342e;
1003+ font-size: 11px;
1004+ font-weight: 500;
1005+ line-height: 1.5;
1006+ text-align: left;
1007+ white-space: normal;
1008+ background: #fff;
1009+ border: 1px solid rgba(65, 72, 61, 0.16);
1010+ border-radius: 10px;
1011+ box-shadow: 0 10px 30px rgba(28, 35, 24, 0.12);
1012+ }
1013+
1014+ .plan-model-help:not([open]):not(:hover):not(:focus-within) > .plan-model-help-copy {
1015+ display: none;
1016+ }
1017+
9371018 .plan-model-module.unlimited-module h4,
9381019 .plan-model-module.recommended-model-module h4 { color: #1f7e16; }
9391020
@@ -980,6 +1061,11 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
9801061 white-space: nowrap;
9811062 }
9821063
1064+ .plan-model-module li > span.long-model-name {
1065+ font-size: 10.5px;
1066+ letter-spacing: -0.015em;
1067+ }
1068+
9831069 .plan-model-module li:nth-child(n + 4) { display: none; }
9841070 .plan-model-module.is-expanded li:nth-child(n + 4) { display: grid; }
9851071
@@ -1144,6 +1230,19 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
11441230 }
11451231
11461232 .plan-max .plan-model-module h4 { color: var(--pricing-accent); }
1233+ .plan-max .plan-model-help summary {
1234+ color: #a8e697;
1235+ background: rgba(120, 234, 87, 0.08);
1236+ border-color: rgba(168, 230, 151, 0.62);
1237+ }
1238+ .plan-max .plan-model-help-copy {
1239+ right: -8px;
1240+ left: auto;
1241+ color: #eef2eb;
1242+ background: #253024;
1243+ border-color: rgba(223, 239, 218, 0.16);
1244+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
1245+ }
11471246 .plan-max .plan-model-module header > span { color: #9caa97; }
11481247 .plan-max .plan-model-module li,
11491248 .plan-max .plan-benefit-list li { color: #eef2eb; }
@@ -1260,7 +1359,7 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
12601359
12611360 .individual-usage-row {
12621361 display: grid;
1263- grid-template-columns: 190px minmax(0, 1fr);
1362+ grid-template-columns: 220px minmax(0, 1fr);
12641363 align-items: center;
12651364 min-height: 48px;
12661365 padding: 0 16px;
@@ -1339,7 +1438,7 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
13391438
13401439 .individual-usage-axis {
13411440 display: grid;
1342- grid-template-columns: 190px minmax(0, 1fr);
1441+ grid-template-columns: 220px minmax(0, 1fr);
13431442 align-items: start;
13441443 min-height: 38px;
13451444 padding: 0 16px;
0 commit comments