@parallelworks/ui 0.21.0 → 0.21.2

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 (319) hide show
  1. package/README.md +5 -0
  2. package/dist/ai/components/AttachmentManager.js +6 -4
  3. package/dist/ai/components/AttachmentUpload.js +11 -7
  4. package/dist/ai/components/BlockedGroupBanner.js +2 -2
  5. package/dist/ai/components/BranchNavigator.js +4 -3
  6. package/dist/ai/components/ChatEmptyState.js +8 -5
  7. package/dist/ai/components/ChatInput.js +6 -4
  8. package/dist/ai/components/ChatMessage.js +18 -10
  9. package/dist/ai/components/ChatMessageList.js +4 -3
  10. package/dist/ai/components/ChatSidebar.js +18 -10
  11. package/dist/ai/components/ChatThread.js +4 -3
  12. package/dist/ai/components/ComposerChrome.js +2 -2
  13. package/dist/ai/components/ModelSelector.js +17 -12
  14. package/dist/ai/components/ShareDialog.js +4 -3
  15. package/dist/ai/components/agent/ActivityLine.js +3 -2
  16. package/dist/ai/components/agent/AgentMessageParts.js +9 -7
  17. package/dist/ai/ui/Dropdown.js +2 -2
  18. package/dist/ai/ui/Notice.js +5 -3
  19. package/dist/ai/ui/sidebar.js +2 -2
  20. package/dist/components/Button.js +3 -2
  21. package/dist/components/Callout.js +4 -3
  22. package/dist/components/CollapsiblePanel.js +2 -2
  23. package/dist/components/CopyToClipboard.js +8 -4
  24. package/dist/components/CreateModal.js +11 -7
  25. package/dist/components/Dropdown.js +2 -2
  26. package/dist/components/Filter.js +2 -2
  27. package/dist/components/Indicator.js +14 -9
  28. package/dist/components/Input.js +6 -4
  29. package/dist/components/Listbox.js +2 -2
  30. package/dist/components/Loader.js +1 -1
  31. package/dist/components/PageHeader.js +10 -7
  32. package/dist/components/Sort.js +6 -4
  33. package/dist/components/StatusIcons.d.ts +11 -0
  34. package/dist/components/StatusIcons.js +20 -0
  35. package/dist/components/Tooltip.js +3 -3
  36. package/dist/components/dropdownUtils.js +2 -2
  37. package/dist/editor/FormCodePanel.js +6 -3
  38. package/dist/file-explorer/FileExplorer.js +72 -23
  39. package/dist/file-explorer/FilePreview/Inline.js +2 -2
  40. package/dist/file-explorer/FilePreview/StreamedBadge.js +2 -2
  41. package/dist/file-explorer/FilePreview/Viewer.js +14 -10
  42. package/dist/file-explorer/FilePreview/index.js +17 -10
  43. package/dist/file-explorer/FileRow.js +2 -2
  44. package/dist/file-explorer/FileRowsWindow.js +3 -2
  45. package/dist/file-explorer/TreeView.js +5 -3
  46. package/dist/file-explorer/helpers.js +43 -29
  47. package/dist/file-explorer/toasts.js +18 -11
  48. package/dist/form/Form.js +4 -3
  49. package/dist/form/SpecialTypes/FormikCustomInput.js +3 -2
  50. package/dist/graph/AnnotationBanner.js +9 -5
  51. package/dist/graph/DependencyGraph.js +6 -4
  52. package/dist/graph/JobSummary.js +4 -3
  53. package/dist/graph/TreeView.js +3 -2
  54. package/dist/icons/ai/AiOutlineRollback.js +16 -0
  55. package/dist/icons/bi/BiBell.js +16 -0
  56. package/dist/icons/bi/BiBellOff.js +16 -0
  57. package/dist/icons/bi/BiBuildings.js +20 -0
  58. package/dist/icons/bi/BiError.js +20 -0
  59. package/dist/icons/bi/BiExpandVertical.js +16 -0
  60. package/dist/icons/bi/BiPause.js +16 -0
  61. package/dist/icons/bi/BiPlay.js +16 -0
  62. package/dist/icons/bi/BiSolidCheckShield.js +16 -0
  63. package/dist/icons/bi/BiSolidTrashAlt.js +16 -0
  64. package/dist/icons/bi/BiStop.js +16 -0
  65. package/dist/icons/bs/BsArrowsCollapse.js +22 -0
  66. package/dist/icons/bs/BsBank2.js +19 -0
  67. package/dist/icons/bs/BsBriefcase.js +19 -0
  68. package/dist/icons/bs/BsBucket.js +19 -0
  69. package/dist/icons/bs/BsCalendarX.js +23 -0
  70. package/dist/icons/bs/BsChatLeft.js +19 -0
  71. package/dist/icons/bs/BsChevronDoubleDown.js +29 -0
  72. package/dist/icons/bs/BsChevronDoubleUp.js +29 -0
  73. package/dist/icons/bs/BsClipboardCheck.js +34 -0
  74. package/dist/icons/bs/BsCurrencyDollar.js +19 -0
  75. package/dist/icons/bs/BsDash.js +19 -0
  76. package/dist/icons/bs/BsFileEarmarkZip.js +23 -0
  77. package/dist/icons/bs/BsFiles.js +19 -0
  78. package/dist/icons/bs/BsGeoAlt.js +23 -0
  79. package/dist/icons/bs/BsGrid.js +19 -0
  80. package/dist/icons/bs/BsLayers.js +19 -0
  81. package/dist/icons/bs/BsLayoutThreeColumns.js +19 -0
  82. package/dist/icons/bs/BsListUl.js +22 -0
  83. package/dist/icons/bs/BsMortarboard.js +23 -0
  84. package/dist/icons/bs/BsMusicNoteBeamed.js +34 -0
  85. package/dist/icons/bs/BsOpenai.js +19 -0
  86. package/dist/icons/bs/BsPersonPlus.js +26 -0
  87. package/dist/icons/bs/BsSearch.js +19 -0
  88. package/dist/icons/bs/BsSend.js +19 -0
  89. package/dist/icons/bs/BsShieldSlash.js +22 -0
  90. package/dist/icons/bs/BsStar.js +19 -0
  91. package/dist/icons/bs/BsStarFill.js +19 -0
  92. package/dist/icons/bs/BsStopCircle.js +23 -0
  93. package/dist/icons/bs/BsTag.js +23 -0
  94. package/dist/icons/bs/BsTelephone.js +19 -0
  95. package/dist/icons/bs/BsTerminal.js +23 -0
  96. package/dist/icons/bs/BsTerminalFill.js +19 -0
  97. package/dist/icons/bs/BsThreeDots.js +19 -0
  98. package/dist/icons/bs/BsThreeDotsVertical.js +19 -0
  99. package/dist/icons/bs/BsZoomIn.js +37 -0
  100. package/dist/icons/fa/FaAmazon.js +16 -0
  101. package/dist/icons/fa/FaAngleDown.js +16 -0
  102. package/dist/icons/fa/FaAngleLeft.js +16 -0
  103. package/dist/icons/fa/FaAngleRight.js +16 -0
  104. package/dist/icons/fa/FaAngleUp.js +16 -0
  105. package/dist/icons/fa/FaArrowDown.js +16 -0
  106. package/dist/icons/fa/FaArrowLeft.js +16 -0
  107. package/dist/icons/fa/FaArrowRight.js +16 -0
  108. package/dist/icons/fa/FaArrowUp.js +16 -0
  109. package/dist/icons/fa/FaBalanceScale.js +16 -0
  110. package/dist/icons/fa/FaCaretDown.js +16 -0
  111. package/dist/icons/fa/FaCentos.js +16 -0
  112. package/dist/icons/fa/FaChartLine.js +16 -0
  113. package/dist/icons/fa/FaChartPie.js +16 -0
  114. package/dist/icons/fa/FaCheck.js +16 -0
  115. package/dist/icons/fa/FaChevronDown.js +16 -0
  116. package/dist/icons/fa/FaChevronUp.js +16 -0
  117. package/dist/icons/fa/FaChrome.js +16 -0
  118. package/dist/icons/fa/FaCircleNotch.js +16 -0
  119. package/dist/icons/fa/FaCloud.js +16 -0
  120. package/dist/icons/fa/FaCloudDownloadAlt.js +16 -0
  121. package/dist/icons/fa/FaCog.js +16 -0
  122. package/dist/icons/fa/FaCogs.js +16 -0
  123. package/dist/icons/fa/FaComments.js +16 -0
  124. package/dist/icons/fa/FaCompress.js +16 -0
  125. package/dist/icons/fa/FaDesktop.js +16 -0
  126. package/dist/icons/fa/FaDocker.js +16 -0
  127. package/dist/icons/fa/FaDollarSign.js +16 -0
  128. package/dist/icons/fa/FaEdge.js +16 -0
  129. package/dist/icons/fa/FaEdit.js +16 -0
  130. package/dist/icons/fa/FaExclamationTriangle.js +16 -0
  131. package/dist/icons/fa/FaExpand.js +16 -0
  132. package/dist/icons/fa/FaEye.js +16 -0
  133. package/dist/icons/fa/FaEyeSlash.js +16 -0
  134. package/dist/icons/fa/FaFile.js +16 -0
  135. package/dist/icons/fa/FaFilePdf.js +16 -0
  136. package/dist/icons/fa/FaFilter.js +16 -0
  137. package/dist/icons/fa/FaFirefoxBrowser.js +16 -0
  138. package/dist/icons/fa/FaFlask.js +16 -0
  139. package/dist/icons/fa/FaFolder.js +16 -0
  140. package/dist/icons/fa/FaGithub.js +16 -0
  141. package/dist/icons/fa/FaGitlab.js +16 -0
  142. package/dist/icons/fa/FaGlobe.js +16 -0
  143. package/dist/icons/fa/FaGlobeAmericas.js +16 -0
  144. package/dist/icons/fa/FaImage.js +16 -0
  145. package/dist/icons/fa/FaInfoCircle.js +16 -0
  146. package/dist/icons/fa/FaKey.js +16 -0
  147. package/dist/icons/fa/FaLayerGroup.js +16 -0
  148. package/dist/icons/fa/FaLink.js +16 -0
  149. package/dist/icons/fa/FaLinkedin.js +16 -0
  150. package/dist/icons/fa/FaLinux.js +16 -0
  151. package/dist/icons/fa/FaList.js +16 -0
  152. package/dist/icons/fa/FaLock.js +16 -0
  153. package/dist/icons/fa/FaOpenid.js +16 -0
  154. package/dist/icons/fa/FaOpera.js +16 -0
  155. package/dist/icons/fa/FaPaperclip.js +16 -0
  156. package/dist/icons/fa/FaPlus.js +16 -0
  157. package/dist/icons/fa/FaPowerOff.js +16 -0
  158. package/dist/icons/fa/FaPrint.js +16 -0
  159. package/dist/icons/fa/FaQrcode.js +16 -0
  160. package/dist/icons/fa/FaQuestionCircle.js +16 -0
  161. package/dist/icons/fa/FaRedhat.js +16 -0
  162. package/dist/icons/fa/FaRegCircle.js +16 -0
  163. package/dist/icons/fa/FaRegFileImage.js +16 -0
  164. package/dist/icons/fa/FaRegFolder.js +16 -0
  165. package/dist/icons/fa/FaRobot.js +16 -0
  166. package/dist/icons/fa/FaRocket.js +16 -0
  167. package/dist/icons/fa/FaRunning.js +16 -0
  168. package/dist/icons/fa/FaSafari.js +16 -0
  169. package/dist/icons/fa/FaSave.js +16 -0
  170. package/dist/icons/fa/FaSearch.js +16 -0
  171. package/dist/icons/fa/FaShieldAlt.js +16 -0
  172. package/dist/icons/fa/FaSlack.js +16 -0
  173. package/dist/icons/fa/FaStar.js +16 -0
  174. package/dist/icons/fa/FaStop.js +16 -0
  175. package/dist/icons/fa/FaSuse.js +16 -0
  176. package/dist/icons/fa/FaTerminal.js +16 -0
  177. package/dist/icons/fa/FaTimes.js +16 -0
  178. package/dist/icons/fa/FaUbuntu.js +16 -0
  179. package/dist/icons/fa/FaUndoAlt.js +16 -0
  180. package/dist/icons/fa/FaUnlink.js +16 -0
  181. package/dist/icons/fa/FaUser.js +16 -0
  182. package/dist/icons/fa/FaUsers.js +16 -0
  183. package/dist/icons/fa/FaWindows.js +16 -0
  184. package/dist/icons/fa6/FaApple.js +16 -0
  185. package/dist/icons/fa6/FaArrowsRotate.js +16 -0
  186. package/dist/icons/fa6/FaDebian.js +16 -0
  187. package/dist/icons/fa6/FaFilterCircleXmark.js +16 -0
  188. package/dist/icons/fa6/FaInbox.js +16 -0
  189. package/dist/icons/fa6/FaLocationDot.js +16 -0
  190. package/dist/icons/fa6/FaRegFilePdf.js +16 -0
  191. package/dist/icons/fa6/FaRegFolderOpen.js +16 -0
  192. package/dist/icons/fa6/FaUpRightFromSquare.js +16 -0
  193. package/dist/icons/fa6/FaWandMagicSparkles.js +16 -0
  194. package/dist/icons/fa6/FaXTwitter.js +16 -0
  195. package/dist/icons/fi/FiActivity.js +23 -0
  196. package/dist/icons/fi/FiAlertCircle.js +49 -0
  197. package/dist/icons/fi/FiChevronDown.js +23 -0
  198. package/dist/icons/fi/FiClock.js +31 -0
  199. package/dist/icons/fi/FiCopy.js +34 -0
  200. package/dist/icons/fi/FiDownload.js +40 -0
  201. package/dist/icons/fi/FiFile.js +27 -0
  202. package/dist/icons/fi/FiFileText.js +55 -0
  203. package/dist/icons/fi/FiHardDrive.js +55 -0
  204. package/dist/icons/fi/FiRotateCcw.js +27 -0
  205. package/dist/icons/fi/FiUpload.js +40 -0
  206. package/dist/icons/fi/FiX.js +37 -0
  207. package/dist/icons/fi/FiZap.js +23 -0
  208. package/dist/icons/gi/GiSpy.js +16 -0
  209. package/dist/icons/go/GoGitCommit.js +16 -0
  210. package/dist/icons/go/GoGitPullRequest.js +20 -0
  211. package/dist/icons/go/GoIssueOpened.js +16 -0
  212. package/dist/icons/go/GoPlus.js +16 -0
  213. package/dist/icons/go/GoRepoForked.js +28 -0
  214. package/dist/icons/go/GoSignOut.js +16 -0
  215. package/dist/icons/go/GoSkip.js +20 -0
  216. package/dist/icons/go/GoVideo.js +20 -0
  217. package/dist/icons/gr/GrCloudComputer.js +20 -0
  218. package/dist/icons/gr/GrInbox.js +20 -0
  219. package/dist/icons/gr/GrServerCluster.js +20 -0
  220. package/dist/icons/gr/GrStorage.js +20 -0
  221. package/dist/icons/gr/GrTasks.js +20 -0
  222. package/dist/icons/hi/HiCog.js +24 -0
  223. package/dist/icons/hi/HiDuplicate.js +24 -0
  224. package/dist/icons/hi/HiOutlineArchive.js +26 -0
  225. package/dist/icons/hi/HiOutlineClipboardCopy.js +26 -0
  226. package/dist/icons/hi/HiOutlineHome.js +26 -0
  227. package/dist/icons/hi/HiQuestionMarkCircle.js +24 -0
  228. package/dist/icons/hi/HiServer.js +24 -0
  229. package/dist/icons/hi2/HiMiniCheckCircle.js +24 -0
  230. package/dist/icons/hi2/HiMiniLanguage.js +28 -0
  231. package/dist/icons/hi2/HiMiniMinusCircle.js +24 -0
  232. package/dist/icons/hi2/HiMiniXCircle.js +24 -0
  233. package/dist/icons/hi2/HiSparkles.js +24 -0
  234. package/dist/icons/im/ImSpinner5.js +19 -0
  235. package/dist/icons/io/IoIosNotifications.js +16 -0
  236. package/dist/icons/io/IoMdBuild.js +16 -0
  237. package/dist/icons/io/IoMdClose.js +16 -0
  238. package/dist/icons/io5/IoCloudUploadOutline.js +32 -0
  239. package/dist/icons/io5/IoDocumentTextOutline.js +31 -0
  240. package/dist/icons/io5/IoFileTrayFullOutline.js +31 -0
  241. package/dist/icons/io5/IoHeart.js +16 -0
  242. package/dist/icons/io5/IoHeartDislike.js +16 -0
  243. package/dist/icons/io5/IoHeartOutline.js +22 -0
  244. package/dist/icons/io5/IoInformationCircleOutline.js +50 -0
  245. package/dist/icons/io5/IoSettingsOutline.js +22 -0
  246. package/dist/icons/io5/IoWarningOutline.js +40 -0
  247. package/dist/icons/lu/LuArrowRight.js +27 -0
  248. package/dist/icons/lu/LuBadgeCheck.js +27 -0
  249. package/dist/icons/lu/LuBrainCircuit.js +101 -0
  250. package/dist/icons/lu/LuCalendar.js +46 -0
  251. package/dist/icons/lu/LuCheck.js +23 -0
  252. package/dist/icons/lu/LuChevronLeft.js +23 -0
  253. package/dist/icons/lu/LuChevronRight.js +23 -0
  254. package/dist/icons/lu/LuExternalLink.js +35 -0
  255. package/dist/icons/lu/LuEye.js +31 -0
  256. package/dist/icons/lu/LuEyeOff.js +40 -0
  257. package/dist/icons/lu/LuFolderTree.js +40 -0
  258. package/dist/icons/lu/LuIdCard.js +55 -0
  259. package/dist/icons/lu/LuLogs.js +65 -0
  260. package/dist/icons/lu/LuMail.js +33 -0
  261. package/dist/icons/lu/LuMegaphone.js +27 -0
  262. package/dist/icons/lu/LuMoon.js +23 -0
  263. package/dist/icons/lu/LuPartyPopper.js +65 -0
  264. package/dist/icons/lu/LuSettings2.js +48 -0
  265. package/dist/icons/lu/LuSheet.js +72 -0
  266. package/dist/icons/lu/LuShield.js +23 -0
  267. package/dist/icons/lu/LuSun.js +69 -0
  268. package/dist/icons/lu/LuX.js +27 -0
  269. package/dist/icons/lu/LuZoomIn.js +59 -0
  270. package/dist/icons/lu/LuZoomOut.js +49 -0
  271. package/dist/icons/md/MdClear.js +23 -0
  272. package/dist/icons/md/MdDragHandle.js +23 -0
  273. package/dist/icons/md/MdInstallDesktop.js +31 -0
  274. package/dist/icons/md/MdOutlineAttachMoney.js +23 -0
  275. package/dist/icons/md/MdOutlineMoneyOff.js +23 -0
  276. package/dist/icons/md/MdPieChart.js +23 -0
  277. package/dist/icons/md/MdRefresh.js +23 -0
  278. package/dist/icons/md/MdReplay.js +23 -0
  279. package/dist/icons/md/MdSmartphone.js +23 -0
  280. package/dist/icons/pi/PiArrowBendUpRightBold.js +19 -0
  281. package/dist/icons/pi/PiPlugsConnectedFill.js +19 -0
  282. package/dist/icons/pi/PiRectangleDashed.js +19 -0
  283. package/dist/icons/pi/PiShareBold.js +19 -0
  284. package/dist/icons/si/SiAnthropic.js +19 -0
  285. package/dist/icons/si/SiHelm.js +19 -0
  286. package/dist/icons/si/SiKubernetes.js +19 -0
  287. package/dist/icons/tb/TbAlertTriangle.js +35 -0
  288. package/dist/icons/tb/TbAlertTriangleFilled.js +19 -0
  289. package/dist/icons/tb/TbApi.js +40 -0
  290. package/dist/icons/tb/TbBrain.js +50 -0
  291. package/dist/icons/tb/TbBuildingTunnel.js +65 -0
  292. package/dist/icons/tb/TbEdit.js +35 -0
  293. package/dist/icons/tb/TbLayoutSidebar.js +27 -0
  294. package/dist/icons/tb/TbLayoutSidebarLeftCollapse.js +35 -0
  295. package/dist/icons/tb/TbLayoutSidebarRightCollapse.js +35 -0
  296. package/dist/icons/tb/TbUser.js +27 -0
  297. package/dist/icons/tb/TbUserOff.js +35 -0
  298. package/dist/icons/tb/TbWorldShare.js +55 -0
  299. package/dist/icons/tb/TbWorldWww.js +65 -0
  300. package/dist/icons/ti/TiArrowSortedDown.js +20 -0
  301. package/dist/icons/ti/TiArrowSortedUp.js +20 -0
  302. package/dist/icons/ti/TiArrowUnsorted.js +20 -0
  303. package/dist/icons/ti/TiCancel.js +20 -0
  304. package/dist/icons/vsc/VscChromeMinimize.js +19 -0
  305. package/dist/icons/vsc/VscJson.js +19 -0
  306. package/dist/icons/vsc/VscLayoutSidebarLeft.js +19 -0
  307. package/dist/icons/vsc/VscPass.js +27 -0
  308. package/dist/icons/vsc/VscSplitHorizontal.js +19 -0
  309. package/dist/icons/vsc/VscTerminalPowershell.js +19 -0
  310. package/dist/icons.d.ts +6 -21
  311. package/dist/icons.js +257 -38
  312. package/dist/list/ActionToolbar.js +2 -2
  313. package/dist/list/ListPager.js +4 -3
  314. package/dist/list/ListTable.js +2 -2
  315. package/dist/list/ListViewControls.js +13 -8
  316. package/dist/list/RowContextMenu.js +21 -12
  317. package/dist/list/listSearch.js +6 -5
  318. package/dist/logviewer/LogViewer.js +21 -11
  319. package/package.json +2 -2
@@ -1,6 +1,21 @@
1
1
  import { safeUrl } from "../safeUrl.js";
2
2
  import { useNotify, useSlots, useStrings } from "../components/Provider.js";
3
- import { AccessIcon, AlertIcon, AngleDownIcon, ChevronRightIcon, ClipboardIcon, CollapseIcon, DownloadFileIcon, EyeIcon, FileIcon, FileTextIcon, FolderIcon, LinkIcon, RefreshIcon, ShareIcon, TrashIcon, UploadIcon } from "../icons.js";
3
+ import { BiSolidTrashAlt } from "../icons/bi/BiSolidTrashAlt.js";
4
+ import { BsArrowsCollapse } from "../icons/bs/BsArrowsCollapse.js";
5
+ import { FaAngleDown } from "../icons/fa/FaAngleDown.js";
6
+ import { FaLink } from "../icons/fa/FaLink.js";
7
+ import { FaRegFolder } from "../icons/fa/FaRegFolder.js";
8
+ import { FaUsers } from "../icons/fa/FaUsers.js";
9
+ import { FiDownload } from "../icons/fi/FiDownload.js";
10
+ import { FiFile } from "../icons/fi/FiFile.js";
11
+ import { FiFileText } from "../icons/fi/FiFileText.js";
12
+ import { FiUpload } from "../icons/fi/FiUpload.js";
13
+ import { HiOutlineClipboardCopy } from "../icons/hi/HiOutlineClipboardCopy.js";
14
+ import { LuChevronRight } from "../icons/lu/LuChevronRight.js";
15
+ import { LuEye } from "../icons/lu/LuEye.js";
16
+ import { MdRefresh } from "../icons/md/MdRefresh.js";
17
+ import { PiShareBold } from "../icons/pi/PiShareBold.js";
18
+ import { TbAlertTriangle } from "../icons/tb/TbAlertTriangle.js";
4
19
  import { keyedByContent } from "../components/keys.js";
5
20
  import { TOOLTIP_ID, TooltipInfo } from "../components/Tooltip.js";
6
21
  import { ConfirmModal } from "../components/ConfirmModal.js";
@@ -51,7 +66,7 @@ function UriCard({ value }) {
51
66
  /* @__PURE__ */ jsx("span", {
52
67
  className: "shrink-0 inline-flex items-center justify-center px-3 border-l theme-border theme-muted-text group-hover:text-(--theme-link) group-hover:bg-(--theme-link)/5 transition-colors duration-150",
53
68
  title: t.chrome.copyToClipboard,
54
- children: /* @__PURE__ */ jsx(ClipboardIcon, { className: "h-3.5 w-3.5" })
69
+ children: /* @__PURE__ */ jsx(HiOutlineClipboardCopy, { className: "h-3.5 w-3.5" })
55
70
  })
56
71
  ]
57
72
  });
@@ -172,6 +187,40 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
172
187
  const [accessDrawerOpen, setAccessDrawerOpen] = useState(false);
173
188
  const [connectionIssuesMessage, updateConnectionIssuesMessage] = useState(/* @__PURE__ */ new Map());
174
189
  const [hasCorsIssue, setHasCorsIssue] = useState(/* @__PURE__ */ new Map());
190
+ const storageRoots = useMemo(() => {
191
+ const roots = /* @__PURE__ */ new Map();
192
+ for (const node of rootNodes) {
193
+ const candidates = node.root ? [node] : parentToChildrenMap[node.path] ?? [];
194
+ for (const root of candidates) if (root.root && root.storageId) roots.set(root.storageId, root.path);
195
+ }
196
+ return roots;
197
+ }, [rootNodes, parentToChildrenMap]);
198
+ const seenStorageRootsRef = useRef(storageRoots);
199
+ const forgetStorages = useEffectEvent((removed) => {
200
+ const isUnder = (path) => removed.some(([, root]) => path !== root && path.startsWith(root));
201
+ const isWithin = (path) => removed.some(([, root]) => path.startsWith(root));
202
+ for (const path of [...fetchesInFlightRef.current.keys()]) if (isWithin(path)) fetchesInFlightRef.current.delete(path);
203
+ setListings((prev) => removed.reduce((next, [, root]) => clearListingsUnder(next, root), prev));
204
+ setLoadingPaths((prev) => new Set([...prev].filter((path) => !isWithin(path))));
205
+ setExpandedPaths((prev) => new Set([...prev].filter((path) => !isUnder(path))));
206
+ const withoutRemoved = (prev) => {
207
+ const next = new Map(prev);
208
+ for (const [id] of removed) next.delete(id);
209
+ return next;
210
+ };
211
+ updateConnectionIssuesMessage(withoutRemoved);
212
+ setHasCorsIssue(withoutRemoved);
213
+ const selectedRoot = removed.find(([, root]) => normalizedSelectedPath.startsWith(root))?.[1];
214
+ if (selectedRoot) {
215
+ const parent = getParentPath(selectedRoot);
216
+ setSelectedPath(treeMap[parent] ? parent : "");
217
+ }
218
+ });
219
+ useEffect(() => {
220
+ const removed = [...seenStorageRootsRef.current].filter(([id]) => !storageRoots.has(id));
221
+ seenStorageRootsRef.current = storageRoots;
222
+ if (removed.length > 0) forgetStorages(removed);
223
+ }, [storageRoots]);
175
224
  const [uploadModalOpen, setUploadModalOpen] = useState(false);
176
225
  const [createFolderTarget, setCreateFolderTarget] = useState(null);
177
226
  const [pendingUpload, setPendingUpload] = useState(null);
@@ -555,7 +604,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
555
604
  return [{
556
605
  key: "create-folder",
557
606
  label: t.createFolder.action,
558
- icon: /* @__PURE__ */ jsx(FolderIcon, {}),
607
+ icon: /* @__PURE__ */ jsx(FaRegFolder, {}),
559
608
  onSelect: () => openCreateFolder(node)
560
609
  }];
561
610
  };
@@ -569,20 +618,20 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
569
618
  if (isFile && canPreview(node)) actions.push({
570
619
  key: "preview",
571
620
  label: t.preview.preview,
572
- icon: /* @__PURE__ */ jsx(EyeIcon, {}),
621
+ icon: /* @__PURE__ */ jsx(LuEye, {}),
573
622
  onSelect: () => openPreview(node)
574
623
  });
575
624
  if (isFile) {
576
625
  actions.push({
577
626
  key: "download",
578
627
  label: t.preview.download,
579
- icon: /* @__PURE__ */ jsx(DownloadFileIcon, {}),
628
+ icon: /* @__PURE__ */ jsx(FiDownload, {}),
580
629
  onSelect: () => downloadNode(node)
581
630
  });
582
631
  if (nodeCanShare) actions.push({
583
632
  key: "share",
584
633
  label: t.preview.shareFile,
585
- icon: /* @__PURE__ */ jsx(ShareIcon, {}),
634
+ icon: /* @__PURE__ */ jsx(PiShareBold, {}),
586
635
  onSelect: () => onShareFileButtonClick(node)
587
636
  });
588
637
  }
@@ -590,20 +639,20 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
590
639
  if (nodeCanWrite && !node.root) actions.push({
591
640
  key: "delete",
592
641
  label: t.preview.delete,
593
- icon: /* @__PURE__ */ jsx(TrashIcon, {}),
642
+ icon: /* @__PURE__ */ jsx(BiSolidTrashAlt, {}),
594
643
  destructive: true,
595
644
  onSelect: () => deleteNode(node)
596
645
  });
597
646
  const lead = [{
598
647
  kind: "action",
599
648
  label: isFile ? t.preview.viewDetails : t.preview.openFolder,
600
- icon: isFile ? /* @__PURE__ */ jsx(FileTextIcon, {}) : /* @__PURE__ */ jsx(FolderIcon, {}),
649
+ icon: isFile ? /* @__PURE__ */ jsx(FiFileText, {}) : /* @__PURE__ */ jsx(FaRegFolder, {}),
601
650
  onSelect: () => handleSelectTreeItem(node.path, node)
602
651
  }];
603
652
  const uriExtras = uris.map((value) => ({
604
653
  label: `${getUriScheme(value).toUpperCase()} URI`,
605
654
  value,
606
- icon: /* @__PURE__ */ jsx(LinkIcon, {})
655
+ icon: /* @__PURE__ */ jsx(FaLink, {})
607
656
  }));
608
657
  return assembleRowMenu({
609
658
  lead,
@@ -639,7 +688,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
639
688
  const label = node.displayName || node.name;
640
689
  return /* @__PURE__ */ jsxs("span", {
641
690
  className: "flex min-w-0 items-center gap-1",
642
- children: [i > 0 && /* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-3 w-3 shrink-0 text-(--theme-muted-text-color)" }), isLast ? /* @__PURE__ */ jsx("span", {
691
+ children: [i > 0 && /* @__PURE__ */ jsx(LuChevronRight, { className: "h-3 w-3 shrink-0 text-(--theme-muted-text-color)" }), isLast ? /* @__PURE__ */ jsx("span", {
643
692
  className: "truncate font-semibold text-(--theme-app)",
644
693
  children: label
645
694
  }) : /* @__PURE__ */ jsx("button", {
@@ -884,7 +933,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
884
933
  "data-tooltip-class-name": "z-50",
885
934
  className: "inline-flex items-center justify-center h-7 w-7 rounded-md cursor-pointer theme-muted-text hover:theme-text hover:theme-hover transition-colors duration-150 focus:outline-none focus-visible:ring-1 focus-visible:ring-(--theme-link)",
886
935
  onClick: () => handleRefresh(),
887
- children: /* @__PURE__ */ jsx(RefreshIcon, { className: "h-3.5 w-3.5" })
936
+ children: /* @__PURE__ */ jsx(MdRefresh, { className: "h-3.5 w-3.5" })
888
937
  }), /* @__PURE__ */ jsx("button", {
889
938
  type: "button",
890
939
  "aria-label": t.chrome.collapse,
@@ -893,7 +942,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
893
942
  "data-tooltip-class-name": "z-50",
894
943
  className: "inline-flex items-center justify-center h-7 w-7 rounded-md cursor-pointer theme-muted-text hover:theme-text hover:theme-hover transition-colors duration-150 focus:outline-none focus-visible:ring-1 focus-visible:ring-(--theme-link)",
895
944
  onClick: collapseAll,
896
- children: /* @__PURE__ */ jsx(CollapseIcon, { className: "h-3.5 w-3.5" })
945
+ children: /* @__PURE__ */ jsx(BsArrowsCollapse, { className: "h-3.5 w-3.5" })
897
946
  })]
898
947
  })
899
948
  }), /* @__PURE__ */ jsx(TreeView, {
@@ -955,7 +1004,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
955
1004
  getItems: () => [{
956
1005
  kind: "action",
957
1006
  label: t.preview.open,
958
- icon: /* @__PURE__ */ jsx(FolderIcon, {}),
1007
+ icon: /* @__PURE__ */ jsx(FaRegFolder, {}),
959
1008
  onSelect: () => openUserNode(rootNode)
960
1009
  }],
961
1010
  openMenu,
@@ -1012,7 +1061,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
1012
1061
  className: "btn btn-info cursor-pointer flex items-center justify-center",
1013
1062
  disabled: selectedNode.type === "file" || !selectedNode.storageId,
1014
1063
  onClick: () => setCreateFolderTarget(selectedNode),
1015
- children: [/* @__PURE__ */ jsx(FolderIcon, { className: "h-4 w-4 mr-2" }), /* @__PURE__ */ jsx("span", {
1064
+ children: [/* @__PURE__ */ jsx(FaRegFolder, { className: "h-4 w-4 mr-2" }), /* @__PURE__ */ jsx("span", {
1016
1065
  className: "hidden md:inline",
1017
1066
  children: t.createFolder.action
1018
1067
  })]
@@ -1021,10 +1070,10 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
1021
1070
  "aria-label": t.chrome.upload,
1022
1071
  className: "btn btn-info cursor-pointer flex items-center justify-between pr-0.5!",
1023
1072
  disabled: selectedNode.type === "file" || !selectedNode.storageId,
1024
- children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(UploadIcon, { className: "h-4 w-4 mr-2" }), /* @__PURE__ */ jsx("span", {
1073
+ children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(FiUpload, { className: "h-4 w-4 mr-2" }), /* @__PURE__ */ jsx("span", {
1025
1074
  className: "hidden md:inline",
1026
1075
  children: t.chrome.upload
1027
- })] }), /* @__PURE__ */ jsx(AngleDownIcon, { className: "h-4 w-4 ml-2" })]
1076
+ })] }), /* @__PURE__ */ jsx(FaAngleDown, { className: "h-4 w-4 ml-2" })]
1028
1077
  }), /* @__PURE__ */ jsxs(MenuItems, {
1029
1078
  transition: true,
1030
1079
  anchor: "bottom end",
@@ -1045,10 +1094,10 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
1045
1094
  "aria-label": t.chrome.download,
1046
1095
  className: "btn btn-info cursor-pointer flex items-center justify-between pr-0.5!",
1047
1096
  disabled: checkedItems.size === 0 && selectedNode.type !== "file" || hasFolderSelected() || !selectedNode.storageId,
1048
- children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(DownloadFileIcon, { className: "h-4 w-4 mr-2" }), /* @__PURE__ */ jsx("span", {
1097
+ children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(FiDownload, { className: "h-4 w-4 mr-2" }), /* @__PURE__ */ jsx("span", {
1049
1098
  className: "hidden md:inline",
1050
1099
  children: t.chrome.download
1051
- })] }), /* @__PURE__ */ jsx(AngleDownIcon, { className: "h-4 w-4 ml-2" })]
1100
+ })] }), /* @__PURE__ */ jsx(FaAngleDown, { className: "h-4 w-4 ml-2" })]
1052
1101
  }), /* @__PURE__ */ jsxs(MenuItems, {
1053
1102
  transition: true,
1054
1103
  anchor: "bottom end",
@@ -1079,7 +1128,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
1079
1128
  disabled: !selectedNode.storageId,
1080
1129
  onClick: () => setAccessDrawerOpen(true),
1081
1130
  hidden: groups.length === 0 || !selectedNodeCanManageAccess,
1082
- children: [/* @__PURE__ */ jsx(AccessIcon, { className: "h-4 w-4 mr-2" }), /* @__PURE__ */ jsx("span", {
1131
+ children: [/* @__PURE__ */ jsx(FaUsers, { className: "h-4 w-4 mr-2" }), /* @__PURE__ */ jsx("span", {
1083
1132
  className: "hidden md:inline",
1084
1133
  children: t.chrome.manageAccess
1085
1134
  })]
@@ -1090,7 +1139,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
1090
1139
  className: "btn btn-destructive cursor-pointer flex items-center justify-center",
1091
1140
  disabled: checkedItems.size === 0 && selectedNode.type !== "file" || !selectedNode.storageId,
1092
1141
  onClick: onDeleteClick,
1093
- children: [/* @__PURE__ */ jsx(TrashIcon, { className: "h-4 w-4 mr-2" }), /* @__PURE__ */ jsx("span", {
1142
+ children: [/* @__PURE__ */ jsx(BiSolidTrashAlt, { className: "h-4 w-4 mr-2" }), /* @__PURE__ */ jsx("span", {
1094
1143
  className: "hidden md:inline",
1095
1144
  children: t.chrome.delete
1096
1145
  })]
@@ -1136,7 +1185,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
1136
1185
  }),
1137
1186
  selectedNode.type === "file" && (() => {
1138
1187
  const uris = getNodeUris(selectedNode);
1139
- const fileIcon = getNodeIcon(selectedNode, slots.storageIconUrl, t.chrome.storageIconAlt) ?? /* @__PURE__ */ jsx(FileIcon, { className: "h-5 w-5 theme-muted-text" });
1188
+ const fileIcon = getNodeIcon(selectedNode, slots.storageIconUrl, t.chrome.storageIconAlt) ?? /* @__PURE__ */ jsx(FiFile, { className: "h-5 w-5 theme-muted-text" });
1140
1189
  const modifiedDt = selectedNode.modified ? DateTime.fromISO(selectedNode.modified) : null;
1141
1190
  const createdDt = selectedNode.created ? DateTime.fromISO(selectedNode.created) : null;
1142
1191
  const previewable = canPreview(selectedNode);
@@ -1296,7 +1345,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
1296
1345
  /* @__PURE__ */ jsx(CreateModal, {
1297
1346
  open: !!createFolderTarget,
1298
1347
  onClose: () => setCreateFolderTarget(null),
1299
- typeIcon: /* @__PURE__ */ jsx(FolderIcon, { className: "w-3 h-3" }),
1348
+ typeIcon: /* @__PURE__ */ jsx(FaRegFolder, { className: "w-3 h-3" }),
1300
1349
  typeLabel: t.createFolder.folder,
1301
1350
  namePlaceholder: t.createFolder.namePlaceholder,
1302
1351
  submitLabel: t.createFolder.submit,
@@ -1353,7 +1402,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
1353
1402
  className: "mt-3 p-3 bg-amber-50 border border-amber-200 rounded-lg",
1354
1403
  children: /* @__PURE__ */ jsxs("div", {
1355
1404
  className: "flex items-start gap-2",
1356
- children: [/* @__PURE__ */ jsx(AlertIcon, { className: "w-4 h-4 text-amber-600 shrink-0 mt-0.5" }), /* @__PURE__ */ jsxs("div", {
1405
+ children: [/* @__PURE__ */ jsx(TbAlertTriangle, { className: "w-4 h-4 text-amber-600 shrink-0 mt-0.5" }), /* @__PURE__ */ jsxs("div", {
1357
1406
  className: "text-amber-800",
1358
1407
  children: [/* @__PURE__ */ jsx("div", {
1359
1408
  className: "font-semibold mb-1",
@@ -1,5 +1,5 @@
1
1
  import { useStrings } from "../../components/Provider.js";
2
- import { ExpandIcon } from "../../icons.js";
2
+ import { FaExpand } from "../../icons/fa/FaExpand.js";
3
3
  import { formatFileSize } from "../lib/utils.js";
4
4
  import { getPreviewKind } from "./previewType.js";
5
5
  import { StreamedBadge } from "./StreamedBadge.js";
@@ -36,7 +36,7 @@ function FilePreviewInline({ node, storage, getPresignedUrl, onOpenFull, onDownl
36
36
  type: "button",
37
37
  className: "btn btn-neutral cursor-pointer",
38
38
  onClick: () => onOpenFull(node),
39
- children: [/* @__PURE__ */ jsx(ExpandIcon, { className: "mr-2 h-4 w-4" }), t.preview.openFullPreview]
39
+ children: [/* @__PURE__ */ jsx(FaExpand, { className: "mr-2 h-4 w-4" }), t.preview.openFullPreview]
40
40
  })]
41
41
  })]
42
42
  });
@@ -1,5 +1,5 @@
1
1
  import { useStrings } from "../../components/Provider.js";
2
- import { LockIcon } from "../../icons.js";
2
+ import { FaLock } from "../../icons/fa/FaLock.js";
3
3
  import { TOOLTIP_ID } from "../../components/Tooltip.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region src/file-explorer/FilePreview/StreamedBadge.tsx
@@ -9,7 +9,7 @@ function StreamedBadge() {
9
9
  className: "inline-flex shrink-0 items-center gap-1 rounded-full border border-green-500/40 bg-green-500/15 px-2 py-0.5 text-[11px] text-green-600",
10
10
  "data-tooltip-id": TOOLTIP_ID,
11
11
  "data-tooltip-content": t.preview.streamedTooltip,
12
- children: [/* @__PURE__ */ jsx(LockIcon, { className: "h-2.5 w-2.5" }), t.preview.streamed]
12
+ children: [/* @__PURE__ */ jsx(FaLock, { className: "h-2.5 w-2.5" }), t.preview.streamed]
13
13
  });
14
14
  }
15
15
  //#endregion
@@ -1,5 +1,9 @@
1
1
  import { useStrings } from "../../components/Provider.js";
2
- import { DownloadFileIcon, FileIcon, LockIcon, MusicIcon, ZipIcon } from "../../icons.js";
2
+ import { BsFileEarmarkZip } from "../../icons/bs/BsFileEarmarkZip.js";
3
+ import { BsMusicNoteBeamed } from "../../icons/bs/BsMusicNoteBeamed.js";
4
+ import { FaLock } from "../../icons/fa/FaLock.js";
5
+ import { FiDownload } from "../../icons/fi/FiDownload.js";
6
+ import { FiFile } from "../../icons/fi/FiFile.js";
3
7
  import { positionKeys, withPositionKeys } from "../../components/keys.js";
4
8
  import Loader from "../../components/Loader.js";
5
9
  import Markdown from "../../components/Markdown.js";
@@ -36,19 +40,19 @@ function FilePreviewViewer({ node, kind, url, urlLoading, urlError, zoom = 100,
36
40
  return { corsError: false };
37
41
  }, [url]);
38
42
  if (urlError) return /* @__PURE__ */ jsx(NotPreviewable, {
39
- icon: /* @__PURE__ */ jsx(FileIcon, { className: "h-9 w-9 theme-muted-text" }),
43
+ icon: /* @__PURE__ */ jsx(FiFile, { className: "h-9 w-9 theme-muted-text" }),
40
44
  title: t.preview.errorTitle,
41
45
  message: urlError,
42
46
  onDownload
43
47
  });
44
48
  if (kind === "archive") return /* @__PURE__ */ jsx(NotPreviewable, {
45
- icon: /* @__PURE__ */ jsx(ZipIcon, { className: "h-9 w-9 text-(--theme-link)" }),
49
+ icon: /* @__PURE__ */ jsx(BsFileEarmarkZip, { className: "h-9 w-9 text-(--theme-link)" }),
46
50
  title: t.preview.archiveTitle,
47
51
  message: t.preview.archiveMessage,
48
52
  onDownload
49
53
  });
50
54
  if (kind === "unsupported") return /* @__PURE__ */ jsx(NotPreviewable, {
51
- icon: /* @__PURE__ */ jsx(FileIcon, { className: "h-9 w-9 theme-muted-text" }),
55
+ icon: /* @__PURE__ */ jsx(FiFile, { className: "h-9 w-9 theme-muted-text" }),
52
56
  title: t.preview.unsupportedTitle,
53
57
  message: t.preview.unsupportedMessage,
54
58
  onDownload
@@ -153,7 +157,7 @@ function AudioView({ node, url, onDownload }) {
153
157
  children: [
154
158
  /* @__PURE__ */ jsx("div", {
155
159
  className: "flex h-28 w-28 items-center justify-center rounded-2xl bg-linear-to-br from-(--theme-element) to-(--theme-link) shadow-lg",
156
- children: /* @__PURE__ */ jsx(MusicIcon, { className: "h-12 w-12 text-white" })
160
+ children: /* @__PURE__ */ jsx(BsMusicNoteBeamed, { className: "h-12 w-12 text-white" })
157
161
  }),
158
162
  /* @__PURE__ */ jsxs("div", {
159
163
  className: "text-center",
@@ -179,7 +183,7 @@ function AudioView({ node, url, onDownload }) {
179
183
  function PreviewError({ onDownload }) {
180
184
  const t = useStrings().fileExplorer;
181
185
  return /* @__PURE__ */ jsx(NotPreviewable, {
182
- icon: /* @__PURE__ */ jsx(FileIcon, { className: "h-9 w-9 theme-muted-text" }),
186
+ icon: /* @__PURE__ */ jsx(FiFile, { className: "h-9 w-9 theme-muted-text" }),
183
187
  title: t.preview.errorTitle,
184
188
  message: t.preview.previewError,
185
189
  onDownload
@@ -250,7 +254,7 @@ function CodeView({ node, url, onDownload, storage, onCorsRetry }) {
250
254
  }),
251
255
  /* @__PURE__ */ jsxs("span", {
252
256
  className: "inline-flex shrink-0 items-center gap-1 rounded-full border theme-border px-2 py-0.5 text-[11px] theme-muted-text",
253
- children: [/* @__PURE__ */ jsx(LockIcon, { className: "h-2.5 w-2.5" }), t.readOnly]
257
+ children: [/* @__PURE__ */ jsx(FaLock, { className: "h-2.5 w-2.5" }), t.readOnly]
254
258
  })
255
259
  ]
256
260
  }), /* @__PURE__ */ jsx("div", {
@@ -476,7 +480,7 @@ function NotPreviewable({ icon, title, message, onDownload }) {
476
480
  type: "button",
477
481
  className: "btn btn-info cursor-pointer",
478
482
  onClick: onDownload,
479
- children: [/* @__PURE__ */ jsx(DownloadFileIcon, { className: "mr-2 h-4 w-4" }), t.preview.downloadInstead]
483
+ children: [/* @__PURE__ */ jsx(FiDownload, { className: "mr-2 h-4 w-4" }), t.preview.downloadInstead]
480
484
  })
481
485
  ]
482
486
  })
@@ -495,7 +499,7 @@ function TooLargeInline({ onDownload }) {
495
499
  type: "button",
496
500
  className: "btn btn-info cursor-pointer",
497
501
  onClick: onDownload,
498
- children: [/* @__PURE__ */ jsx(DownloadFileIcon, { className: "mr-2 h-4 w-4" }), t.preview.downloadInstead]
502
+ children: [/* @__PURE__ */ jsx(FiDownload, { className: "mr-2 h-4 w-4" }), t.preview.downloadInstead]
499
503
  })]
500
504
  })
501
505
  });
@@ -513,7 +517,7 @@ function InlineError({ message, onDownload }) {
513
517
  type: "button",
514
518
  className: "btn btn-neutral cursor-pointer",
515
519
  onClick: onDownload,
516
- children: [/* @__PURE__ */ jsx(DownloadFileIcon, { className: "mr-2 h-4 w-4" }), t.preview.downloadInstead]
520
+ children: [/* @__PURE__ */ jsx(FiDownload, { className: "mr-2 h-4 w-4" }), t.preview.downloadInstead]
517
521
  })]
518
522
  })
519
523
  });
@@ -1,5 +1,12 @@
1
1
  import { useStrings } from "../../components/Provider.js";
2
- import { ChevronLeftIcon, ChevronRightIcon, CloseIcon, DownloadFileIcon, FileIcon, LinkIcon, ZoomInIcon, ZoomOutIcon } from "../../icons.js";
2
+ import { FaLink } from "../../icons/fa/FaLink.js";
3
+ import { FiDownload } from "../../icons/fi/FiDownload.js";
4
+ import { FiFile } from "../../icons/fi/FiFile.js";
5
+ import { IoMdClose } from "../../icons/io/IoMdClose.js";
6
+ import { LuChevronLeft } from "../../icons/lu/LuChevronLeft.js";
7
+ import { LuChevronRight } from "../../icons/lu/LuChevronRight.js";
8
+ import { LuZoomIn } from "../../icons/lu/LuZoomIn.js";
9
+ import { LuZoomOut } from "../../icons/lu/LuZoomOut.js";
3
10
  import { formatFileSize } from "../lib/utils.js";
4
11
  import { getPreviewKind } from "./previewType.js";
5
12
  import { StreamedBadge } from "./StreamedBadge.js";
@@ -71,7 +78,7 @@ function FilePreview({ open, node, siblings, storage, getPresignedUrl, onNavigat
71
78
  children: [/* @__PURE__ */ jsxs("div", {
72
79
  className: "flex min-w-0 items-center gap-2.5",
73
80
  children: [
74
- /* @__PURE__ */ jsx(FileIcon, { className: cx("h-4 w-4 shrink-0", !floatingChrome && "theme-muted-text") }),
81
+ /* @__PURE__ */ jsx(FiFile, { className: cx("h-4 w-4 shrink-0", !floatingChrome && "theme-muted-text") }),
75
82
  /* @__PURE__ */ jsx("span", {
76
83
  className: "truncate font-semibold",
77
84
  children: node.name
@@ -99,19 +106,19 @@ function FilePreview({ open, node, siblings, storage, getPresignedUrl, onNavigat
99
106
  overlay: floatingChrome,
100
107
  label: t.preview.copyUri,
101
108
  onClick: () => onCopyUri(node),
102
- children: /* @__PURE__ */ jsx(LinkIcon, { className: "h-4 w-4" })
109
+ children: /* @__PURE__ */ jsx(FaLink, { className: "h-4 w-4" })
103
110
  }),
104
111
  /* @__PURE__ */ jsx(ChromeButton, {
105
112
  overlay: floatingChrome,
106
113
  label: t.preview.download,
107
114
  onClick: () => onDownload(node),
108
- children: /* @__PURE__ */ jsx(DownloadFileIcon, { className: "h-4 w-4" })
115
+ children: /* @__PURE__ */ jsx(FiDownload, { className: "h-4 w-4" })
109
116
  }),
110
117
  /* @__PURE__ */ jsx(ChromeButton, {
111
118
  overlay: floatingChrome,
112
119
  label: t.preview.close,
113
120
  onClick: onClose,
114
- children: /* @__PURE__ */ jsx(CloseIcon, { className: "h-4 w-4" })
121
+ children: /* @__PURE__ */ jsx(IoMdClose, { className: "h-4 w-4" })
115
122
  })
116
123
  ]
117
124
  })]
@@ -130,7 +137,7 @@ function FilePreview({ open, node, siblings, storage, getPresignedUrl, onNavigat
130
137
  overlay: floatingChrome,
131
138
  label: t.preview.zoomOut,
132
139
  onClick: () => setZoom((z) => Math.max(25, z - 25)),
133
- children: /* @__PURE__ */ jsx(ZoomOutIcon, { className: "h-3.5 w-3.5" })
140
+ children: /* @__PURE__ */ jsx(LuZoomOut, { className: "h-3.5 w-3.5" })
134
141
  }),
135
142
  /* @__PURE__ */ jsxs("span", {
136
143
  className: "min-w-11 text-center text-xs tabular-nums",
@@ -140,7 +147,7 @@ function FilePreview({ open, node, siblings, storage, getPresignedUrl, onNavigat
140
147
  overlay: floatingChrome,
141
148
  label: t.preview.zoomIn,
142
149
  onClick: () => setZoom((z) => Math.min(400, z + 25)),
143
- children: /* @__PURE__ */ jsx(ZoomInIcon, { className: "h-3.5 w-3.5" })
150
+ children: /* @__PURE__ */ jsx(LuZoomIn, { className: "h-3.5 w-3.5" })
144
151
  })
145
152
  ]
146
153
  }), /* @__PURE__ */ jsxs("div", {
@@ -151,7 +158,7 @@ function FilePreview({ open, node, siblings, storage, getPresignedUrl, onNavigat
151
158
  label: t.preview.previousFile,
152
159
  disabled: !hasPrev,
153
160
  onClick: goPrev,
154
- children: /* @__PURE__ */ jsx(ChevronLeftIcon, { className: "h-4 w-4" })
161
+ children: /* @__PURE__ */ jsx(LuChevronLeft, { className: "h-4 w-4" })
155
162
  }),
156
163
  /* @__PURE__ */ jsx("span", {
157
164
  className: "min-w-14 text-center text-xs tabular-nums",
@@ -162,7 +169,7 @@ function FilePreview({ open, node, siblings, storage, getPresignedUrl, onNavigat
162
169
  label: t.preview.nextFile,
163
170
  disabled: !hasNext,
164
171
  onClick: goNext,
165
- children: /* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-4 w-4" })
172
+ children: /* @__PURE__ */ jsx(LuChevronRight, { className: "h-4 w-4" })
166
173
  })
167
174
  ]
168
175
  })]
@@ -259,7 +266,7 @@ function EdgeButton({ side, label, disabled, onClick }) {
259
266
  },
260
267
  className: cx("absolute top-1/2 z-20 flex h-13 w-13 -translate-y-1/2 items-center justify-center rounded-full text-white backdrop-blur", side === "left" ? "left-5" : "right-5", disabled ? "cursor-not-allowed opacity-30" : "cursor-pointer hover:bg-white/20"),
261
268
  style: { backgroundColor: "rgba(22,27,34,.7)" },
262
- children: side === "left" ? /* @__PURE__ */ jsx(ChevronLeftIcon, { className: "h-6 w-6" }) : /* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-6 w-6" })
269
+ children: side === "left" ? /* @__PURE__ */ jsx(LuChevronLeft, { className: "h-6 w-6" }) : /* @__PURE__ */ jsx(LuChevronRight, { className: "h-6 w-6" })
263
270
  });
264
271
  }
265
272
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import { useStrings } from "../components/Provider.js";
2
- import { EyeIcon } from "../icons.js";
2
+ import { LuEye } from "../icons/lu/LuEye.js";
3
3
  import { TOOLTIP_ID } from "../components/Tooltip.js";
4
4
  import { MoreButton, useRowMenuActive } from "../list/RowContextMenu.js";
5
5
  import { Table } from "../components/Table.js";
@@ -151,7 +151,7 @@ function FileRow({ node, icon, rowId, rowIndex, active, checked, canPreview, get
151
151
  onPreview(node);
152
152
  },
153
153
  className: cx("rounded p-1 text-(--theme-muted-text-color) transition-colors hover:bg-(--theme-muted-panel-bg) hover:text-(--theme-app) [&>svg]:h-4 [&>svg]:w-4", menuActive ? "opacity-100" : "opacity-0 group-hover:opacity-100 focus-visible:opacity-100"),
154
- children: /* @__PURE__ */ jsx(EyeIcon, {})
154
+ children: /* @__PURE__ */ jsx(LuEye, {})
155
155
  }), /* @__PURE__ */ jsx(MoreButton, {
156
156
  active: menuActive,
157
157
  onOpen: (x, y) => openRowMenu(x, y, getItems())
@@ -1,5 +1,6 @@
1
1
  import { useSlots, useStrings } from "../components/Provider.js";
2
- import { FileIcon, FolderIcon } from "../icons.js";
2
+ import { FaRegFolder } from "../icons/fa/FaRegFolder.js";
3
+ import { FiFile } from "../icons/fi/FiFile.js";
3
4
  import { canPreview } from "./FilePreview/previewType.js";
4
5
  import { getNodeIcon } from "./helpers.js";
5
6
  import { FileRow } from "./FileRow.js";
@@ -41,7 +42,7 @@ function FileRowsWindow({ items, padTop, padBottom, nodes, checkedItems, activeI
41
42
  root: scrollEl,
42
43
  onLoadMore: loadMore.onLoadMore
43
44
  }, "load-more") : null;
44
- const icon = getNodeIcon(node, storageIconUrl, storageIconAlt) ?? (node.type === "directory" ? /* @__PURE__ */ jsx(FolderIcon, { className: "h-4 w-4 text-sky-500/80" }) : /* @__PURE__ */ jsx(FileIcon, { className: "h-4 w-4 theme-muted-text" }));
45
+ const icon = getNodeIcon(node, storageIconUrl, storageIconAlt) ?? (node.type === "directory" ? /* @__PURE__ */ jsx(FaRegFolder, { className: "h-4 w-4 text-sky-500/80" }) : /* @__PURE__ */ jsx(FiFile, { className: "h-4 w-4 theme-muted-text" }));
45
46
  return /* @__PURE__ */ jsx(FileRow, {
46
47
  rowId: `${rowIdPrefix}-${item.index}`,
47
48
  rowIndex: item.index + 2,
@@ -1,5 +1,7 @@
1
1
  import { useStrings } from "../components/Provider.js";
2
- import { AngleRightIcon, FolderIcon, FolderOpenIcon } from "../icons.js";
2
+ import { FaAngleRight } from "../icons/fa/FaAngleRight.js";
3
+ import { FaRegFolder } from "../icons/fa/FaRegFolder.js";
4
+ import { FaRegFolderOpen } from "../icons/fa6/FaRegFolderOpen.js";
3
5
  import { positionKeys } from "../components/keys.js";
4
6
  import { getParentPath } from "./lib/utils.js";
5
7
  import { canPreview } from "./FilePreview/previewType.js";
@@ -192,8 +194,8 @@ function RowIcons({ isDirectory, isExpanded, customIcon }) {
192
194
  className: "shrink-0",
193
195
  children: customIcon
194
196
  });
195
- const folder = isExpanded ? /* @__PURE__ */ jsx(FolderOpenIcon, { className: "h-4 w-4 mr-1 text-sky-500" }) : /* @__PURE__ */ jsx(FolderIcon, { className: "h-4 w-4 mr-1 text-sky-500/80" });
196
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(AngleRightIcon, { className: cx("h-3.5 w-3.5 shrink-0 theme-muted-text transition-transform duration-150", isExpanded && "rotate-90") }), customIcon ?? folder] });
197
+ const folder = isExpanded ? /* @__PURE__ */ jsx(FaRegFolderOpen, { className: "h-4 w-4 mr-1 text-sky-500" }) : /* @__PURE__ */ jsx(FaRegFolder, { className: "h-4 w-4 mr-1 text-sky-500/80" });
198
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(FaAngleRight, { className: cx("h-3.5 w-3.5 shrink-0 theme-muted-text transition-transform duration-150", isExpanded && "rotate-90") }), customIcon ?? folder] });
197
199
  }
198
200
  /** Click-only, unlike the table's sentinel: the tree is a navigation aid, and
199
201
  * growing it automatically as the user scrolls is what the cap exists to prevent. */