@parallelworks/ui 0.20.0 → 0.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/ai/adapter/openai/createOpenAIStream.js +3 -2
- package/dist/ai/agent/diff.d.ts +0 -1
- package/dist/ai/agent/diff.js +3 -2
- package/dist/ai/agent/toolfmt.js +2 -3
- package/dist/ai/ai.css +5 -0
- package/dist/ai/components/AllocationSelector.js +3 -2
- package/dist/ai/components/AttachmentManager.js +7 -5
- package/dist/ai/components/AttachmentUpload.js +11 -7
- package/dist/ai/components/BlockedGroupBanner.js +2 -2
- package/dist/ai/components/BranchNavigator.js +8 -5
- package/dist/ai/components/ChatEmptyState.js +8 -5
- package/dist/ai/components/ChatInput.d.ts +2 -5
- package/dist/ai/components/ChatInput.js +16 -11
- package/dist/ai/components/ChatMessage.js +25 -17
- package/dist/ai/components/ChatMessageList.js +4 -3
- package/dist/ai/components/ChatSidebar.d.ts +0 -1
- package/dist/ai/components/ChatSidebar.js +22 -16
- package/dist/ai/components/ChatThread.js +9 -11
- package/dist/ai/components/ComposerChrome.js +2 -2
- package/dist/ai/components/ModelSelector.js +20 -14
- package/dist/ai/components/ShareDialog.js +10 -6
- package/dist/ai/components/SlashMenu.d.ts +0 -1
- package/dist/ai/components/agent/ActivityLine.d.ts +0 -1
- package/dist/ai/components/agent/ActivityLine.js +5 -4
- package/dist/ai/components/agent/AgentMessageParts.d.ts +1 -26
- package/dist/ai/components/agent/AgentMessageParts.js +13 -12
- package/dist/ai/core/ChatProvider.d.ts +2 -6
- package/dist/ai/core/ChatProvider.js +42 -67
- package/dist/ai/core/KeyboardShortcutsProvider.js +1 -1
- package/dist/ai/core/chatReducer.d.ts +0 -6
- package/dist/ai/core/chatReducer.js +1 -15
- package/dist/ai/core/useKeyboardShortcuts.d.ts +3 -1
- package/dist/ai/core/useKeyboardShortcuts.js +9 -11
- package/dist/ai/core/useSSEStream.d.ts +0 -1
- package/dist/ai/core/useSSEStream.js +5 -17
- package/dist/ai/strings.d.ts +0 -1
- package/dist/ai/strings.js +0 -1
- package/dist/ai/types.d.ts +1 -1
- package/dist/ai/ui/Avatar.d.ts +1 -2
- package/dist/ai/ui/Avatar.js +7 -18
- package/dist/ai/ui/Dropdown.js +2 -2
- package/dist/ai/ui/Markdown.d.ts +1 -3
- package/dist/ai/ui/Markdown.js +1 -2
- package/dist/ai/ui/Notice.js +5 -3
- package/dist/ai/ui/sidebar.d.ts +0 -1
- package/dist/ai/ui/sidebar.js +5 -3
- package/dist/ai/utils.js +1 -1
- package/dist/components/Avatar.js +4 -2
- package/dist/components/BareModal.js +1 -5
- package/dist/components/Breadcrumbs.js +21 -14
- package/dist/components/Button.js +3 -2
- package/dist/components/Callout.js +4 -3
- package/dist/components/CollapsiblePanel.d.ts +1 -3
- package/dist/components/CollapsiblePanel.js +7 -7
- package/dist/components/CopyToClipboard.js +8 -4
- package/dist/components/CreateModal.js +11 -7
- package/dist/components/Dropdown.d.ts +0 -4
- package/dist/components/Dropdown.js +7 -8
- package/dist/components/Filter.js +2 -2
- package/dist/components/Indicator.js +14 -9
- package/dist/components/Input.js +6 -4
- package/dist/components/Listbox.js +16 -20
- package/dist/components/Loader.js +1 -1
- package/dist/components/MultiSelect.js +5 -8
- package/dist/components/PageHeader.js +10 -7
- package/dist/components/Pagination.js +1 -1
- package/dist/components/Provider.d.ts +0 -8
- package/dist/components/Sort.js +6 -4
- package/dist/components/StatusIcons.d.ts +11 -0
- package/dist/components/StatusIcons.js +20 -0
- package/dist/components/SwitchToggle.js +3 -5
- package/dist/components/Table.d.ts +1 -3
- package/dist/components/Tooltip.js +3 -3
- package/dist/components/dropdownUtils.js +7 -8
- package/dist/components/relativeTime.d.ts +0 -7
- package/dist/components/relativeTime.js +1 -1
- package/dist/duration.js +1 -1
- package/dist/editor/Editor.d.ts +1 -1
- package/dist/editor/Editor.js +1 -1
- package/dist/editor/EditorField.d.ts +0 -1
- package/dist/editor/EditorField.js +8 -8
- package/dist/editor/FormCodePanel.js +20 -23
- package/dist/editor/yamlLanguage.js +2 -2
- package/dist/file-explorer/FileExplorer.js +94 -82
- package/dist/file-explorer/FileExplorerContext.d.ts +1 -2
- package/dist/file-explorer/FileExplorerContext.js +92 -125
- package/dist/file-explorer/FilePreview/Inline.d.ts +1 -2
- package/dist/file-explorer/FilePreview/Inline.js +4 -4
- package/dist/file-explorer/FilePreview/StreamedBadge.js +2 -2
- package/dist/file-explorer/FilePreview/Viewer.js +14 -14
- package/dist/file-explorer/FilePreview/index.d.ts +1 -2
- package/dist/file-explorer/FilePreview/index.js +20 -13
- package/dist/file-explorer/FilePreview/parse.d.ts +2 -1
- package/dist/file-explorer/FilePreview/useObjectBlobUrl.d.ts +5 -4
- package/dist/file-explorer/FilePreview/useObjectBlobUrl.js +23 -36
- package/dist/file-explorer/FilePreview/useObjectText.d.ts +1 -2
- package/dist/file-explorer/FilePreview/useObjectText.js +5 -7
- package/dist/file-explorer/FileRow.js +3 -3
- package/dist/file-explorer/FileRowsWindow.d.ts +5 -12
- package/dist/file-explorer/FileRowsWindow.js +3 -2
- package/dist/file-explorer/FileTable.d.ts +2 -6
- package/dist/file-explorer/LoadMoreRow.d.ts +8 -0
- package/dist/file-explorer/TreeView.d.ts +0 -1
- package/dist/file-explorer/TreeView.js +11 -9
- package/dist/file-explorer/helpers.js +45 -33
- package/dist/file-explorer/lib/fileExplorer.d.ts +0 -2
- package/dist/file-explorer/lib/types.d.ts +0 -1
- package/dist/file-explorer/lib/utils.js +15 -20
- package/dist/file-explorer/toasts.js +54 -45
- package/dist/form/Fields/BooleanField.js +5 -4
- package/dist/form/Fields/CheckboxGroupField.js +5 -4
- package/dist/form/Fields/ColorField.js +5 -4
- package/dist/form/Fields/DropdownField.d.ts +0 -1
- package/dist/form/Fields/DropdownField.js +10 -13
- package/dist/form/Fields/DurationField.js +2 -2
- package/dist/form/Fields/LabelField.js +5 -5
- package/dist/form/Fields/MultiDropdownField.d.ts +1 -1
- package/dist/form/Fields/MultiDropdownField.js +8 -11
- package/dist/form/Fields/NumberField.js +6 -5
- package/dist/form/Fields/ObjectField.d.ts +1 -2
- package/dist/form/Fields/ObjectField.js +22 -21
- package/dist/form/Fields/RadioField.js +4 -3
- package/dist/form/Fields/RangeField.js +7 -6
- package/dist/form/Fields/StringField.js +2 -1
- package/dist/form/Fields/TextAreaField.js +2 -1
- package/dist/form/Form.d.ts +7 -8
- package/dist/form/Form.js +56 -81
- package/dist/form/SpecialTypes/DropdownWrapper.d.ts +0 -2
- package/dist/form/SpecialTypes/DropdownWrapper.js +1 -3
- package/dist/form/SpecialTypes/FormikCustomDropdown.d.ts +1 -3
- package/dist/form/SpecialTypes/FormikCustomDropdown.js +4 -7
- package/dist/form/SpecialTypes/FormikCustomInput.js +16 -13
- package/dist/form/Wizard/WizardContainer.js +8 -25
- package/dist/form/Wizard/WizardNavigation.d.ts +1 -1
- package/dist/form/Wizard/WizardNavigation.js +5 -6
- package/dist/form/Wizard/WizardStepContent.d.ts +1 -1
- package/dist/form/Wizard/WizardStepContent.js +2 -2
- package/dist/form/Wizard/WizardStepIndicator.js +7 -17
- package/dist/form/Wizard/types.d.ts +4 -46
- package/dist/form/Wizard/useWizardState.d.ts +2 -10
- package/dist/form/Wizard/useWizardState.js +42 -92
- package/dist/form/Wizard/utils.js +6 -11
- package/dist/form/lib.js +28 -54
- package/dist/form/types/fieldTypes.d.ts +4 -5
- package/dist/form/utils/dependentOptions.d.ts +6 -0
- package/dist/form/utils/dependentOptions.js +21 -0
- package/dist/form/utils/getParentValue.d.ts +2 -1
- package/dist/form/utils/getParentValue.js +10 -15
- package/dist/form/utils/getValueUsingPath.js +1 -1
- package/dist/graph/AnnotationBanner.d.ts +1 -1
- package/dist/graph/AnnotationBanner.js +10 -6
- package/dist/graph/Collapse.d.ts +3 -3
- package/dist/graph/Collapse.js +3 -8
- package/dist/graph/DependencyGraph.d.ts +5 -4
- package/dist/graph/DependencyGraph.js +178 -226
- package/dist/graph/JobSummary.d.ts +10 -8
- package/dist/graph/JobSummary.js +17 -16
- package/dist/graph/MatrixGroup.d.ts +5 -17
- package/dist/graph/MatrixGroup.js +11 -22
- package/dist/graph/TreeView.d.ts +1 -3
- package/dist/graph/TreeView.js +106 -492
- package/dist/graph/types.d.ts +3 -2
- package/dist/graph/util.d.ts +5 -0
- package/dist/graph/util.js +18 -0
- package/dist/icons/ai/AiOutlineRollback.js +16 -0
- package/dist/icons/bi/BiBell.js +16 -0
- package/dist/icons/bi/BiBellOff.js +16 -0
- package/dist/icons/bi/BiBuildings.js +20 -0
- package/dist/icons/bi/BiError.js +20 -0
- package/dist/icons/bi/BiExpandVertical.js +16 -0
- package/dist/icons/bi/BiPause.js +16 -0
- package/dist/icons/bi/BiPlay.js +16 -0
- package/dist/icons/bi/BiSolidCheckShield.js +16 -0
- package/dist/icons/bi/BiSolidTrashAlt.js +16 -0
- package/dist/icons/bi/BiStop.js +16 -0
- package/dist/icons/bs/BsArrowsCollapse.js +22 -0
- package/dist/icons/bs/BsBank2.js +19 -0
- package/dist/icons/bs/BsBriefcase.js +19 -0
- package/dist/icons/bs/BsBucket.js +19 -0
- package/dist/icons/bs/BsCalendarX.js +23 -0
- package/dist/icons/bs/BsChatLeft.js +19 -0
- package/dist/icons/bs/BsChevronDoubleDown.js +29 -0
- package/dist/icons/bs/BsChevronDoubleUp.js +29 -0
- package/dist/icons/bs/BsClipboardCheck.js +34 -0
- package/dist/icons/bs/BsCurrencyDollar.js +19 -0
- package/dist/icons/bs/BsDash.js +19 -0
- package/dist/icons/bs/BsFileEarmarkZip.js +23 -0
- package/dist/icons/bs/BsFiles.js +19 -0
- package/dist/icons/bs/BsGeoAlt.js +23 -0
- package/dist/icons/bs/BsGrid.js +19 -0
- package/dist/icons/bs/BsLayers.js +19 -0
- package/dist/icons/bs/BsLayoutThreeColumns.js +19 -0
- package/dist/icons/bs/BsListUl.js +22 -0
- package/dist/icons/bs/BsMortarboard.js +23 -0
- package/dist/icons/bs/BsMusicNoteBeamed.js +34 -0
- package/dist/icons/bs/BsOpenai.js +19 -0
- package/dist/icons/bs/BsPersonPlus.js +26 -0
- package/dist/icons/bs/BsSearch.js +19 -0
- package/dist/icons/bs/BsSend.js +19 -0
- package/dist/icons/bs/BsShieldSlash.js +22 -0
- package/dist/icons/bs/BsStar.js +19 -0
- package/dist/icons/bs/BsStarFill.js +19 -0
- package/dist/icons/bs/BsStopCircle.js +23 -0
- package/dist/icons/bs/BsTag.js +23 -0
- package/dist/icons/bs/BsTelephone.js +19 -0
- package/dist/icons/bs/BsTerminal.js +23 -0
- package/dist/icons/bs/BsTerminalFill.js +19 -0
- package/dist/icons/bs/BsThreeDots.js +19 -0
- package/dist/icons/bs/BsThreeDotsVertical.js +19 -0
- package/dist/icons/bs/BsZoomIn.js +37 -0
- package/dist/icons/fa/FaAmazon.js +16 -0
- package/dist/icons/fa/FaAngleDown.js +16 -0
- package/dist/icons/fa/FaAngleLeft.js +16 -0
- package/dist/icons/fa/FaAngleRight.js +16 -0
- package/dist/icons/fa/FaAngleUp.js +16 -0
- package/dist/icons/fa/FaArrowDown.js +16 -0
- package/dist/icons/fa/FaArrowLeft.js +16 -0
- package/dist/icons/fa/FaArrowRight.js +16 -0
- package/dist/icons/fa/FaArrowUp.js +16 -0
- package/dist/icons/fa/FaBalanceScale.js +16 -0
- package/dist/icons/fa/FaCaretDown.js +16 -0
- package/dist/icons/fa/FaCentos.js +16 -0
- package/dist/icons/fa/FaChartLine.js +16 -0
- package/dist/icons/fa/FaChartPie.js +16 -0
- package/dist/icons/fa/FaCheck.js +16 -0
- package/dist/icons/fa/FaChevronDown.js +16 -0
- package/dist/icons/fa/FaChevronUp.js +16 -0
- package/dist/icons/fa/FaChrome.js +16 -0
- package/dist/icons/fa/FaCircleNotch.js +16 -0
- package/dist/icons/fa/FaCloud.js +16 -0
- package/dist/icons/fa/FaCloudDownloadAlt.js +16 -0
- package/dist/icons/fa/FaCog.js +16 -0
- package/dist/icons/fa/FaCogs.js +16 -0
- package/dist/icons/fa/FaComments.js +16 -0
- package/dist/icons/fa/FaCompress.js +16 -0
- package/dist/icons/fa/FaDesktop.js +16 -0
- package/dist/icons/fa/FaDocker.js +16 -0
- package/dist/icons/fa/FaDollarSign.js +16 -0
- package/dist/icons/fa/FaEdge.js +16 -0
- package/dist/icons/fa/FaEdit.js +16 -0
- package/dist/icons/fa/FaExclamationTriangle.js +16 -0
- package/dist/icons/fa/FaExpand.js +16 -0
- package/dist/icons/fa/FaEye.js +16 -0
- package/dist/icons/fa/FaEyeSlash.js +16 -0
- package/dist/icons/fa/FaFile.js +16 -0
- package/dist/icons/fa/FaFilePdf.js +16 -0
- package/dist/icons/fa/FaFilter.js +16 -0
- package/dist/icons/fa/FaFirefoxBrowser.js +16 -0
- package/dist/icons/fa/FaFlask.js +16 -0
- package/dist/icons/fa/FaFolder.js +16 -0
- package/dist/icons/fa/FaGithub.js +16 -0
- package/dist/icons/fa/FaGitlab.js +16 -0
- package/dist/icons/fa/FaGlobe.js +16 -0
- package/dist/icons/fa/FaGlobeAmericas.js +16 -0
- package/dist/icons/fa/FaImage.js +16 -0
- package/dist/icons/fa/FaInfoCircle.js +16 -0
- package/dist/icons/fa/FaKey.js +16 -0
- package/dist/icons/fa/FaLayerGroup.js +16 -0
- package/dist/icons/fa/FaLink.js +16 -0
- package/dist/icons/fa/FaLinkedin.js +16 -0
- package/dist/icons/fa/FaLinux.js +16 -0
- package/dist/icons/fa/FaList.js +16 -0
- package/dist/icons/fa/FaLock.js +16 -0
- package/dist/icons/fa/FaOpenid.js +16 -0
- package/dist/icons/fa/FaOpera.js +16 -0
- package/dist/icons/fa/FaPaperclip.js +16 -0
- package/dist/icons/fa/FaPlus.js +16 -0
- package/dist/icons/fa/FaPowerOff.js +16 -0
- package/dist/icons/fa/FaPrint.js +16 -0
- package/dist/icons/fa/FaQrcode.js +16 -0
- package/dist/icons/fa/FaQuestionCircle.js +16 -0
- package/dist/icons/fa/FaRedhat.js +16 -0
- package/dist/icons/fa/FaRegCircle.js +16 -0
- package/dist/icons/fa/FaRegFileImage.js +16 -0
- package/dist/icons/fa/FaRegFolder.js +16 -0
- package/dist/icons/fa/FaRobot.js +16 -0
- package/dist/icons/fa/FaRocket.js +16 -0
- package/dist/icons/fa/FaRunning.js +16 -0
- package/dist/icons/fa/FaSafari.js +16 -0
- package/dist/icons/fa/FaSave.js +16 -0
- package/dist/icons/fa/FaSearch.js +16 -0
- package/dist/icons/fa/FaShieldAlt.js +16 -0
- package/dist/icons/fa/FaSlack.js +16 -0
- package/dist/icons/fa/FaStar.js +16 -0
- package/dist/icons/fa/FaStop.js +16 -0
- package/dist/icons/fa/FaSuse.js +16 -0
- package/dist/icons/fa/FaTerminal.js +16 -0
- package/dist/icons/fa/FaTimes.js +16 -0
- package/dist/icons/fa/FaUbuntu.js +16 -0
- package/dist/icons/fa/FaUndoAlt.js +16 -0
- package/dist/icons/fa/FaUnlink.js +16 -0
- package/dist/icons/fa/FaUser.js +16 -0
- package/dist/icons/fa/FaUsers.js +16 -0
- package/dist/icons/fa/FaWindows.js +16 -0
- package/dist/icons/fa6/FaApple.js +16 -0
- package/dist/icons/fa6/FaArrowsRotate.js +16 -0
- package/dist/icons/fa6/FaDebian.js +16 -0
- package/dist/icons/fa6/FaFilterCircleXmark.js +16 -0
- package/dist/icons/fa6/FaInbox.js +16 -0
- package/dist/icons/fa6/FaLocationDot.js +16 -0
- package/dist/icons/fa6/FaRegFilePdf.js +16 -0
- package/dist/icons/fa6/FaRegFolderOpen.js +16 -0
- package/dist/icons/fa6/FaUpRightFromSquare.js +16 -0
- package/dist/icons/fa6/FaWandMagicSparkles.js +16 -0
- package/dist/icons/fa6/FaXTwitter.js +16 -0
- package/dist/icons/fi/FiActivity.js +23 -0
- package/dist/icons/fi/FiAlertCircle.js +49 -0
- package/dist/icons/fi/FiChevronDown.js +23 -0
- package/dist/icons/fi/FiClock.js +31 -0
- package/dist/icons/fi/FiCopy.js +34 -0
- package/dist/icons/fi/FiDownload.js +40 -0
- package/dist/icons/fi/FiFile.js +27 -0
- package/dist/icons/fi/FiFileText.js +55 -0
- package/dist/icons/fi/FiHardDrive.js +55 -0
- package/dist/icons/fi/FiRotateCcw.js +27 -0
- package/dist/icons/fi/FiUpload.js +40 -0
- package/dist/icons/fi/FiX.js +37 -0
- package/dist/icons/fi/FiZap.js +23 -0
- package/dist/icons/gi/GiSpy.js +16 -0
- package/dist/icons/go/GoGitCommit.js +16 -0
- package/dist/icons/go/GoGitPullRequest.js +20 -0
- package/dist/icons/go/GoIssueOpened.js +16 -0
- package/dist/icons/go/GoPlus.js +16 -0
- package/dist/icons/go/GoRepoForked.js +28 -0
- package/dist/icons/go/GoSignOut.js +16 -0
- package/dist/icons/go/GoSkip.js +20 -0
- package/dist/icons/go/GoVideo.js +20 -0
- package/dist/icons/gr/GrCloudComputer.js +20 -0
- package/dist/icons/gr/GrInbox.js +20 -0
- package/dist/icons/gr/GrServerCluster.js +20 -0
- package/dist/icons/gr/GrStorage.js +20 -0
- package/dist/icons/gr/GrTasks.js +20 -0
- package/dist/icons/hi/HiCog.js +24 -0
- package/dist/icons/hi/HiDuplicate.js +24 -0
- package/dist/icons/hi/HiOutlineArchive.js +26 -0
- package/dist/icons/hi/HiOutlineClipboardCopy.js +26 -0
- package/dist/icons/hi/HiOutlineHome.js +26 -0
- package/dist/icons/hi/HiQuestionMarkCircle.js +24 -0
- package/dist/icons/hi/HiServer.js +24 -0
- package/dist/icons/hi2/HiMiniCheckCircle.js +24 -0
- package/dist/icons/hi2/HiMiniLanguage.js +28 -0
- package/dist/icons/hi2/HiMiniMinusCircle.js +24 -0
- package/dist/icons/hi2/HiMiniXCircle.js +24 -0
- package/dist/icons/hi2/HiSparkles.js +24 -0
- package/dist/icons/im/ImSpinner5.js +19 -0
- package/dist/icons/io/IoIosNotifications.js +16 -0
- package/dist/icons/io/IoMdBuild.js +16 -0
- package/dist/icons/io/IoMdClose.js +16 -0
- package/dist/icons/io5/IoCloudUploadOutline.js +32 -0
- package/dist/icons/io5/IoDocumentTextOutline.js +31 -0
- package/dist/icons/io5/IoFileTrayFullOutline.js +31 -0
- package/dist/icons/io5/IoHeart.js +16 -0
- package/dist/icons/io5/IoHeartDislike.js +16 -0
- package/dist/icons/io5/IoHeartOutline.js +22 -0
- package/dist/icons/io5/IoInformationCircleOutline.js +50 -0
- package/dist/icons/io5/IoSettingsOutline.js +22 -0
- package/dist/icons/io5/IoWarningOutline.js +40 -0
- package/dist/icons/lu/LuArrowRight.js +27 -0
- package/dist/icons/lu/LuBadgeCheck.js +27 -0
- package/dist/icons/lu/LuBrainCircuit.js +101 -0
- package/dist/icons/lu/LuCalendar.js +46 -0
- package/dist/icons/lu/LuCheck.js +23 -0
- package/dist/icons/lu/LuChevronLeft.js +23 -0
- package/dist/icons/lu/LuChevronRight.js +23 -0
- package/dist/icons/lu/LuExternalLink.js +35 -0
- package/dist/icons/lu/LuEye.js +31 -0
- package/dist/icons/lu/LuEyeOff.js +40 -0
- package/dist/icons/lu/LuFolderTree.js +40 -0
- package/dist/icons/lu/LuIdCard.js +55 -0
- package/dist/icons/lu/LuLogs.js +65 -0
- package/dist/icons/lu/LuMail.js +33 -0
- package/dist/icons/lu/LuMegaphone.js +27 -0
- package/dist/icons/lu/LuMoon.js +23 -0
- package/dist/icons/lu/LuPartyPopper.js +65 -0
- package/dist/icons/lu/LuSettings2.js +48 -0
- package/dist/icons/lu/LuSheet.js +72 -0
- package/dist/icons/lu/LuShield.js +23 -0
- package/dist/icons/lu/LuSun.js +69 -0
- package/dist/icons/lu/LuX.js +27 -0
- package/dist/icons/lu/LuZoomIn.js +59 -0
- package/dist/icons/lu/LuZoomOut.js +49 -0
- package/dist/icons/md/MdClear.js +23 -0
- package/dist/icons/md/MdDragHandle.js +23 -0
- package/dist/icons/md/MdInstallDesktop.js +31 -0
- package/dist/icons/md/MdOutlineAttachMoney.js +23 -0
- package/dist/icons/md/MdOutlineMoneyOff.js +23 -0
- package/dist/icons/md/MdPieChart.js +23 -0
- package/dist/icons/md/MdRefresh.js +23 -0
- package/dist/icons/md/MdReplay.js +23 -0
- package/dist/icons/md/MdSmartphone.js +23 -0
- package/dist/icons/pi/PiArrowBendUpRightBold.js +19 -0
- package/dist/icons/pi/PiPlugsConnectedFill.js +19 -0
- package/dist/icons/pi/PiRectangleDashed.js +19 -0
- package/dist/icons/pi/PiShareBold.js +19 -0
- package/dist/icons/si/SiAnthropic.js +19 -0
- package/dist/icons/si/SiHelm.js +19 -0
- package/dist/icons/si/SiKubernetes.js +19 -0
- package/dist/icons/tb/TbAlertTriangle.js +35 -0
- package/dist/icons/tb/TbAlertTriangleFilled.js +19 -0
- package/dist/icons/tb/TbApi.js +40 -0
- package/dist/icons/tb/TbBrain.js +50 -0
- package/dist/icons/tb/TbBuildingTunnel.js +65 -0
- package/dist/icons/tb/TbEdit.js +35 -0
- package/dist/icons/tb/TbLayoutSidebar.js +27 -0
- package/dist/icons/tb/TbLayoutSidebarLeftCollapse.js +35 -0
- package/dist/icons/tb/TbLayoutSidebarRightCollapse.js +35 -0
- package/dist/icons/tb/TbUser.js +27 -0
- package/dist/icons/tb/TbUserOff.js +35 -0
- package/dist/icons/tb/TbWorldShare.js +55 -0
- package/dist/icons/tb/TbWorldWww.js +65 -0
- package/dist/icons/ti/TiArrowSortedDown.js +20 -0
- package/dist/icons/ti/TiArrowSortedUp.js +20 -0
- package/dist/icons/ti/TiArrowUnsorted.js +20 -0
- package/dist/icons/ti/TiCancel.js +20 -0
- package/dist/icons/vsc/VscChromeMinimize.js +19 -0
- package/dist/icons/vsc/VscJson.js +19 -0
- package/dist/icons/vsc/VscLayoutSidebarLeft.js +19 -0
- package/dist/icons/vsc/VscPass.js +27 -0
- package/dist/icons/vsc/VscSplitHorizontal.js +19 -0
- package/dist/icons/vsc/VscTerminalPowershell.js +19 -0
- package/dist/icons.d.ts +7 -22
- package/dist/icons.js +257 -38
- package/dist/index.d.ts +1 -1
- package/dist/list/ActionToolbar.js +2 -2
- package/dist/list/ListPager.js +4 -3
- package/dist/list/ListTable.js +2 -2
- package/dist/list/ListViewControls.js +29 -42
- package/dist/list/RowContextMenu.js +28 -19
- package/dist/list/listSearch.js +6 -5
- package/dist/logviewer/LogViewer.js +28 -20
- package/dist/logviewer/segments.js +2 -2
- package/dist/styles/theme.css +1 -0
- package/dist/styles.css +1 -1
- package/dist/theme/index.js +5 -5
- package/package.json +28 -30
- package/dist/ai/ui/buttons.d.ts +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useLink } from "./Provider.js";
|
|
2
|
-
import {
|
|
2
|
+
import { FaAngleRight } from "../icons/fa/FaAngleRight.js";
|
|
3
|
+
import { LoaderIcon } from "./StatusIcons.js";
|
|
3
4
|
import cx from "classnames";
|
|
4
5
|
import { forwardRef } from "react";
|
|
5
6
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -57,7 +58,7 @@ function MethodButton({ icon, label, description, href, loading, disabled, class
|
|
|
57
58
|
children: description
|
|
58
59
|
})]
|
|
59
60
|
}),
|
|
60
|
-
loading ? /* @__PURE__ */ jsx(LoaderIcon, { className: "size-5 text-[var(--theme-muted-text-color)] shrink-0 ml-2" }) : /* @__PURE__ */ jsx(
|
|
61
|
+
loading ? /* @__PURE__ */ jsx(LoaderIcon, { className: "size-5 text-[var(--theme-muted-text-color)] shrink-0 ml-2" }) : /* @__PURE__ */ jsx(FaAngleRight, { className: "size-5 text-[var(--theme-muted-text-color)] shrink-0 ml-2 transition-all duration-200 group-hover:translate-x-[3px] group-hover:text-[var(--theme-app)]" })
|
|
61
62
|
] });
|
|
62
63
|
if (href) {
|
|
63
64
|
if (href.startsWith("/api/") || href.startsWith("http")) return /* @__PURE__ */ jsx("a", {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FaInfoCircle } from "../icons/fa/FaInfoCircle.js";
|
|
2
|
+
import { TbAlertTriangle } from "../icons/tb/TbAlertTriangle.js";
|
|
2
3
|
import cx from "classnames";
|
|
3
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
5
|
//#region src/components/Callout.tsx
|
|
5
6
|
function CalloutIcon({ type }) {
|
|
6
|
-
if (type === "warning" || type === "error") return /* @__PURE__ */ jsx(
|
|
7
|
-
else return /* @__PURE__ */ jsx(
|
|
7
|
+
if (type === "warning" || type === "error") return /* @__PURE__ */ jsx(TbAlertTriangle, { className: "h-6 w-6 mr-4 text-lg" });
|
|
8
|
+
else return /* @__PURE__ */ jsx(FaInfoCircle, { className: "h-6 w-6 mr-4 text-lg" });
|
|
8
9
|
}
|
|
9
10
|
function Callout({ type, className = "", children }) {
|
|
10
11
|
return /* @__PURE__ */ jsx("div", {
|
|
@@ -6,15 +6,13 @@ interface IControlledCollapsiblePanelProps {
|
|
|
6
6
|
setOpen?: React.Dispatch<React.SetStateAction<boolean>>;
|
|
7
7
|
onClick?: (() => void) | undefined;
|
|
8
8
|
wrapperElement?: React.ElementType | undefined;
|
|
9
|
-
shown?: boolean;
|
|
10
|
-
setShown?: (shown: boolean) => void;
|
|
11
9
|
customizedButton?: React.ReactNode;
|
|
12
10
|
/** Rendered right after the title, outside the toggle button. */
|
|
13
11
|
titleAction?: React.ReactNode;
|
|
14
12
|
className?: string | undefined;
|
|
15
13
|
}
|
|
16
14
|
export declare function ControlledCollapsiblePanel({ title, children, open, setOpen, onClick, wrapperElement, customizedButton, titleAction, className, }: IControlledCollapsiblePanelProps): React.JSX.Element;
|
|
17
|
-
export declare function UncontrolledCollapsiblePanel({ title, children, onClick, wrapperElement, initialState, className, customizedButton, }: Omit<IControlledCollapsiblePanelProps, 'setOpen' | 'open'> & {
|
|
15
|
+
export declare function UncontrolledCollapsiblePanel({ title, children, onClick, wrapperElement, initialState, className, customizedButton, titleAction, }: Omit<IControlledCollapsiblePanelProps, 'setOpen' | 'open'> & {
|
|
18
16
|
initialState?: boolean | undefined;
|
|
19
17
|
}): React.JSX.Element;
|
|
20
18
|
type MaybeCollapsibleProps = {
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FaAngleRight } from "../icons/fa/FaAngleRight.js";
|
|
2
2
|
import cx from "classnames";
|
|
3
3
|
import React, { useCallback } from "react";
|
|
4
4
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import AnimateHeight from "react-animate-height";
|
|
6
6
|
//#region src/components/CollapsiblePanel.tsx
|
|
7
|
-
|
|
8
|
-
function ControlledCollapsiblePanel({ title = "", children, open, setOpen, onClick = noop, wrapperElement, customizedButton = null, titleAction, className }) {
|
|
7
|
+
function ControlledCollapsiblePanel({ title = "", children, open, setOpen, onClick, wrapperElement, customizedButton = null, titleAction, className }) {
|
|
9
8
|
const toggleOpen = useCallback(() => {
|
|
10
|
-
|
|
9
|
+
onClick?.();
|
|
11
10
|
setOpen?.((open) => !open);
|
|
12
11
|
}, [setOpen, onClick]);
|
|
13
12
|
const contentId = React.useId();
|
|
14
|
-
const Wrapper = wrapperElement
|
|
13
|
+
const Wrapper = wrapperElement ?? React.Fragment;
|
|
15
14
|
return React.isValidElement(title) ? /* @__PURE__ */ jsxs(Fragment$1, { children: [title, /* @__PURE__ */ jsx(Wrapper, { children: /* @__PURE__ */ jsx(AnimateHeight, {
|
|
16
15
|
duration: 300,
|
|
17
16
|
height: open ? "auto" : 0,
|
|
@@ -27,7 +26,7 @@ function ControlledCollapsiblePanel({ title = "", children, open, setOpen, onCli
|
|
|
27
26
|
"aria-controls": contentId,
|
|
28
27
|
className: cx("flex items-center text-left cursor-pointer", !titleAction && "w-full"),
|
|
29
28
|
onClick: toggleOpen,
|
|
30
|
-
children: [/* @__PURE__ */ jsx(
|
|
29
|
+
children: [/* @__PURE__ */ jsx(FaAngleRight, { className: cx(open && "transform rotate-90", "px-1 ml-1 text-[1.25rem] transition ease-in") }), /* @__PURE__ */ jsx("span", {
|
|
31
30
|
className: "px-2 font-bold select-none",
|
|
32
31
|
children: title?.toString()
|
|
33
32
|
})]
|
|
@@ -46,7 +45,7 @@ function ControlledCollapsiblePanel({ title = "", children, open, setOpen, onCli
|
|
|
46
45
|
})]
|
|
47
46
|
});
|
|
48
47
|
}
|
|
49
|
-
function UncontrolledCollapsiblePanel({ title, children, onClick, wrapperElement, initialState = true, className, customizedButton = null }) {
|
|
48
|
+
function UncontrolledCollapsiblePanel({ title, children, onClick, wrapperElement, initialState = true, className, customizedButton = null, titleAction }) {
|
|
50
49
|
const [open, setOpen] = React.useState(initialState);
|
|
51
50
|
const passTitle = typeof title === "function" ? title(open, setOpen) : title;
|
|
52
51
|
return /* @__PURE__ */ jsx(ControlledCollapsiblePanel, {
|
|
@@ -57,6 +56,7 @@ function UncontrolledCollapsiblePanel({ title, children, onClick, wrapperElement
|
|
|
57
56
|
wrapperElement,
|
|
58
57
|
className,
|
|
59
58
|
customizedButton,
|
|
59
|
+
titleAction,
|
|
60
60
|
children
|
|
61
61
|
});
|
|
62
62
|
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { useNotify, useStrings } from "./Provider.js";
|
|
2
|
-
import {
|
|
2
|
+
import { FaCheck } from "../icons/fa/FaCheck.js";
|
|
3
|
+
import { FaEye } from "../icons/fa/FaEye.js";
|
|
4
|
+
import { FaEyeSlash } from "../icons/fa/FaEyeSlash.js";
|
|
5
|
+
import { FiCopy } from "../icons/fi/FiCopy.js";
|
|
6
|
+
import { HiOutlineClipboardCopy } from "../icons/hi/HiOutlineClipboardCopy.js";
|
|
3
7
|
import { useState } from "react";
|
|
4
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
9
|
//#region src/components/CopyToClipboard.tsx
|
|
@@ -28,7 +32,7 @@ function CopyToClipboard({ as = "div", text, className, children, showIcon = tru
|
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
34
|
},
|
|
31
|
-
children: [showIcon && /* @__PURE__ */ jsx(
|
|
35
|
+
children: [showIcon && /* @__PURE__ */ jsx(HiOutlineClipboardCopy, {}), children]
|
|
32
36
|
});
|
|
33
37
|
}
|
|
34
38
|
function CopyCodeBlock({ textToCopy, children, secret = false, isRevealed = false, onRevealToggle }) {
|
|
@@ -63,7 +67,7 @@ function CopyCodeBlock({ textToCopy, children, secret = false, isRevealed = fals
|
|
|
63
67
|
className: "p-2 rounded-md opacity-0 group-hover:opacity-100 transition-all duration-150",
|
|
64
68
|
"aria-label": isRevealed ? "Hide secret" : "Reveal secret",
|
|
65
69
|
title: isRevealed ? "Hide secret" : "Reveal secret",
|
|
66
|
-
children: isRevealed ? /* @__PURE__ */ jsx(
|
|
70
|
+
children: isRevealed ? /* @__PURE__ */ jsx(FaEye, {}) : /* @__PURE__ */ jsx(FaEyeSlash, {})
|
|
67
71
|
}), /* @__PURE__ */ jsx("button", {
|
|
68
72
|
type: "button",
|
|
69
73
|
onClick: (e) => {
|
|
@@ -72,7 +76,7 @@ function CopyCodeBlock({ textToCopy, children, secret = false, isRevealed = fals
|
|
|
72
76
|
},
|
|
73
77
|
className: "p-2 rounded-md opacity-0 group-hover:opacity-100 transition-all duration-150",
|
|
74
78
|
"aria-label": copied ? "Copied" : "Copy to clipboard",
|
|
75
|
-
children: copied ? /* @__PURE__ */ jsx(
|
|
79
|
+
children: copied ? /* @__PURE__ */ jsx(FaCheck, { className: "text-green-400" }) : /* @__PURE__ */ jsx(FiCopy, {})
|
|
76
80
|
})]
|
|
77
81
|
})]
|
|
78
82
|
});
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { useStrings } from "./Provider.js";
|
|
2
|
-
import {
|
|
2
|
+
import { FaChevronDown } from "../icons/fa/FaChevronDown.js";
|
|
3
|
+
import { HiQuestionMarkCircle } from "../icons/hi/HiQuestionMarkCircle.js";
|
|
4
|
+
import { IoHeart } from "../icons/io5/IoHeart.js";
|
|
5
|
+
import { IoHeartOutline } from "../icons/io5/IoHeartOutline.js";
|
|
6
|
+
import { LuChevronRight } from "../icons/lu/LuChevronRight.js";
|
|
3
7
|
import { TOOLTIP_ID } from "./Tooltip.js";
|
|
4
8
|
import { AddMenu } from "./AddMenu.js";
|
|
5
9
|
import { BareModal, modalPanelClasses } from "./BareModal.js";
|
|
@@ -17,7 +21,7 @@ function FieldHelp({ tooltip }) {
|
|
|
17
21
|
"data-tooltip-id": TOOLTIP_ID,
|
|
18
22
|
"data-tooltip-content": tooltip,
|
|
19
23
|
className: "inline-flex cursor-help text-(--theme-muted-text-color)",
|
|
20
|
-
children: /* @__PURE__ */ jsx(
|
|
24
|
+
children: /* @__PURE__ */ jsx(HiQuestionMarkCircle, { className: "w-3 h-3" })
|
|
21
25
|
});
|
|
22
26
|
}
|
|
23
27
|
/** Anchors the tooltip on a non-focusable span so it opens on hover but not when focus returns to the button after its menu/toggle closes (which would leave it stuck). */
|
|
@@ -118,7 +122,7 @@ function CreateModal({ open, onClose, typeIcon, typeLabel, typeMenu, namePlaceho
|
|
|
118
122
|
children: [
|
|
119
123
|
typeIcon,
|
|
120
124
|
typeLabel,
|
|
121
|
-
/* @__PURE__ */ jsx(
|
|
125
|
+
/* @__PURE__ */ jsx(FaChevronDown, { className: "w-3 h-3 opacity-60" })
|
|
122
126
|
]
|
|
123
127
|
}) : /* @__PURE__ */ jsxs("div", {
|
|
124
128
|
className: "inline-flex items-center gap-1.5 px-1.5 py-1 rounded-md bg-(--theme-muted-panel-bg) text-xs font-medium text-(--theme-muted-text-color)",
|
|
@@ -183,7 +187,7 @@ function CreateModal({ open, onClose, typeIcon, typeLabel, typeMenu, namePlaceho
|
|
|
183
187
|
type: "button",
|
|
184
188
|
onClick: () => setAdvancedOpen((o) => !o),
|
|
185
189
|
className: "inline-flex items-center gap-1 text-xs font-medium text-(--theme-muted-text-color) hover:text-(--theme-app) transition-colors",
|
|
186
|
-
children: [/* @__PURE__ */ jsx(
|
|
190
|
+
children: [/* @__PURE__ */ jsx(LuChevronRight, { className: cx("w-3 h-3 transition-transform", advancedOpen && "rotate-90") }), t.advanced]
|
|
187
191
|
}), advancedOpen && /* @__PURE__ */ jsx("div", {
|
|
188
192
|
className: "mt-2",
|
|
189
193
|
children: advanced
|
|
@@ -202,7 +206,7 @@ function CreateModal({ open, onClose, typeIcon, typeLabel, typeMenu, namePlaceho
|
|
|
202
206
|
children: /* @__PURE__ */ jsxs(PillTooltip, {
|
|
203
207
|
content: favorite ? t.favoriteHintOn : t.favoriteHintOff,
|
|
204
208
|
className: "px-2.5",
|
|
205
|
-
children: [favorite ? /* @__PURE__ */ jsx(
|
|
209
|
+
children: [favorite ? /* @__PURE__ */ jsx(IoHeart, { className: "w-4 h-4 scale-110 transition-transform" }) : /* @__PURE__ */ jsx(IoHeartOutline, { className: "w-4 h-4 transition-transform" }), favorite ? t.favorited : t.favorite]
|
|
206
210
|
})
|
|
207
211
|
}) : /* @__PURE__ */ jsx("span", {}), /* @__PURE__ */ jsxs("div", {
|
|
208
212
|
className: "flex items-center gap-2",
|
|
@@ -318,7 +322,7 @@ function collapseToggleRow(group, count, collapse) {
|
|
|
318
322
|
onMouseDown: (e) => e.preventDefault(),
|
|
319
323
|
onClick: () => collapse.onToggle(group),
|
|
320
324
|
className: "flex w-full items-center gap-1.5 px-3 py-1.5 text-[13px] text-(--theme-muted-text-color) hover:text-(--theme-app) cursor-pointer",
|
|
321
|
-
children: [/* @__PURE__ */ jsx(expanded ?
|
|
325
|
+
children: [/* @__PURE__ */ jsx(expanded ? FaChevronDown : LuChevronRight, { className: "w-3 h-3" }), collapse.label(count)]
|
|
322
326
|
}, `toggle-${group}`);
|
|
323
327
|
}
|
|
324
328
|
function collapsibleCountsByGroup(options) {
|
|
@@ -445,7 +449,7 @@ function CreateModalSelect({ label, icon, value, options, onChange, disabled = f
|
|
|
445
449
|
className: "font-normal text-(--theme-muted-text-color)",
|
|
446
450
|
children: label
|
|
447
451
|
}), selectedLabel] }) : label,
|
|
448
|
-
/* @__PURE__ */ jsx(
|
|
452
|
+
/* @__PURE__ */ jsx(FaChevronDown, { className: "w-3 h-3 opacity-60" })
|
|
449
453
|
] });
|
|
450
454
|
if (disabled) return /* @__PURE__ */ jsx("button", {
|
|
451
455
|
type: "button",
|
|
@@ -4,10 +4,6 @@ export interface IProps {
|
|
|
4
4
|
options: (ICategory | IOptions | string)[];
|
|
5
5
|
onActiveChange?: (option: unknown) => void;
|
|
6
6
|
onChange: React.Dispatch<SetStateAction<unknown>>;
|
|
7
|
-
onRangeChange?: (range: {
|
|
8
|
-
min: number;
|
|
9
|
-
max: number;
|
|
10
|
-
}) => void;
|
|
11
7
|
value: IOptions | string | Record<string, unknown>;
|
|
12
8
|
id?: string | undefined;
|
|
13
9
|
ariaLabel?: string | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useStrings } from "./Provider.js";
|
|
2
|
-
import {
|
|
2
|
+
import { FaCaretDown } from "../icons/fa/FaCaretDown.js";
|
|
3
3
|
import { truncationTooltipProps } from "./Tooltip.js";
|
|
4
4
|
import { DropdownCaret, flattenDisplayOptions, isCategory, toggleSetMember } from "./dropdownUtils.js";
|
|
5
5
|
import { Combobox, ComboboxButton, ComboboxInput, ComboboxOption, ComboboxOptions } from "@headlessui/react";
|
|
@@ -23,7 +23,7 @@ function getOptionFromValue(value, options) {
|
|
|
23
23
|
label: "",
|
|
24
24
|
value: ""
|
|
25
25
|
};
|
|
26
|
-
const found = options
|
|
26
|
+
const found = options.find((option) => {
|
|
27
27
|
if (typeof option === "string") return checkEquals(value, option);
|
|
28
28
|
else if (isCategory(option)) return option.options.find((opt) => checkEquals(value, opt.value));
|
|
29
29
|
else return checkEquals(value, option.value);
|
|
@@ -47,15 +47,14 @@ function getOptionFromValue(value, options) {
|
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
function Dropdown(props) {
|
|
50
|
-
const { onChange, value, options
|
|
50
|
+
const { onChange, value, options, ...others } = props;
|
|
51
51
|
const val = useMemo(() => {
|
|
52
52
|
return getOptionFromValue(value, options);
|
|
53
53
|
}, [value, options]);
|
|
54
54
|
const wrapperOnchange = (value) => {
|
|
55
|
-
|
|
55
|
+
onChange(value?.value);
|
|
56
56
|
};
|
|
57
57
|
const transformedOptions = useMemo(() => {
|
|
58
|
-
if (!options || options.length === 0) return [];
|
|
59
58
|
return options.map((item) => {
|
|
60
59
|
if (isCategory(item)) return {
|
|
61
60
|
...item,
|
|
@@ -126,7 +125,7 @@ function ToggleOption({ option, category, expanded, onToggle, ...virtualRowProps
|
|
|
126
125
|
e.stopPropagation();
|
|
127
126
|
onToggle(category);
|
|
128
127
|
},
|
|
129
|
-
children: [/* @__PURE__ */ jsx(
|
|
128
|
+
children: [/* @__PURE__ */ jsx(FaCaretDown, { className: cx("w-3 h-3", !expanded && "-rotate-90") }), option.label]
|
|
130
129
|
})
|
|
131
130
|
});
|
|
132
131
|
}
|
|
@@ -253,7 +252,7 @@ function DropdownHelper({ wrapperClassName = "w-full", className, textBoxClassNa
|
|
|
253
252
|
allowCustomValue,
|
|
254
253
|
customValueLabel
|
|
255
254
|
]);
|
|
256
|
-
const comboOptions = /* @__PURE__ */ jsx(
|
|
255
|
+
const comboOptions = /* @__PURE__ */ jsx(ComboboxOptions, {
|
|
257
256
|
modal: false,
|
|
258
257
|
ref: setPopperElement,
|
|
259
258
|
style: styles["popper"],
|
|
@@ -282,7 +281,7 @@ function DropdownHelper({ wrapperClassName = "w-full", className, textBoxClassNa
|
|
|
282
281
|
})
|
|
283
282
|
});
|
|
284
283
|
}
|
|
285
|
-
})
|
|
284
|
+
});
|
|
286
285
|
return /* @__PURE__ */ jsx("div", {
|
|
287
286
|
className: cx("relative rounded-md flex items-center", wrapperClassName),
|
|
288
287
|
children: /* @__PURE__ */ jsx(Combobox, {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FaFilter } from "../icons/fa/FaFilter.js";
|
|
2
2
|
import cx from "classnames";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
//#region src/components/Filter.tsx
|
|
@@ -15,7 +15,7 @@ function Filter({ filter, setFilter, placeholder = "Filter...", pills, activePil
|
|
|
15
15
|
className: "shadow-sm focus:ring-1 block w-full pr-3 sm:text-sm theme-border rounded-md py-1.5 pl-8"
|
|
16
16
|
}), /* @__PURE__ */ jsx("div", {
|
|
17
17
|
className: "absolute inset-y-0 left-0 flex py-2.5 pl-2",
|
|
18
|
-
children: /* @__PURE__ */ jsx(
|
|
18
|
+
children: /* @__PURE__ */ jsx(FaFilter, {})
|
|
19
19
|
})]
|
|
20
20
|
}), pills && onPillChange && /* @__PURE__ */ jsx("div", {
|
|
21
21
|
className: "flex gap-1",
|
|
@@ -1,35 +1,40 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FaRegCircle } from "../icons/fa/FaRegCircle.js";
|
|
2
|
+
import { HiMiniCheckCircle } from "../icons/hi2/HiMiniCheckCircle.js";
|
|
3
|
+
import { HiMiniMinusCircle } from "../icons/hi2/HiMiniMinusCircle.js";
|
|
4
|
+
import { HiMiniXCircle } from "../icons/hi2/HiMiniXCircle.js";
|
|
5
|
+
import { ImSpinner5 } from "../icons/im/ImSpinner5.js";
|
|
6
|
+
import { TiCancel } from "../icons/ti/TiCancel.js";
|
|
2
7
|
import { jsx } from "react/jsx-runtime";
|
|
3
8
|
//#region src/components/Indicator.tsx
|
|
4
9
|
function Indicator({ status }) {
|
|
5
10
|
return /* @__PURE__ */ jsx("div", {
|
|
6
11
|
className: "h-2 flex items-center text-(--theme-panel-bg)",
|
|
7
|
-
children: status === "started" || status === "running" ? /* @__PURE__ */ jsx(
|
|
12
|
+
children: status === "started" || status === "running" ? /* @__PURE__ */ jsx(ImSpinner5, {
|
|
8
13
|
className: "rounded-full text-[#FFCF00] animate-spin",
|
|
9
14
|
"data-testid": "running-indicator"
|
|
10
|
-
}) : status === "completed" ? /* @__PURE__ */ jsx(
|
|
15
|
+
}) : status === "completed" ? /* @__PURE__ */ jsx(HiMiniCheckCircle, {
|
|
11
16
|
className: "text-[#6FBF5A]",
|
|
12
17
|
style: { transform: "scale(1.25)" },
|
|
13
18
|
"data-testid": "completed-indicator"
|
|
14
|
-
}) : status === "failed" || status === "error" ? /* @__PURE__ */ jsx(
|
|
19
|
+
}) : status === "failed" || status === "error" ? /* @__PURE__ */ jsx(HiMiniXCircle, {
|
|
15
20
|
className: "text-red-500",
|
|
16
21
|
style: { transform: "scale(1.25)" },
|
|
17
22
|
"data-testid": "failed-indicator"
|
|
18
|
-
}) : status === "skipped" || status === "skipped-failed" ? /* @__PURE__ */ jsx(
|
|
23
|
+
}) : status === "skipped" || status === "skipped-failed" ? /* @__PURE__ */ jsx(HiMiniMinusCircle, {
|
|
19
24
|
className: "text-gray-400",
|
|
20
25
|
style: { transform: "scale(1.25)" },
|
|
21
26
|
"data-testid": "skipped-indicator"
|
|
22
|
-
}) : status === "canceled" ? /* @__PURE__ */ jsx(
|
|
27
|
+
}) : status === "canceled" ? /* @__PURE__ */ jsx(TiCancel, {
|
|
23
28
|
className: "text-[#3B82F6]",
|
|
24
29
|
style: { transform: "scale(1.5)" },
|
|
25
30
|
"data-testid": "canceled-indicator"
|
|
26
|
-
}) : status === "faulted" ? /* @__PURE__ */ jsx(
|
|
31
|
+
}) : status === "faulted" ? /* @__PURE__ */ jsx(ImSpinner5, {
|
|
27
32
|
className: "rounded-full text-[#EF4444] animate-spin",
|
|
28
33
|
"data-testid": "faulted-indicator"
|
|
29
|
-
}) : status === "canceling" ? /* @__PURE__ */ jsx(
|
|
34
|
+
}) : status === "canceling" ? /* @__PURE__ */ jsx(ImSpinner5, {
|
|
30
35
|
className: "rounded-full text-[#3B82F6] animate-spin",
|
|
31
36
|
"data-testid": "canceling-indicator"
|
|
32
|
-
}) : /* @__PURE__ */ jsx(
|
|
37
|
+
}) : /* @__PURE__ */ jsx(FaRegCircle, {
|
|
33
38
|
className: "rounded-full text-[#AAAAAA]",
|
|
34
39
|
"data-testid": "not-running-indicator"
|
|
35
40
|
})
|
package/dist/components/Input.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LuEye } from "../icons/lu/LuEye.js";
|
|
2
|
+
import { LuEyeOff } from "../icons/lu/LuEyeOff.js";
|
|
3
|
+
import { TbAlertTriangle } from "../icons/tb/TbAlertTriangle.js";
|
|
2
4
|
import { RequiredMark } from "./RequiredMark.js";
|
|
3
5
|
import cx from "classnames";
|
|
4
6
|
import { forwardRef, useId, useState } from "react";
|
|
@@ -38,14 +40,14 @@ var Input = forwardRef(({ label, error, className = "", mono, type, required, ..
|
|
|
38
40
|
onClick: () => setShowPassword(!showPassword),
|
|
39
41
|
tabIndex: -1,
|
|
40
42
|
"aria-label": showPassword ? "Hide password" : "Show password",
|
|
41
|
-
children: showPassword ? /* @__PURE__ */ jsx(
|
|
43
|
+
children: showPassword ? /* @__PURE__ */ jsx(LuEyeOff, { className: "w-5 h-5" }) : /* @__PURE__ */ jsx(LuEye, { className: "w-5 h-5" })
|
|
42
44
|
})]
|
|
43
45
|
}),
|
|
44
46
|
error && /* @__PURE__ */ jsxs("span", {
|
|
45
47
|
id: errorId,
|
|
46
48
|
role: "alert",
|
|
47
49
|
className: "text-[0.8125rem] text-[#ef4444] flex items-center gap-1.5",
|
|
48
|
-
children: [/* @__PURE__ */ jsx(
|
|
50
|
+
children: [/* @__PURE__ */ jsx(TbAlertTriangle, { className: "w-4 h-4" }), error]
|
|
49
51
|
})
|
|
50
52
|
]
|
|
51
53
|
});
|
|
@@ -78,7 +80,7 @@ var Textarea = forwardRef(({ label, error, className = "", mono, required, ...pr
|
|
|
78
80
|
id: errorId,
|
|
79
81
|
role: "alert",
|
|
80
82
|
className: "text-[0.8125rem] text-[#ef4444] flex items-center gap-1.5",
|
|
81
|
-
children: [/* @__PURE__ */ jsx(
|
|
83
|
+
children: [/* @__PURE__ */ jsx(TbAlertTriangle, { className: "w-4 h-4" }), error]
|
|
82
84
|
})
|
|
83
85
|
]
|
|
84
86
|
});
|
|
@@ -1,33 +1,29 @@
|
|
|
1
1
|
import { useStrings } from "./Provider.js";
|
|
2
|
-
import {
|
|
2
|
+
import { FaAngleDown } from "../icons/fa/FaAngleDown.js";
|
|
3
3
|
import { keyedByContent } from "./keys.js";
|
|
4
4
|
import { focusOnMount } from "./focus.js";
|
|
5
5
|
import { Listbox, ListboxButton, ListboxOption, ListboxOptions, Transition } from "@headlessui/react";
|
|
6
6
|
import cx from "classnames";
|
|
7
7
|
import { useEffect, useRef, useState } from "react";
|
|
8
|
-
import {
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
//#region src/components/Listbox.tsx
|
|
10
10
|
function CustomListbox({ options = [], handleOptionSelected, type, allowSearch = false, closeOnSelect = true, className = "", invalid = false, required = false, id, "aria-describedby": describedBy }) {
|
|
11
11
|
const { dropdown: strings } = useStrings();
|
|
12
12
|
const [filter, setFilter] = useState("");
|
|
13
13
|
const [controlledOpen, setControlledOpen] = useState(false);
|
|
14
14
|
const optionsToShow = options.filter((option) => !option.selected && option.label && option.label.toLowerCase().includes(filter.toLowerCase()));
|
|
15
|
-
function useOutsideAlerter(ref) {
|
|
16
|
-
useEffect(() => {
|
|
17
|
-
function handleClickOutside(event) {
|
|
18
|
-
if (ref.current && event.target instanceof Node && !ref.current.contains(event.target)) {
|
|
19
|
-
setControlledOpen(false);
|
|
20
|
-
setFilter("");
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
document.addEventListener("mousedown", handleClickOutside);
|
|
24
|
-
return () => {
|
|
25
|
-
document.removeEventListener("mousedown", handleClickOutside);
|
|
26
|
-
};
|
|
27
|
-
}, [ref]);
|
|
28
|
-
}
|
|
29
15
|
const wrapperRef = useRef(null);
|
|
30
|
-
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
function handleClickOutside(event) {
|
|
18
|
+
const wrapper = wrapperRef.current;
|
|
19
|
+
if (wrapper && event.target instanceof Node && !wrapper.contains(event.target)) {
|
|
20
|
+
setControlledOpen(false);
|
|
21
|
+
setFilter("");
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
25
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
26
|
+
}, []);
|
|
31
27
|
const optionsElement = /* @__PURE__ */ jsxs(ListboxOptions, {
|
|
32
28
|
modal: false,
|
|
33
29
|
static: true,
|
|
@@ -106,7 +102,7 @@ function CustomListbox({ options = [], handleOptionSelected, type, allowSearch =
|
|
|
106
102
|
children: strings.select(type)
|
|
107
103
|
}), /* @__PURE__ */ jsx("span", {
|
|
108
104
|
className: "pointer-events-none absolute inset-y-0 right-0 flex items-center justify-items-center",
|
|
109
|
-
children: /* @__PURE__ */ jsx(
|
|
105
|
+
children: /* @__PURE__ */ jsx(FaAngleDown, {
|
|
110
106
|
className: "h-5 w-8",
|
|
111
107
|
"aria-hidden": "true"
|
|
112
108
|
})
|
|
@@ -115,8 +111,8 @@ function CustomListbox({ options = [], handleOptionSelected, type, allowSearch =
|
|
|
115
111
|
leave: "transition ease-in duration-100",
|
|
116
112
|
leaveFrom: "opacity-100",
|
|
117
113
|
leaveTo: "opacity-0",
|
|
118
|
-
children: optionsElement
|
|
119
|
-
}) :
|
|
114
|
+
children: optionsElement
|
|
115
|
+
}) : controlledOpen && optionsElement]
|
|
120
116
|
});
|
|
121
117
|
}
|
|
122
118
|
//#endregion
|
|
@@ -4,10 +4,11 @@ import { DropdownCaret, filterOption, flattenOptions, isCategory, isOption } fro
|
|
|
4
4
|
import { focusOnMount } from "./focus.js";
|
|
5
5
|
import { Combobox, ComboboxButton, ComboboxOption, ComboboxOptions } from "@headlessui/react";
|
|
6
6
|
import cx from "classnames";
|
|
7
|
-
import {
|
|
7
|
+
import { useMemo, useState } from "react";
|
|
8
8
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { usePopper } from "react-popper";
|
|
10
10
|
//#region src/components/MultiSelect.tsx
|
|
11
|
+
var strictEqual = (a, b) => a === b;
|
|
11
12
|
function MultiSelectDropdown({ options, value, onChange, id, "aria-labelledby": labelledBy, "aria-describedby": describedBy, required, className, wrapperClassName = "w-full", textBoxClassName, disabled = false, placeholder, loading = false, searchable = true, maxTagCount = 2, compareBy }) {
|
|
12
13
|
const strings = useStrings();
|
|
13
14
|
const [query, setQuery] = useState("");
|
|
@@ -21,7 +22,7 @@ function MultiSelectDropdown({ options, value, onChange, id, "aria-labelledby":
|
|
|
21
22
|
}]
|
|
22
23
|
});
|
|
23
24
|
const allOptions = useMemo(() => flattenOptions(options), [options]);
|
|
24
|
-
const compare = compareBy ??
|
|
25
|
+
const compare = compareBy ?? strictEqual;
|
|
25
26
|
const selectedOptions = useMemo(() => {
|
|
26
27
|
const result = [];
|
|
27
28
|
for (const val of value) {
|
|
@@ -38,7 +39,7 @@ function MultiSelectDropdown({ options, value, onChange, id, "aria-labelledby":
|
|
|
38
39
|
if (!searchable || query.trim() === "") return allOptions;
|
|
39
40
|
const result = [];
|
|
40
41
|
for (const opt of allOptions) if (isCategory(opt)) {
|
|
41
|
-
const matchedChildren =
|
|
42
|
+
const matchedChildren = opt.options.filter((o) => filterOption(o, query));
|
|
42
43
|
if (matchedChildren.length > 0) result.push(opt, ...matchedChildren);
|
|
43
44
|
} else if (isOption(opt) && filterOption(opt, query)) result.push(opt);
|
|
44
45
|
return result;
|
|
@@ -54,16 +55,12 @@ function MultiSelectDropdown({ options, value, onChange, id, "aria-labelledby":
|
|
|
54
55
|
overflow: selectedOptions.length - shown.length
|
|
55
56
|
};
|
|
56
57
|
}, [selectedOptions, maxTagCount]);
|
|
57
|
-
const handleChange = useCallback((newValues) => {
|
|
58
|
-
if (!Array.isArray(newValues)) return;
|
|
59
|
-
onChange(newValues);
|
|
60
|
-
}, [onChange]);
|
|
61
58
|
const isDisabled = disabled || loading;
|
|
62
59
|
const isEmpty = filteredOptions.length === 0;
|
|
63
60
|
return /* @__PURE__ */ jsx(Combobox, {
|
|
64
61
|
multiple: true,
|
|
65
62
|
value: Array.isArray(value) ? value : [],
|
|
66
|
-
onChange
|
|
63
|
+
onChange,
|
|
67
64
|
disabled: isDisabled,
|
|
68
65
|
onClose: () => setQuery(""),
|
|
69
66
|
by: compare,
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { useLink, useSlots, useStrings } from "./Provider.js";
|
|
2
|
-
import {
|
|
2
|
+
import { BsThreeDots } from "../icons/bs/BsThreeDots.js";
|
|
3
|
+
import { FaEdit } from "../icons/fa/FaEdit.js";
|
|
4
|
+
import { FaPlus } from "../icons/fa/FaPlus.js";
|
|
5
|
+
import { LuChevronRight } from "../icons/lu/LuChevronRight.js";
|
|
3
6
|
import { keyedByContent } from "./keys.js";
|
|
4
7
|
import { TOOLTIP_ID } from "./Tooltip.js";
|
|
5
8
|
import { AddMenu } from "./AddMenu.js";
|
|
@@ -18,7 +21,7 @@ var headerAddButtonClasses = "inline-flex h-[26px] shrink-0 items-center gap-1.5
|
|
|
18
21
|
function HeaderAddButton({ to, onClick, label, word = "add", menu, disabled = false, disabledHint }) {
|
|
19
22
|
const { common } = useStrings();
|
|
20
23
|
const Link = useLink();
|
|
21
|
-
const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(
|
|
24
|
+
const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(FaPlus, { className: "w-3 h-3" }), /* @__PURE__ */ jsx("span", { children: word === "create" ? common.create : common.add })] });
|
|
22
25
|
if (menu) return /* @__PURE__ */ jsx(AddMenu, {
|
|
23
26
|
items: menu,
|
|
24
27
|
label,
|
|
@@ -52,7 +55,7 @@ function HeaderActionMenu({ items, label = "Actions" }) {
|
|
|
52
55
|
items,
|
|
53
56
|
label,
|
|
54
57
|
buttonClassName: headerActionButtonClasses,
|
|
55
|
-
children: /* @__PURE__ */ jsx(
|
|
58
|
+
children: /* @__PURE__ */ jsx(BsThreeDots, { className: "w-3.5 h-3.5" })
|
|
56
59
|
});
|
|
57
60
|
}
|
|
58
61
|
/** The header "…" trigger for a RowMenuItem menu — same rendering (submenus,
|
|
@@ -69,7 +72,7 @@ function HeaderRowMenu({ items, label = "Actions" }) {
|
|
|
69
72
|
const r = e.currentTarget.getBoundingClientRect();
|
|
70
73
|
openMenu(r.left, r.bottom + 4, items);
|
|
71
74
|
},
|
|
72
|
-
children: /* @__PURE__ */ jsx(
|
|
75
|
+
children: /* @__PURE__ */ jsx(BsThreeDots, { className: "w-3.5 h-3.5" })
|
|
73
76
|
}), contextMenu] });
|
|
74
77
|
}
|
|
75
78
|
function HeaderEditButton({ to, onClick, label = "Edit", disabled, tooltip }) {
|
|
@@ -84,7 +87,7 @@ function HeaderEditButton({ to, onClick, label = "Edit", disabled, tooltip }) {
|
|
|
84
87
|
...tooltip ? {} : { title: label },
|
|
85
88
|
className: headerActionButtonClasses,
|
|
86
89
|
...tooltipProps,
|
|
87
|
-
children: /* @__PURE__ */ jsx(
|
|
90
|
+
children: /* @__PURE__ */ jsx(FaEdit, { className: "w-3 h-3" })
|
|
88
91
|
});
|
|
89
92
|
return /* @__PURE__ */ jsx("button", {
|
|
90
93
|
type: "button",
|
|
@@ -94,7 +97,7 @@ function HeaderEditButton({ to, onClick, label = "Edit", disabled, tooltip }) {
|
|
|
94
97
|
title: tooltip ? void 0 : label,
|
|
95
98
|
className: cx(headerActionButtonClasses, disabled && "opacity-50 cursor-not-allowed hover:bg-transparent"),
|
|
96
99
|
...tooltipProps,
|
|
97
|
-
children: /* @__PURE__ */ jsx(
|
|
100
|
+
children: /* @__PURE__ */ jsx(FaEdit, { className: "w-3 h-3" })
|
|
98
101
|
});
|
|
99
102
|
}
|
|
100
103
|
/** Renders nothing when the modern breadcrumb strip isn't mounted (classic chrome or self-headered pages). */
|
|
@@ -162,7 +165,7 @@ function PageHeader({ breadcrumbs, title, titleAction, actions, toolbar, classNa
|
|
|
162
165
|
}) : /* @__PURE__ */ jsx("span", {
|
|
163
166
|
className: "text-(--theme-muted-text-color) whitespace-nowrap",
|
|
164
167
|
children: crumb.label
|
|
165
|
-
}), /* @__PURE__ */ jsx(
|
|
168
|
+
}), /* @__PURE__ */ jsx(LuChevronRight, { className: "w-3 h-3 opacity-60 shrink-0 text-(--theme-muted-text-color)" })] }, key);
|
|
166
169
|
})
|
|
167
170
|
}),
|
|
168
171
|
titleAction,
|
|
@@ -8,7 +8,7 @@ function Pagination({ endingNumber, endingTime, nextCallback, prevCallback, roun
|
|
|
8
8
|
className: cx(roundedBottom && "rounded-b-2xl", "theme-muted-panel flex items-center justify-between border-t theme-border px-4 py-1 sm:px-6"),
|
|
9
9
|
"aria-label": "Pagination",
|
|
10
10
|
children: [/* @__PURE__ */ jsx("div", {
|
|
11
|
-
className: cx("hidden", (startingNumber !== void 0 &&
|
|
11
|
+
className: cx("hidden", (startingNumber !== void 0 && endingNumber !== void 0 || startingTime && endingTime) && "sm:block"),
|
|
12
12
|
children: /* @__PURE__ */ jsx("p", {
|
|
13
13
|
className: "text-sm whitespace-nowrap",
|
|
14
14
|
children: useTimeRange && startingTime && endingTime ? t.paginationShowingTimeRange(name ?? "", startingTime, endingTime) : t.paginationShowing(name ?? "", startingNumber ?? "", endingNumber ?? "")
|
|
@@ -476,14 +476,6 @@ export interface UISlots {
|
|
|
476
476
|
}
|
|
477
477
|
/** An engine, or a loader so the host can keep the engine out of its first-load bundle. */
|
|
478
478
|
export type WorkflowEngineSource = WorkflowEngine | (() => Promise<WorkflowEngine>);
|
|
479
|
-
export interface UIProviderValue {
|
|
480
|
-
notify: UINotify;
|
|
481
|
-
strings: UIStrings;
|
|
482
|
-
navigation: UINavigation;
|
|
483
|
-
data: UIData;
|
|
484
|
-
slots: UISlots;
|
|
485
|
-
engine?: WorkflowEngineSource | undefined;
|
|
486
|
-
}
|
|
487
479
|
export declare function useNotify(): UINotify;
|
|
488
480
|
export declare function useStrings(): UIStrings;
|
|
489
481
|
export declare function useNavigation(): UINavigation;
|
package/dist/components/Sort.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { useStrings } from "./Provider.js";
|
|
2
|
-
import {
|
|
2
|
+
import { TiArrowSortedDown } from "../icons/ti/TiArrowSortedDown.js";
|
|
3
|
+
import { TiArrowSortedUp } from "../icons/ti/TiArrowSortedUp.js";
|
|
4
|
+
import { TiArrowUnsorted } from "../icons/ti/TiArrowUnsorted.js";
|
|
3
5
|
import { jsx } from "react/jsx-runtime";
|
|
4
6
|
//#region src/components/Sort.tsx
|
|
5
7
|
var SortIcon = ({ currentlySorted, currentDirection, name }) => {
|
|
6
8
|
const style = { transform: "translateY(2px)" };
|
|
7
9
|
if (currentlySorted === name) {
|
|
8
|
-
if (currentDirection === "ascending") return /* @__PURE__ */ jsx(
|
|
9
|
-
else if (currentDirection === "descending") return /* @__PURE__ */ jsx(
|
|
10
|
-
} else return /* @__PURE__ */ jsx(
|
|
10
|
+
if (currentDirection === "ascending") return /* @__PURE__ */ jsx(TiArrowSortedDown, { style });
|
|
11
|
+
else if (currentDirection === "descending") return /* @__PURE__ */ jsx(TiArrowSortedUp, { style });
|
|
12
|
+
} else return /* @__PURE__ */ jsx(TiArrowUnsorted, { style });
|
|
11
13
|
return null;
|
|
12
14
|
};
|
|
13
15
|
function Sort({ currentlySorted, name, setCurrentDirection, setCurrentlySorted, currentDirection }) {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IconBaseProps } from 'react-icons';
|
|
2
|
+
interface IBaseCheckmarkProps {
|
|
3
|
+
className?: string;
|
|
4
|
+
colored?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function SuccessCheckmark({ className, colored }: IBaseCheckmarkProps): import("react").JSX.Element;
|
|
7
|
+
export declare function ErrorCheckmark({ className, colored }: IBaseCheckmarkProps): import("react").JSX.Element;
|
|
8
|
+
export declare function LoaderIcon({ className, ...props }: IconBaseProps & {
|
|
9
|
+
className?: string;
|
|
10
|
+
}): import("react").JSX.Element;
|
|
11
|
+
export {};
|