@efficiency-point/design-system 0.1.31 → 0.1.33

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 (31) hide show
  1. package/README.md +92 -0
  2. package/dist/components/DSBottomNavigation/DSBottomNavigation.d.ts +12 -0
  3. package/dist/components/DSBottomNavigation/DSBottomNavigation.d.ts.map +1 -0
  4. package/dist/components/DSCheckbox/DSCheckbox.d.ts +2 -1
  5. package/dist/components/DSCheckbox/DSCheckbox.d.ts.map +1 -1
  6. package/dist/components/DSCounterBadge/DSCounterBadge.d.ts +13 -0
  7. package/dist/components/DSCounterBadge/DSCounterBadge.d.ts.map +1 -0
  8. package/dist/components/DSDataTable/DSDataTable.d.ts +38 -1
  9. package/dist/components/DSDataTable/DSDataTable.d.ts.map +1 -1
  10. package/dist/components/DSFloating/DSFloating.d.ts +1 -2
  11. package/dist/components/DSFloating/DSFloating.d.ts.map +1 -1
  12. package/dist/components/DSFormLayout/DSFormLayout.d.ts +24 -0
  13. package/dist/components/DSFormLayout/DSFormLayout.d.ts.map +1 -0
  14. package/dist/components/DSNavigationSurface/DSNavigationSurface.d.ts +40 -0
  15. package/dist/components/DSNavigationSurface/DSNavigationSurface.d.ts.map +1 -0
  16. package/dist/components/DSOverlay/DSOverlay.d.ts +35 -0
  17. package/dist/components/DSOverlay/DSOverlay.d.ts.map +1 -0
  18. package/dist/components/DSPortal/DSPortal.d.ts +1 -2
  19. package/dist/components/DSPortal/DSPortal.d.ts.map +1 -1
  20. package/dist/components/DSToast/DSToast.d.ts.map +1 -1
  21. package/dist/components/DSToast/DSToastProvider.d.ts +3 -1
  22. package/dist/components/DSToast/DSToastProvider.d.ts.map +1 -1
  23. package/dist/components/DSToast/toast.store.d.ts.map +1 -1
  24. package/dist/components/DSToast/toast.types.d.ts +2 -0
  25. package/dist/components/DSToast/toast.types.d.ts.map +1 -1
  26. package/dist/index.cjs +2 -2
  27. package/dist/index.d.ts +6 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.es.js +1669 -973
  30. package/dist/style.css +1 -1
  31. package/package.json +1 -1
package/README.md CHANGED
@@ -171,6 +171,14 @@ export function Example() {
171
171
  <DSDataTable columns={columns} data={rows} breakpoint="wide" />
172
172
  ```
173
173
 
174
+ По умолчанию ниже выбранного breakpoint строки превращаются в карточки. Для реестров, где на mobile важно сохранить таблицу, используйте явный `mobileView="table"`; исторический `tableOnMobile` остается совместимым. `density="compact"` уменьшает высоту строк, не меняя семантику и mobile-режим.
175
+
176
+ ```tsx
177
+ <DSDataTable columns={columns} data={rows} mobileView="table" density="compact" />
178
+ ```
179
+
180
+ Универсальные `renderBulkActions` и `renderExpandedRow` позволяют потребителю собрать собственную панель массовых действий и master-detail строку. Business actions и их подписи остаются в приложении. Sticky-колонки задаются через `column.sticky` и `column.stickyOffset`.
181
+
174
182
  Пагинация выключена по умолчанию. `pagination` включает клиентское разбиение
175
183
  отсортированных строк, `pageSize` задаёт размер страницы (по умолчанию 30),
176
184
  а `visibleColumnIds` ограничивает набор отображаемых колонок.
@@ -204,6 +212,34 @@ export function Example() {
204
212
  />
205
213
  ```
206
214
 
215
+ Выбор строк включается через `selectable`. Без `selectedRowIds` таблица хранит
216
+ его локально; для серверной пагинации используйте управляемый режим.
217
+ Заголовочный checkbox
218
+ выбирает строки только текущей страницы, а «Сбросить» очищает весь переданный
219
+ набор. В режиме выбора обычный клик по строке меняет selection, двойной клик и
220
+ Enter вызывают `onRowDoubleClick`, Space меняет selection. Без `selectable`
221
+ прежнее поведение `onRowClick` сохраняется.
222
+
223
+ ```tsx
224
+ <DSDataTable
225
+ columns={columns}
226
+ data={currentPageRows}
227
+ getRowId={(row) => String(row.id)}
228
+ selectable
229
+ selectedRowIds={selectedIds}
230
+ onSelectedRowIdsChange={setSelectedIds}
231
+ onRowDoubleClick={openRow}
232
+ getRowSelectionLabel={(row) => `Выбрать ${row.name}`}
233
+ selectAllRowsLabel="Выбрать все строки на этой странице"
234
+ resetSelectionLabel="Сбросить выбор"
235
+ openRowLabel="Открыть строку"
236
+ />
237
+ ```
238
+
239
+ `selectedRowIds` принадлежит приложению: таблица не удаляет идентификаторы строк
240
+ с других серверных страниц. Поэтому один набор можно накапливать при переходах
241
+ по пагинации и сохранять после повторной загрузки данных.
242
+
207
243
  `DSSort` можно использовать отдельно для сортировки по полям объектов или строковым значениям.
208
244
 
209
245
  ### DSFilters
@@ -214,6 +250,26 @@ export function Example() {
214
250
  <DSFilters filters={filters} values={values} onChange={setValues} />
215
251
  ```
216
252
 
253
+ ### DSFileInput
254
+
255
+ Контролируемая зона выбора и перетаскивания файлов. `accept`, `maxSize` и
256
+ `maxFiles` ограничивают файлы, `multiple` разрешает множественный выбор,
257
+ `readOnly` сохраняет просмотр без изменений, а `onReject` сообщает причины
258
+ отклонения (`accept`, `maxSize`, `maxFiles`).
259
+
260
+ ```tsx
261
+ <DSFileInput
262
+ label="Документы"
263
+ value={files}
264
+ onChange={setFiles}
265
+ multiple
266
+ accept=".pdf,image/*"
267
+ maxSize={10 * 1024 * 1024}
268
+ maxFiles={5}
269
+ onReject={handleRejectedFiles}
270
+ />
271
+ ```
272
+
217
273
  ### DSVideoPlayerFrame
218
274
 
219
275
  Адаптивный видеоплеер с собственными controls, несколькими sources/tracks, poster, loading/error-состояниями, горячими клавишами, настройкой скорости, субтитров, loop, Picture-in-Picture и fullscreen. Редкие действия собраны в меню настроек; `controls={false}` скрывает панель управления.
@@ -326,6 +382,25 @@ function SaveButton() {
326
382
 
327
383
  Расширенный API экспортирует `useToastStore`, `ToastStoreState`, `ToastItem`, `ShowToastPayload`, `ToastAction` и `ToastVariant`.
328
384
 
385
+ `dedupeKey` предотвращает размножение одинаковых уведомлений, а `maxVisible` у provider ограничивает число одновременно видимых toast, сохраняя остальные в FIFO-очереди. Оба поведения opt-in, поэтому прежние вызовы остаются без изменений.
386
+
387
+ ```tsx
388
+ successToast({ message: 'Изменения сохранены', dedupeKey: 'task-save' });
389
+ <DSToastProvider maxVisible={2} />
390
+ ```
391
+
392
+ ## Навигация
393
+
394
+ `DSNavigationSurface` отображает универсальные группы ссылок со слотами поиска и дополнительного контента. `DSBottomNavigation` предоставляет mobile-навигацию с safe-area и зонами нажатия не менее 44px. Маршруты, permissions, состав групп и business labels принадлежат приложению; для React Router используется `renderLink`.
395
+
396
+ ## Overlay surfaces
397
+
398
+ `DSDrawer`, `DSBottomSheet` и `DSFullscreenDialog` построены на общем `DSOverlay`: поддерживают стабильные header/content/footer области, focus trap/restore, Escape/backdrop reasons, safe-area и mobile fullscreen-поведение. `preventClose` позволяет приложению включить собственный сценарий защиты несохраненной формы.
399
+
400
+ ## Формы и счетчики
401
+
402
+ `DSFormGrid` и `DSFormGridItem` формируют compact/comfortable responsive layout до четырех колонок с переходом в одну колонку на mobile. `DSValidationSummary` связывает ошибки с полями формы. `DSCounterBadge` визуально ограничивает значение через `max`, но сохраняет точное accessible name.
403
+
329
404
  ## Modal и реестр приложения
330
405
 
331
406
  Библиотека не импортирует файлы consumer-проекта. Каждый проект хранит реестр по принятому пути, например `src/shared/ui/modal/modal.registry.tsx`, и явно передаёт его provider.
@@ -387,6 +462,23 @@ Modal host поддерживает stack, закрытие верхней мо
387
462
 
388
463
  Встроенные `ConfirmModal` и `ErrorModal` доступны через `builtInModalRegistry`, `useConfirmModal` и `useErrorModal`.
389
464
 
465
+ Напрямую экспортируемые `DSModal` и `DSModalFrame` — низкоуровневые части
466
+ модальной системы. Для прикладных сценариев рекомендуется реестр и `useModals`:
467
+ они обеспечивают stack, Escape/backdrop и восстановление focus согласованно.
468
+
469
+ ## Portal и floating menu
470
+
471
+ `DSPortal` переносит overlay-контент в существующий или автоматически созданный
472
+ контейнер в `document.body`. `DSFloatingMenu` позиционирует portal относительно
473
+ `anchorRef`, умеет совпадать с шириной anchor и автоматически выбирает верхнее
474
+ или нижнее размещение по свободному месту.
475
+
476
+ ```tsx
477
+ <DSFloatingMenu anchorRef={buttonRef} matchAnchorWidth offset={4}>
478
+ <div role="menu">...</div>
479
+ </DSFloatingMenu>
480
+ ```
481
+
390
482
  ## Публичные типы
391
483
 
392
484
  Все component props, callback signatures, variant unions, store states, hook results, modal registry contracts и payload-типы экспортируются из корневого entry point.
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ import { DSNavigationItem, DSNavigationLinkRenderProps } from '../DSNavigationSurface/DSNavigationSurface';
3
+ export type DSBottomNavigationProps = {
4
+ items: readonly DSNavigationItem[];
5
+ currentItemId?: string;
6
+ ariaLabel?: string;
7
+ renderLink?: (item: DSNavigationItem, props: DSNavigationLinkRenderProps) => ReactNode;
8
+ onItemSelect?: (item: DSNavigationItem) => void;
9
+ className?: string;
10
+ };
11
+ export declare const DSBottomNavigation: ({ items, currentItemId, ariaLabel, renderLink, onItemSelect, className, }: DSBottomNavigationProps) => import("react").JSX.Element;
12
+ //# sourceMappingURL=DSBottomNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSBottomNavigation.d.ts","sourceRoot":"","sources":["../../../src/components/DSBottomNavigation/DSBottomNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,KAAK,EACR,gBAAgB,EAChB,2BAA2B,EAC9B,MAAM,4CAA4C,CAAC;AAGpD,MAAM,MAAM,uBAAuB,GAAG;IAClC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,2BAA2B,KAAK,SAAS,CAAC;IACvF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,2EAOhC,uBAAuB,gCAyEzB,CAAC"}
@@ -15,6 +15,7 @@ export type DSCheckboxProps = {
15
15
  required?: boolean;
16
16
  onBlur?: FocusEventHandler<HTMLInputElement>;
17
17
  onFocus?: FocusEventHandler<HTMLInputElement>;
18
+ ariaLabel?: string;
18
19
  };
19
- export declare const DSCheckbox: ({ checked, onChange, label, hint, error, disabled, readOnly, className, name, id, indeterminate, ...props }: DSCheckboxProps) => import("react").JSX.Element;
20
+ export declare const DSCheckbox: ({ checked, onChange, label, hint, error, disabled, readOnly, className, name, id, indeterminate, ariaLabel, ...props }: DSCheckboxProps) => import("react").JSX.Element;
20
21
  //# sourceMappingURL=DSCheckbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/DSCheckbox/DSCheckbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAKzE,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;CACjD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,6GAaxB,eAAe,gCAkDjB,CAAC"}
1
+ {"version":3,"file":"DSCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/DSCheckbox/DSCheckbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAKzE,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,wHAcxB,eAAe,gCAmDjB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export type DSCounterBadgeVariant = 'neutral' | 'info' | 'success' | 'warning' | 'error';
3
+ export type DSCounterBadgeSize = 'sm' | 'md';
4
+ export type DSCounterBadgeProps = Omit<HTMLAttributes<HTMLSpanElement>, 'children'> & {
5
+ value: number;
6
+ max?: number;
7
+ label?: string;
8
+ variant?: DSCounterBadgeVariant;
9
+ size?: DSCounterBadgeSize;
10
+ };
11
+ export declare const formatDSCounterValue: (value: number, max?: number) => string;
12
+ export declare const DSCounterBadge: ({ value, max, label, variant, size, className, "aria-label": ariaLabel, ...props }: DSCounterBadgeProps) => import("react").JSX.Element;
13
+ //# sourceMappingURL=DSCounterBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSCounterBadge.d.ts","sourceRoot":"","sources":["../../../src/components/DSCounterBadge/DSCounterBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AACzF,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,GAAG;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,EAAE,YAAQ,KAAG,MAI9D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,oFAS5B,mBAAmB,gCAWrB,CAAC"}
@@ -9,6 +9,8 @@ type DSDataType = 'text' | 'number' | 'date' | 'boolean' | 'custom';
9
9
  type DSDataTableAccessor<TData extends object> = Extract<keyof TData, string> | ((row: TData) => unknown);
10
10
  type DSColumnSortFn<TData extends object> = SortFn<DSDataTableFeatures, TData>;
11
11
  export type DSDataTableBreakpoint = 'default' | 'wide';
12
+ export type DSDataTableMobileView = 'cards' | 'table';
13
+ export type DSDataTableDensity = 'comfortable' | 'compact';
12
14
  export type DSDataTableData = Record<string, unknown>;
13
15
  export type DSDataTableMobileColumnMeta<TData> = {
14
16
  hideOnMobile?: boolean;
@@ -32,16 +34,30 @@ export type DSDataTableColumn<TData extends object> = {
32
34
  width?: CSSProperties['width'];
33
35
  minWidth?: CSSProperties['minWidth'];
34
36
  maxWidth?: CSSProperties['maxWidth'];
37
+ sticky?: 'start' | 'end';
38
+ stickyOffset?: CSSProperties['insetInlineStart'];
35
39
  mobile?: DSDataTableMobileColumnMeta<TData>;
36
40
  };
37
41
  export type DSDataTableMobileRowContext<TData extends object> = {
38
42
  row: TData;
39
43
  columns: DSDataTableColumn<TData>[];
40
44
  };
45
+ export type DSDataTableBulkActionsContext<TData extends object> = {
46
+ selectedRowIds: string[];
47
+ selectedRows: TData[];
48
+ clearSelection: () => void;
49
+ };
50
+ export type DSDataTableExpandedRowContext<TData extends object> = {
51
+ row: TData;
52
+ rowId: string;
53
+ collapse: () => void;
54
+ };
41
55
  export type DSDataTableProps<TData extends object> = {
42
56
  columns: DSDataTableColumn<TData>[];
43
57
  data: TData[];
44
58
  tableOnMobile?: boolean;
59
+ /** Preferred explicit mobile presentation. Takes precedence over the legacy tableOnMobile flag. */
60
+ mobileView?: DSDataTableMobileView;
45
61
  breakpoint?: DSDataTableBreakpoint;
46
62
  sorting?: SortingState;
47
63
  onSortingChange?: (sorting: SortingState) => void;
@@ -56,6 +72,14 @@ export type DSDataTableProps<TData extends object> = {
56
72
  maxHeight?: CSSProperties['maxHeight'];
57
73
  className?: string;
58
74
  onRowClick?: (row: TData) => void;
75
+ selectable?: boolean;
76
+ selectedRowIds?: ReadonlySet<string> | readonly string[];
77
+ onSelectedRowIdsChange?: (selectedRowIds: string[]) => void;
78
+ onRowDoubleClick?: (row: TData) => void;
79
+ getRowSelectionLabel?: (row: TData) => string;
80
+ selectAllRowsLabel?: string;
81
+ resetSelectionLabel?: string;
82
+ openRowLabel?: string;
59
83
  pagination?: boolean;
60
84
  paginationMode?: 'client' | 'server';
61
85
  page?: number;
@@ -63,11 +87,24 @@ export type DSDataTableProps<TData extends object> = {
63
87
  totalCount?: number;
64
88
  onPageChange?: (page: number) => void;
65
89
  visibleColumnIds?: string[];
90
+ density?: DSDataTableDensity;
91
+ renderBulkActions?: (context: DSDataTableBulkActionsContext<TData>) => ReactNode;
92
+ renderExpandedRow?: (context: DSDataTableExpandedRowContext<TData>) => ReactNode;
93
+ expandedRowIds?: ReadonlySet<string> | readonly string[];
94
+ onExpandedRowIdsChange?: (expandedRowIds: string[]) => void;
95
+ getRowExpansionLabel?: (row: TData, expanded: boolean) => string;
96
+ resultsAnnouncement?: (context: {
97
+ visibleCount: number;
98
+ totalCount: number;
99
+ selectedCount: number;
100
+ }) => string;
66
101
  };
67
102
  export type DSDataTablePaginationItem = number | 'ellipsis-start' | 'ellipsis-end';
103
+ export declare const getNextDSDataTablePageSelection: (selectedRowIds: Iterable<string>, currentPageRowIds: readonly string[], selectCurrentPage: boolean) => string[];
68
104
  export declare const getDSDataTableColumnStyle: <TData extends object>(column: DSDataTableColumn<TData> | undefined) => CSSProperties | undefined;
105
+ export declare const getDSDataTableStickyColumnStyle: <TData extends object>(column: DSDataTableColumn<TData> | undefined) => CSSProperties | undefined;
69
106
  export declare const getDSDataTablePaginationItems: (currentPage: number, pageCount: number) => DSDataTablePaginationItem[];
70
107
  export declare const validateDSDataTableData: <TData extends object>(columns: DSDataTableColumn<TData>[], data: TData[]) => string | null;
71
- export declare const DSDataTable: <TData extends object>({ columns, data, tableOnMobile, breakpoint, sorting: controlledSorting, onSortingChange, renderMobileCard, getRowId, caption, ariaLabel, loading, error, emptyState, stickyHeader, maxHeight, className, onRowClick, pagination, paginationMode, page, pageSize, totalCount, onPageChange, visibleColumnIds, }: DSDataTableProps<TData>) => import("react").JSX.Element;
108
+ export declare const DSDataTable: <TData extends object>({ columns, data, tableOnMobile, mobileView, breakpoint, sorting: controlledSorting, onSortingChange, renderMobileCard, getRowId, caption, ariaLabel, loading, error, emptyState, stickyHeader, maxHeight, className, onRowClick, selectable, selectedRowIds, onSelectedRowIdsChange, onRowDoubleClick, getRowSelectionLabel, selectAllRowsLabel, resetSelectionLabel, openRowLabel, pagination, paginationMode, page, pageSize, totalCount, onPageChange, visibleColumnIds, density, renderBulkActions, renderExpandedRow, expandedRowIds, onExpandedRowIdsChange, getRowExpansionLabel, resultsAnnouncement, }: DSDataTableProps<TData>) => import("react").JSX.Element;
72
109
  export {};
73
110
  //# sourceMappingURL=DSDataTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSDataTable.d.ts","sourceRoot":"","sources":["../../../src/components/DSDataTable/DSDataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzF,OAAO,EAQH,KAAK,MAAM,EACX,KAAK,YAAY,EACpB,MAAM,uBAAuB,CAAC;AAO/B,QAAA,MAAM,iBAAiB;;;CAGrB,CAAC;AAEH,KAAK,mBAAmB,GAAG,OAAO,iBAAiB,CAAC;AAEpD,KAAK,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AACpE,KAAK,mBAAmB,CAAC,KAAK,SAAS,MAAM,IACvC,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,GAC5B,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC;AAEhC,KAAK,cAAc,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAE/E,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,MAAM,MAAM,2BAA2B,CAAC,KAAK,IAAI;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAC9C,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,KAAK,SAAS,MAAM,IAAI;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC;IACjD,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,KAAK,SAAS,MAAM,IAAI;IAC5D,GAAG,EAAE,KAAK,CAAC;IACX,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,MAAM,IAAI;IACjD,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;IACpC,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;IAC9E,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAEnF,eAAO,MAAM,yBAAyB,GAAI,KAAK,SAAS,MAAM,EAC1D,QAAQ,iBAAiB,CAAC,KAAK,CAAC,GAAG,SAAS,KAC7C,aAAa,GAAG,SAUlB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACtC,aAAa,MAAM,EACnB,WAAW,MAAM,KAClB,yBAAyB,EAc3B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,KAAK,SAAS,MAAM,EACxD,SAAS,iBAAiB,CAAC,KAAK,CAAC,EAAE,EACnC,MAAM,KAAK,EAAE,KACd,MAAM,GAAG,IAoBX,CAAC;AA6IF,eAAO,MAAM,WAAW,GAAI,KAAK,SAAS,MAAM,EAAE,gTAyB/C,gBAAgB,CAAC,KAAK,CAAC,gCAgTzB,CAAC"}
1
+ {"version":3,"file":"DSDataTable.d.ts","sourceRoot":"","sources":["../../../src/components/DSDataTable/DSDataTable.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ReactNode, RefObject } from 'react';
2
- type DSFloatingMenuProps = {
2
+ export type DSFloatingMenuProps = {
3
3
  anchorRef: RefObject<HTMLElement | null>;
4
4
  children: ReactNode;
5
5
  matchAnchorWidth?: boolean;
@@ -7,5 +7,4 @@ type DSFloatingMenuProps = {
7
7
  className?: string;
8
8
  };
9
9
  export declare const DSFloatingMenu: ({ anchorRef, children, matchAnchorWidth, offset, className, }: DSFloatingMenuProps) => import("react").JSX.Element;
10
- export {};
11
10
  //# sourceMappingURL=DSFloating.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSFloating.d.ts","sourceRoot":"","sources":["../../../src/components/DSFloating/DSFloating.tsx"],"names":[],"mappings":"AAAA,OAAO,EAMH,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,OAAO,CAAC;AAGf,KAAK,mBAAmB,GAAG;IACvB,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACzC,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAIF,eAAO,MAAM,cAAc,GAAI,+DAM5B,mBAAmB,gCAsFrB,CAAC"}
1
+ {"version":3,"file":"DSFloating.d.ts","sourceRoot":"","sources":["../../../src/components/DSFloating/DSFloating.tsx"],"names":[],"mappings":"AAAA,OAAO,EAMH,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,OAAO,CAAC;AAGf,MAAM,MAAM,mBAAmB,GAAG;IAC9B,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACzC,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAIF,eAAO,MAAM,cAAc,GAAI,+DAM5B,mBAAmB,gCAsFrB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export type DSFormGridDensity = 'compact' | 'comfortable';
3
+ export type DSFormGridColumns = 1 | 2 | 3 | 4;
4
+ export type DSFormGridProps = HTMLAttributes<HTMLDivElement> & {
5
+ columns?: DSFormGridColumns;
6
+ density?: DSFormGridDensity;
7
+ };
8
+ export declare const DSFormGrid: ({ columns, density, className, ...props }: DSFormGridProps) => import("react").JSX.Element;
9
+ export type DSFormGridItemProps = HTMLAttributes<HTMLDivElement> & {
10
+ span?: 1 | 2 | 3 | 4 | 'full';
11
+ };
12
+ export declare const DSFormGridItem: ({ span, className, ...props }: DSFormGridItemProps) => import("react").JSX.Element;
13
+ export type DSValidationSummaryItem = {
14
+ id: string;
15
+ message: ReactNode;
16
+ fieldId?: string;
17
+ };
18
+ export type DSValidationSummaryProps = Omit<HTMLAttributes<HTMLDivElement>, 'title'> & {
19
+ title?: ReactNode;
20
+ items: readonly DSValidationSummaryItem[];
21
+ focusField?: (fieldId: string) => void;
22
+ };
23
+ export declare const DSValidationSummary: ({ title, items, focusField, className, ...props }: DSValidationSummaryProps) => import("react").JSX.Element | null;
24
+ //# sourceMappingURL=DSFormLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSFormLayout.d.ts","sourceRoot":"","sources":["../../../src/components/DSFormLayout/DSFormLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,aAAa,CAAC;AAC1D,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE9C,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC3D,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,2CAKxB,eAAe,gCAKjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC/D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,+BAAwC,mBAAmB,gCAKzF,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,GAAG;IACnF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,mDAMjC,wBAAwB,uCAgC1B,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { KeyboardEvent, MouseEvent, ReactNode } from 'react';
2
+ export type DSNavigationItem = {
3
+ id: string;
4
+ label: string;
5
+ href?: string;
6
+ icon?: ReactNode;
7
+ description?: ReactNode;
8
+ badge?: ReactNode;
9
+ disabled?: boolean;
10
+ };
11
+ export type DSNavigationGroup = {
12
+ id: string;
13
+ label?: ReactNode;
14
+ items: readonly DSNavigationItem[];
15
+ };
16
+ export type DSNavigationLinkRenderProps = {
17
+ children: ReactNode;
18
+ className: string;
19
+ tabIndex: number;
20
+ 'aria-current'?: 'page';
21
+ 'aria-disabled'?: true;
22
+ 'data-ds-navigation-item': string;
23
+ onClick: (event: MouseEvent<HTMLElement>) => void;
24
+ onFocus: () => void;
25
+ onKeyDown: (event: KeyboardEvent<HTMLElement>) => void;
26
+ };
27
+ export type DSNavigationSurfaceProps = {
28
+ groups: readonly DSNavigationGroup[];
29
+ currentItemId?: string;
30
+ ariaLabel?: string;
31
+ searchSlot?: ReactNode;
32
+ topSlot?: ReactNode;
33
+ bottomSlot?: ReactNode;
34
+ emptyState?: ReactNode;
35
+ renderLink?: (item: DSNavigationItem, props: DSNavigationLinkRenderProps) => ReactNode;
36
+ onItemSelect?: (item: DSNavigationItem) => void;
37
+ className?: string;
38
+ };
39
+ export declare const DSNavigationSurface: ({ groups, currentItemId, ariaLabel, searchSlot, topSlot, bottomSlot, emptyState, renderLink, onItemSelect, className, }: DSNavigationSurfaceProps) => import("react").JSX.Element;
40
+ //# sourceMappingURL=DSNavigationSurface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSNavigationSurface.d.ts","sourceRoot":"","sources":["../../../src/components/DSNavigationSurface/DSNavigationSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,SAAS,EACjB,MAAM,OAAO,CAAC;AAGf,MAAM,MAAM,gBAAgB,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,yBAAyB,EAAE,MAAM,CAAC;IAClC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAClD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACnC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,2BAA2B,KAAK,SAAS,CAAC;IACvF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAiBF,eAAO,MAAM,mBAAmB,GAAI,yHAWjC,wBAAwB,gCAwG1B,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { ReactNode, RefObject } from 'react';
2
+ export type DSOverlayCloseReason = 'escape' | 'backdrop' | 'close-button';
3
+ export type DSOverlayPlacement = 'right' | 'left' | 'bottom' | 'fullscreen';
4
+ export type DSOverlaySize = 'sm' | 'md' | 'lg' | 'xl';
5
+ export type DSOverlayProps = {
6
+ open: boolean;
7
+ onCloseRequest: (reason: DSOverlayCloseReason) => void;
8
+ children: ReactNode;
9
+ title?: ReactNode;
10
+ description?: ReactNode;
11
+ headerActions?: ReactNode;
12
+ footer?: ReactNode;
13
+ placement?: DSOverlayPlacement;
14
+ size?: DSOverlaySize;
15
+ closeOnEscape?: boolean;
16
+ closeOnBackdrop?: boolean;
17
+ preventClose?: boolean;
18
+ closeLabel?: string;
19
+ initialFocusRef?: RefObject<HTMLElement | null>;
20
+ returnFocusRef?: RefObject<HTMLElement | null>;
21
+ className?: string;
22
+ };
23
+ export declare const useDSOverlay: () => {
24
+ requestClose: (reason: DSOverlayCloseReason) => void;
25
+ } | null;
26
+ export declare const DSOverlay: ({ open, onCloseRequest, children, title, description, headerActions, footer, placement, size, closeOnEscape, closeOnBackdrop, preventClose, closeLabel, initialFocusRef, returnFocusRef, className, }: DSOverlayProps) => import('react').ReactPortal | null;
27
+ export type DSDrawerProps = Omit<DSOverlayProps, 'placement'> & {
28
+ placement?: 'right' | 'left';
29
+ };
30
+ export declare const DSDrawer: ({ placement, ...props }: DSDrawerProps) => import("react").JSX.Element;
31
+ export type DSBottomSheetProps = Omit<DSOverlayProps, 'placement'>;
32
+ export declare const DSBottomSheet: (props: DSBottomSheetProps) => import("react").JSX.Element;
33
+ export type DSFullscreenDialogProps = Omit<DSOverlayProps, 'placement' | 'size'>;
34
+ export declare const DSFullscreenDialog: (props: DSFullscreenDialogProps) => import("react").JSX.Element;
35
+ //# sourceMappingURL=DSOverlay.d.ts.map
@@ -0,0 +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,8 +1,7 @@
1
1
  import { ReactNode } from 'react';
2
- type DSPortalProps = {
2
+ export type DSPortalProps = {
3
3
  children: ReactNode;
4
4
  containerId?: string;
5
5
  };
6
6
  export declare const DSPortal: ({ children, containerId, }: DSPortalProps) => import('react').ReactPortal | null;
7
- export {};
8
7
  //# sourceMappingURL=DSPortal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSPortal.d.ts","sourceRoot":"","sources":["../../../src/components/DSPortal/DSPortal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,SAAS,EACjB,MAAM,OAAO,CAAC;AAGf,KAAK,aAAa,GAAG;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,4BAGtB,aAAa,uCA6Bf,CAAC"}
1
+ {"version":3,"file":"DSPortal.d.ts","sourceRoot":"","sources":["../../../src/components/DSPortal/DSPortal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,SAAS,EACjB,MAAM,OAAO,CAAC;AAGf,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,4BAGtB,aAAa,uCA6Bf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DSToast.d.ts","sourceRoot":"","sources":["../../../src/components/DSToast/DSToast.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,eAAe,CAAC;AAG7D,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AASF,eAAO,MAAM,OAAO,GAAI,oBAAoB,YAAY,gCAwDvD,CAAC"}
1
+ {"version":3,"file":"DSToast.d.ts","sourceRoot":"","sources":["../../../src/components/DSToast/DSToast.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,eAAe,CAAC;AAG7D,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AASF,eAAO,MAAM,OAAO,GAAI,oBAAoB,YAAY,gCAkEvD,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export type DSToastProviderProps = {
2
2
  position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
3
+ /** Limits rendered toasts and keeps the rest in the store-backed queue. */
4
+ maxVisible?: number;
3
5
  };
4
- export declare const DSToastProvider: ({ position }: DSToastProviderProps) => import("react").JSX.Element;
6
+ export declare const DSToastProvider: ({ position, maxVisible }: DSToastProviderProps) => import("react").JSX.Element;
5
7
  //# sourceMappingURL=DSToastProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSToastProvider.d.ts","sourceRoot":"","sources":["../../../src/components/DSToast/DSToastProvider.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,cAA4B,oBAAoB,gCAe/E,CAAC"}
1
+ {"version":3,"file":"DSToastProvider.d.ts","sourceRoot":"","sources":["../../../src/components/DSToast/DSToastProvider.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,CAAC;IACrE,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,0BAAwC,oBAAoB,gCAkB3F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"toast.store.d.ts","sourceRoot":"","sources":["../../../src/components/DSToast/toast.store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,MAAM,eAAe,GAAG;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC;IACjD,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AAIF,eAAO,MAAM,aAAa,8EAkBvB,CAAC;AAEJ,eAAO,MAAM,eAAe,YAA+C,CAAC"}
1
+ {"version":3,"file":"toast.store.d.ts","sourceRoot":"","sources":["../../../src/components/DSToast/toast.store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,MAAM,eAAe,GAAG;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC;IACjD,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AAIF,eAAO,MAAM,aAAa,8EAwBvB,CAAC;AAEJ,eAAO,MAAM,eAAe,YAA+C,CAAC"}
@@ -13,6 +13,8 @@ export type ToastItem = {
13
13
  duration: number;
14
14
  closable: boolean;
15
15
  action?: ToastAction;
16
+ /** Prevents a second active toast with the same key from being queued. */
17
+ dedupeKey?: string;
16
18
  };
17
19
  export type ShowToastPayload = Partial<Omit<ToastItem, 'id' | 'message'>> & Pick<ToastItem, 'message'>;
18
20
  //# sourceMappingURL=toast.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast.types.d.ts","sourceRoot":"","sources":["../../../src/components/DSToast/toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAC9F,MAAM,MAAM,SAAS,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"toast.types.d.ts","sourceRoot":"","sources":["../../../src/components/DSToast/toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAC9F,MAAM,MAAM,SAAS,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC"}