@herca/rn-kit 0.1.69 → 0.1.71

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 (66) hide show
  1. package/lib/module/Icon/Icon.js +3 -1
  2. package/lib/module/Icon/Icon.js.map +1 -1
  3. package/lib/module/Icon/README.md +1 -0
  4. package/lib/module/Icon/icons/FaceId.js +61 -0
  5. package/lib/module/Icon/icons/FaceId.js.map +1 -0
  6. package/lib/module/Input/InputFile.js +76 -275
  7. package/lib/module/Input/InputFile.js.map +1 -1
  8. package/lib/module/Input/README_INPUT_FILE.md +144 -23
  9. package/lib/module/Input/partials/InputFile/CardTrigger.js +77 -0
  10. package/lib/module/Input/partials/InputFile/CardTrigger.js.map +1 -0
  11. package/lib/module/Input/partials/InputFile/CardTriggerSmall.js +86 -0
  12. package/lib/module/Input/partials/InputFile/CardTriggerSmall.js.map +1 -0
  13. package/lib/module/Input/partials/InputFile/ItemPicker.js +43 -0
  14. package/lib/module/Input/partials/InputFile/ItemPicker.js.map +1 -0
  15. package/lib/module/Input/partials/InputFile/ItemPreview.js +149 -0
  16. package/lib/module/Input/partials/InputFile/ItemPreview.js.map +1 -0
  17. package/lib/module/Input/partials/InputFile/ModalDelete.js +76 -0
  18. package/lib/module/Input/partials/InputFile/ModalDelete.js.map +1 -0
  19. package/lib/module/Input/partials/InputFile/ModalPicker.js +72 -0
  20. package/lib/module/Input/partials/InputFile/ModalPicker.js.map +1 -0
  21. package/lib/module/Spinner/Spinner.js +78 -0
  22. package/lib/module/Spinner/Spinner.js.map +1 -0
  23. package/lib/module/Ui/Center.js.map +1 -1
  24. package/lib/module/styles/layouting.js +3 -0
  25. package/lib/module/styles/layouting.js.map +1 -1
  26. package/lib/typescript/src/Icon/Icon.d.ts.map +1 -1
  27. package/lib/typescript/src/Icon/icons/FaceId.d.ts +9 -0
  28. package/lib/typescript/src/Icon/icons/FaceId.d.ts.map +1 -0
  29. package/lib/typescript/src/Icon/type.d.ts +1 -1
  30. package/lib/typescript/src/Icon/type.d.ts.map +1 -1
  31. package/lib/typescript/src/Input/InputFile.d.ts +17 -4
  32. package/lib/typescript/src/Input/InputFile.d.ts.map +1 -1
  33. package/lib/typescript/src/Input/partials/InputFile/CardTrigger.d.ts +11 -0
  34. package/lib/typescript/src/Input/partials/InputFile/CardTrigger.d.ts.map +1 -0
  35. package/lib/typescript/src/Input/partials/InputFile/CardTriggerSmall.d.ts +12 -0
  36. package/lib/typescript/src/Input/partials/InputFile/CardTriggerSmall.d.ts.map +1 -0
  37. package/lib/typescript/src/Input/partials/InputFile/ItemPicker.d.ts +10 -0
  38. package/lib/typescript/src/Input/partials/InputFile/ItemPicker.d.ts.map +1 -0
  39. package/lib/typescript/src/Input/partials/InputFile/ItemPreview.d.ts +11 -0
  40. package/lib/typescript/src/Input/partials/InputFile/ItemPreview.d.ts.map +1 -0
  41. package/lib/typescript/src/Input/partials/InputFile/ModalDelete.d.ts +12 -0
  42. package/lib/typescript/src/Input/partials/InputFile/ModalDelete.d.ts.map +1 -0
  43. package/lib/typescript/src/Input/partials/InputFile/ModalPicker.d.ts +18 -0
  44. package/lib/typescript/src/Input/partials/InputFile/ModalPicker.d.ts.map +1 -0
  45. package/lib/typescript/src/Spinner/Spinner.d.ts +5 -0
  46. package/lib/typescript/src/Spinner/Spinner.d.ts.map +1 -0
  47. package/lib/typescript/src/Ui/Center.d.ts +2 -2
  48. package/lib/typescript/src/Ui/Center.d.ts.map +1 -1
  49. package/lib/typescript/src/styles/layouting.d.ts +3 -0
  50. package/lib/typescript/src/styles/layouting.d.ts.map +1 -1
  51. package/package.json +1 -1
  52. package/src/Icon/Icon.tsx +2 -0
  53. package/src/Icon/README.md +1 -0
  54. package/src/Icon/icons/FaceId.tsx +64 -0
  55. package/src/Icon/type.tsx +2 -1
  56. package/src/Input/InputFile.tsx +148 -296
  57. package/src/Input/README_INPUT_FILE.md +144 -23
  58. package/src/Input/partials/InputFile/CardTrigger.tsx +87 -0
  59. package/src/Input/partials/InputFile/CardTriggerSmall.tsx +120 -0
  60. package/src/Input/partials/InputFile/ItemPicker.tsx +46 -0
  61. package/src/Input/partials/InputFile/ItemPreview.tsx +182 -0
  62. package/src/Input/partials/InputFile/ModalDelete.tsx +84 -0
  63. package/src/Input/partials/InputFile/ModalPicker.tsx +86 -0
  64. package/src/Spinner/Spinner.tsx +67 -0
  65. package/src/Ui/Center.tsx +2 -2
  66. package/src/styles/layouting.ts +1 -0
@@ -11,7 +11,8 @@ Mendukung **camera**, **gallery**, dan **document picker** dengan tampilan previ
11
11
  - Preview file (gambar atau dokumen).
12
12
  - Mendukung **multiple file upload**.
13
13
  - Ganti file (replace) atau hapus file dengan konfirmasi.
14
- - Tambahkan label/nama dokumen secara manual.
14
+ - Tambahkan label/nama dokumen secara manual (hanya untuk variant `default`).
15
+ - **2 Variant tampilan**: `default` (full) dan `small` (compact).
15
16
  - Konfigurasi teks modal (custom title, description, button).
16
17
  - Callback `onChange` untuk mengirim data file terbaru ke parent.
17
18
 
@@ -29,6 +30,8 @@ Komponen ini membutuhkan beberapa library:
29
30
 
30
31
  ## 🚀 Penggunaan
31
32
 
33
+ ### Variant Default (Full Features)
34
+
32
35
  ```tsx
33
36
  import InputFile from '@/components/Input/InputFile';
34
37
  import { useState } from 'react';
@@ -38,12 +41,19 @@ export default function ExampleScreen() {
38
41
 
39
42
  return (
40
43
  <InputFile
44
+ variant="default" // atau bisa dihilangkan (default)
41
45
  title="Upload Dokumen"
42
46
  description="Format file: JPG, PNG, PDF"
47
+ hint="Maksimal ukuran file 5MB"
48
+ hasError={false}
43
49
  btnChooseFileText="Pilih File"
44
50
  multiple={true}
45
51
  value={files}
46
52
  useChangeLabel={true}
53
+ changeLableProps={{
54
+ label: 'Nama Dokumen',
55
+ placeholder: 'Masukkan nama dokumen',
56
+ }}
47
57
  modalPickFileText={{
48
58
  title: 'Pilih Sumber',
49
59
  description: 'Unggah dokumen atau ambil foto',
@@ -68,23 +78,67 @@ export default function ExampleScreen() {
68
78
  }
69
79
  ```
70
80
 
81
+ ### Variant Small (Compact)
82
+
83
+ ```tsx
84
+ import InputFile from '@/components/Input/InputFile';
85
+ import { useState } from 'react';
86
+
87
+ export default function ExampleScreen() {
88
+ const [files, setFiles] = useState<any[]>([]);
89
+
90
+ return (
91
+ <InputFile
92
+ variant="small"
93
+ title="Upload KTP"
94
+ btnChooseFileText="Pilih"
95
+ multiple={false}
96
+ value={files}
97
+ hasError={false}
98
+ onChange={(newFiles) => setFiles(newFiles)}
99
+ // ❌ description, hint, useChangeLabel, changeLableProps TIDAK BISA dipakai di variant small
100
+ />
101
+ );
102
+ }
103
+ ```
104
+
71
105
  ---
72
106
 
73
107
  ## ⚙️ Props
74
108
 
75
- | Prop | Tipe | Default | Deskripsi |
76
- | ------------------- | --------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------ |
77
- | `title` | `string` | `"Upload File"` | Judul input file. |
78
- | `description` | `string` | `"File harus berformat JPG, PNG dan PDF"` | Deskripsi singkat tentang file yang diterima. |
79
- | `accept` | `string[]` | `["application/pdf", "image/jpeg", "image/png"]` | Tipe MIME file yang diizinkan. |
80
- | `multiple` | `boolean` | `false` | Jika `true`, memungkinkan memilih banyak file sekaligus. |
81
- | `value` | `any[]` | `[]` | Daftar file yang sudah dipilih (state dari parent). |
82
- | `onChange` | `(files: any[]) => void` | `undefined` | Callback saat daftar file berubah (add, replace, delete). |
83
- | `btnChooseFileText` | `string` | `"Choose File"` | Label tombol untuk memilih file. |
84
- | `modalPickFileText` | `ModalPickFileText` (lihat bawah) | `undefined` | Teks kustom pada modal pemilihan sumber file. |
85
- | `modalDeleteText` | `ModalOption & confirmBtn` | `undefined` | Teks kustom pada modal konfirmasi hapus file. |
86
- | `useChangeLabel` | `boolean` | `false` | Jika `true`, menampilkan input untuk memberi nama/label pada file. |
87
- | `changeLableProps` | `ChangeLabelProps` (lihat bawah) | `undefined` | Teks kustom pada input text diatas preview file untuk |
109
+ ### Base Props (Tersedia di Semua Variant)
110
+
111
+ | Prop | Tipe | Default | Deskripsi |
112
+ | ------------------- | --------------------------------- | ------------------------------------------------ | --------------------------------------------------------- |
113
+ | `title` | `string` | `"Upload File"` | Judul input file. |
114
+ | `accept` | `string[]` | `["application/pdf", "image/jpeg", "image/png"]` | Tipe MIME file yang diizinkan. |
115
+ | `multiple` | `boolean` | `false` | Jika `true`, memungkinkan memilih banyak file sekaligus. |
116
+ | `value` | `any[]` | `[]` | Daftar file yang sudah dipilih (state dari parent). |
117
+ | `onChange` | `(files: any[]) => void` | `undefined` | Callback saat daftar file berubah (add, replace, delete). |
118
+ | `btnChooseFileText` | `string` | `"Choose File"` | Label tombol untuk memilih file. |
119
+ | `modalPickFileText` | `ModalPickFileText` (lihat bawah) | `undefined` | Teks kustom pada modal pemilihan sumber file. |
120
+ | `modalDeleteText` | `ModalOption & confirmBtn` | `undefined` | Teks kustom pada modal konfirmasi hapus file. |
121
+ | `hasError` | `boolean` | `false` | Menampilkan state error pada input. |
122
+
123
+ ### Variant-Specific Props
124
+
125
+ #### Default Variant (`variant?: 'default'`)
126
+
127
+ | Prop | Tipe | Default | Deskripsi |
128
+ | ------------------ | -------------------------------- | ----------------------------------------- | ------------------------------------------------------------ |
129
+ | `variant` | `'default'` | `'default'` | Variant default dengan fitur lengkap. |
130
+ | `description` | `string` | `"File harus berformat JPG, PNG dan PDF"` | Deskripsi singkat tentang file yang diterima. |
131
+ | `hint` | `string` | `undefined` | Teks hint tambahan di bawah input. |
132
+ | `useChangeLabel` | `boolean` | `false` | Jika `true`, menampilkan input untuk memberi nama pada file. |
133
+ | `changeLableProps` | `ChangeLabelProps` (lihat bawah) | `undefined` | Teks kustom pada input label di atas preview file. |
134
+
135
+ #### Small Variant (`variant: 'small'`)
136
+
137
+ | Prop | Tipe | Default | Deskripsi |
138
+ | --------- | --------- | ------- | ------------------------------------- |
139
+ | `variant` | `'small'` | - | Variant compact tanpa fitur tambahan. |
140
+
141
+ > ⚠️ **Catatan**: Props `description`, `hint`, `useChangeLabel`, dan `changeLableProps` **TIDAK TERSEDIA** di variant `small`. TypeScript akan menampilkan error jika props ini digunakan dengan `variant: 'small'`.
88
142
 
89
143
  ---
90
144
 
@@ -99,7 +153,7 @@ interface ModalOption {
99
153
  }
100
154
  ```
101
155
 
102
- ### `modalPickFileText`
156
+ ### `ModalPickFileText`
103
157
 
104
158
  ```ts
105
159
  interface ModalPickFileText {
@@ -111,20 +165,18 @@ interface ModalPickFileText {
111
165
  }
112
166
  ```
113
167
 
114
- ### `modalDeleteText`
168
+ ### `ModalDeleteText`
115
169
 
116
170
  ```ts
117
- interface ModalOption {
118
- title?: string;
119
- description?: string;
171
+ type ModalDeleteText = ModalOption & {
120
172
  confirmBtn?: {
121
173
  confirm?: string;
122
174
  cancel?: string;
123
175
  };
124
- }
176
+ };
125
177
  ```
126
178
 
127
- ### `changeLabelProps`
179
+ ### `ChangeLabelProps`
128
180
 
129
181
  ```ts
130
182
  interface ChangeLabelProps {
@@ -135,15 +187,81 @@ interface ChangeLabelProps {
135
187
 
136
188
  ---
137
189
 
138
- ## 📸 Preview UI
190
+ ## 📐 Type Definitions
191
+
192
+ ```ts
193
+ export interface ModalOption {
194
+ title?: string;
195
+ description?: string;
196
+ }
197
+
198
+ export interface ModalPickFileText {
199
+ title?: string;
200
+ description?: string;
201
+ camera?: ModalOption;
202
+ gallery?: ModalOption;
203
+ document?: ModalOption;
204
+ }
205
+
206
+ export interface ChangeLabelProps {
207
+ label?: string;
208
+ placeholder?: string;
209
+ }
210
+
211
+ type BaseInputFileProps = {
212
+ title?: string;
213
+ accept?: string[];
214
+ multiple?: boolean;
215
+ onChange?: (files: any) => void;
216
+ value?: any[];
217
+ modalPickFileText?: ModalPickFileText;
218
+ btnChooseFileText?: string;
219
+ modalDeleteText?: ModalOption & {
220
+ confirmBtn?: {
221
+ confirm?: string;
222
+ cancel?: string;
223
+ };
224
+ };
225
+ hasError?: boolean;
226
+ };
227
+
228
+ type DefaultVariantProps = BaseInputFileProps & {
229
+ variant?: 'default';
230
+ description?: string;
231
+ useChangeLabel?: boolean;
232
+ changeLableProps?: ChangeLabelProps;
233
+ hint?: string;
234
+ };
235
+
236
+ type SmallVariantProps = BaseInputFileProps & {
237
+ variant: 'small';
238
+ description?: never;
239
+ useChangeLabel?: never;
240
+ changeLableProps?: never;
241
+ hint?: never;
242
+ };
243
+
244
+ type InputFileProps = DefaultVariantProps | SmallVariantProps;
245
+ ```
246
+
247
+ ---
248
+
249
+ ### Variant Default
139
250
 
140
- - **Card input awal** → tombol pilih file + icon ilustrasi.
251
+ - **Card input awal** → tombol pilih file + icon ilustrasi + description + hint.
141
252
  - **Preview file** → menampilkan nama, ukuran, icon (atau thumbnail jika image).
253
+ - **Input label** (jika `useChangeLabel: true`) → input text untuk memberi nama dokumen.
142
254
  - **Aksi file**:
143
255
  - 🔄 Replace
144
256
  - ❌ Delete
145
257
  - 👁 Preview (buka dokumen dengan `viewDocument`)
146
258
 
259
+ ### Variant Small
260
+
261
+ - **Compact card** → tombol pilih file dengan tampilan lebih ringkas.
262
+ - **Preview file** → tampilan minimal tanpa label/hint tambahan.
263
+ - **Aksi file**: sama seperti variant default (replace, delete, preview).
264
+
147
265
  ---
148
266
 
149
267
  ## 🛠 Catatan
@@ -151,3 +269,6 @@ interface ChangeLabelProps {
151
269
  1. Pastikan permission kamera & storage sudah diatur (Android/iOS).
152
270
  2. File hasil picker akan memiliki property standar (`uri`, `type`, `name`, `size`).
153
271
  3. Untuk **multiple upload**, `value` berupa array file yang akan dikelola oleh parent.
272
+ 4. **Variant `small`** cocok untuk form yang membutuhkan tampilan compact tanpa deskripsi dan hint.
273
+ 5. **Variant `default`** cocok untuk form yang membutuhkan instruksi detail dan fitur labeling dokumen.
274
+ 6. TypeScript akan memberikan error compile-time jika props yang tidak sesuai variant digunakan.
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ import { Image, StyleSheet, View } from 'react-native';
4
+ import Button from "../../../Button/Button.js";
5
+ import Typography from "../../../Typography/Typography.js";
6
+ import Card from "../../../Ui/Card.js";
7
+ import Center from "../../../Ui/Center.js";
8
+ import Color from "../../../Color/Color.js";
9
+ import { spacing } from "../../../styles/spacing.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ export default function CardTrigger({
12
+ title,
13
+ description,
14
+ btnSelect,
15
+ onPress,
16
+ hint,
17
+ hasError
18
+ }) {
19
+ return /*#__PURE__*/_jsx(Card, {
20
+ style: styles.containerInput,
21
+ children: /*#__PURE__*/_jsxs(Center, {
22
+ style: styles.centerInput,
23
+ children: [/*#__PURE__*/_jsx(Image, {
24
+ source: require('../../assets/input-file.png')
25
+ }), /*#__PURE__*/_jsxs(View, {
26
+ style: spacing.gap[4],
27
+ children: [/*#__PURE__*/_jsx(Typography, {
28
+ variant: "t1",
29
+ weight: "semibold",
30
+ color: Color.gray[500],
31
+ center: true,
32
+ children: title
33
+ }), hint && /*#__PURE__*/_jsx(Typography, {
34
+ variant: "t3",
35
+ weight: "regular",
36
+ color: hasError ? Color.danger[500] : Color.gray[500],
37
+ center: true,
38
+ children: hint
39
+ }), /*#__PURE__*/_jsx(Typography, {
40
+ variant: "t3",
41
+ weight: "regular",
42
+ color: Color.gray[500],
43
+ children: description
44
+ })]
45
+ }), /*#__PURE__*/_jsx(Button, {
46
+ color: "primary",
47
+ title: btnSelect,
48
+ size: "small",
49
+ onPress: onPress
50
+ })]
51
+ })
52
+ });
53
+ }
54
+ const styles = StyleSheet.create({
55
+ wrapper: {
56
+ gap: 12
57
+ },
58
+ containerInput: {
59
+ borderStyle: 'dashed',
60
+ backgroundColor: Color.gray[50],
61
+ borderRadius: 16
62
+ },
63
+ centerInput: {
64
+ gap: 14
65
+ },
66
+ deleteFileContent: {
67
+ gap: 10
68
+ },
69
+ deleteFileCenter: {
70
+ alignItems: 'center',
71
+ gap: 4
72
+ },
73
+ previewWrapper: {
74
+ gap: 12
75
+ }
76
+ });
77
+ //# sourceMappingURL=CardTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Image","StyleSheet","View","Button","Typography","Card","Center","Color","spacing","jsx","_jsx","jsxs","_jsxs","CardTrigger","title","description","btnSelect","onPress","hint","hasError","style","styles","containerInput","children","centerInput","source","require","gap","variant","weight","color","gray","center","danger","size","create","wrapper","borderStyle","backgroundColor","borderRadius","deleteFileContent","deleteFileCenter","alignItems","previewWrapper"],"sourceRoot":"../../../../../src","sources":["Input/partials/InputFile/CardTrigger.tsx"],"mappings":";;AAAA,SAASA,KAAK,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACtD,OAAOC,MAAM,MAAM,2BAAwB;AAC3C,OAAOC,UAAU,MAAM,mCAAgC;AACvD,OAAOC,IAAI,MAAM,qBAAkB;AACnC,OAAOC,MAAM,MAAM,uBAAoB;AACvC,OAAOC,KAAK,MAAM,yBAAsB;AACxC,SAASC,OAAO,QAAQ,4BAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAWlD,eAAe,SAASC,WAAWA,CAAC;EAClCC,KAAK;EACLC,WAAW;EACXC,SAAS;EACTC,OAAO;EACPC,IAAI;EACJC;AACK,CAAC,EAAE;EACR,oBACET,IAAA,CAACL,IAAI;IAACe,KAAK,EAAEC,MAAM,CAACC,cAAe;IAAAC,QAAA,eACjCX,KAAA,CAACN,MAAM;MAACc,KAAK,EAAEC,MAAM,CAACG,WAAY;MAAAD,QAAA,gBAChCb,IAAA,CAACV,KAAK;QAACyB,MAAM,EAAEC,OAAO,CAAC,6BAA6B;MAAE,CAAE,CAAC,eACzDd,KAAA,CAACV,IAAI;QAACkB,KAAK,EAAEZ,OAAO,CAACmB,GAAG,CAAC,CAAC,CAAE;QAAAJ,QAAA,gBAC1Bb,IAAA,CAACN,UAAU;UACTwB,OAAO,EAAC,IAAI;UACZC,MAAM,EAAC,UAAU;UACjBC,KAAK,EAAEvB,KAAK,CAACwB,IAAI,CAAC,GAAG,CAAE;UACvBC,MAAM;UAAAT,QAAA,EAELT;QAAK,CACI,CAAC,EACZI,IAAI,iBACHR,IAAA,CAACN,UAAU;UACTwB,OAAO,EAAC,IAAI;UACZC,MAAM,EAAC,SAAS;UAChBC,KAAK,EAAEX,QAAQ,GAAGZ,KAAK,CAAC0B,MAAM,CAAC,GAAG,CAAC,GAAG1B,KAAK,CAACwB,IAAI,CAAC,GAAG,CAAE;UACtDC,MAAM;UAAAT,QAAA,EAELL;QAAI,CACK,CACb,eACDR,IAAA,CAACN,UAAU;UAACwB,OAAO,EAAC,IAAI;UAACC,MAAM,EAAC,SAAS;UAACC,KAAK,EAAEvB,KAAK,CAACwB,IAAI,CAAC,GAAG,CAAE;UAAAR,QAAA,EAC9DR;QAAW,CACF,CAAC;MAAA,CACT,CAAC,eACPL,IAAA,CAACP,MAAM;QACL2B,KAAK,EAAC,SAAS;QACfhB,KAAK,EAAEE,SAAU;QACjBkB,IAAI,EAAC,OAAO;QACZjB,OAAO,EAAEA;MAAQ,CAClB,CAAC;IAAA,CACI;EAAC,CACL,CAAC;AAEX;AAEA,MAAMI,MAAM,GAAGpB,UAAU,CAACkC,MAAM,CAAC;EAC/BC,OAAO,EAAE;IACPT,GAAG,EAAE;EACP,CAAC;EACDL,cAAc,EAAE;IACde,WAAW,EAAE,QAAQ;IACrBC,eAAe,EAAE/B,KAAK,CAACwB,IAAI,CAAC,EAAE,CAAC;IAC/BQ,YAAY,EAAE;EAChB,CAAC;EACDf,WAAW,EAAE;IACXG,GAAG,EAAE;EACP,CAAC;EACDa,iBAAiB,EAAE;IACjBb,GAAG,EAAE;EACP,CAAC;EACDc,gBAAgB,EAAE;IAChBC,UAAU,EAAE,QAAQ;IACpBf,GAAG,EAAE;EACP,CAAC;EAEDgB,cAAc,EAAE;IACdhB,GAAG,EAAE;EACP;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ import { Image, ScrollView, StyleSheet, TouchableOpacity, View } from 'react-native';
4
+ import Card from "../../../Ui/Card.js";
5
+ import Color from "../../../Color/Color.js";
6
+ import Typography from "../../../Typography/Typography.js";
7
+ import Button from "../../../Button/Button.js";
8
+ import { layouting } from "../../../styles/layouting.js";
9
+ import ItemPreview from "./ItemPreview.js";
10
+ import { spacing } from "../../../styles/spacing.js";
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ export default function CardTriggerSmall({
13
+ title = 'Upload File',
14
+ textButton = 'Choose File',
15
+ onChooseFile,
16
+ files,
17
+ onDelete,
18
+ onPreview,
19
+ onReplace
20
+ }) {
21
+ const Component = files?.length === 0 ? View : TouchableOpacity;
22
+ return /*#__PURE__*/_jsxs(View, {
23
+ style: [layouting.flex.row, spacing.gap[8]],
24
+ children: [/*#__PURE__*/_jsxs(Card, {
25
+ style: [styles.card, files.length === 0 ? layouting.flex.grow : {}],
26
+ backgroundColor: Color?.gray[50],
27
+ borderColor: Color?.gray[200],
28
+ children: [/*#__PURE__*/_jsxs(Component, {
29
+ style: [styles.titleWrapper, files.length > 0 ? layouting.flex.col : {}, files.length > 0 ? spacing.gap[6] : {}],
30
+ ...(files?.length > 0 && {
31
+ onPress: onChooseFile
32
+ }),
33
+ children: [/*#__PURE__*/_jsx(Image, {
34
+ source: require('../../assets/input-file.png'),
35
+ style: files?.length === 0 ? styles.image : styles.imageSmall
36
+ }), /*#__PURE__*/_jsx(Typography, {
37
+ variant: files?.length === 0 ? 't1' : 't3',
38
+ weight: files?.length === 0 ? 'semibold' : 'regular',
39
+ color: Color.gray[600],
40
+ children: title
41
+ })]
42
+ }), files.length === 0 && /*#__PURE__*/_jsx(Button, {
43
+ title: textButton,
44
+ color: "primary",
45
+ size: "small",
46
+ onPress: onChooseFile
47
+ })]
48
+ }), files.length > 0 && /*#__PURE__*/_jsx(ScrollView, {
49
+ style: [layouting.flex[1]],
50
+ contentContainerStyle: [spacing.gap[8], layouting.align.center],
51
+ horizontal: true,
52
+ children: files.map((file, index) => /*#__PURE__*/_jsx(ItemPreview, {
53
+ variant: "small",
54
+ index: index,
55
+ file: file,
56
+ onPress: () => onPreview?.(file),
57
+ onDelete: () => onDelete?.(index),
58
+ onReplace: () => onReplace?.(index)
59
+ }, index))
60
+ })]
61
+ });
62
+ }
63
+ const styles = StyleSheet.create({
64
+ card: {
65
+ borderStyle: 'dashed',
66
+ flexDirection: 'row',
67
+ alignItems: 'center',
68
+ justifyContent: 'space-between',
69
+ gap: 8
70
+ },
71
+ titleWrapper: {
72
+ flexDirection: 'row',
73
+ alignItems: 'center',
74
+ gap: 8,
75
+ flexShrink: 1
76
+ },
77
+ image: {
78
+ width: 48,
79
+ height: 48
80
+ },
81
+ imageSmall: {
82
+ width: 28,
83
+ height: 28
84
+ }
85
+ });
86
+ //# sourceMappingURL=CardTriggerSmall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Image","ScrollView","StyleSheet","TouchableOpacity","View","Card","Color","Typography","Button","layouting","ItemPreview","spacing","jsx","_jsx","jsxs","_jsxs","CardTriggerSmall","title","textButton","onChooseFile","files","onDelete","onPreview","onReplace","Component","length","style","flex","row","gap","children","styles","card","grow","backgroundColor","gray","borderColor","titleWrapper","col","onPress","source","require","image","imageSmall","variant","weight","color","size","contentContainerStyle","align","center","horizontal","map","file","index","create","borderStyle","flexDirection","alignItems","justifyContent","flexShrink","width","height"],"sourceRoot":"../../../../../src","sources":["Input/partials/InputFile/CardTriggerSmall.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ import { StyleSheet, TouchableOpacity, View } from 'react-native';
4
+ import Icon from "../../../Icon/index.js";
5
+ import Typography from "../../../Typography/Typography.js";
6
+ import Color from "../../../Color/Color.js";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ export default function ItemPicker({
9
+ title,
10
+ description,
11
+ icon,
12
+ ...props
13
+ }) {
14
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
15
+ ...props,
16
+ children: /*#__PURE__*/_jsxs(View, {
17
+ style: styles.containerListItem,
18
+ children: [/*#__PURE__*/_jsx(Icon, {
19
+ name: icon,
20
+ color: Color.primary[1000]
21
+ }), /*#__PURE__*/_jsxs(View, {
22
+ children: [/*#__PURE__*/_jsx(Typography, {
23
+ variant: "t2",
24
+ weight: "semibold",
25
+ color: Color.gray[800],
26
+ children: title
27
+ }), /*#__PURE__*/_jsx(Typography, {
28
+ variant: "t2",
29
+ color: Color.gray[600],
30
+ children: description
31
+ })]
32
+ })]
33
+ })
34
+ });
35
+ }
36
+ const styles = StyleSheet.create({
37
+ containerListItem: {
38
+ flexDirection: 'row',
39
+ gap: 8,
40
+ alignItems: 'center'
41
+ }
42
+ });
43
+ //# sourceMappingURL=ItemPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StyleSheet","TouchableOpacity","View","Icon","Typography","Color","jsx","_jsx","jsxs","_jsxs","ItemPicker","title","description","icon","props","children","style","styles","containerListItem","name","color","primary","variant","weight","gray","create","flexDirection","gap","alignItems"],"sourceRoot":"../../../../../src","sources":["Input/partials/InputFile/ItemPicker.tsx"],"mappings":";;AAAA,SACEA,UAAU,EACVC,gBAAgB,EAChBC,IAAI,QAEC,cAAc;AACrB,OAAOC,IAAI,MAA8B,wBAAe;AACxD,OAAOC,UAAU,MAAM,mCAAgC;AACvD,OAAOC,KAAK,MAAM,yBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQzC,eAAe,SAASC,UAAUA,CAAC;EACjCC,KAAK;EACLC,WAAW;EACXC,IAAI;EACJ,GAAGC;AACE,CAAC,EAAE;EACR,oBACEP,IAAA,CAACN,gBAAgB;IAAA,GAAKa,KAAK;IAAAC,QAAA,eACzBN,KAAA,CAACP,IAAI;MAACc,KAAK,EAAEC,MAAM,CAACC,iBAAkB;MAAAH,QAAA,gBACpCR,IAAA,CAACJ,IAAI;QAACgB,IAAI,EAAEN,IAAK;QAACO,KAAK,EAAEf,KAAK,CAACgB,OAAO,CAAC,IAAI;MAAE,CAAE,CAAC,eAChDZ,KAAA,CAACP,IAAI;QAAAa,QAAA,gBACHR,IAAA,CAACH,UAAU;UAACkB,OAAO,EAAC,IAAI;UAACC,MAAM,EAAC,UAAU;UAACH,KAAK,EAAEf,KAAK,CAACmB,IAAI,CAAC,GAAG,CAAE;UAAAT,QAAA,EAC/DJ;QAAK,CACI,CAAC,eACbJ,IAAA,CAACH,UAAU;UAACkB,OAAO,EAAC,IAAI;UAACF,KAAK,EAAEf,KAAK,CAACmB,IAAI,CAAC,GAAG,CAAE;UAAAT,QAAA,EAC7CH;QAAW,CACF,CAAC;MAAA,CACT,CAAC;IAAA,CACH;EAAC,CACS,CAAC;AAEvB;AAEA,MAAMK,MAAM,GAAGjB,UAAU,CAACyB,MAAM,CAAC;EAC/BP,iBAAiB,EAAE;IACjBQ,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAE,CAAC;IACNC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+
3
+ import { Image, StyleSheet, TouchableOpacity, View } from 'react-native';
4
+ import Card from "../../../Ui/Card.js";
5
+ import Color from "../../../Color/Color.js";
6
+ import Typography from "../../../Typography/Typography.js";
7
+ import Icon from "../../../Icon/index.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export default function ItemPreview({
10
+ file,
11
+ onPress,
12
+ index,
13
+ onDelete,
14
+ onReplace,
15
+ variant = 'default'
16
+ }) {
17
+ const Wrapper = variant === 'default' ? Card : View;
18
+ return /*#__PURE__*/_jsx(Wrapper, {
19
+ children: /*#__PURE__*/_jsxs(TouchableOpacity, {
20
+ onPress: onPress,
21
+ style: styles.containerPreview,
22
+ activeOpacity: 0.7,
23
+ children: [/*#__PURE__*/_jsxs(View, {
24
+ style: styles.containerListItem,
25
+ children: [file.type.startsWith('image') && /*#__PURE__*/_jsxs(View, {
26
+ style: (variant === 'small' ? styles.previewImageSmall : {}, variant === 'small' && file.error ? styles.previewImageError : {}),
27
+ children: [variant === 'small' && /*#__PURE__*/_jsx(BtnIcon, {
28
+ onPress: () => onDelete(index)
29
+ }), /*#__PURE__*/_jsx(Image, {
30
+ source: {
31
+ uri: file.uri
32
+ },
33
+ style: styles.previewImage
34
+ })]
35
+ }), !file.type.startsWith('image') && /*#__PURE__*/_jsxs(View, {
36
+ style: [styles.previewImage, variant === 'small' ? styles.previewImageSmall : {}, variant === 'small' && file.error ? styles.previewImageError : {}],
37
+ children: [variant === 'small' && /*#__PURE__*/_jsx(BtnIcon, {
38
+ onPress: () => onDelete(index)
39
+ }), /*#__PURE__*/_jsx(Icon, {
40
+ name: file.type === 'application/pdf' ? 'pdf-file' : 'Document',
41
+ size: file.type === 'application/pdf' ? 32 : 24,
42
+ color: Color.primary[1000]
43
+ })]
44
+ }), variant === 'default' && /*#__PURE__*/_jsxs(View, {
45
+ style: styles.fileDetails,
46
+ children: [/*#__PURE__*/_jsx(Typography, {
47
+ variant: "t1",
48
+ weight: "semibold",
49
+ color: Color.gray[600],
50
+ numberOfLines: 1,
51
+ children: file.name || `Image_${index + 1}`
52
+ }), /*#__PURE__*/_jsxs(Typography, {
53
+ variant: "t2",
54
+ weight: "regular",
55
+ color: Color.gray[600],
56
+ children: [((file?.size ?? file?.fileSize ?? 0) / (1024 * 1024)).toFixed(2), "MB"]
57
+ })]
58
+ })]
59
+ }), variant === 'default' && /*#__PURE__*/_jsxs(View, {
60
+ style: styles.action,
61
+ children: [file.error && /*#__PURE__*/_jsx(Icon, {
62
+ name: "exclamation-triangle",
63
+ color: Color.danger[500],
64
+ size: 20
65
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
66
+ onPress: () => onReplace(index),
67
+ children: /*#__PURE__*/_jsx(Icon, {
68
+ name: "rotate-right",
69
+ size: 18,
70
+ color: Color.gray[700]
71
+ })
72
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
73
+ onPress: () => onDelete(index),
74
+ children: /*#__PURE__*/_jsx(Icon, {
75
+ name: "Times",
76
+ size: 12,
77
+ color: Color.gray[700]
78
+ })
79
+ })]
80
+ })]
81
+ })
82
+ });
83
+ }
84
+ const BtnIcon = ({
85
+ onPress
86
+ }) => {
87
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
88
+ style: styles.actionDelete,
89
+ onPress: onPress,
90
+ activeOpacity: 0.7,
91
+ children: /*#__PURE__*/_jsx(Icon, {
92
+ name: "times-new",
93
+ color: "white",
94
+ size: 15
95
+ })
96
+ });
97
+ };
98
+ const styles = StyleSheet.create({
99
+ containerListItem: {
100
+ flexDirection: 'row',
101
+ alignItems: 'center',
102
+ gap: 8,
103
+ flex: 1
104
+ },
105
+ previewImage: {
106
+ width: 48,
107
+ height: 48,
108
+ borderRadius: 6,
109
+ alignItems: 'center',
110
+ justifyContent: 'center'
111
+ },
112
+ containerPreview: {
113
+ flexDirection: 'row',
114
+ justifyContent: 'space-between',
115
+ alignItems: 'center',
116
+ gap: 8
117
+ },
118
+ fileDetails: {
119
+ justifyContent: 'center',
120
+ gap: 4,
121
+ flex: 1
122
+ },
123
+ action: {
124
+ flexDirection: 'row',
125
+ alignItems: 'center',
126
+ gap: 12,
127
+ flexShrink: 0
128
+ },
129
+ // small
130
+ previewImageSmall: {
131
+ borderWidth: 1,
132
+ borderColor: Color.gray[200],
133
+ borderRadius: 6,
134
+ position: 'relative'
135
+ },
136
+ previewImageError: {
137
+ borderColor: Color.danger[500]
138
+ },
139
+ actionDelete: {
140
+ position: 'absolute',
141
+ top: 1.5,
142
+ right: 1.5,
143
+ backgroundColor: Color.primary[1000],
144
+ zIndex: 1,
145
+ padding: 2,
146
+ borderRadius: 10
147
+ }
148
+ });
149
+ //# sourceMappingURL=ItemPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Image","StyleSheet","TouchableOpacity","View","Card","Color","Typography","Icon","jsx","_jsx","jsxs","_jsxs","ItemPreview","file","onPress","index","onDelete","onReplace","variant","Wrapper","children","style","styles","containerPreview","activeOpacity","containerListItem","type","startsWith","previewImageSmall","error","previewImageError","BtnIcon","source","uri","previewImage","name","size","color","primary","fileDetails","weight","gray","numberOfLines","fileSize","toFixed","action","danger","actionDelete","create","flexDirection","alignItems","gap","flex","width","height","borderRadius","justifyContent","flexShrink","borderWidth","borderColor","position","top","right","backgroundColor","zIndex","padding"],"sourceRoot":"../../../../../src","sources":["Input/partials/InputFile/ItemPreview.tsx"],"mappings":"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","ignoreList":[]}