@comfyorg/design-system 1.1.0 → 1.3.0-alpha.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 +113 -10
- package/dist/accordion/PropertiesAccordionItem.vue.d.ts +34 -0
- package/dist/accordion/PropertiesAccordionItem.vue.js +62 -0
- package/dist/badge/Badge.vue.d.ts +49 -0
- package/dist/badge/Badge.vue.js +1 -0
- package/dist/badge/CreditBadge.vue.d.ts +6 -0
- package/dist/badge/CreditBadge.vue.js +21 -0
- package/dist/badge/badge.variants.d.ts +12 -0
- package/dist/button/Button.vue.d.ts +31 -0
- package/dist/button/Button.vue.js +1 -0
- package/dist/button-group/ButtonGroup.vue.d.ts +18 -0
- package/dist/button-group/ButtonGroup.vue.js +35 -0
- package/dist/button-group/IconGroup.vue.d.ts +16 -0
- package/dist/button-group/IconGroup.vue.js +13 -0
- package/dist/card/Card.vue.d.ts +19 -0
- package/dist/card/Card.vue.js +1 -0
- package/dist/card/CardFooter.vue.d.ts +17 -0
- package/dist/card/CardFooter.vue.js +1 -0
- package/dist/card/CardHeader.vue.d.ts +17 -0
- package/dist/card/CardHeader.vue.js +1 -0
- package/dist/card/CoachmarkCard.vue.d.ts +24 -0
- package/dist/card/CoachmarkCard.vue.js +55 -0
- package/dist/card/card.variants.d.ts +11 -0
- package/dist/chart/Chart.vue.d.ts +12 -0
- package/dist/chart/Chart.vue.js +177 -0
- package/dist/chart/__tests__/chartTestUtils.d.ts +3 -0
- package/dist/chart/useChart.d.ts +4 -0
- package/dist/checkbox/Checkbox.vue.d.ts +25 -0
- package/dist/checkbox/Checkbox.vue.js +47 -0
- package/dist/chip/Tag.vue.d.ts +61 -0
- package/dist/chip/Tag.vue.js +71 -0
- package/dist/chip/TagRemoveButton.vue.d.ts +18 -0
- package/dist/chip/TagRemoveButton.vue.js +1 -0
- package/dist/color-picker/ColorPicker.vue.d.ts +23 -0
- package/dist/color-picker/ColorPicker.vue.js +139 -0
- package/dist/color-picker/ColorPickerPanel.vue.d.ts +27 -0
- package/dist/color-picker/ColorPickerPanel.vue.js +1 -0
- package/dist/color-picker/ColorPickerSaturationValue.vue.d.ts +17 -0
- package/dist/color-picker/ColorPickerSaturationValue.vue.js +1 -0
- package/dist/color-picker/ColorPickerSlider.vue.d.ts +17 -0
- package/dist/color-picker/ColorPickerSlider.vue.js +1 -0
- package/dist/color-picker/types.d.ts +22 -0
- package/dist/color-picker/types.js +0 -0
- package/dist/color-picker/useColorPicker.d.ts +33 -0
- package/dist/common/CanvasBanner.vue.d.ts +23 -0
- package/dist/common/CanvasBanner.vue.js +21 -0
- package/dist/common/ContentDivider.vue.d.ts +7 -0
- package/dist/common/ContentDivider.vue.js +20 -0
- package/dist/common/CustomFormValue.vue.d.ts +6 -0
- package/dist/common/CustomFormValue.vue.js +26 -0
- package/dist/common/DotSpinner.vue.d.ts +7 -0
- package/dist/common/DotSpinner.vue.js +32 -0
- package/dist/common/EditableText.vue.d.ts +16 -0
- package/dist/common/EditableText.vue.js +71 -0
- package/dist/common/HighlightedText.vue.d.ts +8 -0
- package/dist/common/HighlightedText.vue.js +49 -0
- package/dist/common/LoadingOverlay.vue.d.ts +18 -0
- package/dist/common/LoadingOverlay.vue.js +39 -0
- package/dist/common/MarkdownText.vue.d.ts +6 -0
- package/dist/common/MarkdownText.vue.js +91 -0
- package/dist/common/MarqueeLine.vue.d.ts +13 -0
- package/dist/common/MarqueeLine.vue.js +11 -0
- package/dist/common/NoResultsPlaceholder.vue.d.ts +28 -0
- package/dist/common/NoResultsPlaceholder.vue.js +49 -0
- package/dist/common/NotificationPopup.vue.d.ts +28 -0
- package/dist/common/NotificationPopup.vue.js +63 -0
- package/dist/common/OverlayIcon.vue.d.ts +13 -0
- package/dist/common/OverlayIcon.vue.js +1 -0
- package/dist/common/SanitizedHtml.vue.d.ts +8 -0
- package/dist/common/SanitizedHtml.vue.js +58 -0
- package/dist/common/TextDivider.vue.d.ts +8 -0
- package/dist/common/TextDivider.vue.js +34 -0
- package/dist/common/TextTicker.vue.d.ts +17 -0
- package/dist/common/TextTicker.vue.js +51 -0
- package/dist/common/TextTickerMultiLine.vue.d.ts +6 -0
- package/dist/common/TextTickerMultiLine.vue.js +51 -0
- package/dist/common/UserAvatar.vue.d.ts +9 -0
- package/dist/common/UserAvatar.vue.js +45 -0
- package/dist/common/VerticalDivider.vue.d.ts +3 -0
- package/dist/common/VerticalDivider.vue.js +14 -0
- package/dist/common/VideoCompareSlider.vue.d.ts +24 -0
- package/dist/common/VideoCompareSlider.vue.js +139 -0
- package/dist/common/ViewportWidgetShell.vue.d.ts +27 -0
- package/dist/common/ViewportWidgetShell.vue.js +56 -0
- package/dist/common/VirtualGrid.vue.d.ts +38 -0
- package/dist/common/VirtualGrid.vue.js +105 -0
- package/dist/common/highlightQuery.d.ts +6 -0
- package/dist/common/textTickerUtils.d.ts +1 -0
- package/dist/components.css +44 -0
- package/dist/composables/useAttrsClass.d.ts +12 -0
- package/dist/composables/useAttrsClass.js +17 -0
- package/dist/composables/usePopoverSizing.d.ts +12 -0
- package/dist/composables/usePopoverSizing.js +17 -0
- package/dist/confirm/ConfirmBody.vue.d.ts +8 -0
- package/dist/confirm/ConfirmBody.vue.js +25 -0
- package/dist/confirm/ConfirmFooter.vue.d.ts +18 -0
- package/dist/confirm/ConfirmFooter.vue.js +53 -0
- package/dist/confirm/ConfirmHeader.vue.d.ts +7 -0
- package/dist/confirm/ConfirmHeader.vue.js +25 -0
- package/dist/content-card/CardBottom.vue.d.ts +16 -0
- package/dist/content-card/CardBottom.vue.js +17 -0
- package/dist/content-card/CardContainer.vue.d.ts +26 -0
- package/dist/content-card/CardContainer.vue.js +59 -0
- package/dist/content-card/CardTop.vue.d.ts +36 -0
- package/dist/content-card/CardTop.vue.js +70 -0
- package/dist/dialog/Dialog.vue.d.ts +21 -0
- package/dist/dialog/Dialog.vue.js +23 -0
- package/dist/dialog/DialogClose.vue.d.ts +13 -0
- package/dist/dialog/DialogClose.vue.js +1 -0
- package/dist/dialog/DialogContent.vue.d.ts +36 -0
- package/dist/dialog/DialogContent.vue.js +1 -0
- package/dist/dialog/DialogDescription.vue.d.ts +18 -0
- package/dist/dialog/DialogDescription.vue.js +31 -0
- package/dist/dialog/DialogFooter.vue.d.ts +17 -0
- package/dist/dialog/DialogFooter.vue.js +22 -0
- package/dist/dialog/DialogHeader.vue.d.ts +17 -0
- package/dist/dialog/DialogHeader.vue.js +22 -0
- package/dist/dialog/DialogMaximize.vue.d.ts +10 -0
- package/dist/dialog/DialogMaximize.vue.js +25 -0
- package/dist/dialog/DialogOverlay.vue.d.ts +8 -0
- package/dist/dialog/DialogOverlay.vue.js +1 -0
- package/dist/dialog/DialogPanel.vue.d.ts +18 -0
- package/dist/dialog/DialogPanel.vue.js +53 -0
- package/dist/dialog/DialogPortal.vue.d.ts +14 -0
- package/dist/dialog/DialogPortal.vue.js +1 -0
- package/dist/dialog/DialogTitle.vue.d.ts +18 -0
- package/dist/dialog/DialogTitle.vue.js +1 -0
- package/dist/dialog/Dialogue.vue.d.ts +22 -0
- package/dist/dialog/Dialogue.vue.js +56 -0
- package/dist/dialog/dialog.variants.d.ts +16 -0
- package/dist/dialog/dialog.variants.js +38 -0
- package/dist/dialog/types.d.ts +6 -0
- package/dist/dialog/types.js +0 -0
- package/dist/field/Field.vue.d.ts +19 -0
- package/dist/field/Field.vue.js +39 -0
- package/dist/field/FieldDescription.vue.d.ts +17 -0
- package/dist/field/FieldDescription.vue.js +22 -0
- package/dist/field/FieldError.vue.d.ts +21 -0
- package/dist/field/FieldError.vue.js +37 -0
- package/dist/field/FieldGroup.vue.d.ts +17 -0
- package/dist/field/FieldGroup.vue.js +22 -0
- package/dist/field/FieldLabel.vue.d.ts +17 -0
- package/dist/field/FieldLabel.vue.js +26 -0
- package/dist/field/FieldSwitch.vue.d.ts +16 -0
- package/dist/field/FieldSwitch.vue.js +43 -0
- package/dist/field/LayoutField.vue.d.ts +18 -0
- package/dist/field/LayoutField.vue.js +1 -0
- package/dist/field/ModelInfoField.vue.d.ts +18 -0
- package/dist/field/ModelInfoField.vue.js +16 -0
- package/dist/field/field.variants.d.ts +11 -0
- package/dist/hover-card/HoverCard.vue.d.ts +18 -0
- package/dist/hover-card/HoverCard.vue.js +24 -0
- package/dist/hover-card/HoverCardContent.vue.d.ts +18 -0
- package/dist/hover-card/HoverCardContent.vue.js +66 -0
- package/dist/hover-card/HoverCardTrigger.vue.d.ts +14 -0
- package/dist/hover-card/HoverCardTrigger.vue.js +21 -0
- package/dist/icon/ComfyLogo.vue.d.ts +9 -0
- package/dist/icon/ComfyLogo.vue.js +31 -0
- package/dist/icon/PuzzleIcon.vue.d.ts +8 -0
- package/dist/icon/PuzzleIcon.vue.js +38 -0
- package/dist/icon/TinyChevronIcon.vue.d.ts +6 -0
- package/dist/icon/TinyChevronIcon.vue.js +29 -0
- package/dist/icon/VerifiedIcon.vue.d.ts +8 -0
- package/dist/icon/VerifiedIcon.vue.js +30 -0
- package/dist/input/Input.vue.d.ts +21 -0
- package/dist/input/Input.vue.js +1 -0
- package/dist/input/PasswordInput.vue.d.ts +18 -0
- package/dist/input/PasswordInput.vue.js +66 -0
- package/dist/input-group/InputGroup.vue.d.ts +17 -0
- package/dist/input-group/InputGroup.vue.js +1 -0
- package/dist/input-group/InputGroupAddon.vue.d.ts +19 -0
- package/dist/input-group/InputGroupAddon.vue.js +1 -0
- package/dist/input-group/InputGroupButton.vue.d.ts +21 -0
- package/dist/input-group/InputGroupButton.vue.js +1 -0
- package/dist/input-group/InputGroupInput.vue.d.ts +15 -0
- package/dist/input-group/InputGroupInput.vue.js +1 -0
- package/dist/input-group/inputGroup.variants.d.ts +21 -0
- package/dist/input-group/inputGroup.variants.js +21 -0
- package/dist/knob/Knob.vue.d.ts +19 -0
- package/dist/knob/Knob.vue.js +122 -0
- package/dist/label/Label.vue.d.ts +18 -0
- package/dist/label/Label.vue.js +1 -0
- package/dist/layout/BaseModalLayout.vue.d.ts +67 -0
- package/dist/layout/BaseModalLayout.vue.js +198 -0
- package/dist/media/AudioPreview.vue.d.ts +6 -0
- package/dist/media/AudioPreview.vue.js +26 -0
- package/dist/media/ImageLightbox.vue.d.ts +17 -0
- package/dist/media/ImageLightbox.vue.js +76 -0
- package/dist/media/MediaTitle.vue.d.ts +6 -0
- package/dist/media/MediaTitle.vue.js +17 -0
- package/dist/media/Video.vue.d.ts +28 -0
- package/dist/media/Video.vue.js +100 -0
- package/dist/media/VideoPlayOverlay.vue.d.ts +8 -0
- package/dist/media/VideoPlayOverlay.vue.js +26 -0
- package/dist/media/VideoPreview.vue.d.ts +7 -0
- package/dist/media/VideoPreview.vue.js +30 -0
- package/dist/media/ZoomPane.vue.d.ts +17 -0
- package/dist/media/ZoomPane.vue.js +60 -0
- package/dist/menu/ContextMenu.vue.d.ts +31 -0
- package/dist/menu/ContextMenu.vue.js +50 -0
- package/dist/menu/ContextMenuContent.vue.d.ts +32 -0
- package/dist/menu/ContextMenuContent.vue.js +1 -0
- package/dist/menu/Menu.vue.d.ts +41 -0
- package/dist/menu/Menu.vue.js +77 -0
- package/dist/menu/MenuAction.vue.d.ts +26 -0
- package/dist/menu/MenuAction.vue.js +1 -0
- package/dist/menu/MenuContent.vue.d.ts +35 -0
- package/dist/menu/MenuContent.vue.js +1 -0
- package/dist/menu/MenuItem.vue.d.ts +22 -0
- package/dist/menu/MenuItem.vue.js +33 -0
- package/dist/menu/MenuItemContent.vue.d.ts +8 -0
- package/dist/menu/MenuItemContent.vue.js +1 -0
- package/dist/menu/MenuItems.vue.d.ts +32 -0
- package/dist/menu/MenuItems.vue.js +1 -0
- package/dist/menu/MenuRadioGroup.vue.d.ts +26 -0
- package/dist/menu/MenuRadioGroup.vue.js +1 -0
- package/dist/menu/MenuRadioItem.vue.d.ts +22 -0
- package/dist/menu/MenuRadioItem.vue.js +1 -0
- package/dist/menu/MenuSeparator.vue.d.ts +8 -0
- package/dist/menu/MenuSeparator.vue.js +1 -0
- package/dist/menu/MenuSub.vue.d.ts +20 -0
- package/dist/menu/MenuSub.vue.js +1 -0
- package/dist/menu/MenuSubContent.vue.d.ts +36 -0
- package/dist/menu/MenuSubContent.vue.js +1 -0
- package/dist/menu/MenuSubTrigger.vue.d.ts +18 -0
- package/dist/menu/MenuSubTrigger.vue.js +1 -0
- package/dist/menu/MenuSubmenu.vue.d.ts +21 -0
- package/dist/menu/MenuSubmenu.vue.js +1 -0
- package/dist/menu/menuAnchor.d.ts +4 -0
- package/dist/menu/menuAnchor.js +14 -0
- package/dist/menu/menuStyles.d.ts +4 -0
- package/dist/menu/menuStyles.js +6 -0
- package/dist/menu/mouseDownUtil.d.ts +3 -0
- package/dist/menu/types.d.ts +69 -0
- package/dist/menu/types.js +0 -0
- package/dist/menu/usePointMenu.d.ts +19 -0
- package/dist/menu/usePointMenu.js +55 -0
- package/dist/message/Message.vue.d.ts +50 -0
- package/dist/message/Message.vue.js +73 -0
- package/dist/message/message.variants.d.ts +11 -0
- package/dist/message/message.variants.js +14 -0
- package/dist/multi-select/MultiSelect.vue.d.ts +170 -0
- package/dist/multi-select/MultiSelect.vue.js +135 -0
- package/dist/multi-select/MultiSelectContent.vue.d.ts +32 -0
- package/dist/multi-select/MultiSelectContent.vue.js +1 -0
- package/dist/multi-select/MultiSelectTrigger.vue.d.ts +24 -0
- package/dist/multi-select/MultiSelectTrigger.vue.js +1 -0
- package/dist/multi-select/types.d.ts +35 -0
- package/dist/multi-select/types.js +0 -0
- package/dist/navigation/LeftSidePanel.vue.d.ts +12 -0
- package/dist/navigation/LeftSidePanel.vue.js +82 -0
- package/dist/navigation/NavIcon.vue.d.ts +7 -0
- package/dist/navigation/NavIcon.vue.js +1 -0
- package/dist/navigation/NavItem.vue.d.ts +21 -0
- package/dist/navigation/NavItem.vue.js +1 -0
- package/dist/navigation/NavTitle.vue.d.ts +12 -0
- package/dist/navigation/NavTitle.vue.js +1 -0
- package/dist/navigation/SidebarTopArea.vue.d.ts +15 -0
- package/dist/navigation/SidebarTopArea.vue.js +15 -0
- package/dist/navigation/types.d.ts +13 -0
- package/dist/navigation/types.js +0 -0
- package/dist/number-field/NumberField.vue.d.ts +26 -0
- package/dist/number-field/NumberField.vue.js +73 -0
- package/dist/number-field/NumberFieldDecrement.vue.d.ts +18 -0
- package/dist/number-field/NumberFieldDecrement.vue.js +33 -0
- package/dist/number-field/NumberFieldIncrement.vue.d.ts +18 -0
- package/dist/number-field/NumberFieldIncrement.vue.js +33 -0
- package/dist/number-field/NumberFieldInput.vue.d.ts +7 -0
- package/dist/number-field/NumberFieldInput.vue.js +23 -0
- package/dist/number-field/PropertyNumberField.vue.d.ts +14 -0
- package/dist/number-field/PropertyNumberField.vue.js +54 -0
- package/dist/pagination/Pagination.vue.d.ts +22 -0
- package/dist/pagination/Pagination.vue.js +138 -0
- package/dist/popover/PopoverContent.vue.d.ts +33 -0
- package/dist/popover/PopoverContent.vue.js +1 -0
- package/dist/popover/usePopoverViewportDismiss.d.ts +2 -0
- package/dist/popover/usePopoverViewportDismiss.js +12 -0
- package/dist/radio-group/RadioGroup.vue.d.ts +22 -0
- package/dist/radio-group/RadioGroup.vue.js +43 -0
- package/dist/radio-group/RadioGroupItem.vue.d.ts +22 -0
- package/dist/radio-group/RadioGroupItem.vue.js +40 -0
- package/dist/search-input/AsyncSearchInput.vue.d.ts +27 -0
- package/dist/search-input/AsyncSearchInput.vue.js +102 -0
- package/dist/search-input/SearchAutocomplete.vue.d.ts +53 -0
- package/dist/search-input/SearchAutocomplete.vue.js +232 -0
- package/dist/search-input/SearchInput.vue.d.ts +46 -0
- package/dist/search-input/SearchInput.vue.js +125 -0
- package/dist/search-input/searchInput.variants.d.ts +45 -0
- package/dist/select/DropdownControl.vue.d.ts +16 -0
- package/dist/select/DropdownControl.vue.js +46 -0
- package/dist/select/Select.vue.d.ts +21 -0
- package/dist/select/Select.vue.js +1 -0
- package/dist/select/SelectContent.vue.d.ts +29 -0
- package/dist/select/SelectContent.vue.js +1 -0
- package/dist/select/SelectItem.vue.d.ts +22 -0
- package/dist/select/SelectItem.vue.js +1 -0
- package/dist/select/SelectScrollDownButton.vue.d.ts +18 -0
- package/dist/select/SelectScrollDownButton.vue.js +1 -0
- package/dist/select/SelectScrollUpButton.vue.d.ts +18 -0
- package/dist/select/SelectScrollUpButton.vue.js +1 -0
- package/dist/select/SelectTrigger.vue.d.ts +22 -0
- package/dist/select/SelectTrigger.vue.js +1 -0
- package/dist/select/SelectValue.vue.d.ts +14 -0
- package/dist/select/SelectValue.vue.js +1 -0
- package/dist/select/types.d.ts +4 -0
- package/dist/select/types.js +0 -0
- package/dist/select/useSelectSearch.d.ts +3 -0
- package/dist/select/useSelectSearch.js +14 -0
- package/dist/shared/Badge-DFHO3AFi.js +90 -0
- package/dist/shared/Button-Dj_H5v3V.js +138 -0
- package/dist/shared/Card-BrvqUM49.js +32 -0
- package/dist/shared/CardFooter-BV_I0pM-.js +19 -0
- package/dist/shared/CardHeader-CMutruBx.js +19 -0
- package/dist/shared/ColorPickerPanel-DQGHuvxk.js +239 -0
- package/dist/shared/ColorPickerSaturationValue-B5VDiMcl.js +64 -0
- package/dist/shared/ColorPickerSlider--mnQyzWD.js +305 -0
- package/dist/shared/ContextMenuContent-RNyBBJOX.js +62 -0
- package/dist/shared/DialogClose-CrtPRSNX.js +22 -0
- package/dist/shared/DialogContent-v2s55FXs.js +71 -0
- package/dist/shared/DialogOverlay-C9qv0zme.js +33 -0
- package/dist/shared/DialogPortal-DtCpLgtO.js +36 -0
- package/dist/shared/DialogTitle-Chomvpgq.js +41 -0
- package/dist/shared/Input-DOeNoniw.js +36 -0
- package/dist/shared/InputGroup-BYt6BWpk.js +23 -0
- package/dist/shared/InputGroupAddon-B1cn7czs.js +36 -0
- package/dist/shared/InputGroupButton-tw5AYOoR.js +39 -0
- package/dist/shared/InputGroupInput-C_kkIxvY.js +30 -0
- package/dist/shared/Label-kwhWNR2P.js +34 -0
- package/dist/shared/LayoutField-C8KCaVF0.js +34 -0
- package/dist/shared/MenuAction-0z8BSoX9.js +121 -0
- package/dist/shared/MenuContent--tKCqaIO.js +78 -0
- package/dist/shared/MenuItemContent-Be658c7e.js +67 -0
- package/dist/shared/MenuItems-BZTlERd6.js +67 -0
- package/dist/shared/MenuRadioGroup-B28YS1p1.js +63 -0
- package/dist/shared/MenuRadioItem-D8DFu-KU.js +34 -0
- package/dist/shared/MenuSeparator-DrAiObmE.js +26 -0
- package/dist/shared/MenuSub-DSizq_fV.js +21 -0
- package/dist/shared/MenuSubContent-ghzkX4hX.js +67 -0
- package/dist/shared/MenuSubTrigger-BGRIm_Bf.js +33 -0
- package/dist/shared/MenuSubmenu-CjPf8DXl.js +41 -0
- package/dist/shared/MultiSelectContent-9xyBQKz3.js +160 -0
- package/dist/shared/MultiSelectTrigger-DNySkpH9.js +50 -0
- package/dist/shared/NavIcon-FTJH75HH.js +12 -0
- package/dist/shared/NavItem-sQJ-77Zw.js +77 -0
- package/dist/shared/NavTitle-BM22yfCR.js +40 -0
- package/dist/shared/OverlayIcon-C-din824.js +43 -0
- package/dist/shared/PopoverContent-DNqL6t-O.js +89 -0
- package/dist/shared/SearchableSingleSelect-DQauLQWW.js +182 -0
- package/dist/shared/Select-DtVgv7Po.js +31 -0
- package/dist/shared/SelectContent-Ba1mCDWM.js +89 -0
- package/dist/shared/SelectItem-DaOr3TFS.js +55 -0
- package/dist/shared/SelectScrollDownButton-DYmxtida.js +28 -0
- package/dist/shared/SelectScrollUpButton-DiyvSb9O.js +28 -0
- package/dist/shared/SelectTrigger-BBicbVsI.js +45 -0
- package/dist/shared/SelectValue-BjaQc-WU.js +21 -0
- package/dist/shared/Switch-qavkHWMz.js +61 -0
- package/dist/shared/TableHead-DpsXVMzk.js +22 -0
- package/dist/shared/TagRemoveButton-D919R-To.js +36 -0
- package/dist/shared/TextTooltip-BNlZI515.js +27 -0
- package/dist/shared/Tooltip-4rCebVao.js +32 -0
- package/dist/shared/TooltipContent-0GR7hBNu.js +89 -0
- package/dist/shared/TooltipTrigger-64EIE5f2.js +63 -0
- package/dist/shared/TransitionCollapse-VfBzyj5a.js +108 -0
- package/dist/shared/_plugin-vue_export-helper-DjkACiAr.js +7 -0
- package/dist/shared/searchInput.variants-BdYHNjce.js +46 -0
- package/dist/shared/select.variants-cRXaATWS.js +39 -0
- package/dist/shared/src-DTwuqov4.js +11 -0
- package/dist/shared/tabKeys-CP6c3wTY.js +3 -0
- package/dist/shared/tabs.variants-Cgk7bRhG.js +22 -0
- package/dist/shared/tag.variants-BEXRRbPc.js +33 -0
- package/dist/shared/tagsInputContext-C-X1-iNf.js +4 -0
- package/dist/shared/toggleGroup.variants-BuwGELw0.js +38 -0
- package/dist/shared/tooltipContext-arEyjGQC.js +3 -0
- package/dist/single-select/SearchableSingleSelect.vue.d.ts +39 -0
- package/dist/single-select/SearchableSingleSelect.vue.js +1 -0
- package/dist/single-select/SingleSelect.vue.d.ts +38 -0
- package/dist/single-select/SingleSelect.vue.js +185 -0
- package/dist/single-select/types.d.ts +25 -0
- package/dist/single-select/types.js +0 -0
- package/dist/skeleton/Skeleton.vue.d.ts +7 -0
- package/dist/skeleton/Skeleton.vue.js +22 -0
- package/dist/slider/GradientSlider.vue.d.ts +20 -0
- package/dist/slider/GradientSlider.vue.js +100 -0
- package/dist/slider/Slider.vue.d.ts +16 -0
- package/dist/slider/Slider.vue.js +86 -0
- package/dist/slider/gradients.d.ts +6 -0
- package/dist/spinner/Spinner.vue.d.ts +7 -0
- package/dist/spinner/Spinner.vue.js +39 -0
- package/dist/splitter/SplitterGroup.vue.d.ts +23 -0
- package/dist/splitter/SplitterGroup.vue.js +38 -0
- package/dist/splitter/SplitterPanel.vue.d.ts +26 -0
- package/dist/splitter/SplitterPanel.vue.js +43 -0
- package/dist/splitter/SplitterResizeHandle.vue.d.ts +22 -0
- package/dist/splitter/SplitterResizeHandle.vue.js +35 -0
- package/dist/switch/Switch.vue.d.ts +17 -0
- package/dist/switch/Switch.vue.js +1 -0
- package/dist/tab/Tab.vue.d.ts +24 -0
- package/dist/tab/Tab.vue.js +73 -0
- package/dist/tab/TabList.vue.d.ts +26 -0
- package/dist/tab/TabList.vue.js +29 -0
- package/dist/tab/TabPanel.vue.d.ts +23 -0
- package/dist/tab/TabPanel.vue.js +26 -0
- package/dist/tab/tab.variants.d.ts +9 -0
- package/dist/tab/tabKeys.d.ts +7 -0
- package/dist/table/Table.vue.d.ts +17 -0
- package/dist/table/Table.vue.js +21 -0
- package/dist/table/TableBody.vue.d.ts +17 -0
- package/dist/table/TableBody.vue.js +19 -0
- package/dist/table/TableCell.vue.d.ts +17 -0
- package/dist/table/TableCell.vue.js +19 -0
- package/dist/table/TableHead.vue.d.ts +17 -0
- package/dist/table/TableHead.vue.js +1 -0
- package/dist/table/TableHeader.vue.d.ts +17 -0
- package/dist/table/TableHeader.vue.js +19 -0
- package/dist/table/TableRow.vue.d.ts +17 -0
- package/dist/table/TableRow.vue.js +19 -0
- package/dist/table/TableSortHead.vue.d.ts +26 -0
- package/dist/table/TableSortHead.vue.js +45 -0
- package/dist/table/tableUtils.d.ts +3 -0
- package/dist/table/tableUtils.js +18 -0
- package/dist/tabs/Tabs.vue.d.ts +22 -0
- package/dist/tabs/Tabs.vue.js +41 -0
- package/dist/tabs/TabsContent.vue.d.ts +18 -0
- package/dist/tabs/TabsContent.vue.js +35 -0
- package/dist/tabs/TabsList.vue.d.ts +20 -0
- package/dist/tabs/TabsList.vue.js +36 -0
- package/dist/tabs/TabsTrigger.vue.d.ts +20 -0
- package/dist/tabs/TabsTrigger.vue.js +37 -0
- package/dist/tabs/tabs.variants.d.ts +21 -0
- package/dist/tags-input/TagsInput.vue.d.ts +32 -0
- package/dist/tags-input/TagsInput.vue.js +96 -0
- package/dist/tags-input/TagsInputInput.vue.d.ts +9 -0
- package/dist/tags-input/TagsInputInput.vue.js +54 -0
- package/dist/tags-input/TagsInputItem.vue.d.ts +18 -0
- package/dist/tags-input/TagsInputItem.vue.js +32 -0
- package/dist/tags-input/TagsInputItemDelete.vue.d.ts +18 -0
- package/dist/tags-input/TagsInputItemDelete.vue.js +33 -0
- package/dist/tags-input/TagsInputItemText.vue.d.ts +8 -0
- package/dist/tags-input/TagsInputItemText.vue.js +26 -0
- package/dist/tags-input/tagsInputContext.d.ts +4 -0
- package/dist/textarea/Textarea.vue.d.ts +17 -0
- package/dist/textarea/Textarea.vue.js +31 -0
- package/dist/toast/ToastClose.vue.d.ts +8 -0
- package/dist/toast/ToastClose.vue.js +40 -0
- package/dist/toast/ToastDescription.vue.d.ts +18 -0
- package/dist/toast/ToastDescription.vue.js +29 -0
- package/dist/toast/ToastDock.vue.d.ts +13 -0
- package/dist/toast/ToastDock.vue.js +27 -0
- package/dist/toast/ToastPanel.vue.d.ts +30 -0
- package/dist/toast/ToastPanel.vue.js +45 -0
- package/dist/toast/ToastRoot.vue.d.ts +100 -0
- package/dist/toast/ToastRoot.vue.js +53 -0
- package/dist/toast/ToastTitle.vue.d.ts +18 -0
- package/dist/toast/ToastTitle.vue.js +29 -0
- package/dist/toast/ToastViewport.vue.d.ts +9 -0
- package/dist/toast/ToastViewport.vue.js +31 -0
- package/dist/toggle-group/ToggleGroup.vue.d.ts +25 -0
- package/dist/toggle-group/ToggleGroup.vue.js +59 -0
- package/dist/toggle-group/ToggleGroupItem.vue.d.ts +21 -0
- package/dist/toggle-group/ToggleGroupItem.vue.js +43 -0
- package/dist/toggle-group/toggleGroup.variants.d.ts +24 -0
- package/dist/tooltip/TextTooltip.vue.d.ts +20 -0
- package/dist/tooltip/TextTooltip.vue.js +1 -0
- package/dist/tooltip/Tooltip.vue.d.ts +23 -0
- package/dist/tooltip/Tooltip.vue.js +1 -0
- package/dist/tooltip/TooltipContent.vue.d.ts +24 -0
- package/dist/tooltip/TooltipContent.vue.js +1 -0
- package/dist/tooltip/TooltipProvider.vue.d.ts +15 -0
- package/dist/tooltip/TooltipProvider.vue.js +37 -0
- package/dist/tooltip/TooltipTrigger.vue.d.ts +14 -0
- package/dist/tooltip/TooltipTrigger.vue.js +1 -0
- package/dist/tooltip/tooltipConfig.d.ts +5 -0
- package/dist/tooltip/tooltipConfig.js +7 -0
- package/dist/tooltip/tooltipContext.d.ts +2 -0
- package/dist/transition/TransitionCollapse.vue.d.ts +21 -0
- package/dist/transition/TransitionCollapse.vue.js +1 -0
- package/dist/tree/Tree.vue.d.ts +32 -0
- package/dist/tree/Tree.vue.js +53 -0
- package/dist/tree/TreeItem.vue.d.ts +29 -0
- package/dist/tree/TreeItem.vue.js +80 -0
- package/dist/tree/treeStyles.d.ts +4 -0
- package/dist/tree/treeStyles.js +6 -0
- package/dist-types/button.variants.d.ts +16 -0
- package/dist-types/select.variants.d.ts +24 -0
- package/dist-types/tag.variants.d.ts +21 -0
- package/dist-types/workspaceAvatar.d.ts +5 -0
- package/package.json +186 -8
- package/src/button.variants.ts +84 -0
- package/src/css/_deprecated-aliases.css +12 -0
- package/src/css/_legacy-palette.css +33 -0
- package/src/css/_legacy-ui.css +418 -0
- package/src/css/_markdown.css +227 -0
- package/src/css/_mask-editor.css +179 -0
- package/src/css/_palette.css +40 -4
- package/src/css/base.css +0 -6
- package/src/css/component-support.css +69 -0
- package/src/css/iconSizing.test.ts +80 -0
- package/src/css/iconifyDynamicPlugin.ts +15 -6
- package/src/css/icons.test.ts +17 -0
- package/src/css/lucideStrokePlugin.js +5 -6
- package/src/css/published.css +3 -0
- package/src/css/style.css +5 -1909
- package/src/css/theme.css +243 -0
- package/src/css/themes/void.css +102 -0
- package/src/icons/README.md +61 -97
- package/src/icons/astroid-filled.svg +3 -0
- package/src/icons/claude.svg +1 -1
- package/src/select.variants.ts +53 -0
- package/src/tag.variants.ts +38 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
@layer theme, base, components, utilities;
|
|
2
|
+
|
|
3
|
+
@import './fonts.css';
|
|
4
|
+
@import './component-support.css';
|
|
5
|
+
@import './_deprecated-aliases.css';
|
|
6
|
+
@import './_legacy-palette.css';
|
|
7
|
+
@import 'tailwindcss/theme' layer(theme);
|
|
8
|
+
@import 'tailwindcss/utilities' layer(utilities);
|
|
9
|
+
|
|
10
|
+
@layer base {
|
|
11
|
+
*,
|
|
12
|
+
::before,
|
|
13
|
+
::after {
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
border-color: var(--border);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
button,
|
|
19
|
+
input,
|
|
20
|
+
select,
|
|
21
|
+
optgroup,
|
|
22
|
+
textarea,
|
|
23
|
+
::file-selector-button {
|
|
24
|
+
font: inherit;
|
|
25
|
+
font-feature-settings: inherit;
|
|
26
|
+
font-variation-settings: inherit;
|
|
27
|
+
letter-spacing: inherit;
|
|
28
|
+
color: inherit;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* Safelist dynamic comfy icons for node library folders */
|
|
33
|
+
@source inline("icon-[comfy--{ai-model,anthropic,bfl,bria,bytedance,claude,comfy-cloud,comfy-logo,credits,elevenlabs,extensions-blocks,file-output,gemini,grok,hitpaw,ideogram,image-ai-edit,kling,ltxv,luma,magnific,mask,meshy,minimax,moonvalley-marey,node,openai,pin,pixverse,play,recraft,reve,rodin,runway,sora,stability-ai,template,tencent,topaz,tripo,veo,vidu,wan,wavespeed,workflow,quiver}]");
|
|
34
|
+
|
|
35
|
+
/* Badge icon names are built at runtime, so the scanner cannot find them. */
|
|
36
|
+
@source inline("icon-mask-[comfy--{3d-decomp,ai-model,anthropic,batch-images-node,bfl,bria,brightness-contrast,bytedance,canny,canny-to-image,canny-to-video,channels,chromatic-aberration,claude,comfy-c,comfy-logo,credits,depth-to-image,depth-to-video,dial,elevenlabs,extensions-blocks,file-output,frames-to-video,gemini,get-video-components,glow,grain,grok,hitpaw,ideogram,image-ai-edit,image-batch,image-blur,image-canny,image-captioning,image-collage,image-compare,image-depth,image-edit,image-inpaint,image-invert,image-outpaint,image-outpainting,image-remove-background,image-rotate,image-select-object-segmentation,image-shader,image-sharpen,image-to-3d,image-to-image,image-to-layers,image-to-video,image-upscale,image-vectorize,kling,load-3d,load-audio,load-video,lora-loader,ltxv,luma,magnific,mask,meshy,minimax,moonvalley-marey,node,open-ai-chat-node,openai,pin,pixverse,play,pose-to-image,pose-to-video,quiver,recraft,reve,rodin,runway,save-3d,save-audio,save-video,send,sora,stability-ai,template,tencent,text-prompt-enhance,text-to-3d,text-to-audio,text-to-image,text-to-video,topaz,tripo,veo,video-captioning,video-edit,video-enhance,video-extract-frame,video-inpaint,video-interpolation,video-select-object-segmentation,video-slice,video-split-screen,video-trim,video-upscale,vidu,voice-clone,wan,wavespeed,workflow}]");
|
|
37
|
+
|
|
38
|
+
@theme {
|
|
39
|
+
--shadow-2xs: 0 1px 1px var(--shadow-color);
|
|
40
|
+
--shadow-xs: 0 1px 2px var(--shadow-color);
|
|
41
|
+
--shadow-sm: 0 1px 4px var(--shadow-color);
|
|
42
|
+
--shadow-md: 1px 1px 8px 0 var(--shadow-color);
|
|
43
|
+
--shadow-lg: 0 2px 16px 0 var(--shadow-color);
|
|
44
|
+
--shadow-xl: 0 8px 24px var(--shadow-color);
|
|
45
|
+
--shadow-2xl: 0 24px 80px var(--shadow-color);
|
|
46
|
+
--drop-shadow-xs: 0 1px 1px var(--shadow-color);
|
|
47
|
+
--drop-shadow-sm: 1px 1px 4px var(--shadow-color);
|
|
48
|
+
--drop-shadow-md: 1px 1px 8px var(--shadow-color);
|
|
49
|
+
--drop-shadow-lg: 0 9px 7px var(--shadow-color);
|
|
50
|
+
--shadow-inset-highlight: inset 0 1px 0 0 rgb(from white r g b / 0.1);
|
|
51
|
+
|
|
52
|
+
--color-bypass: #6a246a;
|
|
53
|
+
--color-success: var(--color-jade-600);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
:root {
|
|
57
|
+
color-scheme: dark;
|
|
58
|
+
|
|
59
|
+
--background: var(--color-charcoal-800);
|
|
60
|
+
--foreground: var(--color-white);
|
|
61
|
+
--card: var(--color-charcoal-600);
|
|
62
|
+
--node-foreground: var(--color-smoke-700);
|
|
63
|
+
--node-header: var(--color-charcoal-700);
|
|
64
|
+
--node-border: var(--color-charcoal-100);
|
|
65
|
+
--primary: var(--color-azure-600);
|
|
66
|
+
--secondary: var(--color-charcoal-600);
|
|
67
|
+
--muted: var(--color-charcoal-300);
|
|
68
|
+
--muted-foreground: var(--color-smoke-800);
|
|
69
|
+
--accent: var(--color-charcoal-400);
|
|
70
|
+
--destructive: var(--color-coral-700);
|
|
71
|
+
--border: var(--color-charcoal-200);
|
|
72
|
+
--ring: var(--muted-foreground);
|
|
73
|
+
--popover: var(--background);
|
|
74
|
+
--input: var(--accent);
|
|
75
|
+
--node: var(--card);
|
|
76
|
+
|
|
77
|
+
--default-transition-duration: 0.1s;
|
|
78
|
+
--comfy-topbar-height: 2.5rem;
|
|
79
|
+
--workflow-tabs-height: 2.375rem;
|
|
80
|
+
--comfy-textarea-font-size: 10px;
|
|
81
|
+
|
|
82
|
+
--warning: var(--color-gold-600);
|
|
83
|
+
--shadow-color: rgb(0 0 0 / 0.4);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@theme inline {
|
|
87
|
+
--color-background: var(--background);
|
|
88
|
+
--color-foreground: var(--foreground);
|
|
89
|
+
--color-card: var(--card);
|
|
90
|
+
--color-node: var(--node);
|
|
91
|
+
--color-node-foreground: var(--node-foreground);
|
|
92
|
+
--color-node-header: var(--node-header);
|
|
93
|
+
--color-node-border: var(--node-border);
|
|
94
|
+
--color-popover: var(--popover);
|
|
95
|
+
--color-primary: var(--primary);
|
|
96
|
+
--color-secondary: var(--secondary);
|
|
97
|
+
--color-muted: var(--muted);
|
|
98
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
99
|
+
--color-accent: var(--accent);
|
|
100
|
+
--color-destructive: var(--destructive);
|
|
101
|
+
--color-border: var(--border);
|
|
102
|
+
--color-input: var(--input);
|
|
103
|
+
--color-ring: var(--ring);
|
|
104
|
+
|
|
105
|
+
/* Semantic tokens */
|
|
106
|
+
--color-warning: var(--warning);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@utility floating-panel {
|
|
110
|
+
border-radius: var(--radius-xl);
|
|
111
|
+
padding: --spacing(1);
|
|
112
|
+
background-color: var(--background);
|
|
113
|
+
box-shadow: var(--shadow-inset-highlight), theme(boxShadow.lg);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* Everthing below here to be cleaned up over time. */
|
|
117
|
+
|
|
118
|
+
:root[data-palette-switching] * {
|
|
119
|
+
transition: none;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
body {
|
|
123
|
+
width: 100vw;
|
|
124
|
+
height: 100vh;
|
|
125
|
+
margin: 0;
|
|
126
|
+
overflow: hidden;
|
|
127
|
+
min-height: -webkit-fill-available;
|
|
128
|
+
max-height: -webkit-fill-available;
|
|
129
|
+
min-width: -webkit-fill-available;
|
|
130
|
+
max-width: -webkit-fill-available;
|
|
131
|
+
font-family: Inter, Arial, sans-serif;
|
|
132
|
+
background-color: var(--background);
|
|
133
|
+
color: var(--foreground);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.comfy-multiline-input {
|
|
137
|
+
background-color: var(--input);
|
|
138
|
+
color: var(--foreground);
|
|
139
|
+
overflow: hidden;
|
|
140
|
+
overflow-y: auto;
|
|
141
|
+
padding: 2px;
|
|
142
|
+
resize: none;
|
|
143
|
+
border: none;
|
|
144
|
+
box-sizing: border-box;
|
|
145
|
+
font-family: var(--font-mono);
|
|
146
|
+
font-size: var(--comfy-textarea-font-size);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
@import './_markdown.css';
|
|
150
|
+
|
|
151
|
+
@import './_legacy-ui.css';
|
|
152
|
+
|
|
153
|
+
audio.comfy-audio.empty-audio-widget {
|
|
154
|
+
display: none;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
#vue-app {
|
|
158
|
+
position: absolute;
|
|
159
|
+
top: 0;
|
|
160
|
+
left: 0;
|
|
161
|
+
width: 100%;
|
|
162
|
+
height: 100%;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/* [Desktop] Electron window specific styles */
|
|
166
|
+
.app-drag {
|
|
167
|
+
app-region: drag;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.no-drag {
|
|
171
|
+
app-region: no-drag;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.window-actions-spacer {
|
|
175
|
+
width: calc(100vw - env(titlebar-area-width, 100vw));
|
|
176
|
+
}
|
|
177
|
+
/* End of [Desktop] Electron window specific styles */
|
|
178
|
+
|
|
179
|
+
.lg-node {
|
|
180
|
+
/* Disable text selection on all nodes */
|
|
181
|
+
user-select: none;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.lg-node .lg-slot {
|
|
185
|
+
transition:
|
|
186
|
+
opacity 0.1s ease,
|
|
187
|
+
font-size 0.1s ease;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
@import './_mask-editor.css';
|
|
191
|
+
|
|
192
|
+
/* ===================== Skeleton Shimmer ===================== */
|
|
193
|
+
.skeleton-shimmer {
|
|
194
|
+
background:
|
|
195
|
+
linear-gradient(135deg, rgb(188 188 188 / 0.5) 0%, rgb(0 0 0 / 0.5) 100%) 0
|
|
196
|
+
0 / 200% 200%,
|
|
197
|
+
#000;
|
|
198
|
+
animation: skeleton-shimmer 2s ease-in-out infinite;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
@keyframes skeleton-shimmer {
|
|
202
|
+
0%,
|
|
203
|
+
100% {
|
|
204
|
+
background-position: 100% 100%;
|
|
205
|
+
}
|
|
206
|
+
50% {
|
|
207
|
+
background-position: 0 0;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
@utility scroll-shadows-* {
|
|
212
|
+
overflow: auto;
|
|
213
|
+
|
|
214
|
+
background:
|
|
215
|
+
/* Shadow Cover TOP */
|
|
216
|
+
linear-gradient(--value(--color-*) 30%, transparent) center top,
|
|
217
|
+
/* Shadow Cover BOTTOM */
|
|
218
|
+
linear-gradient(transparent, --value(--color-*) 70%) center bottom,
|
|
219
|
+
/* Shadow TOP */
|
|
220
|
+
radial-gradient(
|
|
221
|
+
farthest-side at 50% 0,
|
|
222
|
+
color-mix(in oklab, --value(--color-*), #777777 35%),
|
|
223
|
+
60%,
|
|
224
|
+
transparent
|
|
225
|
+
)
|
|
226
|
+
center top,
|
|
227
|
+
/* Shadow BOTTOM */
|
|
228
|
+
radial-gradient(
|
|
229
|
+
farthest-side at 50% 100%,
|
|
230
|
+
color-mix(in oklab, --value(--color-*), #777777 35%),
|
|
231
|
+
60%,
|
|
232
|
+
transparent
|
|
233
|
+
)
|
|
234
|
+
center bottom;
|
|
235
|
+
|
|
236
|
+
background-repeat: no-repeat;
|
|
237
|
+
background-size:
|
|
238
|
+
300% 40px,
|
|
239
|
+
300% 40px,
|
|
240
|
+
300% 14px,
|
|
241
|
+
300% 14px;
|
|
242
|
+
background-attachment: local, local, scroll, scroll;
|
|
243
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
@import '../component-support.css';
|
|
2
|
+
|
|
3
|
+
@source '../../../dist';
|
|
4
|
+
|
|
5
|
+
@theme static {
|
|
6
|
+
--font-inter: 'Inter', system-ui, sans-serif;
|
|
7
|
+
--font-sans: 'Inter', system-ui, sans-serif;
|
|
8
|
+
--font-display: 'PP Formula', 'Inter', system-ui, sans-serif;
|
|
9
|
+
|
|
10
|
+
--color-background: oklch(0.19 0.003 285);
|
|
11
|
+
--color-foreground: oklch(0.955 0.002 285);
|
|
12
|
+
--color-card: oklch(0.23 0.008 285);
|
|
13
|
+
--color-popover: oklch(0.23 0.008 285);
|
|
14
|
+
--color-primary: #0b8ce9;
|
|
15
|
+
--color-secondary: oklch(1 0 0 / 0.06);
|
|
16
|
+
--color-muted: oklch(1 0 0 / 0.06);
|
|
17
|
+
--color-muted-foreground: oklch(0.76 0.006 285);
|
|
18
|
+
--color-accent: oklch(1 0 0 / 0.1);
|
|
19
|
+
--color-input: oklch(1 0 0 / 0.06);
|
|
20
|
+
--color-border: oklch(1 0 0 / 0.08);
|
|
21
|
+
--color-ring: oklch(1 0 0 / 0.45);
|
|
22
|
+
--color-destructive: oklch(0.62 0.19 25);
|
|
23
|
+
--color-warning: oklch(0.82 0.14 85);
|
|
24
|
+
--color-success: oklch(0.78 0.15 155);
|
|
25
|
+
|
|
26
|
+
--color-content-background: oklch(0.14 0.005 285);
|
|
27
|
+
--color-card-hover: oklch(0.265 0.009 285);
|
|
28
|
+
--color-subtle-foreground: oklch(0.6 0.008 285);
|
|
29
|
+
--color-border-strong: oklch(1 0 0 / 0.14);
|
|
30
|
+
--color-media-overlay: oklch(0 0 0 / 0.55);
|
|
31
|
+
|
|
32
|
+
--text-ui: 13px;
|
|
33
|
+
--text-ui--line-height: 20px;
|
|
34
|
+
--text-heading: 16px;
|
|
35
|
+
--text-heading--line-height: 24px;
|
|
36
|
+
--text-title: 22px;
|
|
37
|
+
--text-title--line-height: 28px;
|
|
38
|
+
--text-display: 34px;
|
|
39
|
+
--text-display--line-height: 40px;
|
|
40
|
+
|
|
41
|
+
--radius-panel: 16px;
|
|
42
|
+
--radius-card: 12px;
|
|
43
|
+
--radius-control: 8px;
|
|
44
|
+
--radius-min: 4px;
|
|
45
|
+
|
|
46
|
+
--shadow-elev:
|
|
47
|
+
inset 0 1px 0 oklch(1 0 0 / 0.07), 0 1px 2px oklch(0 0 0 / 0.35),
|
|
48
|
+
0 6px 18px oklch(0 0 0 / 0.28);
|
|
49
|
+
--shadow-elev-hover:
|
|
50
|
+
inset 0 1px 0 oklch(1 0 0 / 0.09), 0 2px 4px oklch(0 0 0 / 0.35),
|
|
51
|
+
0 10px 26px oklch(0 0 0 / 0.34);
|
|
52
|
+
--shadow-popover:
|
|
53
|
+
inset 0 1px 0 oklch(1 0 0 / 0.07), 0 12px 32px oklch(0 0 0 / 0.45);
|
|
54
|
+
--shadow-highlight: inset 0 1px 0 oklch(1 0 0 / 0.06);
|
|
55
|
+
|
|
56
|
+
--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
|
|
57
|
+
--animate-pop-in: pop-in 160ms var(--ease-out-expo);
|
|
58
|
+
--animate-fade-in: fade-in 160ms ease-out;
|
|
59
|
+
--animate-status-pulse: status-pulse 2s ease-out infinite;
|
|
60
|
+
--animate-shimmer: shimmer 1.6s ease-in-out infinite;
|
|
61
|
+
|
|
62
|
+
@keyframes pop-in {
|
|
63
|
+
from {
|
|
64
|
+
opacity: 0;
|
|
65
|
+
transform: translateY(4px) scale(0.98);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
@keyframes fade-in {
|
|
69
|
+
from {
|
|
70
|
+
opacity: 0;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
@keyframes status-pulse {
|
|
74
|
+
0% {
|
|
75
|
+
box-shadow: 0 0 0 0 color-mix(in oklch, currentColor 55%, transparent);
|
|
76
|
+
}
|
|
77
|
+
70%,
|
|
78
|
+
100% {
|
|
79
|
+
box-shadow: 0 0 0 5px transparent;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
@keyframes shimmer {
|
|
83
|
+
from {
|
|
84
|
+
background-position: 150% 0;
|
|
85
|
+
}
|
|
86
|
+
to {
|
|
87
|
+
background-position: -50% 0;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
:root {
|
|
93
|
+
--muted: var(--color-muted);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@layer base {
|
|
97
|
+
*,
|
|
98
|
+
::before,
|
|
99
|
+
::after {
|
|
100
|
+
border-color: var(--color-border);
|
|
101
|
+
}
|
|
102
|
+
}
|
package/src/icons/README.md
CHANGED
|
@@ -1,66 +1,38 @@
|
|
|
1
1
|
# ComfyUI Icons Guide
|
|
2
2
|
|
|
3
|
-
ComfyUI supports
|
|
3
|
+
ComfyUI supports two types of icons: Lucide icons and custom icons. All icons are automatically imported - no manual imports needed!
|
|
4
4
|
|
|
5
5
|
## Quick Start - Code Examples
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Lucide is the only third-party icon set. Don't add icons from other sets such as Heroicons, Tabler, or Carbon. PrimeIcons and Material Design Icons (`mdi`) are being phased out; don't add new uses, in first-party code or extensions. See [PrimeIcons (deprecated)](#primeicons-deprecated).
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
<template>
|
|
11
|
-
<!-- Basic usage -->
|
|
12
|
-
<i class="pi pi-plus" />
|
|
13
|
-
<i class="pi pi-cog" />
|
|
14
|
-
<i class="pi pi-check text-green-500" />
|
|
15
|
-
|
|
16
|
-
<!-- In PrimeVue components -->
|
|
17
|
-
<button icon="pi pi-save" label="Save" />
|
|
18
|
-
<button icon="pi pi-times" severity="danger" />
|
|
19
|
-
</template>
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
[Browse all PrimeIcons →](https://primevue.org/icons/#list)
|
|
23
|
-
|
|
24
|
-
### 2. Iconify Icons (Recommended)
|
|
9
|
+
### 1. Lucide Icons
|
|
25
10
|
|
|
26
11
|
```vue
|
|
27
12
|
<template>
|
|
28
|
-
<!-- Primary icon set: Lucide -->
|
|
29
13
|
<i class="icon-[lucide--download]" />
|
|
30
14
|
<i class="icon-[lucide--settings]" />
|
|
31
|
-
<i class="icon-[lucide--workflow]
|
|
32
|
-
|
|
33
|
-
<!-- Other popular icon sets -->
|
|
34
|
-
<i-mdi:folder-open />
|
|
35
|
-
<!-- Material Design Icons -->
|
|
36
|
-
<i-heroicons:document-text />
|
|
37
|
-
<!-- Heroicons -->
|
|
38
|
-
<i-tabler:brand-github />
|
|
39
|
-
<!-- Tabler Icons -->
|
|
40
|
-
<i-carbon:cloud-upload />
|
|
41
|
-
<!-- Carbon Icons -->
|
|
15
|
+
<i class="icon-[lucide--workflow] size-6" />
|
|
42
16
|
|
|
43
17
|
<!-- With styling -->
|
|
44
|
-
<i class="icon-[lucide--save]
|
|
18
|
+
<i class="icon-[lucide--save] size-6 text-blue-500" />
|
|
45
19
|
</template>
|
|
46
20
|
```
|
|
47
21
|
|
|
48
|
-
[Browse
|
|
22
|
+
[Browse Lucide icons →](https://lucide.dev/icons/)
|
|
49
23
|
|
|
50
|
-
###
|
|
24
|
+
### 2. Custom Icons
|
|
51
25
|
|
|
52
26
|
```vue
|
|
53
27
|
<template>
|
|
54
28
|
<!-- Your custom SVG icons from packages/design-system/src/icons/ -->
|
|
55
29
|
<i-comfy:workflow />
|
|
56
30
|
<i-comfy:node-tree />
|
|
57
|
-
<i-comfy:my-custom-icon class="
|
|
31
|
+
<i-comfy:my-custom-icon class="size-5" />
|
|
58
32
|
|
|
59
|
-
<!-- In
|
|
60
|
-
<Button
|
|
61
|
-
<
|
|
62
|
-
<i-comfy:workflow />
|
|
63
|
-
</template>
|
|
33
|
+
<!-- In a design-system Button -->
|
|
34
|
+
<Button variant="secondary">
|
|
35
|
+
<i-comfy:workflow />
|
|
64
36
|
</Button>
|
|
65
37
|
</template>
|
|
66
38
|
```
|
|
@@ -71,14 +43,8 @@ ComfyUI supports three types of icons that can be used throughout the interface.
|
|
|
71
43
|
|
|
72
44
|
```vue
|
|
73
45
|
<template>
|
|
74
|
-
<!-- PrimeIcon in button (simple) -->
|
|
75
|
-
<Button icon="pi pi-check" label="Confirm" />
|
|
76
|
-
|
|
77
|
-
<!-- Iconify/Custom in button (template) -->
|
|
78
46
|
<Button>
|
|
79
|
-
<
|
|
80
|
-
<i class="icon-[lucide--save]" />
|
|
81
|
-
</template>
|
|
47
|
+
<i class="icon-[lucide--save]" />
|
|
82
48
|
Save File
|
|
83
49
|
</Button>
|
|
84
50
|
</template>
|
|
@@ -98,32 +64,27 @@ ComfyUI supports three types of icons that can be used throughout the interface.
|
|
|
98
64
|
|
|
99
65
|
### With Tooltips
|
|
100
66
|
|
|
67
|
+
Put the icon in a `Button` and give the button the tooltip, so keyboard users
|
|
68
|
+
can reach it. See `packages/design-system/src/components/tooltip/README.md` for other triggers.
|
|
69
|
+
|
|
101
70
|
```vue
|
|
102
71
|
<template>
|
|
103
|
-
<
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
72
|
+
<Button
|
|
73
|
+
variant="muted-textonly"
|
|
74
|
+
size="icon"
|
|
75
|
+
:tooltip="$t('g.learnMore')"
|
|
76
|
+
:aria-label="$t('g.learnMore')"
|
|
77
|
+
>
|
|
78
|
+
<i class="icon-[lucide--info]" />
|
|
79
|
+
</Button>
|
|
108
80
|
</template>
|
|
109
81
|
```
|
|
110
82
|
|
|
111
|
-
##
|
|
112
|
-
|
|
113
|
-
### Finding Icons
|
|
114
|
-
|
|
115
|
-
1. Visit [Iconify Icon Sets](https://icon-sets.iconify.design/)
|
|
116
|
-
2. Search or browse collections
|
|
117
|
-
3. Click on any icon to get its name
|
|
118
|
-
4. Use with `i-[collection]:[icon-name]` format
|
|
119
|
-
|
|
120
|
-
### Popular Collections
|
|
83
|
+
## Finding Lucide Icons
|
|
121
84
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
- **Tabler** (`i-tabler:`) - 3000+ free SVG icons
|
|
126
|
-
- **Carbon** (`i-carbon:`) - IBM's design system icons
|
|
85
|
+
1. Search [Lucide Icons](https://lucide.dev/icons/)
|
|
86
|
+
2. Copy the icon's name, such as `folder-open`
|
|
87
|
+
3. Use it as `icon-[lucide--folder-open]`
|
|
127
88
|
|
|
128
89
|
## Adding Custom Icons
|
|
129
90
|
|
|
@@ -201,23 +162,20 @@ claude.svg fill="#d97757" -> image (brand color preserved)
|
|
|
201
162
|
|
|
202
163
|
### Size & Styling
|
|
203
164
|
|
|
165
|
+
`icon-[...]`, `icon-img-[...]`, and `icon-mask-[...]` default to `size-4` (16px). Font size has no effect on them, so don't size them with `text-*`. Override the size with `size-*` on the `<i>` itself:
|
|
166
|
+
|
|
204
167
|
```vue
|
|
205
168
|
<template>
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
<!-- 32px -->
|
|
213
|
-
|
|
214
|
-
<!-- Or text size -->
|
|
215
|
-
<i class="icon-[lucide--plus]" class="text-sm" />
|
|
216
|
-
<i class="icon-[lucide--plus]" class="text-2xl" />
|
|
169
|
+
<i class="icon-[lucide--plus]" />
|
|
170
|
+
<!-- 16px (default) -->
|
|
171
|
+
<i class="icon-[lucide--plus] size-3" />
|
|
172
|
+
<!-- 12px -->
|
|
173
|
+
<i class="icon-[lucide--plus] size-6" />
|
|
174
|
+
<!-- 24px -->
|
|
217
175
|
|
|
218
176
|
<!-- Colors -->
|
|
219
|
-
<i class="icon-[lucide--check]
|
|
220
|
-
<i class="icon-[lucide--x]
|
|
177
|
+
<i class="icon-[lucide--check] text-green-500" />
|
|
178
|
+
<i class="icon-[lucide--x] text-red-500" />
|
|
221
179
|
</template>
|
|
222
180
|
```
|
|
223
181
|
|
|
@@ -244,17 +202,31 @@ Always use `currentColor` in SVGs for automatic theme adaptation:
|
|
|
244
202
|
```vue
|
|
245
203
|
<template>
|
|
246
204
|
<!-- Before -->
|
|
247
|
-
<Button
|
|
205
|
+
<Button size="icon">
|
|
206
|
+
<i class="pi pi-download" />
|
|
207
|
+
</Button>
|
|
248
208
|
|
|
249
209
|
<!-- After -->
|
|
250
|
-
<Button>
|
|
251
|
-
<
|
|
252
|
-
<i class="icon-[lucide--download]" />
|
|
253
|
-
</template>
|
|
210
|
+
<Button size="icon">
|
|
211
|
+
<i class="icon-[lucide--download]" />
|
|
254
212
|
</Button>
|
|
255
213
|
</template>
|
|
256
214
|
```
|
|
257
215
|
|
|
216
|
+
A `pi` glyph sized with a `text-*` class becomes an explicit `size-*` class. Pick the size by eye rather than converting the font size, because Lucide glyphs fill their viewBox differently from PrimeIcons:
|
|
217
|
+
|
|
218
|
+
```vue
|
|
219
|
+
<template>
|
|
220
|
+
<!-- Before -->
|
|
221
|
+
<i class="pi pi-folder text-lg" />
|
|
222
|
+
|
|
223
|
+
<!-- After -->
|
|
224
|
+
<i class="icon-[lucide--folder] size-5" />
|
|
225
|
+
</template>
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Use `scale-*` only when a wrapper hardcodes the icon's size, such as `SidebarIcon`, which sets `size-5` on the `<i>` it renders from an icon class string.
|
|
229
|
+
|
|
258
230
|
### From Inline SVG to Custom Icon
|
|
259
231
|
|
|
260
232
|
```vue
|
|
@@ -269,6 +241,10 @@ Always use `currentColor` in SVGs for automatic theme adaptation:
|
|
|
269
241
|
</template>
|
|
270
242
|
```
|
|
271
243
|
|
|
244
|
+
## PrimeIcons (deprecated)
|
|
245
|
+
|
|
246
|
+
`primeicons` is still imported in `src/main.ts` only so existing extensions that render `pi pi-*` classes keep working while it is phased out. Don't use PrimeIcons in new code, including extensions.
|
|
247
|
+
|
|
272
248
|
## Technical Details
|
|
273
249
|
|
|
274
250
|
### Auto-Import System
|
|
@@ -280,7 +256,7 @@ Icons are automatically imported using `unplugin-icons` - no manual imports need
|
|
|
280
256
|
The icon system has two layers:
|
|
281
257
|
|
|
282
258
|
1. **Tailwind CSS Plugin** (`@iconify/tailwind4`):
|
|
283
|
-
- Configured via `@plugin` directive in `packages/design-system/src/css/
|
|
259
|
+
- Configured via `@plugin` directive in `packages/design-system/src/css/theme.css`
|
|
284
260
|
- Uses `from-folder(comfy, ...)` to load SVGs from `packages/design-system/src/icons/`
|
|
285
261
|
- Auto-cleans and optimizes SVGs at build time
|
|
286
262
|
|
|
@@ -345,19 +321,7 @@ Icons are fully typed. If TypeScript doesn't recognize a new custom icon:
|
|
|
345
321
|
4. **Theme support**: Always use `currentColor` for adaptable icons
|
|
346
322
|
5. **Test both themes**: Verify icons look good in light and dark modes
|
|
347
323
|
|
|
348
|
-
## Adding Icon Collections
|
|
349
|
-
|
|
350
|
-
To add an entire icon set from npm:
|
|
351
|
-
|
|
352
|
-
1. Install the icon package
|
|
353
|
-
2. Configure in `vite.config.mts`
|
|
354
|
-
3. Use with the appropriate prefix
|
|
355
|
-
|
|
356
|
-
See the [unplugin-icons documentation](https://github.com/unplugin/unplugin-icons) for details.
|
|
357
|
-
|
|
358
324
|
## Resources
|
|
359
325
|
|
|
360
|
-
- [PrimeIcons List](https://primevue.org/icons/#list)
|
|
361
|
-
- [Iconify Icon Browser](https://icon-sets.iconify.design/)
|
|
362
326
|
- [Lucide Icons](https://lucide.dev/icons/)
|
|
363
327
|
- [unplugin-icons docs](https://github.com/unplugin/unplugin-icons)
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M12.983 21.186a1 1 0 0 1-1.966 0a10 10 0 0 0-8.203-8.203a1 1 0 0 1 0-1.966a10 10 0 0 0 8.203-8.203a1 1 0 0 1 1.966 0a10 10 0 0 0 8.203 8.203a1 1 0 0 1 0 1.966a10 10 0 0 0-8.203 8.203Z" fill="currentColor"/>
|
|
3
|
+
</svg>
|
package/src/icons/claude.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg height="1em" style="
|
|
1
|
+
<svg height="1em" style="line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Claude</title><path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z" fill="#D97757" fill-rule="nonzero"></path></svg>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { cva } from 'cva'
|
|
2
|
+
|
|
3
|
+
export const selectTriggerVariants = cva({
|
|
4
|
+
base: 'relative inline-flex cursor-pointer items-center rounded-lg border-[2.5px] border-solid bg-secondary text-foreground transition-all duration-200 ease-in-out outline-none select-none hover:bg-accent disabled:cursor-default disabled:opacity-30 disabled:hover:bg-secondary',
|
|
5
|
+
variants: {
|
|
6
|
+
size: {
|
|
7
|
+
md: 'h-8',
|
|
8
|
+
lg: 'h-10'
|
|
9
|
+
},
|
|
10
|
+
border: {
|
|
11
|
+
none: 'border-transparent focus-visible:border-border data-[state=open]:border-border',
|
|
12
|
+
active: 'border-foreground',
|
|
13
|
+
invalid: 'border-destructive'
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
size: 'lg',
|
|
18
|
+
border: 'none'
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
export const selectItemVariants = cva({
|
|
23
|
+
base: 'flex cursor-pointer items-center px-2 outline-none hover:bg-accent',
|
|
24
|
+
variants: {
|
|
25
|
+
layout: {
|
|
26
|
+
multi:
|
|
27
|
+
'h-10 shrink-0 gap-2 rounded-lg data-highlighted:bg-muted data-highlighted:hover:bg-muted',
|
|
28
|
+
single:
|
|
29
|
+
'relative w-full justify-between gap-3 rounded-sm py-3 text-sm select-none focus:bg-accent data-[state=checked]:bg-muted data-[state=checked]:hover:bg-muted'
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
defaultVariants: {
|
|
33
|
+
layout: 'multi'
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
export const selectContentClass =
|
|
38
|
+
'z-overlay overflow-hidden rounded-lg p-2 bg-background text-foreground border border-solid shadow-md data-[state=closed]:animate-out data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2'
|
|
39
|
+
|
|
40
|
+
export const selectDropdownClass =
|
|
41
|
+
'flex shrink-0 cursor-pointer items-center justify-center pl-3 [&_i]:size-5'
|
|
42
|
+
|
|
43
|
+
export const selectEmptyMessageClass = 'px-3 pb-4 text-sm text-muted-foreground'
|
|
44
|
+
|
|
45
|
+
export const selectCountBadgeClass =
|
|
46
|
+
'flex size-3.5 items-center justify-center rounded-full bg-foreground text-[9px] font-semibold text-background'
|
|
47
|
+
|
|
48
|
+
export function stopEscapeToDocument(event: KeyboardEvent) {
|
|
49
|
+
if (event.key === 'Escape') {
|
|
50
|
+
event.stopPropagation()
|
|
51
|
+
event.stopImmediatePropagation()
|
|
52
|
+
}
|
|
53
|
+
}
|