tensorgrid-ui 1.1.5 → 1.2.0

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.
Files changed (2) hide show
  1. package/lib/client.js +29 -5
  2. package/package.json +1 -1
package/lib/client.js CHANGED
@@ -177,7 +177,9 @@ window.__ModuleLoader__.load({
177
177
  'intensity.vivid': 'Vivid',
178
178
  'accent.title': 'Obsidian / Ion accent',
179
179
  'accent.hint': 'Leading tone of the interface and the glow',
180
+ 'auth.nav': 'Subscriptions',
180
181
  'auth.title': 'Provider sign-in',
182
+ 'auth.others': 'Only providers offering a subscription sign-in are listed. The rest — Z.AI among them — offer an API key only; configure those under Models.',
181
183
  'auth.hint': 'Sign in with a subscription instead of an API key. The account stays on this computer.',
182
184
  'auth.signIn': 'Sign in',
183
185
  'auth.again': 'Sign in again',
@@ -222,7 +224,9 @@ window.__ModuleLoader__.load({
222
224
  'intensity.vivid': '强烈',
223
225
  'accent.title': 'Obsidian / Ion 主色',
224
226
  'accent.hint': '界面与光晕的主色调',
227
+ 'auth.nav': '订阅',
225
228
  'auth.title': '登录服务商',
229
+ 'auth.others': '这里只列出提供订阅登录的服务商。其余(包括 Z.AI)只提供 API 密钥,请在「模型」中配置。',
226
230
  'auth.hint': '使用订阅登录,而非 API 密钥。账号仅保存在本机。',
227
231
  'auth.signIn': '登录',
228
232
  'auth.again': '重新登录',
@@ -1564,7 +1568,9 @@ window.__ModuleLoader__.load({
1564
1568
  'intensity.vivid': 'Ярко',
1565
1569
  'accent.title': 'Акцент Obsidian / Ion',
1566
1570
  'accent.hint': 'Ведущий тон интерфейса и свечения',
1571
+ 'auth.nav': 'Подписки',
1567
1572
  'auth.title': 'Вход к провайдерам',
1573
+ 'auth.others': 'Здесь только провайдеры, у которых есть вход по подписке. Остальные — в том числе Z.AI — предлагают лишь ключ API; их место в разделе «Модели».',
1568
1574
  'auth.hint': 'Войти по подписке вместо ключа API. Учётная запись остаётся на этом компьютере.',
1569
1575
  'auth.signIn': 'Войти',
1570
1576
  'auth.again': 'Войти заново',
@@ -1710,7 +1716,7 @@ window.__ModuleLoader__.load({
1710
1716
  // поэтому строка остаётся согласованной при любой палитре.
1711
1717
  '.dsx-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;}',
1712
1718
  '.dsx-setting__title{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:500;}',
1713
- '.dsx-setting--stack{flex-direction:column;align-items:stretch;gap:10px}.dsx-auth__list{display:flex;flex-direction:column;gap:6px}.dsx-auth__row{display:flex;align-items:center;justify-content:space-between;gap:12px}.dsx-auth__name{color:var(--dsw-alias-label-primary)}.dsx-auth__badge{margin-left:8px;padding:1px 6px;border-radius:999px;font-size:11px;color:var(--dsw-alias-state-success-primary);border:1px solid var(--dsw-alias-border-l2)}.dsx-auth__panel{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:8px;background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1)}.dsx-auth__notice,.dsx-auth__prompt{display:flex;flex-direction:column;gap:6px;color:var(--dsw-alias-label-secondary)}.dsx-auth__link{color:var(--dsw-alias-brand-primary);word-break:break-all}.dsx-auth__code{font-family:ui-monospace,monospace;letter-spacing:.08em;color:var(--dsw-alias-label-primary)}.dsx-auth__input{flex:1;min-width:0;padding:4px 8px;border-radius:6px;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary)}.dsx-setting__hint--strong{color:var(--dsw-alias-label-primary)}.dsx-setting__hint--warn{color:var(--dsw-alias-state-warn-primary)}.dsx-setting__hint{color:var(--dsw-alias-label-secondary);font-size:12px;margin-top:2px;}',
1719
+ '.dsx-subs{display:flex;flex-direction:column;gap:14px;padding:4px 0}.dsx-subs__head{display:flex;flex-direction:column;gap:4px}.dsx-subs__title{font-weight:600;font-size:15px;color:var(--dsw-alias-label-primary)}.dsx-subs__note{padding-top:6px;border-top:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:1.5}.dsx-setting--stack{flex-direction:column;align-items:stretch;gap:10px}.dsx-auth__list{display:flex;flex-direction:column;gap:6px}.dsx-auth__row{display:flex;align-items:center;justify-content:space-between;gap:12px}.dsx-auth__name{color:var(--dsw-alias-label-primary)}.dsx-auth__badge{margin-left:8px;padding:1px 6px;border-radius:999px;font-size:11px;color:var(--dsw-alias-state-success-primary);border:1px solid var(--dsw-alias-border-l2)}.dsx-auth__panel{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:8px;background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1)}.dsx-auth__notice,.dsx-auth__prompt{display:flex;flex-direction:column;gap:6px;color:var(--dsw-alias-label-secondary)}.dsx-auth__link{color:var(--dsw-alias-brand-primary);word-break:break-all}.dsx-auth__code{font-family:ui-monospace,monospace;letter-spacing:.08em;color:var(--dsw-alias-label-primary)}.dsx-auth__input{flex:1;min-width:0;padding:4px 8px;border-radius:6px;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary)}.dsx-setting__hint--strong{color:var(--dsw-alias-label-primary)}.dsx-setting__hint--warn{color:var(--dsw-alias-state-warn-primary)}.dsx-setting__hint{color:var(--dsw-alias-label-secondary);font-size:12px;margin-top:2px;}',
1714
1720
  '.dsx-setting__control{display:inline-flex;padding:2px;gap:2px;border:1px solid var(--dsw-alias-border-l1);border-radius:8px;background:var(--dsw-alias-bg-layer-2);flex:none;}',
1715
1721
  '.dsx-seg{appearance:none;border:0;cursor:pointer;padding:4px 10px;border-radius:6px;font-size:12px;line-height:18px;background:transparent;color:var(--dsw-alias-label-secondary);transition:background .16s ease,color .16s ease;}',
1716
1722
  '.dsx-seg:hover{color:var(--dsw-alias-label-primary);}',
@@ -2098,11 +2104,12 @@ window.__ModuleLoader__.load({
2098
2104
  }
2099
2105
 
2100
2106
  return jsxs('div', {
2101
- className: 'dsx-setting dsx-setting--stack',
2107
+ className: 'dsx-subs',
2102
2108
  children: [
2103
2109
  jsxs('div', {
2110
+ className: 'dsx-subs__head',
2104
2111
  children: [
2105
- jsx('div', { className: 'dsx-setting__title', children: t('auth.title') }),
2112
+ jsx('div', { className: 'dsx-subs__title', children: t('auth.title') }),
2106
2113
  jsx('div', { className: 'dsx-setting__hint', children: t('auth.hint') }),
2107
2114
  ],
2108
2115
  }),
@@ -2149,6 +2156,11 @@ window.__ModuleLoader__.load({
2149
2156
  }),
2150
2157
  })
2151
2158
  : null,
2159
+ // Здесь только провайдеры, у которых есть вход по подписке. У
2160
+ // остальных — включая Z.AI — поставщик предлагает единственный
2161
+ // способ, ключ API, и его место в разделе «Модели». Без этой
2162
+ // строки отсутствие знакомого имени выглядит как недоработка.
2163
+ jsx('div', { className: 'dsx-subs__note', children: t('auth.others') }),
2152
2164
  ],
2153
2165
  })
2154
2166
  }
@@ -2361,9 +2373,21 @@ window.__ModuleLoader__.load({
2361
2373
  ),
2362
2374
  )
2363
2375
 
2364
- ctx.slots.inject('settings.general.item', () =>
2376
+ // Подписки — собственный раздел настроек, а не строка среди прочих.
2377
+ //
2378
+ // `settings.section` — аддитивный список: своя запись добавляет свою
2379
+ // вкладку и ничего не замещает. Порядок 12 ставит её между «Моделями»
2380
+ // (10) и «Плагинами» (15): вход к провайдерам — сосед моделей, а не
2381
+ // оформления.
2382
+ ctx.slots.inject('settings.section', () =>
2365
2383
  ctx.slots.register(
2366
- { name: 'settings.general.item', id: 'tensorgrid-auth', order: 10, locale: LOCALE_NS },
2384
+ {
2385
+ name: 'settings.section',
2386
+ id: 'tensorgrid-subscriptions',
2387
+ order: 12,
2388
+ locale: LOCALE_NS,
2389
+ label: () => ctx.locale.translate(LOCALE_NS, 'auth.nav'),
2390
+ },
2367
2391
  AuthRow,
2368
2392
  ),
2369
2393
  )
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tensorgrid-ui",
3
- "version": "1.1.5",
3
+ "version": "1.2.0",
4
4
  "description": "TENSOR GRID — фирменный интерфейс поверх DeepSeek Harness: палитра, живой ambient-слой, айдентика и русский язык-пакет",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",