@parallelworks/ui 0.44.0 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +348 -25
- package/dist/ai/agent/diff.d.ts +2 -1
- package/dist/ai/agent/diff.js +4 -12
- package/dist/ai/agent/diffHighlight.d.ts +1 -1
- package/dist/ai/agent/diffHighlight.js +4 -3
- package/dist/ai/agent/index.d.ts +2 -1
- package/dist/ai/agent/toolStrings.d.ts +37 -0
- package/dist/ai/agent/toolStrings.js +35 -0
- package/dist/ai/agent/toolfmt.d.ts +8 -3
- package/dist/ai/agent/toolfmt.js +50 -65
- package/dist/ai/ai.css +18 -31
- package/dist/ai/components/AllocationSelector.js +2 -2
- package/dist/ai/components/AttachmentManager.js +28 -29
- package/dist/ai/components/AttachmentUpload.js +25 -30
- package/dist/ai/components/BlockedGroupBanner.js +2 -2
- package/dist/ai/components/BranchNavigator.js +3 -4
- package/dist/ai/components/ChatEmptyState.js +8 -7
- package/dist/ai/components/ChatInput.js +10 -12
- package/dist/ai/components/ChatLayout.js +3 -3
- package/dist/ai/components/ChatMessage.js +49 -61
- package/dist/ai/components/ChatMessageList.js +46 -42
- package/dist/ai/components/ChatSidebar.js +26 -34
- package/dist/ai/components/ChatStage.js +1 -1
- package/dist/ai/components/ComposerChrome.js +3 -4
- package/dist/ai/components/DragOverlay.js +6 -4
- package/dist/ai/components/ModelSelector.js +14 -15
- package/dist/ai/components/PastedText.js +18 -14
- package/dist/ai/components/ProviderIssueBanner.js +3 -4
- package/dist/ai/components/Reasoning.d.ts +12 -6
- package/dist/ai/components/Reasoning.js +31 -18
- package/dist/ai/components/ShareDialog.js +25 -28
- package/dist/ai/components/SlashMenu.js +3 -3
- package/dist/ai/components/agent/ActivityLine.d.ts +0 -5
- package/dist/ai/components/agent/ActivityLine.js +17 -54
- package/dist/ai/components/agent/AgentMessageParts.js +139 -149
- package/dist/ai/components/conversationActions.js +16 -16
- package/dist/ai/core/ChatProvider.d.ts +2 -4
- package/dist/ai/core/ChatProvider.js +25 -38
- package/dist/ai/core/exportConversation.js +4 -4
- package/dist/ai/core/sidebarState.d.ts +8 -6
- package/dist/ai/core/sidebarState.js +21 -28
- package/dist/ai/core/useKeyboardShortcuts.js +14 -5
- package/dist/ai/index.d.ts +4 -5
- package/dist/ai/index.js +7 -7
- package/dist/ai/strings.d.ts +14 -31
- package/dist/ai/strings.js +19 -39
- package/dist/ai/types.d.ts +0 -5
- package/dist/ai/ui/ConversationSidebar.d.ts +12 -9
- package/dist/ai/ui/ConversationSidebar.js +43 -87
- package/dist/ai/ui/Markdown.d.ts +3 -6
- package/dist/ai/ui/Markdown.js +6 -73
- package/dist/ai/ui/Notice.js +10 -12
- package/dist/ai/ui/chip.d.ts +2 -2
- package/dist/ai/ui/chip.js +1 -1
- package/dist/ai/ui/sidebar.d.ts +4 -20
- package/dist/ai/ui/sidebar.js +30 -67
- package/dist/ai/utils.d.ts +0 -1
- package/dist/ai/utils.js +1 -14
- package/dist/brandIcons.d.ts +51 -0
- package/dist/brandIcons.js +75 -0
- package/dist/components/Avatar.d.ts +3 -1
- package/dist/components/Avatar.js +34 -28
- package/dist/components/Button.d.ts +12 -7
- package/dist/components/Button.js +39 -44
- package/dist/components/Callout.js +18 -12
- package/dist/components/Card.d.ts +18 -8
- package/dist/components/Card.js +17 -6
- package/dist/components/Checkbox.d.ts +9 -0
- package/dist/components/Checkbox.js +30 -0
- package/dist/components/Combobox.d.ts +9 -1
- package/dist/components/Combobox.js +71 -44
- package/dist/components/ConfirmModal.js +11 -11
- package/dist/components/ContextMenu.d.ts +2 -8
- package/dist/components/ContextMenu.js +2 -29
- package/dist/components/CopyToClipboard.js +17 -36
- package/dist/components/CreateModal.d.ts +3 -24
- package/dist/components/CreateModal.js +46 -113
- package/dist/components/DatePicker.d.ts +31 -0
- package/dist/components/DatePicker.js +191 -0
- package/dist/components/DescriptionList.js +4 -4
- package/dist/components/Disclosure.d.ts +34 -0
- package/dist/components/Disclosure.js +46 -0
- package/dist/components/Drawer.d.ts +47 -0
- package/dist/components/Drawer.js +120 -0
- package/dist/components/EmptyState.d.ts +15 -10
- package/dist/components/EmptyState.js +13 -8
- package/dist/components/ExternalLink.d.ts +8 -0
- package/dist/components/ExternalLink.js +29 -0
- package/dist/components/Field.d.ts +70 -0
- package/dist/components/Field.js +159 -0
- package/dist/components/HoverCard.js +11 -14
- package/dist/components/IconButton.d.ts +16 -13
- package/dist/components/IconButton.js +27 -18
- package/dist/components/InfoTip.js +16 -23
- package/dist/components/Input.d.ts +10 -9
- package/dist/components/Input.js +54 -96
- package/dist/components/LetterBadge.js +2 -2
- package/dist/components/Loader.d.ts +15 -8
- package/dist/components/Loader.js +29 -19
- package/dist/components/Markdown.d.ts +7 -1
- package/dist/components/Markdown.js +2 -0
- package/dist/components/MarkdownImpl.d.ts +1 -1
- package/dist/components/MarkdownImpl.js +55 -14
- package/dist/components/Menu.js +13 -15
- package/dist/components/MenuEntries.js +11 -16
- package/dist/components/Meter.d.ts +48 -0
- package/dist/components/Meter.js +94 -0
- package/dist/components/Modal.js +11 -14
- package/dist/components/NumberInput.d.ts +25 -0
- package/dist/components/NumberInput.js +55 -0
- package/dist/components/Overview.js +12 -10
- package/dist/components/PageHeader.d.ts +2 -3
- package/dist/components/PageHeader.js +30 -21
- package/dist/components/Pagination.d.ts +27 -14
- package/dist/components/Pagination.js +86 -25
- package/dist/components/Popover.d.ts +47 -0
- package/dist/components/Popover.js +63 -0
- package/dist/components/Provider.d.ts +197 -80
- package/dist/components/Provider.js +200 -118
- package/dist/components/Radio.d.ts +1 -1
- package/dist/components/Radio.js +4 -4
- package/dist/components/RefreshButton.d.ts +15 -0
- package/dist/components/RefreshButton.js +53 -0
- package/dist/components/RunStatusIcon.d.ts +12 -0
- package/dist/components/RunStatusIcon.js +84 -0
- package/dist/components/SearchInput.d.ts +16 -0
- package/dist/components/SearchInput.js +52 -0
- package/dist/components/Section.d.ts +28 -0
- package/dist/components/Section.js +76 -0
- package/dist/components/SegmentedControl.d.ts +7 -11
- package/dist/components/SegmentedControl.js +25 -56
- package/dist/components/Select.d.ts +5 -1
- package/dist/components/Select.js +43 -44
- package/dist/components/SettingModeOption.d.ts +3 -5
- package/dist/components/SettingModeOption.js +5 -6
- package/dist/components/SettingsCard.d.ts +32 -19
- package/dist/components/SettingsCard.js +40 -13
- package/dist/components/Skeleton.d.ts +22 -0
- package/dist/components/Skeleton.js +34 -0
- package/dist/components/Slider.d.ts +16 -0
- package/dist/components/Slider.js +30 -0
- package/dist/components/Sort.js +4 -6
- package/dist/components/StatusBadge.d.ts +3 -1
- package/dist/components/StatusBadge.js +9 -32
- package/dist/components/StatusIcons.d.ts +0 -4
- package/dist/components/StatusIcons.js +5 -13
- package/dist/components/Switch.d.ts +5 -1
- package/dist/components/Switch.js +23 -6
- package/dist/components/Table.js +13 -20
- package/dist/components/Tabs.d.ts +52 -0
- package/dist/components/Tabs.js +75 -0
- package/dist/components/ThemeEditor.d.ts +29 -0
- package/dist/components/ThemeEditor.js +397 -0
- package/dist/components/Toast.d.ts +57 -0
- package/dist/components/Toast.js +203 -0
- package/dist/components/Tooltip.js +12 -15
- package/dist/components/buttonClasses.d.ts +18 -0
- package/dist/components/buttonClasses.js +31 -0
- package/dist/components/codeTheme.d.ts +5 -0
- package/dist/components/codeTheme.js +93 -0
- package/dist/components/fieldBox.d.ts +14 -0
- package/dist/components/fieldBox.js +29 -0
- package/dist/components/floating.d.ts +26 -5
- package/dist/components/floating.js +31 -9
- package/dist/{ai/ui/codeBreaks.js → components/markdownCodeBreaks.js} +1 -1
- package/dist/components/persistedState.d.ts +2 -0
- package/dist/components/persistedState.js +63 -0
- package/dist/components/relativeTime.d.ts +36 -8
- package/dist/components/relativeTime.js +106 -23
- package/dist/components/segmented.d.ts +17 -0
- package/dist/components/segmented.js +27 -0
- package/dist/components/shortcutKey.d.ts +4 -0
- package/dist/components/shortcutKey.js +27 -0
- package/dist/components/splitter.d.ts +26 -0
- package/dist/components/splitter.js +69 -0
- package/dist/components/tone.d.ts +9 -0
- package/dist/components/tone.js +30 -0
- package/dist/components/useCopy.d.ts +14 -0
- package/dist/components/useCopy.js +31 -0
- package/dist/components/useCssIsDark.d.ts +2 -0
- package/dist/components/useCssIsDark.js +2 -1
- package/dist/components/useTheme.d.ts +10 -0
- package/dist/components/useTheme.js +40 -0
- package/dist/cx.d.ts +5 -0
- package/dist/cx.js +11 -0
- package/dist/editor/Editor.js +2 -2
- package/dist/editor/EditorField.js +7 -10
- package/dist/editor/FormCodePanel.js +10 -23
- package/dist/editor/Monaco.js +7 -4
- package/dist/editor/index.d.ts +1 -1
- package/dist/editor/index.js +2 -2
- package/dist/editor/themes.d.ts +4 -0
- package/dist/editor/themes.js +75 -76
- package/dist/file-explorer/FileExplorer.js +180 -187
- package/dist/file-explorer/FileExplorerContext.js +36 -58
- package/dist/file-explorer/FilePreview/CodePreviewEditor.js +2 -1
- package/dist/file-explorer/FilePreview/Inline.js +9 -7
- package/dist/file-explorer/FilePreview/StreamedBadge.js +2 -2
- package/dist/file-explorer/FilePreview/Viewer.js +32 -34
- package/dist/file-explorer/FilePreview/index.js +60 -92
- package/dist/file-explorer/FileRow.js +10 -15
- package/dist/file-explorer/FileRowsWindow.js +2 -6
- package/dist/file-explorer/FileTable.js +2 -2
- package/dist/file-explorer/FileTableHeaders.js +8 -11
- package/dist/file-explorer/LoadMoreRow.js +8 -9
- package/dist/file-explorer/TreeView.js +16 -16
- package/dist/file-explorer/helpers.d.ts +1 -4
- package/dist/file-explorer/helpers.js +101 -114
- package/dist/file-explorer/lib/utils.d.ts +0 -2
- package/dist/file-explorer/lib/utils.js +1 -25
- package/dist/file-explorer/toasts.js +104 -185
- package/dist/form/Fields/BooleanField.js +12 -14
- package/dist/form/Fields/CheckboxGroupField.d.ts +1 -1
- package/dist/form/Fields/CheckboxGroupField.js +16 -18
- package/dist/form/Fields/ColorField.js +11 -11
- package/dist/form/Fields/DropdownField.d.ts +1 -1
- package/dist/form/Fields/DropdownField.js +20 -36
- package/dist/form/Fields/DurationField.d.ts +1 -1
- package/dist/form/Fields/DurationField.js +36 -50
- package/dist/form/Fields/LabelField.js +2 -2
- package/dist/form/Fields/MultiDropdownField.d.ts +1 -1
- package/dist/form/Fields/MultiDropdownField.js +9 -14
- package/dist/form/Fields/NumberField.d.ts +1 -1
- package/dist/form/Fields/NumberField.js +13 -48
- package/dist/form/Fields/ObjectField.js +3 -3
- package/dist/form/Fields/RadioField.d.ts +1 -1
- package/dist/form/Fields/RadioField.js +15 -18
- package/dist/form/Fields/RangeField.js +34 -35
- package/dist/form/Fields/StringField.d.ts +1 -1
- package/dist/form/Fields/StringField.js +15 -25
- package/dist/form/Fields/TextAreaField.js +10 -15
- package/dist/form/Form.d.ts +7 -2
- package/dist/form/Form.js +144 -49
- package/dist/form/FormLayout.js +18 -12
- package/dist/form/Wizard/WizardContainer.js +44 -18
- package/dist/form/Wizard/WizardNavigation.d.ts +1 -1
- package/dist/form/Wizard/WizardNavigation.js +31 -56
- package/dist/form/Wizard/WizardStepIndicator.d.ts +3 -0
- package/dist/form/Wizard/WizardStepIndicator.js +98 -114
- package/dist/form/Wizard/types.d.ts +2 -2
- package/dist/form/fieldFrame.d.ts +7 -0
- package/dist/form/fieldFrame.js +19 -0
- package/dist/form/index.d.ts +5 -5
- package/dist/form/index.js +4 -6
- package/dist/form/layoutCSS.js +5 -4
- package/dist/form/types/fieldComponentTypes.d.ts +5 -3
- package/dist/form/useChoiceField.js +2 -3
- package/dist/form/useFieldValue.d.ts +3 -0
- package/dist/form/useFieldValue.js +24 -7
- package/dist/form/utils/duration.d.ts +2 -2
- package/dist/form/utils/duration.js +3 -3
- package/dist/form/utils/fieldPath.d.ts +5 -3
- package/dist/form/utils/fieldPath.js +18 -3
- package/dist/form/utils/secondaryField.d.ts +0 -7
- package/dist/form/utils/secondaryField.js +1 -12
- package/dist/form/validation.d.ts +29 -0
- package/dist/form/validation.js +14 -0
- package/dist/format.d.ts +28 -0
- package/dist/format.js +64 -0
- package/dist/graph/AnnotationBanner.js +20 -31
- package/dist/graph/Connectors.js +1 -1
- package/dist/graph/DependencyGraph.js +51 -65
- package/dist/graph/GraphEditor.js +24 -28
- package/dist/graph/GraphEditorDialogs.js +239 -245
- package/dist/graph/InputDialog.js +93 -112
- package/dist/graph/InputsEditor.js +83 -84
- package/dist/graph/JobSummary.js +10 -11
- package/dist/graph/MatrixGroup.js +3 -3
- package/dist/graph/ProblemsButton.js +9 -10
- package/dist/graph/ShortcutsButton.js +12 -17
- package/dist/graph/SuggestionInput.d.ts +1 -2
- package/dist/graph/SuggestionInput.js +1 -3
- package/dist/graph/TreeView.js +47 -45
- package/dist/graph/WorkflowSettingsDialog.js +97 -102
- package/dist/graph/editorChrome.js +10 -12
- package/dist/graph/editorFields.d.ts +19 -16
- package/dist/graph/editorFields.js +97 -135
- package/dist/graph/editorPrimitives.js +2 -2
- package/dist/graph/editorRows.js +22 -25
- package/dist/graph/editorStrings.d.ts +16 -19
- package/dist/graph/editorStrings.js +11 -23
- package/dist/graph/fieldProblems.js +2 -2
- package/dist/graph/graphEditorState.d.ts +4 -4
- package/dist/graph/inputRefs.d.ts +0 -13
- package/dist/graph/inputRefs.js +121 -159
- package/dist/graph/settingsViews.js +5 -3
- package/dist/graph/stepWith.js +100 -100
- package/dist/graph/toolbarPanel.d.ts +8 -0
- package/dist/graph/toolbarPanel.js +11 -0
- package/dist/icons.d.ts +234 -23
- package/dist/icons.js +249 -264
- package/dist/index.d.ts +38 -21
- package/dist/index.js +42 -21
- package/dist/list/ActionToolbar.d.ts +1 -5
- package/dist/list/ActionToolbar.js +21 -20
- package/dist/list/ListPage.js +7 -7
- package/dist/list/ListTable.d.ts +3 -2
- package/dist/list/ListTable.js +33 -29
- package/dist/list/ListViewControls.d.ts +0 -17
- package/dist/list/ListViewControls.js +50 -118
- package/dist/list/UserHoverCard.js +24 -32
- package/dist/list/index.d.ts +2 -4
- package/dist/list/index.js +3 -5
- package/dist/list/listSearch.d.ts +1 -1
- package/dist/list/listSearch.js +19 -14
- package/dist/list/rowMenu.js +20 -26
- package/dist/logviewer/LogViewer.js +268 -382
- package/dist/logviewer/logviewer.css +53 -41
- package/dist/styles/base.css +16 -40
- package/dist/styles/theme.css +75 -106
- package/dist/styles.css +1 -1
- package/dist/theme/color.d.ts +40 -0
- package/dist/theme/color.js +228 -0
- package/dist/theme/contrast.d.ts +42 -0
- package/dist/theme/contrast.js +145 -0
- package/dist/theme/derive.d.ts +25 -0
- package/dist/theme/derive.js +475 -0
- package/dist/theme/fit.d.ts +35 -0
- package/dist/theme/fit.js +185 -0
- package/dist/theme/index.d.ts +14 -29
- package/dist/theme/index.js +20 -279
- package/dist/theme/model.d.ts +64 -0
- package/dist/theme/model.js +219 -0
- package/package.json +9 -5
- package/dist/ai/ui/Avatar.d.ts +0 -7
- package/dist/ai/ui/Avatar.js +0 -24
- package/dist/components/Filter.d.ts +0 -15
- package/dist/components/Filter.js +0 -32
- package/dist/components/FilterPill.d.ts +0 -7
- package/dist/components/FilterPill.js +0 -14
- package/dist/components/Indicator.d.ts +0 -4
- package/dist/components/Indicator.js +0 -44
- package/dist/components/SectionHeader.d.ts +0 -8
- package/dist/components/SectionHeader.js +0 -11
- package/dist/components/SettingRow.d.ts +0 -18
- package/dist/components/SettingRow.js +0 -35
- package/dist/components/SettingsGroup.d.ts +0 -8
- package/dist/components/SettingsGroup.js +0 -17
- package/dist/components/ghostButton.d.ts +0 -4
- package/dist/components/ghostButton.js +0 -7
- package/dist/components/inputClasses.d.ts +0 -1
- package/dist/components/inputClasses.js +0 -4
- package/dist/duration.d.ts +0 -3
- package/dist/duration.js +0 -17
- package/dist/form/FieldGroup.d.ts +0 -11
- package/dist/form/FieldGroup.js +0 -36
- package/dist/form/FieldWrapper.d.ts +0 -16
- package/dist/form/FieldWrapper.js +0 -55
- package/dist/form/fieldContext.d.ts +0 -19
- package/dist/form/fieldContext.js +0 -26
- package/dist/graph/Collapse.d.ts +0 -7
- package/dist/graph/Collapse.js +0 -15
- package/dist/graph/ToolbarPopover.d.ts +0 -13
- package/dist/graph/ToolbarPopover.js +0 -39
- package/dist/icons/ai/AiOutlineRollback.js +0 -16
- package/dist/icons/bi/BiBell.js +0 -16
- package/dist/icons/bi/BiBellOff.js +0 -16
- package/dist/icons/bi/BiBuildings.js +0 -20
- package/dist/icons/bi/BiError.js +0 -20
- package/dist/icons/bi/BiExpandVertical.js +0 -16
- package/dist/icons/bi/BiPause.js +0 -16
- package/dist/icons/bi/BiPlay.js +0 -16
- package/dist/icons/bi/BiRedo.js +0 -16
- package/dist/icons/bi/BiSolidCheckShield.js +0 -16
- package/dist/icons/bi/BiSolidTrashAlt.js +0 -16
- package/dist/icons/bi/BiStop.js +0 -16
- package/dist/icons/bi/BiUndo.js +0 -16
- package/dist/icons/bs/BsArrowsCollapse.js +0 -22
- package/dist/icons/bs/BsBank2.js +0 -19
- package/dist/icons/bs/BsBriefcase.js +0 -19
- package/dist/icons/bs/BsBucket.js +0 -19
- package/dist/icons/bs/BsCalendarX.js +0 -23
- package/dist/icons/bs/BsChatLeft.js +0 -19
- package/dist/icons/bs/BsChevronDoubleDown.js +0 -29
- package/dist/icons/bs/BsChevronDoubleUp.js +0 -29
- package/dist/icons/bs/BsClipboardCheck.js +0 -34
- package/dist/icons/bs/BsCurrencyDollar.js +0 -19
- package/dist/icons/bs/BsDash.js +0 -19
- package/dist/icons/bs/BsFileEarmarkZip.js +0 -23
- package/dist/icons/bs/BsFiles.js +0 -19
- package/dist/icons/bs/BsGeoAlt.js +0 -23
- package/dist/icons/bs/BsGrid.js +0 -19
- package/dist/icons/bs/BsLayers.js +0 -19
- package/dist/icons/bs/BsLayoutThreeColumns.js +0 -19
- package/dist/icons/bs/BsListUl.js +0 -22
- package/dist/icons/bs/BsMortarboard.js +0 -23
- package/dist/icons/bs/BsMusicNoteBeamed.js +0 -34
- package/dist/icons/bs/BsOpenai.js +0 -19
- package/dist/icons/bs/BsPersonPlus.js +0 -26
- package/dist/icons/bs/BsSearch.js +0 -19
- package/dist/icons/bs/BsSend.js +0 -19
- package/dist/icons/bs/BsShieldSlash.js +0 -22
- package/dist/icons/bs/BsStar.js +0 -19
- package/dist/icons/bs/BsStarFill.js +0 -19
- package/dist/icons/bs/BsStopCircle.js +0 -23
- package/dist/icons/bs/BsTag.js +0 -23
- package/dist/icons/bs/BsTelephone.js +0 -19
- package/dist/icons/bs/BsTerminal.js +0 -23
- package/dist/icons/bs/BsTerminalFill.js +0 -19
- package/dist/icons/bs/BsThreeDots.js +0 -19
- package/dist/icons/bs/BsThreeDotsVertical.js +0 -19
- package/dist/icons/bs/BsZoomIn.js +0 -37
- package/dist/icons/fa/FaAmazon.js +0 -16
- package/dist/icons/fa/FaAngleDown.js +0 -16
- package/dist/icons/fa/FaAngleLeft.js +0 -16
- package/dist/icons/fa/FaAngleRight.js +0 -16
- package/dist/icons/fa/FaAngleUp.js +0 -16
- package/dist/icons/fa/FaArrowDown.js +0 -16
- package/dist/icons/fa/FaArrowLeft.js +0 -16
- package/dist/icons/fa/FaArrowRight.js +0 -16
- package/dist/icons/fa/FaArrowUp.js +0 -16
- package/dist/icons/fa/FaBalanceScale.js +0 -16
- package/dist/icons/fa/FaCaretDown.js +0 -16
- package/dist/icons/fa/FaCentos.js +0 -16
- package/dist/icons/fa/FaChartLine.js +0 -16
- package/dist/icons/fa/FaChartPie.js +0 -16
- package/dist/icons/fa/FaCheck.js +0 -16
- package/dist/icons/fa/FaChevronDown.js +0 -16
- package/dist/icons/fa/FaChevronUp.js +0 -16
- package/dist/icons/fa/FaChrome.js +0 -16
- package/dist/icons/fa/FaCircleNotch.js +0 -16
- package/dist/icons/fa/FaCloud.js +0 -16
- package/dist/icons/fa/FaCloudDownloadAlt.js +0 -16
- package/dist/icons/fa/FaCog.js +0 -16
- package/dist/icons/fa/FaCogs.js +0 -16
- package/dist/icons/fa/FaComments.js +0 -16
- package/dist/icons/fa/FaCompress.js +0 -16
- package/dist/icons/fa/FaDesktop.js +0 -16
- package/dist/icons/fa/FaDocker.js +0 -16
- package/dist/icons/fa/FaDollarSign.js +0 -16
- package/dist/icons/fa/FaEdge.js +0 -16
- package/dist/icons/fa/FaEdit.js +0 -16
- package/dist/icons/fa/FaExclamationTriangle.js +0 -16
- package/dist/icons/fa/FaExpand.js +0 -16
- package/dist/icons/fa/FaEye.js +0 -16
- package/dist/icons/fa/FaEyeSlash.js +0 -16
- package/dist/icons/fa/FaFile.js +0 -16
- package/dist/icons/fa/FaFilePdf.js +0 -16
- package/dist/icons/fa/FaFilter.js +0 -16
- package/dist/icons/fa/FaFirefoxBrowser.js +0 -16
- package/dist/icons/fa/FaFlask.js +0 -16
- package/dist/icons/fa/FaFolder.js +0 -16
- package/dist/icons/fa/FaGithub.js +0 -16
- package/dist/icons/fa/FaGitlab.js +0 -16
- package/dist/icons/fa/FaGlobe.js +0 -16
- package/dist/icons/fa/FaGlobeAmericas.js +0 -16
- package/dist/icons/fa/FaImage.js +0 -16
- package/dist/icons/fa/FaInfoCircle.js +0 -16
- package/dist/icons/fa/FaKey.js +0 -16
- package/dist/icons/fa/FaLayerGroup.js +0 -16
- package/dist/icons/fa/FaLink.js +0 -16
- package/dist/icons/fa/FaLinkedin.js +0 -16
- package/dist/icons/fa/FaLinux.js +0 -16
- package/dist/icons/fa/FaList.js +0 -16
- package/dist/icons/fa/FaLock.js +0 -16
- package/dist/icons/fa/FaOpenid.js +0 -16
- package/dist/icons/fa/FaOpera.js +0 -16
- package/dist/icons/fa/FaPaperclip.js +0 -16
- package/dist/icons/fa/FaPlus.js +0 -16
- package/dist/icons/fa/FaPowerOff.js +0 -16
- package/dist/icons/fa/FaPrint.js +0 -16
- package/dist/icons/fa/FaQrcode.js +0 -16
- package/dist/icons/fa/FaQuestionCircle.js +0 -16
- package/dist/icons/fa/FaRedhat.js +0 -16
- package/dist/icons/fa/FaRegCircle.js +0 -16
- package/dist/icons/fa/FaRegFileImage.js +0 -16
- package/dist/icons/fa/FaRegFolder.js +0 -16
- package/dist/icons/fa/FaRobot.js +0 -16
- package/dist/icons/fa/FaRocket.js +0 -16
- package/dist/icons/fa/FaRunning.js +0 -16
- package/dist/icons/fa/FaSafari.js +0 -16
- package/dist/icons/fa/FaSave.js +0 -16
- package/dist/icons/fa/FaSearch.js +0 -16
- package/dist/icons/fa/FaShieldAlt.js +0 -16
- package/dist/icons/fa/FaSlack.js +0 -16
- package/dist/icons/fa/FaStar.js +0 -16
- package/dist/icons/fa/FaStop.js +0 -16
- package/dist/icons/fa/FaSuse.js +0 -16
- package/dist/icons/fa/FaTerminal.js +0 -16
- package/dist/icons/fa/FaTimes.js +0 -16
- package/dist/icons/fa/FaUbuntu.js +0 -16
- package/dist/icons/fa/FaUndoAlt.js +0 -16
- package/dist/icons/fa/FaUnlink.js +0 -16
- package/dist/icons/fa/FaUser.js +0 -16
- package/dist/icons/fa/FaUsers.js +0 -16
- package/dist/icons/fa/FaWindows.js +0 -16
- package/dist/icons/fa6/FaApple.js +0 -16
- package/dist/icons/fa6/FaArrowsRotate.js +0 -16
- package/dist/icons/fa6/FaDebian.js +0 -16
- package/dist/icons/fa6/FaFilterCircleXmark.js +0 -16
- package/dist/icons/fa6/FaInbox.js +0 -16
- package/dist/icons/fa6/FaLocationDot.js +0 -16
- package/dist/icons/fa6/FaRegFilePdf.js +0 -16
- package/dist/icons/fa6/FaRegFolderOpen.js +0 -16
- package/dist/icons/fa6/FaUpRightFromSquare.js +0 -16
- package/dist/icons/fa6/FaWandMagicSparkles.js +0 -16
- package/dist/icons/fa6/FaXTwitter.js +0 -16
- package/dist/icons/fi/FiActivity.js +0 -23
- package/dist/icons/fi/FiAlertCircle.js +0 -49
- package/dist/icons/fi/FiChevronDown.js +0 -23
- package/dist/icons/fi/FiClock.js +0 -31
- package/dist/icons/fi/FiCopy.js +0 -34
- package/dist/icons/fi/FiDownload.js +0 -40
- package/dist/icons/fi/FiFile.js +0 -27
- package/dist/icons/fi/FiFileText.js +0 -55
- package/dist/icons/fi/FiHardDrive.js +0 -55
- package/dist/icons/fi/FiRotateCcw.js +0 -27
- package/dist/icons/fi/FiUpload.js +0 -40
- package/dist/icons/fi/FiX.js +0 -37
- package/dist/icons/fi/FiZap.js +0 -23
- package/dist/icons/gi/GiSpy.js +0 -16
- package/dist/icons/go/GoGitCommit.js +0 -16
- package/dist/icons/go/GoGitPullRequest.js +0 -20
- package/dist/icons/go/GoIssueOpened.js +0 -16
- package/dist/icons/go/GoPlus.js +0 -16
- package/dist/icons/go/GoRepoForked.js +0 -28
- package/dist/icons/go/GoSignOut.js +0 -16
- package/dist/icons/go/GoSkip.js +0 -20
- package/dist/icons/go/GoVideo.js +0 -20
- package/dist/icons/gr/GrCloudComputer.js +0 -20
- package/dist/icons/gr/GrInbox.js +0 -20
- package/dist/icons/gr/GrServerCluster.js +0 -20
- package/dist/icons/gr/GrStorage.js +0 -20
- package/dist/icons/gr/GrTasks.js +0 -20
- package/dist/icons/hi/HiCog.js +0 -24
- package/dist/icons/hi/HiDuplicate.js +0 -24
- package/dist/icons/hi/HiOutlineArchive.js +0 -26
- package/dist/icons/hi/HiOutlineClipboardCopy.js +0 -26
- package/dist/icons/hi/HiOutlineHome.js +0 -26
- package/dist/icons/hi/HiQuestionMarkCircle.js +0 -24
- package/dist/icons/hi/HiServer.js +0 -24
- package/dist/icons/hi2/HiMiniCheckCircle.js +0 -24
- package/dist/icons/hi2/HiMiniLanguage.js +0 -28
- package/dist/icons/hi2/HiMiniMinusCircle.js +0 -24
- package/dist/icons/hi2/HiMiniXCircle.js +0 -24
- package/dist/icons/hi2/HiSparkles.js +0 -24
- package/dist/icons/im/ImSpinner5.js +0 -19
- package/dist/icons/io/IoIosNotifications.js +0 -16
- package/dist/icons/io/IoMdBuild.js +0 -16
- package/dist/icons/io/IoMdClose.js +0 -16
- package/dist/icons/io5/IoCloudUploadOutline.js +0 -32
- package/dist/icons/io5/IoDocumentTextOutline.js +0 -31
- package/dist/icons/io5/IoFileTrayFullOutline.js +0 -31
- package/dist/icons/io5/IoHeart.js +0 -16
- package/dist/icons/io5/IoHeartDislike.js +0 -16
- package/dist/icons/io5/IoHeartOutline.js +0 -22
- package/dist/icons/io5/IoInformationCircleOutline.js +0 -50
- package/dist/icons/io5/IoSettingsOutline.js +0 -22
- package/dist/icons/io5/IoWarningOutline.js +0 -40
- package/dist/icons/lu/LuArrowRight.js +0 -27
- package/dist/icons/lu/LuBadgeCheck.js +0 -27
- package/dist/icons/lu/LuBraces.js +0 -27
- package/dist/icons/lu/LuBrainCircuit.js +0 -101
- package/dist/icons/lu/LuCalendar.js +0 -46
- package/dist/icons/lu/LuCheck.js +0 -23
- package/dist/icons/lu/LuChevronLeft.js +0 -23
- package/dist/icons/lu/LuChevronRight.js +0 -23
- package/dist/icons/lu/LuCode.js +0 -27
- package/dist/icons/lu/LuExternalLink.js +0 -35
- package/dist/icons/lu/LuEye.js +0 -31
- package/dist/icons/lu/LuEyeOff.js +0 -40
- package/dist/icons/lu/LuFolderTree.js +0 -40
- package/dist/icons/lu/LuIdCard.js +0 -55
- package/dist/icons/lu/LuKeyboard.js +0 -71
- package/dist/icons/lu/LuLogs.js +0 -65
- package/dist/icons/lu/LuMail.js +0 -33
- package/dist/icons/lu/LuMegaphone.js +0 -27
- package/dist/icons/lu/LuMoon.js +0 -23
- package/dist/icons/lu/LuNetwork.js +0 -63
- package/dist/icons/lu/LuPartyPopper.js +0 -65
- package/dist/icons/lu/LuSettings2.js +0 -48
- package/dist/icons/lu/LuSheet.js +0 -72
- package/dist/icons/lu/LuShield.js +0 -23
- package/dist/icons/lu/LuSun.js +0 -69
- package/dist/icons/lu/LuTextCursorInput.js +0 -45
- package/dist/icons/lu/LuX.js +0 -27
- package/dist/icons/lu/LuZoomIn.js +0 -59
- package/dist/icons/lu/LuZoomOut.js +0 -49
- package/dist/icons/md/MdClear.js +0 -23
- package/dist/icons/md/MdDragHandle.js +0 -23
- package/dist/icons/md/MdInstallDesktop.js +0 -31
- package/dist/icons/md/MdOutlineAttachMoney.js +0 -23
- package/dist/icons/md/MdOutlineMoneyOff.js +0 -23
- package/dist/icons/md/MdPieChart.js +0 -23
- package/dist/icons/md/MdRefresh.js +0 -23
- package/dist/icons/md/MdReplay.js +0 -23
- package/dist/icons/md/MdSmartphone.js +0 -23
- package/dist/icons/pi/PiArrowBendUpRightBold.js +0 -19
- package/dist/icons/pi/PiPlugsConnectedFill.js +0 -19
- package/dist/icons/pi/PiRectangleDashed.js +0 -19
- package/dist/icons/pi/PiShareBold.js +0 -19
- package/dist/icons/si/SiAnthropic.js +0 -19
- package/dist/icons/si/SiHelm.js +0 -19
- package/dist/icons/si/SiKubernetes.js +0 -19
- package/dist/icons/tb/TbAlertTriangle.js +0 -35
- package/dist/icons/tb/TbAlertTriangleFilled.js +0 -19
- package/dist/icons/tb/TbApi.js +0 -40
- package/dist/icons/tb/TbBrain.js +0 -50
- package/dist/icons/tb/TbBuildingTunnel.js +0 -65
- package/dist/icons/tb/TbEdit.js +0 -35
- package/dist/icons/tb/TbLayoutSidebar.js +0 -27
- package/dist/icons/tb/TbLayoutSidebarLeftCollapse.js +0 -35
- package/dist/icons/tb/TbLayoutSidebarRightCollapse.js +0 -35
- package/dist/icons/tb/TbUser.js +0 -27
- package/dist/icons/tb/TbUserOff.js +0 -35
- package/dist/icons/tb/TbWorldShare.js +0 -55
- package/dist/icons/tb/TbWorldWww.js +0 -65
- package/dist/icons/ti/TiArrowSortedDown.js +0 -20
- package/dist/icons/ti/TiArrowSortedUp.js +0 -20
- package/dist/icons/ti/TiArrowUnsorted.js +0 -20
- package/dist/icons/ti/TiCancel.js +0 -20
- package/dist/icons/vsc/VscChromeMinimize.js +0 -19
- package/dist/icons/vsc/VscJson.js +0 -19
- package/dist/icons/vsc/VscLayoutSidebarLeft.js +0 -19
- package/dist/icons/vsc/VscPass.js +0 -27
- package/dist/icons/vsc/VscSplitHorizontal.js +0 -19
- package/dist/icons/vsc/VscTerminalPowershell.js +0 -19
- package/dist/list/ListPager.d.ts +0 -14
- package/dist/list/ListPager.js +0 -62
- package/dist/list/textEntry.d.ts +0 -2
- package/dist/list/textEntry.js +0 -10
- /package/dist/{ai/ui/codeBreaks.d.ts → components/markdownCodeBreaks.d.ts} +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { cx } from "../cx.js";
|
|
2
|
+
import { CancelIcon, FailIcon, NotRunningIcon, RunningIcon, SkipIcon, SuccessIcon } from "../icons.js";
|
|
3
|
+
import { toneText } from "./tone.js";
|
|
4
|
+
import { useStrings } from "./Provider.js";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/RunStatusIcon.tsx
|
|
7
|
+
var looks = {
|
|
8
|
+
started: {
|
|
9
|
+
tone: "warning",
|
|
10
|
+
icon: RunningIcon,
|
|
11
|
+
spin: true
|
|
12
|
+
},
|
|
13
|
+
running: {
|
|
14
|
+
tone: "warning",
|
|
15
|
+
icon: RunningIcon,
|
|
16
|
+
spin: true
|
|
17
|
+
},
|
|
18
|
+
completed: {
|
|
19
|
+
tone: "success",
|
|
20
|
+
icon: SuccessIcon
|
|
21
|
+
},
|
|
22
|
+
failed: {
|
|
23
|
+
tone: "error",
|
|
24
|
+
icon: FailIcon
|
|
25
|
+
},
|
|
26
|
+
error: {
|
|
27
|
+
tone: "error",
|
|
28
|
+
icon: FailIcon
|
|
29
|
+
},
|
|
30
|
+
skipped: {
|
|
31
|
+
tone: "muted",
|
|
32
|
+
icon: SkipIcon
|
|
33
|
+
},
|
|
34
|
+
"skipped-failed": {
|
|
35
|
+
tone: "muted",
|
|
36
|
+
icon: SkipIcon
|
|
37
|
+
},
|
|
38
|
+
canceled: {
|
|
39
|
+
tone: "info",
|
|
40
|
+
icon: CancelIcon
|
|
41
|
+
},
|
|
42
|
+
faulted: {
|
|
43
|
+
tone: "error",
|
|
44
|
+
icon: RunningIcon,
|
|
45
|
+
spin: true
|
|
46
|
+
},
|
|
47
|
+
canceling: {
|
|
48
|
+
tone: "info",
|
|
49
|
+
icon: RunningIcon,
|
|
50
|
+
spin: true
|
|
51
|
+
},
|
|
52
|
+
"": {
|
|
53
|
+
tone: "muted",
|
|
54
|
+
icon: NotRunningIcon
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
/** The tone a run status reads in, so a badge that says the status in words matches the
|
|
58
|
+
* icon: `<StatusBadge variant={runStatusTone(status)}>`. */
|
|
59
|
+
function runStatusTone(status) {
|
|
60
|
+
return looks[status ?? ""].tone;
|
|
61
|
+
}
|
|
62
|
+
/** A run's, job's or step's status as an icon in its tone, beside the name of what ran. It
|
|
63
|
+
* is named by `strings.dag.statusLabel`. To say the status in words, use `StatusBadge` with
|
|
64
|
+
* `runStatusTone`. */
|
|
65
|
+
function RunStatusIcon({ status, className }) {
|
|
66
|
+
const { dag } = useStrings();
|
|
67
|
+
const look = looks[status ?? ""];
|
|
68
|
+
const Icon = look.icon;
|
|
69
|
+
const label = dag.statusLabel(status ?? "");
|
|
70
|
+
return /* @__PURE__ */ jsx("span", {
|
|
71
|
+
...label ? {
|
|
72
|
+
role: "img",
|
|
73
|
+
"aria-label": label
|
|
74
|
+
} : { "aria-hidden": true },
|
|
75
|
+
"data-status": status || "not-run",
|
|
76
|
+
className: cx("flex h-2 items-center", toneText[look.tone], className),
|
|
77
|
+
children: /* @__PURE__ */ jsx(Icon, {
|
|
78
|
+
"aria-hidden": "true",
|
|
79
|
+
className: cx(look.spin && "animate-spin rounded-full")
|
|
80
|
+
})
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//#endregion
|
|
84
|
+
export { RunStatusIcon, runStatusTone };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { InputHTMLAttributes, Ref } from 'react';
|
|
2
|
+
import { type FieldBoxSize } from './fieldBox.js';
|
|
3
|
+
export interface SearchInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'size' | 'type' | 'className'> {
|
|
4
|
+
value: string;
|
|
5
|
+
onValueChange: (value: string) => void;
|
|
6
|
+
/** Names the box, and is its placeholder unless `placeholder` says otherwise. */
|
|
7
|
+
label?: string | undefined;
|
|
8
|
+
size?: FieldBoxSize | undefined;
|
|
9
|
+
/** On the wrapper: its width or margin. */
|
|
10
|
+
className?: string | undefined;
|
|
11
|
+
ref?: Ref<HTMLInputElement> | undefined;
|
|
12
|
+
}
|
|
13
|
+
/** A box that narrows what is shown as you type, such as a panel's rows or a log's lines.
|
|
14
|
+
* A clear button empties it, and so does Escape, without closing the dialog it sits in. For
|
|
15
|
+
* a list page's toolbar, which keeps search terms and opens on ⌘F, use `ListSearchControl`. */
|
|
16
|
+
export declare function SearchInput({ value, onValueChange, label, placeholder, size, className, onKeyDown, ref, ...props }: SearchInputProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { cx } from "../cx.js";
|
|
2
|
+
import { CloseIcon, SearchIcon } from "../icons.js";
|
|
3
|
+
import { useStrings } from "./Provider.js";
|
|
4
|
+
import { fieldBox } from "./fieldBox.js";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/SearchInput.tsx
|
|
7
|
+
/** A box that narrows what is shown as you type, such as a panel's rows or a log's lines.
|
|
8
|
+
* A clear button empties it, and so does Escape, without closing the dialog it sits in. For
|
|
9
|
+
* a list page's toolbar, which keeps search terms and opens on ⌘F, use `ListSearchControl`. */
|
|
10
|
+
function SearchInput({ value, onValueChange, label, placeholder, size = "md", className, onKeyDown, ref, ...props }) {
|
|
11
|
+
const { common } = useStrings();
|
|
12
|
+
const name = label ?? common.search;
|
|
13
|
+
const small = size === "sm";
|
|
14
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
15
|
+
className: cx("relative flex items-center", className),
|
|
16
|
+
children: [
|
|
17
|
+
/* @__PURE__ */ jsx(SearchIcon, {
|
|
18
|
+
"aria-hidden": "true",
|
|
19
|
+
className: cx("pointer-events-none absolute text-(--theme-muted-text-color)", small ? "left-2 size-3" : "left-2.5 size-3.5")
|
|
20
|
+
}),
|
|
21
|
+
/* @__PURE__ */ jsx("input", {
|
|
22
|
+
...props,
|
|
23
|
+
ref,
|
|
24
|
+
type: "search",
|
|
25
|
+
"aria-label": name,
|
|
26
|
+
placeholder: placeholder ?? name,
|
|
27
|
+
value,
|
|
28
|
+
onChange: (e) => onValueChange(e.target.value),
|
|
29
|
+
onKeyDown: (e) => {
|
|
30
|
+
onKeyDown?.(e);
|
|
31
|
+
if (e.key === "Escape" && value && !e.defaultPrevented) {
|
|
32
|
+
e.stopPropagation();
|
|
33
|
+
onValueChange("");
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
className: cx(fieldBox({ size }), "[&::-webkit-search-cancel-button]:appearance-none", small ? "pl-6 pr-6" : "pl-8 pr-8")
|
|
37
|
+
}),
|
|
38
|
+
value && /* @__PURE__ */ jsx("button", {
|
|
39
|
+
type: "button",
|
|
40
|
+
"aria-label": common.clearSearch,
|
|
41
|
+
onClick: () => onValueChange(""),
|
|
42
|
+
className: "absolute right-1 flex size-6 cursor-pointer items-center justify-center rounded text-(--theme-muted-text-color) hover:text-(--theme-app)",
|
|
43
|
+
children: /* @__PURE__ */ jsx(CloseIcon, {
|
|
44
|
+
"aria-hidden": "true",
|
|
45
|
+
className: "size-3"
|
|
46
|
+
})
|
|
47
|
+
})
|
|
48
|
+
]
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//#endregion
|
|
52
|
+
export { SearchInput };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type SectionVariant = 'plain' | 'card';
|
|
3
|
+
export interface SectionProps {
|
|
4
|
+
title: ReactNode;
|
|
5
|
+
/** Beside the title, outside the toggle, such as an info tip or a count. */
|
|
6
|
+
beside?: ReactNode;
|
|
7
|
+
/** At the header's far end, such as an add button or a range picker. */
|
|
8
|
+
actions?: ReactNode;
|
|
9
|
+
/** `plain` rules the title off from the content under it; `card` frames the
|
|
10
|
+
* section as a panel. */
|
|
11
|
+
variant?: SectionVariant | undefined;
|
|
12
|
+
/** False shows the content always, under a title that doesn't fold. */
|
|
13
|
+
collapsible?: boolean | undefined;
|
|
14
|
+
/** Hold the state, such as a remembered preference, with `open` and
|
|
15
|
+
* `onOpenChange`; or leave it to the section with `defaultOpen`. */
|
|
16
|
+
open?: boolean | undefined;
|
|
17
|
+
onOpenChange?: ((open: boolean) => void) | undefined;
|
|
18
|
+
defaultOpen?: boolean | undefined;
|
|
19
|
+
/** The heading level the title sits at in the page's outline. */
|
|
20
|
+
headingLevel?: 2 | 3 | 4 | undefined;
|
|
21
|
+
className?: string | undefined;
|
|
22
|
+
children: ReactNode;
|
|
23
|
+
}
|
|
24
|
+
/** A titled part of a page or form, its title a heading in the page's outline,
|
|
25
|
+
* that can fold away. Folding keeps the content mounted, so fields hold their
|
|
26
|
+
* values and validation while closed. For a line inside content that reveals
|
|
27
|
+
* more detail, use Disclosure. */
|
|
28
|
+
export declare function Section({ title, beside, actions, variant, collapsible, open, onOpenChange, defaultOpen, headingLevel, className, children, }: SectionProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { cx } from "../cx.js";
|
|
2
|
+
import { ChevronRightIcon } from "../icons.js";
|
|
3
|
+
import { collapsePanelClassName } from "./Disclosure.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Collapsible } from "@base-ui/react/collapsible";
|
|
6
|
+
//#region src/components/Section.tsx
|
|
7
|
+
var rootClasses = {
|
|
8
|
+
plain: "flex w-full flex-col",
|
|
9
|
+
card: "group/section panel mb-1 flex w-full flex-col"
|
|
10
|
+
};
|
|
11
|
+
var headerClasses = {
|
|
12
|
+
plain: "mb-2 flex w-full items-center gap-2 border-b border-(--theme-border) pb-1",
|
|
13
|
+
card: "flex w-full items-center gap-2 px-2 py-3"
|
|
14
|
+
};
|
|
15
|
+
var titleClasses = {
|
|
16
|
+
plain: "text-lg font-semibold",
|
|
17
|
+
card: "text-sm font-bold text-(--theme-muted-text-color) group-data-open/section:text-inherit"
|
|
18
|
+
};
|
|
19
|
+
/** A titled part of a page or form, its title a heading in the page's outline,
|
|
20
|
+
* that can fold away. Folding keeps the content mounted, so fields hold their
|
|
21
|
+
* values and validation while closed. For a line inside content that reveals
|
|
22
|
+
* more detail, use Disclosure. */
|
|
23
|
+
function Section({ title, beside, actions, variant = "plain", collapsible = true, open, onOpenChange, defaultOpen = true, headingLevel = 3, className, children }) {
|
|
24
|
+
const Heading = `h${headingLevel}`;
|
|
25
|
+
const end = actions && /* @__PURE__ */ jsx("div", {
|
|
26
|
+
className: "ml-auto flex items-center gap-2",
|
|
27
|
+
children: actions
|
|
28
|
+
});
|
|
29
|
+
const titleProps = { "data-section-title": "" };
|
|
30
|
+
const fill = !beside && !actions;
|
|
31
|
+
if (!collapsible) return /* @__PURE__ */ jsxs("section", {
|
|
32
|
+
className: cx(rootClasses[variant], className),
|
|
33
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
34
|
+
className: headerClasses[variant],
|
|
35
|
+
children: [
|
|
36
|
+
/* @__PURE__ */ jsx(Heading, {
|
|
37
|
+
...titleProps,
|
|
38
|
+
className: cx("flex items-center", titleClasses[variant]),
|
|
39
|
+
children: title
|
|
40
|
+
}),
|
|
41
|
+
beside,
|
|
42
|
+
end
|
|
43
|
+
]
|
|
44
|
+
}), children]
|
|
45
|
+
});
|
|
46
|
+
return /* @__PURE__ */ jsxs(Collapsible.Root, {
|
|
47
|
+
open,
|
|
48
|
+
onOpenChange: (next) => onOpenChange?.(next),
|
|
49
|
+
defaultOpen,
|
|
50
|
+
className: cx(rootClasses[variant], className),
|
|
51
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
52
|
+
className: headerClasses[variant],
|
|
53
|
+
children: [
|
|
54
|
+
/* @__PURE__ */ jsx(Heading, {
|
|
55
|
+
className: cx("flex min-w-0", fill && "flex-1"),
|
|
56
|
+
children: /* @__PURE__ */ jsxs(Collapsible.Trigger, {
|
|
57
|
+
...titleProps,
|
|
58
|
+
className: cx("group flex min-w-0 cursor-pointer items-center gap-1 text-left", fill && "w-full", titleClasses[variant]),
|
|
59
|
+
children: [/* @__PURE__ */ jsx(ChevronRightIcon, {
|
|
60
|
+
"aria-hidden": "true",
|
|
61
|
+
className: cx("shrink-0 transition-transform group-data-panel-open:rotate-90 motion-reduce:transition-none", "px-1 text-[1.25rem]")
|
|
62
|
+
}), title]
|
|
63
|
+
})
|
|
64
|
+
}),
|
|
65
|
+
beside,
|
|
66
|
+
end
|
|
67
|
+
]
|
|
68
|
+
}), /* @__PURE__ */ jsx(Collapsible.Panel, {
|
|
69
|
+
keepMounted: true,
|
|
70
|
+
className: collapsePanelClassName,
|
|
71
|
+
children
|
|
72
|
+
})]
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//#endregion
|
|
76
|
+
export { Section };
|
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
+
import { type SegmentLayout } from './segmented.js';
|
|
2
3
|
export interface SegmentedOption<T extends string> {
|
|
3
4
|
value: T;
|
|
4
5
|
label: string;
|
|
5
6
|
icon?: ReactNode;
|
|
6
7
|
/** Beside the label, or in the corner when only the icon shows. */
|
|
7
8
|
badge?: ReactNode;
|
|
8
|
-
/** Navigates instead of choosing, for segments that are pages. */
|
|
9
|
-
href?: string;
|
|
10
9
|
testId?: string;
|
|
11
10
|
}
|
|
12
|
-
/** A few mutually exclusive choices side by side, one always current
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
export declare function SegmentedControl<T extends string>({ label, options, value, onValueChange, fill, iconOnly, testId, }: {
|
|
17
|
-
label
|
|
11
|
+
/** A few mutually exclusive choices side by side, one always current, such as
|
|
12
|
+
* a time range or what to group by. To move between views or pages, use
|
|
13
|
+
* `Tabs` with `variant="segmented"`, which looks the same. Name it with
|
|
14
|
+
* `label`, or leave that out inside a `Field group`, whose legend names it. */
|
|
15
|
+
export declare function SegmentedControl<T extends string>({ label, options, value, onValueChange, fill, iconOnly, testId, }: SegmentLayout & {
|
|
16
|
+
label?: string | undefined;
|
|
18
17
|
options: SegmentedOption<T>[];
|
|
19
18
|
value: T;
|
|
20
19
|
onValueChange?: (value: T) => void;
|
|
21
|
-
/** Segments share the container's width equally. */
|
|
22
|
-
fill?: boolean;
|
|
23
|
-
iconOnly?: boolean;
|
|
24
20
|
testId?: string;
|
|
25
21
|
}): import("react").JSX.Element;
|
|
@@ -1,72 +1,41 @@
|
|
|
1
1
|
import { Tooltip } from "./Tooltip.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { SegmentContent, segmentClassName, segmentGroupClassName } from "./segmented.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
4
|
import { Toggle } from "@base-ui/react/toggle";
|
|
6
5
|
import { ToggleGroup } from "@base-ui/react/toggle-group";
|
|
7
6
|
//#region src/components/SegmentedControl.tsx
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* `iconOnly` the segments stack as icons with their labels in tooltips, for
|
|
13
|
-
* a collapsed rail. Segments with `href` are pages, so the control becomes
|
|
14
|
-
* navigation. */
|
|
7
|
+
/** A few mutually exclusive choices side by side, one always current, such as
|
|
8
|
+
* a time range or what to group by. To move between views or pages, use
|
|
9
|
+
* `Tabs` with `variant="segmented"`, which looks the same. Name it with
|
|
10
|
+
* `label`, or leave that out inside a `Field group`, whose legend names it. */
|
|
15
11
|
function SegmentedControl({ label, options, value, onValueChange, fill = false, iconOnly = false, testId }) {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const className = clsx(itemBase, current ? itemCurrent : itemIdle, iconOnly ? "h-8 w-8" : clsx("h-7 gap-1.5 text-[13px]", fill ? "px-1.5" : "px-2.5"));
|
|
21
|
-
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
22
|
-
option.icon,
|
|
23
|
-
iconOnly ? /* @__PURE__ */ jsx("span", {
|
|
24
|
-
className: "sr-only",
|
|
25
|
-
children: option.label
|
|
26
|
-
}) : /* @__PURE__ */ jsx("span", {
|
|
27
|
-
className: "truncate",
|
|
28
|
-
children: option.label
|
|
29
|
-
}),
|
|
30
|
-
option.badge && (iconOnly ? /* @__PURE__ */ jsx("span", {
|
|
31
|
-
className: "absolute top-1 right-1 inline-flex",
|
|
32
|
-
children: option.badge
|
|
33
|
-
}) : option.badge)
|
|
34
|
-
] });
|
|
35
|
-
return /* @__PURE__ */ jsx(Tooltip, {
|
|
36
|
-
content: option.label,
|
|
37
|
-
side: "right",
|
|
38
|
-
disabled: !iconOnly,
|
|
39
|
-
children: option.href ? /* @__PURE__ */ jsx(Link, {
|
|
40
|
-
href: option.href,
|
|
41
|
-
"aria-current": current ? "page" : void 0,
|
|
42
|
-
"data-testid": option.testId,
|
|
43
|
-
className,
|
|
44
|
-
children: content
|
|
45
|
-
}) : /* @__PURE__ */ jsx(Toggle, {
|
|
46
|
-
value: option.value,
|
|
47
|
-
"data-testid": option.testId,
|
|
48
|
-
className,
|
|
49
|
-
children: content
|
|
50
|
-
})
|
|
51
|
-
}, option.value);
|
|
52
|
-
});
|
|
53
|
-
const groupClassName = clsx("gap-0.5", iconOnly ? "flex flex-col items-center" : clsx("rounded-lg theme-muted-panel p-0.5", fill ? "grid auto-cols-fr grid-flow-col" : "inline-flex"));
|
|
54
|
-
if (links) return /* @__PURE__ */ jsx("nav", {
|
|
55
|
-
"aria-label": label,
|
|
56
|
-
"data-testid": testId,
|
|
57
|
-
className: groupClassName,
|
|
58
|
-
children: items
|
|
59
|
-
});
|
|
12
|
+
const layout = {
|
|
13
|
+
fill,
|
|
14
|
+
iconOnly
|
|
15
|
+
};
|
|
60
16
|
return /* @__PURE__ */ jsx(ToggleGroup, {
|
|
61
17
|
"aria-label": label,
|
|
62
18
|
"data-testid": testId,
|
|
63
|
-
className:
|
|
19
|
+
className: segmentGroupClassName(layout),
|
|
64
20
|
orientation: iconOnly ? "vertical" : "horizontal",
|
|
65
21
|
value: [value],
|
|
66
22
|
onValueChange: ([next]) => {
|
|
67
23
|
if (next !== void 0) onValueChange?.(next);
|
|
68
24
|
},
|
|
69
|
-
children:
|
|
25
|
+
children: options.map((option) => /* @__PURE__ */ jsx(Tooltip, {
|
|
26
|
+
content: option.label,
|
|
27
|
+
side: "right",
|
|
28
|
+
disabled: !iconOnly,
|
|
29
|
+
children: /* @__PURE__ */ jsx(Toggle, {
|
|
30
|
+
value: option.value,
|
|
31
|
+
"data-testid": option.testId,
|
|
32
|
+
className: segmentClassName(option.value === value, layout),
|
|
33
|
+
children: /* @__PURE__ */ jsx(SegmentContent, {
|
|
34
|
+
...option,
|
|
35
|
+
iconOnly
|
|
36
|
+
})
|
|
37
|
+
})
|
|
38
|
+
}, option.value))
|
|
70
39
|
});
|
|
71
40
|
}
|
|
72
41
|
//#endregion
|
|
@@ -14,17 +14,21 @@ export type SelectProps<Value, Multiple extends boolean | undefined = false> = O
|
|
|
14
14
|
/** Applied to the trigger. */
|
|
15
15
|
className?: string | undefined;
|
|
16
16
|
'aria-label'?: string | undefined;
|
|
17
|
+
'aria-labelledby'?: string | undefined;
|
|
17
18
|
'aria-describedby'?: string | undefined;
|
|
18
19
|
'aria-invalid'?: boolean | undefined;
|
|
20
|
+
'aria-required'?: boolean | undefined;
|
|
19
21
|
/** Renders the field as this button, for compact pickers such as a toolbar pill. The
|
|
20
22
|
* button shows the selection itself; `placeholder` and `className` then go unused. */
|
|
21
23
|
trigger?: ReactElement | undefined;
|
|
22
24
|
/** A hint on the trigger button. */
|
|
23
25
|
triggerTooltip?: ReactNode;
|
|
26
|
+
/** `sm` for dense places such as toolbars and table cells. */
|
|
27
|
+
size?: 'sm' | 'md' | undefined;
|
|
24
28
|
/** The item a person is on as they move through the open list, then undefined once it
|
|
25
29
|
* closes, such as to preview a theme before it is chosen. */
|
|
26
30
|
onItemHighlighted?: ((value: Value | undefined) => void) | undefined;
|
|
27
31
|
};
|
|
28
32
|
/** Picks one value, or several with `multiple`, from a short list. Use
|
|
29
33
|
* Combobox when the list is long enough to need filtering. */
|
|
30
|
-
export declare function Select<Value, Multiple extends boolean | undefined = false>({ items, placeholder, className, 'aria-label': ariaLabel, 'aria-describedby': describedBy, 'aria-invalid': invalid, trigger, triggerTooltip, onItemHighlighted, ...rootProps }: SelectProps<Value, Multiple>): import("react").JSX.Element;
|
|
34
|
+
export declare function Select<Value, Multiple extends boolean | undefined = false>({ items, placeholder, className, 'aria-label': ariaLabel, 'aria-labelledby': labelledBy, 'aria-describedby': describedBy, 'aria-invalid': invalid, 'aria-required': required, trigger, triggerTooltip, size, onItemHighlighted, ...rootProps }: SelectProps<Value, Multiple>): import("react").JSX.Element;
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { panelClassName, panelItemClassName,
|
|
1
|
+
import { cx } from "../cx.js";
|
|
2
|
+
import { CheckIcon, ChevronDownIcon } from "../icons.js";
|
|
3
|
+
import { panelClassName, panelItemClassName, positionerClassName } from "./floating.js";
|
|
4
4
|
import { Tooltip } from "./Tooltip.js";
|
|
5
|
-
import {
|
|
5
|
+
import { fieldBox } from "./fieldBox.js";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { Select } from "@base-ui/react/select";
|
|
8
8
|
//#region src/components/Select.tsx
|
|
9
|
-
var triggerClassName =
|
|
9
|
+
var triggerClassName = "flex cursor-pointer items-center justify-between gap-2 pr-1.5 text-left";
|
|
10
10
|
/** Picks one value, or several with `multiple`, from a short list. Use
|
|
11
11
|
* Combobox when the list is long enough to need filtering. */
|
|
12
|
-
function Select$1({ items, placeholder, className, "aria-label": ariaLabel, "aria-describedby": describedBy, "aria-invalid": invalid, trigger, triggerTooltip, onItemHighlighted, ...rootProps }) {
|
|
12
|
+
function Select$1({ items, placeholder, className, "aria-label": ariaLabel, "aria-labelledby": labelledBy, "aria-describedby": describedBy, "aria-invalid": invalid, "aria-required": required, trigger, triggerTooltip, size = "md", onItemHighlighted, ...rootProps }) {
|
|
13
13
|
const labelOf = (value) => items.find((item) => Object.is(item.value, value))?.label;
|
|
14
14
|
const triggerProps = {
|
|
15
15
|
"aria-label": ariaLabel,
|
|
16
|
+
"aria-labelledby": labelledBy,
|
|
16
17
|
"aria-describedby": describedBy,
|
|
17
|
-
"aria-invalid": invalid || void 0
|
|
18
|
+
"aria-invalid": invalid || void 0,
|
|
19
|
+
"aria-required": required || void 0
|
|
18
20
|
};
|
|
19
21
|
return /* @__PURE__ */ jsxs(Select.Root, {
|
|
20
22
|
items,
|
|
@@ -31,52 +33,49 @@ function Select$1({ items, placeholder, className, "aria-label": ariaLabel, "ari
|
|
|
31
33
|
})
|
|
32
34
|
}) : /* @__PURE__ */ jsxs(Select.Trigger, {
|
|
33
35
|
...triggerProps,
|
|
34
|
-
className:
|
|
36
|
+
className: cx(fieldBox({ size }), triggerClassName, className),
|
|
35
37
|
children: [/* @__PURE__ */ jsx(Select.Value, {
|
|
36
38
|
placeholder,
|
|
37
39
|
className: "truncate data-placeholder:text-(--theme-muted-text-color)",
|
|
38
40
|
children: rootProps.multiple ? (values) => values.length > 0 ? values.map(labelOf).join(", ") : placeholder : void 0
|
|
39
41
|
}), /* @__PURE__ */ jsx(Select.Icon, {
|
|
40
42
|
className: "shrink-0 text-(--theme-muted-text-color)",
|
|
41
|
-
children: /* @__PURE__ */ jsx(
|
|
43
|
+
children: /* @__PURE__ */ jsx(ChevronDownIcon, { "aria-hidden": "true" })
|
|
42
44
|
})]
|
|
43
|
-
}), /* @__PURE__ */ jsx(Select.Portal, {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
className:
|
|
49
|
-
children: /* @__PURE__ */ jsx(Select.
|
|
50
|
-
className:
|
|
51
|
-
children: /* @__PURE__ */
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
/* @__PURE__ */ jsx(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
/* @__PURE__ */
|
|
64
|
-
className: "
|
|
65
|
-
children:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
item.description
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
]
|
|
75
|
-
}, String(item.value)))
|
|
76
|
-
})
|
|
45
|
+
}), /* @__PURE__ */ jsx(Select.Portal, { children: /* @__PURE__ */ jsx(Select.Positioner, {
|
|
46
|
+
alignItemWithTrigger: false,
|
|
47
|
+
sideOffset: 4,
|
|
48
|
+
className: positionerClassName,
|
|
49
|
+
children: /* @__PURE__ */ jsx(Select.Popup, {
|
|
50
|
+
className: cx("min-w-(--anchor-width) max-w-[min(20rem,var(--available-width))]", panelClassName),
|
|
51
|
+
children: /* @__PURE__ */ jsx(Select.List, {
|
|
52
|
+
className: "max-h-[min(15rem,var(--available-height))] overflow-y-auto py-1",
|
|
53
|
+
children: items.map((item) => /* @__PURE__ */ jsxs(Select.Item, {
|
|
54
|
+
value: item.value,
|
|
55
|
+
disabled: item.disabled,
|
|
56
|
+
onFocus: onItemHighlighted && (() => onItemHighlighted(item.value)),
|
|
57
|
+
className: cx("grid grid-cols-[1rem_1fr]", panelItemClassName),
|
|
58
|
+
children: [
|
|
59
|
+
/* @__PURE__ */ jsx(Select.ItemIndicator, {
|
|
60
|
+
className: "col-start-1",
|
|
61
|
+
children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
|
|
62
|
+
}),
|
|
63
|
+
/* @__PURE__ */ jsxs("span", {
|
|
64
|
+
className: "col-start-2 flex min-w-0 items-center gap-2",
|
|
65
|
+
children: [item.icon, /* @__PURE__ */ jsx(Select.ItemText, {
|
|
66
|
+
className: "truncate",
|
|
67
|
+
children: item.label
|
|
68
|
+
})]
|
|
69
|
+
}),
|
|
70
|
+
item.description && /* @__PURE__ */ jsx("span", {
|
|
71
|
+
className: "col-start-2 text-xs text-(--theme-muted-text-color)",
|
|
72
|
+
children: item.description
|
|
73
|
+
})
|
|
74
|
+
]
|
|
75
|
+
}, String(item.value)))
|
|
77
76
|
})
|
|
78
77
|
})
|
|
79
|
-
})]
|
|
78
|
+
}) })]
|
|
80
79
|
});
|
|
81
80
|
}
|
|
82
81
|
//#endregion
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
/** A
|
|
2
|
-
* default
|
|
3
|
-
|
|
4
|
-
export declare function SettingModeOption({ value, label, description, isFirst, disabled, }: {
|
|
1
|
+
/** A named and described choice in a SettingsCard, picking between modes such
|
|
2
|
+
* as default or custom. Stack them in a `RadioGroup`, which holds the value. */
|
|
3
|
+
export declare function SettingModeOption({ value, label, description, disabled, }: {
|
|
5
4
|
value: string;
|
|
6
5
|
label: string;
|
|
7
6
|
description: string;
|
|
8
|
-
isFirst?: boolean;
|
|
9
7
|
disabled?: boolean;
|
|
10
8
|
}): import("react").JSX.Element;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
+
import { cx } from "../cx.js";
|
|
1
2
|
import { Radio } from "./Radio.js";
|
|
2
|
-
import { clsx } from "clsx";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
//#region src/components/SettingModeOption.tsx
|
|
5
|
-
/** A
|
|
6
|
-
* default
|
|
7
|
-
|
|
8
|
-
function SettingModeOption({ value, label, description, isFirst, disabled }) {
|
|
5
|
+
/** A named and described choice in a SettingsCard, picking between modes such
|
|
6
|
+
* as default or custom. Stack them in a `RadioGroup`, which holds the value. */
|
|
7
|
+
function SettingModeOption({ value, label, description, disabled }) {
|
|
9
8
|
return /* @__PURE__ */ jsxs("label", {
|
|
10
|
-
className:
|
|
9
|
+
className: cx("flex items-start gap-3 px-5 py-4", disabled ? "cursor-default opacity-60" : "cursor-pointer", "border-t border-(--theme-border) first:border-t-0"),
|
|
11
10
|
children: [/* @__PURE__ */ jsx(Radio, {
|
|
12
11
|
value,
|
|
13
12
|
disabled,
|
|
@@ -1,24 +1,37 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
-
interface SettingsCardProps {
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
title?: string;
|
|
2
|
+
export interface SettingsCardProps {
|
|
3
|
+
/** Names the card above it. Leave it out on a page's first card, where the
|
|
4
|
+
* page title already names it. */
|
|
5
|
+
title?: string | undefined;
|
|
6
6
|
description?: ReactNode;
|
|
7
|
-
/**
|
|
7
|
+
/** Beside the title, such as an add button; with `actionAlign="end"`, at the
|
|
8
|
+
* header's far edge, such as Save. */
|
|
8
9
|
action?: ReactNode;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
overflowVisible?: boolean;
|
|
10
|
+
actionAlign?: 'beside' | 'end' | undefined;
|
|
11
|
+
/** Lets content such as an inline menu reach past the card's rounded edge. */
|
|
12
|
+
overflowVisible?: boolean | undefined;
|
|
13
|
+
className?: string | undefined;
|
|
14
|
+
/** SettingRows, and SettingsHeadings between groups of them. */
|
|
15
15
|
children: ReactNode;
|
|
16
|
-
className?: string;
|
|
17
16
|
}
|
|
18
|
-
/**
|
|
19
|
-
*
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
/** A page's settings, grouped: a titled panel of SettingRows, each ruled off from
|
|
18
|
+
* the next. Cards stack with room between them. */
|
|
19
|
+
export declare function SettingsCard({ title, description, action, actionAlign, overflowVisible, className, children, }: SettingsCardProps): import("react").JSX.Element;
|
|
20
|
+
/** A heading between groups of rows inside a SettingsCard. */
|
|
21
|
+
export declare function SettingsHeading({ children }: {
|
|
22
|
+
children: ReactNode;
|
|
23
|
+
}): import("react").JSX.Element;
|
|
24
|
+
/** One setting in a SettingsCard: its name and help on the left, its control on
|
|
25
|
+
* the right, or under the name across the row with `fill`. */
|
|
26
|
+
export declare function SettingRow({ label, htmlFor, helpText, fill, onClick, children, }: {
|
|
27
|
+
label: string;
|
|
28
|
+
/** The control's id, so the name labels it. */
|
|
29
|
+
htmlFor?: string | undefined;
|
|
30
|
+
helpText?: ReactNode;
|
|
31
|
+
/** The control takes the row's width, as a text field does; otherwise it sits compact at the right. */
|
|
32
|
+
fill?: boolean | undefined;
|
|
33
|
+
/** Makes the whole row press its control, such as a switch. The control still
|
|
34
|
+
* handles its own press; stop it propagating there so it doesn't toggle twice. */
|
|
35
|
+
onClick?: (() => void) | undefined;
|
|
36
|
+
children: ReactNode;
|
|
37
|
+
}): import("react").JSX.Element;
|