@zjlab-fe/data-hub-ui 0.21.7 → 0.23.0

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 (328) hide show
  1. package/es/assets/cardImg.png.js +3 -0
  2. package/es/assets/closeBtn.png.js +3 -0
  3. package/es/assets/icon-tag-header.png.js +3 -0
  4. package/es/assets/source.png.js +3 -0
  5. package/es/components/FileUploader/FileUploadModal.js +23 -0
  6. package/es/components/FileUploader/FileUploader.js +20 -0
  7. package/es/components/FileUploader/FileUploaderImpl/FileUploader.js +34 -0
  8. package/es/components/FileUploader/FileUploaderImpl/FileUploaderContextProvider.js +46 -0
  9. package/es/components/FileUploader/FileUploaderImpl/FileUploaderFileReceiver.css.js +36 -0
  10. package/es/components/FileUploader/FileUploaderImpl/FileUploaderFileReceiver.js +56 -0
  11. package/es/components/FileUploader/FileUploaderImpl/FileUploaderFileReceiverContainer.js +24 -0
  12. package/es/components/FileUploader/FileUploaderImpl/FileUploaderFileReceiverDesc.js +9 -0
  13. package/es/components/FileUploader/FileUploaderImpl/FileUploaderList.js +46 -0
  14. package/es/components/FileUploader/FileUploaderImpl/FileUploaderListItem.js +46 -0
  15. package/es/components/FileUploader/FileUploaderImpl/FileUploaderListItemFail.js +21 -0
  16. package/es/components/FileUploader/FileUploaderImpl/FileUploaderListItemPaused.js +20 -0
  17. package/es/components/FileUploader/FileUploaderImpl/FileUploaderListItemUploading.js +43 -0
  18. package/es/components/FileUploader/FileUploaderImpl/FileUploaderlListItemFinished.js +32 -0
  19. package/es/components/FileUploader/Locale/translations.js +52 -0
  20. package/es/components/FileUploader/Locale/useTranslate.js +16 -0
  21. package/es/components/FileUploader/UploadStoreProvider/UploadStoreProvider.js +31 -0
  22. package/es/components/FileUploader/UploadStoreProvider/uploadStoreReducer.js +62 -0
  23. package/es/components/FileUploader/UploadStoreProvider/useOnFileAllUploaded.js +31 -0
  24. package/es/components/FileUploader/UploadStoreProvider/useSaveUnfinishedUploads.js +42 -0
  25. package/es/components/FileUploader/UploadStoreProvider/useSetupMergingEvent.js +45 -0
  26. package/es/components/FileUploader/hooks/useCancelUpload.js +40 -0
  27. package/es/components/FileUploader/hooks/useCurrentFile.js +61 -0
  28. package/es/components/FileUploader/hooks/useCurrentFileOnUploading.js +52 -0
  29. package/es/components/FileUploader/hooks/useCurrentFileSetupAndBackUp.js +39 -0
  30. package/es/components/FileUploader/hooks/useFormatFiles.js +64 -0
  31. package/es/components/FileUploader/hooks/useFormatFilesFindDuplicates.js +75 -0
  32. package/es/components/FileUploader/hooks/useFormatFilesRemoveDuplicates.js +21 -0
  33. package/es/components/FileUploader/hooks/useHandleChunkCompletion.js +31 -0
  34. package/es/components/FileUploader/hooks/useOnMounted.js +24 -0
  35. package/es/components/FileUploader/hooks/useOnMountedResumeUnfinished.js +58 -0
  36. package/es/components/FileUploader/hooks/useRetryUpload.js +33 -0
  37. package/es/components/FileUploader/hooks/useUploadChunk.js +46 -0
  38. package/es/components/FileUploader/icons/CloseFilled.js +7 -0
  39. package/es/components/FileUploader/icons/UnkownFileIcon.js +7 -0
  40. package/es/components/FileUploader/icons/UploadIcon.js +7 -0
  41. package/es/components/FileUploader/index.css.js +532 -0
  42. package/es/components/FileUploader/index.js +20 -0
  43. package/es/components/FileUploader/types.js +13 -0
  44. package/es/components/FileUploader/utils/calcDisplaySize.js +20 -0
  45. package/es/components/FileUploader/utils/checkExpiryTime.js +15 -0
  46. package/es/components/FileUploader/utils/createFileToUpload.js +60 -0
  47. package/es/components/FileUploader/utils/fileDB/addFilesToIndexdb.js +14 -0
  48. package/es/components/FileUploader/utils/fileDB/deleteFileInStore.js +18 -0
  49. package/es/components/FileUploader/utils/fileDB/deleteObjectStore.js +25 -0
  50. package/es/components/FileUploader/utils/fileDB/index.js +77 -0
  51. package/es/components/FileUploader/utils/fileDB/openDBAndRetrieveData.js +90 -0
  52. package/es/components/FileUploader/utils/fileDB/retrieveExistingData.js +49 -0
  53. package/es/components/FileUploader/utils/modalConfig.css.js +20 -0
  54. package/es/components/FileUploader/utils/modalConfig.js +32 -0
  55. package/es/components/FileUploader/utils/retrieveAllFiles.js +70 -0
  56. package/es/components/FileUploader/utils/splitFileIntoChunk.js +15 -0
  57. package/es/components/SDK-modal/document-link.js +8 -0
  58. package/es/components/SDK-modal/index.js +25 -0
  59. package/es/components/SDK-modal/index.module.scss.js +49 -0
  60. package/es/components/SDK-modal/inner-modal.js +59 -0
  61. package/es/components/SDK-modal/locale/translations.js +17 -0
  62. package/es/components/apply-perm-modal/index.js +53 -0
  63. package/es/components/apply-perm-modal/index.module.scss.js +96 -0
  64. package/es/components/auth-tag/index.js +23 -0
  65. package/es/components/bench-card/index.js +20 -0
  66. package/es/components/bench-card/index.module.scss.js +48 -0
  67. package/es/components/confirm-again/index.js +14 -0
  68. package/es/components/confirm-again/index.scss.js +37 -0
  69. package/es/components/copy/index.js +41 -0
  70. package/es/components/copy/index.module.scss.js +15 -0
  71. package/es/components/corpus-card/index.js +88 -0
  72. package/es/components/corpus-card/index.module.scss.js +171 -0
  73. package/es/components/feature-card/classNames.js +72 -0
  74. package/es/components/feature-card/components.js +48 -0
  75. package/es/components/feature-card/context.js +13 -0
  76. package/es/components/feature-card/index.css.js +655 -0
  77. package/es/components/feature-card/index.js +47 -0
  78. package/es/components/file-preview/data-table/index.js +94 -0
  79. package/es/components/file-preview/data-table/index.module.scss.js +54 -0
  80. package/es/components/file-preview/excel-preview/index.js +132 -0
  81. package/es/components/file-preview/excel-preview/index.module.scss.js +11 -0
  82. package/es/components/file-preview/excel-preview/utils.js +46 -0
  83. package/es/components/file-preview/img-preview/index.js +18 -0
  84. package/es/components/file-preview/img-preview/index.module.scss.js +17 -0
  85. package/es/components/file-preview/index.js +124 -0
  86. package/es/components/file-preview/index.module.scss.js +32 -0
  87. package/es/components/file-preview/json-preview/index.js +166 -0
  88. package/es/components/file-preview/markdown-preview/index.js +53 -0
  89. package/es/components/file-preview/markdown-preview/index.module.scss.js +1055 -0
  90. package/es/components/file-preview/parquet-preview/index.js +54 -0
  91. package/es/components/file-preview/pdf-preview/index.js +215 -0
  92. package/es/components/file-preview/pdf-preview/index.module.scss.js +16 -0
  93. package/es/components/file-preview/table-preview/index.js +43 -0
  94. package/es/components/file-preview/table-preview/index.module.scss.js +11 -0
  95. package/es/components/file-preview/txt-preview/index.js +24 -0
  96. package/es/components/file-preview/util.js +94 -0
  97. package/es/components/file-uploader/components/circle-progress.css.js +39 -0
  98. package/es/components/file-uploader/components/circle-progress.js +11 -0
  99. package/es/components/file-uploader/components/hooks/use-drop-zone.js +74 -0
  100. package/es/components/file-uploader/components/hooks/use-file-validation.js +52 -0
  101. package/es/components/file-uploader/components/icons.js +19 -0
  102. package/es/components/file-uploader/components/theme.css.js +64 -0
  103. package/es/components/file-uploader/components/uploader-drop-zone.css.js +66 -0
  104. package/es/components/file-uploader/components/uploader-drop-zone.js +72 -0
  105. package/es/components/file-uploader/components/uploader-file-item.css.js +186 -0
  106. package/es/components/file-uploader/components/uploader-file-item.js +61 -0
  107. package/es/components/file-uploader/components/uploader-file-list.css.js +43 -0
  108. package/es/components/file-uploader/components/uploader-file-list.js +25 -0
  109. package/es/components/file-uploader/components/uploader.css.js +20 -0
  110. package/es/components/file-uploader/components/uploader.js +49 -0
  111. package/es/components/file-uploader/components/uploading-status.css.js +52 -0
  112. package/es/components/file-uploader/components/uploading-status.js +53 -0
  113. package/es/components/file-uploader/components/utils/directory-reader.js +65 -0
  114. package/es/components/file-uploader/constants.js +31 -0
  115. package/es/components/file-uploader/context/action-registry.js +69 -0
  116. package/es/components/file-uploader/context/file-state-store.js +83 -0
  117. package/es/components/file-uploader/context/handler-registry.js +119 -0
  118. package/es/components/file-uploader/context/upload-context.js +36 -0
  119. package/es/components/file-uploader/context/upload-provider.js +77 -0
  120. package/es/components/file-uploader/context/upload-reducer.js +21 -0
  121. package/es/components/file-uploader/context/use-upload-engine.js +440 -0
  122. package/es/components/file-uploader/engine/queue-callbacks.js +257 -0
  123. package/es/components/file-uploader/engine/queue-manager.js +195 -0
  124. package/es/components/file-uploader/engine/queue-uploader.js +25 -0
  125. package/es/components/file-uploader/hooks/use-upload.js +327 -0
  126. package/es/components/file-uploader/utils/chunk-handlers.js +66 -0
  127. package/es/components/file-uploader/utils/ensure-handlers.js +53 -0
  128. package/es/components/file-uploader/utils/error-handler.js +84 -0
  129. package/es/components/file-uploader/utils/upload-controllers.js +43 -0
  130. package/es/components/file-uploader/utils/upload-handler.js +68 -0
  131. package/es/components/file-uploader/utils/validate-handlers.js +16 -0
  132. package/es/components/floating-label-input/index.js +46 -0
  133. package/es/components/floating-label-input/index.module.scss.js +30 -0
  134. package/es/components/floating-layer/index.js +14 -0
  135. package/es/components/floating-layer/index.scss.js +31 -0
  136. package/es/components/header/index.js +10 -0
  137. package/es/components/header/index.module.scss.js +16 -0
  138. package/es/components/input-tag/index.js +65 -0
  139. package/es/components/menu/index.js +96 -0
  140. package/es/components/menu/index.module.scss.js +188 -0
  141. package/es/components/model-card/index.js +20 -0
  142. package/es/components/model-card/index.module.scss.js +116 -0
  143. package/es/components/notion-editor/code-block/index.js +18 -0
  144. package/es/components/notion-editor/code-block/languageDetector.js +134 -0
  145. package/es/components/notion-editor/code-block/languages.js +42 -0
  146. package/es/components/notion-editor/index.js +257 -0
  147. package/es/components/notion-editor/index.scss.js +421 -0
  148. package/es/components/notion-editor/parseMarkdown.js +184 -0
  149. package/es/components/operator-chain/components/AddButton.js +20 -0
  150. package/es/components/operator-chain/components/IOCard.js +8 -0
  151. package/es/components/operator-chain/components/SingleCard.js +12 -0
  152. package/es/components/operator-chain/components/VirtualDropdown.js +56 -0
  153. package/es/components/operator-chain/index.js +83 -0
  154. package/es/components/operator-chain/index.module.scss.js +232 -0
  155. package/es/components/permission-editor/index.js +9 -0
  156. package/es/components/permission-editor/permissionEditModal/index.js +37 -0
  157. package/es/components/permission-editor/permissionEditor/index.js +253 -0
  158. package/es/components/permission-editor/permissionEditor/index.module.scss.js +22 -0
  159. package/es/components/permission-editor/permissionViewPopover/index.js +9 -0
  160. package/es/components/popover-select/index.js +42 -0
  161. package/es/components/popover-select/index.module.scss.js +22 -0
  162. package/es/components/radio-card/index.js +23 -0
  163. package/es/components/radio-card/index.scss.js +58 -0
  164. package/es/components/section-heading/classNames.js +22 -0
  165. package/es/components/section-heading/components.js +27 -0
  166. package/es/components/section-heading/context.js +13 -0
  167. package/es/components/section-heading/index.css.js +648 -0
  168. package/es/components/section-heading/index.js +36 -0
  169. package/es/components/status-tag/index.js +31 -0
  170. package/es/components/tag-group-filter/dataSizeFilter.js +100 -0
  171. package/es/components/tag-group-filter/index.js +53 -0
  172. package/es/components/tag-group-filter/index.module.scss.js +134 -0
  173. package/es/components/tag-group-filter/tagFilter.js +19 -0
  174. package/es/components/tag-view/index.js +138 -0
  175. package/es/components/tag-view/index.module.scss.js +56 -0
  176. package/es/components/tag-view/useSize.js +41 -0
  177. package/es/components/tip-tap/bubble-menu.js +47 -0
  178. package/es/components/tip-tap/editor.js +34 -0
  179. package/es/components/tip-tap/extensions/index.js +133 -0
  180. package/es/components/tip-tap/extensions/markdown-paste.js +148 -0
  181. package/es/components/tip-tap/icons/index.js +29 -0
  182. package/es/components/tip-tap/reader.js +15 -0
  183. package/es/components/tip-tap/styles/editor.css.js +863 -0
  184. package/es/components/tip-tap/toolbar/components/color-picker.js +76 -0
  185. package/es/components/tip-tap/toolbar/components/heading-dropdown.js +44 -0
  186. package/es/components/tip-tap/toolbar/components/image-button.js +26 -0
  187. package/es/components/tip-tap/toolbar/components/link-button.js +107 -0
  188. package/es/components/tip-tap/toolbar/components/table-button.js +37 -0
  189. package/es/components/tip-tap/toolbar/components/toolbar-button.js +7 -0
  190. package/es/components/tip-tap/toolbar/index.js +39 -0
  191. package/es/components/uploadDrawer/UploadStoreProvider.js +61 -0
  192. package/es/components/uploadDrawer/fileUploadDrawer.js +66 -0
  193. package/es/components/uploadDrawer/fileUploadDrawerFileDragger.js +71 -0
  194. package/es/components/uploadDrawer/fileUploadDrawerList.js +54 -0
  195. package/es/components/uploadDrawer/fileUploadDrawerListProgressButton.js +54 -0
  196. package/es/components/uploadDrawer/hooks/useCancelUpload.js +37 -0
  197. package/es/components/uploadDrawer/hooks/useFilterFiles.js +107 -0
  198. package/es/components/uploadDrawer/hooks/useFinishUpload.js +33 -0
  199. package/es/components/uploadDrawer/hooks/useFormatFiles.js +54 -0
  200. package/es/components/uploadDrawer/hooks/useProgressButtonRef.js +22 -0
  201. package/es/components/uploadDrawer/hooks/useRemoveFilesInUploadQueue.js +21 -0
  202. package/es/components/uploadDrawer/hooks/useResumeUnfinishedUploads.js +52 -0
  203. package/es/components/uploadDrawer/hooks/useRetryUpload.js +35 -0
  204. package/es/components/uploadDrawer/hooks/useSaveUnfinishedUploads.js +42 -0
  205. package/es/components/uploadDrawer/hooks/useSetupUpload.js +80 -0
  206. package/es/components/uploadDrawer/hooks/useUploadFileToOSS.js +23 -0
  207. package/es/components/uploadDrawer/index.css.js +511 -0
  208. package/es/components/uploadDrawer/index.js +42 -0
  209. package/es/components/uploadDrawer/utils/calcDisplaySize.js +19 -0
  210. package/es/components/uploadDrawer/utils/constant.js +16 -0
  211. package/es/components/uploadDrawer/utils/createFileToUpload.js +51 -0
  212. package/es/components/uploadDrawer/utils/fileDB/deleteFileInStore.js +28 -0
  213. package/es/components/uploadDrawer/utils/fileDB/deleteObjectStore.js +28 -0
  214. package/es/components/uploadDrawer/utils/fileDB/handleAddFilesToDB.js +37 -0
  215. package/es/components/uploadDrawer/utils/fileDB/index.js +9 -0
  216. package/es/components/uploadDrawer/utils/fileDB/openDB.js +111 -0
  217. package/es/components/uploadDrawer/utils/retrieveAllFiles.js +110 -0
  218. package/es/components/uploadDrawer/utils/shouldCreateNewFile.js +13 -0
  219. package/es/components/uploadDrawer/utils/splitFileIntoChunk.js +15 -0
  220. package/es/index.js +40 -1
  221. package/es/lib/utils.js +8 -0
  222. package/lib/index.js +1 -1
  223. package/package.json +33 -6
  224. package/rollup.es.config.mjs +177 -0
  225. package/tsconfig.rollup.json +7 -0
  226. package/dist/types/components/FileUploader/FileUploaderContextProvider.d.ts +0 -9
  227. package/dist/types/components/FileUploader/FileUploaderFileDragger.d.ts +0 -11
  228. package/dist/types/components/FileUploader/FileUploaderFileDraggerDragAreaDescription.d.ts +0 -4
  229. package/dist/types/components/FileUploader/FileUploaderList.d.ts +0 -1
  230. package/dist/types/components/FileUploader/FileUploaderListItem.d.ts +0 -26
  231. package/dist/types/components/FileUploader/FileUploaderListItemFail.d.ts +0 -5
  232. package/dist/types/components/FileUploader/FileUploaderListItemPaused.d.ts +0 -5
  233. package/dist/types/components/FileUploader/FileUploaderListItemUploading.d.ts +0 -2
  234. package/dist/types/components/FileUploader/FileUploaderMain.d.ts +0 -7
  235. package/dist/types/components/FileUploader/FileUploaderlListItemFinished.d.ts +0 -5
  236. package/dist/types/components/FileUploader/UploadStoreProvider.d.ts +0 -41
  237. package/dist/types/components/FileUploader/hooks/useCheckForDuplicates.d.ts +0 -1
  238. package/dist/types/components/FileUploader/hooks/useCurrentFIleOnInit.d.ts +0 -5
  239. package/dist/types/components/FileUploader/hooks/useCurrentFileOnAllUploaded.d.ts +0 -1
  240. package/dist/types/components/FileUploader/hooks/useCurrentFileOnCancel.d.ts +0 -2
  241. package/dist/types/components/FileUploader/hooks/useCurrentFileOnFail.d.ts +0 -2
  242. package/dist/types/components/FileUploader/hooks/useCurrentFileOnFinished.d.ts +0 -2
  243. package/dist/types/components/FileUploader/hooks/useFileDragAndDrop.d.ts +0 -9
  244. package/dist/types/components/FileUploader/hooks/useRemoveFilesInUploadQueue.d.ts +0 -1
  245. package/dist/types/components/FileUploader/hooks/useResumeUnfinishedUploads.d.ts +0 -1
  246. package/dist/types/components/FileUploader/hooks/useSaveUnfinishedUploads.d.ts +0 -11
  247. package/dist/types/components/FileUploader/hooks/useTranslate.d.ts +0 -1
  248. package/dist/types/components/FileUploader/hooks/useUploadContext.d.ts +0 -26
  249. package/dist/types/components/FileUploader/hooks/useWathUploadQueueAndSetupCurrentFile.d.ts +0 -1
  250. package/dist/types/components/FileUploader/translations.d.ts +0 -4
  251. package/dist/types/components/file-uploader/hooks/use-upload-batch.d.ts +0 -36
  252. package/dist/types/components/file-uploader/hooks/use-upload-control.d.ts +0 -37
  253. package/dist/types/components/file-uploader/hooks/use-upload-files.d.ts +0 -40
  254. package/dist/types/components/file-uploader/hooks/use-upload-operations.d.ts +0 -43
  255. package/dist/types/components/tip-tap/actions/BoldItalicStrikeUnderline.d.ts +0 -4
  256. package/dist/types/components/tip-tap/actions/CodeQuoteHorizontalRule.d.ts +0 -4
  257. package/dist/types/components/tip-tap/actions/Image.d.ts +0 -4
  258. package/dist/types/components/tip-tap/actions/Link.d.ts +0 -5
  259. package/dist/types/components/tip-tap/actions/LinkModifier.d.ts +0 -4
  260. package/dist/types/components/tip-tap/actions/List.d.ts +0 -4
  261. package/dist/types/components/tip-tap/actions/ParagraphHeadings.d.ts +0 -13
  262. package/dist/types/components/tip-tap/actions/Table.d.ts +0 -4
  263. package/dist/types/components/tip-tap/actions/TextAligment.d.ts +0 -4
  264. package/dist/types/components/tip-tap/actions/UndoRedo.d.ts +0 -4
  265. package/dist/types/components/tip-tap/actions/action-image.d.ts +0 -4
  266. package/dist/types/components/tip-tap/actions/action-link.d.ts +0 -5
  267. package/dist/types/components/tip-tap/actions/action-list.d.ts +0 -4
  268. package/dist/types/components/tip-tap/actions/action-table.d.ts +0 -4
  269. package/dist/types/components/tip-tap/actions/bold-italic-strike-underline.d.ts +0 -4
  270. package/dist/types/components/tip-tap/actions/code-quote-horizontalRule.d.ts +0 -4
  271. package/dist/types/components/tip-tap/actions/highlight-textcolor-fontsize.d.ts +0 -4
  272. package/dist/types/components/tip-tap/actions/link-modifier.d.ts +0 -4
  273. package/dist/types/components/tip-tap/actions/paragraph-headings.d.ts +0 -13
  274. package/dist/types/components/tip-tap/actions/text-aligment.d.ts +0 -4
  275. package/dist/types/components/tip-tap/actions/undo-redo.d.ts +0 -4
  276. package/dist/types/components/tip-tap/extensions/DropHandler.d.ts +0 -2
  277. package/dist/types/components/tip-tap/extensions/FontSize.d.ts +0 -20
  278. package/dist/types/components/tip-tap/extensions/PatseHandler.d.ts +0 -3
  279. package/dist/types/components/tip-tap/extensions/drop-handler.d.ts +0 -2
  280. package/dist/types/components/tip-tap/extensions/font-size.d.ts +0 -20
  281. package/dist/types/components/tip-tap/extensions/patse-handler.d.ts +0 -3
  282. package/dist/types/components/tip-tap/icons/HumbleiconsAlignTextCenter.d.ts +0 -3
  283. package/dist/types/components/tip-tap/icons/HumbleiconsAlignTextJustify.d.ts +0 -3
  284. package/dist/types/components/tip-tap/icons/HumbleiconsAlignTextLeft.d.ts +0 -3
  285. package/dist/types/components/tip-tap/icons/HumbleiconsAlignTextRight.d.ts +0 -3
  286. package/dist/types/components/tip-tap/icons/MaterialSymbolsAddLink.d.ts +0 -3
  287. package/dist/types/components/tip-tap/icons/MaterialSymbolsAddPhotoAlternateOutline.d.ts +0 -3
  288. package/dist/types/components/tip-tap/icons/MaterialSymbolsCode.d.ts +0 -3
  289. package/dist/types/components/tip-tap/icons/MaterialSymbolsEditOutline.d.ts +0 -3
  290. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatColorText.d.ts +0 -3
  291. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH1.d.ts +0 -3
  292. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH2.d.ts +0 -3
  293. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH3.d.ts +0 -3
  294. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH4.d.ts +0 -3
  295. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH5.d.ts +0 -3
  296. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH6.d.ts +0 -3
  297. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatInkHighlighterOutlineSharp.d.ts +0 -3
  298. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatListBulleted.d.ts +0 -3
  299. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatListNumbered.d.ts +0 -3
  300. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatParagraph.d.ts +0 -3
  301. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatQuote.d.ts +0 -3
  302. package/dist/types/components/tip-tap/icons/MaterialSymbolsHorizontalRule.d.ts +0 -3
  303. package/dist/types/components/tip-tap/icons/MaterialSymbolsLinkOff.d.ts +0 -3
  304. package/dist/types/components/tip-tap/icons/MaterialSymbolsRedo.d.ts +0 -3
  305. package/dist/types/components/tip-tap/icons/MaterialSymbolsTable.d.ts +0 -3
  306. package/dist/types/components/tip-tap/icons/MaterialSymbolsUndo.d.ts +0 -3
  307. package/dist/types/components/tip-tap/icons/MdiCodeBlockTags.d.ts +0 -3
  308. package/dist/types/components/tip-tap/icons/MdiFormatBold.d.ts +0 -3
  309. package/dist/types/components/tip-tap/icons/MdiFormatItalic.d.ts +0 -3
  310. package/dist/types/components/tip-tap/icons/MdiFormatStrikethroughVariant.d.ts +0 -3
  311. package/dist/types/components/tip-tap/icons/MdiFormatUnderline.d.ts +0 -3
  312. package/dist/types/components/tip-tap/menus/BubbleMenu.d.ts +0 -7
  313. package/dist/types/components/tip-tap/menus/FixedMenu.d.ts +0 -9
  314. package/dist/types/components/tip-tap/menus/LinkFloatingMenu.d.ts +0 -6
  315. package/dist/types/components/tip-tap/menus/ParagraphFloatingMenu.d.ts +0 -6
  316. package/dist/types/components/tip-tap/menus/bubble-menu.d.ts +0 -7
  317. package/dist/types/components/tip-tap/menus/fixed-menu.d.ts +0 -9
  318. package/dist/types/components/tip-tap/menus/link-floating-menu.d.ts +0 -6
  319. package/dist/types/components/tip-tap/menus/paragraph-floating-menu.d.ts +0 -6
  320. package/dist/types/components/tip-tap/the-editor.d.ts +0 -4
  321. package/dist/types/components/tip-tap/utils/add-image-to-editor.d.ts +0 -2
  322. package/dist/types/components/tip-tap/utils/addImageToEditor.d.ts +0 -2
  323. package/dist/types/components/tip-tap/utils/markdown-detector.d.ts +0 -33
  324. package/dist/types/components/tip-tap/utils/parse-markdown.d.ts +0 -2
  325. package/dist/types/components/tip-tap/utils/parseMarkDown.d.ts +0 -2
  326. package/dist/types/components/tip-tap-2/demo/index.d.ts +0 -1
  327. package/dist/types/components/tip-tap-2/index.d.ts +0 -26
  328. package/dist/types/demo/layout/index.d.ts +0 -2
@@ -0,0 +1,54 @@
1
+ import { __awaiter } from 'tslib';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useRef, useState, useEffect } from 'react';
4
+ import DataTable from '../data-table/index.js';
5
+ import { parseTable } from 'arrow-js-ffi';
6
+ import initWasm, { wasmMemory, readParquet } from 'parquet-wasm';
7
+
8
+ initWasm();
9
+ let WASM_MEMORY;
10
+ function ParquetPreview(props) {
11
+ var _a;
12
+ const ref = useRef(null);
13
+ const [parquetData, setParquetData] = useState();
14
+ const [containerHeight, setContainerHeight] = useState();
15
+ const [containerWidth, setContainerWidth] = useState();
16
+ useEffect(() => {
17
+ if (!WASM_MEMORY) {
18
+ WASM_MEMORY = wasmMemory();
19
+ }
20
+ let ffiTable;
21
+ (() => __awaiter(this, void 0, void 0, function* () {
22
+ var _a, _b, _c, _d;
23
+ try {
24
+ const resp = yield fetch(props.filePath);
25
+ const parquetUint8Array = new Uint8Array(yield resp.arrayBuffer());
26
+ // const start = new Date().getTime();
27
+ ffiTable = readParquet(parquetUint8Array).intoFFI();
28
+ const arrowTable = parseTable(WASM_MEMORY.buffer, ffiTable.arrayAddrs(), ffiTable.schemaAddr());
29
+ // 获取列名作为表头
30
+ const head = arrowTable.schema.fields.map((field) => field.name);
31
+ // console.log('+++ head', head);
32
+ // 获取数据
33
+ const data = [];
34
+ console.log('+++ arrowTable.numRows', arrowTable.numRows);
35
+ for (let i = 0; i < arrowTable.numRows; i++) {
36
+ data.push(Object.assign(Object.assign({}, arrowTable.get(i).toJSON()), { key: i.toString() }));
37
+ }
38
+ // const end = new Date().getTime();
39
+ // console.log('+++ 耗时', end - start);
40
+ setParquetData({ head, data });
41
+ setContainerHeight((_a = ref.current) === null || _a === void 0 ? void 0 : _a.clientHeight);
42
+ setContainerWidth((_b = ref.current) === null || _b === void 0 ? void 0 : _b.clientWidth);
43
+ (_c = props === null || props === void 0 ? void 0 : props.onSuccess) === null || _c === void 0 ? void 0 : _c.call(props);
44
+ ffiTable.drop();
45
+ }
46
+ catch (e) {
47
+ (_d = props === null || props === void 0 ? void 0 : props.onError) === null || _d === void 0 ? void 0 : _d.call(props, e);
48
+ }
49
+ }))();
50
+ }, []);
51
+ return (jsx("div", { style: { height: '100%', overflow: 'auto', wordBreak: 'break-all' }, ref: ref, children: parquetData && (jsx(DataTable, { head: parquetData.head, data: parquetData.data, containerHeight: containerHeight, containerWidth: containerWidth, maxLines: (_a = props.tableConfig) === null || _a === void 0 ? void 0 : _a.maxLines })) }));
52
+ }
53
+
54
+ export { ParquetPreview as default };
@@ -0,0 +1,215 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { appendAsset } from '../util.js';
3
+ import { useRef, useEffect } from 'react';
4
+ import { wrap } from './index.module.scss.js';
5
+
6
+ class OutputScale {
7
+ constructor() {
8
+ const pixelRatio = window.devicePixelRatio || 1;
9
+ this.sx = pixelRatio;
10
+ this.sy = pixelRatio;
11
+ }
12
+ get scaled() {
13
+ return this.sx !== 1 || this.sy !== 1;
14
+ }
15
+ }
16
+ function approximateFraction(x) {
17
+ // Fast paths for int numbers or their inversions.
18
+ if (Math.floor(x) === x) {
19
+ return [x, 1];
20
+ }
21
+ const xinv = 1 / x;
22
+ const limit = 8;
23
+ if (xinv > limit) {
24
+ return [1, limit];
25
+ }
26
+ else if (Math.floor(xinv) === xinv) {
27
+ return [1, xinv];
28
+ }
29
+ const x_ = x > 1 ? xinv : x;
30
+ // a/b and c/d are neighbours in Farey sequence.
31
+ let a = 0, b = 1, c = 1, d = 1;
32
+ // Limiting search to order 8.
33
+ // eslint-disable-next-line no-constant-condition
34
+ while (true) {
35
+ // Generating next term in sequence (order of q).
36
+ const p = a + c, q = b + d;
37
+ if (q > limit) {
38
+ break;
39
+ }
40
+ if (x_ <= p / q) {
41
+ c = p;
42
+ d = q;
43
+ }
44
+ else {
45
+ a = p;
46
+ b = q;
47
+ }
48
+ }
49
+ let result;
50
+ // Select closest of the neighbours to x.
51
+ if (x_ - a / b < c / d - x_) {
52
+ result = x_ === x ? [a, b] : [b, a];
53
+ }
54
+ else {
55
+ result = x_ === x ? [c, d] : [d, c];
56
+ }
57
+ return result;
58
+ }
59
+ function roundToDivide(x, div) {
60
+ const r = x % div;
61
+ return r === 0 ? x : Math.round(x - r + div);
62
+ }
63
+ function PdfPreview(props) {
64
+ const { filePath } = props;
65
+ const pdfContainer = useRef(null);
66
+ const pageSize = 3;
67
+ const lastScrollTop = useRef(0);
68
+ // eslint-disable-next-line
69
+ const pdfDoc = useRef(null);
70
+ const totalPages = useRef(0);
71
+ const loadedHeight = useRef(0);
72
+ const currentPage = useRef(0);
73
+ const loading = useRef(false);
74
+ const onScroll = (e) => {
75
+ const currentScrollTop = e.target.scrollTop;
76
+ // console.log('totalPages.current', totalPages.current);
77
+ // console.log('currentScrollTop', currentScrollTop);
78
+ // console.log('lastScrollTop.current', lastScrollTop.current);
79
+ // console.log('currentPage.current', currentPage.current);
80
+ // console.log(
81
+ // 'loadedHeight.current - 200 - pdfContainer.current!.clientHeight',
82
+ // loadedHeight.current - 200 - pdfContainer.current!.clientHeight,
83
+ // );
84
+ if (currentScrollTop > lastScrollTop.current &&
85
+ currentPage.current < totalPages.current &&
86
+ currentScrollTop > loadedHeight.current - 200 - pdfContainer.current.clientHeight) {
87
+ // debugger;
88
+ // 加载更多
89
+ loadMore();
90
+ }
91
+ lastScrollTop.current = currentScrollTop;
92
+ };
93
+ const loadMore = () => {
94
+ if (loading.current) {
95
+ return Promise.resolve();
96
+ }
97
+ // console.log('+++ load more');
98
+ loading.current = true;
99
+ // console.log('loading.current', loading.current);
100
+ const lastPage = currentPage.current + pageSize > totalPages.current
101
+ ? totalPages.current
102
+ : currentPage.current + pageSize;
103
+ return new Promise((resolve) => {
104
+ if (pdfDoc.current) {
105
+ const canvasContainer = pdfContainer.current;
106
+ let length = lastPage - currentPage.current;
107
+ for (let i = currentPage.current + 1; i <= lastPage; i++) {
108
+ // 使用 pdfDoc.getPage(i) 获取第 i 页的数据
109
+ pdfDoc.current
110
+ .getPage(i)
111
+ // eslint-disable-next-line
112
+ .then((page) => {
113
+ // 可通过scale来调节初始的缩放比
114
+ const viewport = page.getViewport({
115
+ scale: window.devicePixelRatio || 1,
116
+ });
117
+ // 创建一个 canvas 元素,并设置元素的画布属性
118
+ const canvas = document.createElement('canvas');
119
+ canvas.setAttribute('id', 'the-canvas' + i);
120
+ const context = canvas.getContext('2d');
121
+ const MAX_CANVAS_PIXELS = 16777216;
122
+ const outputScale = new OutputScale();
123
+ const maxCanvasPixels = MAX_CANVAS_PIXELS;
124
+ const { width, height } = viewport;
125
+ {
126
+ const pixelsInViewport = width * height;
127
+ const maxScale = Math.sqrt(maxCanvasPixels / pixelsInViewport);
128
+ if (outputScale.sx > maxScale || outputScale.sy > maxScale) {
129
+ outputScale.sx = maxScale;
130
+ outputScale.sy = maxScale;
131
+ }
132
+ }
133
+ const sfx = approximateFraction(outputScale.sx);
134
+ const sfy = approximateFraction(outputScale.sy);
135
+ canvas.width = roundToDivide(width * outputScale.sx, sfx[0]);
136
+ canvas.height = roundToDivide(height * outputScale.sy, sfy[0]);
137
+ const { style } = canvas;
138
+ style.width = roundToDivide(width, sfx[1]) + 'px';
139
+ style.height = roundToDivide(height, sfy[1]) + 'px';
140
+ const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null;
141
+ const renderContext = {
142
+ canvasContext: context,
143
+ transform,
144
+ viewport,
145
+ };
146
+ // 将canvas元素加入到容器中
147
+ canvasContainer.appendChild(canvas);
148
+ // console.log('canvas.clientHeight', canvas.clientHeight);
149
+ // 使用 page.render 将数据渲染到画布上
150
+ return page.render(renderContext).promise.then(() => {
151
+ return new Promise((_resolve) => {
152
+ setTimeout(() => {
153
+ // console.log('timeout canvas.clientHeight', canvas.clientHeight);
154
+ loadedHeight.current = loadedHeight.current + canvas.clientHeight;
155
+ _resolve(1);
156
+ });
157
+ });
158
+ });
159
+ })
160
+ // eslint-disable-next-line
161
+ .catch((e) => { })
162
+ .finally(() => {
163
+ length--;
164
+ if (length === 0) {
165
+ if (loadedHeight.current < pdfContainer.current.clientHeight &&
166
+ lastPage < totalPages.current) {
167
+ setTimeout(loadMore);
168
+ }
169
+ resolve(1);
170
+ }
171
+ });
172
+ }
173
+ }
174
+ else {
175
+ resolve(0);
176
+ }
177
+ }).then(() => {
178
+ loading.current = false;
179
+ currentPage.current = lastPage;
180
+ // console.log('loading.current', loading.current);
181
+ });
182
+ };
183
+ useEffect(() => {
184
+ appendAsset([
185
+ 'https://haina-datahub.zero2x.org/ossRoute/frontend/resources/npm/pdfjs-dist/4.7.76/build/pdf.min.mjs',
186
+ 'https://haina-datahub.zero2x.org/ossRoute/frontend/resources/npm/pdfjs-dist/4.7.76/build/pdf.worker.min.mjs',
187
+ ]).then(() => {
188
+ // eslint-disable-next-line
189
+ const pdfjsLib = window.pdfjsLib;
190
+ pdfjsLib
191
+ .getDocument({
192
+ url: filePath,
193
+ cMapUrl: 'https://haina-datahub.zero2x.org/ossRoute/frontend/resources/npm/pdfjs-dist/4.7.76/cmaps/',
194
+ cMapPacked: true,
195
+ })
196
+ // eslint-disable-next-line
197
+ .promise.then((doc) => {
198
+ var _a;
199
+ pdfDoc.current = doc;
200
+ // pdf 的总页数
201
+ totalPages.current = doc.numPages;
202
+ loadMore();
203
+ (_a = props === null || props === void 0 ? void 0 : props.onSuccess) === null || _a === void 0 ? void 0 : _a.call(props);
204
+ })
205
+ // eslint-disable-next-line
206
+ .catch((e) => {
207
+ var _a;
208
+ (_a = props === null || props === void 0 ? void 0 : props.onError) === null || _a === void 0 ? void 0 : _a.call(props, e);
209
+ });
210
+ });
211
+ }, [filePath]);
212
+ return jsx("div", { ref: pdfContainer, className: wrap, onScroll: onScroll });
213
+ }
214
+
215
+ export { PdfPreview as default };
@@ -0,0 +1,16 @@
1
+ var style = document.createElement('style');
2
+ style.textContent = `.index-module__wrap___eXiLF {
3
+ display: flex;
4
+ flex-direction: column;
5
+ align-items: center;
6
+ height: 100%;
7
+ overflow: auto;
8
+ }
9
+ .index-module__wrap___eXiLF canvas {
10
+ max-width: 100%;
11
+ }`;
12
+ document.head.appendChild(style);
13
+
14
+ var wrap = "index-module__wrap___eXiLF";
15
+
16
+ export { wrap };
@@ -0,0 +1,43 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useRef, useState, useEffect } from 'react';
3
+ import DataTable from '../data-table/index.js';
4
+ import { wrap } from './index.module.scss.js';
5
+
6
+ function TablePreview(props) {
7
+ var _a, _b;
8
+ const ref = useRef(null);
9
+ const [csvData, setCsvData] = useState();
10
+ const [csvContainerHeight, setCsvContainerHeight] = useState();
11
+ const [csvContainerWidth, setCsvContainerWidth] = useState();
12
+ useEffect(() => {
13
+ var _a, _b;
14
+ const { tableConfig } = props;
15
+ const { header, rows = [] } = tableConfig || {};
16
+ if (header) {
17
+ const head = header;
18
+ const data = [];
19
+ rows.forEach((row, rowIndex) => {
20
+ const rowData = {
21
+ key: rowIndex.toString(),
22
+ };
23
+ head.forEach((cell, index) => {
24
+ rowData[cell] = row[index];
25
+ });
26
+ data.push(rowData);
27
+ });
28
+ setCsvData({
29
+ head,
30
+ data,
31
+ });
32
+ setCsvContainerHeight(ref.current.clientHeight);
33
+ setCsvContainerWidth(ref.current.clientWidth);
34
+ (_a = props === null || props === void 0 ? void 0 : props.onSuccess) === null || _a === void 0 ? void 0 : _a.call(props);
35
+ }
36
+ else {
37
+ (_b = props === null || props === void 0 ? void 0 : props.onError) === null || _b === void 0 ? void 0 : _b.call(props, new Error('tableConfig.header is required'));
38
+ }
39
+ }, []);
40
+ return (jsx("div", { ref: ref, className: wrap, children: csvData ? (jsx(DataTable, { head: csvData.head, data: csvData.data, maxLines: (_a = props.tableConfig) === null || _a === void 0 ? void 0 : _a.maxLines, total: (_b = props.tableConfig) === null || _b === void 0 ? void 0 : _b.rowCount, containerHeight: csvContainerHeight, containerWidth: csvContainerWidth })) : null }));
41
+ }
42
+
43
+ export { TablePreview as default };
@@ -0,0 +1,11 @@
1
+ var style = document.createElement('style');
2
+ style.textContent = `.index-module__wrap___YSAno {
3
+ height: 100%;
4
+ overflow-x: hidden;
5
+ overflow-y: auto;
6
+ }`;
7
+ document.head.appendChild(style);
8
+
9
+ var wrap = "index-module__wrap___YSAno";
10
+
11
+ export { wrap };
@@ -0,0 +1,24 @@
1
+ import { __awaiter } from 'tslib';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useState, useEffect } from 'react';
4
+ import { fetchFileWithAutoCode } from '../util.js';
5
+
6
+ function TxtPreview(props) {
7
+ const [content, setContent] = useState('');
8
+ useEffect(() => {
9
+ (() => __awaiter(this, void 0, void 0, function* () {
10
+ var _a, _b;
11
+ try {
12
+ const result = yield fetchFileWithAutoCode(props.filePath);
13
+ setContent(result);
14
+ (_a = props === null || props === void 0 ? void 0 : props.onSuccess) === null || _a === void 0 ? void 0 : _a.call(props);
15
+ }
16
+ catch (e) {
17
+ (_b = props === null || props === void 0 ? void 0 : props.onError) === null || _b === void 0 ? void 0 : _b.call(props, e);
18
+ }
19
+ }))();
20
+ }, []);
21
+ return jsx("div", { style: { whiteSpace: 'pre-wrap', height: '100%', overflow: 'auto' }, children: content });
22
+ }
23
+
24
+ export { TxtPreview as default };
@@ -0,0 +1,94 @@
1
+ import { __awaiter } from 'tslib';
2
+ import { getFileExt } from '@zjlab-fe/util';
3
+
4
+ function appendAsset(assetUrlArr) {
5
+ return new Promise((resolve) => {
6
+ if (assetUrlArr && assetUrlArr.length > 0) {
7
+ const assetArr = [...assetUrlArr];
8
+ // eslint-disable-next-line
9
+ function appendNext() {
10
+ if (assetArr.length > 0) {
11
+ setTimeout(innerAppend);
12
+ }
13
+ else {
14
+ setTimeout(() => {
15
+ resolve(null);
16
+ });
17
+ }
18
+ }
19
+ // eslint-disable-next-line
20
+ function innerAppend() {
21
+ const currentAssetUrl = assetArr.shift();
22
+ const ext = getFileExt(currentAssetUrl);
23
+ if (ext === 'js' || ext === 'mjs') {
24
+ if (!document.querySelector(`script[src="${currentAssetUrl}"]`)) {
25
+ const script = document.createElement('script');
26
+ script.src = currentAssetUrl;
27
+ if (ext === 'mjs') {
28
+ script.type = 'module';
29
+ }
30
+ document.head.appendChild(script);
31
+ script.onload = appendNext;
32
+ script.onerror = appendNext;
33
+ return;
34
+ }
35
+ }
36
+ else if (ext === 'css') {
37
+ if (!document.querySelector(`link[href="${currentAssetUrl}"]`)) {
38
+ const link = document.createElement('link');
39
+ link.rel = 'stylesheet';
40
+ link.href = currentAssetUrl;
41
+ document.head.appendChild(link);
42
+ link.onload = appendNext;
43
+ link.onerror = appendNext;
44
+ return;
45
+ }
46
+ }
47
+ appendNext();
48
+ }
49
+ innerAppend();
50
+ }
51
+ else {
52
+ resolve(null);
53
+ }
54
+ });
55
+ }
56
+ /**
57
+ * Fetch 文件并自动判断编码解析(未知编码场景)
58
+ * 优先尝试:GBK → GB2312 → Big5 → UTF-8,按实际业务调整优先级
59
+ * @param {string} fileUrl - 文件地址
60
+ * @returns {Promise<string>} 解码后的正常字符串
61
+ */
62
+ function fetchFileWithAutoCode(fileUrl) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ const response = yield fetch(fileUrl);
65
+ if (!response.ok)
66
+ throw new Error(`请求失败:${response.status}`);
67
+ const arrayBuffer = yield response.arrayBuffer();
68
+ let resultStr = '';
69
+ // 定义待尝试的编码列表(按业务场景调整优先级)
70
+ const codeList = ['utf-8', 'gbk', 'gb2312', 'big5', 'gb18030'];
71
+ // 遍历编码尝试解码,成功则立即返回
72
+ for (const code of codeList) {
73
+ try {
74
+ // `fatal: true` 表示编码不匹配时抛出错误,进入下一次尝试
75
+ const decoder = new TextDecoder(code, { fatal: true });
76
+ resultStr = decoder.decode(arrayBuffer);
77
+ // console.log(`文件编码匹配成功:${code}`);
78
+ break; // 解码成功,退出循环
79
+ }
80
+ catch (e) {
81
+ // 该编码不匹配,继续尝试下一个
82
+ continue;
83
+ }
84
+ }
85
+ // 若所有编码都失败,返回原始UTF-8解码结果(兜底)
86
+ if (!resultStr) {
87
+ resultStr = new TextDecoder('utf-8').decode(arrayBuffer);
88
+ console.warn('未匹配到已知编码,返回UTF-8兜底结果(可能乱码)');
89
+ }
90
+ return resultStr;
91
+ });
92
+ }
93
+
94
+ export { appendAsset, fetchFileWithAutoCode };
@@ -0,0 +1,39 @@
1
+ var style = document.createElement('style');
2
+ style.textContent = `.styled-progress-circle {
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ }
7
+
8
+ .styled-progress-circle svg {
9
+ transform: rotate(-90deg);
10
+ }
11
+
12
+ .styled-progress-circle circle {
13
+ fill: none;
14
+ stroke-width: 10;
15
+ stroke-linecap: round;
16
+ }
17
+
18
+ .styled-progress-circle .circle-bg {
19
+ stroke: var(--uploader-progress-track);
20
+ }
21
+
22
+ .styled-progress-circle .circle-progress {
23
+ stroke: var(--uploader-progress-fill);
24
+ transition: stroke-dashoffset 0.3s cubic-bezier(0.4, 0, 0.2, 1);
25
+ }
26
+
27
+ .styled-progress-circle.progress-failed .circle-progress {
28
+ stroke: var(--uploader-progress-failed);
29
+ }
30
+
31
+ .styled-progress-circle.progress-success .circle-progress {
32
+ stroke: var(--uploader-progress-success);
33
+ }
34
+
35
+
36
+
37
+
38
+ `;
39
+ document.head.appendChild(style);
@@ -0,0 +1,11 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+
3
+ // Circle Progress Component
4
+ function CircleProgress({ percent, isFailed, isSuccess, }) {
5
+ const radius = 50;
6
+ const circumference = 2 * Math.PI * radius;
7
+ const offset = circumference - (percent / 100) * circumference;
8
+ return (jsx("div", { className: `styled-progress-circle ${isFailed ? 'progress-failed' : isSuccess ? 'progress-success' : ''}`, children: jsxs("svg", { width: "20", height: "20", viewBox: "0 0 120 120", children: [jsx("circle", { className: "circle-bg", cx: "60", cy: "60", r: radius }), jsx("circle", { className: "circle-progress", cx: "60", cy: "60", r: radius, strokeDasharray: circumference, strokeDashoffset: offset })] }) }));
9
+ }
10
+
11
+ export { CircleProgress };
@@ -0,0 +1,74 @@
1
+ import { __awaiter } from 'tslib';
2
+ import { useState, useRef, useCallback } from 'react';
3
+ import { readEntry } from '../utils/directory-reader.js';
4
+
5
+ function useDropZone({ disabled, directory, accept, onFilesReady, onError }) {
6
+ const [isDragging, setIsDragging] = useState(false);
7
+ const dragCounterRef = useRef(0);
8
+ const handleDragEnter = useCallback((e) => {
9
+ e.preventDefault();
10
+ e.stopPropagation();
11
+ if (disabled)
12
+ return;
13
+ dragCounterRef.current += 1;
14
+ if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {
15
+ setIsDragging(true);
16
+ }
17
+ }, [disabled]);
18
+ const handleDragOver = useCallback((e) => {
19
+ e.preventDefault();
20
+ e.stopPropagation();
21
+ if (disabled)
22
+ return;
23
+ e.dataTransfer.dropEffect = 'copy';
24
+ }, [disabled]);
25
+ const handleDragLeave = useCallback((e) => {
26
+ e.preventDefault();
27
+ e.stopPropagation();
28
+ if (disabled)
29
+ return;
30
+ dragCounterRef.current -= 1;
31
+ if (dragCounterRef.current === 0) {
32
+ setIsDragging(false);
33
+ }
34
+ }, [disabled]);
35
+ const handleDrop = useCallback((e) => __awaiter(this, void 0, void 0, function* () {
36
+ e.preventDefault();
37
+ e.stopPropagation();
38
+ if (disabled)
39
+ return;
40
+ setIsDragging(false);
41
+ dragCounterRef.current = 0;
42
+ try {
43
+ const items = Array.from(e.dataTransfer.items);
44
+ const filesWithPaths = [];
45
+ // Always use webkitGetAsEntry for better handling
46
+ // When directory=false, directories will be skipped automatically
47
+ const entries = items.map((item) => item.webkitGetAsEntry()).filter(Boolean);
48
+ for (const entry of entries) {
49
+ if (entry) {
50
+ const entryFiles = yield readEntry(entry, accept, directory);
51
+ filesWithPaths.push(...entryFiles);
52
+ }
53
+ }
54
+ if (filesWithPaths.length > 0) {
55
+ onFilesReady(filesWithPaths);
56
+ }
57
+ }
58
+ catch (error) {
59
+ onError === null || onError === void 0 ? void 0 : onError({
60
+ type: 'DROP_FAILED',
61
+ message: error instanceof Error ? error.message : 'Failed to process dropped files',
62
+ });
63
+ }
64
+ }), [disabled, directory, accept, onFilesReady, onError]);
65
+ return {
66
+ isDragging,
67
+ handleDragEnter,
68
+ handleDragOver,
69
+ handleDragLeave,
70
+ handleDrop,
71
+ };
72
+ }
73
+
74
+ export { useDropZone };
@@ -0,0 +1,52 @@
1
+ import { __awaiter } from 'tslib';
2
+ import { useCallback } from 'react';
3
+
4
+ function useFileValidation({ maxSize, maxFiles, fileValidation, onDrop, onError, }) {
5
+ const validateFiles = useCallback((files) => __awaiter(this, void 0, void 0, function* () {
6
+ const valid = [];
7
+ const invalid = [];
8
+ // Step 1: Filter by file size
9
+ for (const fileWithPath of files) {
10
+ if (maxSize && fileWithPath.file.size > maxSize) {
11
+ invalid.push(fileWithPath);
12
+ }
13
+ else {
14
+ valid.push(fileWithPath);
15
+ }
16
+ }
17
+ // Step 2: Filter by max files count
18
+ if (maxFiles && valid.length > maxFiles) {
19
+ const excess = valid.splice(maxFiles);
20
+ invalid.push(...excess);
21
+ }
22
+ // Step 3: Apply custom validation callback
23
+ if (fileValidation && valid.length > 0) {
24
+ const validationResults = yield Promise.all(valid.map((fwp) => fileValidation(fwp.file)));
25
+ const passedFiles = valid.filter((_, index) => validationResults[index]);
26
+ const failedFiles = valid.filter((_, index) => !validationResults[index]);
27
+ valid.length = 0;
28
+ valid.push(...passedFiles);
29
+ invalid.push(...failedFiles);
30
+ }
31
+ return { valid, invalid };
32
+ }), [maxSize, maxFiles, fileValidation]);
33
+ const processFiles = useCallback((files) => __awaiter(this, void 0, void 0, function* () {
34
+ const { valid, invalid } = yield validateFiles(files);
35
+ if (invalid.length > 0) {
36
+ const error = {
37
+ type: maxSize && invalid.some((fwp) => fwp.file.size > maxSize) ? 'FILE_TOO_LARGE' : 'TOO_MANY_FILES',
38
+ message: maxSize && invalid.some((fwp) => fwp.file.size > maxSize)
39
+ ? `${invalid.length} file(s) exceed maximum size`
40
+ : `Too many files. Maximum ${maxFiles} allowed`,
41
+ rejectedFiles: invalid.map((fwp) => fwp.file),
42
+ };
43
+ onError === null || onError === void 0 ? void 0 : onError(error);
44
+ }
45
+ if (valid.length > 0) {
46
+ onDrop(valid);
47
+ }
48
+ }), [validateFiles, maxSize, maxFiles, onDrop, onError]);
49
+ return { processFiles };
50
+ }
51
+
52
+ export { useFileValidation };
@@ -0,0 +1,19 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+
3
+ function UploadIcon(props) {
4
+ return (jsx("svg", Object.assign({ width: "34", height: "31", viewBox: "0 0 34 31", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, props, { children: jsxs("g", { id: "\u00E4\u00B8\u008A\u00E4\u00BC\u00A0\u00E6\u008F\u0092\u00E5\u009B\u00BE", children: [jsx("path", { id: "Vector", d: "M26 8.66665V29.7043C26.0013 29.867 25.9705 30.0284 25.9094 30.1792C25.8483 30.33 25.7581 30.4672 25.6439 30.5831C25.5297 30.699 25.3938 30.7913 25.244 30.8547C25.0941 30.918 24.9332 30.9512 24.7705 30.9523H1.22943C0.903577 30.9523 0.591055 30.823 0.360528 30.5927C0.130002 30.3624 0.000328142 30.05 0 29.7241V1.22819C0 0.563332 0.553428 0 1.23562 0H17.3333V7.42856C17.3333 7.75692 17.4638 8.07184 17.6959 8.30402C17.9281 8.53621 18.243 8.66665 18.5714 8.66665H26ZM26 6.19047H19.8095V0.00371423L26 6.19047Z", fill: "#B9D6FF" }), jsxs("g", { id: "Group 1000006993", children: [jsx("circle", { id: "Ellipse 87", cx: "26", cy: "23", r: "8", fill: "#1775FE" }), jsx("path", { id: "Vector_2", d: "M26.4545 24.315V27.5714H25.5455V24.315L24.3034 25.2023L23.775 24.4625L26 22.8732L28.225 24.4625L27.6966 25.2023L26.4545 24.315ZM31 24.4545C31 25.7098 29.9825 26.7273 28.7273 26.7273H27.3636V25.8182H28.7273C29.0749 25.8184 29.4094 25.6858 29.6625 25.4476C29.9156 25.2094 30.0682 24.8835 30.0891 24.5365C30.11 24.1896 29.9976 23.8477 29.7749 23.5808C29.5522 23.314 29.236 23.1422 28.8909 23.1007L28.4568 23.0489L28.4918 22.6127C28.4973 22.5455 28.5 22.4775 28.5 22.4091C28.5 21.0284 27.3807 19.9091 26 19.9091C25.4245 19.9091 24.8666 20.1077 24.4205 20.4712C23.9744 20.8347 23.6672 21.3409 23.5509 21.9045L23.4955 22.175L23.2295 22.2507C22.8492 22.3591 22.5146 22.5885 22.2763 22.9042C22.038 23.2198 21.9091 23.6045 21.9091 24C21.9091 24.4822 22.1006 24.9447 22.4416 25.2856C22.7826 25.6266 23.2451 25.8182 23.7273 25.8182H24.6364V26.7273H23.7273C22.2211 26.7273 21 25.5061 21 24C21 22.8655 21.6989 21.8682 22.7239 21.4632C22.9292 20.753 23.3598 20.1288 23.9506 19.6846C24.5415 19.2403 25.2607 19.0001 26 19C27.8414 19 29.3416 20.4598 29.4068 22.2852C29.8687 22.4302 30.2723 22.7187 30.5588 23.1089C30.8453 23.499 30.9999 23.9705 31 24.4545Z", fill: "white" })] })] }) })));
5
+ }
6
+ function FileIcon() {
7
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z" }) }));
8
+ }
9
+ function CloseIcon() {
10
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }));
11
+ }
12
+ function PauseIcon() {
13
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M6 19h4V5H6v14zm8-14v14h4V5h-4z" }) }));
14
+ }
15
+ function ResumeIcon() {
16
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M8 5v14l11-7z" }) }));
17
+ }
18
+
19
+ export { CloseIcon, FileIcon, PauseIcon, ResumeIcon, UploadIcon as default };