@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,21 @@
|
|
|
1
|
+
import { ReactNode, CSSProperties } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* ActionDropdown component yang menampilkan dropdown menu dengan positioning otomatis.
|
|
4
|
+
*
|
|
5
|
+
* @param {ReactNode} [trigger] - Custom trigger element untuk membuka dropdown. Default: IconDotsVertical.
|
|
6
|
+
* @param {ReactNode[]} items - Array of ReactNode yang akan ditampilkan sebagai item dropdown. User bebas mendefine item apapun (button, div, span, dll).
|
|
7
|
+
* @param {string} [className] - ClassName tambahan untuk override styling container trigger (opsional).
|
|
8
|
+
* @param {number} [iconSize] - Ukuran icon IconDotsVertical jika menggunakan trigger default. Default: 24.
|
|
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
|
+
*/
|
|
12
|
+
export interface ActionDropdownProps {
|
|
13
|
+
trigger?: ReactNode;
|
|
14
|
+
items: ReactNode[];
|
|
15
|
+
className?: string;
|
|
16
|
+
iconSize?: number;
|
|
17
|
+
dropdownClassName?: string;
|
|
18
|
+
dropdownStyle?: CSSProperties;
|
|
19
|
+
}
|
|
20
|
+
export default function ActionDropdown({ trigger, items, className, iconSize, dropdownClassName, dropdownStyle, }: ActionDropdownProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=ActionDropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/ActionDropdown.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,SAAS,EAKT,aAAa,EACd,MAAM,OAAO,CAAC;AAGf,OAAO,6CAA6C,CAAC;AAErD;;;;;;;;;GASG;AAEH,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AACD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,OAAO,EACP,KAAK,EACL,SAAc,EACd,QAAa,EACb,iBAAsB,EACtB,aAAa,GACd,EAAE,mBAAmB,2CA2HrB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Alert component untuk menampilkan pesan informasi, peringatan, atau error.
|
|
4
|
+
*
|
|
5
|
+
* @param {AlertVariant} [variant] - Variant warna alert. Default: "info".
|
|
6
|
+
* @param {string} [title] - Judul alert (singkat, biasanya satu baris).
|
|
7
|
+
* @param {ReactNode} [message] - Deskripsi/penjelasan di bawah judul (opsional, idealnya max dua baris).
|
|
8
|
+
* @param {ReactNode} [icon] - Icon custom untuk menggantikan icon default variant.
|
|
9
|
+
* @param {boolean} [dismissible] - Apakah alert bisa di-dismiss (menampilkan tombol close).
|
|
10
|
+
* @param {string} [dismissLabel] - Label untuk tombol dismiss (accessibility).
|
|
11
|
+
* @param {() => void} [onDismiss] - Callback ketika alert di-dismiss.
|
|
12
|
+
* @param {string} [className] - ClassName tambahan untuk override styling container.
|
|
13
|
+
*/
|
|
14
|
+
export type AlertVariant = 'neutral' | 'info' | 'success' | 'caution' | 'critical';
|
|
15
|
+
export interface AlertProps {
|
|
16
|
+
/**
|
|
17
|
+
* Variant warna alert.
|
|
18
|
+
* - 'neutral' → Putih dengan border stroke-primary
|
|
19
|
+
* - 'info' → Biru (Guide)
|
|
20
|
+
* - 'success' → Hijau (Positive)
|
|
21
|
+
* - 'caution' → Oranye (Warning)
|
|
22
|
+
* - 'critical' → Merah (Negative)
|
|
23
|
+
*/
|
|
24
|
+
variant?: AlertVariant;
|
|
25
|
+
/**
|
|
26
|
+
* Judul alert (singkat, biasanya satu baris).
|
|
27
|
+
*/
|
|
28
|
+
title?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Deskripsi/penjelasan di bawah judul (opsional, idealnya max dua baris).
|
|
31
|
+
*/
|
|
32
|
+
message?: ReactNode;
|
|
33
|
+
/**
|
|
34
|
+
* Icon custom untuk menggantikan icon default variant.
|
|
35
|
+
*/
|
|
36
|
+
icon?: ReactNode;
|
|
37
|
+
/**
|
|
38
|
+
* Apakah alert bisa di-dismiss (menampilkan tombol close).
|
|
39
|
+
*/
|
|
40
|
+
dismissible?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Label untuk tombol dismiss (accessibility).
|
|
43
|
+
*/
|
|
44
|
+
dismissLabel?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Callback ketika alert di-dismiss.
|
|
47
|
+
*/
|
|
48
|
+
onDismiss?: () => void;
|
|
49
|
+
/**
|
|
50
|
+
* ClassName tambahan untuk override styling container.
|
|
51
|
+
*/
|
|
52
|
+
className?: string;
|
|
53
|
+
}
|
|
54
|
+
export default function Alert(props: AlertProps): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
//# sourceMappingURL=Alert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../src/components/Alert.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUlC,OAAO,mCAAmC,CAAC;AAE3C;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEnF,MAAM,WAAW,UAAU;IACzB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAK,EAAE,UAAU,2CA6D9C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type AvatarSize = 16 | 24 | 32 | 40 | 48;
|
|
2
|
+
export type AvatarShape = 'circle' | 'square';
|
|
3
|
+
export interface AvatarProps {
|
|
4
|
+
/**
|
|
5
|
+
* URL gambar avatar (bisa data URI / base64).
|
|
6
|
+
* Jika tidak disediakan, akan fallback ke `initials`.
|
|
7
|
+
*/
|
|
8
|
+
src?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Alt text untuk gambar.
|
|
11
|
+
*/
|
|
12
|
+
alt?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Inisial (maksimum 2 karakter) yang ditampilkan saat `src` tidak ada.
|
|
15
|
+
*/
|
|
16
|
+
initials?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Ukuran lebar & tinggi avatar dalam piksel.
|
|
19
|
+
* Pilihan: 16, 24, 32, 40, 48. Default: 32.
|
|
20
|
+
*/
|
|
21
|
+
size?: AvatarSize;
|
|
22
|
+
/**
|
|
23
|
+
* Bentuk avatar: 'circle' (lingkaran) atau 'square' (persegi dengan border-radius 8px).
|
|
24
|
+
* Default: 'circle'.
|
|
25
|
+
*/
|
|
26
|
+
shape?: AvatarShape;
|
|
27
|
+
/**
|
|
28
|
+
* ClassName Tailwind tambahan untuk kontainer.
|
|
29
|
+
*/
|
|
30
|
+
className?: string;
|
|
31
|
+
}
|
|
32
|
+
export default function Avatar({ src, alt, initials, size, shape, className, }: AvatarProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=Avatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar.tsx"],"names":[],"mappings":"AAWA,OAAO,oCAAoC,CAAC;AAE5C,MAAM,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,GAAG,EACH,GAAc,EACd,QAAa,EACb,IAAS,EACT,KAAgB,EAChB,SAAc,GACf,EAAE,WAAW,2CAkBb"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Badge component untuk menampilkan label atau tag dengan berbagai variant warna dan style.
|
|
4
|
+
*
|
|
5
|
+
* @param {'soft' | 'fill'} [type] - Tipe style badge: soft (background 100, text 500) atau fill (background 500, text 100).
|
|
6
|
+
* @param {'brand' | 'info' | 'warning' | 'success' | 'error' | 'neutral'} [variant] - Variant warna badge.
|
|
7
|
+
* @param {'sm' | 'md' | 'lg' | 'xl'} [size] - Ukuran badge.
|
|
8
|
+
* @param {'sm' | 'md' | 'lg' | 'full'} [rounded] - Border radius badge.
|
|
9
|
+
* @param {ReactNode} [prefixIcon] - Icon di depan teks.
|
|
10
|
+
* @param {ReactNode} [suffixIcon] - Icon di belakang teks.
|
|
11
|
+
* @param {ReactNode} children - Isi teks/nodes di dalam badge.
|
|
12
|
+
* @param {string} [className] - ClassName tambahan.
|
|
13
|
+
*/
|
|
14
|
+
export type BadgeType = 'soft' | 'fill';
|
|
15
|
+
export type BadgeVariant = 'brand' | 'info' | 'warning' | 'success' | 'error' | 'neutral';
|
|
16
|
+
export type BadgeSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
17
|
+
export type BadgeRounded = 'sm' | 'md' | 'lg' | 'full';
|
|
18
|
+
export interface BadgeProps {
|
|
19
|
+
/**
|
|
20
|
+
* Tipe style badge:
|
|
21
|
+
* - "soft": background level 100, text level 500
|
|
22
|
+
* - "fill": background level 500, text level 100
|
|
23
|
+
*/
|
|
24
|
+
type?: BadgeType;
|
|
25
|
+
/**
|
|
26
|
+
* Variant warna:
|
|
27
|
+
* - "brand" (primary, dipengaruhi brand yang dipilih)
|
|
28
|
+
* - "info" (biru/Guide)
|
|
29
|
+
* - "warning" (oranye/Warning)
|
|
30
|
+
* - "success" (hijau/Positive)
|
|
31
|
+
* - "error" (merah/Negative)
|
|
32
|
+
* - "neutral" (abu-abu/Neutral)
|
|
33
|
+
*/
|
|
34
|
+
variant?: BadgeVariant;
|
|
35
|
+
/**
|
|
36
|
+
* Ukuran badge:
|
|
37
|
+
* - "sm": font-size 10px
|
|
38
|
+
* - "md": font-size 12px, padding horizontal 8px
|
|
39
|
+
* - "lg": font-size 14px, padding horizontal 12px
|
|
40
|
+
* - "xl": font-size 16px
|
|
41
|
+
*/
|
|
42
|
+
size?: BadgeSize;
|
|
43
|
+
/**
|
|
44
|
+
* Border radius:
|
|
45
|
+
* - "sm"
|
|
46
|
+
* - "md"
|
|
47
|
+
* - "lg"
|
|
48
|
+
* - "full" (pill, default)
|
|
49
|
+
*/
|
|
50
|
+
rounded?: BadgeRounded;
|
|
51
|
+
/** Optional icon di depan teks */
|
|
52
|
+
prefixIcon?: ReactNode | undefined;
|
|
53
|
+
/** Optional icon di belakang teks */
|
|
54
|
+
suffixIcon?: ReactNode | undefined;
|
|
55
|
+
/** Isi teks/nodes di dalam badge */
|
|
56
|
+
children: ReactNode;
|
|
57
|
+
/** ClassName tambahan bila diperlukan */
|
|
58
|
+
className?: string;
|
|
59
|
+
}
|
|
60
|
+
export default function Badge({ type, variant, size, rounded, prefixIcon, suffixIcon, children, className, }: BadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
//# sourceMappingURL=Badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/components/Badge.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,mCAAmC,CAAC;AAE3C;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AACxC,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAC1F,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,kCAAkC;IAClC,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACnC,qCAAqC;IACrC,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAEnC,oCAAoC;IACpC,QAAQ,EAAE,SAAS,CAAC;IAEpB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,IAAa,EACb,OAAgB,EAChB,IAAW,EACX,OAAgB,EAChB,UAAsB,EACtB,UAAsB,EACtB,QAAQ,EACR,SAAc,GACf,EAAE,UAAU,2CAqBZ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ChangeEvent, ReactNode } from 'react';
|
|
2
|
+
export interface BottomSheetProps {
|
|
3
|
+
open: boolean;
|
|
4
|
+
locked: boolean;
|
|
5
|
+
onClose: (e: ChangeEvent<EventTarget>) => void;
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export default function BottomSheet({ open, locked, onClose, children, }: BottomSheetProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=BottomSheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/components/BottomSheet.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,SAAS,EAKV,MAAM,OAAO,CAAC;AACf,OAAO,0CAA0C,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,QAAgB,GACjB,EAAE,gBAAgB,2CA2DlB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface BreadcrumbItem {
|
|
3
|
+
/** Label text untuk breadcrumb item */
|
|
4
|
+
label: string;
|
|
5
|
+
/** URL atau path untuk link (opsional, jika tidak ada maka item tidak bisa diklik) */
|
|
6
|
+
href?: string;
|
|
7
|
+
/** Icon component untuk item (opsional) */
|
|
8
|
+
icon?: ReactNode;
|
|
9
|
+
/** Apakah item disabled */
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
/** Callback saat item diklik */
|
|
12
|
+
onClick?: () => void;
|
|
13
|
+
}
|
|
14
|
+
export interface BreadcrumbProps {
|
|
15
|
+
/** Array of breadcrumb items */
|
|
16
|
+
items: BreadcrumbItem[];
|
|
17
|
+
/** Separator antara items (default: '>') */
|
|
18
|
+
separator?: string | ReactNode;
|
|
19
|
+
/** Maksimal panjang text untuk item terakhir sebelum di-truncate */
|
|
20
|
+
maxLength?: number;
|
|
21
|
+
/** ClassName tambahan untuk container */
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
24
|
+
export default function Breadcrumb({ items, separator, maxLength, className, }: BreadcrumbProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
//# sourceMappingURL=Breadcrumb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Breadcrumb.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,wCAAwC,CAAC;AAGhD,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,KAAK,EACL,SAA0C,EAC1C,SAAS,EACT,SAAc,GACf,EAAE,eAAe,2CAoEjB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { ReactNode, ButtonHTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Button component dengan berbagai hierarchy (primary, secondary, tertiary, link),
|
|
4
|
+
* size (2xl, xl, lg, md, sm), dan mendukung prefixIcon / suffixIcon.
|
|
5
|
+
*
|
|
6
|
+
* Mendukung state:
|
|
7
|
+
* - default: styling dasar sesuai hierarchy
|
|
8
|
+
* - hover: menyesuaikan warna latar/border/teks
|
|
9
|
+
* - focus: menyesuaikan latar sedikit lebih gelap
|
|
10
|
+
* - disabled: opacity rendah + pointer-events none
|
|
11
|
+
*
|
|
12
|
+
* @param {"primary" | "secondary" | "tertiary" | "link" | "custom"} [hierarchy] - Hierarchy styling button. Default: "primary".
|
|
13
|
+
* @param {"2xl" | "xl" | "lg" | "md" | "sm"} [size] - Ukuran button mempengaruhi max-height, padding & font-size. Default: "md".
|
|
14
|
+
* @param {ReactNode} [prefixIcon] - Ikon di sebelah kiri teks.
|
|
15
|
+
* @param {ReactNode} [suffixIcon] - Ikon di sebelah kanan teks.
|
|
16
|
+
* @param {ReactNode} children - Konten button (teks atau elemen custom).
|
|
17
|
+
* @param {boolean} [disabled] - Jika true, button dalam keadaan disabled.
|
|
18
|
+
* @param {string} [className] - ClassName tambahan untuk override styling.
|
|
19
|
+
*/
|
|
20
|
+
export type ButtonHierarchy = 'primary' | 'secondary' | 'tertiary' | 'link' | 'custom';
|
|
21
|
+
export type ButtonSize = '2xl' | 'xl' | 'lg' | 'md' | 'sm';
|
|
22
|
+
export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
23
|
+
/**
|
|
24
|
+
* Hierarchy button:
|
|
25
|
+
* - "primary": background-color: primary-300, color: text-white
|
|
26
|
+
* - "secondary": background-color: white, color: text-content-primary, border: stroke-primary
|
|
27
|
+
* - "tertiary": background-color: white, color: text-content-primary, border: none, hover: background-tertiary
|
|
28
|
+
* - "link": background-color: white, color: text-content-guide, border: none, hover: text-guide-400
|
|
29
|
+
* - "custom": untuk custom styling
|
|
30
|
+
*
|
|
31
|
+
* @default "primary"
|
|
32
|
+
*/
|
|
33
|
+
hierarchy?: ButtonHierarchy;
|
|
34
|
+
/**
|
|
35
|
+
* Ukuran button:
|
|
36
|
+
* - "2xl": max-height: 56px, font-size: 16px, padding: 16px
|
|
37
|
+
* - "xl": max-height: 48px, font-size: 16px, padding: 12px 16px
|
|
38
|
+
* - "lg": max-height: 44px, font-size: 14px, padding: 12px
|
|
39
|
+
* - "md": max-height: 40px, font-size: 14px, padding: 10px 12px
|
|
40
|
+
* - "sm": max-height: 32px, font-size: 12px, padding: 8px
|
|
41
|
+
*
|
|
42
|
+
* @default "md"
|
|
43
|
+
*/
|
|
44
|
+
size?: ButtonSize;
|
|
45
|
+
/**
|
|
46
|
+
* Ikon di sebelah kiri teks (opsional).
|
|
47
|
+
*/
|
|
48
|
+
prefixIcon?: ReactNode | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Ikon di sebelah kanan teks (opsional).
|
|
51
|
+
*/
|
|
52
|
+
suffixIcon?: ReactNode | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Konten utama button, bisa berupa teks atau JSX custom.
|
|
55
|
+
*/
|
|
56
|
+
children: ReactNode;
|
|
57
|
+
/**
|
|
58
|
+
* Jika true, button dipastikan dalam keadaan disabled
|
|
59
|
+
* (tidak bisa di-klik, gaya berubah).
|
|
60
|
+
*/
|
|
61
|
+
disabled?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* ClassName tambahan untuk override styling wrapper.
|
|
64
|
+
*/
|
|
65
|
+
className?: string;
|
|
66
|
+
}
|
|
67
|
+
export default function Button(props: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
68
|
+
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/Button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAExD,OAAO,oCAAoC,CAAC;AAE5C;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,WAAW,GACX,UAAU,GACV,MAAM,GACN,QAAQ,CAAC;AACb,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3D,MAAM,WAAW,WAAY,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC1E;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAEnC;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAEnC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,WAAW,2CAmChD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface ButtonGroupOption {
|
|
3
|
+
/** Value of the option */
|
|
4
|
+
value: string | number;
|
|
5
|
+
/** Label content (can be ReactNode for custom content) */
|
|
6
|
+
label: ReactNode;
|
|
7
|
+
/** Whether the option is disabled */
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface ButtonGroupProps {
|
|
11
|
+
/** Array of options to display */
|
|
12
|
+
options: ButtonGroupOption[];
|
|
13
|
+
/** Currently selected value */
|
|
14
|
+
value?: string | number;
|
|
15
|
+
/** Default selected value (for uncontrolled mode) */
|
|
16
|
+
defaultValue?: string | number;
|
|
17
|
+
/** Callback fired when selection changes */
|
|
18
|
+
onChange?: (value: string | number) => void;
|
|
19
|
+
/** Whether the button group is disabled */
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
/** Additional CSS class name */
|
|
22
|
+
className?: string;
|
|
23
|
+
/** HTML name attribute for form submission */
|
|
24
|
+
name?: string;
|
|
25
|
+
}
|
|
26
|
+
export default function ButtonGroup({ options, value: controlledValue, defaultValue, onChange, disabled, className, name, }: ButtonGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=ButtonGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../../src/components/ButtonGroup.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,0CAA0C,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,0DAA0D;IAC1D,KAAK,EAAE,SAAS,CAAC;IACjB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5C,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,OAAO,EACP,KAAK,EAAE,eAAe,EACtB,YAAY,EACZ,QAAQ,EACR,QAAgB,EAChB,SAAc,EACd,IAAI,GACL,EAAE,gBAAgB,2CAyDlB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Card component untuk menampilkan konten dalam container dengan berbagai varian.
|
|
4
|
+
* Varian: Basic (Vertical), Horizontal, Overlay
|
|
5
|
+
*
|
|
6
|
+
* @param {'basic' | 'horizontal' | 'overlay'} [variant] - Varian card (default: 'basic').
|
|
7
|
+
* @param {'top' | 'bottom' | 'left' | 'right'} [mediaPosition] - Posisi media (default berdasarkan variant).
|
|
8
|
+
* @param {string} [avatar] - Avatar image source.
|
|
9
|
+
* @param {string} [avatarAlt] - Avatar alt text.
|
|
10
|
+
* @param {ReactNode} [title] - Judul card.
|
|
11
|
+
* @param {ReactNode} [description] - Deskripsi card.
|
|
12
|
+
* @param {string} [mediaSrc] - Media image source.
|
|
13
|
+
* @param {string} [mediaAlt] - Media alt text.
|
|
14
|
+
* @param {boolean} [showButton] - Apakah button ditampilkan.
|
|
15
|
+
* @param {string} [buttonText] - Button text.
|
|
16
|
+
* @param {'primary' | 'secondary' | 'tertiary' | 'link'} [buttonHierarchy] - Button hierarchy.
|
|
17
|
+
* @param {boolean} [hoverable] - Apakah card memiliki efek hover.
|
|
18
|
+
* @param {boolean} [clickable] - Apakah card dapat diklik.
|
|
19
|
+
* @param {string} [className] - ClassName tambahan.
|
|
20
|
+
*/
|
|
21
|
+
export type CardVariant = 'basic' | 'horizontal' | 'overlay';
|
|
22
|
+
export type CardMediaPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
23
|
+
export interface CardProps {
|
|
24
|
+
/**
|
|
25
|
+
* Varian card: basic (vertical), horizontal, overlay
|
|
26
|
+
*/
|
|
27
|
+
variant?: CardVariant;
|
|
28
|
+
/**
|
|
29
|
+
* Posisi media: untuk basic (top/bottom), horizontal (left/right), overlay (top/bottom)
|
|
30
|
+
*/
|
|
31
|
+
mediaPosition?: CardMediaPosition;
|
|
32
|
+
/**
|
|
33
|
+
* Avatar image source
|
|
34
|
+
*/
|
|
35
|
+
avatar?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Avatar alt text
|
|
38
|
+
*/
|
|
39
|
+
avatarAlt?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Judul card
|
|
42
|
+
*/
|
|
43
|
+
title?: ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* Deskripsi card
|
|
46
|
+
*/
|
|
47
|
+
description?: ReactNode;
|
|
48
|
+
/**
|
|
49
|
+
* Media image source
|
|
50
|
+
*/
|
|
51
|
+
mediaSrc?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Media alt text
|
|
54
|
+
*/
|
|
55
|
+
mediaAlt?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Apakah button ditampilkan
|
|
58
|
+
*/
|
|
59
|
+
showButton?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Button text
|
|
62
|
+
*/
|
|
63
|
+
buttonText?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Button hierarchy
|
|
66
|
+
*/
|
|
67
|
+
buttonHierarchy?: 'primary' | 'secondary' | 'tertiary' | 'link';
|
|
68
|
+
/**
|
|
69
|
+
* Callback saat button diklik
|
|
70
|
+
*/
|
|
71
|
+
onButtonClick?: () => void;
|
|
72
|
+
/**
|
|
73
|
+
* Legacy: Subtitle card
|
|
74
|
+
*/
|
|
75
|
+
subtitle?: ReactNode;
|
|
76
|
+
/**
|
|
77
|
+
* Legacy: Apakah header ditampilkan
|
|
78
|
+
*/
|
|
79
|
+
showHeader?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Legacy: Apakah card memiliki efek hover
|
|
82
|
+
*/
|
|
83
|
+
hoverable?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Legacy: Apakah card dapat diklik
|
|
86
|
+
*/
|
|
87
|
+
clickable?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* ClassName tambahan
|
|
90
|
+
*/
|
|
91
|
+
className?: string;
|
|
92
|
+
}
|
|
93
|
+
export default function Card({ variant, mediaPosition, avatar, avatarAlt, title, description, mediaSrc, mediaAlt, showButton, buttonText, buttonHierarchy, onButtonClick, showHeader, hoverable, clickable, className, }: CardProps): import("react/jsx-runtime").JSX.Element;
|
|
94
|
+
//# sourceMappingURL=Card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/Card.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlC,OAAO,kCAAkC,CAAC;AAE1C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;OAEG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAElC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IAEhE;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,OAAiB,EACjB,aAAa,EACb,MAAM,EACN,SAAS,EACT,KAAK,EACL,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAkB,EAClB,UAAU,EACV,eAA2B,EAC3B,aAAa,EACb,UAAiB,EACjB,SAAiB,EACjB,SAAiB,EACjB,SAAc,GACf,EAAE,SAAS,2CAmGX"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Ref } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Custom Checkbox component dengan styling Tailwind:
|
|
4
|
+
* - Kotak “unchecked” → border abu‐abu
|
|
5
|
+
* - Kotak “checked” → background hitam + ikon centang putih
|
|
6
|
+
* - Kotak “indeterminate” → background hitam + ikon minus putih
|
|
7
|
+
* - State disabled → border & background memudar, teks memudar, ikon memudar
|
|
8
|
+
*
|
|
9
|
+
* @param {string} id - ID unik untuk input (untuk accessibility).
|
|
10
|
+
* @param {string} label - Teks label utama.
|
|
11
|
+
* @param {string} [subtext] - Teks kecil di bawah label (opsional).
|
|
12
|
+
* @param {boolean} checked - Controlled: apakah checked.
|
|
13
|
+
* @param {boolean} [indeterminate] - Controlled: apakah indeterminate.
|
|
14
|
+
* @param {(val: boolean) => void} onChange - Callback saat di‐toggle.
|
|
15
|
+
* @param {boolean} [disabled] - Jika true, tidak bisa diklik.
|
|
16
|
+
* @param {string} [className] - Tambahan Tailwind classes.
|
|
17
|
+
* @param {Ref<HTMLInputElement>} [inputRef] - Ref ke `<input>` untuk indeterminate.
|
|
18
|
+
* @param {boolean} [invalid] - Jika true, tampilkan border merah dan state error
|
|
19
|
+
*/
|
|
20
|
+
export interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'type'> {
|
|
21
|
+
id: string;
|
|
22
|
+
label: string;
|
|
23
|
+
subtext?: string;
|
|
24
|
+
checked: boolean;
|
|
25
|
+
indeterminate?: boolean;
|
|
26
|
+
onChange: (checked: boolean) => void;
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
className?: string;
|
|
29
|
+
inputRef?: Ref<HTMLInputElement>;
|
|
30
|
+
invalid?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export default function Checkbox({ id, label, subtext, checked, indeterminate, onChange, disabled, className, inputRef, invalid, ...rest }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,EAA0B,GAAG,EAAE,MAAM,OAAO,CAAC;AAGpD,OAAO,sCAAsC,CAAC;AAE9C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,aACf,SAAQ,IAAI,CACV,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,UAAU,GAAG,MAAM,CACpB;IACD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,EAAE,EACF,KAAK,EACL,OAAY,EACZ,OAAO,EACP,aAAqB,EACrB,QAAQ,EACR,QAAgB,EAChB,SAAc,EACd,QAAQ,EACR,OAAe,EACf,GAAG,IAAI,EACR,EAAE,aAAa,2CAmDf"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Satu opsi Chip statis.
|
|
4
|
+
*/
|
|
5
|
+
export interface ChipOption {
|
|
6
|
+
/** Teks yang ditampilkan */
|
|
7
|
+
label: string;
|
|
8
|
+
/** Value yang akan dikirim ke onSelect */
|
|
9
|
+
value: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Props untuk komponen Chip.
|
|
13
|
+
*
|
|
14
|
+
* @param {ChipOption[]} options Daftar opsi statis.
|
|
15
|
+
* @param {string} selected Value yang sedang dipilih.
|
|
16
|
+
* @param {'small'|'medium'} [size='medium'] Ukuran chip.
|
|
17
|
+
* @param {'filled'|'outline'} [variant='outline'] Variant chip (filled atau outline).
|
|
18
|
+
* @param {(value: string) => void} [onSelect] Callback saat user memilih opsi atau menyelesaikan input kustom.
|
|
19
|
+
* @param {boolean} [showCustomization] Jika true, render tombol kustomisasi.
|
|
20
|
+
* @param {string} [customizationLabel] Label tombol kustomisasi. Default: "Kustomisasi".
|
|
21
|
+
* @param {ReactNode} [customizationComponent] Override UI input kustom (default: number + "Hari").
|
|
22
|
+
* @param {string} [className] ClassName tambahan pada wrapper.
|
|
23
|
+
*/
|
|
24
|
+
export interface ChipProps {
|
|
25
|
+
options: ChipOption[];
|
|
26
|
+
selected: string;
|
|
27
|
+
size?: 'small' | 'medium';
|
|
28
|
+
variant?: 'filled' | 'outline';
|
|
29
|
+
onSelect?: (value: string) => void;
|
|
30
|
+
showCustomization?: boolean;
|
|
31
|
+
customizationLabel?: string;
|
|
32
|
+
customizationComponent?: ReactNode;
|
|
33
|
+
className?: string;
|
|
34
|
+
}
|
|
35
|
+
export default function Chip({ options, selected, size, variant, onSelect, showCustomization, customizationLabel, customizationComponent, className, }: ChipProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
//# sourceMappingURL=Chip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../../../src/components/Chip.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAGvD,OAAO,kCAAkC,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,SAAS,CAAC;IAEnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,OAAO,EACP,QAAQ,EACR,IAAe,EACf,OAAmB,EACnB,QAAQ,EAER,iBAAyB,EACzB,kBAAkC,EAClC,sBAAsB,EAEtB,SAAc,GACf,EAAE,SAAS,2CA6FX"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Collapse component: bungkus konten yang bisa di‐toggle open/close.
|
|
4
|
+
*
|
|
5
|
+
* @param {ReactNode} children — konten collapsed.
|
|
6
|
+
* @param {boolean} [defaultOpen=false] — state open awal.
|
|
7
|
+
* @param {string} [className] — class tambahan.
|
|
8
|
+
*/
|
|
9
|
+
export interface CollapseProps {
|
|
10
|
+
in: boolean;
|
|
11
|
+
timeout?: number | string;
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
export default function Collapse({ in: isOpen, timeout, children, className, }: CollapseProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=Collapse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Collapse.d.ts","sourceRoot":"","sources":["../../../src/components/Collapse.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,sCAAsC,CAAC;AAE9C;;;;;;GAMG;AAGH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,EAAE,EAAE,MAAM,EACV,OAAa,EACb,QAAQ,EACR,SAAc,GACf,EAAE,aAAa,2CAkBf"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type DatePickerMode = 'single' | 'range' | 'multiple';
|
|
3
|
+
export type DatePickerSize = 'sm' | 'md' | 'lg';
|
|
4
|
+
export interface DatePickerProps {
|
|
5
|
+
/** Mode selection: 'range' (default), 'single', atau 'multiple' */
|
|
6
|
+
mode?: DatePickerMode;
|
|
7
|
+
/** Selected dates - format depends on mode */
|
|
8
|
+
selected: string[] | string;
|
|
9
|
+
/** Callback when selection changes - format depends on mode */
|
|
10
|
+
onChange: ((newRange: [string, string]) => void) | ((newDate: string) => void) | ((newDates: string[]) => void);
|
|
11
|
+
placeholder?: string | ReactNode;
|
|
12
|
+
popperPlacement?: 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end' | 'top' | 'top-start' | 'top-end';
|
|
13
|
+
/** format untuk PARSE & EMIT (default 'dd/MM/yyyy') */
|
|
14
|
+
dateFormat?: string;
|
|
15
|
+
className?: string;
|
|
16
|
+
/** Lebar tombol/trigger; contoh: 320 atau '24rem' atau '100%' */
|
|
17
|
+
triggerWidth?: number | string;
|
|
18
|
+
/** Max height panel; contoh: 420 atau '28rem' → panel auto scroll */
|
|
19
|
+
panelMaxHeight?: number | string;
|
|
20
|
+
/** Extra class untuk panel kalender */
|
|
21
|
+
panelClassName?: string;
|
|
22
|
+
triggerClassname?: string;
|
|
23
|
+
/** Disable dates before today */
|
|
24
|
+
disabledBackDate?: boolean;
|
|
25
|
+
/** Disable dates after today */
|
|
26
|
+
disabledFutureDate?: boolean;
|
|
27
|
+
/** Disable dates before this specific date (format: 'dd/MM/yyyy') */
|
|
28
|
+
disabledDateBefore?: string;
|
|
29
|
+
/** Disable dates after this specific date (format: 'dd/MM/yyyy') */
|
|
30
|
+
disabledDateAfter?: string;
|
|
31
|
+
/** Disable the entire component */
|
|
32
|
+
disabled?: boolean;
|
|
33
|
+
/** Make the component readonly */
|
|
34
|
+
readonly?: boolean;
|
|
35
|
+
/** Size variant */
|
|
36
|
+
size?: DatePickerSize;
|
|
37
|
+
}
|
|
38
|
+
export default function DatePicker({ mode, selected, onChange, placeholder, popperPlacement, dateFormat, className, triggerWidth, panelMaxHeight, panelClassName, triggerClassname, disabledBackDate, disabledFutureDate, disabledDateBefore, disabledDateAfter, disabled, readonly, size, }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
//# sourceMappingURL=DatePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,SAAS,EAGV,MAAM,OAAO,CAAC;AAUf,OAAO,yCAAyC,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,EACJ,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,GACtC,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAC3B,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,eAAe,CAAC,EACZ,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,UAAU,GACV,OAAO,GACP,aAAa,GACb,WAAW,GACX,KAAK,GACL,WAAW,GACX,SAAS,CAAC;IACd,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAkJD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAc,EACd,QAAQ,EACR,QAAQ,EACR,WAA6B,EAC7B,eAAgC,EAChC,UAAyB,EACzB,SAAc,EACd,YAAqB,EACrB,cAAc,EACd,cAAmB,EACnB,gBAAqB,EACrB,gBAAwB,EACxB,kBAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,QAAgB,EAChB,QAAgB,EAChB,IAAW,GACZ,EAAE,eAAe,2CA8oCjB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Divider component: garis pemisah untuk memecah konten.
|
|
3
|
+
*
|
|
4
|
+
* @param {'horizontal'|'vertical'} [orientation] - Arah garis.
|
|
5
|
+
* @param {'fullWidth'|'inset'|'middle'} [variant] - Margin variant.
|
|
6
|
+
* @param {boolean} [light] - Jika true, gunakan warna divider lebih terang.
|
|
7
|
+
* @param {boolean} [flexItem] - Jika true & vertical, cocokkan tinggi flex parent.
|
|
8
|
+
* @param {string} [className] - ClassName tambahan.
|
|
9
|
+
*/
|
|
10
|
+
export type DividerOrientation = 'horizontal' | 'vertical';
|
|
11
|
+
export type DividerVariant = 'fullWidth' | 'inset' | 'middle';
|
|
12
|
+
export interface DividerProps {
|
|
13
|
+
/**
|
|
14
|
+
* Arah divider:
|
|
15
|
+
* - "horizontal": garis mendatar (default)
|
|
16
|
+
* - "vertical": garis tegak
|
|
17
|
+
*/
|
|
18
|
+
orientation?: DividerOrientation;
|
|
19
|
+
/**
|
|
20
|
+
* Variasi margin pada divider:
|
|
21
|
+
* - "fullWidth": melebar penuh (default)
|
|
22
|
+
* - "inset": sisakan margin di salah satu ujung (16px)
|
|
23
|
+
* - "middle": margin kiri & kanan auto (agar ter‐center)
|
|
24
|
+
*/
|
|
25
|
+
variant?: DividerVariant;
|
|
26
|
+
/**
|
|
27
|
+
* Jika true, gunakan warna border yang lebih terang
|
|
28
|
+
* (menggunakan warna stroke-secondary).
|
|
29
|
+
*/
|
|
30
|
+
light?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Jika true, dan orientation="vertical", divider akan
|
|
33
|
+
* memanfaatkan tinggi flex container (self-stretch).
|
|
34
|
+
*/
|
|
35
|
+
flexItem?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* ClassName Tailwind tambahan untuk override styling.
|
|
38
|
+
*/
|
|
39
|
+
className?: string;
|
|
40
|
+
}
|
|
41
|
+
export default function Divider({ orientation, variant, light, flexItem, className, }: DividerProps): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
//# sourceMappingURL=Divider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Divider.d.ts","sourceRoot":"","sources":["../../../src/components/Divider.tsx"],"names":[],"mappings":"AAEA,OAAO,qCAAqC,CAAC;AAE7C;;;;;;;;GAQG;AAEH,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,UAAU,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAEjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,WAA0B,EAC1B,OAAqB,EACrB,KAAa,EACb,QAAgB,EAChB,SAAc,GACf,EAAE,YAAY,2CAWd"}
|