@efficiency-point/design-system 0.0.4

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 (71) hide show
  1. package/README.md +334 -0
  2. package/dist/components/DSBadge/DSBadge.d.ts +13 -0
  3. package/dist/components/DSBadge/DSBadge.d.ts.map +1 -0
  4. package/dist/components/DSButton/DSButton.d.ts +12 -0
  5. package/dist/components/DSButton/DSButton.d.ts.map +1 -0
  6. package/dist/components/DSCheckbox/DSCheckbox.d.ts +20 -0
  7. package/dist/components/DSCheckbox/DSCheckbox.d.ts.map +1 -0
  8. package/dist/components/DSDataTable/DSDataTable.d.ts +48 -0
  9. package/dist/components/DSDataTable/DSDataTable.d.ts.map +1 -0
  10. package/dist/components/DSDateRange/DSDateRange.d.ts +28 -0
  11. package/dist/components/DSDateRange/DSDateRange.d.ts.map +1 -0
  12. package/dist/components/DSDateTimePicker/DSDateTimePicker.d.ts +21 -0
  13. package/dist/components/DSDateTimePicker/DSDateTimePicker.d.ts.map +1 -0
  14. package/dist/components/DSDropDown/DSDropDown.d.ts +25 -0
  15. package/dist/components/DSDropDown/DSDropDown.d.ts.map +1 -0
  16. package/dist/components/DSDropDownMultiple/DSDropDownMultiple.d.ts +19 -0
  17. package/dist/components/DSDropDownMultiple/DSDropDownMultiple.d.ts.map +1 -0
  18. package/dist/components/DSFilters/DSFilters.d.ts +54 -0
  19. package/dist/components/DSFilters/DSFilters.d.ts.map +1 -0
  20. package/dist/components/DSIcon/DSIcon.d.ts +8 -0
  21. package/dist/components/DSIcon/DSIcon.d.ts.map +1 -0
  22. package/dist/components/DSInfoBlock/DSInfoBlock.d.ts +12 -0
  23. package/dist/components/DSInfoBlock/DSInfoBlock.d.ts.map +1 -0
  24. package/dist/components/DSInput/DSInput.d.ts +28 -0
  25. package/dist/components/DSInput/DSInput.d.ts.map +1 -0
  26. package/dist/components/DSLoader/DSLoader.d.ts +9 -0
  27. package/dist/components/DSLoader/DSLoader.d.ts.map +1 -0
  28. package/dist/components/DSModal/DSModal.d.ts +7 -0
  29. package/dist/components/DSModal/DSModal.d.ts.map +1 -0
  30. package/dist/components/DSModal/ModalSystemProvider.d.ts +9 -0
  31. package/dist/components/DSModal/ModalSystemProvider.d.ts.map +1 -0
  32. package/dist/components/DSModal/builtins.d.ts +34 -0
  33. package/dist/components/DSModal/builtins.d.ts.map +1 -0
  34. package/dist/components/DSModal/modal.store.d.ts +15 -0
  35. package/dist/components/DSModal/modal.store.d.ts.map +1 -0
  36. package/dist/components/DSModal/modal.types.d.ts +30 -0
  37. package/dist/components/DSModal/modal.types.d.ts.map +1 -0
  38. package/dist/components/DSModal/useModals.d.ts +12 -0
  39. package/dist/components/DSModal/useModals.d.ts.map +1 -0
  40. package/dist/components/DSPageLoader/DSPageLoader.d.ts +6 -0
  41. package/dist/components/DSPageLoader/DSPageLoader.d.ts.map +1 -0
  42. package/dist/components/DSRadioButton/DSRadioButton.d.ts +13 -0
  43. package/dist/components/DSRadioButton/DSRadioButton.d.ts.map +1 -0
  44. package/dist/components/DSSkeleton/DSSkeleton.d.ts +12 -0
  45. package/dist/components/DSSkeleton/DSSkeleton.d.ts.map +1 -0
  46. package/dist/components/DSSort/DSSort.d.ts +23 -0
  47. package/dist/components/DSSort/DSSort.d.ts.map +1 -0
  48. package/dist/components/DSTimePeriodPicker/DSTimePeriodPicker.d.ts +23 -0
  49. package/dist/components/DSTimePeriodPicker/DSTimePeriodPicker.d.ts.map +1 -0
  50. package/dist/components/DSToast/DSToast.d.ts +7 -0
  51. package/dist/components/DSToast/DSToast.d.ts.map +1 -0
  52. package/dist/components/DSToast/DSToastProvider.d.ts +5 -0
  53. package/dist/components/DSToast/DSToastProvider.d.ts.map +1 -0
  54. package/dist/components/DSToast/toast.store.d.ts +10 -0
  55. package/dist/components/DSToast/toast.store.d.ts.map +1 -0
  56. package/dist/components/DSToast/toast.types.d.ts +18 -0
  57. package/dist/components/DSToast/toast.types.d.ts.map +1 -0
  58. package/dist/components/DSToast/useToast.d.ts +12 -0
  59. package/dist/components/DSToast/useToast.d.ts.map +1 -0
  60. package/dist/components/DSTooltip/DSTooltip.d.ts +13 -0
  61. package/dist/components/DSTooltip/DSTooltip.d.ts.map +1 -0
  62. package/dist/components/DSVideoPlayerFrame/DSVideoPlayerFrame.d.ts +25 -0
  63. package/dist/components/DSVideoPlayerFrame/DSVideoPlayerFrame.d.ts.map +1 -0
  64. package/dist/components/Field/DSField.d.ts +18 -0
  65. package/dist/components/Field/DSField.d.ts.map +1 -0
  66. package/dist/index.cjs +1 -0
  67. package/dist/index.d.ts +33 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.es.js +1411 -0
  70. package/dist/style.css +2 -0
  71. package/package.json +88 -0
package/README.md ADDED
@@ -0,0 +1,334 @@
1
+ # Efficiency Point Design System
2
+
3
+ React/TypeScript дизайн-система с CSS Modules, публичными типами, Storybook и библиотечной сборкой ESM/CJS.
4
+
5
+ ## Требования
6
+
7
+ - Node.js, совместимый с Vite 8;
8
+ - React и React DOM `>=18 <20` в приложении-потребителе;
9
+ - npm как пакетный менеджер.
10
+
11
+ ## Подключение
12
+
13
+ ```bash
14
+ npm install @efficiency-point/design-system
15
+ ```
16
+
17
+ ```tsx
18
+ import { DSButton, DSInfoBlock } from '@efficiency-point/design-system';
19
+ import '@efficiency-point/design-system/styles.css';
20
+
21
+ export function Example() {
22
+ return (
23
+ <DSInfoBlock title="Информация">
24
+ <DSButton>Продолжить</DSButton>
25
+ </DSInfoBlock>
26
+ );
27
+ }
28
+ ```
29
+
30
+ Компоненты форм контролируемые: `value`/`checked` хранится у приложения и обновляется через callback.
31
+
32
+ ## Темизация
33
+
34
+ Компоненты используют CSS custom properties из `tokens.css`. Их можно переопределить после импорта библиотечного CSS:
35
+
36
+ ```css
37
+ :root {
38
+ --color-primary: #2563eb;
39
+ --border-radius: 12px;
40
+ --ds-dropdown-menu-max-height: 280px;
41
+ }
42
+ ```
43
+
44
+ ## Компоненты
45
+
46
+ ### DSButton
47
+
48
+ Кнопка с вариантами `primary`, `secondary`, `outline`, `ghost`, `empty`, `destructive`, `destructiveOutline` и размерами `sm`, `md`, `lg`.
49
+
50
+ ```tsx
51
+ <DSButton variant="primary" isLoading={saving} onClick={save}>
52
+ Сохранить
53
+ </DSButton>
54
+ ```
55
+
56
+ `type` по умолчанию равен `button`. При `isLoading` кнопка блокируется и получает `aria-busy`.
57
+
58
+ ### DSInput
59
+
60
+ Текстовое или числовое контролируемое поле с label, hint, error, required и очисткой.
61
+
62
+ ```tsx
63
+ <DSInput
64
+ label="Название"
65
+ value={name}
66
+ onChange={(value) => setName(String(value))}
67
+ error={nameError}
68
+ required
69
+ />
70
+ ```
71
+
72
+ ### DSCheckbox
73
+
74
+ Поддерживает controlled state, `indeterminate`, `readOnly`, `disabled`, hint/error и нативные form-атрибуты.
75
+
76
+ ```tsx
77
+ <DSCheckbox checked={enabled} onChange={setEnabled} label="Активен" />
78
+ ```
79
+
80
+ ### DSRadioButton
81
+
82
+ Двухпозиционный switch. Несмотря на историческое имя, в DOM используется checkbox с `role="switch"`.
83
+
84
+ ```tsx
85
+ <DSRadioButton checked={enabled} onChange={setEnabled} label="Уведомления" />
86
+ ```
87
+
88
+ ### DSDropDown
89
+
90
+ Одиночный выбор. Поддерживаются disabled options, hint/error, disabled display и клавиши ArrowUp/ArrowDown, Home, End, Enter, Space, Escape и Tab.
91
+
92
+ ```tsx
93
+ <DSDropDown
94
+ label="Статус"
95
+ options={[{ label: 'Активен', value: 'active' }]}
96
+ value={status}
97
+ onChange={setStatus}
98
+ maxMenuHeight={280}
99
+ />
100
+ ```
101
+
102
+ Высота списка по умолчанию задаётся `--ds-dropdown-menu-max-height: 240px`; содержимое прокручивается, активная keyboard-опция подводится в видимую область.
103
+
104
+ ### DSDropDownMultiple
105
+
106
+ Множественный controlled dropdown. `onChange` возвращает массив значений и выбранные объекты. По умолчанию меню остаётся открытым после выбора.
107
+
108
+ ```tsx
109
+ <DSDropDownMultiple
110
+ options={options}
111
+ value={selectedIds}
112
+ onChange={setSelectedIds}
113
+ closeOnSelect={false}
114
+ />
115
+ ```
116
+
117
+ ### DSDateTimePicker
118
+
119
+ Контролируемое поле для `date`, `time` или `datetime`. Использует нативные browser controls и принимает `Date | null`, `min` и `max`.
120
+
121
+ ```tsx
122
+ <DSDateTimePicker mode="datetime" value={date} onChange={setDate} />
123
+ ```
124
+
125
+ ### DSTimePeriodPicker
126
+
127
+ Композиция выбора типа периода и дат начала/окончания. Публичны `DSTimePeriodPickerValue`, `DSTimePeriodTypeCode` и `DSTimePeriodType`.
128
+
129
+ ```tsx
130
+ <DSTimePeriodPicker value={period} onChange={setPeriod} />
131
+ ```
132
+
133
+ ### DSDateRange
134
+
135
+ Контролируемый диапазон дат или локальных даты/времени. `onChange` получает только завершённую валидную пару `Date`; промежуточное состояние доступно через `onDraftChange`.
136
+
137
+ ```tsx
138
+ <DSDateRange mode="datetime" value={range} onChange={setRange} onDraftChange={setDraftRange} />
139
+ ```
140
+
141
+ ### DSDataTable и DSSort
142
+
143
+ Типизированная таблица на стабильной `@tanstack/react-table` с обязательной сортировкой. По умолчанию мобильный вид отображает строки карточками; `tableOnMobile` сохраняет таблицу. `breakpoint="default"` переключает вид ниже 640 px, `breakpoint="wide"` — ниже 1280 px.
144
+
145
+ ```tsx
146
+ <DSDataTable columns={columns} data={rows} breakpoint="wide" />
147
+ ```
148
+
149
+ `DSSort` можно использовать отдельно для сортировки по полям объектов или строковым значениям.
150
+
151
+ ### DSFilters
152
+
153
+ Контролируемая композиция фильтров типов `input`, `dropdown`, `multiple`, `checkbox`, `radio` и `dateRange`, построенная из компонентов дизайн-системы.
154
+
155
+ ```tsx
156
+ <DSFilters filters={filters} values={values} onChange={setValues} />
157
+ ```
158
+
159
+ ### DSVideoPlayerFrame
160
+
161
+ Адаптивная оболочка нативного видеоплеера с несколькими sources/tracks, poster, media-настройками и loading/error-состояниями.
162
+
163
+ ```tsx
164
+ <DSVideoPlayerFrame title="Обучение" sources={[{ src: '/video.mp4', type: 'video/mp4' }]} />
165
+ ```
166
+
167
+ ### DSInfoBlock
168
+
169
+ Постоянно видимая карточка-виджет с заголовком и произвольным содержимым. `dismissible` только показывает кнопку; скрытием управляет приложение через `onDismiss`.
170
+
171
+ ```tsx
172
+ {visible && (
173
+ <DSInfoBlock title="Сводка" dismissible onDismiss={() => setVisible(false)}>
174
+ Контент
175
+ </DSInfoBlock>
176
+ )}
177
+ ```
178
+
179
+ ### DSBadge
180
+
181
+ Неинтерактивная метка. Варианты: `neutral`, `info`, `success`, `warning`, `error`; размеры `sm`, `md`; доступны dot и icon.
182
+
183
+ ```tsx
184
+ <DSBadge variant="success" dot>Готово</DSBadge>
185
+ ```
186
+
187
+ ### DSSkeleton
188
+
189
+ Декоративный placeholder с вариантами `text`, `rectangular`, `circular`, несколькими строками и отключаемой анимацией. Skeleton скрыт от accessibility tree; `aria-busy` должен задавать родитель.
190
+
191
+ ```tsx
192
+ <section aria-busy="true"><DSSkeleton lines={3} /></section>
193
+ ```
194
+
195
+ ### DSTooltip
196
+
197
+ Короткая неинтерактивная подсказка. Открывается по hover/focus/touch, закрывается по blur, pointer leave и Escape. Для кнопок и ссылок внутри содержимого используйте popover, а не tooltip.
198
+
199
+ ```tsx
200
+ <DSTooltip content="Редактировать" placement="top">
201
+ <button type="button">...</button>
202
+ </DSTooltip>
203
+ ```
204
+
205
+ ### DSLoader и DSPageLoader
206
+
207
+ `DSLoader` — компактный индикатор с `role="status"` или декоративным режимом. `DSPageLoader` — центрированный loading-state области страницы.
208
+
209
+ ### DSIcon
210
+
211
+ Типизированный registry иконок. Публичен union `DSIconName`. Без `title` иконка декоративная; с `title` получает роль изображения и доступное имя.
212
+
213
+ ```tsx
214
+ <DSIcon name="approve" title="Подтверждено" />
215
+ ```
216
+
217
+ ### Field primitives
218
+
219
+ `DSFieldLabel` и `DSFieldMessage` унифицируют label, required marker, optional text, hint/error/success сообщения. Публичны все props и `DSFieldMessageVariant`.
220
+
221
+ ## Toast
222
+
223
+ Toast использует внутренний Zustand store и публичный `useToast`. Provider обычно подключается один раз рядом с корнем приложения.
224
+
225
+ ```tsx
226
+ function Root() {
227
+ return (
228
+ <>
229
+ <App />
230
+ <DSToastProvider position="top-right" />
231
+ </>
232
+ );
233
+ }
234
+
235
+ function SaveButton() {
236
+ const { successToast } = useToast();
237
+ return (
238
+ <DSButton onClick={() => successToast({ message: 'Сохранено' })}>
239
+ Сохранить
240
+ </DSButton>
241
+ );
242
+ }
243
+ ```
244
+
245
+ Расширенный API экспортирует `useToastStore`, `ToastStoreState`, `ToastItem`, `ShowToastPayload`, `ToastAction` и `ToastVariant`.
246
+
247
+ ## Modal и реестр приложения
248
+
249
+ Библиотека не импортирует файлы consumer-проекта. Каждый проект хранит реестр по принятому пути, например `src/shared/ui/modal/modal.registry.tsx`, и явно передаёт его provider.
250
+
251
+ ```tsx
252
+ // src/shared/ui/modal/modal.registry.tsx
253
+ import {
254
+ builtInModalRegistry,
255
+ defineModalRegistry,
256
+ type ModalControls,
257
+ } from '@efficiency-point/design-system';
258
+ import { EmployeeModal } from './EmployeeModal';
259
+
260
+ export type EmployeeModalPayload = {
261
+ employeeId: string;
262
+ };
263
+
264
+ export const modalRegistry = defineModalRegistry({
265
+ ...builtInModalRegistry,
266
+ EmployeeModal: ({ employeeId, modalId, close }: EmployeeModalPayload & ModalControls) => (
267
+ <div data-modal-id={modalId}>
268
+ Сотрудник: {employeeId}
269
+ <button onClick={close}>Закрыть</button>
270
+ </div>
271
+ ),
272
+ });
273
+
274
+ export type AppModalRegistry = typeof modalRegistry;
275
+ ```
276
+
277
+ ```tsx
278
+ // app providers
279
+ import { ModalSystemProvider } from '@efficiency-point/design-system';
280
+ import { modalRegistry } from '@/shared/ui/modal/modal.registry';
281
+
282
+ <ModalSystemProvider registry={modalRegistry}>
283
+ <App />
284
+ </ModalSystemProvider>
285
+ ```
286
+
287
+ ```tsx
288
+ const { openModal } = useModals<typeof modalRegistry>();
289
+ openModal('EmployeeModal', { employeeId: '42' });
290
+ ```
291
+
292
+ Modal host поддерживает stack, закрытие верхней модалки по Escape, backdrop-close, focus trap и восстановление focus. Поведение Escape/backdrop настраивается в `openModal`.
293
+
294
+ Встроенные `ConfirmModal` и `ErrorModal` доступны через `builtInModalRegistry`, `useConfirmModal` и `useErrorModal`.
295
+
296
+ ## Публичные типы
297
+
298
+ Все component props, callback signatures, variant unions, store states, hook results, modal registry contracts и payload-типы экспортируются из корневого entry point.
299
+
300
+ ## Разработка и проверки
301
+
302
+ ```bash
303
+ npm run lint
304
+ npm run typecheck
305
+ npm run test
306
+ npm run test:coverage
307
+ npm run build
308
+ npm run test:package
309
+ npm run build-storybook
310
+ npm run pack:check
311
+ ```
312
+
313
+ ## Подготовка пакета
314
+
315
+ 1. Установить зависимости: `npm ci`.
316
+ 2. Запустить `npm run lint`.
317
+ 3. Запустить `npm run typecheck`.
318
+ 4. Запустить `npm run test` и сохранить результаты в отчёт.
319
+ 5. Запустить `npm run test:package`.
320
+ 6. Собрать Storybook: `npm run build-storybook`.
321
+ 7. Проверить содержимое архива: `npm run pack:check`.
322
+ 8. Указать финальные `name`, `version`, `license`, `repository` и при необходимости `publishConfig` в `package.json`.
323
+ 9. Создать архив: `npm pack`.
324
+ 10. Установить `.tgz` в чистое React-приложение и проверить ESM/CJS, типы и CSS.
325
+ 11. После проверки выполнить `npm publish` в выбранный registry. Публикация и изменение версии выполняются отдельно и в текущую задачу не входят.
326
+
327
+ ## Подключение к другому проекту
328
+
329
+ 1. Установить опубликованный пакет или локальный tarball.
330
+ 2. Один раз импортировать `@efficiency-point/design-system/styles.css` в entry приложения.
331
+ 3. Убедиться, что React/React DOM удовлетворяют peer range.
332
+ 4. Подключить `DSToastProvider`, если используются toast.
333
+ 5. Создать `shared/ui/modal/modal.registry.tsx` и подключить `ModalSystemProvider`, если используются модалки.
334
+ 6. Заменять локальные UI-компоненты постепенно, сохраняя controlled state и импортируя публичные props/payload-типы из пакета.
@@ -0,0 +1,13 @@
1
+ import { ReactNode } from 'react';
2
+ export type DSBadgeVariant = 'neutral' | 'info' | 'success' | 'warning' | 'error';
3
+ export type DSBadgeSize = 'sm' | 'md';
4
+ export type DSBadgeProps = {
5
+ children: ReactNode;
6
+ variant?: DSBadgeVariant;
7
+ size?: DSBadgeSize;
8
+ dot?: boolean;
9
+ icon?: ReactNode;
10
+ className?: string;
11
+ };
12
+ export declare const DSBadge: ({ children, variant, size, dot, icon, className, }: DSBadgeProps) => import("react").JSX.Element;
13
+ //# sourceMappingURL=DSBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSBadge.d.ts","sourceRoot":"","sources":["../../../src/components/DSBadge/DSBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAClF,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtC,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,oDAOrB,YAAY,gCAad,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { ButtonHTMLAttributes, ReactNode } from 'react';
2
+ export type DSButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'empty' | 'destructive' | 'destructiveOutline';
3
+ export type DSButtonSize = 'sm' | 'md' | 'lg';
4
+ export interface DSButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
5
+ children: ReactNode;
6
+ variant?: DSButtonVariant;
7
+ size?: DSButtonSize;
8
+ isLoading?: boolean;
9
+ loadingLabel?: string;
10
+ }
11
+ export declare const DSButton: import('react').ForwardRefExoticComponent<DSButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
12
+ //# sourceMappingURL=DSButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSButton.d.ts","sourceRoot":"","sources":["../../../src/components/DSButton/DSButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAI9E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,oBAAoB,CAAC;AAC7H,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9C,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC5F,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,QAAQ,6GA0BnB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { FocusEventHandler } from 'react';
2
+ export type DSCheckboxProps = {
3
+ checked: boolean;
4
+ onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
5
+ label?: string;
6
+ hint?: string;
7
+ error?: string;
8
+ disabled?: boolean;
9
+ readOnly?: boolean;
10
+ className?: string;
11
+ name?: string;
12
+ id?: string;
13
+ value?: string;
14
+ indeterminate?: boolean;
15
+ required?: boolean;
16
+ onBlur?: FocusEventHandler<HTMLInputElement>;
17
+ onFocus?: FocusEventHandler<HTMLInputElement>;
18
+ };
19
+ export declare const DSCheckbox: ({ checked, onChange, label, hint, error, disabled, readOnly, className, name, id, indeterminate, ...props }: DSCheckboxProps) => import("react").JSX.Element;
20
+ //# sourceMappingURL=DSCheckbox.d.ts.map
@@ -0,0 +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;AAIzE,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,gCAiDjB,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ import { SortingState } from '@tanstack/react-table';
3
+ export type DSDataTableBreakpoint = 'default' | 'wide';
4
+ export type DSDataTableData = Record<string, unknown>;
5
+ export type DSDataTableMobileColumnMeta<TData> = {
6
+ hideOnMobile?: boolean;
7
+ primary?: boolean;
8
+ secondary?: boolean;
9
+ mobileLabel?: ReactNode;
10
+ mobileOrder?: number;
11
+ mobileSpan?: 1 | 2;
12
+ mobileVariant?: 'field' | 'badge' | 'actions';
13
+ renderMobile?: (row: TData, value: unknown) => ReactNode;
14
+ };
15
+ export type DSDataTableColumn<TData extends object> = {
16
+ id: string;
17
+ header: ReactNode;
18
+ accessor: keyof TData | ((row: TData) => unknown);
19
+ cell?: (row: TData, value: unknown) => ReactNode;
20
+ dataType?: 'text' | 'number' | 'date' | 'boolean' | 'custom';
21
+ sortDescFirst?: boolean;
22
+ mobile?: DSDataTableMobileColumnMeta<TData>;
23
+ };
24
+ export type DSDataTableMobileRowContext<TData extends object> = {
25
+ row: TData;
26
+ columns: DSDataTableColumn<TData>[];
27
+ };
28
+ export type DSDataTableProps<TData extends object> = {
29
+ columns: DSDataTableColumn<TData>[];
30
+ data: TData[];
31
+ tableOnMobile?: boolean;
32
+ breakpoint?: DSDataTableBreakpoint;
33
+ sorting?: SortingState;
34
+ onSortingChange?: (sorting: SortingState) => void;
35
+ renderMobileCard?: (context: DSDataTableMobileRowContext<TData>) => ReactNode;
36
+ getRowId?: (row: TData, index: number) => string;
37
+ caption?: string;
38
+ ariaLabel?: string;
39
+ loading?: boolean;
40
+ error?: ReactNode;
41
+ emptyState?: ReactNode;
42
+ stickyHeader?: boolean;
43
+ maxHeight?: CSSProperties['maxHeight'];
44
+ className?: string;
45
+ };
46
+ export declare const validateDSDataTableData: <TData extends object>(columns: DSDataTableColumn<TData>[], data: TData[]) => string | null;
47
+ export declare const DSDataTable: <TData extends object>({ columns, data, tableOnMobile, breakpoint, sorting: controlledSorting, onSortingChange, renderMobileCard, getRowId, caption, ariaLabel, loading, error, emptyState, stickyHeader, maxHeight, className, }: DSDataTableProps<TData>) => import("react").JSX.Element;
48
+ //# sourceMappingURL=DSDataTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSDataTable.d.ts","sourceRoot":"","sources":["../../../src/components/DSDataTable/DSDataTable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export type DSDateRangeMode = 'date' | 'datetime' | 'time';
2
+ export type DSDateRangeValue = {
3
+ from: Date | null;
4
+ to: Date | null;
5
+ };
6
+ export type DSDateRangeChangeValue = {
7
+ from: Date;
8
+ to: Date;
9
+ };
10
+ export type DSDateRangeProps = {
11
+ value: DSDateRangeValue;
12
+ onChange?: (value: DSDateRangeChangeValue) => void;
13
+ onDraftChange?: (value: DSDateRangeValue) => void;
14
+ mode?: DSDateRangeMode;
15
+ fromLabel?: string;
16
+ toLabel?: string;
17
+ hint?: string;
18
+ error?: string;
19
+ min?: Date;
20
+ max?: Date;
21
+ disabled?: boolean;
22
+ readOnly?: boolean;
23
+ required?: boolean;
24
+ className?: string;
25
+ };
26
+ export declare const isValidDateRange: (value: DSDateRangeValue) => value is DSDateRangeChangeValue;
27
+ export declare const DSDateRange: ({ value, onChange, onDraftChange, mode, fromLabel, toLabel, hint, error, min, max, disabled, readOnly, required, className, }: DSDateRangeProps) => import("react").JSX.Element;
28
+ //# sourceMappingURL=DSDateRange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSDateRange.d.ts","sourceRoot":"","sources":["../../../src/components/DSDateRange/DSDateRange.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,EAAE,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,CAAC;AACtE,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG;IAC3B,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACnD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,gBAAgB,KAAG,KAAK,IAAI,sBAEnE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,+HAezB,gBAAgB,gCAwClB,CAAC"}
@@ -0,0 +1,21 @@
1
+ export type DSDateTimePickerMode = 'date' | 'time' | 'datetime';
2
+ export type DSDateTimePickerProps = {
3
+ value: Date | null;
4
+ onChange?: (value: Date | null) => void;
5
+ mode?: DSDateTimePickerMode;
6
+ label?: string;
7
+ hint?: string;
8
+ error?: string;
9
+ disabled?: boolean;
10
+ readOnly?: boolean;
11
+ required?: boolean;
12
+ min?: Date;
13
+ max?: Date;
14
+ id?: string;
15
+ name?: string;
16
+ className?: string;
17
+ };
18
+ export declare const formatDateTimeLocalValue: (value: Date | null, mode: DSDateTimePickerMode) => string;
19
+ export declare const parseDateTimeLocalValue: (value: string, mode: DSDateTimePickerMode) => Date | null;
20
+ export declare const DSDateTimePicker: ({ value, onChange, mode, label, hint, error, disabled, readOnly, required, min, max, id, name, className, }: DSDateTimePickerProps) => import("react").JSX.Element;
21
+ //# sourceMappingURL=DSDateTimePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSDateTimePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DSDateTimePicker/DSDateTimePicker.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAEhE,MAAM,MAAM,qBAAqB,GAAG;IAChC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACxC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,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,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAIF,eAAO,MAAM,wBAAwB,GAAI,OAAO,IAAI,GAAG,IAAI,EAAE,MAAM,oBAAoB,WAOtF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,MAAM,EAAE,MAAM,oBAAoB,gBAUhF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,6GAe9B,qBAAqB,gCAyCvB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { CSSProperties } from 'react';
2
+ export type DropDownOption = {
3
+ label: string;
4
+ value: string;
5
+ disabled?: boolean;
6
+ };
7
+ export type DSDropDownProps = {
8
+ options: DropDownOption[];
9
+ value: string;
10
+ onChange?: (value: string, option: DropDownOption) => void;
11
+ placeholder?: string;
12
+ disabled?: boolean;
13
+ stringWhileDisabled?: boolean;
14
+ label?: string;
15
+ error?: string;
16
+ hint?: string;
17
+ className?: string;
18
+ name?: string;
19
+ id?: string;
20
+ needMark?: boolean;
21
+ maxMenuHeight?: CSSProperties['maxHeight'];
22
+ };
23
+ export declare const getNextEnabledOptionIndex: (options: DropDownOption[], startIndex: number, direction: 1 | -1) => number;
24
+ export declare const DSDropDown: ({ options, value, onChange, placeholder, disabled, stringWhileDisabled, label, error, hint, className, name, id, needMark, maxMenuHeight, }: DSDropDownProps) => import("react").JSX.Element;
25
+ //# sourceMappingURL=DSDropDown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSDropDown.d.ts","sourceRoot":"","sources":["../../../src/components/DSDropDown/DSDropDown.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAGxF,MAAM,MAAM,cAAc,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAClC,SAAS,cAAc,EAAE,EACzB,YAAY,MAAM,EAClB,WAAW,CAAC,GAAG,CAAC,CAAC,WAOpB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,6IAexB,eAAe,gCAyLjB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { CSSProperties } from 'react';
2
+ import { DropDownOption } from '../DSDropDown/DSDropDown';
3
+ export type DSDropDownMultipleProps = {
4
+ options: DropDownOption[];
5
+ value: string[];
6
+ onChange?: (value: string[], selectedOptions: DropDownOption[]) => void;
7
+ placeholder?: string;
8
+ disabled?: boolean;
9
+ label?: string;
10
+ error?: string;
11
+ hint?: string;
12
+ className?: string;
13
+ name?: string;
14
+ id?: string;
15
+ closeOnSelect?: boolean;
16
+ maxMenuHeight?: CSSProperties['maxHeight'];
17
+ };
18
+ export declare const DSDropDownMultiple: ({ options, value, onChange, placeholder, disabled, label, error, hint, className, name, id, closeOnSelect, maxMenuHeight, }: DSDropDownMultipleProps) => import("react").JSX.Element;
19
+ //# sourceMappingURL=DSDropDownMultiple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSDropDownMultiple.d.ts","sourceRoot":"","sources":["../../../src/components/DSDropDownMultiple/DSDropDownMultiple.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AACxF,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1F,MAAM,MAAM,uBAAuB,GAAG;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,6HAchC,uBAAuB,gCAoKzB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { DSDateRangeValue } from '../DSDateRange/DSDateRange';
2
+ import { DropDownOption } from '../DSDropDown/DSDropDown';
3
+ import { DSInputValue } from '../DSInput/DSInput';
4
+ type CommonFilter = {
5
+ id: string;
6
+ label: string;
7
+ disabled?: boolean;
8
+ hidden?: boolean;
9
+ hint?: string;
10
+ };
11
+ export type DSInputFilter = CommonFilter & {
12
+ type: 'input';
13
+ placeholder?: string;
14
+ inputType?: 'text' | 'number';
15
+ };
16
+ export type DSDropDownFilter = CommonFilter & {
17
+ type: 'dropdown';
18
+ options: DropDownOption[];
19
+ placeholder?: string;
20
+ };
21
+ export type DSMultipleFilter = CommonFilter & {
22
+ type: 'multiple';
23
+ options: DropDownOption[];
24
+ placeholder?: string;
25
+ };
26
+ export type DSCheckboxFilter = CommonFilter & {
27
+ type: 'checkbox';
28
+ };
29
+ export type DSRadioFilter = CommonFilter & {
30
+ type: 'radio';
31
+ };
32
+ export type DSDateRangeFilter = CommonFilter & {
33
+ type: 'dateRange';
34
+ mode?: 'date' | 'datetime' | 'time';
35
+ min?: Date;
36
+ max?: Date;
37
+ };
38
+ export type DSFilterDefinition = DSInputFilter | DSDropDownFilter | DSMultipleFilter | DSCheckboxFilter | DSRadioFilter | DSDateRangeFilter;
39
+ export type DSFilterValue = DSInputValue | string[] | boolean | DSDateRangeValue;
40
+ export type DSFilterValues = Record<string, DSFilterValue>;
41
+ export type DSFiltersProps<TValues extends DSFilterValues = DSFilterValues> = {
42
+ filters: DSFilterDefinition[];
43
+ values: TValues;
44
+ onChange?: (values: TValues, changedId: string) => void;
45
+ onApply?: (values: TValues) => void;
46
+ onReset?: () => void;
47
+ applyMode?: 'instant' | 'manual';
48
+ loading?: boolean;
49
+ disabled?: boolean;
50
+ className?: string;
51
+ };
52
+ export declare const DSFilters: <TValues extends DSFilterValues>({ filters, values, onChange, onApply, onReset, applyMode, loading, disabled, className, }: DSFiltersProps<TValues>) => import("react").JSX.Element;
53
+ export {};
54
+ //# sourceMappingURL=DSFilters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSFilters.d.ts","sourceRoot":"","sources":["../../../src/components/DSFilters/DSFilters.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIhE,KAAK,YAAY,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvG,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,CAAC;AAClH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACpH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACpH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AACnE,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAClI,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,aAAa,GAAG,iBAAiB,CAAC;AAC5I,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,gBAAgB,CAAC;AACjF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE3D,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IAAI;IAC1E,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,SAAS,cAAc,EAAE,2FAUvD,cAAc,CAAC,OAAO,CAAC,gCA8BzB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { SVGProps } from 'react';
2
+ export type DSIconName = 'approve' | 'reject' | 'edit' | 'cross' | 'chevron' | 'basket' | 'info' | 'warning';
3
+ export type DSIconProps = SVGProps<SVGSVGElement> & {
4
+ name: DSIconName;
5
+ title?: string;
6
+ };
7
+ export declare const DSIcon: ({ name, title, width, height, ...props }: DSIconProps) => import("react").JSX.Element;
8
+ //# sourceMappingURL=DSIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DSIcon.d.ts","sourceRoot":"","sources":["../../../src/components/DSIcon/DSIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAC7G,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG;IAChD,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAaF,eAAO,MAAM,MAAM,GAAI,0CAAoD,WAAW,gCAkBrF,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { ElementType, ReactNode } from 'react';
2
+ export type DSInfoBlockProps = {
3
+ title: ReactNode;
4
+ children: ReactNode;
5
+ dismissible?: boolean;
6
+ onDismiss?: () => void;
7
+ dismissLabel?: string;
8
+ headingAs?: Extract<ElementType, 'h2' | 'h3' | 'h4' | 'h5' | 'h6'>;
9
+ className?: string;
10
+ };
11
+ export declare const DSInfoBlock: ({ title, children, dismissible, onDismiss, dismissLabel, headingAs: Heading, className, }: DSInfoBlockProps) => import("react").JSX.Element;
12
+ //# sourceMappingURL=DSInfoBlock.d.ts.map