@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.
- package/README.md +334 -0
- package/dist/components/DSBadge/DSBadge.d.ts +13 -0
- package/dist/components/DSBadge/DSBadge.d.ts.map +1 -0
- package/dist/components/DSButton/DSButton.d.ts +12 -0
- package/dist/components/DSButton/DSButton.d.ts.map +1 -0
- package/dist/components/DSCheckbox/DSCheckbox.d.ts +20 -0
- package/dist/components/DSCheckbox/DSCheckbox.d.ts.map +1 -0
- package/dist/components/DSDataTable/DSDataTable.d.ts +48 -0
- package/dist/components/DSDataTable/DSDataTable.d.ts.map +1 -0
- package/dist/components/DSDateRange/DSDateRange.d.ts +28 -0
- package/dist/components/DSDateRange/DSDateRange.d.ts.map +1 -0
- package/dist/components/DSDateTimePicker/DSDateTimePicker.d.ts +21 -0
- package/dist/components/DSDateTimePicker/DSDateTimePicker.d.ts.map +1 -0
- package/dist/components/DSDropDown/DSDropDown.d.ts +25 -0
- package/dist/components/DSDropDown/DSDropDown.d.ts.map +1 -0
- package/dist/components/DSDropDownMultiple/DSDropDownMultiple.d.ts +19 -0
- package/dist/components/DSDropDownMultiple/DSDropDownMultiple.d.ts.map +1 -0
- package/dist/components/DSFilters/DSFilters.d.ts +54 -0
- package/dist/components/DSFilters/DSFilters.d.ts.map +1 -0
- package/dist/components/DSIcon/DSIcon.d.ts +8 -0
- package/dist/components/DSIcon/DSIcon.d.ts.map +1 -0
- package/dist/components/DSInfoBlock/DSInfoBlock.d.ts +12 -0
- package/dist/components/DSInfoBlock/DSInfoBlock.d.ts.map +1 -0
- package/dist/components/DSInput/DSInput.d.ts +28 -0
- package/dist/components/DSInput/DSInput.d.ts.map +1 -0
- package/dist/components/DSLoader/DSLoader.d.ts +9 -0
- package/dist/components/DSLoader/DSLoader.d.ts.map +1 -0
- package/dist/components/DSModal/DSModal.d.ts +7 -0
- package/dist/components/DSModal/DSModal.d.ts.map +1 -0
- package/dist/components/DSModal/ModalSystemProvider.d.ts +9 -0
- package/dist/components/DSModal/ModalSystemProvider.d.ts.map +1 -0
- package/dist/components/DSModal/builtins.d.ts +34 -0
- package/dist/components/DSModal/builtins.d.ts.map +1 -0
- package/dist/components/DSModal/modal.store.d.ts +15 -0
- package/dist/components/DSModal/modal.store.d.ts.map +1 -0
- package/dist/components/DSModal/modal.types.d.ts +30 -0
- package/dist/components/DSModal/modal.types.d.ts.map +1 -0
- package/dist/components/DSModal/useModals.d.ts +12 -0
- package/dist/components/DSModal/useModals.d.ts.map +1 -0
- package/dist/components/DSPageLoader/DSPageLoader.d.ts +6 -0
- package/dist/components/DSPageLoader/DSPageLoader.d.ts.map +1 -0
- package/dist/components/DSRadioButton/DSRadioButton.d.ts +13 -0
- package/dist/components/DSRadioButton/DSRadioButton.d.ts.map +1 -0
- package/dist/components/DSSkeleton/DSSkeleton.d.ts +12 -0
- package/dist/components/DSSkeleton/DSSkeleton.d.ts.map +1 -0
- package/dist/components/DSSort/DSSort.d.ts +23 -0
- package/dist/components/DSSort/DSSort.d.ts.map +1 -0
- package/dist/components/DSTimePeriodPicker/DSTimePeriodPicker.d.ts +23 -0
- package/dist/components/DSTimePeriodPicker/DSTimePeriodPicker.d.ts.map +1 -0
- package/dist/components/DSToast/DSToast.d.ts +7 -0
- package/dist/components/DSToast/DSToast.d.ts.map +1 -0
- package/dist/components/DSToast/DSToastProvider.d.ts +5 -0
- package/dist/components/DSToast/DSToastProvider.d.ts.map +1 -0
- package/dist/components/DSToast/toast.store.d.ts +10 -0
- package/dist/components/DSToast/toast.store.d.ts.map +1 -0
- package/dist/components/DSToast/toast.types.d.ts +18 -0
- package/dist/components/DSToast/toast.types.d.ts.map +1 -0
- package/dist/components/DSToast/useToast.d.ts +12 -0
- package/dist/components/DSToast/useToast.d.ts.map +1 -0
- package/dist/components/DSTooltip/DSTooltip.d.ts +13 -0
- package/dist/components/DSTooltip/DSTooltip.d.ts.map +1 -0
- package/dist/components/DSVideoPlayerFrame/DSVideoPlayerFrame.d.ts +25 -0
- package/dist/components/DSVideoPlayerFrame/DSVideoPlayerFrame.d.ts.map +1 -0
- package/dist/components/Field/DSField.d.ts +18 -0
- package/dist/components/Field/DSField.d.ts.map +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es.js +1411 -0
- package/dist/style.css +2 -0
- 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
|