nurseitaly-components 0.0.1

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 (332) hide show
  1. package/README.md +93 -0
  2. package/dist/basic/Avatar/Avatar.d.ts +12 -0
  3. package/dist/basic/Avatar/Avatar.js +24 -0
  4. package/dist/basic/Avatar/avatar.png +0 -0
  5. package/dist/basic/Avatar/index.d.ts +2 -0
  6. package/dist/basic/Avatar/index.js +2 -0
  7. package/dist/basic/Avatar/styles.scss +80 -0
  8. package/dist/basic/Badge/Badge.d.ts +13 -0
  9. package/dist/basic/Badge/Badge.js +17 -0
  10. package/dist/basic/Badge/index.d.ts +2 -0
  11. package/dist/basic/Badge/index.js +2 -0
  12. package/dist/basic/Badge/styles.scss +68 -0
  13. package/dist/basic/Button/Button.d.ts +25 -0
  14. package/dist/basic/Button/Button.js +42 -0
  15. package/dist/basic/Button/index.d.ts +2 -0
  16. package/dist/basic/Button/index.js +2 -0
  17. package/dist/basic/Button/logo-ud.png +0 -0
  18. package/dist/basic/Button/styles.scss +248 -0
  19. package/dist/basic/CheckboxField/CheckboxField.d.ts +10 -0
  20. package/dist/basic/CheckboxField/CheckboxField.js +9 -0
  21. package/dist/basic/CheckboxField/index.d.ts +2 -0
  22. package/dist/basic/CheckboxField/index.js +2 -0
  23. package/dist/basic/CheckboxField/style.scss +4 -0
  24. package/dist/basic/DatePickerField/DatePickerField.d.ts +26 -0
  25. package/dist/basic/DatePickerField/DatePickerField.js +90 -0
  26. package/dist/basic/DatePickerField/DatePickerTheme.d.ts +2 -0
  27. package/dist/basic/DatePickerField/DatePickerTheme.js +59 -0
  28. package/dist/basic/DatePickerField/index.d.ts +1 -0
  29. package/dist/basic/DatePickerField/index.js +1 -0
  30. package/dist/basic/DatePickerField/styles.scss +26 -0
  31. package/dist/basic/DropdownButton/DropdownButton.d.ts +18 -0
  32. package/dist/basic/DropdownButton/DropdownButton.js +44 -0
  33. package/dist/basic/DropdownButton/index.d.ts +2 -0
  34. package/dist/basic/DropdownButton/index.js +2 -0
  35. package/dist/basic/DropdownButton/styles.scss +172 -0
  36. package/dist/basic/DropdownList/DropdownItemList.d.ts +16 -0
  37. package/dist/basic/DropdownList/DropdownItemList.js +17 -0
  38. package/dist/basic/DropdownList/DropdownList.d.ts +9 -0
  39. package/dist/basic/DropdownList/DropdownList.js +10 -0
  40. package/dist/basic/DropdownList/index.d.ts +2 -0
  41. package/dist/basic/DropdownList/index.js +2 -0
  42. package/dist/basic/DropdownList/styles.scss +56 -0
  43. package/dist/basic/DropdownMenu/DropdownMenu.d.ts +13 -0
  44. package/dist/basic/DropdownMenu/DropdownMenu.js +12 -0
  45. package/dist/basic/DropdownMenu/index.d.ts +2 -0
  46. package/dist/basic/DropdownMenu/index.js +2 -0
  47. package/dist/basic/DropdownMenu/styles.scss +54 -0
  48. package/dist/basic/Dummy/Dummy.d.ts +9 -0
  49. package/dist/basic/Dummy/Dummy.js +8 -0
  50. package/dist/basic/Dummy/index.d.ts +2 -0
  51. package/dist/basic/Dummy/index.js +2 -0
  52. package/dist/basic/Dummy/styles.scss +4 -0
  53. package/dist/basic/FilterDropdown/FilterDropdown.d.ts +16 -0
  54. package/dist/basic/FilterDropdown/FilterDropdown.js +56 -0
  55. package/dist/basic/FilterDropdown/index.d.ts +2 -0
  56. package/dist/basic/FilterDropdown/index.js +2 -0
  57. package/dist/basic/FilterDropdown/styles.scss +97 -0
  58. package/dist/basic/Icon/Icon.d.ts +15 -0
  59. package/dist/basic/Icon/Icon.js +20 -0
  60. package/dist/basic/Icon/IconSizes.d.ts +10 -0
  61. package/dist/basic/Icon/IconSizes.js +11 -0
  62. package/dist/basic/Icon/index.d.ts +2 -0
  63. package/dist/basic/Icon/index.js +2 -0
  64. package/dist/basic/Icon/styles.scss +249 -0
  65. package/dist/basic/IconButton/IconButton.d.ts +24 -0
  66. package/dist/basic/IconButton/IconButton.js +42 -0
  67. package/dist/basic/IconButton/index.d.ts +2 -0
  68. package/dist/basic/IconButton/index.js +2 -0
  69. package/dist/basic/IconButton/styles.scss +192 -0
  70. package/dist/basic/Pill/Pill.d.ts +17 -0
  71. package/dist/basic/Pill/Pill.js +22 -0
  72. package/dist/basic/Pill/index.d.ts +2 -0
  73. package/dist/basic/Pill/index.js +2 -0
  74. package/dist/basic/Pill/styles.scss +70 -0
  75. package/dist/basic/SelectField/AsyncSelectField.d.ts +21 -0
  76. package/dist/basic/SelectField/AsyncSelectField.js +131 -0
  77. package/dist/basic/SelectField/SelectAutocompleteTheme.d.ts +2 -0
  78. package/dist/basic/SelectField/SelectAutocompleteTheme.js +78 -0
  79. package/dist/basic/SelectField/SelectField.d.ts +27 -0
  80. package/dist/basic/SelectField/SelectField.js +81 -0
  81. package/dist/basic/SelectField/SelectFieldTheme.d.ts +7 -0
  82. package/dist/basic/SelectField/SelectFieldTheme.js +57 -0
  83. package/dist/basic/SelectField/SelectMultipleField.d.ts +28 -0
  84. package/dist/basic/SelectField/SelectMultipleField.js +98 -0
  85. package/dist/basic/SelectField/index.d.ts +2 -0
  86. package/dist/basic/SelectField/index.js +2 -0
  87. package/dist/basic/SelectField/styles.scss +38 -0
  88. package/dist/basic/Spinner/Spinner.d.ts +14 -0
  89. package/dist/basic/Spinner/Spinner.js +37 -0
  90. package/dist/basic/Spinner/index.d.ts +2 -0
  91. package/dist/basic/Spinner/index.js +2 -0
  92. package/dist/basic/Spinner/styles.scss +37 -0
  93. package/dist/basic/SwitchField/SwitchField.d.ts +11 -0
  94. package/dist/basic/SwitchField/SwitchField.js +13 -0
  95. package/dist/basic/SwitchField/index.d.ts +2 -0
  96. package/dist/basic/SwitchField/index.js +2 -0
  97. package/dist/basic/SwitchField/style.scss +4 -0
  98. package/dist/basic/Tabs/Tabs.d.ts +17 -0
  99. package/dist/basic/Tabs/Tabs.js +9 -0
  100. package/dist/basic/Tabs/index.d.ts +2 -0
  101. package/dist/basic/Tabs/index.js +2 -0
  102. package/dist/basic/Tabs/styles.scss +51 -0
  103. package/dist/basic/Tag/Tag.d.ts +18 -0
  104. package/dist/basic/Tag/Tag.js +30 -0
  105. package/dist/basic/Tag/index.d.ts +2 -0
  106. package/dist/basic/Tag/index.js +2 -0
  107. package/dist/basic/Tag/styles.scss +101 -0
  108. package/dist/basic/TextField/TextField.d.ts +34 -0
  109. package/dist/basic/TextField/TextField.js +164 -0
  110. package/dist/basic/TextField/TextFieldTheme.d.ts +6 -0
  111. package/dist/basic/TextField/TextFieldTheme.js +70 -0
  112. package/dist/basic/TextField/index.d.ts +2 -0
  113. package/dist/basic/TextField/index.js +2 -0
  114. package/dist/basic/TextField/inputRefManager.d.ts +4 -0
  115. package/dist/basic/TextField/inputRefManager.js +18 -0
  116. package/dist/basic/TextField/styles.scss +44 -0
  117. package/dist/basic/Tooltip/Tooltip.d.ts +26 -0
  118. package/dist/basic/Tooltip/Tooltip.js +37 -0
  119. package/dist/basic/Tooltip/index.d.ts +2 -0
  120. package/dist/basic/Tooltip/index.js +2 -0
  121. package/dist/basic/Tooltip/styles.scss +73 -0
  122. package/dist/basic/VerticalButton/VerticalButton.d.ts +6 -0
  123. package/dist/basic/VerticalButton/VerticalButton.js +8 -0
  124. package/dist/basic/VerticalButton/index.d.ts +2 -0
  125. package/dist/basic/VerticalButton/index.js +2 -0
  126. package/dist/basic/VerticalButton/styles.scss +24 -0
  127. package/dist/basic/fonts/material-symbols-outlined.woff2 +0 -0
  128. package/dist/basic/fonts/work-sans-latin-ext.woff2 +0 -0
  129. package/dist/basic/fonts/work-sans-latin.woff2 +0 -0
  130. package/dist/basic/fonts/work-sans-vietnamese.woff2 +0 -0
  131. package/dist/basic/fonts.d.ts +1 -0
  132. package/dist/basic/fonts.js +111 -0
  133. package/dist/basic/index.d.ts +33 -0
  134. package/dist/basic/index.js +29 -0
  135. package/dist/common/AppAnalytics/AppAnalytics.d.ts +1 -0
  136. package/dist/common/AppAnalytics/AppAnalytics.js +25 -0
  137. package/dist/common/AppAnalytics/index.d.ts +2 -0
  138. package/dist/common/AppAnalytics/index.js +2 -0
  139. package/dist/common/AppCard/AppCard.d.ts +13 -0
  140. package/dist/common/AppCard/AppCard.js +7 -0
  141. package/dist/common/AppCard/index.d.ts +2 -0
  142. package/dist/common/AppCard/index.js +2 -0
  143. package/dist/common/AppCard/style.scss +33 -0
  144. package/dist/common/AppClipboard/AppClipboard.d.ts +7 -0
  145. package/dist/common/AppClipboard/AppClipboard.js +23 -0
  146. package/dist/common/AppClipboard/index.d.ts +2 -0
  147. package/dist/common/AppClipboard/index.js +2 -0
  148. package/dist/common/AppColorpicker/AppColorpicker.d.ts +9 -0
  149. package/dist/common/AppColorpicker/AppColorpicker.js +22 -0
  150. package/dist/common/AppColorpicker/index.d.ts +2 -0
  151. package/dist/common/AppColorpicker/index.js +2 -0
  152. package/dist/common/AppColorpicker/style.scss +26 -0
  153. package/dist/common/AppCopyText/AppCopyText.d.ts +11 -0
  154. package/dist/common/AppCopyText/AppCopyText.js +35 -0
  155. package/dist/common/AppCopyText/index.d.ts +2 -0
  156. package/dist/common/AppCopyText/index.js +2 -0
  157. package/dist/common/AppCopyText/styles.scss +55 -0
  158. package/dist/common/AppDropzone/AppDropzone.d.ts +19 -0
  159. package/dist/common/AppDropzone/AppDropzone.js +13 -0
  160. package/dist/common/AppDropzone/AppDropzoneBody.d.ts +22 -0
  161. package/dist/common/AppDropzone/AppDropzoneBody.js +74 -0
  162. package/dist/common/AppDropzone/UploadService.d.ts +6 -0
  163. package/dist/common/AppDropzone/UploadService.js +18 -0
  164. package/dist/common/AppDropzone/UploadedFile.d.ts +14 -0
  165. package/dist/common/AppDropzone/UploadedFile.js +1 -0
  166. package/dist/common/AppDropzone/index.d.ts +4 -0
  167. package/dist/common/AppDropzone/index.js +4 -0
  168. package/dist/common/AppDropzone/style.scss +42 -0
  169. package/dist/common/AppDropzoneLocal/AppDropzoneBodyLocal.d.ts +15 -0
  170. package/dist/common/AppDropzoneLocal/AppDropzoneBodyLocal.js +55 -0
  171. package/dist/common/AppDropzoneLocal/AppDropzoneLocal.d.ts +15 -0
  172. package/dist/common/AppDropzoneLocal/AppDropzoneLocal.js +13 -0
  173. package/dist/common/AppDropzoneLocal/UploadedFileLocal.d.ts +5 -0
  174. package/dist/common/AppDropzoneLocal/UploadedFileLocal.js +1 -0
  175. package/dist/common/AppDropzoneLocal/index.d.ts +5 -0
  176. package/dist/common/AppDropzoneLocal/index.js +4 -0
  177. package/dist/common/AppDropzoneLocal/style.scss +75 -0
  178. package/dist/common/AppForm/AppForm.d.ts +16 -0
  179. package/dist/common/AppForm/AppForm.js +67 -0
  180. package/dist/common/AppForm/AppFormField.d.ts +37 -0
  181. package/dist/common/AppForm/AppFormField.js +10 -0
  182. package/dist/common/AppForm/AppFormInfo.d.ts +9 -0
  183. package/dist/common/AppForm/AppFormInfo.js +45 -0
  184. package/dist/common/AppForm/FormColorField.d.ts +12 -0
  185. package/dist/common/AppForm/FormColorField.js +23 -0
  186. package/dist/common/AppForm/index.d.ts +2 -0
  187. package/dist/common/AppForm/index.js +2 -0
  188. package/dist/common/AppForm/style.scss +60 -0
  189. package/dist/common/AppLoading/AppLoading.d.ts +7 -0
  190. package/dist/common/AppLoading/AppLoading.js +8 -0
  191. package/dist/common/AppLoading/index.d.ts +2 -0
  192. package/dist/common/AppLoading/index.js +2 -0
  193. package/dist/common/AppLoading/style.scss +5 -0
  194. package/dist/common/AppModal/AppModal.d.ts +27 -0
  195. package/dist/common/AppModal/AppModal.js +42 -0
  196. package/dist/common/AppModal/AppModalConfirm.d.ts +15 -0
  197. package/dist/common/AppModal/AppModalConfirm.js +37 -0
  198. package/dist/common/AppModal/AppModalRemove.d.ts +22 -0
  199. package/dist/common/AppModal/AppModalRemove.js +35 -0
  200. package/dist/common/AppModal/AppModalUtils.d.ts +2 -0
  201. package/dist/common/AppModal/AppModalUtils.js +17 -0
  202. package/dist/common/AppModal/index.d.ts +2 -0
  203. package/dist/common/AppModal/index.js +2 -0
  204. package/dist/common/AppModal/style.scss +100 -0
  205. package/dist/common/AppPagination/AppPagination.d.ts +12 -0
  206. package/dist/common/AppPagination/AppPagination.js +212 -0
  207. package/dist/common/AppPagination/index.d.ts +2 -0
  208. package/dist/common/AppPagination/index.js +2 -0
  209. package/dist/common/AppPagination/styles.scss +230 -0
  210. package/dist/common/AppPicture/AppPicture.d.ts +10 -0
  211. package/dist/common/AppPicture/AppPicture.js +18 -0
  212. package/dist/common/AppPicture/index.d.ts +2 -0
  213. package/dist/common/AppPicture/index.js +2 -0
  214. package/dist/common/AppPicture/style.scss +0 -0
  215. package/dist/common/AppPlaceholder/AppPlaceholder.d.ts +12 -0
  216. package/dist/common/AppPlaceholder/AppPlaceholder.js +7 -0
  217. package/dist/common/AppPlaceholder/index.d.ts +2 -0
  218. package/dist/common/AppPlaceholder/index.js +2 -0
  219. package/dist/common/AppPlaceholder/style.scss +25 -0
  220. package/dist/common/AppSwitchGroup/AppSwitchGroup.d.ts +12 -0
  221. package/dist/common/AppSwitchGroup/AppSwitchGroup.js +8 -0
  222. package/dist/common/AppSwitchGroup/index.d.ts +2 -0
  223. package/dist/common/AppSwitchGroup/index.js +2 -0
  224. package/dist/common/AppSwitchGroup/style.scss +18 -0
  225. package/dist/common/AppTable/AppTable.d.ts +19 -0
  226. package/dist/common/AppTable/AppTable.js +62 -0
  227. package/dist/common/AppTable/AppTableList.d.ts +14 -0
  228. package/dist/common/AppTable/AppTableList.js +48 -0
  229. package/dist/common/AppTable/AppTableTheme.d.ts +1 -0
  230. package/dist/common/AppTable/AppTableTheme.js +45 -0
  231. package/dist/common/AppTable/AppTableUtils.d.ts +8 -0
  232. package/dist/common/AppTable/AppTableUtils.js +24 -0
  233. package/dist/common/AppTable/index.d.ts +2 -0
  234. package/dist/common/AppTable/index.js +2 -0
  235. package/dist/common/AppTable/styles.scss +65 -0
  236. package/dist/common/AppTable/types/AppPage.d.ts +29 -0
  237. package/dist/common/AppTable/types/AppPage.js +18 -0
  238. package/dist/common/AppTable/types/AppPageable.d.ts +15 -0
  239. package/dist/common/AppTable/types/AppPageable.js +19 -0
  240. package/dist/common/AppTextArea/AppTextArea.d.ts +11 -0
  241. package/dist/common/AppTextArea/AppTextArea.js +29 -0
  242. package/dist/common/AppTextArea/index.d.ts +1 -0
  243. package/dist/common/AppTextArea/index.js +1 -0
  244. package/dist/common/AppTextArea/style.scss +47 -0
  245. package/dist/common/AppToast/AppToast.d.ts +2 -0
  246. package/dist/common/AppToast/AppToast.js +81 -0
  247. package/dist/common/AppToast/ToastMessage.d.ts +8 -0
  248. package/dist/common/AppToast/ToastMessage.js +4 -0
  249. package/dist/common/AppToast/index.d.ts +2 -0
  250. package/dist/common/AppToast/index.js +2 -0
  251. package/dist/common/AppToast/style.scss +0 -0
  252. package/dist/common/index.d.ts +27 -0
  253. package/dist/common/index.js +23 -0
  254. package/dist/configs/CommonContext.d.ts +10 -0
  255. package/dist/configs/CommonContext.js +9 -0
  256. package/dist/configs/CookieStorage.d.ts +15 -0
  257. package/dist/configs/CookieStorage.js +45 -0
  258. package/dist/configs/Localization.d.ts +28 -0
  259. package/dist/configs/Localization.js +63 -0
  260. package/dist/configs/Storage.d.ts +9 -0
  261. package/dist/configs/Storage.js +16 -0
  262. package/dist/configs/api.d.ts +10 -0
  263. package/dist/configs/api.js +52 -0
  264. package/dist/configs/index.d.ts +8 -0
  265. package/dist/configs/index.js +7 -0
  266. package/dist/configs/localization/BaseTexts.d.ts +44 -0
  267. package/dist/configs/localization/BaseTexts.js +44 -0
  268. package/dist/configs/localization/CommentsTexts.d.ts +95 -0
  269. package/dist/configs/localization/CommentsTexts.js +95 -0
  270. package/dist/configs/localization/CommonTexts.d.ts +239 -0
  271. package/dist/configs/localization/CommonTexts.js +239 -0
  272. package/dist/configs/localization/ConsentTexts.d.ts +116 -0
  273. package/dist/configs/localization/ConsentTexts.js +203 -0
  274. package/dist/configs/localization/HeaderAppTexts.d.ts +106 -0
  275. package/dist/configs/localization/HeaderAppTexts.js +106 -0
  276. package/dist/configs/localization/HeaderTexts.d.ts +68 -0
  277. package/dist/configs/localization/HeaderTexts.js +68 -0
  278. package/dist/configs/localization/HelpTexts.d.ts +38 -0
  279. package/dist/configs/localization/HelpTexts.js +38 -0
  280. package/dist/configs/localization/HistoryTexts.d.ts +428 -0
  281. package/dist/configs/localization/HistoryTexts.js +428 -0
  282. package/dist/configs/localization/ParametersTexts.d.ts +137 -0
  283. package/dist/configs/localization/ParametersTexts.js +137 -0
  284. package/dist/configs/localization/SentenceTexts.d.ts +56 -0
  285. package/dist/configs/localization/SentenceTexts.js +56 -0
  286. package/dist/configs/localization/TreeTexts.d.ts +46 -0
  287. package/dist/configs/localization/TreeTexts.js +46 -0
  288. package/dist/configs/localization/UploadTexts.d.ts +23 -0
  289. package/dist/configs/localization/UploadTexts.js +23 -0
  290. package/dist/configs/services/ProfileService.d.ts +5 -0
  291. package/dist/configs/services/ProfileService.js +8 -0
  292. package/dist/configs/sessionTypes.d.ts +42 -0
  293. package/dist/configs/sessionTypes.js +63 -0
  294. package/dist/configs/useLoggedUtils.d.ts +7 -0
  295. package/dist/configs/useLoggedUtils.js +24 -0
  296. package/dist/configs/useMessageUtils.d.ts +22 -0
  297. package/dist/configs/useMessageUtils.js +71 -0
  298. package/dist/fonts/material-symbols-outlined.woff2 +0 -0
  299. package/dist/fonts/work-sans-latin-ext.woff2 +0 -0
  300. package/dist/fonts/work-sans-latin.woff2 +0 -0
  301. package/dist/fonts/work-sans-vietnamese.woff2 +0 -0
  302. package/dist/functions/DateUtils.d.ts +15 -0
  303. package/dist/functions/DateUtils.js +52 -0
  304. package/dist/functions/FilterUtils.d.ts +13 -0
  305. package/dist/functions/FilterUtils.js +56 -0
  306. package/dist/functions/FormUtils.d.ts +13 -0
  307. package/dist/functions/FormUtils.js +58 -0
  308. package/dist/functions/ImageUtils.d.ts +5 -0
  309. package/dist/functions/ImageUtils.js +13 -0
  310. package/dist/functions/SecurityUtils.d.ts +6 -0
  311. package/dist/functions/SecurityUtils.js +28 -0
  312. package/dist/functions/UsabilityUtils.d.ts +10 -0
  313. package/dist/functions/UsabilityUtils.js +47 -0
  314. package/dist/functions/index.d.ts +6 -0
  315. package/dist/functions/index.js +6 -0
  316. package/dist/functions/logo-ud.png +0 -0
  317. package/dist/functions/placeholder-image.png +0 -0
  318. package/dist/functions/placeholder-person.png +0 -0
  319. package/dist/index.d.ts +5 -0
  320. package/dist/index.js +5 -0
  321. package/dist/styles/base/_borders.scss +30 -0
  322. package/dist/styles/base/_colors.scss +100 -0
  323. package/dist/styles/base/_displays.scss +207 -0
  324. package/dist/styles/base/_margins.css +174 -0
  325. package/dist/styles/base/_spacing.scss +26 -0
  326. package/dist/styles/base/_tokens.scss +330 -0
  327. package/dist/styles/base/_typographs.scss +376 -0
  328. package/dist/styles/font-googleapis.scss +222 -0
  329. package/dist/styles/main.scss +112 -0
  330. package/dist/vendor/index.d.ts +5 -0
  331. package/dist/vendor/index.js +4 -0
  332. package/package.json +118 -0
@@ -0,0 +1,33 @@
1
+ export { default as Avatar } from './Avatar';
2
+ export { default as Badge } from './Badge';
3
+ export { default as Button } from './Button';
4
+ export type { ButtonDSColors, ButtonDSModes, ButtonDSPositions, ButtonDSSizes, } from './Button/Button';
5
+ export { default as CheckboxField } from './CheckboxField';
6
+ export { default as DatePickerField } from './DatePickerField';
7
+ export { default as DropdownButton } from './DropdownButton';
8
+ export { default as DropdownList } from './DropdownList';
9
+ export type { DropdownItem } from './DropdownList/DropdownItemList';
10
+ export { default as DropdownMenu } from './DropdownMenu';
11
+ export type { DropdownMenuItem } from './DropdownMenu/DropdownMenu';
12
+ export { default as FilterDropdown } from './FilterDropdown';
13
+ export { default as Icon } from './Icon';
14
+ export { IconSizes } from './Icon/Icon';
15
+ export { ICON_SIZE_PX, iconSizeToPx } from './Icon/IconSizes';
16
+ export { default as IconButton } from './IconButton';
17
+ export { default as Pill } from './Pill';
18
+ export { default as SelectField } from './SelectField';
19
+ export { default as AsyncSelectField } from './SelectField/AsyncSelectField';
20
+ export type { SelectItem } from './SelectField/SelectField';
21
+ export { default as SelectMultipleField } from './SelectField/SelectMultipleField';
22
+ export { default as Spinner } from './Spinner';
23
+ export { default as SwitchField } from './SwitchField';
24
+ export { default as Tabs } from './Tabs';
25
+ export { default as Tag } from './Tag';
26
+ export type { TagColors } from './Tag/Tag';
27
+ export { default as TextField } from './TextField';
28
+ export type { MaskFunction } from './TextField/TextField';
29
+ export { default as Tooltip } from './Tooltip';
30
+ export { TooltipPlacements } from './Tooltip/Tooltip';
31
+ export { default as VerticalButton } from './VerticalButton';
32
+ export * from './SelectField/SelectFieldTheme';
33
+ export * from './TextField/inputRefManager';
@@ -0,0 +1,29 @@
1
+ import { injectFontFaces } from './fonts';
2
+ injectFontFaces();
3
+ export { default as Avatar } from './Avatar';
4
+ export { default as Badge } from './Badge';
5
+ export { default as Button } from './Button';
6
+ export { default as CheckboxField } from './CheckboxField';
7
+ export { default as DatePickerField } from './DatePickerField';
8
+ export { default as DropdownButton } from './DropdownButton';
9
+ export { default as DropdownList } from './DropdownList';
10
+ export { default as DropdownMenu } from './DropdownMenu';
11
+ export { default as FilterDropdown } from './FilterDropdown';
12
+ export { default as Icon } from './Icon';
13
+ export { IconSizes } from './Icon/Icon';
14
+ export { ICON_SIZE_PX, iconSizeToPx } from './Icon/IconSizes';
15
+ export { default as IconButton } from './IconButton';
16
+ export { default as Pill } from './Pill';
17
+ export { default as SelectField } from './SelectField';
18
+ export { default as AsyncSelectField } from './SelectField/AsyncSelectField';
19
+ export { default as SelectMultipleField } from './SelectField/SelectMultipleField';
20
+ export { default as Spinner } from './Spinner';
21
+ export { default as SwitchField } from './SwitchField';
22
+ export { default as Tabs } from './Tabs';
23
+ export { default as Tag } from './Tag';
24
+ export { default as TextField } from './TextField';
25
+ export { default as Tooltip } from './Tooltip';
26
+ export { TooltipPlacements } from './Tooltip/Tooltip';
27
+ export { default as VerticalButton } from './VerticalButton';
28
+ export * from './SelectField/SelectFieldTheme';
29
+ export * from './TextField/inputRefManager';
@@ -0,0 +1 @@
1
+ export default function AppAnalytics(): null;
@@ -0,0 +1,25 @@
1
+ import { useEffect } from 'react';
2
+ export default function AppAnalytics() {
3
+ const GA_ID = import.meta.env.VITE_APP_GA_ID;
4
+ useEffect(() => {
5
+ if (!GA_ID) {
6
+ console.warn('Google Analytics ID not set.');
7
+ return;
8
+ }
9
+ // Inject the gtag.js script
10
+ const script = document.createElement('script');
11
+ script.src = `https://www.googletagmanager.com/gtag/js?id=${GA_ID}`;
12
+ script.async = true;
13
+ document.head.appendChild(script);
14
+ // Inject the inline gtag config script exactly like GA docs do
15
+ const inlineScript = document.createElement('script');
16
+ inlineScript.innerHTML = `
17
+ window.dataLayer = window.dataLayer || [];
18
+ function gtag(){dataLayer.push(arguments);}
19
+ gtag('js', new Date());
20
+ gtag('config', '${GA_ID}');
21
+ `;
22
+ document.head.appendChild(inlineScript);
23
+ }, []);
24
+ return null;
25
+ }
@@ -0,0 +1,2 @@
1
+ import AppAnalytics from './AppAnalytics';
2
+ export default AppAnalytics;
@@ -0,0 +1,2 @@
1
+ import AppAnalytics from './AppAnalytics';
2
+ export default AppAnalytics;
@@ -0,0 +1,13 @@
1
+ import { DropdownMenuItem } from '../../basic/DropdownMenu/DropdownMenu';
2
+ import './style.scss';
3
+ type Props = {
4
+ title?: string | React.ReactNode;
5
+ children: React.ReactNode;
6
+ extraHeaderActions?: React.ReactNode;
7
+ footer?: React.ReactNode;
8
+ options?: DropdownMenuItem[];
9
+ className?: string;
10
+ onClick?: () => void;
11
+ };
12
+ export default function AppCard({ title, children, extraHeaderActions, footer, options, className, onClick, }: Props): import("react").JSX.Element;
13
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import cx from 'classnames';
3
+ import { DropdownMenu } from '../../basic';
4
+ import './style.scss';
5
+ export default function AppCard({ title, children, extraHeaderActions, footer, options, className, onClick, }) {
6
+ return (_jsxs("div", { className: cx('ds-app-card', className), onClick: onClick, children: [title && (_jsxs("div", { className: "header", children: [_jsx("div", { className: "title", children: title }), extraHeaderActions && (_jsx("div", { className: "extra-header-actions", children: extraHeaderActions })), options && _jsx(DropdownMenu, { list: options })] })), _jsx("div", { className: "body", children: children }), footer && _jsx("div", { className: "footer", children: footer })] }));
7
+ }
@@ -0,0 +1,2 @@
1
+ import AppCard from './AppCard';
2
+ export default AppCard;
@@ -0,0 +1,2 @@
1
+ import AppCard from './AppCard';
2
+ export default AppCard;
@@ -0,0 +1,33 @@
1
+ .ds-app-card {
2
+ border: 1px solid var(--border-subtle-1);
3
+ border-radius: var(--radius-100);
4
+
5
+ > .header {
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: space-between;
9
+ padding: 8px 16px;
10
+ background-color: var(--layer-layer-2);
11
+ border-bottom: 1px solid var(--border-subtle-1);
12
+ gap: 12px;
13
+
14
+ > .title {
15
+ @include label-large-2;
16
+ flex: 1;
17
+ }
18
+
19
+ > .extra-header-actions {
20
+ display: flex;
21
+ }
22
+ }
23
+
24
+ > .body {
25
+ padding: 16px;
26
+ }
27
+
28
+ > .footer {
29
+ display: flex;
30
+ padding: 8px 16px;
31
+ border-top: 1px solid var(--border-subtle-1);
32
+ }
33
+ }
@@ -0,0 +1,7 @@
1
+ import { ButtonDSSizes } from '../../basic/Button/Button';
2
+ type Props = {
3
+ text: string;
4
+ size?: ButtonDSSizes;
5
+ };
6
+ export default function AppClipboard({ text, size }: Props): import("react").JSX.Element;
7
+ export {};
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+ import { IconButton } from '../../basic';
5
+ export default function AppClipboard({ text, size = 'x-small' }) {
6
+ const { t } = useTranslation('common');
7
+ const [copied, setCopied] = useState(false);
8
+ const handleCopy = () => {
9
+ navigator.clipboard
10
+ .writeText(text)
11
+ .then(() => {
12
+ setCopied(true);
13
+ setTimeout(() => {
14
+ setCopied(false);
15
+ }, 2000);
16
+ })
17
+ .catch((err) => {
18
+ console.error('Failed to copy text:', err);
19
+ });
20
+ };
21
+ const tooltipTitle = copied ? t('tooltip.copied') : t('tooltip.copy');
22
+ return (_jsx(IconButton, { name: "content_copy", title: tooltipTitle, onClick: handleCopy, size: size }));
23
+ }
@@ -0,0 +1,2 @@
1
+ import AppClipboard from './AppClipboard';
2
+ export default AppClipboard;
@@ -0,0 +1,2 @@
1
+ import AppClipboard from './AppClipboard';
2
+ export default AppClipboard;
@@ -0,0 +1,9 @@
1
+ import { AppFormField } from '../AppForm/AppFormField';
2
+ import './style.scss';
3
+ type AppColorpickerProps = {
4
+ item: Record<string, unknown>;
5
+ field: AppFormField;
6
+ handleSave: (value: string, field: AppFormField) => void;
7
+ };
8
+ export default function AppColorpicker({ field, item, handleSave, }: AppColorpickerProps): import("react").JSX.Element;
9
+ export {};
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
3
+ import { HexColorPicker } from 'react-colorful';
4
+ import { useTranslation } from 'react-i18next';
5
+ import { Button } from '../../basic';
6
+ import './style.scss';
7
+ const defaultColor = '#FFFFFF';
8
+ export default function AppColorpicker({ field, item, handleSave, }) {
9
+ const { t } = useTranslation('common');
10
+ const [openColor, setOpenColor] = useState(false);
11
+ const [color, setColor] = useState(defaultColor);
12
+ useEffect(() => {
13
+ if (item[field.name])
14
+ setColor(item[field.name]);
15
+ else
16
+ setColor(defaultColor);
17
+ }, [item]);
18
+ return (_jsxs("div", { className: "color-picker-container", children: [_jsx("div", { className: "swatch", style: { backgroundColor: color }, onClick: () => setOpenColor(!openColor), onKeyDown: () => setOpenColor(!openColor), role: "link", "aria-label": "open color picker", tabIndex: 0 }), openColor && (_jsxs(_Fragment, { children: [_jsx(HexColorPicker, { color: color, onChange: setColor }), _jsxs("div", { className: "buttons", children: [_jsx(Button, { text: t('button.confirm'), onClick: () => {
19
+ handleSave(color, field);
20
+ setOpenColor(false);
21
+ }, size: "x-small" }), _jsx(Button, { text: t('button.cancel'), onClick: () => setOpenColor(false), color: "danger", size: "x-small" })] })] }))] }));
22
+ }
@@ -0,0 +1,2 @@
1
+ import AppColorpicker from './AppColorpicker';
2
+ export default AppColorpicker;
@@ -0,0 +1,2 @@
1
+ import AppColorpicker from './AppColorpicker';
2
+ export default AppColorpicker;
@@ -0,0 +1,26 @@
1
+ .color-picker-container {
2
+ display: flex;
3
+ flex-direction: column;
4
+
5
+ .swatch {
6
+ width: 28px;
7
+ height: 28px;
8
+ border-radius: 8px;
9
+ border: 3px solid #fff;
10
+ box-shadow:
11
+ 0 0 0 1px rgba(0, 0, 0, 0.1),
12
+ inset 0 0 0 1px rgba(0, 0, 0, 0.1);
13
+ cursor: pointer;
14
+ margin-bottom: 8px;
15
+ }
16
+
17
+ .react-colorful {
18
+ margin-bottom: 8px;
19
+ }
20
+
21
+ .buttons {
22
+ display: flex;
23
+ justify-content: center;
24
+ gap: 8px;
25
+ }
26
+ }
@@ -0,0 +1,11 @@
1
+ import "./styles.scss";
2
+ export declare const TitlePositions: readonly ["top", "right"];
3
+ type TitlePosition = (typeof TitlePositions)[number];
4
+ export type Props = {
5
+ className?: string;
6
+ title?: string;
7
+ content: string;
8
+ titlePosition?: TitlePosition;
9
+ };
10
+ export default function AppCopyText({ className, title, content, titlePosition, }: Props): import("react").JSX.Element;
11
+ export {};
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import cx from "classnames";
4
+ import "./styles.scss";
5
+ import { Icon, Tooltip } from '../../basic';
6
+ import { useTranslation } from "react-i18next";
7
+ export const TitlePositions = ["top", "right"];
8
+ export default function AppCopyText({ className, title, content, titlePosition = "right", }) {
9
+ const [copied, setCopied] = useState(false);
10
+ const [isHovered, setIsHovered] = useState(false);
11
+ const { t } = useTranslation("common");
12
+ const getClassNames = cx("ds-copy-text", className, {
13
+ "title-top": titlePosition === "top" && title,
14
+ "title-right": titlePosition === "right" && title,
15
+ "no-title": !title,
16
+ });
17
+ const handleClipboard = () => {
18
+ navigator.clipboard
19
+ .writeText(content)
20
+ .then(() => {
21
+ setCopied(true);
22
+ setTimeout(() => {
23
+ setCopied(false);
24
+ }, 2000);
25
+ })
26
+ .catch((err) => {
27
+ console.error("Failed to copy text:", err);
28
+ });
29
+ };
30
+ const tooltipTitle = copied ? t("tooltip.copied") : t("tooltip.copy");
31
+ const iconName = copied ? "check" : "content_copy";
32
+ const iconFilled = isHovered && !copied;
33
+ const contentElement = (_jsxs("div", { className: getClassNames, onClick: handleClipboard, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: [title && _jsx("span", { className: "ds-copy-text__title", children: title }), title && titlePosition === "right" && (_jsx("span", { className: "ds-copy-text__separator", children: "|" })), _jsxs("div", { className: "group-content", children: [_jsx("span", { className: "ds-copy-text__content", children: content }), _jsx(Icon, { name: iconName, size: "small", className: "ds-copy-text__icon", filled: iconFilled })] })] }));
34
+ return (_jsx(Tooltip, { title: tooltipTitle, placement: "top", mode: "simple", triggerOpen: copied ? true : undefined, children: contentElement }));
35
+ }
@@ -0,0 +1,2 @@
1
+ import AppCopyText from './AppCopyText';
2
+ export default AppCopyText;
@@ -0,0 +1,2 @@
1
+ import AppCopyText from './AppCopyText';
2
+ export default AppCopyText;
@@ -0,0 +1,55 @@
1
+ .ds-copy-text {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: 4px;
5
+ cursor: pointer;
6
+ width: fit-content;
7
+
8
+ &__title {
9
+ @include helper-small-1;
10
+ color: var(--text-secondary);
11
+ }
12
+
13
+ &__separator {
14
+ color: var(--text-secondary);
15
+ }
16
+
17
+ &__content {
18
+ color: var(--text-primary);
19
+ @include body-small-1;
20
+ }
21
+
22
+ &__icon {
23
+ color: var(--icon-accent);
24
+ transition: all 0.2s ease;
25
+ }
26
+
27
+ &:hover {
28
+ .ds-copy-text__icon {
29
+ color: var(--text-primary);
30
+ background-color: var(--button-secondary-default);
31
+ }
32
+ }
33
+
34
+ .group-content {
35
+ display: flex;
36
+ align-items: center;
37
+ gap: 4px;
38
+ }
39
+
40
+ &.title-top {
41
+ flex-direction: column;
42
+ align-items: flex-start;
43
+ gap: var(--spacing-50, 4px);
44
+ }
45
+
46
+ &.title-right {
47
+ flex-direction: row;
48
+ }
49
+
50
+ &.no-title {
51
+ .ds-copy-text__separator {
52
+ display: none;
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,19 @@
1
+ import type { UploadedFile } from './UploadedFile';
2
+ type Props = {
3
+ folder: string;
4
+ onClose: () => void;
5
+ onSuccess: (response: UploadedFile) => void;
6
+ onError?: (err: any) => void;
7
+ accept: Record<string, string[]>;
8
+ messages?: Partial<Record<'label.dropzone' | 'label.uploaded.file', string>>;
9
+ onDrop?: () => void;
10
+ keepName?: boolean;
11
+ title?: string;
12
+ alternativeButton?: {
13
+ title: string;
14
+ action: () => void;
15
+ };
16
+ disableConfirm?: boolean;
17
+ };
18
+ export default function AppDropzone({ folder, onClose, onSuccess, onError, accept, messages, onDrop, keepName, title, alternativeButton, disableConfirm, }: Props): import("react").JSX.Element;
19
+ export {};
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useRef } from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+ import AppModal from '../AppModal';
5
+ import AppDropzoneBody from './AppDropzoneBody';
6
+ export default function AppDropzone({ folder, onClose, onSuccess, onError, accept, messages, onDrop, keepName, title, alternativeButton, disableConfirm = false, }) {
7
+ const { t } = useTranslation('upload');
8
+ const bodyRef = useRef(null);
9
+ const handleConfirm = () => {
10
+ bodyRef.current?.upload();
11
+ };
12
+ return (_jsx(AppModal, { title: title || t('modal.title'), className: "modal-upload", close: onClose, confirm: handleConfirm, disableConfirm: disableConfirm, alternativeButton: alternativeButton, children: _jsx(AppDropzoneBody, { ref: bodyRef, folder: folder, onSuccess: onSuccess, onError: onError, accept: accept, messages: messages, onDrop: onDrop, keepName: keepName, showConfirmButton: false }) }));
13
+ }
@@ -0,0 +1,22 @@
1
+ import { UploadedFile } from './UploadedFile';
2
+ import './style.scss';
3
+ export type AppDropzoneBodyProps = {
4
+ folder: string;
5
+ onSuccess: (response: UploadedFile) => void;
6
+ onError?: (err: any) => void;
7
+ accept: Record<string, string[]>;
8
+ messages?: Partial<Record<'label.dropzone' | 'label.uploaded.file', string>>;
9
+ onDrop?: () => void;
10
+ keepName?: boolean;
11
+ /** When false, the confirm button is hidden (e.g. when used inside modal with its own confirm) */
12
+ showConfirmButton?: boolean;
13
+ /** When true, image preview is not rendered and filename message is shown instead */
14
+ disablePreview?: boolean;
15
+ /** When true, confirm button is visible but disabled */
16
+ disableConfirm?: boolean;
17
+ };
18
+ export type AppDropzoneBodyRef = {
19
+ upload: () => Promise<void>;
20
+ };
21
+ declare const AppDropzoneBody: import("react").ForwardRefExoticComponent<AppDropzoneBodyProps & import("react").RefAttributes<AppDropzoneBodyRef>>;
22
+ export default AppDropzoneBody;
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { forwardRef, useContext, useEffect, useImperativeHandle, useRef, useState, } from 'react';
3
+ import Dropzone from 'react-dropzone';
4
+ import { useTranslation } from 'react-i18next';
5
+ import { Button } from '../../basic';
6
+ import CommonContext from '../../configs/CommonContext';
7
+ import { toastLoadingAction } from '../../configs/sessionTypes';
8
+ import { useMessageUtils } from '../../configs/useMessageUtils';
9
+ import UploadService from './UploadService';
10
+ import './style.scss';
11
+ function AppDropzoneBodyInner({ folder, onSuccess, onError, accept, messages, onDrop, keepName, showConfirmButton = true, disablePreview = false, disableConfirm = false, }, ref) {
12
+ const { t } = useTranslation('upload');
13
+ const { state, dispatch } = useContext(CommonContext);
14
+ const { dispatchError } = useMessageUtils();
15
+ const [file, setFile] = useState();
16
+ const [preview, setPreview] = useState();
17
+ const fileRef = useRef();
18
+ fileRef.current = file;
19
+ const isImageFile = (f) => {
20
+ return f.type?.startsWith('image/') ?? false;
21
+ };
22
+ useEffect(() => {
23
+ if (!file) {
24
+ setPreview(undefined);
25
+ return;
26
+ }
27
+ if (!disablePreview && isImageFile(file)) {
28
+ const url = URL.createObjectURL(file);
29
+ setPreview(url);
30
+ return () => URL.revokeObjectURL(url);
31
+ }
32
+ setPreview(undefined);
33
+ }, [file, disablePreview]);
34
+ const upload = async () => {
35
+ const currentFile = fileRef.current;
36
+ if (!currentFile || state.toastLoading)
37
+ return;
38
+ dispatch(toastLoadingAction(true));
39
+ const data = new FormData();
40
+ data.append('file', currentFile);
41
+ data.append('folder', folder);
42
+ keepName && data.append('keepOriginalName', 'true');
43
+ UploadService.execute(data)
44
+ .then((r) => {
45
+ onSuccess(r.data);
46
+ })
47
+ .catch((err) => {
48
+ dispatchError({ err: 'error.uploading.image', t, key: 'upload' });
49
+ onError?.(err);
50
+ })
51
+ .finally(() => {
52
+ dispatch(toastLoadingAction(false));
53
+ });
54
+ };
55
+ useImperativeHandle(ref, () => ({
56
+ upload,
57
+ }));
58
+ const handleDrop = (files) => {
59
+ if (files.length === 0)
60
+ return;
61
+ setFile(files[0]);
62
+ onDrop?.();
63
+ };
64
+ const handleCancel = () => {
65
+ setFile(undefined);
66
+ };
67
+ const resolveMessage = (key) => {
68
+ const customMessage = messages?.[key]?.trim();
69
+ return customMessage || t(key);
70
+ };
71
+ return (_jsxs("div", { className: "dropzone-container", children: [!file && (_jsx(Dropzone, { onDrop: (acceptedFiles) => handleDrop(acceptedFiles), accept: accept, maxFiles: 1, children: ({ getRootProps, getInputProps }) => (_jsxs("div", { ...getRootProps(), className: "dropzone", children: [_jsx("input", { ...getInputProps() }), _jsx("span", { children: resolveMessage('label.dropzone') })] })) })), file && (_jsxs("div", { className: "uploaded-file", children: [preview && _jsx("img", { className: "preview", src: preview, alt: "" }), !preview && (_jsxs(_Fragment, { children: [_jsx("b", { children: resolveMessage('label.uploaded.file') }), _jsx("span", { children: file.name })] })), showConfirmButton && (_jsxs("div", { className: "buttons", children: [_jsx(Button, { onClick: handleCancel, text: t('common:button.cancel'), size: "small", mode: "outlined", color: "danger" }), _jsx(Button, { onClick: upload, text: t('common:button.confirm'), size: "small", mode: "outlined", disabled: disableConfirm })] }))] }))] }));
72
+ }
73
+ const AppDropzoneBody = forwardRef(AppDropzoneBodyInner);
74
+ export default AppDropzoneBody;
@@ -0,0 +1,6 @@
1
+ import { UploadedFile } from './UploadedFile';
2
+ declare function execute(data: FormData): Promise<import("axios").AxiosResponse<UploadedFile, any, {}, any>>;
3
+ declare const UploadService: {
4
+ execute: typeof execute;
5
+ };
6
+ export default UploadService;
@@ -0,0 +1,18 @@
1
+ import axios from 'axios';
2
+ import Cookies from 'js-cookie';
3
+ const JWT_TOKEN = 'jwt_token_tycho';
4
+ const getJwtToken = () => {
5
+ const cookie = Cookies.get(JWT_TOKEN);
6
+ return cookie === 'undefined' ? '' : cookie;
7
+ };
8
+ function execute(data) {
9
+ const token = getJwtToken() || '';
10
+ const header = {
11
+ Authorization: `Bearer ${token}`,
12
+ };
13
+ return axios.post(import.meta.env.VITE_APP_UPLOAD_URL, data, {
14
+ headers: header,
15
+ });
16
+ }
17
+ const UploadService = { execute };
18
+ export default UploadService;
@@ -0,0 +1,14 @@
1
+ export interface UploadedFile {
2
+ url: string;
3
+ path: string;
4
+ filetype: string;
5
+ name: string;
6
+ original: string;
7
+ width?: number;
8
+ height?: number;
9
+ type?: string;
10
+ }
11
+ export interface UploadedPreview {
12
+ file: File;
13
+ preview: any;
14
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import AppDropzone from './AppDropzone';
2
+ import AppDropzoneBody, { type AppDropzoneBodyProps, type AppDropzoneBodyRef } from './AppDropzoneBody';
3
+ export default AppDropzone;
4
+ export { AppDropzoneBody, type AppDropzoneBodyProps, type AppDropzoneBodyRef };
@@ -0,0 +1,4 @@
1
+ import AppDropzone from './AppDropzone';
2
+ import AppDropzoneBody from './AppDropzoneBody';
3
+ export default AppDropzone;
4
+ export { AppDropzoneBody };
@@ -0,0 +1,42 @@
1
+ .dropzone-container {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+
6
+ .dropzone {
7
+ display: flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ text-align: center;
11
+ width: 100%;
12
+ padding: var(--spacing-700);
13
+ border-radius: var(--radius-100);
14
+ border: 2px dashed var(--border-subtle-3);
15
+ background-color: var(--layer-layer-2);
16
+ cursor: pointer;
17
+ }
18
+
19
+ .preview {
20
+ margin: 0 auto;
21
+ width: 400px;
22
+ height: 400px;
23
+ }
24
+
25
+ .uploaded-file {
26
+ display: flex;
27
+ flex-direction: column;
28
+ align-items: center;
29
+ width: 100%;
30
+ text-align: center;
31
+ border: 1px solid var(--border-subtle-3);
32
+ border-radius: var(--radius-100);
33
+ padding: 16px;
34
+ gap: 16px;
35
+
36
+ .buttons {
37
+ display: flex;
38
+ gap: 16px;
39
+ margin-top: 16px;
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,15 @@
1
+ import './style.scss';
2
+ import type { UploadedFileLocal } from './UploadedFileLocal';
3
+ export type AppDropzoneBodyLocalProps = {
4
+ onSuccess: (files: UploadedFileLocal[]) => void;
5
+ onError?: (err: unknown) => void;
6
+ accept: Record<string, string[]>;
7
+ onDrop?: () => void;
8
+ /** When false, the confirm button is hidden (e.g. when used inside modal with its own confirm) */
9
+ showConfirmButton?: boolean;
10
+ };
11
+ export type AppDropzoneBodyLocalRef = {
12
+ upload: () => Promise<void>;
13
+ };
14
+ declare const AppDropzoneBodyLocal: import("react").ForwardRefExoticComponent<AppDropzoneBodyLocalProps & import("react").RefAttributes<AppDropzoneBodyLocalRef>>;
15
+ export default AppDropzoneBodyLocal;