@efficiency-point/design-system 0.10.0 → 0.11.1

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
@@ -31,11 +31,13 @@ export function Example() {
31
31
 
32
32
  ## Темизация
33
33
 
34
- Доступны две полные палитры: **РПФ** (`signal`, по умолчанию) и **Стекло** (`teal`, исходная тема версии 0.3.0). Тема «РПФ» использует зелёный primary #007b45, жёлтый secondary #f6c500 с тёмным текстом, нейтральные серые поверхности, синие информационные и красные ошибочные состояния. Геометрия, типографика и API существующих компонентов не меняются.
34
+ Доступны три полные палитры: **РПФ** (`reft`, по умолчанию), **Стекло** (`steklo`) и **Равис** (`ravis`). Тема «РПФ» использует зелёный primary #007b45, жёлтый secondary #f6c500 с тёмным текстом, нейтральные серые поверхности, синие информационные и красные ошибочные состояния. Геометрия, типографика и API существующих компонентов не меняются.
35
35
 
36
- В теме «Стекло» сохранены исходные значения: primary #16756d; brand ссылается на primary. Сливовый secondary #76528b (hover #634575, active #533963, surface #f3eef7) предназначен для специальных действий. Для сохранения прежнего отображения при обновлении задайте `<html data-ds-theme="teal">` **до первой отрисовки**.
36
+ В теме «Стекло» сохранены исходные значения: primary #16756d; brand ссылается на primary. Сливовый secondary #76528b (hover #634575, active #533963, surface #f3eef7) предназначен для специальных действий. Для сохранения прежнего отображения при обновлении задайте `<html data-ds-theme="steklo">` **до первой отрисовки**.
37
37
 
38
- `styles.css` содержит обе темы. Атрибут `data-ds-theme="teal"` или `data-ds-theme="signal"` на `html` переключает всю палитру, включая порталы. Локальный атрибут поддерживает сравнение обычных компонентов; порталы наследуют тему документа. Переопределения потребителя через поздний `:root` сохраняют приоритет.
38
+ Тема «Равис» использует фирменный brand #e25c2a, мягкую подложку #ffdfd2 и нейтральный тёмный secondary #2e3844. Для обычных primary-кнопок применяется производный #c34d20: он сохраняет характер бренда и обеспечивает контраст 4.77:1 с белым текстом, тогда как точный #e25c2a даёт 3.62:1. Семантические success/warning/error/info-цвета остаются независимыми от бренда.
39
+
40
+ `styles.css` содержит все темы. Атрибут `data-ds-theme="steklo"`, `data-ds-theme="reft"` или `data-ds-theme="ravis"` на `html` переключает всю палитру, включая порталы. Старые атрибуты `teal` и `signal` временно поддерживаются как совместимые алиасы, а сохранённые значения автоматически нормализуются в `steklo` и `reft`. Локальный атрибут поддерживает сравнение обычных компонентов; порталы наследуют тему документа. Переопределения потребителя через поздний `:root` сохраняют приоритет.
39
41
 
40
42
  ### Переключатель и сохранение
41
43
 
@@ -56,11 +58,13 @@ export function ThemePicker() {
56
58
  }
57
59
  ```
58
60
 
59
- `DSThemeSwitcher` — controlled-компонент (`value`, `onChange`, необязательные `compact` и `disabled`). Меню управляется клавиатурой: Tab, стрелки, Space, Escape. `compact` скрывает подпись, сохраняя доступное имя и подсказку. `applyDSTheme` применяет тему к `document.documentElement` и сохраняет её под ключом `efficiency-point.design-system.theme`; `getStoredDSTheme` возвращает тему «РПФ» (`signal`) при отсутствии/невалидности значения или блокировке storage. Импорт библиотеки сам не обращается к DOM и не меняет storage. При SSR задавайте начальный атрибут на сервере либо восстанавливайте выбор ранним клиентским скриптом до отображения страницы.
61
+ `DSThemeSwitcher` — controlled-компонент (`value`, `onChange`, необязательные `compact`, `disabled` и `availability`). `availability` принимает частичную карту `{ steklo, reft, ravis }` с boolean-флагами; пропущенные значения берутся из `DEFAULT_DS_THEME_AVAILABILITY`. По умолчанию доступны «Стекло» и «РПФ», а «Равис» отключён. Меню управляется клавиатурой: Tab, стрелки, Space, Escape. `compact` скрывает подпись, сохраняя доступное имя и подсказку. `applyDSTheme` применяет тему к `document.documentElement` и сохраняет её под ключом `efficiency-point.design-system.theme`; `getStoredDSTheme` возвращает тему «РПФ» (`reft`) при отсутствии/невалидности значения или блокировке storage. Импорт библиотеки сам не обращается к DOM и не меняет storage. При SSR задавайте начальный атрибут на сервере либо восстанавливайте выбор ранним клиентским скриптом до отображения страницы.
62
+
63
+ Для временного показа всех тем выполните в консоли браузера `activate_themes()`. Команда действует в текущей browser-сессии, сохраняет флаг только в `sessionStorage` и сразу обновляет все смонтированные `DSThemeSwitcher`, перекрывая их `availability`. Постоянную доступность задавайте явно, например: `<DSThemeSwitcher availability={{ ravis: true }} ... />`.
60
64
 
61
- В Storybook переключатель в верхней панели синхронизирован с **Design System → Foundations → Themes → Предпросмотр тем** и примером самого переключателя. Выбор сохраняется после перезагрузки, применяется в Canvas/Docs и синхронизируется между вкладками. Сравнение двух палитр на странице предпросмотра остаётся фиксированным.
65
+ В Storybook переключатель в верхней панели синхронизирован с **Design System → Foundations → Themes → Предпросмотр тем** и отдельной страницей **Design System → Components → DSThemeSwitcher → Отладка**. На странице отладки доступны controlled-пример, текущий ID темы, состояния обычного, компактного и недоступного переключателя, а также Storybook Controls. Выбор сохраняется после перезагрузки, применяется в Canvas/Docs и синхронизируется между вкладками. Сравнение палитр на странице предпросмотра остаётся фиксированным.
62
66
 
63
- Регрессия тем: после `npm run build` запустите `node tests/theme-browser.mjs`. Проверяются исходные токены «Стекло» (`teal`), состояния кнопок, полнота темы «РПФ» (`signal`), переопределения потребителя и forced-colors. Для проверки переключателя, localStorage, вкладок, Docs и mobile соберите и запустите Storybook, задайте `STORYBOOK_URL` (по умолчанию `http://127.0.0.1:6093`) и выполните `node tests/theme-storybook.mjs`.
67
+ Регрессия тем: после `npm run build` запустите `node tests/theme-browser.mjs`. Проверяются исходные токены «Стекло» (`steklo`), состояния кнопок, полнота темы «РПФ» (`reft`), фирменные токены и контраст кнопок «Равис», переопределения потребителя и forced-colors. Для проверки переключателя, localStorage, вкладок, Docs и mobile соберите и запустите Storybook, задайте `STORYBOOK_URL` (по умолчанию `http://127.0.0.1:6093`) и выполните `node tests/theme-storybook.mjs`.
64
68
 
65
69
  Информационный акцент темы «Стекло»: --color-info #087d71, текст #11665d, фон #e8f4f1. Цвета переопределяются публичными CSS-токенами; --color-background ссылается на --color-surface. Светлый --color-accent-on-dark #5ed5c8 используется на тёмной панели видеоплеера. В теме «РПФ» видеоплеер использует нейтральную тёмную палитру и жёлтый акцент. Цвета backdrop и тени также вынесены в токены. Для согласованного движения доступны `--motion-duration-fast`, `--motion-duration-standard`, `--motion-duration-slow`, а также easing-токены `--motion-easing-standard`, `--motion-easing-enter` и `--motion-easing-exit`; компоненты отключают необязательное движение при `prefers-reduced-motion: reduce`.
66
70
 
@@ -110,10 +114,10 @@ export function ThemePicker() {
110
114
  ### Фавиконы
111
115
 
112
116
  Пакет содержит тематизированные браузерные favicon и полный статический набор в
113
- `@efficiency-point/design-system/assets/favicon`. Signal является дефолтом:
114
- `favicon.svg`, ICO, PNG, Apple Touch Icon и PWA-иконки используют Signal-жёлтое
117
+ `@efficiency-point/design-system/assets/favicon`. РПФ является дефолтом:
118
+ `favicon.svg`, ICO, PNG, Apple Touch Icon и PWA-иконки используют жёлтое
115
119
  поле со светлым стеклом. Для переключения вкладки также поставляются отдельные
116
- `favicon-signal.svg` и `favicon-teal.svg` с одинаковой геометрией.
120
+ `favicon-reft.svg`, `favicon-steklo.svg` и `favicon-ravis.svg` с одинаковой геометрией. Старые `favicon-signal.svg` и `favicon-teal.svg` сохранены для совместимости.
117
121
 
118
122
  Для Vite отдельный asset можно импортировать как URL:
119
123
 
@@ -138,7 +142,7 @@ npx ds-copy-favicons public --force
138
142
  После копирования подключите метаданные в `index.html`:
139
143
 
140
144
  ```html
141
- <link rel="icon" href="/favicon.svg" type="image/svg+xml" data-ds-favicon="signal">
145
+ <link rel="icon" href="/favicon.svg" type="image/svg+xml" data-ds-favicon="reft">
142
146
  <link rel="apple-touch-icon" href="/apple-touch-icon.png">
143
147
  <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#f6c500">
144
148
  <link rel="manifest" href="/site.webmanifest">
@@ -162,13 +166,13 @@ setTheme(getStoredDSTheme());
162
166
  Если favicon лежат не в корне сайта, передайте `basePath`:
163
167
 
164
168
  ```ts
165
- applyDSBrandTheme('teal', { basePath: '/assets/favicon' });
169
+ applyDSBrandTheme('steklo', { basePath: '/assets/favicon' });
166
170
  ```
167
171
 
168
172
  `applyDSTheme` сохраняет прежнее поведение и не меняет favicon автоматически,
169
173
  поэтому обновление пакета обратно совместимо. Для новой темы TypeScript требует
170
174
  добавить запись в `DS_FAVICON_THEMES` и соответствующий SVG-файл. Установленные
171
- Apple/PWA-иконки остаются Signal-дефолтом: платформы кешируют их независимо от
175
+ Apple/PWA-иконки остаются РПФ-дефолтом: платформы кешируют их независимо от
172
176
  текущей темы приложения.
173
177
 
174
178
  Не объявляйте `favicon.ico` отдельным `rel="icon"` рядом с тематическим SVG:
@@ -0,0 +1,13 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-labelledby="title desc">
2
+ <title id="title">Равис</title>
3
+ <desc id="desc">Светлая стеклянная плоскость на фирменном оранжевом поле Равис.</desc>
4
+ <defs>
5
+ <linearGradient id="bg" x1="8" y1="5" x2="57" y2="61" gradientUnits="userSpaceOnUse"><stop stop-color="#f28b63"/><stop offset=".45" stop-color="#e25c2a"/><stop offset="1" stop-color="#aa3d16"/></linearGradient>
6
+ <linearGradient id="edge" x1="15" y1="10" x2="21" y2="55" gradientUnits="userSpaceOnUse"><stop stop-color="#fff4ef"/><stop offset="1" stop-color="#f4c9b8"/></linearGradient>
7
+ <linearGradient id="pane" x1="21" y1="11" x2="50" y2="51" gradientUnits="userSpaceOnUse"><stop stop-color="#fff"/><stop offset="1" stop-color="#ffdfd2"/></linearGradient>
8
+ </defs>
9
+ <rect x="2" y="2" width="60" height="60" rx="14" fill="url(#bg)"/>
10
+ <path d="M15 12 21 10v44l-6-2z" fill="url(#edge)"/>
11
+ <path d="m21 10 29 14v16L21 54z" fill="url(#pane)"/>
12
+ <path d="m22 11.5 27 13v2L22 14z" fill="#fff" opacity=".8"/>
13
+ </svg>
@@ -0,0 +1,13 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-labelledby="title desc">
2
+ <title id="title">РПФ</title>
3
+ <desc id="desc">Светлая стеклянная плоскость на жёлтом поле РПФ.</desc>
4
+ <defs>
5
+ <linearGradient id="bg" x1="8" y1="5" x2="57" y2="61" gradientUnits="userSpaceOnUse"><stop stop-color="#ffe36c"/><stop offset=".45" stop-color="#f6c500"/><stop offset="1" stop-color="#c9a000"/></linearGradient>
6
+ <linearGradient id="edge" x1="15" y1="10" x2="21" y2="55" gradientUnits="userSpaceOnUse"><stop stop-color="#65f1e3"/><stop offset="1" stop-color="#16b8ad"/></linearGradient>
7
+ <linearGradient id="pane" x1="21" y1="11" x2="50" y2="51" gradientUnits="userSpaceOnUse"><stop stop-color="#fff"/><stop offset="1" stop-color="#c8f0ec"/></linearGradient>
8
+ </defs>
9
+ <rect x="2" y="2" width="60" height="60" rx="14" fill="url(#bg)"/>
10
+ <path d="M15 12 21 10v44l-6-2z" fill="url(#edge)"/>
11
+ <path d="m21 10 29 14v16L21 54z" fill="url(#pane)"/>
12
+ <path d="m22 11.5 27 13v2L22 14z" fill="#fff" opacity=".8"/>
13
+ </svg>
@@ -0,0 +1,13 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-labelledby="title desc">
2
+ <title id="title">Стекло</title>
3
+ <desc id="desc">Светлая стеклянная плоскость на глубокой бирюзовой подложке.</desc>
4
+ <defs>
5
+ <linearGradient id="bg" x1="8" y1="5" x2="57" y2="61" gradientUnits="userSpaceOnUse"><stop stop-color="#176f69"/><stop offset="1" stop-color="#0b3e3a"/></linearGradient>
6
+ <linearGradient id="edge" x1="15" y1="10" x2="21" y2="55" gradientUnits="userSpaceOnUse"><stop stop-color="#65f1e3"/><stop offset="1" stop-color="#16b8ad"/></linearGradient>
7
+ <linearGradient id="pane" x1="21" y1="11" x2="50" y2="51" gradientUnits="userSpaceOnUse"><stop stop-color="#fff"/><stop offset="1" stop-color="#c8f0ec"/></linearGradient>
8
+ </defs>
9
+ <rect x="2" y="2" width="60" height="60" rx="14" fill="url(#bg)"/>
10
+ <path d="M15 12 21 10v44l-6-2z" fill="url(#edge)"/>
11
+ <path d="m21 10 29 14v16L21 54z" fill="url(#pane)"/>
12
+ <path d="m22 11.5 27 13v2L22 14z" fill="#fff" opacity=".8"/>
13
+ </svg>
@@ -1,4 +1,4 @@
1
- import { DSTheme } from '../components/DSThemeSwitcher/theme';
1
+ import { DSTheme, DSThemeInput } from '../components/DSThemeSwitcher/theme';
2
2
  export type DSFaviconThemeConfig = {
3
3
  assetName: string;
4
4
  themeColor: string;
@@ -8,18 +8,22 @@ export type DSFaviconOptions = {
8
8
  };
9
9
  export declare const DEFAULT_DS_FAVICON_THEME: DSTheme;
10
10
  export declare const DS_FAVICON_THEMES: {
11
- readonly signal: {
12
- readonly assetName: "favicon-signal.svg";
11
+ readonly reft: {
12
+ readonly assetName: "favicon-reft.svg";
13
13
  readonly themeColor: "#f6c500";
14
14
  };
15
- readonly teal: {
16
- readonly assetName: "favicon-teal.svg";
15
+ readonly steklo: {
16
+ readonly assetName: "favicon-steklo.svg";
17
17
  readonly themeColor: "#0b3e3a";
18
18
  };
19
+ readonly ravis: {
20
+ readonly assetName: "favicon-ravis.svg";
21
+ readonly themeColor: "#e25c2a";
22
+ };
19
23
  };
20
- export declare const getDSFaviconHref: (theme?: DSTheme, basePath?: string) => string;
24
+ export declare const getDSFaviconHref: (theme?: DSThemeInput, basePath?: string) => string;
21
25
  /** Update the browser favicon and theme-color metadata. Safe to call during SSR. */
22
- export declare const applyDSFavicon: (theme?: DSTheme, options?: DSFaviconOptions) => void;
26
+ export declare const applyDSFavicon: (theme?: DSThemeInput, options?: DSFaviconOptions) => void;
23
27
  /** Apply the visual theme and its favicon together without changing applyDSTheme behavior. */
24
- export declare const applyDSBrandTheme: (theme: DSTheme, options?: DSFaviconOptions) => void;
28
+ export declare const applyDSBrandTheme: (theme: DSThemeInput, options?: DSFaviconOptions) => void;
25
29
  //# sourceMappingURL=favicon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"favicon.d.ts","sourceRoot":"","sources":["../../src/brand/favicon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAEjF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,OAAkB,CAAC;AAE1D,eAAO,MAAM,iBAAiB;;;;;;;;;CAG4B,CAAC;AAI3D,eAAO,MAAM,gBAAgB,GAAI,QAAO,OAAkC,EAAE,iBAAc,KAAG,MACpB,CAAC;AAE1E,oFAAoF;AACpF,eAAO,MAAM,cAAc,GAAI,QAAO,OAAkC,EAAE,UAAS,gBAAqB,KAAG,IA6B1G,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,EAAE,UAAU,gBAAgB,KAAG,IAG9E,CAAC"}
1
+ {"version":3,"file":"favicon.d.ts","sourceRoot":"","sources":["../../src/brand/favicon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEtH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,OAAgB,CAAC;AAExD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAI4B,CAAC;AAI3D,eAAO,MAAM,gBAAgB,GAAI,QAAO,YAAuC,EAAE,iBAAc,KAAG,MAGjG,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,cAAc,GAAI,QAAO,YAAuC,EAAE,UAAS,gBAAqB,KAAG,IA8B/G,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,GAAI,OAAO,YAAY,EAAE,UAAU,gBAAgB,KAAG,IAGnF,CAAC"}
@@ -1,9 +1,11 @@
1
- import { DSTheme } from './theme';
1
+ import { DSTheme, DSThemeInput } from './theme';
2
+ import { DSThemeAvailability } from './themeAvailability';
2
3
  export type DSThemeSwitcherProps = {
3
- value: DSTheme;
4
+ value: DSThemeInput;
4
5
  onChange: (theme: DSTheme) => void;
5
6
  compact?: boolean;
6
7
  disabled?: boolean;
8
+ availability?: DSThemeAvailability;
7
9
  };
8
- export declare const DSThemeSwitcher: ({ value, onChange, compact, disabled }: DSThemeSwitcherProps) => import("react").JSX.Element;
10
+ export declare const DSThemeSwitcher: ({ value, onChange, compact, disabled, availability }: DSThemeSwitcherProps) => import("react").JSX.Element;
9
11
  //# sourceMappingURL=DSThemeSwitcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSThemeSwitcher.d.ts","sourceRoot":"","sources":["../../../src/components/DSThemeSwitcher/DSThemeSwitcher.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvD,MAAM,MAAM,oBAAoB,GAAG;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,wCAAwD,oBAAoB,gCAoE3G,CAAC"}
1
+ {"version":3,"file":"DSThemeSwitcher.d.ts","sourceRoot":"","sources":["../../../src/components/DSThemeSwitcher/DSThemeSwitcher.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAoC,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5F,OAAO,EAAsD,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGnH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,sDAAsE,oBAAoB,gCAwEzH,CAAC"}
@@ -1,9 +1,13 @@
1
- export type DSTheme = 'teal' | 'signal';
1
+ export declare const DS_THEMES: readonly ["steklo", "reft", "ravis"];
2
+ export type DSTheme = typeof DS_THEMES[number];
3
+ export type DSLegacyTheme = 'teal' | 'signal';
4
+ export type DSThemeInput = DSTheme | DSLegacyTheme;
2
5
  export declare const DS_THEME_STORAGE_KEY = "efficiency-point.design-system.theme";
3
6
  export declare const DS_THEME_NAMES: Record<DSTheme, string>;
4
7
  export declare const isDSTheme: (value: unknown) => value is DSTheme;
8
+ export declare const normalizeDSTheme: (value: unknown) => DSTheme | null;
5
9
  /** Safe to call during SSR and when browser storage is unavailable. */
6
10
  export declare const getStoredDSTheme: () => DSTheme;
7
11
  /** Apply to the document so portals inherit the same theme. No import-time side effects. */
8
- export declare const applyDSTheme: (theme: DSTheme) => void;
12
+ export declare const applyDSTheme: (theme: DSThemeInput) => void;
9
13
  //# sourceMappingURL=theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/components/DSThemeSwitcher/theme.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAExC,eAAO,MAAM,oBAAoB,yCAAyC,CAAC;AAC3E,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAqC,CAAC;AAEzF,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,OAAiD,CAAC;AAEtG,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,QAAO,OAOnC,CAAC;AAEF,4FAA4F;AAC5F,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,IAO7C,CAAC"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/components/DSThemeSwitcher/theme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,sCAAuC,CAAC;AAE9D,MAAM,MAAM,OAAO,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC9C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC;AAEnD,eAAO,MAAM,oBAAoB,yCAAyC,CAAC;AAC3E,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAIlD,CAAC;AAOF,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,OACiB,CAAC;AAEtE,eAAO,MAAM,gBAAgB,GAAI,OAAO,OAAO,KAAG,OAAO,GAAG,IAG3D,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,QAAO,OAOnC,CAAC;AAEF,4FAA4F;AAC5F,eAAO,MAAM,YAAY,GAAI,OAAO,YAAY,KAAG,IAQlD,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { DSTheme } from './theme';
2
+ export type DSThemeAvailability = Partial<Record<DSTheme, boolean>>;
3
+ export declare const DEFAULT_DS_THEME_AVAILABILITY: Readonly<Record<DSTheme, boolean>>;
4
+ export declare const DS_THEME_ACTIVATION_SESSION_KEY = "efficiency-point.design-system.all-themes-active";
5
+ export declare const areAllDSThemesActiveForSession: () => boolean;
6
+ export declare const getAvailableDSThemes: (availability?: DSThemeAvailability) => readonly DSTheme[];
7
+ export declare const activateThemesForSession: () => readonly DSTheme[];
8
+ export declare const subscribeDSThemeAvailability: (listener: () => void) => (() => void);
9
+ declare global {
10
+ interface Window {
11
+ activate_themes: typeof activateThemesForSession;
12
+ }
13
+ }
14
+ export declare const registerActivateThemesCommand: (target?: Window) => void;
15
+ //# sourceMappingURL=themeAvailability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themeAvailability.d.ts","sourceRoot":"","sources":["../../../src/components/DSThemeSwitcher/themeAvailability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpE,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAI5E,CAAC;AAEF,eAAO,MAAM,+BAA+B,qDAAqD,CAAC;AAIlG,eAAO,MAAM,8BAA8B,QAAO,OAQjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC7B,eAAc,mBAAmD,KAClE,SAAS,OAAO,EAGlB,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAO,SAAS,OAAO,EAS3D,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAI9E,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,eAAe,EAAE,OAAO,wBAAwB,CAAC;KACpD;CACJ;AAED,eAAO,MAAM,6BAA6B,GAAI,SAAS,MAAM,KAAG,IAe/D,CAAC"}