@idds/react 1.1.86
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 +429 -0
- package/dist/index.cjs.js +20 -0
- package/dist/index.css +1 -0
- package/dist/index.es.js +9682 -0
- package/dist/index.umd.js +20 -0
- package/dist/types/App.d.ts +3 -0
- package/dist/types/App.d.ts.map +1 -0
- package/dist/types/components/Accordion.d.ts +48 -0
- package/dist/types/components/Accordion.d.ts.map +1 -0
- package/dist/types/components/AccordionCard.d.ts +22 -0
- package/dist/types/components/AccordionCard.d.ts.map +1 -0
- package/dist/types/components/AccordionGroup.d.ts +45 -0
- package/dist/types/components/AccordionGroup.d.ts.map +1 -0
- package/dist/types/components/ActionDropdown.d.ts +21 -0
- package/dist/types/components/ActionDropdown.d.ts.map +1 -0
- package/dist/types/components/Alert.d.ts +55 -0
- package/dist/types/components/Alert.d.ts.map +1 -0
- package/dist/types/components/Avatar.d.ts +33 -0
- package/dist/types/components/Avatar.d.ts.map +1 -0
- package/dist/types/components/Badge.d.ts +61 -0
- package/dist/types/components/Badge.d.ts.map +1 -0
- package/dist/types/components/BottomSheet.d.ts +9 -0
- package/dist/types/components/BottomSheet.d.ts.map +1 -0
- package/dist/types/components/Breadcrumb.d.ts +25 -0
- package/dist/types/components/Breadcrumb.d.ts.map +1 -0
- package/dist/types/components/Button.d.ts +68 -0
- package/dist/types/components/Button.d.ts.map +1 -0
- package/dist/types/components/ButtonGroup.d.ts +27 -0
- package/dist/types/components/ButtonGroup.d.ts.map +1 -0
- package/dist/types/components/Card.d.ts +94 -0
- package/dist/types/components/Card.d.ts.map +1 -0
- package/dist/types/components/Checkbox.d.ts +33 -0
- package/dist/types/components/Checkbox.d.ts.map +1 -0
- package/dist/types/components/Chip.d.ts +36 -0
- package/dist/types/components/Chip.d.ts.map +1 -0
- package/dist/types/components/Collapse.d.ts +16 -0
- package/dist/types/components/Collapse.d.ts.map +1 -0
- package/dist/types/components/DatePicker.d.ts +39 -0
- package/dist/types/components/DatePicker.d.ts.map +1 -0
- package/dist/types/components/Divider.d.ts +42 -0
- package/dist/types/components/Divider.d.ts.map +1 -0
- package/dist/types/components/Drawer.d.ts +35 -0
- package/dist/types/components/Drawer.d.ts.map +1 -0
- package/dist/types/components/Dropdown.d.ts +24 -0
- package/dist/types/components/Dropdown.d.ts.map +1 -0
- package/dist/types/components/FieldInputTable.d.ts +33 -0
- package/dist/types/components/FieldInputTable.d.ts.map +1 -0
- package/dist/types/components/FileUpload.d.ts +86 -0
- package/dist/types/components/FileUpload.d.ts.map +1 -0
- package/dist/types/components/InputSearch.d.ts +14 -0
- package/dist/types/components/InputSearch.d.ts.map +1 -0
- package/dist/types/components/LinearProgressIndicator.d.ts +16 -0
- package/dist/types/components/LinearProgressIndicator.d.ts.map +1 -0
- package/dist/types/components/List/List.d.ts +17 -0
- package/dist/types/components/List/List.d.ts.map +1 -0
- package/dist/types/components/List/ListItem.d.ts +19 -0
- package/dist/types/components/List/ListItem.d.ts.map +1 -0
- package/dist/types/components/List/ListItemAvatar.d.ts +15 -0
- package/dist/types/components/List/ListItemAvatar.d.ts.map +1 -0
- package/dist/types/components/List/ListItemButton.d.ts +12 -0
- package/dist/types/components/List/ListItemButton.d.ts.map +1 -0
- package/dist/types/components/List/ListItemIcon.d.ts +12 -0
- package/dist/types/components/List/ListItemIcon.d.ts.map +1 -0
- package/dist/types/components/List/ListItemText.d.ts +14 -0
- package/dist/types/components/List/ListItemText.d.ts.map +1 -0
- package/dist/types/components/List/ListSubheader.d.ts +16 -0
- package/dist/types/components/List/ListSubheader.d.ts.map +1 -0
- package/dist/types/components/Modal.d.ts +13 -0
- package/dist/types/components/Modal.d.ts.map +1 -0
- package/dist/types/components/MonthPicker.d.ts +39 -0
- package/dist/types/components/MonthPicker.d.ts.map +1 -0
- package/dist/types/components/MultipleChoiceGrid.d.ts +32 -0
- package/dist/types/components/MultipleChoiceGrid.d.ts.map +1 -0
- package/dist/types/components/Pagination.d.ts +58 -0
- package/dist/types/components/Pagination.d.ts.map +1 -0
- package/dist/types/components/PasswordInput.d.ts +75 -0
- package/dist/types/components/PasswordInput.d.ts.map +1 -0
- package/dist/types/components/PhoneInput.d.ts +19 -0
- package/dist/types/components/PhoneInput.d.ts.map +1 -0
- package/dist/types/components/ProgressBar.d.ts +32 -0
- package/dist/types/components/ProgressBar.d.ts.map +1 -0
- package/dist/types/components/RadioInput.d.ts +27 -0
- package/dist/types/components/RadioInput.d.ts.map +1 -0
- package/dist/types/components/SelectDropdown.d.ts +81 -0
- package/dist/types/components/SelectDropdown.d.ts.map +1 -0
- package/dist/types/components/Skeleton.d.ts +20 -0
- package/dist/types/components/Skeleton.d.ts.map +1 -0
- package/dist/types/components/Spinner.d.ts +22 -0
- package/dist/types/components/Spinner.d.ts.map +1 -0
- package/dist/types/components/Stepper.d.ts +25 -0
- package/dist/types/components/Stepper.d.ts.map +1 -0
- package/dist/types/components/TabHorizontal.d.ts +34 -0
- package/dist/types/components/TabHorizontal.d.ts.map +1 -0
- package/dist/types/components/TabVertical.d.ts +34 -0
- package/dist/types/components/TabVertical.d.ts.map +1 -0
- package/dist/types/components/Table.d.ts +69 -0
- package/dist/types/components/Table.d.ts.map +1 -0
- package/dist/types/components/TableProgressBar.d.ts +20 -0
- package/dist/types/components/TableProgressBar.d.ts.map +1 -0
- package/dist/types/components/TextArea.d.ts +57 -0
- package/dist/types/components/TextArea.d.ts.map +1 -0
- package/dist/types/components/TextField.d.ts +61 -0
- package/dist/types/components/TextField.d.ts.map +1 -0
- package/dist/types/components/ThemeToggle.d.ts +7 -0
- package/dist/types/components/ThemeToggle.d.ts.map +1 -0
- package/dist/types/components/TimePicker.d.ts +56 -0
- package/dist/types/components/TimePicker.d.ts.map +1 -0
- package/dist/types/components/Toast.d.ts +15 -0
- package/dist/types/components/Toast.d.ts.map +1 -0
- package/dist/types/components/Toggle.d.ts +26 -0
- package/dist/types/components/Toggle.d.ts.map +1 -0
- package/dist/types/components/Tooltip.d.ts +85 -0
- package/dist/types/components/Tooltip.d.ts.map +1 -0
- package/dist/types/components/YearPicker.d.ts +43 -0
- package/dist/types/components/YearPicker.d.ts.map +1 -0
- package/dist/types/index.d.ts +70 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/main.d.ts +1 -0
- package/dist/types/main.d.ts.map +1 -0
- package/dist/types/themes/index.d.ts +41 -0
- package/dist/types/themes/index.d.ts.map +1 -0
- package/dist/types/utils/ConfirmationProvider.d.ts +16 -0
- package/dist/types/utils/ConfirmationProvider.d.ts.map +1 -0
- package/dist/types/utils/ToastProvider.d.ts +12 -0
- package/dist/types/utils/ToastProvider.d.ts.map +1 -0
- package/dist/types/utils/fileValidation.d.ts +57 -0
- package/dist/types/utils/fileValidation.d.ts.map +1 -0
- package/dist/types/utils/form.d.ts +21 -0
- package/dist/types/utils/form.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +11 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/security.d.ts +61 -0
- package/dist/types/utils/security.d.ts.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Drawer — panel geser dari satu sisi layar.
|
|
4
|
+
*
|
|
5
|
+
* @param {boolean} isOpen Kontrol apakah drawer terbuka.
|
|
6
|
+
* @param {() => void} onClose Callback saat drawer ditutup.
|
|
7
|
+
* @param {'right'|'left'|'top'|'bottom'} [position] Sisi munculnya drawer. Default: "right".
|
|
8
|
+
* @param {boolean} [closeOnBackdrop] Klik backdrop menutup? Default: true.
|
|
9
|
+
* @param {string} [className] Class tailwind tambahan untuk panel.
|
|
10
|
+
* @param {ReactNode} children Konten di dalam drawer.
|
|
11
|
+
*/
|
|
12
|
+
export interface DrawerProps {
|
|
13
|
+
/** Apakah drawer terbuka? */
|
|
14
|
+
isOpen: boolean;
|
|
15
|
+
/** Callback saat drawer ditutup */
|
|
16
|
+
onClose: () => void;
|
|
17
|
+
/**
|
|
18
|
+
* Sisi kemana drawer muncul di desktop.
|
|
19
|
+
* - 'right' | 'left' | 'top' | 'bottom'
|
|
20
|
+
* @default 'right'
|
|
21
|
+
*/
|
|
22
|
+
position?: 'right' | 'left' | 'top' | 'bottom';
|
|
23
|
+
/** Klik backdrop menutup? @default true */
|
|
24
|
+
closeOnBackdrop?: boolean;
|
|
25
|
+
/** Tailwind class tambahan untuk panel */
|
|
26
|
+
className?: string;
|
|
27
|
+
/** Width panel (desktop) - 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | custom string */
|
|
28
|
+
width?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | string;
|
|
29
|
+
/** Title yang ditampilkan di header */
|
|
30
|
+
title?: string;
|
|
31
|
+
/** Konten di dalam drawer */
|
|
32
|
+
children: ReactNode;
|
|
33
|
+
}
|
|
34
|
+
export default function Drawer({ isOpen, onClose, position, closeOnBackdrop, className, width, title, children, }: DrawerProps): import('react').ReactPortal | null;
|
|
35
|
+
//# sourceMappingURL=Drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/components/Drawer.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAIvD,OAAO,oCAAoC,CAAC;AAE5C;;;;;;;;;GASG;AAEH,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,mCAAmC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC/C,2CAA2C;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5D,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,QAAkB,EAClB,eAAsB,EACtB,SAAc,EACd,KAAe,EACf,KAAK,EACL,QAAQ,GACT,EAAE,WAAW,sCAgIb"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ReactNode, CSSProperties } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Dropdown component yang menampilkan dropdown menu dengan positioning otomatis.
|
|
4
|
+
* Komponen generik yang bisa digunakan untuk berbagai keperluan dropdown.
|
|
5
|
+
*
|
|
6
|
+
* @param {ReactNode} trigger - Trigger element untuk membuka dropdown (wajib diisi).
|
|
7
|
+
* @param {ReactNode[]} items - Array of ReactNode yang akan ditampilkan sebagai item dropdown. User bebas mendefine item apapun (button, div, span, dll).
|
|
8
|
+
* @param {string} [className] - ClassName tambahan untuk override styling container trigger (opsional).
|
|
9
|
+
* @param {string} [dropdownClassName] - ClassName tambahan untuk override styling kotak dropdown (opsional). Menggunakan tailwind-merge agar class user menang.
|
|
10
|
+
* @param {CSSProperties} [dropdownStyle] - Inline style tambahan untuk kotak dropdown (opsional).
|
|
11
|
+
* @param {boolean} [disabled] - Jika true, dropdown tidak bisa dibuka (opsional).
|
|
12
|
+
* @param {number} [dropdownWidth] - Lebar dropdown dalam pixel. Default: 160.
|
|
13
|
+
*/
|
|
14
|
+
export interface DropdownProps {
|
|
15
|
+
trigger: ReactNode;
|
|
16
|
+
items: ReactNode[];
|
|
17
|
+
className?: string;
|
|
18
|
+
dropdownClassName?: string;
|
|
19
|
+
dropdownStyle?: CSSProperties;
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
dropdownWidth?: number;
|
|
22
|
+
}
|
|
23
|
+
export default function Dropdown({ trigger, items, className, dropdownClassName, dropdownStyle, disabled, dropdownWidth, }: DropdownProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
//# sourceMappingURL=Dropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,SAAS,EAKT,aAAa,EACd,MAAM,OAAO,CAAC;AAEf,OAAO,sCAAsC,CAAC;AAE9C;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,OAAO,EACP,KAAK,EACL,SAAc,EACd,iBAAsB,EACtB,aAAa,EACb,QAAgB,EAChB,aAAmB,GACpB,EAAE,aAAa,2CAoHf"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface FieldInputTableProps {
|
|
2
|
+
/** Nilai teks yang sedang diedit */
|
|
3
|
+
value: string | number | any;
|
|
4
|
+
/** Callback saat user mengetik ( setiap perubahan ) */
|
|
5
|
+
onChange: (val: string) => void;
|
|
6
|
+
/** Callback saat user commit (klik ✓ atau tekan Enter) */
|
|
7
|
+
onCommit?: () => void;
|
|
8
|
+
/** Callback saat user batal (klik ✕ atau tekan Esc) */
|
|
9
|
+
onCancel: () => void;
|
|
10
|
+
/** Placeholder teks */
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
/** ClassName tambahan untuk wrapper (jika perlu) */
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* FieldInputTable — input inline untuk table‑cell editing.
|
|
17
|
+
*
|
|
18
|
+
* Tampilan:
|
|
19
|
+
* - Hanya garis bawah (underline) tanpa box.
|
|
20
|
+
* - Placeholder di atas garis bawah.
|
|
21
|
+
* - Tombol ✓ dan ✕ di sisi kanan.
|
|
22
|
+
*
|
|
23
|
+
* Cara pakai:
|
|
24
|
+
* <FieldInputTable
|
|
25
|
+
* value={bufferValue}
|
|
26
|
+
* onChange={setBufferValue}
|
|
27
|
+
* onCommit={doCommit}
|
|
28
|
+
* onCancel={doCancel}
|
|
29
|
+
* placeholder="Edit email..."
|
|
30
|
+
* />
|
|
31
|
+
*/
|
|
32
|
+
export default function FieldInputTable({ value, onChange, onCommit, onCancel, placeholder, className, }: FieldInputTableProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=FieldInputTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldInputTable.d.ts","sourceRoot":"","sources":["../../../src/components/FieldInputTable.tsx"],"names":[],"mappings":"AAIA,OAAO,+CAA+C,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;IAC7B,uDAAuD;IACvD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAgB,EAChB,SAAc,GACf,EAAE,oBAAoB,2CA0DtB"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { FileValidationResult } from '../utils/fileValidation';
|
|
2
|
+
/**
|
|
3
|
+
* FileUpload component dengan drag and drop, multiple file support,
|
|
4
|
+
* dan validasi mimeType untuk keamanan.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} [label] - Label untuk file upload.
|
|
7
|
+
* @param {string} [title] - Title di dalam dropzone (default: "Unggah File").
|
|
8
|
+
* @param {string} [description] - Description di dalam dropzone.
|
|
9
|
+
* @param {string} [type] - Tipe file yang diizinkan (MIME types, e.g., "image/*,application/pdf").
|
|
10
|
+
* @param {boolean} [multiple] - Apakah bisa upload multiple files (default: false).
|
|
11
|
+
* @param {number} [maxSize] - Ukuran maksimum file dalam bytes (0 = unlimited).
|
|
12
|
+
* @param {boolean} [disabled] - Apakah disabled.
|
|
13
|
+
* @param {string} [className] - ClassName tambahan.
|
|
14
|
+
* @param {(files: File[], errors: FileValidationResult[]) => void} [onChange] - Callback ketika file berubah.
|
|
15
|
+
* @param {(file: File, index: number) => void} [onRemove] - Callback ketika file dihapus.
|
|
16
|
+
*/
|
|
17
|
+
export type FileUploadStatus = 'idle' | 'uploading' | 'success' | 'error';
|
|
18
|
+
export interface UploadedFile {
|
|
19
|
+
file: File;
|
|
20
|
+
status: FileUploadStatus;
|
|
21
|
+
error?: string;
|
|
22
|
+
progress?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface FileUploadProps {
|
|
25
|
+
/**
|
|
26
|
+
* Label untuk file upload.
|
|
27
|
+
*/
|
|
28
|
+
label?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Title di dalam dropzone.
|
|
31
|
+
*/
|
|
32
|
+
title?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Description di dalam dropzone.
|
|
35
|
+
*/
|
|
36
|
+
description?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Tipe file yang diizinkan (MIME types, e.g., "image/*,application/pdf").
|
|
39
|
+
*/
|
|
40
|
+
type?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Apakah bisa upload multiple files.
|
|
43
|
+
*/
|
|
44
|
+
multiple?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Ukuran maksimum file dalam bytes (0 = unlimited).
|
|
47
|
+
*/
|
|
48
|
+
maxSize?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Ekstensi file yang diizinkan (e.g., ['png', 'jpg', 'pdf']).
|
|
51
|
+
* Jika disediakan, akan divalidasi selain MIME type.
|
|
52
|
+
*/
|
|
53
|
+
allowedExtensions?: string[];
|
|
54
|
+
/**
|
|
55
|
+
* Maksimal jumlah file yang bisa diupload (hanya untuk multiple=true).
|
|
56
|
+
*/
|
|
57
|
+
maxFiles?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Maksimal ukuran total semua file dalam MB (hanya untuk multiple=true).
|
|
60
|
+
*/
|
|
61
|
+
maxTotalSizeMB?: number;
|
|
62
|
+
/**
|
|
63
|
+
* Validasi magic number (file signature) sesuai rekomendasi OWASP.
|
|
64
|
+
* Default: true untuk security maksimal.
|
|
65
|
+
*/
|
|
66
|
+
validateMagicNumber?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Apakah disabled.
|
|
69
|
+
*/
|
|
70
|
+
disabled?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* ClassName tambahan.
|
|
73
|
+
*/
|
|
74
|
+
className?: string;
|
|
75
|
+
/**
|
|
76
|
+
* Callback ketika file berubah.
|
|
77
|
+
*/
|
|
78
|
+
onChange?: (files: File[], errors: FileValidationResult[]) => void;
|
|
79
|
+
/**
|
|
80
|
+
* Callback ketika file dihapus.
|
|
81
|
+
*/
|
|
82
|
+
onRemove?: (file: File, index: number) => void;
|
|
83
|
+
}
|
|
84
|
+
export default function FileUpload({ label, title, description, type, multiple, maxSize, allowedExtensions, maxFiles, maxTotalSizeMB, validateMagicNumber, // Default: true sesuai rekomendasi OWASP
|
|
85
|
+
disabled, className, onChange, onRemove, }: FileUploadProps): import("react/jsx-runtime").JSX.Element;
|
|
86
|
+
//# sourceMappingURL=FileUpload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileUpload.d.ts","sourceRoot":"","sources":["../../../src/components/FileUpload.tsx"],"names":[],"mappings":"AAWA,OAAO,yCAAyC,CAAC;AACjD,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IAEnE;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,KAAK,EACL,KAAqB,EACrB,WAA+D,EAC/D,IAAS,EACT,QAAgB,EAChB,OAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACd,mBAA0B,EAAE,yCAAyC;AACrE,QAAgB,EAChB,SAAc,EACd,QAAQ,EACR,QAAQ,GACT,EAAE,eAAe,2CA4bjB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface InputSearchProps {
|
|
2
|
+
className?: string;
|
|
3
|
+
label?: string;
|
|
4
|
+
value: any;
|
|
5
|
+
onBlur?: () => void;
|
|
6
|
+
onChange: (val: any) => any;
|
|
7
|
+
onFocus?: () => void;
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
required?: boolean;
|
|
10
|
+
debounce?: number;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export default function InputSearch({ className, label, value, onBlur, onChange, onFocus, placeholder, required, debounce, disabled, }: InputSearchProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=InputSearch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputSearch.d.ts","sourceRoot":"","sources":["../../../src/components/InputSearch.tsx"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AAOH,OAAO,0CAA0C,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,SAAc,EACd,KAAU,EACV,KAAU,EACV,MAAkB,EAClB,QAA4B,EAC5B,OAAmB,EACnB,WAAgB,EAChB,QAAgB,EAChB,QAAY,EACZ,QAAgB,GACjB,EAAE,gBAAgB,2CAmFlB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface LinearProgressIndicatorProps {
|
|
2
|
+
/**
|
|
3
|
+
* Progress percentage (0-100)
|
|
4
|
+
*/
|
|
5
|
+
value?: number;
|
|
6
|
+
/**
|
|
7
|
+
* Whether the progress indicator is visible
|
|
8
|
+
*/
|
|
9
|
+
visible?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Custom className
|
|
12
|
+
*/
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
export default function LinearProgressIndicator({ value, visible, className, }: LinearProgressIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
16
|
+
//# sourceMappingURL=LinearProgressIndicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearProgressIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/LinearProgressIndicator.tsx"],"names":[],"mappings":"AACA,OAAO,uDAAuD,CAAC;AAE/D,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAC9C,KAAS,EACT,OAAc,EACd,SAAc,GACf,EAAE,4BAA4B,kDAoB9B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactNode, HTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* ListProps — Props untuk List:
|
|
4
|
+
* @param {ReactNode} children — ListSubheader dan/atau ListItem.
|
|
5
|
+
* @param {boolean} [disablePadding=false] — jika true, hapus padding vertikal.
|
|
6
|
+
* @param {boolean} [dense=false] — jika true, gunakan padding compact.
|
|
7
|
+
* @param {ReactNode} [subheader] — konten subheader di atas daftar.
|
|
8
|
+
* @param {string} [className] — className tambahan pada <ul>.
|
|
9
|
+
*/
|
|
10
|
+
export interface ListProps extends HTMLAttributes<HTMLUListElement> {
|
|
11
|
+
disablePadding?: boolean;
|
|
12
|
+
dense?: boolean;
|
|
13
|
+
subheader?: ReactNode;
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
export default function List({ children, disablePadding, dense, subheader, className, ...rest }: ListProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=List.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../src/components/List/List.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,gBAAgB,CAAC;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,QAAQ,EACR,cAAsB,EACtB,KAAa,EACb,SAAS,EACT,SAAc,EACd,GAAG,IAAI,EACR,EAAE,SAAS,2CAeX"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ReactNode, HTMLAttributes } from 'react';
|
|
2
|
+
export type ListItemAlignItems = 'flex-start' | 'center';
|
|
3
|
+
/**
|
|
4
|
+
* ListItemProps — Props untuk ListItem:
|
|
5
|
+
* @param {ReactNode} children — konten ListItem (biasanya ListItemButton).
|
|
6
|
+
* @param {boolean} [dense=false] — jika true, padding compact.
|
|
7
|
+
* @param {ListItemAlignItems} [alignItems='center'] — alignment vertikal.
|
|
8
|
+
* @param {boolean} [button=false] — jika true, hoverable + cursor-pointer.
|
|
9
|
+
* @param {string} [className] — className tambahan.
|
|
10
|
+
*/
|
|
11
|
+
export interface ListItemProps extends HTMLAttributes<HTMLLIElement> {
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
dense?: boolean;
|
|
14
|
+
alignItems?: ListItemAlignItems;
|
|
15
|
+
button?: boolean;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
export default function ListItem({ children, dense, alignItems, button, className, ...rest }: ListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=ListItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../../../src/components/List/ListItem.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,aAAa,CAAC;IAClE,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,QAAQ,EACR,KAAa,EACb,UAAqB,EACrB,MAAc,EACd,SAAc,EACd,GAAG,IAAI,EACR,EAAE,aAAa,2CAcf"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactNode, HTMLAttributes } from 'react';
|
|
2
|
+
export type ListItemAvatarAlign = 'flex-start' | 'center';
|
|
3
|
+
/**
|
|
4
|
+
* ListItemAvatarProps — Props untuk ListItemAvatar:
|
|
5
|
+
* @param {ReactNode} children — avatar element (img/Avatar).
|
|
6
|
+
* @param {ListItemAvatarAlign} [align='center'] — vertical alignment.
|
|
7
|
+
* @param {string} [className] — className tambahan.
|
|
8
|
+
*/
|
|
9
|
+
export interface ListItemAvatarProps extends HTMLAttributes<HTMLDivElement> {
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
align?: ListItemAvatarAlign;
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
export default function ListItemAvatar({ children, align, className, ...rest }: ListItemAvatarProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=ListItemAvatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListItemAvatar.d.ts","sourceRoot":"","sources":["../../../../src/components/List/ListItemAvatar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,QAAQ,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACzE,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,QAAQ,EACR,KAAgB,EAChB,SAAc,EACd,GAAG,IAAI,EACR,EAAE,mBAAmB,2CAOrB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode, HTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* ListItemButtonProps — Props untuk ListItemButton:
|
|
4
|
+
* @param {ReactNode} children — konten button (icon, text, dll).
|
|
5
|
+
* @param {string} [className] — className tambahan.
|
|
6
|
+
*/
|
|
7
|
+
export interface ListItemButtonProps extends HTMLAttributes<HTMLDivElement> {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export default function ListItemButton({ children, className, ...rest }: ListItemButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=ListItemButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListItemButton.d.ts","sourceRoot":"","sources":["../../../../src/components/List/ListItemButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACzE,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,QAAQ,EACR,SAAc,EACd,GAAG,IAAI,EACR,EAAE,mBAAmB,2CAWrB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode, HTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* ListItemIconProps — Props untuk ListItemIcon:
|
|
4
|
+
* @param {ReactNode} children — icon element.
|
|
5
|
+
* @param {string} [className] — className tambahan.
|
|
6
|
+
*/
|
|
7
|
+
export interface ListItemIconProps extends HTMLAttributes<HTMLDivElement> {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export default function ListItemIcon({ children, className, ...rest }: ListItemIconProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=ListItemIcon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListItemIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/List/ListItemIcon.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,QAAQ,EACR,SAAc,EACd,GAAG,IAAI,EACR,EAAE,iBAAiB,2CAMnB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactNode, HTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* ListItemTextProps — Props untuk ListItemText:
|
|
4
|
+
* @param {ReactNode} primary — teks utama.
|
|
5
|
+
* @param {ReactNode} [secondary] — teks sekunder.
|
|
6
|
+
* @param {string} [className] — className tambahan.
|
|
7
|
+
*/
|
|
8
|
+
export interface ListItemTextProps extends HTMLAttributes<HTMLDivElement> {
|
|
9
|
+
primary: ReactNode;
|
|
10
|
+
secondary?: ReactNode;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
export default function ListItemText({ primary, secondary, className, ...rest }: ListItemTextProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=ListItemText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListItemText.d.ts","sourceRoot":"","sources":["../../../../src/components/List/ListItemText.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,OAAO,EACP,SAAS,EACT,SAAc,EACd,GAAG,IAAI,EACR,EAAE,iBAAiB,2CASnB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ReactNode, HTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* ListSubheaderProps — Props untuk ListSubheader:
|
|
4
|
+
* @param {boolean} [inset=false] — jika true, tambahkan indentasi.
|
|
5
|
+
* @param {boolean} [disableSticky=false] — jika true, non‐aktifkan sticky.
|
|
6
|
+
* @param {string} [className] — className tambahan.
|
|
7
|
+
* @param {ReactNode} children — konten subheader.
|
|
8
|
+
*/
|
|
9
|
+
export interface ListSubheaderProps extends HTMLAttributes<HTMLLIElement> {
|
|
10
|
+
inset?: boolean;
|
|
11
|
+
disableSticky?: boolean;
|
|
12
|
+
className?: string;
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
export default function ListSubheader({ inset, disableSticky, className, children, ...rest }: ListSubheaderProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=ListSubheader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListSubheader.d.ts","sourceRoot":"","sources":["../../../../src/components/List/ListSubheader.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,aAAa,CAAC;IACvE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAa,EACb,aAAqB,EACrB,SAAc,EACd,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,kBAAkB,2CAcpB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface ModalProps {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
title?: ReactNode;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
closeOnBackdrop?: boolean;
|
|
8
|
+
/** Override target portal bila perlu (default: document.body) */
|
|
9
|
+
container?: Element | null;
|
|
10
|
+
dialogClassname?: string;
|
|
11
|
+
}
|
|
12
|
+
export default function Modal({ open, onClose, title, children, closeOnBackdrop, container, dialogClassname, }: ModalProps): import('react').ReactPortal | null;
|
|
13
|
+
//# sourceMappingURL=Modal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/Modal.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AAG/D,OAAO,mCAAmC,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,IAAI,EACJ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,eAAsB,EACtB,SAAS,EACT,eAAe,GAChB,EAAE,UAAU,sCAuHZ"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export type MonthPickerSize = 'sm' | 'md' | 'lg';
|
|
2
|
+
export interface MonthPickerProps {
|
|
3
|
+
/** Current selected month (0-11) */
|
|
4
|
+
value?: number;
|
|
5
|
+
/** Default month (0-11) */
|
|
6
|
+
defaultValue?: number;
|
|
7
|
+
/** Callback when month changes */
|
|
8
|
+
onChange?: (month: number) => void;
|
|
9
|
+
/** Custom class name */
|
|
10
|
+
className?: string;
|
|
11
|
+
/** Whether the picker is disabled */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
/** Whether the picker is readonly */
|
|
14
|
+
readonly?: boolean;
|
|
15
|
+
/** Whether to show the picker */
|
|
16
|
+
open?: boolean;
|
|
17
|
+
/** Callback when picker opens/closes */
|
|
18
|
+
onOpenChange?: (open: boolean) => void;
|
|
19
|
+
/** Language for month names */
|
|
20
|
+
locale?: 'id' | 'en';
|
|
21
|
+
/** Disable months before current month */
|
|
22
|
+
disabledBackMonth?: boolean;
|
|
23
|
+
/** Disable months after current month */
|
|
24
|
+
disabledFutureMonth?: boolean;
|
|
25
|
+
/** Disable months before this specific month (0-11) */
|
|
26
|
+
disabledMonthBefore?: number;
|
|
27
|
+
/** Disable months after this specific month (0-11) */
|
|
28
|
+
disabledMonthAfter?: number;
|
|
29
|
+
/** Whether to show the calendar icon on the left */
|
|
30
|
+
showIcon?: boolean;
|
|
31
|
+
/** Whether to show the clear button */
|
|
32
|
+
showClearButton?: boolean;
|
|
33
|
+
/** Callback when clear button is clicked */
|
|
34
|
+
onClear?: () => void;
|
|
35
|
+
/** Size variant */
|
|
36
|
+
size?: MonthPickerSize;
|
|
37
|
+
}
|
|
38
|
+
export default function MonthPicker({ value, defaultValue, onChange, className, disabled, readonly, open, onOpenChange, locale, disabledBackMonth, disabledFutureMonth, disabledMonthBefore, disabledMonthAfter, showIcon, showClearButton, onClear, size, }: MonthPickerProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
//# sourceMappingURL=MonthPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthPicker.d.ts","sourceRoot":"","sources":["../../../src/components/MonthPicker.tsx"],"names":[],"mappings":"AAGA,OAAO,0CAA0C,CAAC;AAElD,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,+BAA+B;IAC/B,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yCAAyC;IACzC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mBAAmB;IACnB,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,SAAc,EACd,QAAgB,EAChB,QAAgB,EAChB,IAAY,EACZ,YAAY,EACZ,MAAa,EACb,iBAAyB,EACzB,mBAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,EAClB,QAAgB,EAChB,eAAuB,EACvB,OAAO,EACP,IAAW,GACZ,EAAE,gBAAgB,2CAsYlB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface GridColumn {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
order: number;
|
|
5
|
+
}
|
|
6
|
+
export interface GridRow {
|
|
7
|
+
id: string;
|
|
8
|
+
label: string;
|
|
9
|
+
order: number;
|
|
10
|
+
}
|
|
11
|
+
export interface GridSelection {
|
|
12
|
+
rowId: string;
|
|
13
|
+
columnId: string;
|
|
14
|
+
}
|
|
15
|
+
export interface MultipleChoiceGridProps {
|
|
16
|
+
/** Array of column definitions */
|
|
17
|
+
columns: GridColumn[];
|
|
18
|
+
/** Array of row definitions */
|
|
19
|
+
rows: GridRow[];
|
|
20
|
+
/** Current selections - array of {rowId, columnId} */
|
|
21
|
+
selected?: GridSelection[];
|
|
22
|
+
/** Callback when selection changes */
|
|
23
|
+
onChange?: (selections: GridSelection[]) => void;
|
|
24
|
+
/** Additional CSS class */
|
|
25
|
+
className?: string;
|
|
26
|
+
/** Whether the grid is disabled */
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
/** Grid name for radio button grouping */
|
|
29
|
+
name?: string;
|
|
30
|
+
}
|
|
31
|
+
export default function MultipleChoiceGrid({ columns, rows, selected, onChange, className, disabled, name, }: MultipleChoiceGridProps): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=MultipleChoiceGrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultipleChoiceGrid.d.ts","sourceRoot":"","sources":["../../../src/components/MultipleChoiceGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,kDAAkD,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,+BAA+B;IAC/B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACjD,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,OAAO,EACP,IAAI,EACJ,QAAa,EACb,QAAQ,EACR,SAAc,EACd,QAAgB,EAChB,IAA6B,GAC9B,EAAE,uBAAuB,2CAyFzB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pagination component dengan:
|
|
3
|
+
* - Tombol « (go to first), ‹ (prev), nomor halaman, › (next), » (last)
|
|
4
|
+
* - Dropdown “Baris per halaman”
|
|
5
|
+
* - Teks “Halaman X dari Y”
|
|
6
|
+
*
|
|
7
|
+
* @param {number} currentPage - Halaman saat ini (1‐indexed).
|
|
8
|
+
* @param {number} totalPages - Total jumlah halaman.
|
|
9
|
+
* @param {number} pageSize - Jumlah baris per halaman saat ini.
|
|
10
|
+
* @param {number[]} pageSizeOptions - Daftar opsi pageSize (misal [10,20,50]).
|
|
11
|
+
* @param {(page: number) => void} onPageChange - Callback ketika user memilih halaman baru.
|
|
12
|
+
* @param {(newPageSize: number) => void} onPageSizeChange - Callback ketika pageSize diganti.
|
|
13
|
+
* @param {boolean} [disabled] - Jika true, semua kontrol disabled.
|
|
14
|
+
*/
|
|
15
|
+
export interface PaginationProps {
|
|
16
|
+
/**
|
|
17
|
+
* Halaman saat ini (1‐indexed).
|
|
18
|
+
*/
|
|
19
|
+
currentPage: number;
|
|
20
|
+
/**
|
|
21
|
+
* Total halaman (dihitung dari total data / pageSize).
|
|
22
|
+
*/
|
|
23
|
+
totalPages: number;
|
|
24
|
+
/**
|
|
25
|
+
* Jumlah baris per halaman saat ini.
|
|
26
|
+
*/
|
|
27
|
+
pageSize: number;
|
|
28
|
+
/**
|
|
29
|
+
* Opsi‐opsi jumlah baris per halaman (misal: [10, 20, 50, 100]).
|
|
30
|
+
*/
|
|
31
|
+
pageSizeOptions: number[];
|
|
32
|
+
/**
|
|
33
|
+
* Callback ketika user mengganti halaman (klik nomor, Prev, Next, dll).
|
|
34
|
+
*
|
|
35
|
+
* @param {number} page → nomor halaman baru (1‐indexed).
|
|
36
|
+
*/
|
|
37
|
+
onPageChange: (page: number) => void;
|
|
38
|
+
/**
|
|
39
|
+
* Callback ketika user mengganti pageSize (dropdown “Baris per halaman”).
|
|
40
|
+
*
|
|
41
|
+
* @param {number} newPageSize → jumlah baris per halaman baru.
|
|
42
|
+
*/
|
|
43
|
+
onPageSizeChange: (newPageSize: number) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Jika true, pagination akan men‐disable semua kontrol navigasi.
|
|
46
|
+
* Misalnya: saat sedang loading data atau tidak ada data sama sekali.
|
|
47
|
+
*/
|
|
48
|
+
disabled?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Jika true, layout akan menjadi full width dengan justify-between.
|
|
51
|
+
* Cocok untuk digunakan di dalam Table component.
|
|
52
|
+
* - Desktop: dropdown di kiri, nav di kanan (justify-between)
|
|
53
|
+
* - Mobile: dropdown di atas, nav di bawah (flex-col)
|
|
54
|
+
*/
|
|
55
|
+
fullWidth?: boolean;
|
|
56
|
+
}
|
|
57
|
+
export default function Pagination({ currentPage, totalPages, pageSize, pageSizeOptions, onPageChange, onPageSizeChange, disabled, fullWidth, }: PaginationProps): import("react/jsx-runtime").JSX.Element | null;
|
|
58
|
+
//# sourceMappingURL=Pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination.tsx"],"names":[],"mappings":"AASA,OAAO,wCAAwC,CAAC;AAEhD;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAE1B;;;;OAIG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,WAAW,EACX,UAAU,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,QAAgB,EAChB,SAAiB,GAClB,EAAE,eAAe,kDA0KjB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* PasswordInput — sama seperti TextField, tetapi dengan tombol toggle visibility:
|
|
4
|
+
* - type="password" secara default, bisa toggle ke "text".
|
|
5
|
+
* - menggunakan IconEye / IconEyeOff dari Tabler Icons.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} value Nilai controlled input.
|
|
8
|
+
* @param {(val: string) => void} onChange Callback tiap perubahan.
|
|
9
|
+
* @param {number} [debounce] Debounce ms untuk onChangeDebounced.
|
|
10
|
+
* @param {(val: string) => void} [onChangeDebounced] Callback setelah debounce.
|
|
11
|
+
* @param {ReactNode} [prefixIcon] Icon di depan field.
|
|
12
|
+
* @param {ReactNode} [label] Label di atas field.
|
|
13
|
+
* @param {ReactNode} [helperText] Teks bantuan (opsional).
|
|
14
|
+
* @param {'neutral'|'error'|'warning'|'success'} [status] Status visual.
|
|
15
|
+
* @param {ReactNode} [statusMessage] Pesan sesuai status.
|
|
16
|
+
* @param {number} [maxLength] Maks karakter.
|
|
17
|
+
* @param {boolean} [showCharCount] Tampilkan penghitung karakter.
|
|
18
|
+
* @param {string} [placeholder] Placeholder input.
|
|
19
|
+
* @param {boolean} [disabled] Disable state.
|
|
20
|
+
* @param {string} [className] ClassName tambahan pada wrapper.
|
|
21
|
+
*/
|
|
22
|
+
export type PasswordInputStatus = 'neutral' | 'error' | 'warning' | 'success';
|
|
23
|
+
export type PasswordInputSize = 'sm' | 'md' | 'lg';
|
|
24
|
+
export interface PasswordInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange' | 'size'> {
|
|
25
|
+
/**
|
|
26
|
+
* Nilai controlled untuk password.
|
|
27
|
+
*/
|
|
28
|
+
value: string;
|
|
29
|
+
/**
|
|
30
|
+
* Callback dipanggil setiap kali nilai berubah.
|
|
31
|
+
*/
|
|
32
|
+
onChange: (val: string) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Durasi debounce dalam ms untuk onChangeDebounced. Default: 0 (no debounce).
|
|
35
|
+
*/
|
|
36
|
+
debounce?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Callback dipanggil setelah delay `debounce` ms dari terakhir ketikan.
|
|
39
|
+
*/
|
|
40
|
+
onChangeDebounced?: (val: string) => void;
|
|
41
|
+
/**
|
|
42
|
+
* Icon di depan field (opsional).
|
|
43
|
+
*/
|
|
44
|
+
prefixIcon?: ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* Label di atas input (opsional).
|
|
47
|
+
*/
|
|
48
|
+
label?: ReactNode;
|
|
49
|
+
/**
|
|
50
|
+
* Teks bantuan di bawah field (opsional).
|
|
51
|
+
*/
|
|
52
|
+
helperText?: ReactNode;
|
|
53
|
+
/**
|
|
54
|
+
* Status visual: neutral (default), error, warning, success.
|
|
55
|
+
*/
|
|
56
|
+
status?: PasswordInputStatus;
|
|
57
|
+
/**
|
|
58
|
+
* Pesan yang muncul sesuai status (meng-override helperText bila status≠neutral).
|
|
59
|
+
*/
|
|
60
|
+
statusMessage?: ReactNode;
|
|
61
|
+
/**
|
|
62
|
+
* Size variant: sm, md (default), lg.
|
|
63
|
+
*/
|
|
64
|
+
size?: PasswordInputSize;
|
|
65
|
+
/**
|
|
66
|
+
* Maksimum panjang karakter.
|
|
67
|
+
*/
|
|
68
|
+
maxLength?: number;
|
|
69
|
+
/**
|
|
70
|
+
* Jika true, tampilkan penghitung karakter: current/maxLength.
|
|
71
|
+
*/
|
|
72
|
+
showCharCount?: boolean;
|
|
73
|
+
}
|
|
74
|
+
export default function PasswordInput({ value, onChange, debounce, onChangeDebounced, prefixIcon, label, helperText, status, statusMessage, size, maxLength, showCharCount, placeholder, disabled, className, onBlur, ...rest }: PasswordInputProps): import("react/jsx-runtime").JSX.Element;
|
|
75
|
+
//# sourceMappingURL=PasswordInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordInput.d.ts","sourceRoot":"","sources":["../../../src/components/PasswordInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAIZ,SAAS,EAGV,MAAM,OAAO,CAAC;AAIf,OAAO,4CAA4C,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAC9E,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnD,MAAM,WAAW,kBACf,SAAQ,IAAI,CACV,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,MAAM,GAAG,UAAU,GAAG,MAAM,CAC7B;IACD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B;;OAEG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,QAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,KAAK,EACL,UAAU,EACV,MAAkB,EAClB,aAAa,EACb,IAAW,EACX,SAAS,EACT,aAAqB,EACrB,WAAW,EACX,QAAgB,EAChB,SAAc,EACd,MAAM,EACN,GAAG,IAAI,EACR,EAAE,kBAAkB,2CAgIpB"}
|