@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.
Files changed (134) hide show
  1. package/README.md +429 -0
  2. package/dist/index.cjs.js +20 -0
  3. package/dist/index.css +1 -0
  4. package/dist/index.es.js +9682 -0
  5. package/dist/index.umd.js +20 -0
  6. package/dist/types/App.d.ts +3 -0
  7. package/dist/types/App.d.ts.map +1 -0
  8. package/dist/types/components/Accordion.d.ts +48 -0
  9. package/dist/types/components/Accordion.d.ts.map +1 -0
  10. package/dist/types/components/AccordionCard.d.ts +22 -0
  11. package/dist/types/components/AccordionCard.d.ts.map +1 -0
  12. package/dist/types/components/AccordionGroup.d.ts +45 -0
  13. package/dist/types/components/AccordionGroup.d.ts.map +1 -0
  14. package/dist/types/components/ActionDropdown.d.ts +21 -0
  15. package/dist/types/components/ActionDropdown.d.ts.map +1 -0
  16. package/dist/types/components/Alert.d.ts +55 -0
  17. package/dist/types/components/Alert.d.ts.map +1 -0
  18. package/dist/types/components/Avatar.d.ts +33 -0
  19. package/dist/types/components/Avatar.d.ts.map +1 -0
  20. package/dist/types/components/Badge.d.ts +61 -0
  21. package/dist/types/components/Badge.d.ts.map +1 -0
  22. package/dist/types/components/BottomSheet.d.ts +9 -0
  23. package/dist/types/components/BottomSheet.d.ts.map +1 -0
  24. package/dist/types/components/Breadcrumb.d.ts +25 -0
  25. package/dist/types/components/Breadcrumb.d.ts.map +1 -0
  26. package/dist/types/components/Button.d.ts +68 -0
  27. package/dist/types/components/Button.d.ts.map +1 -0
  28. package/dist/types/components/ButtonGroup.d.ts +27 -0
  29. package/dist/types/components/ButtonGroup.d.ts.map +1 -0
  30. package/dist/types/components/Card.d.ts +94 -0
  31. package/dist/types/components/Card.d.ts.map +1 -0
  32. package/dist/types/components/Checkbox.d.ts +33 -0
  33. package/dist/types/components/Checkbox.d.ts.map +1 -0
  34. package/dist/types/components/Chip.d.ts +36 -0
  35. package/dist/types/components/Chip.d.ts.map +1 -0
  36. package/dist/types/components/Collapse.d.ts +16 -0
  37. package/dist/types/components/Collapse.d.ts.map +1 -0
  38. package/dist/types/components/DatePicker.d.ts +39 -0
  39. package/dist/types/components/DatePicker.d.ts.map +1 -0
  40. package/dist/types/components/Divider.d.ts +42 -0
  41. package/dist/types/components/Divider.d.ts.map +1 -0
  42. package/dist/types/components/Drawer.d.ts +35 -0
  43. package/dist/types/components/Drawer.d.ts.map +1 -0
  44. package/dist/types/components/Dropdown.d.ts +24 -0
  45. package/dist/types/components/Dropdown.d.ts.map +1 -0
  46. package/dist/types/components/FieldInputTable.d.ts +33 -0
  47. package/dist/types/components/FieldInputTable.d.ts.map +1 -0
  48. package/dist/types/components/FileUpload.d.ts +86 -0
  49. package/dist/types/components/FileUpload.d.ts.map +1 -0
  50. package/dist/types/components/InputSearch.d.ts +14 -0
  51. package/dist/types/components/InputSearch.d.ts.map +1 -0
  52. package/dist/types/components/LinearProgressIndicator.d.ts +16 -0
  53. package/dist/types/components/LinearProgressIndicator.d.ts.map +1 -0
  54. package/dist/types/components/List/List.d.ts +17 -0
  55. package/dist/types/components/List/List.d.ts.map +1 -0
  56. package/dist/types/components/List/ListItem.d.ts +19 -0
  57. package/dist/types/components/List/ListItem.d.ts.map +1 -0
  58. package/dist/types/components/List/ListItemAvatar.d.ts +15 -0
  59. package/dist/types/components/List/ListItemAvatar.d.ts.map +1 -0
  60. package/dist/types/components/List/ListItemButton.d.ts +12 -0
  61. package/dist/types/components/List/ListItemButton.d.ts.map +1 -0
  62. package/dist/types/components/List/ListItemIcon.d.ts +12 -0
  63. package/dist/types/components/List/ListItemIcon.d.ts.map +1 -0
  64. package/dist/types/components/List/ListItemText.d.ts +14 -0
  65. package/dist/types/components/List/ListItemText.d.ts.map +1 -0
  66. package/dist/types/components/List/ListSubheader.d.ts +16 -0
  67. package/dist/types/components/List/ListSubheader.d.ts.map +1 -0
  68. package/dist/types/components/Modal.d.ts +13 -0
  69. package/dist/types/components/Modal.d.ts.map +1 -0
  70. package/dist/types/components/MonthPicker.d.ts +39 -0
  71. package/dist/types/components/MonthPicker.d.ts.map +1 -0
  72. package/dist/types/components/MultipleChoiceGrid.d.ts +32 -0
  73. package/dist/types/components/MultipleChoiceGrid.d.ts.map +1 -0
  74. package/dist/types/components/Pagination.d.ts +58 -0
  75. package/dist/types/components/Pagination.d.ts.map +1 -0
  76. package/dist/types/components/PasswordInput.d.ts +75 -0
  77. package/dist/types/components/PasswordInput.d.ts.map +1 -0
  78. package/dist/types/components/PhoneInput.d.ts +19 -0
  79. package/dist/types/components/PhoneInput.d.ts.map +1 -0
  80. package/dist/types/components/ProgressBar.d.ts +32 -0
  81. package/dist/types/components/ProgressBar.d.ts.map +1 -0
  82. package/dist/types/components/RadioInput.d.ts +27 -0
  83. package/dist/types/components/RadioInput.d.ts.map +1 -0
  84. package/dist/types/components/SelectDropdown.d.ts +81 -0
  85. package/dist/types/components/SelectDropdown.d.ts.map +1 -0
  86. package/dist/types/components/Skeleton.d.ts +20 -0
  87. package/dist/types/components/Skeleton.d.ts.map +1 -0
  88. package/dist/types/components/Spinner.d.ts +22 -0
  89. package/dist/types/components/Spinner.d.ts.map +1 -0
  90. package/dist/types/components/Stepper.d.ts +25 -0
  91. package/dist/types/components/Stepper.d.ts.map +1 -0
  92. package/dist/types/components/TabHorizontal.d.ts +34 -0
  93. package/dist/types/components/TabHorizontal.d.ts.map +1 -0
  94. package/dist/types/components/TabVertical.d.ts +34 -0
  95. package/dist/types/components/TabVertical.d.ts.map +1 -0
  96. package/dist/types/components/Table.d.ts +69 -0
  97. package/dist/types/components/Table.d.ts.map +1 -0
  98. package/dist/types/components/TableProgressBar.d.ts +20 -0
  99. package/dist/types/components/TableProgressBar.d.ts.map +1 -0
  100. package/dist/types/components/TextArea.d.ts +57 -0
  101. package/dist/types/components/TextArea.d.ts.map +1 -0
  102. package/dist/types/components/TextField.d.ts +61 -0
  103. package/dist/types/components/TextField.d.ts.map +1 -0
  104. package/dist/types/components/ThemeToggle.d.ts +7 -0
  105. package/dist/types/components/ThemeToggle.d.ts.map +1 -0
  106. package/dist/types/components/TimePicker.d.ts +56 -0
  107. package/dist/types/components/TimePicker.d.ts.map +1 -0
  108. package/dist/types/components/Toast.d.ts +15 -0
  109. package/dist/types/components/Toast.d.ts.map +1 -0
  110. package/dist/types/components/Toggle.d.ts +26 -0
  111. package/dist/types/components/Toggle.d.ts.map +1 -0
  112. package/dist/types/components/Tooltip.d.ts +85 -0
  113. package/dist/types/components/Tooltip.d.ts.map +1 -0
  114. package/dist/types/components/YearPicker.d.ts +43 -0
  115. package/dist/types/components/YearPicker.d.ts.map +1 -0
  116. package/dist/types/index.d.ts +70 -0
  117. package/dist/types/index.d.ts.map +1 -0
  118. package/dist/types/main.d.ts +1 -0
  119. package/dist/types/main.d.ts.map +1 -0
  120. package/dist/types/themes/index.d.ts +41 -0
  121. package/dist/types/themes/index.d.ts.map +1 -0
  122. package/dist/types/utils/ConfirmationProvider.d.ts +16 -0
  123. package/dist/types/utils/ConfirmationProvider.d.ts.map +1 -0
  124. package/dist/types/utils/ToastProvider.d.ts +12 -0
  125. package/dist/types/utils/ToastProvider.d.ts.map +1 -0
  126. package/dist/types/utils/fileValidation.d.ts +57 -0
  127. package/dist/types/utils/fileValidation.d.ts.map +1 -0
  128. package/dist/types/utils/form.d.ts +21 -0
  129. package/dist/types/utils/form.d.ts.map +1 -0
  130. package/dist/types/utils/index.d.ts +11 -0
  131. package/dist/types/utils/index.d.ts.map +1 -0
  132. package/dist/types/utils/security.d.ts +61 -0
  133. package/dist/types/utils/security.d.ts.map +1 -0
  134. 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"}