@cloud-ru/ds-theme 1.0.0 → 1.0.1-preview-ab6621d3.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.
package/README.md CHANGED
@@ -183,7 +183,7 @@ export function LocalDensity() {
183
183
 
184
184
  #### Related types
185
185
 
186
- - `Brand` = `"brandA"` \| `"brandB"` \| `"brandC"` \| `"brandD"` \| `"brandE"`
186
+ - `Brand` = `"brandA"` \| `"brandB"` \| `"brandC"` \| `"brandD"` \| `"brandE"` \| `"brandF"`
187
187
 
188
188
  - `BrandRole` = `"alter"` \| `"alter2"` \| `"alter3"` \| `"alter4"` \| `"main"`
189
189
 
@@ -196,7 +196,7 @@ export function LocalDensity() {
196
196
  | Prop | Type | Default | Description |
197
197
  |------|------|---------|-------------|
198
198
  | `acrylic` | `boolean \| undefined` | — | Акрил (blur-материал) — `sn-yes` при `true`, иначе `sn-no`. |
199
- | `brand` | `"brandA"` \| `"brandB"` \| `"brandC"` \| `"brandD"` \| `"brandE"` | — | Бренд — `sn-brandA` … |
199
+ | `brand` | `"brandA"` \| `"brandB"` \| `"brandC"` \| `"brandD"` \| `"brandE"` \| `"brandF"` | — | Бренд — `sn-brandA` … |
200
200
  | `brandRole` | `"alter"` \| `"alter2"` \| `"alter3"` \| `"alter4"` \| `"main"` | — | Роль бренда (палитра) — `sn-main` … |
201
201
  | `colorScheme` | `"dark"` \| `"light"` | — | Цветовая схема — `sn-light` / `sn-dark`. |
202
202
  | `density` | `"comfort"` \| `"compact"` \| `"spacious"` | — | Плотность — `sn-comfort` / `sn-compact` / `sn-spacious`. |
@@ -222,7 +222,7 @@ export function LocalDensity() {
222
222
 
223
223
  #### Related types
224
224
 
225
- - `Brand` = `"brandA"` \| `"brandB"` \| `"brandC"` \| `"brandD"` \| `"brandE"`
225
+ - `Brand` = `"brandA"` \| `"brandB"` \| `"brandC"` \| `"brandD"` \| `"brandE"` \| `"brandF"`
226
226
 
227
227
  - `BrandRole` = `"alter"` \| `"alter2"` \| `"alter3"` \| `"alter4"` \| `"main"`
228
228
 
@@ -235,7 +235,7 @@ export function LocalDensity() {
235
235
  | Prop | Type | Default | Description |
236
236
  |------|------|---------|-------------|
237
237
  | `acrylic` | `boolean \| undefined` | — | Акрил (blur-материал) — `sn-yes` при `true`, иначе `sn-no`. |
238
- | `brand` | `"brandA"` \| `"brandB"` \| `"brandC"` \| `"brandD"` \| `"brandE"` | — | Бренд — `sn-brandA` … |
238
+ | `brand` | `"brandA"` \| `"brandB"` \| `"brandC"` \| `"brandD"` \| `"brandE"` \| `"brandF"` | — | Бренд — `sn-brandA` … |
239
239
  | `brandRole` | `"alter"` \| `"alter2"` \| `"alter3"` \| `"alter4"` \| `"main"` | — | Роль бренда (палитра) — `sn-main` … |
240
240
  | `colorScheme` | `"dark"` \| `"light"` | — | Цветовая схема — `sn-light` / `sn-dark`. |
241
241
  | `density` | `"comfort"` \| `"compact"` \| `"spacious"` | — | Плотность — `sn-comfort` / `sn-compact` / `sn-spacious`. |
@@ -248,7 +248,7 @@ export function LocalDensity() {
248
248
  - **PortalContext** — корневой DOM-узел для порталов.
249
249
  ## Кастомный бренд-цвет
250
250
 
251
- Помимо предустановленных брендов (`brandA` / `brandB` / `brandC` / `brandD` / `brandE`) `@cloud-ru/ds-theme` собирает бренд-палитру из одного seed-цвета — для white-label под клиента. Из seed генерируется полная шкала тонов `--sn-brand-color-primary-*` (OKLCH: светлота и насыщенность берутся из опорной шкалы, hue поворачивается к seed) плюс activated-тинты; семантический слой `--sn-theme-color-primary-*` каскадит из неё. Поэтому один цвет перекрашивает акцент во всех компонентах — и в светлой, и в тёмной схеме.
251
+ Помимо предустановленных брендов (`brandA` / `brandB` / `brandC` / `brandD` / `brandE` / `brandF`) `@cloud-ru/ds-theme` собирает бренд-палитру из одного seed-цвета — для white-label под клиента. Из seed генерируется полная шкала тонов `--sn-brand-color-primary-*` (OKLCH: светлота и насыщенность берутся из опорной шкалы, hue поворачивается к seed) плюс activated-тинты; семантический слой `--sn-theme-color-primary-*` каскадит из неё. Поэтому один цвет перекрашивает акцент во всех компонентах — и в светлой, и в тёмной схеме.
252
252
 
253
253
  Палитра применяется **CSS-правилом на бренд-классы** (`.sn-brandA/B/C/D/E`), а не inline-переменными на одном элементе. Это принципиально: компоненты, переобъявляющие полный набор `sn-*` на своих внутренних обёртках (Table, Stepper и т.п. через `useThemeClassnames`), заново объявляют бренд-палитру из класса — inline-переменные предка в таких поддеревьях перекрываются, а правило на том же бренд-классе — нет. Два способа применить:
254
254
 
@@ -4,13 +4,14 @@ export declare const DENSITY: {
4
4
  readonly Compact: "compact";
5
5
  readonly Spacious: "spacious";
6
6
  };
7
- /** Бренд. Класс `sn-brandA` / `sn-brandB` / `sn-brandC` / `sn-brandD` / `sn-brandE`. */
7
+ /** Бренд. Класс `sn-brandA` / `sn-brandB` / `sn-brandC` / `sn-brandD` / `sn-brandE` / `sn-brandF`. */
8
8
  export declare const BRAND: {
9
9
  readonly A: "brandA";
10
10
  readonly B: "brandB";
11
11
  readonly C: "brandC";
12
12
  readonly D: "brandD";
13
13
  readonly E: "brandE";
14
+ readonly F: "brandF";
14
15
  };
15
16
  /** Роль бренда (палитра). Класс `sn-main` / `sn-alter` … */
16
17
  export declare const BRAND_ROLE: {
@@ -9,13 +9,14 @@ exports.DENSITY = {
9
9
  Compact: 'compact',
10
10
  Spacious: 'spacious',
11
11
  };
12
- /** Бренд. Класс `sn-brandA` / `sn-brandB` / `sn-brandC` / `sn-brandD` / `sn-brandE`. */
12
+ /** Бренд. Класс `sn-brandA` / `sn-brandB` / `sn-brandC` / `sn-brandD` / `sn-brandE` / `sn-brandF`. */
13
13
  exports.BRAND = {
14
14
  A: 'brandA',
15
15
  B: 'brandB',
16
16
  C: 'brandC',
17
17
  D: 'brandD',
18
18
  E: 'brandE',
19
+ F: 'brandF',
19
20
  };
20
21
  /** Роль бренда (палитра). Класс `sn-main` / `sn-alter` … */
21
22
  exports.BRAND_ROLE = {
@@ -14,7 +14,7 @@ export type UseApplyCustomThemeProps = {
14
14
  };
15
15
  /**
16
16
  * Применяет кастомный бренд-цвет: генерирует из `color` бренд-палитру и инжектит `<style>`,
17
- * переопределяющий её на бренд-классах (`.sn-brandA/B/C/D/E`), а не inline на одном элементе — поэтому
17
+ * переопределяющий её на бренд-классах (`.sn-brandA/B/C/D/E/F`), а не inline на одном элементе — поэтому
18
18
  * цвет переживает переэмиты `sn-*` вложенными компонентами и доходит до порталов. Семантический слой
19
19
  * каскадит из палитры, красятся обе схемы.
20
20
  *
@@ -6,7 +6,7 @@ const customTheme_1 = require("../utils/customTheme");
6
6
  const useIsomorphicLayoutEffect_1 = require("./useIsomorphicLayoutEffect");
7
7
  /**
8
8
  * Применяет кастомный бренд-цвет: генерирует из `color` бренд-палитру и инжектит `<style>`,
9
- * переопределяющий её на бренд-классах (`.sn-brandA/B/C/D/E`), а не inline на одном элементе — поэтому
9
+ * переопределяющий её на бренд-классах (`.sn-brandA/B/C/D/E/F`), а не inline на одном элементе — поэтому
10
10
  * цвет переживает переэмиты `sn-*` вложенными компонентами и доходит до порталов. Семантический слой
11
11
  * каскадит из палитры, красятся обе схемы.
12
12
  *
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildBrandPaletteCss = buildBrandPaletteCss;
4
4
  const appearance_1 = require("../../constants/appearance");
5
5
  const buildBrandPaletteVars_1 = require("./buildBrandPaletteVars");
6
- // Правило нацелено на сами бренд-классы (`.sn-brandA/B/C/D/E`), а не на один элемент inline: компоненты,
6
+ // Правило нацелено на сами бренд-классы (`.sn-brandA/B/C/D/E/F`), а не на один элемент inline: компоненты,
7
7
  // переэмитящие набор `sn-*` на своих обёртках (Table/Stepper/Alert через `useThemeClassnames`), заново
8
8
  // объявляют `--sn-brand-color-primary-*` из класса бренда — inline на предке они перекрыли бы, правило
9
9
  // на том же бренд-классе — нет.
10
10
  // Один seed переопределяет сразу все бренд-классы (потребитель не знает, в какой бренд-слот завернётся
11
- // его поддерево). TODO FF-8813: возможность задавать seed индивидуально для каждого бренда (brandA/B/C/D/E).
11
+ // его поддерево). TODO FF-8813: возможность задавать seed индивидуально для каждого бренда (brandA/B/C/D/E/F).
12
12
  const BRAND_CLASS_SELECTOR = `:is(${Object.values(appearance_1.BRAND)
13
13
  .map(brand => `.sn-${brand}`)
14
14
  .join(',')})`;
@@ -4,13 +4,14 @@ export declare const DENSITY: {
4
4
  readonly Compact: "compact";
5
5
  readonly Spacious: "spacious";
6
6
  };
7
- /** Бренд. Класс `sn-brandA` / `sn-brandB` / `sn-brandC` / `sn-brandD` / `sn-brandE`. */
7
+ /** Бренд. Класс `sn-brandA` / `sn-brandB` / `sn-brandC` / `sn-brandD` / `sn-brandE` / `sn-brandF`. */
8
8
  export declare const BRAND: {
9
9
  readonly A: "brandA";
10
10
  readonly B: "brandB";
11
11
  readonly C: "brandC";
12
12
  readonly D: "brandD";
13
13
  readonly E: "brandE";
14
+ readonly F: "brandF";
14
15
  };
15
16
  /** Роль бренда (палитра). Класс `sn-main` / `sn-alter` … */
16
17
  export declare const BRAND_ROLE: {
@@ -6,13 +6,14 @@ export const DENSITY = {
6
6
  Compact: 'compact',
7
7
  Spacious: 'spacious',
8
8
  };
9
- /** Бренд. Класс `sn-brandA` / `sn-brandB` / `sn-brandC` / `sn-brandD` / `sn-brandE`. */
9
+ /** Бренд. Класс `sn-brandA` / `sn-brandB` / `sn-brandC` / `sn-brandD` / `sn-brandE` / `sn-brandF`. */
10
10
  export const BRAND = {
11
11
  A: 'brandA',
12
12
  B: 'brandB',
13
13
  C: 'brandC',
14
14
  D: 'brandD',
15
15
  E: 'brandE',
16
+ F: 'brandF',
16
17
  };
17
18
  /** Роль бренда (палитра). Класс `sn-main` / `sn-alter` … */
18
19
  export const BRAND_ROLE = {
@@ -14,7 +14,7 @@ export type UseApplyCustomThemeProps = {
14
14
  };
15
15
  /**
16
16
  * Применяет кастомный бренд-цвет: генерирует из `color` бренд-палитру и инжектит `<style>`,
17
- * переопределяющий её на бренд-классах (`.sn-brandA/B/C/D/E`), а не inline на одном элементе — поэтому
17
+ * переопределяющий её на бренд-классах (`.sn-brandA/B/C/D/E/F`), а не inline на одном элементе — поэтому
18
18
  * цвет переживает переэмиты `sn-*` вложенными компонентами и доходит до порталов. Семантический слой
19
19
  * каскадит из палитры, красятся обе схемы.
20
20
  *
@@ -3,7 +3,7 @@ import { buildBrandPaletteCss } from '../utils/customTheme/index.js';
3
3
  import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js';
4
4
  /**
5
5
  * Применяет кастомный бренд-цвет: генерирует из `color` бренд-палитру и инжектит `<style>`,
6
- * переопределяющий её на бренд-классах (`.sn-brandA/B/C/D/E`), а не inline на одном элементе — поэтому
6
+ * переопределяющий её на бренд-классах (`.sn-brandA/B/C/D/E/F`), а не inline на одном элементе — поэтому
7
7
  * цвет переживает переэмиты `sn-*` вложенными компонентами и доходит до порталов. Семантический слой
8
8
  * каскадит из палитры, красятся обе схемы.
9
9
  *
@@ -1,11 +1,11 @@
1
1
  import { BRAND } from '../../constants/appearance.js';
2
2
  import { buildBrandPaletteVars } from './buildBrandPaletteVars.js';
3
- // Правило нацелено на сами бренд-классы (`.sn-brandA/B/C/D/E`), а не на один элемент inline: компоненты,
3
+ // Правило нацелено на сами бренд-классы (`.sn-brandA/B/C/D/E/F`), а не на один элемент inline: компоненты,
4
4
  // переэмитящие набор `sn-*` на своих обёртках (Table/Stepper/Alert через `useThemeClassnames`), заново
5
5
  // объявляют `--sn-brand-color-primary-*` из класса бренда — inline на предке они перекрыли бы, правило
6
6
  // на том же бренд-классе — нет.
7
7
  // Один seed переопределяет сразу все бренд-классы (потребитель не знает, в какой бренд-слот завернётся
8
- // его поддерево). TODO FF-8813: возможность задавать seed индивидуально для каждого бренда (brandA/B/C/D/E).
8
+ // его поддерево). TODO FF-8813: возможность задавать seed индивидуально для каждого бренда (brandA/B/C/D/E/F).
9
9
  const BRAND_CLASS_SELECTOR = `:is(${Object.values(BRAND)
10
10
  .map(brand => `.sn-${brand}`)
11
11
  .join(',')})`;