@arkyn/components 3.0.1-beta.143 → 3.0.1-beta.145

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 (207) hide show
  1. package/dist/bundle.js +1 -1
  2. package/dist/components/alert/alertContainer/index.d.ts +27 -43
  3. package/dist/components/alert/alertContainer/index.d.ts.map +1 -1
  4. package/dist/components/alert/alertContainer/index.js +20 -40
  5. package/dist/components/alert/alertContent/index.d.ts +11 -36
  6. package/dist/components/alert/alertContent/index.d.ts.map +1 -1
  7. package/dist/components/alert/alertContent/index.js +11 -31
  8. package/dist/components/alert/alertDescription/index.d.ts +10 -38
  9. package/dist/components/alert/alertDescription/index.d.ts.map +1 -1
  10. package/dist/components/alert/alertDescription/index.js +10 -33
  11. package/dist/components/alert/alertIcon/index.d.ts +14 -38
  12. package/dist/components/alert/alertIcon/index.d.ts.map +1 -1
  13. package/dist/components/alert/alertIcon/index.js +14 -32
  14. package/dist/components/alert/alertTitle/index.d.ts +12 -35
  15. package/dist/components/alert/alertTitle/index.d.ts.map +1 -1
  16. package/dist/components/alert/alertTitle/index.js +12 -27
  17. package/dist/components/audioPlayer/index.d.ts +24 -32
  18. package/dist/components/audioPlayer/index.d.ts.map +1 -1
  19. package/dist/components/audioPlayer/index.js +15 -18
  20. package/dist/components/audioUpload/index.d.ts +37 -48
  21. package/dist/components/audioUpload/index.d.ts.map +1 -1
  22. package/dist/components/audioUpload/index.js +23 -48
  23. package/dist/components/badge/index.d.ts +31 -22
  24. package/dist/components/badge/index.d.ts.map +1 -1
  25. package/dist/components/badge/index.js +14 -22
  26. package/dist/components/button/index.d.ts +38 -28
  27. package/dist/components/button/index.d.ts.map +1 -1
  28. package/dist/components/button/index.js +18 -28
  29. package/dist/components/cardTab/cardTabButton/index.d.ts +14 -52
  30. package/dist/components/cardTab/cardTabButton/index.d.ts.map +1 -1
  31. package/dist/components/cardTab/cardTabButton/index.js +12 -52
  32. package/dist/components/cardTab/cardTabContainer/index.d.ts +16 -58
  33. package/dist/components/cardTab/cardTabContainer/index.d.ts.map +1 -1
  34. package/dist/components/cardTab/cardTabContainer/index.js +12 -58
  35. package/dist/components/checkbox/index.d.ts +38 -37
  36. package/dist/components/checkbox/index.d.ts.map +1 -1
  37. package/dist/components/checkbox/index.js +21 -37
  38. package/dist/components/clientOnly.d.ts +13 -66
  39. package/dist/components/clientOnly.d.ts.map +1 -1
  40. package/dist/components/clientOnly.js +11 -66
  41. package/dist/components/currencyInput/index.d.ts +67 -50
  42. package/dist/components/currencyInput/index.d.ts.map +1 -1
  43. package/dist/components/currencyInput/index.js +28 -50
  44. package/dist/components/divider/index.d.ts +12 -25
  45. package/dist/components/divider/index.d.ts.map +1 -1
  46. package/dist/components/divider/index.js +8 -25
  47. package/dist/components/drawer/drawerContainer/index.d.ts +16 -50
  48. package/dist/components/drawer/drawerContainer/index.d.ts.map +1 -1
  49. package/dist/components/drawer/drawerContainer/index.js +13 -50
  50. package/dist/components/drawer/drawerHeader/index.d.ts +9 -33
  51. package/dist/components/drawer/drawerHeader/index.d.ts.map +1 -1
  52. package/dist/components/drawer/drawerHeader/index.js +8 -33
  53. package/dist/components/facebookPixel/index.d.ts +47 -0
  54. package/dist/components/facebookPixel/index.d.ts.map +1 -1
  55. package/dist/components/facebookPixel/index.js +35 -0
  56. package/dist/components/fieldError/index.d.ts +4 -11
  57. package/dist/components/fieldError/index.d.ts.map +1 -1
  58. package/dist/components/fieldError/index.js +4 -11
  59. package/dist/components/fieldLabel/index.d.ts +6 -21
  60. package/dist/components/fieldLabel/index.d.ts.map +1 -1
  61. package/dist/components/fieldLabel/index.js +5 -21
  62. package/dist/components/fieldWrapper/index.d.ts +12 -22
  63. package/dist/components/fieldWrapper/index.d.ts.map +1 -1
  64. package/dist/components/fieldWrapper/index.js +7 -22
  65. package/dist/components/fileUpload/index.d.ts +36 -61
  66. package/dist/components/fileUpload/index.d.ts.map +1 -1
  67. package/dist/components/fileUpload/index.js +23 -61
  68. package/dist/components/googleAnalytics/index.d.ts +11 -7
  69. package/dist/components/googleAnalytics/index.d.ts.map +1 -1
  70. package/dist/components/googleAnalytics/index.js +9 -7
  71. package/dist/components/googleTagManager/index.d.ts +27 -21
  72. package/dist/components/googleTagManager/index.d.ts.map +1 -1
  73. package/dist/components/googleTagManager/index.js +20 -21
  74. package/dist/components/iconButton/index.d.ts +31 -15
  75. package/dist/components/iconButton/index.d.ts.map +1 -1
  76. package/dist/components/iconButton/index.js +12 -15
  77. package/dist/components/imageUpload/index.d.ts +47 -75
  78. package/dist/components/imageUpload/index.d.ts.map +1 -1
  79. package/dist/components/imageUpload/index.js +27 -75
  80. package/dist/components/input/index.d.ts +51 -44
  81. package/dist/components/input/index.d.ts.map +1 -1
  82. package/dist/components/input/index.js +24 -44
  83. package/dist/components/mapView/index.d.ts +44 -0
  84. package/dist/components/mapView/index.d.ts.map +1 -1
  85. package/dist/components/mapView/index.js +35 -0
  86. package/dist/components/maskedInput/index.d.ts +66 -51
  87. package/dist/components/maskedInput/index.d.ts.map +1 -1
  88. package/dist/components/maskedInput/index.js +28 -51
  89. package/dist/components/modal/modalContainer/index.d.ts +17 -57
  90. package/dist/components/modal/modalContainer/index.d.ts.map +1 -1
  91. package/dist/components/modal/modalContainer/index.js +15 -57
  92. package/dist/components/modal/modalFooter/index.d.ts +17 -50
  93. package/dist/components/modal/modalFooter/index.d.ts.map +1 -1
  94. package/dist/components/modal/modalFooter/index.js +10 -50
  95. package/dist/components/modal/modalHeader/index.d.ts +13 -47
  96. package/dist/components/modal/modalHeader/index.d.ts.map +1 -1
  97. package/dist/components/modal/modalHeader/index.js +12 -47
  98. package/dist/components/multiSelect/index.d.ts +67 -62
  99. package/dist/components/multiSelect/index.d.ts.map +1 -1
  100. package/dist/components/multiSelect/index.js +28 -62
  101. package/dist/components/pagination/index.d.ts +18 -9
  102. package/dist/components/pagination/index.d.ts.map +1 -1
  103. package/dist/components/pagination/index.js +18 -9
  104. package/dist/components/phoneInput/index.d.ts +65 -30
  105. package/dist/components/phoneInput/index.d.ts.map +1 -1
  106. package/dist/components/phoneInput/index.js +36 -31
  107. package/dist/components/popover/index.d.ts +34 -114
  108. package/dist/components/popover/index.d.ts.map +1 -1
  109. package/dist/components/popover/index.js +25 -114
  110. package/dist/components/radio/radioBox/index.d.ts +17 -65
  111. package/dist/components/radio/radioBox/index.d.ts.map +1 -1
  112. package/dist/components/radio/radioBox/index.js +14 -65
  113. package/dist/components/radio/radioGroup/index.d.ts +36 -67
  114. package/dist/components/radio/radioGroup/index.d.ts.map +1 -1
  115. package/dist/components/radio/radioGroup/index.js +25 -67
  116. package/dist/components/richText/index.d.ts +33 -47
  117. package/dist/components/richText/index.d.ts.map +1 -1
  118. package/dist/components/richText/index.js +30 -44
  119. package/dist/components/searchPlaces.d.ts +52 -50
  120. package/dist/components/searchPlaces.d.ts.map +1 -1
  121. package/dist/components/searchPlaces.js +23 -30
  122. package/dist/components/select/index.d.ts +68 -63
  123. package/dist/components/select/index.d.ts.map +1 -1
  124. package/dist/components/select/index.js +29 -63
  125. package/dist/components/slider/index.d.ts +20 -34
  126. package/dist/components/slider/index.d.ts.map +1 -1
  127. package/dist/components/slider/index.js +15 -33
  128. package/dist/components/switch/index.d.ts +42 -58
  129. package/dist/components/switch/index.d.ts.map +1 -1
  130. package/dist/components/switch/index.js +24 -58
  131. package/dist/components/tab/tabButton/index.d.ts +14 -52
  132. package/dist/components/tab/tabButton/index.d.ts.map +1 -1
  133. package/dist/components/tab/tabButton/index.js +12 -52
  134. package/dist/components/tab/tabContainer/index.d.ts +16 -58
  135. package/dist/components/tab/tabContainer/index.d.ts.map +1 -1
  136. package/dist/components/tab/tabContainer/index.js +12 -58
  137. package/dist/components/table/tableBody/index.d.ts +13 -47
  138. package/dist/components/table/tableBody/index.d.ts.map +1 -1
  139. package/dist/components/table/tableBody/index.js +12 -47
  140. package/dist/components/table/tableCaption/index.d.ts +6 -46
  141. package/dist/components/table/tableCaption/index.d.ts.map +1 -1
  142. package/dist/components/table/tableCaption/index.js +6 -46
  143. package/dist/components/table/tableContainer/index.d.ts +12 -41
  144. package/dist/components/table/tableContainer/index.d.ts.map +1 -1
  145. package/dist/components/table/tableContainer/index.js +12 -41
  146. package/dist/components/table/tableFooter/index.d.ts +5 -29
  147. package/dist/components/table/tableFooter/index.d.ts.map +1 -1
  148. package/dist/components/table/tableFooter/index.js +5 -29
  149. package/dist/components/table/tableHeader/index.d.ts +4 -25
  150. package/dist/components/table/tableHeader/index.d.ts.map +1 -1
  151. package/dist/components/table/tableHeader/index.js +4 -25
  152. package/dist/components/textarea/index.d.ts +32 -64
  153. package/dist/components/textarea/index.d.ts.map +1 -1
  154. package/dist/components/textarea/index.js +16 -64
  155. package/dist/components/tooltip/index.d.ts +27 -55
  156. package/dist/components/tooltip/index.d.ts.map +1 -1
  157. package/dist/components/tooltip/index.js +16 -55
  158. package/dist/hooks/useAutomation.d.ts +18 -26
  159. package/dist/hooks/useAutomation.d.ts.map +1 -1
  160. package/dist/hooks/useAutomation.js +18 -26
  161. package/dist/hooks/useDrawer.d.ts +19 -64
  162. package/dist/hooks/useDrawer.d.ts.map +1 -1
  163. package/dist/hooks/useForm.d.ts +12 -29
  164. package/dist/hooks/useForm.d.ts.map +1 -1
  165. package/dist/hooks/useForm.js +12 -29
  166. package/dist/hooks/useHydrated.d.ts +8 -63
  167. package/dist/hooks/useHydrated.d.ts.map +1 -1
  168. package/dist/hooks/useHydrated.js +8 -63
  169. package/dist/hooks/useModal.d.ts +19 -59
  170. package/dist/hooks/useModal.d.ts.map +1 -1
  171. package/dist/hooks/useScopedParams.d.ts +17 -69
  172. package/dist/hooks/useScopedParams.d.ts.map +1 -1
  173. package/dist/hooks/useScopedParams.js +17 -69
  174. package/dist/hooks/useScrollLock.d.ts +11 -27
  175. package/dist/hooks/useScrollLock.d.ts.map +1 -1
  176. package/dist/hooks/useScrollLock.js +11 -33
  177. package/dist/hooks/useSearchAutomation.d.ts +16 -34
  178. package/dist/hooks/useSearchAutomation.d.ts.map +1 -1
  179. package/dist/hooks/useSearchAutomation.js +16 -34
  180. package/dist/hooks/useSlider.d.ts +5 -19
  181. package/dist/hooks/useSlider.d.ts.map +1 -1
  182. package/dist/hooks/useSlider.js +5 -19
  183. package/dist/hooks/useToast.d.ts +8 -52
  184. package/dist/hooks/useToast.d.ts.map +1 -1
  185. package/dist/hooks/useToast.js +8 -52
  186. package/dist/providers/drawerProvider.d.ts +15 -81
  187. package/dist/providers/drawerProvider.d.ts.map +1 -1
  188. package/dist/providers/drawerProvider.js +15 -81
  189. package/dist/providers/formProvider.d.ts +17 -53
  190. package/dist/providers/formProvider.d.ts.map +1 -1
  191. package/dist/providers/formProvider.js +17 -53
  192. package/dist/providers/modalProvider.d.ts +16 -77
  193. package/dist/providers/modalProvider.d.ts.map +1 -1
  194. package/dist/providers/modalProvider.js +16 -77
  195. package/dist/providers/placesProvider.d.ts +16 -11
  196. package/dist/providers/placesProvider.d.ts.map +1 -1
  197. package/dist/providers/placesProvider.js +16 -11
  198. package/dist/providers/toastProvider.d.ts +10 -21
  199. package/dist/providers/toastProvider.d.ts.map +1 -1
  200. package/dist/providers/toastProvider.js +10 -21
  201. package/dist/services/toHtml.d.ts +11 -10
  202. package/dist/services/toHtml.d.ts.map +1 -1
  203. package/dist/services/toHtml.js +11 -10
  204. package/dist/services/toRichTextValue.d.ts +11 -17
  205. package/dist/services/toRichTextValue.d.ts.map +1 -1
  206. package/dist/services/toRichTextValue.js +11 -17
  207. package/package.json +1 -1
@@ -1,36 +1,21 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import "./styles.css";
3
3
  /**
4
- * FieldWrapper component - used as a container wrapper for a single form field and its related elements
4
+ * FieldWrapper `<section>` container that groups a form field with its label and error message.
5
5
  *
6
- * @param props - FieldWrapper component properties
7
- * @param props.children - React elements that compose a single field (label, input, error message, etc.)
8
- * @param props.orientation - Orientation of the field wrapper. Default: "vertical"
6
+ * @param props.children - Field elements (label, input, error, etc.).
7
+ * @param props.orientation - Layout direction. Default: "vertical"
9
8
  *
10
- * **...Other valid HTML properties for section element**
9
+ * **...Other valid HTML properties for `<section>`**
11
10
  *
12
- * @returns FieldWrapper JSX element
11
+ * @returns FieldWrapper JSX element.
13
12
  *
14
13
  * @example
15
14
  * ```tsx
16
- * // Basic field container
17
15
  * <FieldWrapper>
18
- * <FieldLabel>Username</FieldLabel>
19
- * <Input name="username" />
20
- * <FieldError>This field is required</FieldError>
21
- * </FieldWrapper>
22
- *
23
- * // Field container with custom styling
24
- * <FieldWrapper className="custom-spacing">
25
- * <FieldLabel>Email</FieldLabel>
16
+ * <FieldLabel showAsterisk>Email</FieldLabel>
26
17
  * <Input name="email" type="email" />
27
- * </FieldWrapper>
28
- *
29
- * // Complete field with all elements
30
- * <FieldWrapper>
31
- * <FieldLabel showAsterisk>Password</FieldLabel>
32
- * <Input name="password" type="password" />
33
- * <FieldError>Password must be at least 8 characters</FieldError>
18
+ * <FieldError>Invalid email address</FieldError>
34
19
  * </FieldWrapper>
35
20
  * ```
36
21
  */
@@ -1,91 +1,66 @@
1
1
  import "./styles.css";
2
2
  type FileUploadProps = {
3
+ /** Field name for form submission (stores the uploaded file URL). Required. */
3
4
  name: string;
5
+ /** Server endpoint URL that receives the `multipart/form-data` upload request. Required. */
4
6
  action: string;
7
+ /** Disables file selection and upload. @default false */
5
8
  disabled?: boolean;
9
+ /** Optional label text displayed above the upload area. */
6
10
  label?: string;
11
+ /** Displays an asterisk on the label to signal a required field. @default false */
7
12
  showAsterisk?: boolean;
13
+ /** Label for the file-picker button after a file is selected. @default "Alterar arquivo" */
8
14
  changeFileButtonText?: string;
15
+ /** Label for the file-picker button before a file is selected. @default "Selecionar arquivo" */
9
16
  selectFileButtonText?: string;
17
+ /** Text displayed in the drag-and-drop zone. @default "Ou arraste e solte o arquivo aqui" */
10
18
  dropFileText?: string;
19
+ /** HTTP method for the upload request. @default "POST" */
11
20
  method?: string;
21
+ /** Form-data field name used for the file. @default "file" */
12
22
  fileName?: string;
23
+ /** Property name in the server response that contains the file URL. @default "url" */
13
24
  fileResponseName?: string;
25
+ /** Accepted file MIME types or extensions (e.g. `".pdf"`, `"image/*"`). @default "*" */
14
26
  acceptFile?: string;
27
+ /** Callback fired after a successful upload. Receives the URL returned by the server. */
15
28
  onChange?: (url?: string) => void;
16
29
  };
17
30
  /**
18
- * FileUpload component - used for uploading files with drag and drop functionality
31
+ * FileUpload drag-and-drop file uploader with server upload and file-name preview.
19
32
  *
20
- * @param props - FileUpload component properties
21
- * @param props.name - Required field name for form handling
22
- * @param props.action - Required endpoint URL where the file will be uploaded
23
- * @param props.disabled - Whether the file upload is disabled. Default: false
24
- * @param props.label - Optional label text to display above the file upload area
25
- * @param props.showAsterisk - Whether to show asterisk on label for required fields. Default: false
26
- * @param props.changeFileButtonText - Text for the button to change/replace an uploaded file. Default: "Alterar arquivo"
27
- * @param props.selectFileButtonText - Text for the button to select a file. Default: "Selecionar arquivo"
28
- * @param props.dropFileText - Text displayed in the drop zone area. Default: "Ou arraste e solte o arquivo aqui"
29
- * @param props.method - HTTP method for the upload request. Default: "POST"
30
- * @param props.fileName - Form data field name for the file. Default: "file"
31
- * @param props.fileResponseName - Property name in the response object containing the file URL. Default: "url"
32
- * @param props.acceptFile - File types accepted by the input (e.g., "image/*", ".pdf"). Default: "*"
33
- * @param props.onChange - Callback function called when file upload completes successfully, receives the file URL
33
+ * Sends the file via `fetch` as `multipart/form-data` and stores the returned URL
34
+ * in a hidden `<input>` for form submission.
35
+ * Integrates with `useForm` to display validation errors by field name.
34
36
  *
35
- * @returns FileUpload JSX element wrapped in FieldGroup with optional label and error handling
37
+ * @param props.name - Field name for form submission. Required.
38
+ * @param props.action - Upload endpoint URL. Required.
39
+ * @param props.disabled - Disables file selection and upload. Default: false
40
+ * @param props.label - Label text displayed above the upload area.
41
+ * @param props.showAsterisk - Appends `*` to the label. Default: false
42
+ * @param props.acceptFile - Accepted MIME types or extensions. Default: "*"
43
+ * @param props.method - HTTP method. Default: "POST"
44
+ * @param props.fileName - Form-data field name for the file. Default: "file"
45
+ * @param props.fileResponseName - Server response property containing the URL. Default: "url"
46
+ * @param props.onChange - Callback fired after a successful upload — receives the file URL.
47
+ *
48
+ * @returns FileUpload JSX element wrapped in `FieldWrapper`.
36
49
  *
37
50
  * @example
38
51
  * ```tsx
39
- * // Basic file upload
40
- * <FileUpload
41
- * name="document"
42
- * action="/api/upload"
43
- * />
52
+ * // Basic
53
+ * <FileUpload name="document" action="/api/upload" />
44
54
  *
45
- * // File upload with label and custom text
55
+ * // PDF only with label and callback
46
56
  * <FileUpload
47
- * name="avatar"
48
- * action="/api/upload/avatar"
49
- * label="Profile Picture"
57
+ * name="contract"
58
+ * action="/api/upload/docs"
59
+ * label="Contract (PDF)"
50
60
  * showAsterisk
51
- * selectFileButtonText="Choose Image"
52
- * changeFileButtonText="Change Image"
53
- * dropFileText="Drop your image here"
54
- * />
55
- *
56
- * // File upload with restrictions and callback
57
- * <FileUpload
58
- * name="pdf"
59
- * action="/api/upload/document"
60
- * label="Upload PDF Document"
61
61
  * acceptFile=".pdf"
62
- * fileName="document"
63
62
  * fileResponseName="documentUrl"
64
- * onChange={(url) => console.log('File uploaded:', url)}
65
- * />
66
- *
67
- * // Disabled file upload
68
- * <FileUpload
69
- * name="attachment"
70
- * action="/api/upload"
71
- * label="Attachment"
72
- * disabled
73
- * />
74
- *
75
- * // File upload with custom HTTP method and response handling
76
- * <FileUpload
77
- * name="file"
78
- * action="/api/files"
79
- * method="PUT"
80
- * fileName="uploadedFile"
81
- * fileResponseName="fileUrl"
82
- * label="Custom Upload"
83
- * onChange={(url) => {
84
- * if (url) {
85
- * setFileUrl(url);
86
- * console.log('Upload successful:', url);
87
- * }
88
- * }}
63
+ * onChange={(url) => setContractUrl(url)}
89
64
  * />
90
65
  * ```
91
66
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/fileUpload/index.tsx"],"names":[],"mappings":"AASA,OAAO,cAAc,CAAC;AAEtB,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AAEH,iBAAS,UAAU,CAAC,KAAK,EAAE,eAAe,2CAgGzC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/fileUpload/index.tsx"],"names":[],"mappings":"AASA,OAAO,cAAc,CAAC;AAEtB,KAAK,eAAe,GAAG;IACrB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gGAAgG;IAChG,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,iBAAS,UAAU,CAAC,KAAK,EAAE,eAAe,2CAgGzC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -8,77 +8,39 @@ import { HasFileContent } from "./hasFileContent";
8
8
  import { NoFileContent } from "./noFileContent";
9
9
  import "./styles.css";
10
10
  /**
11
- * FileUpload component - used for uploading files with drag and drop functionality
11
+ * FileUpload drag-and-drop file uploader with server upload and file-name preview.
12
12
  *
13
- * @param props - FileUpload component properties
14
- * @param props.name - Required field name for form handling
15
- * @param props.action - Required endpoint URL where the file will be uploaded
16
- * @param props.disabled - Whether the file upload is disabled. Default: false
17
- * @param props.label - Optional label text to display above the file upload area
18
- * @param props.showAsterisk - Whether to show asterisk on label for required fields. Default: false
19
- * @param props.changeFileButtonText - Text for the button to change/replace an uploaded file. Default: "Alterar arquivo"
20
- * @param props.selectFileButtonText - Text for the button to select a file. Default: "Selecionar arquivo"
21
- * @param props.dropFileText - Text displayed in the drop zone area. Default: "Ou arraste e solte o arquivo aqui"
22
- * @param props.method - HTTP method for the upload request. Default: "POST"
23
- * @param props.fileName - Form data field name for the file. Default: "file"
24
- * @param props.fileResponseName - Property name in the response object containing the file URL. Default: "url"
25
- * @param props.acceptFile - File types accepted by the input (e.g., "image/*", ".pdf"). Default: "*"
26
- * @param props.onChange - Callback function called when file upload completes successfully, receives the file URL
13
+ * Sends the file via `fetch` as `multipart/form-data` and stores the returned URL
14
+ * in a hidden `<input>` for form submission.
15
+ * Integrates with `useForm` to display validation errors by field name.
27
16
  *
28
- * @returns FileUpload JSX element wrapped in FieldGroup with optional label and error handling
17
+ * @param props.name - Field name for form submission. Required.
18
+ * @param props.action - Upload endpoint URL. Required.
19
+ * @param props.disabled - Disables file selection and upload. Default: false
20
+ * @param props.label - Label text displayed above the upload area.
21
+ * @param props.showAsterisk - Appends `*` to the label. Default: false
22
+ * @param props.acceptFile - Accepted MIME types or extensions. Default: "*"
23
+ * @param props.method - HTTP method. Default: "POST"
24
+ * @param props.fileName - Form-data field name for the file. Default: "file"
25
+ * @param props.fileResponseName - Server response property containing the URL. Default: "url"
26
+ * @param props.onChange - Callback fired after a successful upload — receives the file URL.
27
+ *
28
+ * @returns FileUpload JSX element wrapped in `FieldWrapper`.
29
29
  *
30
30
  * @example
31
31
  * ```tsx
32
- * // Basic file upload
33
- * <FileUpload
34
- * name="document"
35
- * action="/api/upload"
36
- * />
32
+ * // Basic
33
+ * <FileUpload name="document" action="/api/upload" />
37
34
  *
38
- * // File upload with label and custom text
35
+ * // PDF only with label and callback
39
36
  * <FileUpload
40
- * name="avatar"
41
- * action="/api/upload/avatar"
42
- * label="Profile Picture"
37
+ * name="contract"
38
+ * action="/api/upload/docs"
39
+ * label="Contract (PDF)"
43
40
  * showAsterisk
44
- * selectFileButtonText="Choose Image"
45
- * changeFileButtonText="Change Image"
46
- * dropFileText="Drop your image here"
47
- * />
48
- *
49
- * // File upload with restrictions and callback
50
- * <FileUpload
51
- * name="pdf"
52
- * action="/api/upload/document"
53
- * label="Upload PDF Document"
54
41
  * acceptFile=".pdf"
55
- * fileName="document"
56
42
  * fileResponseName="documentUrl"
57
- * onChange={(url) => console.log('File uploaded:', url)}
58
- * />
59
- *
60
- * // Disabled file upload
61
- * <FileUpload
62
- * name="attachment"
63
- * action="/api/upload"
64
- * label="Attachment"
65
- * disabled
66
- * />
67
- *
68
- * // File upload with custom HTTP method and response handling
69
- * <FileUpload
70
- * name="file"
71
- * action="/api/files"
72
- * method="PUT"
73
- * fileName="uploadedFile"
74
- * fileResponseName="fileUrl"
75
- * label="Custom Upload"
76
- * onChange={(url) => {
77
- * if (url) {
78
- * setFileUrl(url);
79
- * console.log('Upload successful:', url);
80
- * }
81
- * }}
43
+ * onChange={(url) => setContractUrl(url)}
82
44
  * />
83
45
  * ```
84
46
  */
@@ -1,23 +1,27 @@
1
1
  import { JSX } from "react";
2
2
  type GoogleAnalyticsProps = {
3
+ /** Google Analytics 4 Measurement ID (e.g. `"G-XXXXXXXXXX"`). Required. */
3
4
  measurementId: string;
5
+ /** When true, renders the GA4 snippet in development mode (bypasses the production check). @default false */
4
6
  showInDevMode?: boolean;
5
7
  };
6
8
  /**
7
- * GoogleAnalytics component - injects Google Analytics 4 snippets into the page
9
+ * GoogleAnalytics injects the Google Analytics 4 script into the page client-side.
8
10
  *
9
- * @param props - GoogleAnalytics component properties
10
- * @param {string} props.measurementId - Google Analytics 4 Measurement ID (for example: "G-XXXXXXXXXX")
11
- * @param {boolean} [props.showInDevMode] - If true, renders in development mode. Default: false
11
+ * Renders nothing in development mode unless `showInDevMode` is `true`.
12
+ * Wrapped in `ClientOnly` to avoid SSR errors.
12
13
  *
13
- * @returns {JSX.Element} GoogleAnalytics JSX element
14
+ * @param props.measurementId - GA4 Measurement ID (e.g. `"G-XXXXXXXXXX"`). Required.
15
+ * @param props.showInDevMode - Renders in development mode. Default: false
16
+ *
17
+ * @returns GoogleAnalytics JSX element, or an empty fragment in dev mode.
14
18
  *
15
19
  * @example
16
20
  * ```tsx
17
- * // Basic GA4 setup
21
+ * // In your root layout
18
22
  * <GoogleAnalytics measurementId="G-XXXXXXXXXX" />
19
23
  *
20
- * // GA4 in development mode
24
+ * // Enable in development for testing
21
25
  * <GoogleAnalytics measurementId="G-XXXXXXXXXX" showInDevMode />
22
26
  * ```
23
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/googleAnalytics/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAI5B,KAAK,oBAAoB,GAAG;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AAEH,iBAAS,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAYjE;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/googleAnalytics/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAI5B,KAAK,oBAAoB,GAAG;IAC1B,2EAA2E;IAC3E,aAAa,EAAE,MAAM,CAAC;IACtB,6GAA6G;IAC7G,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,iBAAS,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAYjE;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -2,20 +2,22 @@ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { ClientOnly } from "../clientOnly";
3
3
  import { GoogleAnalyticsClient } from "./googleAnalytics.client";
4
4
  /**
5
- * GoogleAnalytics component - injects Google Analytics 4 snippets into the page
5
+ * GoogleAnalytics injects the Google Analytics 4 script into the page client-side.
6
6
  *
7
- * @param props - GoogleAnalytics component properties
8
- * @param {string} props.measurementId - Google Analytics 4 Measurement ID (for example: "G-XXXXXXXXXX")
9
- * @param {boolean} [props.showInDevMode] - If true, renders in development mode. Default: false
7
+ * Renders nothing in development mode unless `showInDevMode` is `true`.
8
+ * Wrapped in `ClientOnly` to avoid SSR errors.
10
9
  *
11
- * @returns {JSX.Element} GoogleAnalytics JSX element
10
+ * @param props.measurementId - GA4 Measurement ID (e.g. `"G-XXXXXXXXXX"`). Required.
11
+ * @param props.showInDevMode - Renders in development mode. Default: false
12
+ *
13
+ * @returns GoogleAnalytics JSX element, or an empty fragment in dev mode.
12
14
  *
13
15
  * @example
14
16
  * ```tsx
15
- * // Basic GA4 setup
17
+ * // In your root layout
16
18
  * <GoogleAnalytics measurementId="G-XXXXXXXXXX" />
17
19
  *
18
- * // GA4 in development mode
20
+ * // Enable in development for testing
19
21
  * <GoogleAnalytics measurementId="G-XXXXXXXXXX" showInDevMode />
20
22
  * ```
21
23
  */
@@ -1,46 +1,52 @@
1
1
  type GoogleTagManagerProps = {
2
+ /** Google Tag Manager container ID (e.g. `"GTM-XXXXXXX"`). Required. */
2
3
  gtmId: string;
4
+ /** Additional key-value pairs pushed to the dataLayer on initialization. */
3
5
  events?: Record<string, string>;
6
+ /** Initial key-value pairs added to the dataLayer before GTM loads. */
4
7
  dataLayer?: Record<string, string>;
8
+ /** Global variable name for the dataLayer array. @default "dataLayer" */
5
9
  dataLayerName?: string;
10
+ /** GTM environment auth token (for staging/testing environments). */
6
11
  auth?: string;
12
+ /** GTM environment preview token (e.g. `"env-3"`). */
7
13
  preview?: string;
14
+ /** When true, renders the GTM snippet in development mode (bypasses the production check). @default false */
8
15
  showInDevMode?: boolean;
9
16
  };
10
17
  /**
11
- * GoogleTagManager component - injects Google Tag Manager snippets into the page
18
+ * GoogleTagManager injects the GTM `<script>` and `<noscript>` snippets into the page client-side.
12
19
  *
13
- * @param props - GoogleTagManager component properties
14
- * @param props.gtmId - Google Tag Manager container id (for example: "GTM-XXXXXXX")
15
- * @param props.events - Additional GTM events payload
16
- * @param props.dataLayer - Initial data to populate the dataLayer
20
+ * Renders nothing in development mode unless `showInDevMode` is `true`.
21
+ * Wrapped in `ClientOnly` to avoid SSR errors.
22
+ *
23
+ * @param props.gtmId - GTM container ID (e.g. `"GTM-XXXXXXX"`). Required.
24
+ * @param props.dataLayer - Initial key-value pairs for the dataLayer.
17
25
  * @param props.dataLayerName - Global dataLayer variable name. Default: "dataLayer"
18
- * @param props.auth - GTM environment auth token
19
- * @param props.preview - GTM environment preview token
20
- * @param props.showInDevMode - If true, renders in development mode. Default: false
26
+ * @param props.events - Additional key-value pairs pushed on initialization.
27
+ * @param props.auth - GTM environment auth token.
28
+ * @param props.preview - GTM environment preview token (e.g. `"env-3"`).
29
+ * @param props.showInDevMode - Renders in development mode. Default: false
21
30
  *
22
- * @returns GoogleTagManager JSX element
31
+ * @returns GoogleTagManager JSX element, or an empty fragment in dev mode.
23
32
  *
24
33
  * @example
25
34
  * ```tsx
26
- * // Basic GTM setup
35
+ * // Basic setup in your root layout
27
36
  * <GoogleTagManager gtmId="GTM-XXXXXXX" />
28
37
  *
29
- * // GTM with initial dataLayer values
38
+ * // With initial dataLayer values
30
39
  * <GoogleTagManager
31
- * gtmId="GTM-XXXXXXX"
32
- * dataLayer={{
33
- * pageType: "home",
34
- * userType: "anonymous",
35
- * }}
40
+ * gtmId="GTM-XXXXXXX"
41
+ * dataLayer={{ pageType: "home", userType: "anonymous" }}
36
42
  * />
37
43
  *
38
- * // GTM environment (staging)
44
+ * // Staging/preview environment
39
45
  * <GoogleTagManager
40
- * gtmId="GTM-XXXXXXX"
41
- * auth="your-auth-token"
42
- * preview="env-3"
43
- * showInDevMode
46
+ * gtmId="GTM-XXXXXXX"
47
+ * auth="your-auth-token"
48
+ * preview="env-3"
49
+ * showInDevMode
44
50
  * />
45
51
  * ```
46
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/googleTagManager/index.tsx"],"names":[],"mappings":"AAGA,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,iBAAS,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CA6BrD;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/googleTagManager/index.tsx"],"names":[],"mappings":"AAGA,KAAK,qBAAqB,GAAG;IAC3B,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6GAA6G;IAC7G,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,iBAAS,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CA6BrD;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -2,39 +2,38 @@ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { ClientOnly } from "../clientOnly";
3
3
  import { GoogleTagManagerClient } from "./googleTagManager.client";
4
4
  /**
5
- * GoogleTagManager component - injects Google Tag Manager snippets into the page
5
+ * GoogleTagManager injects the GTM `<script>` and `<noscript>` snippets into the page client-side.
6
6
  *
7
- * @param props - GoogleTagManager component properties
8
- * @param props.gtmId - Google Tag Manager container id (for example: "GTM-XXXXXXX")
9
- * @param props.events - Additional GTM events payload
10
- * @param props.dataLayer - Initial data to populate the dataLayer
7
+ * Renders nothing in development mode unless `showInDevMode` is `true`.
8
+ * Wrapped in `ClientOnly` to avoid SSR errors.
9
+ *
10
+ * @param props.gtmId - GTM container ID (e.g. `"GTM-XXXXXXX"`). Required.
11
+ * @param props.dataLayer - Initial key-value pairs for the dataLayer.
11
12
  * @param props.dataLayerName - Global dataLayer variable name. Default: "dataLayer"
12
- * @param props.auth - GTM environment auth token
13
- * @param props.preview - GTM environment preview token
14
- * @param props.showInDevMode - If true, renders in development mode. Default: false
13
+ * @param props.events - Additional key-value pairs pushed on initialization.
14
+ * @param props.auth - GTM environment auth token.
15
+ * @param props.preview - GTM environment preview token (e.g. `"env-3"`).
16
+ * @param props.showInDevMode - Renders in development mode. Default: false
15
17
  *
16
- * @returns GoogleTagManager JSX element
18
+ * @returns GoogleTagManager JSX element, or an empty fragment in dev mode.
17
19
  *
18
20
  * @example
19
21
  * ```tsx
20
- * // Basic GTM setup
22
+ * // Basic setup in your root layout
21
23
  * <GoogleTagManager gtmId="GTM-XXXXXXX" />
22
24
  *
23
- * // GTM with initial dataLayer values
25
+ * // With initial dataLayer values
24
26
  * <GoogleTagManager
25
- * gtmId="GTM-XXXXXXX"
26
- * dataLayer={{
27
- * pageType: "home",
28
- * userType: "anonymous",
29
- * }}
27
+ * gtmId="GTM-XXXXXXX"
28
+ * dataLayer={{ pageType: "home", userType: "anonymous" }}
30
29
  * />
31
30
  *
32
- * // GTM environment (staging)
31
+ * // Staging/preview environment
33
32
  * <GoogleTagManager
34
- * gtmId="GTM-XXXXXXX"
35
- * auth="your-auth-token"
36
- * preview="env-3"
37
- * showInDevMode
33
+ * gtmId="GTM-XXXXXXX"
34
+ * auth="your-auth-token"
35
+ * preview="env-3"
36
+ * showInDevMode
38
37
  * />
39
38
  * ```
40
39
  */
@@ -2,40 +2,56 @@ import { LucideIcon } from "lucide-react";
2
2
  import { ButtonHTMLAttributes } from "react";
3
3
  import "./styles.css";
4
4
  type IconButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children" | "aria-label"> & {
5
+ /** Lucide icon component rendered inside the button. Required. */
5
6
  icon: LucideIcon;
7
+ /** Accessible label for screen readers. Required. */
6
8
  "aria-label": string;
9
+ /** Shows a spinner and disables the button during async operations. @default false */
7
10
  isLoading?: boolean;
11
+ /**
12
+ * Button size.
13
+ * @default "md"
14
+ */
8
15
  size?: "xs" | "sm" | "md" | "lg";
16
+ /**
17
+ * Visual style variant.
18
+ * - `solid`: filled background.
19
+ * - `outline`: bordered, transparent background.
20
+ * - `ghost`: no border, subtle hover.
21
+ * - `invisible`: no visual styling.
22
+ * @default "solid"
23
+ */
9
24
  variant?: "solid" | "outline" | "ghost" | "invisible";
25
+ /**
26
+ * Color scheme applied to the button.
27
+ * @default "primary"
28
+ */
10
29
  scheme?: "primary" | "success" | "warning" | "danger" | "info";
11
30
  };
12
31
  /**
13
- * IconButton component - compact button that renders only an icon
32
+ * IconButton compact button that renders a single icon without a text label.
14
33
  *
15
- * @param props - IconButton component properties
16
- * @param props.icon - Icon to render inside the button (LucideIcon). Required
17
- * @param props.aria-label - Accessible label for screen readers. Required
18
- * @param props.isLoading - Controls loading state with spinner. Default: false
19
- * @param props.size - Button size. Default: "md"
20
- * @param props.variant - Visual variant of the button. Default: "solid"
21
- * @param props.scheme - Button color scheme. Default: "primary"
34
+ * Always requires `aria-label` for accessibility.
22
35
  *
23
- * **...Other valid HTML properties for button element (children not supported)**
36
+ * @param props.icon - Lucide icon component to render. Required.
37
+ * @param props["aria-label"] - Accessible label for screen readers. Required.
38
+ * @param props.isLoading - Shows a spinner and disables the button. Default: false
39
+ * @param props.size - Button size (`xs` | `sm` | `md` | `lg`). Default: "md"
40
+ * @param props.variant - Visual style variant. Default: "solid"
41
+ * @param props.scheme - Color scheme. Default: "primary"
24
42
  *
25
- * @returns IconButton JSX element
43
+ * **...Other valid HTML properties for `<button>` (children not supported)**
44
+ *
45
+ * @returns IconButton JSX element.
26
46
  *
27
47
  * @example
28
48
  * ```tsx
29
- * // Basic icon button
30
- * <IconButton icon={Plus} aria-label="Add" />
49
+ * <IconButton icon={Plus} aria-label="Add item" />
31
50
  *
32
- * // Different color scheme and variant
33
51
  * <IconButton icon={Trash2} aria-label="Delete" scheme="danger" variant="outline" />
34
52
  *
35
- * // Loading state
36
53
  * <IconButton icon={Save} aria-label="Saving" isLoading />
37
54
  *
38
- * // Sizes
39
55
  * <IconButton icon={MoreVertical} aria-label="More options" size="sm" />
40
56
  * ```
41
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/iconButton/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,cAAc,CAAC;AAEtB,KAAK,eAAe,GAAG,IAAI,CACzB,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,UAAU,GAAG,YAAY,CAC1B,GAAG;IACF,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IAErB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;IACtD,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;CAChE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,iBAAS,UAAU,CAAC,KAAK,EAAE,eAAe,2CA+BzC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/iconButton/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,cAAc,CAAC;AAEtB,KAAK,eAAe,GAAG,IAAI,CACzB,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,UAAU,GAAG,YAAY,CAC1B,GAAG;IACF,kEAAkE;IAClE,IAAI,EAAE,UAAU,CAAC;IACjB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,sFAAsF;IACtF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;IACtD;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;CAChE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,iBAAS,UAAU,CAAC,KAAK,EAAE,eAAe,2CA+BzC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -2,32 +2,29 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Loader2 } from "lucide-react";
3
3
  import "./styles.css";
4
4
  /**
5
- * IconButton component - compact button that renders only an icon
5
+ * IconButton compact button that renders a single icon without a text label.
6
6
  *
7
- * @param props - IconButton component properties
8
- * @param props.icon - Icon to render inside the button (LucideIcon). Required
9
- * @param props.aria-label - Accessible label for screen readers. Required
10
- * @param props.isLoading - Controls loading state with spinner. Default: false
11
- * @param props.size - Button size. Default: "md"
12
- * @param props.variant - Visual variant of the button. Default: "solid"
13
- * @param props.scheme - Button color scheme. Default: "primary"
7
+ * Always requires `aria-label` for accessibility.
14
8
  *
15
- * **...Other valid HTML properties for button element (children not supported)**
9
+ * @param props.icon - Lucide icon component to render. Required.
10
+ * @param props["aria-label"] - Accessible label for screen readers. Required.
11
+ * @param props.isLoading - Shows a spinner and disables the button. Default: false
12
+ * @param props.size - Button size (`xs` | `sm` | `md` | `lg`). Default: "md"
13
+ * @param props.variant - Visual style variant. Default: "solid"
14
+ * @param props.scheme - Color scheme. Default: "primary"
16
15
  *
17
- * @returns IconButton JSX element
16
+ * **...Other valid HTML properties for `<button>` (children not supported)**
17
+ *
18
+ * @returns IconButton JSX element.
18
19
  *
19
20
  * @example
20
21
  * ```tsx
21
- * // Basic icon button
22
- * <IconButton icon={Plus} aria-label="Add" />
22
+ * <IconButton icon={Plus} aria-label="Add item" />
23
23
  *
24
- * // Different color scheme and variant
25
24
  * <IconButton icon={Trash2} aria-label="Delete" scheme="danger" variant="outline" />
26
25
  *
27
- * // Loading state
28
26
  * <IconButton icon={Save} aria-label="Saving" isLoading />
29
27
  *
30
- * // Sizes
31
28
  * <IconButton icon={MoreVertical} aria-label="More options" size="sm" />
32
29
  * ```
33
30
  */