@efficiency-point/design-system 0.9.2 → 0.10.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
@@ -62,7 +62,7 @@ export function ThemePicker() {
62
62
 
63
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`.
64
64
 
65
- Информационный акцент темы «Стекло»: --color-info #087d71, текст #11665d, фон #e8f4f1. Цвета переопределяются публичными CSS-токенами; --color-background ссылается на --color-surface. Светлый --color-accent-on-dark #5ed5c8 используется на тёмной панели видеоплеера. В теме «РПФ» видеоплеер использует нейтральную тёмную палитру и жёлтый акцент. Цвета backdrop и тени также вынесены в токены.
65
+ Информационный акцент темы «Стекло»: --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
66
 
67
67
  Компоненты используют CSS custom properties из `tokens.css`. Их можно переопределить после импорта библиотечного CSS:
68
68
 
@@ -556,7 +556,13 @@ Enter вызывают `onRowDoubleClick`, Space меняет selection. Без
556
556
 
557
557
  ### DSAccordion
558
558
 
559
- При раскрытии Accordion автоматически прокручивает страницу после завершения анимации: короткий контент показывается целиком у нижней границы viewport, а высокий фиксируется заголовком у верхней границы. Поведение можно отключить через `autoScrollOnOpen={false}`; отступ настраивается `scrollOffset`.
559
+ При раскрытии Accordion автоматически прокручивает страницу после завершения анимации: короткий контент показывается целиком у нижней границы viewport, а высокий фиксируется заголовком у верхней границы. Поведение можно отключить через `autoScrollOnOpen={false}`; отступ настраивается `scrollOffset`. Вариант `outlined` сохраняет стандартную обводку, а `surface` предназначен для нейтральных секций и панелей без декоративного border.
560
+
561
+ ```tsx
562
+ <DSAccordion title="Фильтры" variant="surface" defaultOpen>
563
+ <DSFilters filters={filters} values={values} onChange={setValues} />
564
+ </DSAccordion>
565
+ ```
560
566
 
561
567
  ### DSTabs
562
568
 
@@ -610,7 +616,9 @@ const items = [
610
616
 
611
617
  Иконки доступны через типизированный реестр `DSIcon`. Помимо базового набора,
612
618
  в него входят прикладные outline-иконки `IconPlug`, `IconBookText`,
613
- `IconArchive`, `IconCopy`, `IconFileText` и `IconTrash2`.
619
+ `IconArchive`, `IconCopy`, `IconFileText`, `IconTrash2` и семантические иконки
620
+ сервисов `IconServicePersonnel`, `IconServiceChronometry`, `IconServiceAccommodation`,
621
+ `IconServiceFinances`, `IconServiceRegistrar`.
614
622
 
615
623
  ```tsx
616
624
  <DSIcon name="IconFileText" title="Документы" />
@@ -673,7 +681,7 @@ successToast({ message: 'Изменения сохранены', dedupeKey: 'tas
673
681
 
674
682
  ## Overlay surfaces
675
683
 
676
- `DSDrawer`, `DSBottomSheet` и `DSFullscreenDialog` построены на общем `DSOverlay`: поддерживают стабильные header/content/footer области, focus trap/restore, Escape/backdrop reasons, safe-area и mobile fullscreen-поведение. `preventClose` позволяет приложению включить собственный сценарий защиты несохраненной формы.
684
+ `DSDrawer`, `DSBottomSheet` и `DSFullscreenDialog` построены на общем `DSOverlay`: поддерживают стабильные header/content/footer области, focus trap/restore, Escape/backdrop reasons, safe-area и mobile fullscreen-поведение. При закрытии overlay остаётся смонтированным до завершения exit-анимации, не удерживая блокировку страницы после фактического закрытия. `preventClose` позволяет приложению включить собственный сценарий защиты несохраненной формы.
677
685
 
678
686
  ## Формы и счетчики
679
687
 
@@ -3,6 +3,7 @@ export type DSAccordionProps = {
3
3
  title: ReactNode;
4
4
  subtitle?: ReactNode;
5
5
  children: ReactNode;
6
+ variant?: 'outlined' | 'surface';
6
7
  defaultOpen?: boolean;
7
8
  open?: boolean;
8
9
  onOpenChange?: (open: boolean) => void;
@@ -15,5 +16,5 @@ export type DSAccordionScrollTarget = {
15
16
  delta: number;
16
17
  };
17
18
  export declare const getDSAccordionScrollTarget: (top: number, height: number, viewportHeight: number, offset?: number) => DSAccordionScrollTarget;
18
- export declare const DSAccordion: ({ title, subtitle, children, defaultOpen, open: controlledOpen, onOpenChange, autoScrollOnOpen, scrollOffset, className, }: DSAccordionProps) => import("react").JSX.Element;
19
+ export declare const DSAccordion: ({ title, subtitle, children, variant, defaultOpen, open: controlledOpen, onOpenChange, autoScrollOnOpen, scrollOffset, className, }: DSAccordionProps) => import("react").JSX.Element;
19
20
  //# sourceMappingURL=DSAccordion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSAccordion.d.ts","sourceRoot":"","sources":["../../../src/components/DSAccordion/DSAccordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3E,MAAM,MAAM,gBAAgB,GAAG;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,SAAS,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACnC,KAAK,MAAM,EACX,QAAQ,MAAM,EACd,gBAAgB,MAAM,EACtB,eAAW,KACZ,uBAsBF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,4HAUzB,gBAAgB,gCAiGlB,CAAC"}
1
+ {"version":3,"file":"DSAccordion.d.ts","sourceRoot":"","sources":["../../../src/components/DSAccordion/DSAccordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3E,MAAM,MAAM,gBAAgB,GAAG;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,SAAS,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACnC,KAAK,MAAM,EACX,QAAQ,MAAM,EACd,gBAAgB,MAAM,EACtB,eAAW,KACZ,uBAsBF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,qIAWzB,gBAAgB,gCAmGlB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { DSIconSourceProps } from '../types';
2
+ export declare const IconServicePersonnel: (props: DSIconSourceProps) => import("react").JSX.Element;
3
+ export declare const IconServiceChronometry: (props: DSIconSourceProps) => import("react").JSX.Element;
4
+ export declare const IconServiceAccommodation: (props: DSIconSourceProps) => import("react").JSX.Element;
5
+ export declare const IconServiceFinances: (props: DSIconSourceProps) => import("react").JSX.Element;
6
+ export declare const IconServiceRegistrar: (props: DSIconSourceProps) => import("react").JSX.Element;
7
+ //# sourceMappingURL=IconServiceApps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconServiceApps.d.ts","sourceRoot":"","sources":["../../../../src/components/DSIcon/source/IconServiceApps.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,eAAO,MAAM,oBAAoB,GAAI,OAAO,iBAAiB,gCAO5D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,OAAO,iBAAiB,gCAO9D,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,OAAO,iBAAiB,gCAMhE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,iBAAiB,gCAO3D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,OAAO,iBAAiB,gCAO5D,CAAC"}
@@ -73,6 +73,11 @@ export declare const icons: {
73
73
  IconPlay: (props: import('../types').DSIconSourceProps) => import("react").JSX.Element;
74
74
  IconReplay: (props: import('../types').DSIconSourceProps) => import("react").JSX.Element;
75
75
  IconSettings: (props: import('../types').DSIconSourceProps) => import("react").JSX.Element;
76
+ IconServiceChronometry: (props: import('../types').DSIconSourceProps) => import("react").JSX.Element;
77
+ IconServiceFinances: (props: import('../types').DSIconSourceProps) => import("react").JSX.Element;
78
+ IconServiceAccommodation: (props: import('../types').DSIconSourceProps) => import("react").JSX.Element;
79
+ IconServicePersonnel: (props: import('../types').DSIconSourceProps) => import("react").JSX.Element;
80
+ IconServiceRegistrar: (props: import('../types').DSIconSourceProps) => import("react").JSX.Element;
76
81
  IconSend: (props: import('../types').DSIconSourceProps) => import("react").JSX.Element;
77
82
  IconSmile: (props: import('../types').DSIconSourceProps) => import("react").JSX.Element;
78
83
  IconFullscreen: (props: import('../types').DSIconSourceProps) => import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/DSIcon/source/index.ts"],"names":[],"mappings":"AA6FA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFjB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/DSIcon/source/index.ts"],"names":[],"mappings":"AAoGA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FjB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,KAAK,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DSOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/DSOverlay/DSOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOH,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,OAAO,CAAC;AAMf,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC;AAC5E,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACvD,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAwBF,eAAO,MAAM,YAAY;kBApB4B,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI;QAoB/B,CAAC;AAE7D,eAAO,MAAM,SAAS,GAAI,uMAiBvB,cAAc,uCAyEhB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CAAE,CAAC;AACjG,eAAO,MAAM,QAAQ,GAAI,yBAAmC,aAAa,gCAAmD,CAAC;AAE7H,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AACnE,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,gCAAgD,CAAC;AAExG,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,MAAM,CAAC,CAAC;AACjF,eAAO,MAAM,kBAAkB,GAAI,OAAO,uBAAuB,gCAA8D,CAAC"}
1
+ {"version":3,"file":"DSOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/DSOverlay/DSOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQH,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,OAAO,CAAC;AAMf,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC;AAC5E,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACvD,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AA0BF,eAAO,MAAM,YAAY;kBAtB4B,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI;QAsB/B,CAAC;AAE7D,eAAO,MAAM,SAAS,GAAI,uMAiBvB,cAAc,uCA8HhB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CAAE,CAAC;AACjG,eAAO,MAAM,QAAQ,GAAI,yBAAmC,aAAa,gCAAmD,CAAC;AAE7H,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AACnE,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,gCAAgD,CAAC;AAExG,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,MAAM,CAAC,CAAC;AACjF,eAAO,MAAM,kBAAkB,GAAI,OAAO,uBAAuB,gCAA8D,CAAC"}