@efficiency-point/design-system 0.9.2 → 0.10.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 +12 -4
- package/dist/components/DSAccordion/DSAccordion.d.ts +2 -1
- package/dist/components/DSAccordion/DSAccordion.d.ts.map +1 -1
- package/dist/components/DSIcon/source/IconServiceApps.d.ts +7 -0
- package/dist/components/DSIcon/source/IconServiceApps.d.ts.map +1 -0
- package/dist/components/DSIcon/source/index.d.ts +5 -0
- package/dist/components/DSIcon/source/index.d.ts.map +1 -1
- package/dist/components/DSOverlay/DSOverlay.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.es.js +698 -603
- package/dist/style.css +1 -1
- package/package.json +1 -1
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` и
|
|
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,
|
|
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":"
|
|
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,
|
|
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"}
|