@comfyorg/design-system 1.0.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (446) hide show
  1. package/README.md +89 -9
  2. package/dist/badge/Badge.vue.d.ts +49 -0
  3. package/dist/badge/Badge.vue.js +2 -0
  4. package/dist/badge/CreditBadge.vue.d.ts +7 -0
  5. package/dist/badge/CreditBadge.vue.js +35 -0
  6. package/dist/badge/badge.variants.d.ts +12 -0
  7. package/dist/button/Button.vue.d.ts +31 -0
  8. package/dist/button/Button.vue.js +2 -0
  9. package/dist/button-group/ButtonGroup.vue.d.ts +18 -0
  10. package/dist/button-group/ButtonGroup.vue.js +37 -0
  11. package/dist/button-group/IconGroup.vue.d.ts +16 -0
  12. package/dist/button-group/IconGroup.vue.js +15 -0
  13. package/dist/card/Card.vue.d.ts +19 -0
  14. package/dist/card/Card.vue.js +2 -0
  15. package/dist/card/CardFooter.vue.d.ts +17 -0
  16. package/dist/card/CardFooter.vue.js +2 -0
  17. package/dist/card/CardHeader.vue.d.ts +17 -0
  18. package/dist/card/CardHeader.vue.js +2 -0
  19. package/dist/card/CoachmarkCard.vue.d.ts +24 -0
  20. package/dist/card/CoachmarkCard.vue.js +57 -0
  21. package/dist/card/card.variants.d.ts +11 -0
  22. package/dist/chart/Chart.vue.d.ts +12 -0
  23. package/dist/chart/Chart.vue.js +180 -0
  24. package/dist/chart/useChart.d.ts +4 -0
  25. package/dist/checkbox/Checkbox.vue.d.ts +25 -0
  26. package/dist/checkbox/Checkbox.vue.js +49 -0
  27. package/dist/chip/TagRemoveButton.vue.d.ts +18 -0
  28. package/dist/chip/TagRemoveButton.vue.js +2 -0
  29. package/dist/common/CanvasBanner.vue.d.ts +23 -0
  30. package/dist/common/CanvasBanner.vue.js +23 -0
  31. package/dist/common/ContentDivider.vue.d.ts +7 -0
  32. package/dist/common/ContentDivider.vue.js +22 -0
  33. package/dist/common/CustomFormValue.vue.d.ts +6 -0
  34. package/dist/common/CustomFormValue.vue.js +28 -0
  35. package/dist/common/DotSpinner.vue.d.ts +7 -0
  36. package/dist/common/DotSpinner.vue.js +34 -0
  37. package/dist/common/EditableText.vue.d.ts +16 -0
  38. package/dist/common/EditableText.vue.js +73 -0
  39. package/dist/common/LoadingOverlay.vue.d.ts +18 -0
  40. package/dist/common/LoadingOverlay.vue.js +41 -0
  41. package/dist/common/MarkdownText.vue.d.ts +6 -0
  42. package/dist/common/MarkdownText.vue.js +93 -0
  43. package/dist/common/MarqueeLine.vue.d.ts +13 -0
  44. package/dist/common/MarqueeLine.vue.js +12 -0
  45. package/dist/common/OverlayIcon.vue.d.ts +13 -0
  46. package/dist/common/OverlayIcon.vue.js +2 -0
  47. package/dist/common/SanitizedHtml.vue.d.ts +8 -0
  48. package/dist/common/SanitizedHtml.vue.js +60 -0
  49. package/dist/common/TextDivider.vue.d.ts +8 -0
  50. package/dist/common/TextDivider.vue.js +36 -0
  51. package/dist/common/TextTicker.vue.d.ts +17 -0
  52. package/dist/common/TextTicker.vue.js +53 -0
  53. package/dist/common/TextTickerMultiLine.vue.d.ts +6 -0
  54. package/dist/common/TextTickerMultiLine.vue.js +54 -0
  55. package/dist/common/VerticalDivider.vue.d.ts +3 -0
  56. package/dist/common/VerticalDivider.vue.js +15 -0
  57. package/dist/common/VideoCompareSlider.vue.d.ts +24 -0
  58. package/dist/common/VideoCompareSlider.vue.js +141 -0
  59. package/dist/common/ViewportWidgetShell.vue.d.ts +27 -0
  60. package/dist/common/ViewportWidgetShell.vue.js +58 -0
  61. package/dist/common/VirtualGrid.vue.d.ts +38 -0
  62. package/dist/common/VirtualGrid.vue.js +107 -0
  63. package/dist/common/textTickerUtils.d.ts +1 -0
  64. package/dist/components.css +44 -0
  65. package/dist/composables/useAttrsClass.d.ts +12 -0
  66. package/dist/composables/useAttrsClass.js +18 -0
  67. package/dist/composables/usePopoverSizing.d.ts +12 -0
  68. package/dist/composables/usePopoverSizing.js +18 -0
  69. package/dist/confirm/ConfirmBody.vue.d.ts +8 -0
  70. package/dist/confirm/ConfirmBody.vue.js +27 -0
  71. package/dist/confirm/ConfirmHeader.vue.d.ts +7 -0
  72. package/dist/confirm/ConfirmHeader.vue.js +27 -0
  73. package/dist/content-card/CardBottom.vue.d.ts +16 -0
  74. package/dist/content-card/CardBottom.vue.js +19 -0
  75. package/dist/content-card/CardContainer.vue.d.ts +26 -0
  76. package/dist/content-card/CardContainer.vue.js +61 -0
  77. package/dist/content-card/CardTop.vue.d.ts +36 -0
  78. package/dist/content-card/CardTop.vue.js +72 -0
  79. package/dist/dialog/Dialog.vue.d.ts +21 -0
  80. package/dist/dialog/Dialog.vue.js +25 -0
  81. package/dist/dialog/DialogClose.vue.d.ts +13 -0
  82. package/dist/dialog/DialogClose.vue.js +24 -0
  83. package/dist/dialog/DialogContent.vue.d.ts +36 -0
  84. package/dist/dialog/DialogContent.vue.js +73 -0
  85. package/dist/dialog/DialogDescription.vue.d.ts +18 -0
  86. package/dist/dialog/DialogDescription.vue.js +33 -0
  87. package/dist/dialog/DialogFooter.vue.d.ts +17 -0
  88. package/dist/dialog/DialogFooter.vue.js +24 -0
  89. package/dist/dialog/DialogHeader.vue.d.ts +17 -0
  90. package/dist/dialog/DialogHeader.vue.js +24 -0
  91. package/dist/dialog/DialogMaximize.vue.d.ts +10 -0
  92. package/dist/dialog/DialogMaximize.vue.js +27 -0
  93. package/dist/dialog/DialogOverlay.vue.d.ts +8 -0
  94. package/dist/dialog/DialogOverlay.vue.js +35 -0
  95. package/dist/dialog/DialogPanel.vue.d.ts +18 -0
  96. package/dist/dialog/DialogPanel.vue.js +55 -0
  97. package/dist/dialog/DialogPortal.vue.d.ts +14 -0
  98. package/dist/dialog/DialogPortal.vue.js +38 -0
  99. package/dist/dialog/DialogTitle.vue.d.ts +18 -0
  100. package/dist/dialog/DialogTitle.vue.js +2 -0
  101. package/dist/dialog/dialog.variants.d.ts +16 -0
  102. package/dist/dialog/dialog.variants.js +39 -0
  103. package/dist/dialog/types.d.ts +6 -0
  104. package/dist/dialog/types.js +0 -0
  105. package/dist/field/Field.vue.d.ts +19 -0
  106. package/dist/field/Field.vue.js +42 -0
  107. package/dist/field/FieldDescription.vue.d.ts +17 -0
  108. package/dist/field/FieldDescription.vue.js +24 -0
  109. package/dist/field/FieldError.vue.d.ts +21 -0
  110. package/dist/field/FieldError.vue.js +39 -0
  111. package/dist/field/FieldGroup.vue.d.ts +17 -0
  112. package/dist/field/FieldGroup.vue.js +24 -0
  113. package/dist/field/FieldLabel.vue.d.ts +17 -0
  114. package/dist/field/FieldLabel.vue.js +28 -0
  115. package/dist/field/ModelInfoField.vue.d.ts +18 -0
  116. package/dist/field/ModelInfoField.vue.js +18 -0
  117. package/dist/field/field.variants.d.ts +11 -0
  118. package/dist/hover-card/HoverCard.vue.d.ts +18 -0
  119. package/dist/hover-card/HoverCard.vue.js +26 -0
  120. package/dist/hover-card/HoverCardContent.vue.d.ts +18 -0
  121. package/dist/hover-card/HoverCardContent.vue.js +68 -0
  122. package/dist/hover-card/HoverCardTrigger.vue.d.ts +14 -0
  123. package/dist/hover-card/HoverCardTrigger.vue.js +23 -0
  124. package/dist/icon/ComfyLogo.vue.d.ts +9 -0
  125. package/dist/icon/ComfyLogo.vue.js +33 -0
  126. package/dist/icon/PuzzleIcon.vue.d.ts +8 -0
  127. package/dist/icon/PuzzleIcon.vue.js +40 -0
  128. package/dist/icon/TinyChevronIcon.vue.d.ts +6 -0
  129. package/dist/icon/TinyChevronIcon.vue.js +31 -0
  130. package/dist/icon/VerifiedIcon.vue.d.ts +8 -0
  131. package/dist/icon/VerifiedIcon.vue.js +32 -0
  132. package/dist/input/Input.vue.d.ts +21 -0
  133. package/dist/input/Input.vue.js +2 -0
  134. package/dist/input/PasswordInput.vue.d.ts +18 -0
  135. package/dist/input/PasswordInput.vue.js +68 -0
  136. package/dist/input-group/InputGroup.vue.d.ts +17 -0
  137. package/dist/input-group/InputGroup.vue.js +2 -0
  138. package/dist/input-group/InputGroupAddon.vue.d.ts +19 -0
  139. package/dist/input-group/InputGroupAddon.vue.js +2 -0
  140. package/dist/input-group/InputGroupButton.vue.d.ts +21 -0
  141. package/dist/input-group/InputGroupButton.vue.js +2 -0
  142. package/dist/input-group/InputGroupInput.vue.d.ts +15 -0
  143. package/dist/input-group/InputGroupInput.vue.js +2 -0
  144. package/dist/input-group/inputGroup.variants.d.ts +21 -0
  145. package/dist/input-group/inputGroup.variants.js +22 -0
  146. package/dist/knob/Knob.vue.d.ts +19 -0
  147. package/dist/knob/Knob.vue.js +124 -0
  148. package/dist/label/Label.vue.d.ts +18 -0
  149. package/dist/label/Label.vue.js +2 -0
  150. package/dist/media/AudioPreview.vue.d.ts +6 -0
  151. package/dist/media/AudioPreview.vue.js +28 -0
  152. package/dist/media/MediaTitle.vue.d.ts +6 -0
  153. package/dist/media/MediaTitle.vue.js +19 -0
  154. package/dist/media/VideoPlayOverlay.vue.d.ts +8 -0
  155. package/dist/media/VideoPlayOverlay.vue.js +28 -0
  156. package/dist/media/VideoPreview.vue.d.ts +7 -0
  157. package/dist/media/VideoPreview.vue.js +32 -0
  158. package/dist/media/ZoomPane.vue.d.ts +17 -0
  159. package/dist/media/ZoomPane.vue.js +62 -0
  160. package/dist/menu/ContextMenu.vue.d.ts +31 -0
  161. package/dist/menu/ContextMenu.vue.js +52 -0
  162. package/dist/menu/ContextMenuContent.vue.d.ts +32 -0
  163. package/dist/menu/ContextMenuContent.vue.js +2 -0
  164. package/dist/menu/Menu.vue.d.ts +41 -0
  165. package/dist/menu/Menu.vue.js +79 -0
  166. package/dist/menu/MenuAction.vue.d.ts +26 -0
  167. package/dist/menu/MenuAction.vue.js +2 -0
  168. package/dist/menu/MenuContent.vue.d.ts +35 -0
  169. package/dist/menu/MenuContent.vue.js +2 -0
  170. package/dist/menu/MenuItem.vue.d.ts +22 -0
  171. package/dist/menu/MenuItem.vue.js +35 -0
  172. package/dist/menu/MenuItemContent.vue.d.ts +8 -0
  173. package/dist/menu/MenuItemContent.vue.js +2 -0
  174. package/dist/menu/MenuItems.vue.d.ts +32 -0
  175. package/dist/menu/MenuItems.vue.js +2 -0
  176. package/dist/menu/MenuRadioGroup.vue.d.ts +26 -0
  177. package/dist/menu/MenuRadioGroup.vue.js +2 -0
  178. package/dist/menu/MenuRadioItem.vue.d.ts +22 -0
  179. package/dist/menu/MenuRadioItem.vue.js +2 -0
  180. package/dist/menu/MenuSeparator.vue.d.ts +8 -0
  181. package/dist/menu/MenuSeparator.vue.js +2 -0
  182. package/dist/menu/MenuSub.vue.d.ts +20 -0
  183. package/dist/menu/MenuSub.vue.js +2 -0
  184. package/dist/menu/MenuSubContent.vue.d.ts +36 -0
  185. package/dist/menu/MenuSubContent.vue.js +2 -0
  186. package/dist/menu/MenuSubTrigger.vue.d.ts +18 -0
  187. package/dist/menu/MenuSubTrigger.vue.js +2 -0
  188. package/dist/menu/MenuSubmenu.vue.d.ts +21 -0
  189. package/dist/menu/MenuSubmenu.vue.js +2 -0
  190. package/dist/menu/menuAnchor.d.ts +4 -0
  191. package/dist/menu/menuAnchor.js +15 -0
  192. package/dist/menu/menuStyles.d.ts +4 -0
  193. package/dist/menu/menuStyles.js +7 -0
  194. package/dist/menu/mouseDownUtil.d.ts +3 -0
  195. package/dist/menu/types.d.ts +69 -0
  196. package/dist/menu/types.js +0 -0
  197. package/dist/menu/usePointMenu.d.ts +19 -0
  198. package/dist/menu/usePointMenu.js +56 -0
  199. package/dist/message/Message.vue.d.ts +50 -0
  200. package/dist/message/Message.vue.js +75 -0
  201. package/dist/message/message.variants.d.ts +11 -0
  202. package/dist/message/message.variants.js +15 -0
  203. package/dist/multi-select/MultiSelect.vue.d.ts +170 -0
  204. package/dist/multi-select/MultiSelect.vue.js +137 -0
  205. package/dist/multi-select/MultiSelectContent.vue.d.ts +32 -0
  206. package/dist/multi-select/MultiSelectContent.vue.js +2 -0
  207. package/dist/multi-select/MultiSelectTrigger.vue.d.ts +24 -0
  208. package/dist/multi-select/MultiSelectTrigger.vue.js +2 -0
  209. package/dist/multi-select/types.d.ts +35 -0
  210. package/dist/multi-select/types.js +0 -0
  211. package/dist/navigation/NavTitle.vue.d.ts +12 -0
  212. package/dist/navigation/NavTitle.vue.js +42 -0
  213. package/dist/navigation/SidebarTopArea.vue.d.ts +15 -0
  214. package/dist/navigation/SidebarTopArea.vue.js +16 -0
  215. package/dist/number-field/NumberField.vue.d.ts +26 -0
  216. package/dist/number-field/NumberField.vue.js +75 -0
  217. package/dist/number-field/NumberFieldDecrement.vue.d.ts +18 -0
  218. package/dist/number-field/NumberFieldDecrement.vue.js +35 -0
  219. package/dist/number-field/NumberFieldIncrement.vue.d.ts +18 -0
  220. package/dist/number-field/NumberFieldIncrement.vue.js +35 -0
  221. package/dist/number-field/NumberFieldInput.vue.d.ts +7 -0
  222. package/dist/number-field/NumberFieldInput.vue.js +25 -0
  223. package/dist/number-field/PropertyNumberField.vue.d.ts +14 -0
  224. package/dist/number-field/PropertyNumberField.vue.js +56 -0
  225. package/dist/pagination/Pagination.vue.d.ts +22 -0
  226. package/dist/pagination/Pagination.vue.js +140 -0
  227. package/dist/popover/PopoverContent.vue.d.ts +33 -0
  228. package/dist/popover/PopoverContent.vue.js +91 -0
  229. package/dist/popover/usePopoverViewportDismiss.d.ts +2 -0
  230. package/dist/popover/usePopoverViewportDismiss.js +13 -0
  231. package/dist/radio-group/RadioGroup.vue.d.ts +22 -0
  232. package/dist/radio-group/RadioGroup.vue.js +45 -0
  233. package/dist/radio-group/RadioGroupItem.vue.d.ts +22 -0
  234. package/dist/radio-group/RadioGroupItem.vue.js +42 -0
  235. package/dist/search-input/AsyncSearchInput.vue.d.ts +27 -0
  236. package/dist/search-input/AsyncSearchInput.vue.js +104 -0
  237. package/dist/search-input/SearchAutocomplete.vue.d.ts +53 -0
  238. package/dist/search-input/SearchAutocomplete.vue.js +234 -0
  239. package/dist/search-input/SearchInput.vue.d.ts +46 -0
  240. package/dist/search-input/SearchInput.vue.js +127 -0
  241. package/dist/search-input/searchInput.variants.d.ts +45 -0
  242. package/dist/select/DropdownControl.vue.d.ts +16 -0
  243. package/dist/select/DropdownControl.vue.js +48 -0
  244. package/dist/select/Select.vue.d.ts +21 -0
  245. package/dist/select/Select.vue.js +2 -0
  246. package/dist/select/SelectContent.vue.d.ts +29 -0
  247. package/dist/select/SelectContent.vue.js +2 -0
  248. package/dist/select/SelectItem.vue.d.ts +18 -0
  249. package/dist/select/SelectItem.vue.js +2 -0
  250. package/dist/select/SelectScrollDownButton.vue.d.ts +18 -0
  251. package/dist/select/SelectScrollDownButton.vue.js +2 -0
  252. package/dist/select/SelectScrollUpButton.vue.d.ts +18 -0
  253. package/dist/select/SelectScrollUpButton.vue.js +2 -0
  254. package/dist/select/SelectTrigger.vue.d.ts +22 -0
  255. package/dist/select/SelectTrigger.vue.js +2 -0
  256. package/dist/select/SelectValue.vue.d.ts +14 -0
  257. package/dist/select/SelectValue.vue.js +2 -0
  258. package/dist/select/types.d.ts +4 -0
  259. package/dist/select/types.js +0 -0
  260. package/dist/select/useSelectSearch.d.ts +3 -0
  261. package/dist/select/useSelectSearch.js +15 -0
  262. package/dist/shared/Badge-D3uWa3yk.js +92 -0
  263. package/dist/shared/Button-CilmsOkY.js +141 -0
  264. package/dist/shared/Card-l7baUdn0.js +34 -0
  265. package/dist/shared/CardFooter-BM6EmVi7.js +21 -0
  266. package/dist/shared/CardHeader-B5To28Jp.js +21 -0
  267. package/dist/shared/ContextMenuContent-CNQHJQ81.js +64 -0
  268. package/dist/shared/DialogTitle-CfkkTGuU.js +43 -0
  269. package/dist/shared/Input-39RLwDr2.js +38 -0
  270. package/dist/shared/InputGroup-kjQKkhyB.js +25 -0
  271. package/dist/shared/InputGroupAddon-DLDRT0CQ.js +38 -0
  272. package/dist/shared/InputGroupButton-BoEp2apg.js +41 -0
  273. package/dist/shared/InputGroupInput-E2MlEVUU.js +32 -0
  274. package/dist/shared/Label-Cx_lFofI.js +36 -0
  275. package/dist/shared/MenuAction-BdghJ23k.js +124 -0
  276. package/dist/shared/MenuContent-ChqlM3xA.js +80 -0
  277. package/dist/shared/MenuItemContent--dPNoBmU.js +69 -0
  278. package/dist/shared/MenuItems-BJKetPV-.js +69 -0
  279. package/dist/shared/MenuRadioGroup-Bpjt9sHI.js +65 -0
  280. package/dist/shared/MenuRadioItem-h7hh_RGU.js +36 -0
  281. package/dist/shared/MenuSeparator-Dm6CkPqB.js +28 -0
  282. package/dist/shared/MenuSub-Dbnj2w-X.js +23 -0
  283. package/dist/shared/MenuSubContent-M-g3fllh.js +69 -0
  284. package/dist/shared/MenuSubTrigger-D6-3s2NL.js +35 -0
  285. package/dist/shared/MenuSubmenu-QHWMyfKF.js +43 -0
  286. package/dist/shared/MultiSelectContent-c1D5avjh.js +162 -0
  287. package/dist/shared/MultiSelectTrigger-lmuXqETa.js +52 -0
  288. package/dist/shared/OverlayIcon-DntJI-mm.js +45 -0
  289. package/dist/shared/SearchableSingleSelect-Dnti1kqJ.js +184 -0
  290. package/dist/shared/Select-CP3OZjtL.js +33 -0
  291. package/dist/shared/SelectContent-C8aNlcFf.js +91 -0
  292. package/dist/shared/SelectItem-tU4CIa5J.js +42 -0
  293. package/dist/shared/SelectScrollDownButton-Dvig5MVc.js +30 -0
  294. package/dist/shared/SelectScrollUpButton-lv-npT6v.js +30 -0
  295. package/dist/shared/SelectTrigger-CCDiZW91.js +47 -0
  296. package/dist/shared/SelectValue-DFZFSiQp.js +23 -0
  297. package/dist/shared/Switch-DsCzHpDU.js +63 -0
  298. package/dist/shared/TableHead-OxGist4m.js +24 -0
  299. package/dist/shared/TagRemoveButton-BiCdscIC.js +38 -0
  300. package/dist/shared/TextTooltip-ClHQl84h.js +29 -0
  301. package/dist/shared/Tooltip-DbXyHv20.js +34 -0
  302. package/dist/shared/TooltipContent-Bju-U7gc.js +91 -0
  303. package/dist/shared/TooltipTrigger-CVwISmWo.js +65 -0
  304. package/dist/shared/_plugin-vue_export-helper-BOaGB7Aw.js +8 -0
  305. package/dist/shared/searchInput.variants-NOge_52E.js +47 -0
  306. package/dist/shared/select.variants-BPn5Z7N1.js +40 -0
  307. package/dist/shared/src-CnJ6AzLP.js +12 -0
  308. package/dist/shared/tabKeys-BISOrxWu.js +4 -0
  309. package/dist/shared/tabs.variants-XUREdHry.js +23 -0
  310. package/dist/shared/tag.variants-CCqCn8Jc.js +34 -0
  311. package/dist/shared/tagsInputContext-QXu7RrG5.js +5 -0
  312. package/dist/shared/toggleGroup.variants-CvjZDHMw.js +39 -0
  313. package/dist/shared/tooltipContext-BL5JtM0i.js +4 -0
  314. package/dist/single-select/SearchableSingleSelect.vue.d.ts +39 -0
  315. package/dist/single-select/SearchableSingleSelect.vue.js +2 -0
  316. package/dist/single-select/SingleSelect.vue.d.ts +38 -0
  317. package/dist/single-select/SingleSelect.vue.js +187 -0
  318. package/dist/single-select/types.d.ts +25 -0
  319. package/dist/single-select/types.js +0 -0
  320. package/dist/skeleton/Skeleton.vue.d.ts +7 -0
  321. package/dist/skeleton/Skeleton.vue.js +24 -0
  322. package/dist/slider/Slider.vue.d.ts +16 -0
  323. package/dist/slider/Slider.vue.js +88 -0
  324. package/dist/spinner/Spinner.vue.d.ts +7 -0
  325. package/dist/spinner/Spinner.vue.js +41 -0
  326. package/dist/splitter/SplitterGroup.vue.d.ts +23 -0
  327. package/dist/splitter/SplitterGroup.vue.js +40 -0
  328. package/dist/splitter/SplitterPanel.vue.d.ts +26 -0
  329. package/dist/splitter/SplitterPanel.vue.js +45 -0
  330. package/dist/splitter/SplitterResizeHandle.vue.d.ts +22 -0
  331. package/dist/splitter/SplitterResizeHandle.vue.js +37 -0
  332. package/dist/switch/Switch.vue.d.ts +17 -0
  333. package/dist/switch/Switch.vue.js +2 -0
  334. package/dist/tab/Tab.vue.d.ts +24 -0
  335. package/dist/tab/Tab.vue.js +76 -0
  336. package/dist/tab/TabList.vue.d.ts +26 -0
  337. package/dist/tab/TabList.vue.js +31 -0
  338. package/dist/tab/TabPanel.vue.d.ts +23 -0
  339. package/dist/tab/TabPanel.vue.js +28 -0
  340. package/dist/tab/tab.variants.d.ts +9 -0
  341. package/dist/tab/tabKeys.d.ts +7 -0
  342. package/dist/table/Table.vue.d.ts +17 -0
  343. package/dist/table/Table.vue.js +23 -0
  344. package/dist/table/TableBody.vue.d.ts +17 -0
  345. package/dist/table/TableBody.vue.js +21 -0
  346. package/dist/table/TableCell.vue.d.ts +17 -0
  347. package/dist/table/TableCell.vue.js +21 -0
  348. package/dist/table/TableHead.vue.d.ts +17 -0
  349. package/dist/table/TableHead.vue.js +2 -0
  350. package/dist/table/TableHeader.vue.d.ts +17 -0
  351. package/dist/table/TableHeader.vue.js +21 -0
  352. package/dist/table/TableRow.vue.d.ts +17 -0
  353. package/dist/table/TableRow.vue.js +21 -0
  354. package/dist/table/TableSortHead.vue.d.ts +26 -0
  355. package/dist/table/TableSortHead.vue.js +47 -0
  356. package/dist/table/tableUtils.d.ts +3 -0
  357. package/dist/table/tableUtils.js +19 -0
  358. package/dist/tabs/Tabs.vue.d.ts +22 -0
  359. package/dist/tabs/Tabs.vue.js +43 -0
  360. package/dist/tabs/TabsContent.vue.d.ts +18 -0
  361. package/dist/tabs/TabsContent.vue.js +37 -0
  362. package/dist/tabs/TabsList.vue.d.ts +20 -0
  363. package/dist/tabs/TabsList.vue.js +38 -0
  364. package/dist/tabs/TabsTrigger.vue.d.ts +20 -0
  365. package/dist/tabs/TabsTrigger.vue.js +39 -0
  366. package/dist/tabs/tabs.variants.d.ts +21 -0
  367. package/dist/tags-input/TagsInput.vue.d.ts +32 -0
  368. package/dist/tags-input/TagsInput.vue.js +98 -0
  369. package/dist/tags-input/TagsInputInput.vue.d.ts +9 -0
  370. package/dist/tags-input/TagsInputInput.vue.js +56 -0
  371. package/dist/tags-input/TagsInputItem.vue.d.ts +18 -0
  372. package/dist/tags-input/TagsInputItem.vue.js +34 -0
  373. package/dist/tags-input/TagsInputItemDelete.vue.d.ts +18 -0
  374. package/dist/tags-input/TagsInputItemDelete.vue.js +35 -0
  375. package/dist/tags-input/TagsInputItemText.vue.d.ts +8 -0
  376. package/dist/tags-input/TagsInputItemText.vue.js +28 -0
  377. package/dist/tags-input/tagsInputContext.d.ts +4 -0
  378. package/dist/textarea/Textarea.vue.d.ts +17 -0
  379. package/dist/textarea/Textarea.vue.js +33 -0
  380. package/dist/toast/ToastClose.vue.d.ts +8 -0
  381. package/dist/toast/ToastClose.vue.js +42 -0
  382. package/dist/toast/ToastDescription.vue.d.ts +18 -0
  383. package/dist/toast/ToastDescription.vue.js +31 -0
  384. package/dist/toast/ToastDock.vue.d.ts +13 -0
  385. package/dist/toast/ToastDock.vue.js +29 -0
  386. package/dist/toast/ToastPanel.vue.d.ts +30 -0
  387. package/dist/toast/ToastPanel.vue.js +47 -0
  388. package/dist/toast/ToastRoot.vue.d.ts +100 -0
  389. package/dist/toast/ToastRoot.vue.js +55 -0
  390. package/dist/toast/ToastTitle.vue.d.ts +18 -0
  391. package/dist/toast/ToastTitle.vue.js +31 -0
  392. package/dist/toast/ToastViewport.vue.d.ts +9 -0
  393. package/dist/toast/ToastViewport.vue.js +33 -0
  394. package/dist/toggle-group/ToggleGroup.vue.d.ts +25 -0
  395. package/dist/toggle-group/ToggleGroup.vue.js +61 -0
  396. package/dist/toggle-group/ToggleGroupItem.vue.d.ts +21 -0
  397. package/dist/toggle-group/ToggleGroupItem.vue.js +45 -0
  398. package/dist/toggle-group/toggleGroup.variants.d.ts +24 -0
  399. package/dist/tooltip/TextTooltip.vue.d.ts +20 -0
  400. package/dist/tooltip/TextTooltip.vue.js +2 -0
  401. package/dist/tooltip/Tooltip.vue.d.ts +23 -0
  402. package/dist/tooltip/Tooltip.vue.js +2 -0
  403. package/dist/tooltip/TooltipContent.vue.d.ts +24 -0
  404. package/dist/tooltip/TooltipContent.vue.js +2 -0
  405. package/dist/tooltip/TooltipProvider.vue.d.ts +15 -0
  406. package/dist/tooltip/TooltipProvider.vue.js +39 -0
  407. package/dist/tooltip/TooltipTrigger.vue.d.ts +14 -0
  408. package/dist/tooltip/TooltipTrigger.vue.js +2 -0
  409. package/dist/tooltip/tooltipConfig.d.ts +5 -0
  410. package/dist/tooltip/tooltipConfig.js +8 -0
  411. package/dist/tooltip/tooltipContext.d.ts +2 -0
  412. package/dist/transition/TransitionCollapse.vue.d.ts +21 -0
  413. package/dist/transition/TransitionCollapse.vue.js +110 -0
  414. package/dist/tree/Tree.vue.d.ts +32 -0
  415. package/dist/tree/Tree.vue.js +55 -0
  416. package/dist/tree/TreeItem.vue.d.ts +29 -0
  417. package/dist/tree/TreeItem.vue.js +82 -0
  418. package/dist/tree/treeStyles.d.ts +4 -0
  419. package/dist/tree/treeStyles.js +7 -0
  420. package/dist-types/button.variants.d.ts +16 -0
  421. package/dist-types/select.variants.d.ts +24 -0
  422. package/dist-types/tag.variants.d.ts +21 -0
  423. package/dist-types/workspaceAvatar.d.ts +5 -0
  424. package/package.json +167 -7
  425. package/src/button.variants.ts +84 -0
  426. package/src/css/_deprecated-aliases.css +12 -0
  427. package/src/css/_legacy-palette.css +33 -0
  428. package/src/css/_legacy-ui.css +418 -0
  429. package/src/css/_markdown.css +227 -0
  430. package/src/css/_mask-editor.css +180 -0
  431. package/src/css/_palette.css +43 -0
  432. package/src/css/base.css +0 -6
  433. package/src/css/iconSizing.test.ts +80 -0
  434. package/src/css/iconifyDynamicPlugin.ts +15 -6
  435. package/src/css/icons.test.ts +17 -0
  436. package/src/css/lucideStrokePlugin.js +5 -6
  437. package/src/css/style.css +109 -1698
  438. package/src/icons/README.md +33 -26
  439. package/src/icons/astroid-filled.svg +3 -0
  440. package/src/icons/claude.svg +1 -1
  441. package/src/icons/comfy-cloud.svg +4 -0
  442. package/src/icons/comfy-logo.svg +2 -2
  443. package/src/select.variants.ts +53 -0
  444. package/src/tag.variants.ts +38 -0
  445. package/src/workspaceAvatar.ts +54 -0
  446. package/src/icons/credits.svg +0 -3
package/src/css/style.css CHANGED
@@ -1,19 +1,46 @@
1
- @layer theme, base, primevue, components, utilities;
1
+ @layer theme, base, components, utilities;
2
2
 
3
3
  @import './fonts.css';
4
4
  @import './_palette.css';
5
+ @import './_deprecated-aliases.css';
6
+ @import './_legacy-palette.css';
5
7
  @import 'tailwindcss/theme' layer(theme);
6
8
  @import 'tailwindcss/utilities' layer(utilities);
7
9
  @import 'tw-animate-css';
8
10
 
9
- @plugin 'tailwindcss-primeui';
11
+ @source '../components';
12
+ @source not '../components/**/*.test.ts';
13
+ @source not '../components/**/*.md';
14
+ @source '../../dist';
10
15
 
11
16
  @plugin "./iconifyDynamicPlugin.ts";
12
17
 
13
18
  @plugin "./lucideStrokePlugin.js";
14
19
 
20
+ @layer base {
21
+ *,
22
+ ::before,
23
+ ::after {
24
+ box-sizing: border-box;
25
+ border-color: var(--border);
26
+ }
27
+
28
+ button,
29
+ input,
30
+ select,
31
+ optgroup,
32
+ textarea,
33
+ ::file-selector-button {
34
+ font: inherit;
35
+ font-feature-settings: inherit;
36
+ font-variation-settings: inherit;
37
+ letter-spacing: inherit;
38
+ color: inherit;
39
+ }
40
+ }
41
+
15
42
  /* Safelist dynamic comfy icons for node library folders */
16
- @source inline("icon-[comfy--{ai-model,anthropic,bfl,bria,bytedance,claude,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}]");
43
+ @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}]");
17
44
 
18
45
  /* Badge icon names are built at runtime, so the scanner cannot find them. */
19
46
  @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}]");
@@ -21,7 +48,23 @@
21
48
  @custom-variant touch (@media (hover: none));
22
49
 
23
50
  @theme {
24
- --shadow-interface: var(--interface-panel-box-shadow);
51
+ --z-index-overlay: 1700;
52
+ --z-index-onboarding: 1600;
53
+ --z-index-tour: 1800;
54
+ --z-index-toast: 9999;
55
+ --z-index-blocking: 10000;
56
+
57
+ --shadow-2xs: 0 1px 1px var(--shadow-color);
58
+ --shadow-xs: 0 1px 2px var(--shadow-color);
59
+ --shadow-sm: 0 1px 4px var(--shadow-color);
60
+ --shadow-md: 1px 1px 8px 0 var(--shadow-color);
61
+ --shadow-lg: 0 2px 16px 0 var(--shadow-color);
62
+ --shadow-xl: 0 8px 24px var(--shadow-color);
63
+ --shadow-2xl: 0 24px 80px var(--shadow-color);
64
+ --drop-shadow-xs: 0 1px 1px var(--shadow-color);
65
+ --drop-shadow-sm: 1px 1px 4px var(--shadow-color);
66
+ --drop-shadow-md: 1px 1px 8px var(--shadow-color);
67
+ --drop-shadow-lg: 0 9px 7px var(--shadow-color);
25
68
  --shadow-inset-highlight: inset 0 1px 0 0 rgb(from white r g b / 0.1);
26
69
 
27
70
  --text-2xs: 0.625rem;
@@ -30,549 +73,71 @@
30
73
  --text-3xs: 0.5625rem;
31
74
  --text-3xs--line-height: calc(1 / 0.5625);
32
75
 
33
- --color-ivory-100: #fdfbfa;
34
- --color-ivory-200: #faf9f5;
35
- --color-ivory-300: #f0eee6;
36
-
37
- --color-sand-100: #e1ded5;
38
- --color-sand-200: #fff7d5;
39
- --color-sand-300: #888682;
40
- --color-sand-400: #eed7ac;
41
-
42
- --color-azure-300: #78bae9;
43
- --color-azure-400: #31b9f4;
44
- --color-azure-600: #0b8ce9;
45
-
46
- --color-cobalt-800: #185a8b;
47
-
48
- --color-jade-400: #47e469;
49
- --color-jade-600: #00cd72;
50
-
51
- --color-gold-400: #fcbf64;
52
- --color-gold-500: #fdab34;
53
- --color-gold-600: #fd9903;
54
-
55
76
  --color-credit: #ddbd31;
56
77
 
57
- --color-coral-500: #f75951;
58
- --color-coral-600: #e04e48;
59
- --color-coral-700: #b33a3a;
60
-
61
- --color-magenta-300: #ceaac9;
62
- --color-magenta-700: #6a246a;
63
-
64
- --color-ocean-300: #badde8;
65
- --color-ocean-600: #2f687a;
66
- --color-ocean-900: #253236;
67
-
68
- --color-primary-comfy-ink: #211927;
69
- --color-primary-comfy-canvas: #c2bfb9;
70
-
71
- --color-danger-100: #c02323;
72
- --color-danger-200: #d62952;
73
-
74
78
  --color-bypass: #6a246a;
75
- --color-error: #962a2a;
76
-
77
- --color-interface-panel-job-progress-primary: var(--color-azure-300);
78
- --color-interface-panel-job-progress-secondary: var(
79
- --color-alpha-azure-600-30
80
- );
81
- --color-interface-panel-job-progress-border: var(--base-foreground);
82
-
83
- --color-blue-selection: rgb(from var(--color-azure-600) r g b / 0.3);
84
- --color-node-hover-100: rgb(from var(--color-charcoal-800) r g b / 0.15);
85
- --color-node-hover-200: rgb(from var(--color-charcoal-800) r g b / 0.1);
86
- --color-modal-tag: rgb(from var(--color-smoke-400) r g b / 0.4);
87
- --color-alpha-charcoal-600-30: color-mix(
88
- in srgb,
89
- var(--color-charcoal-600) 30%,
90
- transparent
91
- );
92
- --color-alpha-ash-500-20: color-mix(
93
- in srgb,
94
- var(--color-ash-500) 20%,
95
- transparent
96
- );
97
- --color-alpha-smoke-500-50: color-mix(
98
- in srgb,
99
- var(--color-smoke-500) 50%,
100
- transparent
101
- );
102
- --color-alpha-smoke-500-20: #c5c5c533;
103
- --color-alpha-smoke-400-40: #d9d9d966;
104
- --color-alpha-azure-600-30: #0b8ce94d;
105
- --color-alpha-magenta-700-60: #6a246a99;
106
- --color-alpha-magenta-300-60: #ceaac999;
107
-
108
- /* Onboarding coachmark overlay (always renders over a dark scrim) */
109
- --color-coach-scrim: rgb(0 0 0 / 0.6);
110
- --color-coach-ring: #fff;
111
-
112
- /* PrimeVue pulled colors */
113
- --color-muted: var(--p-text-muted-color);
114
- --color-highlight: var(--p-primary-color);
115
-
116
- /* Special Colors (temporary) */
117
- --color-dark-elevation-1-5: rgba(from white r g b / 0.015);
118
- --color-dark-elevation-2: rgba(from white r g b / 0.03);
79
+ --color-warning-foreground: var(--color-charcoal-800);
80
+ --color-success: var(--color-jade-600);
119
81
  }
120
82
 
121
83
  :root {
122
- --fg-color: #000;
123
- --bg-color: #fff;
84
+ color-scheme: dark;
85
+
86
+ --background: var(--color-charcoal-800);
87
+ --foreground: var(--color-white);
88
+ --card: var(--color-charcoal-600);
89
+ --node-foreground: var(--color-smoke-700);
90
+ --node-header: var(--color-charcoal-700);
91
+ --node-border: var(--color-charcoal-100);
92
+ --primary: var(--color-azure-600);
93
+ --secondary: var(--color-charcoal-600);
94
+ --muted: var(--color-charcoal-300);
95
+ --muted-foreground: var(--color-smoke-800);
96
+ --accent: var(--color-charcoal-400);
97
+ --destructive: var(--color-coral-700);
98
+ --border: var(--color-charcoal-200);
99
+ --ring: var(--muted-foreground);
100
+ --popover: var(--background);
101
+ --input: var(--accent);
102
+ --node: var(--card);
103
+
124
104
  --default-transition-duration: 0.1s;
125
- --comfy-menu-bg: #353535;
126
- --comfy-menu-secondary-bg: #292929;
127
105
  --comfy-topbar-height: 2.5rem;
128
106
  --workflow-tabs-height: 2.375rem;
129
- --comfy-input-bg: #222;
130
107
  --comfy-textarea-font-size: 10px;
131
- --input-text: #ddd;
132
- --descrip-text: #999;
133
- --drag-text: #ccc;
134
- --error-text: #ff4444;
135
- --border-color: #4e4e4e;
136
- --tr-even-bg-color: #222;
137
- --tr-odd-bg-color: #353535;
138
- --primary-bg: #236692;
139
- --primary-fg: #ffffff;
140
- --primary-hover-bg: #3485bb;
141
- --primary-hover-fg: #ffffff;
142
- --content-bg: #e0e0e0;
143
- --content-fg: #000;
144
- --content-hover-bg: #adadad;
145
- --content-hover-fg: #000;
146
-
147
- --button-surface: var(--color-white);
148
- --button-surface-contrast: var(--color-black);
149
-
150
- /* Code styling colors for help menu*/
151
- --code-text-color: rgb(0 122 255 / 1);
152
- --code-bg-color: rgb(96 165 250 / 0.2);
153
- --code-block-bg-color: rgb(60 60 60 / 0.12);
154
-
155
- /* --- */
156
-
157
- --accent-primary: var(--color-charcoal-700);
158
- --backdrop: var(--color-white);
159
-
160
- --button-hover-surface: var(--color-smoke-200);
161
- --button-active-surface: var(--color-smoke-400);
162
- --button-icon: var(--color-smoke-600);
163
-
164
- --dialog-surface: var(--color-neutral-200);
165
108
 
166
- --interface-menu-component-surface-hovered: var(--color-smoke-200);
167
- --interface-menu-component-surface-selected: var(--color-smoke-400);
168
- --interface-menu-keybind-surface-default: var(--color-smoke-500);
169
- --interface-menu-surface: var(--color-white);
170
- --interface-menu-stroke: var(--color-smoke-600);
171
- --interface-panel-surface: var(--color-white);
172
- --interface-stroke: var(--color-smoke-300);
173
-
174
- --interface-builder-mode-background: var(--color-ocean-300);
175
- --interface-builder-mode-button-background: var(--color-ocean-600);
176
- --interface-builder-mode-button-foreground: var(--color-white);
177
- --interface-builder-mode-footer-background: var(--color-ocean-900);
178
-
179
- --nav-background: var(--color-white);
180
-
181
- --node-border: var(--color-smoke-300);
182
- --node-component-border: var(--color-smoke-400);
183
- --node-component-disabled: var(--color-alpha-ash-500-20);
184
- --node-component-executing: var(--color-blue-500);
185
- --node-component-header: var(--fg-color);
186
- --node-component-header-icon: var(--color-ash-800);
187
- --node-component-header-surface: var(--color-smoke-200);
188
- --node-component-outline: var(--color-black);
189
- --node-component-ring: rgb(from var(--color-smoke-500) r g b / 50%);
190
- --node-component-slot-dot-outline-opacity-mult: 1;
191
- --node-component-slot-dot-outline-opacity: 5%;
192
- --node-component-slot-dot-outline: var(--color-black);
193
- --node-component-slot-text: var(--color-ash-800);
194
- --node-component-surface-highlight: var(--color-smoke-800);
195
- --node-component-surface-hovered: var(--color-smoke-200);
196
- --node-component-surface-selected: var(--color-charcoal-200);
197
- --node-component-surface: var(--color-white);
198
- --node-component-tooltip: var(--color-charcoal-700);
199
- --node-component-tooltip-border: var(--color-sand-100);
200
- --node-component-tooltip-surface: var(--color-white);
201
- --node-component-widget-input: var(--fg-color);
202
- --node-component-widget-input-surface: rgb(
203
- from var(--color-zinc-500) r g b / 10%
204
- );
205
- --node-component-widget-skeleton-surface: var(--color-zinc-300);
206
- --node-divider: var(--color-sand-100);
207
- --node-icon-disabled: var(--color-alpha-smoke-500-50);
208
- --node-stroke: var(--color-smoke-400);
209
- --node-stroke-selected: var(--color-accent-primary);
210
- --node-stroke-error: var(--color-error);
211
- --node-stroke-executing: var(--color-azure-600);
212
-
213
- --text-secondary: var(--color-smoke-800);
214
- --text-primary: var(--color-charcoal-700);
215
- --input-surface: rgb(0 0 0 / 0.15);
216
-
217
- /* Semantic tokens - light mode */
218
- --muted-foreground: var(--color-charcoal-200);
219
- --base-foreground: var(--color-charcoal-800);
220
- --brand-yellow: var(--color-electric-400);
221
- --brand-blue: var(--color-sapphire-700);
222
- --secondary-background: var(--color-smoke-200);
223
- --secondary-background-hover: var(--color-smoke-400);
224
- --secondary-background-selected: var(--color-smoke-600);
225
- --tertiary-background: var(--color-smoke-400);
226
- --tertiary-background-hover: var(--color-smoke-500);
227
- --base-background: var(--color-white);
228
- --primary-background: var(--color-azure-400);
229
- --primary-background-hover: var(--color-cobalt-800);
230
- --destructive-background: var(--color-coral-500);
231
- --destructive-background-hover: var(--color-coral-600);
232
- --inverted-background-hover: var(--color-charcoal-600);
233
- --warning-background: var(--color-gold-400);
234
- --warning-background-hover: var(--color-gold-500);
235
- --success-background: var(--color-jade-600);
236
- --border-default: var(--color-smoke-600);
237
- --border-subtle: var(--color-smoke-400);
238
- --muted-background: var(--color-smoke-700);
239
- --accent-background: var(--color-smoke-800);
240
-
241
- /* Component/Node tokens from design system light */
242
- --component-node-background: var(--color-white);
243
- --component-node-border: var(--color-border-default);
244
- --component-node-foreground: var(--base-foreground);
245
- --component-node-foreground-secondary: var(--color-muted-foreground);
246
- --component-node-widget-background: var(--secondary-background);
247
- --component-node-widget-background-hovered: var(--secondary-background-hover);
248
- --component-node-widget-background-selected: var(
249
- --secondary-background-selected
250
- );
251
- --component-node-widget-background-disabled: var(--color-alpha-ash-500-20);
252
- --component-node-widget-background-highlighted: var(--color-smoke-800);
253
- --component-node-widget-promoted: var(--color-purple-700);
254
- --component-node-widget-advanced: var(--color-azure-400);
255
-
256
- --video-trim-selection-background: var(--color-datatype-CLIP, #ffd500);
257
- --video-trim-playhead-background: #f0513b;
258
-
259
- /* Default UI element color palette variables */
260
- --palette-contrast-mix-color: #fff;
261
- --palette-interface-panel-surface: var(--comfy-menu-bg);
262
- --palette-interface-stroke: color-mix(
263
- in srgb,
264
- var(--interface-panel-surface) 75.5%,
265
- var(--contrast-mix-color)
266
- );
267
-
268
- --palette-interface-panel-box-shadow: 1px 1px 8px 0 rgb(0 0 0 / 0.4);
269
- --palette-interface-panel-drop-shadow: 1px 1px 4px rgb(0 0 0 / 0.4);
270
- --palette-interface-panel-hover-surface: color-mix(
271
- in srgb,
272
- var(--interface-panel-surface) 92.5%,
273
- var(--contrast-mix-color)
274
- );
275
- --palette-interface-panel-selected-surface: color-mix(
276
- in srgb,
277
- var(--interface-panel-surface) 87.5%,
278
- var(--contrast-mix-color)
279
- );
280
- --palette-interface-button-hover-surface: color-mix(
281
- in srgb,
282
- var(--interface-panel-surface) 82%,
283
- var(--contrast-mix-color)
284
- );
285
-
286
- --modal-card-background: var(--secondary-background);
287
- --modal-card-background-hovered: var(--secondary-background-hover);
288
- --modal-card-border-highlighted: var(--secondary-background-selected);
289
- --modal-card-button-surface: var(--color-smoke-300);
290
- --modal-card-placeholder-background: var(--color-smoke-600);
291
- --modal-card-tag-background: var(--color-smoke-200);
292
- --modal-card-tag-foreground: var(--base-foreground);
293
- --modal-panel-background: var(--color-white);
294
- }
295
-
296
- .dark-theme {
297
- --fg-color: #fff;
298
- --bg-color: #202020;
299
- --content-bg: #4e4e4e;
300
- --content-fg: #fff;
301
- --content-hover-bg: #222;
302
- --content-hover-fg: #fff;
303
-
304
- --accent-primary: var(--color-white);
305
- --backdrop: var(--color-neutral-900);
306
-
307
- --button-surface: var(--color-charcoal-600);
308
- --button-surface-contrast: var(--color-white);
309
- --button-hover-surface: var(--color-charcoal-600);
310
- --button-active-surface: var(--color-charcoal-600);
311
- --button-icon: var(--color-smoke-800);
312
-
313
- --dialog-surface: var(--color-neutral-700);
314
-
315
- --interface-menu-component-surface-hovered: var(--color-charcoal-400);
316
- --interface-menu-component-surface-selected: var(--color-charcoal-300);
317
- --interface-menu-keybind-surface-default: var(--color-charcoal-200);
318
- --interface-menu-surface: var(--color-charcoal-800);
319
- --interface-menu-stroke: var(--color-ash-800);
320
- --interface-panel-surface: var(--color-charcoal-800);
321
- --interface-stroke: var(--color-charcoal-400);
322
-
323
- --interface-builder-mode-background: var(--color-ocean-900);
324
- --interface-builder-mode-button-background: var(--color-ocean-600);
325
- --interface-builder-mode-button-foreground: var(--color-white);
326
- --interface-builder-mode-footer-background: var(--color-ocean-900);
327
-
328
- --nav-background: var(--color-charcoal-800);
329
-
330
- --node-border: var(--color-charcoal-500);
331
- --node-component-border: var(--color-ash-800);
332
- --node-component-border-error: var(--color-danger-100);
333
- --node-component-border-executing: var(--color-blue-500);
334
- --node-component-border-selected: var(--color-charcoal-200);
335
- --node-component-header-icon: var(--color-smoke-800);
336
- --node-component-header-surface: var(--color-charcoal-700);
337
- --node-component-outline: var(--color-white);
338
- --node-component-ring: rgb(var(--color-smoke-500) / 20%);
339
- --node-component-slot-dot-outline-opacity: 10%;
340
- --node-component-slot-dot-outline: var(--color-white);
341
- --node-component-slot-text: var(--color-smoke-700);
342
- --node-component-surface-highlight: var(--color-smoke-800);
343
- --node-component-surface-hovered: var(--color-charcoal-600);
344
- --node-component-surface-selected: var(--color-charcoal-200);
345
- --node-component-surface: var(--color-charcoal-600);
346
- --node-component-tooltip: var(--color-white);
347
- --node-component-tooltip-border: var(--color-charcoal-200);
348
- --node-component-tooltip-surface: var(--color-charcoal-800);
349
- --node-component-widget-skeleton-surface: var(--color-zinc-800);
350
- --node-component-disabled: var(--color-alpha-charcoal-600-30);
351
- --node-divider: var(--color-charcoal-500);
352
- --node-icon-disabled: var(--color-alpha-ash-500-20);
353
- --node-stroke: var(--color-ash-800);
354
- --node-stroke-selected: var(--color-white);
355
- --node-stroke-error: var(--color-error);
356
- --node-stroke-executing: var(--color-azure-600);
357
-
358
- /* Queue progress (dark theme) */
359
- --color-interface-panel-job-progress-primary: var(--color-cobalt-800);
360
- --color-interface-panel-job-progress-secondary: var(
361
- --color-alpha-azure-600-30
362
- );
363
- --color-interface-panel-job-progress-border: var(--base-foreground);
364
-
365
- --text-secondary: var(--color-smoke-700);
366
- --text-primary: var(--color-white);
367
-
368
- --input-surface: rgb(130 130 130 / 0.1);
369
-
370
- /* Semantic tokens - dark mode */
371
- --muted-foreground: var(--color-smoke-800);
372
- --base-foreground: var(--color-white);
373
- --brand-yellow: var(--color-electric-400);
374
- --brand-blue: var(--color-sapphire-700);
375
- --secondary-background: var(--color-charcoal-600);
376
- --secondary-background-hover: var(--color-charcoal-400);
377
- --secondary-background-selected: var(--color-charcoal-200);
378
- --tertiary-background: var(--color-charcoal-400);
379
- --tertiary-background-hover: var(--color-charcoal-300);
380
- --base-background: var(--color-charcoal-800);
381
- --primary-background: var(--color-azure-600);
382
- --primary-background-hover: var(--color-azure-400);
383
- --destructive-background: var(--color-coral-700);
384
- --destructive-background-hover: var(--color-coral-600);
385
- --inverted-background-hover: var(--color-smoke-200);
386
- --warning-background: var(--color-gold-600);
387
- --warning-background-hover: var(--color-gold-500);
388
- --success-background: var(--color-jade-600);
389
- --border-default: var(--color-charcoal-200);
390
- --border-subtle: var(--color-charcoal-300);
391
- --muted-background: var(--color-charcoal-100);
392
- --accent-background: var(--color-charcoal-100);
393
-
394
- /* Component/Node tokens from design dark system */
395
- --component-node-background: var(--color-charcoal-600);
396
- --component-node-border: var(--color-charcoal-100);
397
- --component-node-foreground: var(--base-foreground);
398
- --component-node-foreground-secondary: var(--color-muted-foreground);
399
- --component-node-widget-background: var(--secondary-background-hover);
400
- --component-node-widget-background-hovered: var(
401
- --secondary-background-selected
402
- );
403
- --component-node-widget-background-selected: var(--color-charcoal-100);
404
- --component-node-widget-background-disabled: var(--color-charcoal-800);
405
- --component-node-widget-background-highlighted: var(--color-smoke-800);
406
- --component-node-widget-promoted: var(--color-purple-700);
407
- --component-node-widget-advanced: var(--color-azure-600);
408
-
409
- --modal-card-background: var(--secondary-background);
410
- --modal-card-background-hovered: var(--secondary-background-hover);
411
- --modal-card-border-highlighted: var(--color-ash-400);
412
- --modal-card-button-surface: var(--color-charcoal-300);
413
- --modal-card-placeholder-background: var(--secondary-background);
414
- --modal-card-tag-background: var(--color-ash-800);
415
- --modal-card-tag-foreground: var(--base-foreground);
416
- --modal-panel-background: var(--color-charcoal-600);
109
+ --warning: var(--color-gold-600);
110
+ --shadow-color: rgb(0 0 0 / 0.4);
417
111
  }
418
112
 
419
113
  @theme inline {
420
- --color-backdrop: var(--backdrop);
421
- --color-button-active-surface: var(--button-active-surface);
422
- --color-button-hover-surface: var(--button-hover-surface);
423
- --color-button-icon: var(--button-icon);
424
- --color-button-surface: var(--button-surface);
425
- --color-button-surface-contrast: var(--button-surface-contrast);
426
-
427
- --color-modal-card-background: var(--modal-card-background);
428
- --color-modal-card-background-hovered: var(--modal-card-background-hovered);
429
- --color-modal-card-border-highlighted: var(--modal-card-border-highlighted);
430
- --color-modal-card-button-surface: var(--modal-card-button-surface);
431
- --color-modal-card-placeholder-background: var(
432
- --modal-card-placeholder-background
433
- );
434
- --color-modal-card-tag-background: var(--modal-card-tag-background);
435
- --color-modal-card-tag-foreground: var(--modal-card-tag-foreground);
436
- --color-modal-panel-background: var(--modal-panel-background);
437
-
438
- --color-dialog-surface: var(--dialog-surface);
439
- --color-interface-menu-component-surface-hovered: var(
440
- --interface-menu-component-surface-hovered
441
- );
442
- --color-interface-menu-component-surface-selected: var(
443
- --interface-menu-component-surface-selected
444
- );
445
- --color-interface-menu-keybind-surface-default: var(
446
- --interface-menu-keybind-surface-default
447
- );
448
- --color-interface-menu-surface: var(--interface-menu-surface);
449
- --color-interface-menu-stroke: var(--interface-menu-stroke);
450
- --color-interface-panel-surface: var(--interface-panel-surface);
451
- --color-interface-panel-hover-surface: var(--interface-panel-hover-surface);
452
- --color-interface-panel-selected-surface: var(
453
- --interface-panel-selected-surface
454
- );
455
- --color-interface-button-hover-surface: var(--interface-button-hover-surface);
456
- --color-comfy-input: var(--comfy-input-bg);
457
- --color-comfy-input-foreground: var(--input-text);
458
- --color-comfy-menu-bg: var(--comfy-menu-bg);
459
- --color-comfy-menu-secondary: var(--comfy-menu-secondary-bg);
460
-
461
- --color-interface-builder-mode-background: var(
462
- --interface-builder-mode-background
463
- );
464
- --color-interface-builder-mode-button-background: var(
465
- --interface-builder-mode-button-background
466
- );
467
- --color-interface-builder-mode-button-foreground: var(
468
- --interface-builder-mode-button-foreground
469
- );
470
- --color-interface-builder-mode-footer-background: var(
471
- --interface-builder-mode-footer-background
472
- );
473
- --color-interface-stroke: var(--interface-stroke);
474
- --color-nav-background: var(--nav-background);
114
+ --color-background: var(--background);
115
+ --color-foreground: var(--foreground);
116
+ --color-card: var(--card);
117
+ --color-node: var(--node);
118
+ --color-node-foreground: var(--node-foreground);
119
+ --color-node-header: var(--node-header);
475
120
  --color-node-border: var(--node-border);
476
- --color-node-component-border: var(--node-component-border);
477
- --color-node-component-executing: var(--node-component-executing);
478
- --color-node-component-header: var(--node-component-header);
479
- --color-node-component-header-icon: var(--node-component-header-icon);
480
- --color-node-component-header-surface: var(--node-component-header-surface);
481
- --color-node-component-outline: var(--node-component-outline);
482
- --color-node-component-ring: var(--node-component-ring);
483
- --color-node-component-slot-dot-outline: rgb(
484
- from var(--node-component-slot-dot-outline) r g b /
485
- calc(
486
- var(--node-component-slot-dot-outline-opacity) *
487
- var(--node-component-slot-dot-outline-opacity-mult)
488
- )
489
- );
490
- --color-node-component-slot-text: var(--node-component-slot-text);
491
- --color-node-component-surface-highlight: var(
492
- --node-component-surface-highlight
493
- );
494
- --color-node-component-surface-hovered: var(--node-component-surface-hovered);
495
- --color-node-component-surface-selected: var(--component-surface-selected);
496
- --color-node-component-surface: var(--node-component-surface);
497
- --color-node-component-tooltip: var(--node-component-tooltip);
498
- --color-node-component-tooltip-border: var(--node-component-tooltip-border);
499
- --color-node-component-tooltip-surface: var(--node-component-tooltip-surface);
500
- --color-node-component-widget-input: var(--node-component-widget-input);
501
- --color-node-component-widget-input-surface: var(
502
- --node-component-widget-input-surface
503
- );
504
- --color-node-component-widget-skeleton-surface: var(
505
- --node-component-widget-skeleton-surface
506
- );
507
- --color-node-component-disabled: var(--node-component-disabled);
508
- --color-node-divider: var(--node-divider);
509
- --color-node-icon-disabled: var(--node-icon-disabled);
510
- --color-node-stroke: var(--node-stroke);
511
- --color-node-stroke-selected: var(--node-stroke-selected);
512
- --color-node-stroke-error: var(--node-stroke-error);
513
- --color-node-stroke-executing: var(--node-stroke-executing);
514
- --color-text-secondary: var(--text-secondary);
515
- --color-text-primary: var(--text-primary);
516
- --color-input-surface: var(--input-surface);
517
-
518
- /* Component/Node design tokens */
519
- --color-component-node-background: var(--component-node-background);
520
- --color-component-node-border: var(--component-node-border);
521
- --color-component-node-foreground: var(--component-node-foreground);
522
- --color-component-node-foreground-secondary: var(
523
- --component-node-foreground-secondary
524
- );
525
- --color-component-node-widget-background: var(
526
- --component-node-widget-background
527
- );
528
- --color-component-node-widget-background-hovered: var(
529
- --component-node-widget-background-hovered
530
- );
531
- --color-component-node-widget-background-selected: var(
532
- --component-node-widget-background-selected
533
- );
534
- --color-component-node-widget-background-disabled: var(
535
- --component-node-widget-background-disabled
536
- );
537
- --color-component-node-widget-background-highlighted: var(
538
- --component-node-widget-background-highlighted
539
- );
540
- --color-component-node-widget-promoted: var(--component-node-widget-promoted);
541
- --color-component-node-widget-advanced: var(--component-node-widget-advanced);
542
- --color-video-trim-selection-background: var(
543
- --video-trim-selection-background
544
- );
545
- --color-video-trim-playhead-background: var(--video-trim-playhead-background);
121
+ --color-popover: var(--popover);
122
+ --color-primary: var(--primary);
123
+ --color-secondary: var(--secondary);
124
+ --color-muted: var(--muted);
125
+ --color-muted-foreground: var(--muted-foreground);
126
+ --color-accent: var(--accent);
127
+ --color-destructive: var(--destructive);
128
+ --color-border: var(--border);
129
+ --color-input: var(--input);
130
+ --color-ring: var(--ring);
546
131
 
547
132
  /* Semantic tokens */
548
- --color-base-foreground: var(--base-foreground);
549
- --color-muted-foreground: var(--muted-foreground);
550
- --color-base-background: var(--base-background);
551
- --color-secondary-background: var(--secondary-background);
552
- --color-secondary-background-hover: var(--secondary-background-hover);
553
- --color-secondary-background-selected: var(--secondary-background-selected);
554
- --color-tertiary-background: var(--tertiary-background);
555
- --color-tertiary-background-hover: var(--tertiary-background-hover);
556
- --color-primary-background: var(--primary-background);
557
- --color-primary-background-hover: var(--primary-background-hover);
558
- --color-destructive-background: var(--destructive-background);
559
- --color-destructive-background-hover: var(--destructive-background-hover);
560
- --color-inverted-background-hover: var(--inverted-background-hover);
561
- --color-warning-background: var(--warning-background);
562
- --color-warning-background-hover: var(--warning-background-hover);
563
- --color-success-background: var(--success-background);
564
- --color-border-default: var(--border-default);
565
- --color-border-subtle: var(--border-subtle);
566
- --color-muted-background: var(--muted-background);
567
- --color-accent-background: var(--accent-background);
568
- --color-brand-yellow: var(--brand-yellow);
569
- --color-brand-blue: var(--brand-blue);
133
+ --color-warning: var(--warning);
570
134
  }
571
135
 
572
- @custom-variant dark-theme {
573
- .dark-theme & {
574
- @slot;
575
- }
136
+ @utility floating-panel {
137
+ border-radius: var(--radius-xl);
138
+ padding: --spacing(1);
139
+ background-color: var(--background);
140
+ box-shadow: var(--shadow-inset-highlight), theme(boxShadow.lg);
576
141
  }
577
142
 
578
143
  @utility highlight {
@@ -600,7 +165,7 @@
600
165
  overflow-y: auto;
601
166
  /* Firefox */
602
167
  scrollbar-width: thin;
603
- scrollbar-color: var(--dialog-surface) transparent;
168
+ scrollbar-color: var(--muted) transparent;
604
169
 
605
170
  /* WebKit */
606
171
  &::-webkit-scrollbar {
@@ -612,12 +177,12 @@
612
177
  background: transparent;
613
178
  }
614
179
  &::-webkit-scrollbar-thumb {
615
- background: var(--dialog-surface);
180
+ background: var(--muted);
616
181
  border-radius: 9999px;
617
182
  border: 2px solid transparent;
618
183
  }
619
184
  &::-webkit-scrollbar-thumb:hover {
620
- background: var(--dialog-surface);
185
+ background: var(--muted);
621
186
  }
622
187
  &::-webkit-scrollbar-corner {
623
188
  background: transparent;
@@ -627,6 +192,10 @@
627
192
 
628
193
  /* Everthing below here to be cleaned up over time. */
629
194
 
195
+ :root[data-palette-switching] * {
196
+ transition: none;
197
+ }
198
+
630
199
  body {
631
200
  width: 100vw;
632
201
  height: 100vh;
@@ -637,699 +206,26 @@ body {
637
206
  min-width: -webkit-fill-available;
638
207
  max-width: -webkit-fill-available;
639
208
  font-family: Inter, Arial, sans-serif;
209
+ background-color: var(--background);
210
+ color: var(--foreground);
640
211
  }
641
212
 
642
213
  .comfy-multiline-input {
643
- background-color: var(--comfy-input-bg);
644
- color: var(--input-text);
214
+ background-color: var(--input);
215
+ color: var(--foreground);
645
216
  overflow: hidden;
646
217
  overflow-y: auto;
647
218
  padding: 2px;
648
219
  resize: none;
649
220
  border: none;
650
221
  box-sizing: border-box;
222
+ font-family: var(--font-mono);
651
223
  font-size: var(--comfy-textarea-font-size);
652
224
  }
653
225
 
654
- .comfy-markdown {
655
- /* We assign the textarea and the Tiptap editor to the same CSS grid area to stack them on top of one another. */
656
- display: grid;
657
- & > textarea,
658
- .tiptap {
659
- grid-area: 1 / 1 / 2 / 2;
660
- }
661
-
662
- & > textarea {
663
- opacity: 0;
664
- pointer-events: none;
665
- }
666
-
667
- &.editing {
668
- & > textarea {
669
- opacity: 1;
670
- pointer-events: all;
671
- }
672
-
673
- .tiptap {
674
- opacity: 0;
675
- pointer-events: none;
676
- }
677
- }
678
-
679
- .tiptap {
680
- overflow-y: auto;
681
- font-size: var(--comfy-textarea-font-size);
682
-
683
- :first-child {
684
- margin-top: 0;
685
- }
686
-
687
- :last-child {
688
- margin-bottom: 0;
689
- }
690
- }
691
- }
692
-
693
- .comfy-markdown .tiptap blockquote {
694
- border-left: medium solid;
695
- margin-left: 1em;
696
- padding-left: 0.5em;
697
- }
698
-
699
- .comfy-markdown .tiptap pre {
700
- border: thin dotted;
701
- border-radius: 0.5em;
702
- margin: 0.5em;
703
- padding: 0.5em;
704
- }
705
-
706
- .comfy-markdown .tiptap table {
707
- border-collapse: collapse;
708
- }
709
-
710
- .comfy-markdown .tiptap th {
711
- text-align: left;
712
- background: var(--comfy-menu-bg);
713
- }
714
-
715
- .comfy-markdown .tiptap th,
716
- .comfy-markdown .tiptap td {
717
- padding: 0.5em;
718
- border: thin solid;
719
- }
720
-
721
- /* Shared markdown content styling for consistent rendering across components */
722
- .comfy-markdown-content {
723
- /* Typography */
724
- font-size: var(--comfy-textarea-font-size);
725
- line-height: 1.6;
726
- word-wrap: break-word;
727
- }
728
-
729
- /* Headings */
730
- .comfy-markdown-content h1 {
731
- font-size: calc(22 / 14 * var(--comfy-textarea-font-size));
732
- font-weight: 700; /* font-bold */
733
- margin-top: 2rem; /* mt-8 */
734
- margin-bottom: 1rem; /* mb-4 */
735
- }
736
-
737
- .comfy-markdown-content h1:first-child {
738
- margin-top: 0; /* first:mt-0 */
739
- }
740
-
741
- .comfy-markdown-content h2 {
742
- font-size: calc(18 / 14 * var(--comfy-textarea-font-size));
743
- font-weight: 700; /* font-bold */
744
- margin-top: 2rem; /* mt-8 */
745
- margin-bottom: 1rem; /* mb-4 */
746
- }
747
-
748
- .comfy-markdown-content h2:first-child {
749
- margin-top: 0; /* first:mt-0 */
750
- }
751
-
752
- .comfy-markdown-content h3 {
753
- font-size: calc(16 / 14 * var(--comfy-textarea-font-size));
754
- font-weight: 700; /* font-bold */
755
- margin-top: 2rem; /* mt-8 */
756
- margin-bottom: 1rem; /* mb-4 */
757
- }
758
-
759
- .comfy-markdown-content h3:first-child {
760
- margin-top: 0; /* first:mt-0 */
761
- }
762
-
763
- .comfy-markdown-content h4,
764
- .comfy-markdown-content h5,
765
- .comfy-markdown-content h6 {
766
- margin-top: 2rem; /* mt-8 */
767
- margin-bottom: 1rem; /* mb-4 */
768
- }
769
-
770
- .comfy-markdown-content h4:first-child,
771
- .comfy-markdown-content h5:first-child,
772
- .comfy-markdown-content h6:first-child {
773
- margin-top: 0; /* first:mt-0 */
774
- }
775
-
776
- /* Paragraphs */
777
- .comfy-markdown-content p {
778
- margin: 0 0 0.5em;
779
- }
780
-
781
- .comfy-markdown-content p:last-child {
782
- margin-bottom: 0;
783
- }
784
-
785
- /* First child reset */
786
- .comfy-markdown-content *:first-child {
787
- margin-top: 0; /* mt-0 */
788
- }
789
-
790
- /* Lists */
791
- .comfy-markdown-content ul,
792
- .comfy-markdown-content ol {
793
- padding-left: 2rem; /* pl-8 */
794
- margin: 0.5rem 0; /* my-2 */
795
- }
796
-
797
- /* Nested lists */
798
- .comfy-markdown-content ul ul,
799
- .comfy-markdown-content ol ol,
800
- .comfy-markdown-content ul ol,
801
- .comfy-markdown-content ol ul {
802
- padding-left: 1.5rem; /* pl-6 */
803
- margin: 0.5rem 0; /* my-2 */
804
- }
805
-
806
- .comfy-markdown-content li {
807
- margin: 0.5rem 0; /* my-2 */
808
- }
809
-
810
- /* Code */
811
- .comfy-markdown-content code {
812
- color: var(--code-text-color);
813
- background-color: var(--code-bg-color);
814
- border-radius: 0.25rem; /* rounded */
815
- padding: 0.125rem 0.375rem; /* px-1.5 py-0.5 */
816
- font-family: monospace;
817
- }
818
-
819
- .comfy-markdown-content pre {
820
- background-color: var(--code-block-bg-color);
821
- border-radius: 0.25rem; /* rounded */
822
- padding: 1rem; /* p-4 */
823
- margin: 1rem 0; /* my-4 */
824
- overflow-x: auto; /* overflow-x-auto */
825
- }
826
-
827
- .comfy-markdown-content pre code {
828
- background-color: transparent; /* bg-transparent */
829
- padding: 0; /* p-0 */
830
- color: var(--p-text-color);
831
- }
832
-
833
- /* Tables */
834
- .comfy-markdown-content table {
835
- width: 100%; /* w-full */
836
- border-collapse: collapse; /* border-collapse */
837
- }
838
-
839
- .comfy-markdown-content th,
840
- .comfy-markdown-content td {
841
- padding: 0.5rem; /* px-2 py-2 */
842
- }
843
-
844
- .comfy-markdown-content th {
845
- color: var(--fg-color);
846
- }
847
-
848
- .comfy-markdown-content td {
849
- color: var(--drag-text);
850
- }
851
-
852
- .comfy-markdown-content tr {
853
- border-bottom: 1px solid var(--content-bg);
854
- }
855
-
856
- .comfy-markdown-content tr:last-child {
857
- border-bottom: none;
858
- }
859
-
860
- .comfy-markdown-content thead {
861
- border-bottom: 1px solid var(--p-text-color);
862
- }
863
-
864
- /* Links */
865
- .comfy-markdown-content a {
866
- color: var(--drag-text);
867
- text-decoration: underline;
868
- }
869
-
870
- /* Media */
871
- .comfy-markdown-content img,
872
- .comfy-markdown-content video {
873
- max-width: 100%; /* max-w-full */
874
- height: auto; /* h-auto */
875
- display: block; /* block */
876
- margin-bottom: 1rem; /* mb-4 */
877
- }
878
-
879
- /* Blockquotes */
880
- .comfy-markdown-content blockquote {
881
- border-left: 3px solid var(--p-primary-color, var(--primary-bg));
882
- padding-left: 0.75em;
883
- margin: 0.5em 0;
884
- opacity: 0.8;
885
- }
886
-
887
- /* Horizontal rule */
888
- .comfy-markdown-content hr {
889
- border: none;
890
- border-top: 1px solid var(--p-border-color, var(--border-color));
891
- margin: 1em 0;
892
- }
893
-
894
- /* Strong and emphasis */
895
- .comfy-markdown-content strong {
896
- font-weight: 700;
897
- }
898
-
899
- .comfy-markdown-content em {
900
- font-style: italic;
901
- }
902
-
903
- .comfy-modal {
904
- display: none; /* Hidden by default */
905
- position: fixed; /* Stay in place */
906
- z-index: 100; /* Sit on top */
907
- padding: 30px 30px 10px;
908
- background-color: var(--comfy-menu-bg); /* Modal background */
909
- color: var(--error-text);
910
- box-shadow: 0 0 20px #888888;
911
- border-radius: 10px;
912
- top: 50%;
913
- left: 50%;
914
- max-width: 80vw;
915
- max-height: 80vh;
916
- transform: translate(-50%, -50%);
917
- overflow: hidden;
918
- justify-content: center;
919
- font-family: monospace;
920
- font-size: 15px;
921
- }
922
-
923
- .comfy-modal-content {
924
- display: flex;
925
- flex-direction: column;
926
- }
927
-
928
- .comfy-modal p {
929
- overflow: auto;
930
- white-space: pre-line; /* This will respect line breaks */
931
- margin-bottom: 20px; /* Add some margin between the text and the close button*/
932
- }
933
-
934
- .comfy-modal select,
935
- .comfy-modal input[type='button'],
936
- .comfy-modal input[type='checkbox'] {
937
- margin: 3px 3px 3px 4px;
938
- }
939
-
940
- .comfy-menu {
941
- font-size: 15px;
942
- position: absolute;
943
- top: 50%;
944
- right: 0;
945
- text-align: center;
946
- z-index: 999;
947
- width: 190px;
948
- display: flex;
949
- flex-direction: column;
950
- align-items: center;
951
- color: var(--descrip-text);
952
- background-color: var(--comfy-menu-bg);
953
- padding: 10px;
954
- border-radius: 0 8px 8px;
955
- box-shadow: 3px 3px 8px rgb(0 0 0 / 0.4);
956
- }
957
-
958
- .comfy-menu-header {
959
- display: flex;
960
- }
961
-
962
- .comfy-menu-actions {
963
- display: flex;
964
- gap: 3px;
965
- align-items: center;
966
- height: 20px;
967
- position: relative;
968
- top: -1px;
969
- font-size: 22px;
970
- }
971
-
972
- .comfy-menu .comfy-menu-actions button {
973
- background-color: rgb(0 0 0 / 0);
974
- padding: 0;
975
- border: none;
976
- cursor: pointer;
977
- font-size: inherit;
978
- }
979
-
980
- .comfy-menu .comfy-menu-actions .comfy-settings-btn {
981
- font-size: 0.6em;
982
- }
983
-
984
- button.comfy-close-menu-btn {
985
- font-size: 1em;
986
- line-height: 12px;
987
- color: #ccc;
988
- position: relative;
989
- top: -1px;
990
- }
991
-
992
- .comfy-menu-queue-size {
993
- flex: auto;
994
- }
995
-
996
- .comfy-menu button,
997
- .comfy-modal button {
998
- font-size: 20px;
999
- }
1000
-
1001
- .comfy-menu-btns {
1002
- margin-bottom: 10px;
1003
- width: 100%;
1004
- }
1005
-
1006
- .comfy-menu-btns button {
1007
- font-size: 10px;
1008
- width: 50%;
1009
- color: var(--descrip-text) !important;
1010
- }
1011
-
1012
- .comfy-menu > button {
1013
- width: 100%;
1014
- }
1015
-
1016
- .comfy-btn,
1017
- .comfy-menu > button,
1018
- .comfy-menu-btns button,
1019
- .comfy-menu .comfy-list button,
1020
- .comfy-modal button {
1021
- color: var(--input-text);
1022
- background-color: var(--comfy-input-bg);
1023
- border-width: initial;
1024
- border-radius: 8px;
1025
- border-color: var(--border-color);
1026
- border-style: solid;
1027
- margin-top: 2px;
1028
- }
1029
-
1030
- .comfy-btn:hover:not(:disabled),
1031
- .comfy-menu > button:hover,
1032
- .comfy-menu-btns button:hover,
1033
- .comfy-menu .comfy-list button:hover,
1034
- .comfy-modal button:hover,
1035
- .comfy-menu-actions button:hover {
1036
- filter: brightness(1.2);
1037
- will-change: transform;
1038
- cursor: pointer;
1039
- }
1040
-
1041
- span.drag-handle {
1042
- display: inline-block;
1043
- overflow: hidden;
1044
- line-height: 5px;
1045
- padding: 3px 4px;
1046
- vertical-align: middle;
1047
- margin-top: -0.4em;
1048
- margin-left: -0.2em;
1049
- font-size: 12px;
1050
- letter-spacing: 2px;
1051
- color: var(--drag-text);
1052
- text-shadow: 1px 0 1px black;
1053
- touch-action: none;
1054
- }
1055
-
1056
- span.drag-handle::after {
1057
- content: '.. .. ..';
1058
- }
1059
-
1060
- .comfy-queue-btn {
1061
- width: 100%;
1062
- }
1063
-
1064
- .comfy-list {
1065
- color: var(--descrip-text);
1066
- background-color: var(--comfy-menu-bg);
1067
- margin-bottom: 10px;
1068
- border-color: var(--border-color);
1069
- border-style: solid;
1070
- }
1071
-
1072
- .comfy-list-items {
1073
- overflow-y: scroll;
1074
- max-height: 100px;
1075
- min-height: 25px;
1076
- background-color: var(--comfy-input-bg);
1077
- padding: 5px;
1078
- }
1079
-
1080
- .comfy-list h4 {
1081
- min-width: 160px;
1082
- margin: 0;
1083
- padding: 3px;
1084
- font-weight: 400;
1085
- }
1086
-
1087
- .comfy-list-items button {
1088
- font-size: 10px;
1089
- }
1090
-
1091
- .comfy-list-actions {
1092
- margin: 5px;
1093
- display: flex;
1094
- gap: 5px;
1095
- justify-content: center;
1096
- }
1097
-
1098
- .comfy-list-actions button {
1099
- font-size: 12px;
1100
- }
1101
-
1102
- button.comfy-queue-btn {
1103
- margin: 6px 0 !important;
1104
- }
1105
-
1106
- .comfy-modal.comfy-settings,
1107
- .comfy-modal.comfy-manage-templates {
1108
- text-align: center;
1109
- color: var(--descrip-text);
1110
- z-index: 99;
1111
- }
1112
-
1113
- .comfy-modal.comfy-settings input[type='range'] {
1114
- vertical-align: middle;
1115
- }
1116
-
1117
- .comfy-modal.comfy-settings input[type='range'] + input[type='number'] {
1118
- width: 3.5em;
1119
- }
1120
-
1121
- .comfy-modal input,
1122
- .comfy-modal select {
1123
- color: var(--input-text);
1124
- background-color: var(--comfy-input-bg);
1125
- border-radius: 8px;
1126
- border-color: var(--border-color);
1127
- border-style: solid;
1128
- font-size: inherit;
1129
- }
1130
-
1131
- .comfy-tooltip-indicator {
1132
- text-decoration: underline;
1133
- text-decoration-style: dashed;
1134
- }
1135
-
1136
- @media only screen and (max-height: 850px) {
1137
- .comfy-menu {
1138
- top: 0 !important;
1139
- bottom: 0 !important;
1140
- left: auto !important;
1141
- right: 0 !important;
1142
- border-radius: 0;
1143
- }
1144
-
1145
- .comfy-menu span.drag-handle {
1146
- display: none;
1147
- }
1148
-
1149
- .comfy-menu-queue-size {
1150
- flex: unset;
1151
- }
1152
-
1153
- .comfy-menu-header {
1154
- justify-content: space-between;
1155
- }
1156
- .comfy-menu-actions {
1157
- gap: 10px;
1158
- font-size: 28px;
1159
- }
1160
- }
1161
-
1162
- /* Input popup */
1163
-
1164
- .graphdialog {
1165
- min-height: 1em;
1166
- background-color: var(--comfy-menu-bg);
1167
- z-index: 1500;
1168
- }
1169
-
1170
- .graphdialog .name {
1171
- font-size: 14px;
1172
- color: var(--descrip-text);
1173
- }
1174
-
1175
- .graphdialog button {
1176
- margin-top: unset;
1177
- vertical-align: unset;
1178
- height: 1.6em;
1179
- padding-right: 8px;
1180
- }
226
+ @import './_markdown.css';
1181
227
 
1182
- .graphdialog input,
1183
- .graphdialog textarea,
1184
- .graphdialog select {
1185
- background-color: var(--comfy-input-bg);
1186
- border: 2px solid;
1187
- border-color: var(--border-color);
1188
- color: var(--input-text);
1189
- border-radius: 12px 0 0 12px;
1190
- }
1191
-
1192
- /* Dialogs */
1193
-
1194
- dialog {
1195
- box-shadow: 0 0 20px #888888;
1196
- }
1197
-
1198
- dialog::backdrop {
1199
- background: rgb(0 0 0 / 0.5);
1200
- }
1201
-
1202
- .comfy-dialog.comfyui-dialog.comfy-modal {
1203
- top: 0;
1204
- left: 0;
1205
- right: 0;
1206
- bottom: 0;
1207
- transform: none;
1208
- }
1209
-
1210
- .comfy-dialog.comfy-modal {
1211
- border-color: var(--bg-color);
1212
- box-shadow: none;
1213
- border: 2px solid var(--border-color);
1214
- }
1215
-
1216
- .comfy-dialog .comfy-modal-content {
1217
- flex-direction: row;
1218
- flex-wrap: wrap;
1219
- gap: 10px;
1220
- color: var(--fg-color);
1221
- }
1222
-
1223
- .comfy-dialog .comfy-modal-content h3 {
1224
- margin-top: 0;
1225
- }
1226
-
1227
- .comfy-dialog .comfy-modal-content > p {
1228
- width: 100%;
1229
- }
1230
-
1231
- .comfy-dialog .comfy-modal-content > .comfyui-button {
1232
- flex: 1;
1233
- justify-content: center;
1234
- }
1235
-
1236
- /* Context menu */
1237
-
1238
- .litegraph .dialog {
1239
- z-index: 1;
1240
- }
1241
-
1242
- .litegraph .litemenu-entry.has_submenu {
1243
- position: relative;
1244
- padding-right: 20px;
1245
- }
1246
-
1247
- .litemenu-entry.has_submenu::after {
1248
- content: '>';
1249
- position: absolute;
1250
- top: 0;
1251
- right: 2px;
1252
- }
1253
-
1254
- .litegraph.litecontextmenu,
1255
- .litegraph.litecontextmenu.dark {
1256
- z-index: 9999 !important;
1257
- background-color: var(--comfy-menu-bg);
1258
- }
1259
-
1260
- .litegraph.litecontextmenu .litemenu-entry.submenu,
1261
- .litegraph.litecontextmenu.dark .litemenu-entry.submenu {
1262
- background-color: var(--comfy-menu-bg);
1263
- color: var(--fg-color);
1264
- }
1265
-
1266
- .litegraph.litecontextmenu input {
1267
- background-color: var(--comfy-input-bg);
1268
- color: var(--input-text);
1269
- }
1270
-
1271
- .comfy-context-menu-filter {
1272
- box-sizing: border-box;
1273
- border: 1px solid #999;
1274
- margin: 0 0 5px 5px;
1275
- width: calc(100% - 10px);
1276
- }
1277
-
1278
- .comfy-img-preview {
1279
- pointer-events: none;
1280
- overflow: hidden;
1281
- display: flex;
1282
- flex-wrap: wrap;
1283
- align-content: flex-start;
1284
- justify-content: center;
1285
- }
1286
-
1287
- .comfy-img-preview img {
1288
- object-fit: contain;
1289
- width: var(--comfy-img-preview-width);
1290
- height: var(--comfy-img-preview-height);
1291
- }
1292
-
1293
- .comfy-img-preview video {
1294
- pointer-events: auto;
1295
- object-fit: contain;
1296
- height: 100%;
1297
- width: 100%;
1298
- }
1299
-
1300
- .comfy-missing-nodes li button {
1301
- font-size: 12px;
1302
- margin-left: 5px;
1303
- }
1304
-
1305
- /* Search box */
1306
-
1307
- .litegraph.litesearchbox {
1308
- z-index: 9999 !important;
1309
- background-color: var(--comfy-menu-bg);
1310
- overflow: hidden;
1311
- display: block;
1312
- }
1313
-
1314
- .litegraph.litesearchbox input,
1315
- .litegraph.litesearchbox select {
1316
- background-color: var(--comfy-input-bg);
1317
- color: var(--input-text);
1318
- }
1319
-
1320
- .litegraph.lite-search-item {
1321
- color: var(--input-text);
1322
- background-color: var(--comfy-input-bg);
1323
- filter: brightness(80%);
1324
- will-change: transform;
1325
- padding-left: 0.2em;
1326
- }
1327
-
1328
- .litegraph.lite-search-item.generic_type {
1329
- color: var(--input-text);
1330
- filter: brightness(50%);
1331
- will-change: transform;
1332
- }
228
+ @import './_legacy-ui.css';
1333
229
 
1334
230
  audio.comfy-audio.empty-audio-widget {
1335
231
  display: none;
@@ -1343,15 +239,6 @@ audio.comfy-audio.empty-audio-widget {
1343
239
  height: 100%;
1344
240
  }
1345
241
 
1346
- /* Set auto complete panel's width as it is not accessible within vue-root */
1347
- .p-autocomplete-overlay {
1348
- max-width: 25vw;
1349
- }
1350
-
1351
- .p-tree-node-content {
1352
- padding: var(--comfy-tree-explorer-item-padding) !important;
1353
- }
1354
-
1355
242
  /* [Desktop] Electron window specific styles */
1356
243
  .app-drag {
1357
244
  app-region: drag;
@@ -1371,475 +258,13 @@ audio.comfy-audio.empty-audio-widget {
1371
258
  user-select: none;
1372
259
  }
1373
260
 
1374
- .lg-node .lg-slot,
1375
- .lg-node .lg-widget {
261
+ .lg-node .lg-slot {
1376
262
  transition:
1377
263
  opacity 0.1s ease,
1378
264
  font-size 0.1s ease;
1379
265
  }
1380
266
 
1381
- /* ===================== Mask Editor Styles ===================== */
1382
- /* To be migrated to Tailwind later */
1383
- #maskEditor_brush {
1384
- position: absolute;
1385
- backgroundcolor: transparent;
1386
- z-index: 8889;
1387
- pointer-events: none;
1388
- border-radius: 50%;
1389
- overflow: visible;
1390
- outline: 1px dashed black;
1391
- box-shadow: 0 0 0 1px white;
1392
- }
1393
- #maskEditor_brushPreviewGradient {
1394
- position: absolute;
1395
- width: 100%;
1396
- height: 100%;
1397
- border-radius: 50%;
1398
- display: none;
1399
- }
1400
- .maskEditor_sidePanelTitle {
1401
- text-align: center;
1402
- font-size: 15px;
1403
- color: var(--descrip-text);
1404
- margin-top: 10px;
1405
- }
1406
- .maskEditor_sidePanelBrushShapeCircle {
1407
- width: 35px;
1408
- height: 35px;
1409
- border-radius: 50%;
1410
- border: 1px solid var(--border-color);
1411
- pointer-events: auto;
1412
- transition: background 0.1s;
1413
- margin-left: 7.5px;
1414
- }
1415
- .maskEditor_sidePanelBrushRange {
1416
- width: 180px;
1417
- appearance: none;
1418
- background: transparent;
1419
- cursor: pointer;
1420
- }
1421
- .maskEditor_sidePanelBrushRange::-webkit-slider-thumb {
1422
- height: 20px;
1423
- width: 20px;
1424
- border-radius: 50%;
1425
- cursor: grab;
1426
- margin-top: -8px;
1427
- background: var(--p-surface-700);
1428
- border: 1px solid var(--border-color);
1429
- }
1430
- .maskEditor_sidePanelBrushRange::-moz-range-thumb {
1431
- height: 20px;
1432
- width: 20px;
1433
- border-radius: 50%;
1434
- cursor: grab;
1435
- background: var(--p-surface-800);
1436
- border: 1px solid var(--border-color);
1437
- }
1438
- .maskEditor_sidePanelBrushRange::-webkit-slider-runnable-track {
1439
- background: var(--p-surface-700);
1440
- height: 3px;
1441
- }
1442
- .maskEditor_sidePanelBrushRange::-moz-range-track {
1443
- background: var(--p-surface-700);
1444
- height: 3px;
1445
- }
1446
-
1447
- .maskEditor_sidePanelBrushShapeSquare {
1448
- width: 35px;
1449
- height: 35px;
1450
- margin: 5px;
1451
- border: 1px solid var(--border-color);
1452
- pointer-events: auto;
1453
- transition: background 0.1s;
1454
- }
1455
-
1456
- .maskEditor_brushShape_dark {
1457
- background: transparent;
1458
- }
1459
-
1460
- .maskEditor_brushShape_dark:hover {
1461
- background: var(--p-surface-900);
1462
- }
1463
-
1464
- .maskEditor_brushShape_light {
1465
- background: transparent;
1466
- }
1467
-
1468
- .maskEditor_brushShape_light:hover {
1469
- background: var(--comfy-menu-bg);
1470
- }
1471
-
1472
- .maskEditor_sidePanelLayer {
1473
- display: flex;
1474
- width: 100%;
1475
- height: 50px;
1476
- }
1477
- .maskEditor_sidePanelLayerVisibilityContainer {
1478
- width: 50px;
1479
- height: 50px;
1480
- border-radius: 8px;
1481
- display: flex;
1482
- justify-content: center;
1483
- align-items: center;
1484
- }
1485
- .maskEditor_sidePanelVisibilityToggle {
1486
- width: 12px;
1487
- height: 12px;
1488
- border-radius: 50%;
1489
- pointer-events: auto;
1490
- }
1491
- .maskEditor_sidePanelLayerIconContainer {
1492
- width: 60px;
1493
- height: 50px;
1494
- border-radius: 8px;
1495
- display: flex;
1496
- justify-content: center;
1497
- align-items: center;
1498
- fill: var(--input-text);
1499
- }
1500
- .maskEditor_sidePanelLayerIconContainer svg {
1501
- width: 30px;
1502
- height: 30px;
1503
- }
1504
- .maskEditor_sidePanelBigButton {
1505
- width: 85px;
1506
- height: 30px;
1507
- background: rgb(0 0 0 / 0.2);
1508
- border: 1px solid var(--border-color);
1509
- color: var(--input-text);
1510
- font-size: 15px;
1511
- pointer-events: auto;
1512
- transition: background-color 0.1s;
1513
- }
1514
- .maskEditor_sidePanelBigButton:hover {
1515
- background-color: var(--p-overlaybadge-outline-color);
1516
- border: none;
1517
- }
1518
- .maskEditor_toolPanelContainer {
1519
- width: 4rem;
1520
- height: 4rem;
1521
- display: flex;
1522
- justify-content: center;
1523
- align-items: center;
1524
- position: relative;
1525
- transition: background-color 0.2s;
1526
- }
1527
- .maskEditor_toolPanelContainerSelected svg {
1528
- fill: var(--p-button-text-primary-color) !important;
1529
- }
1530
- .maskEditor_toolPanelContainerSelected .maskEditor_toolPanelIndicator {
1531
- display: block;
1532
- }
1533
- .maskEditor_toolPanelContainer svg {
1534
- width: 75%;
1535
- aspect-ratio: 1/1;
1536
- fill: var(--p-button-text-secondary-color);
1537
- }
1538
-
1539
- .maskEditor_toolPanelContainerDark:hover {
1540
- background-color: var(--p-surface-800);
1541
- }
1542
-
1543
- .maskEditor_toolPanelContainerLight:hover {
1544
- background-color: var(--p-surface-300);
1545
- }
1546
-
1547
- .maskEditor_toolPanelIndicator {
1548
- display: none;
1549
- height: 100%;
1550
- width: 4px;
1551
- position: absolute;
1552
- left: 0;
1553
- background: var(--p-button-text-primary-color);
1554
- }
1555
- .maskEditor_sidePanelSeparator {
1556
- width: 100%;
1557
- height: 2px;
1558
- background: var(--border-color);
1559
- margin-top: 1.5em;
1560
- margin-bottom: 5px;
1561
- }
1562
- #maskEditorCanvasContainer {
1563
- position: absolute;
1564
- width: 1000px;
1565
- height: 667px;
1566
- left: 359px;
1567
- top: 280px;
1568
- }
1569
-
1570
- .maskEditor_topPanelIconButton_dark {
1571
- width: 50px;
1572
- height: 30px;
1573
- pointer-events: auto;
1574
- display: flex;
1575
- justify-content: center;
1576
- align-items: center;
1577
- transition: background-color 0.1s;
1578
- background: var(--p-surface-800);
1579
- border: 1px solid var(--p-form-field-border-color);
1580
- border-radius: 10px;
1581
- }
1582
-
1583
- .maskEditor_topPanelIconButton_dark:hover {
1584
- background-color: var(--p-surface-900);
1585
- }
1586
-
1587
- .maskEditor_topPanelIconButton_dark svg {
1588
- width: 25px;
1589
- height: 25px;
1590
- pointer-events: none;
1591
- fill: var(--input-text);
1592
- }
1593
-
1594
- .maskEditor_topPanelIconButton_light {
1595
- width: 50px;
1596
- height: 30px;
1597
- pointer-events: auto;
1598
- display: flex;
1599
- justify-content: center;
1600
- align-items: center;
1601
- transition: background-color 0.1s;
1602
- background: var(--comfy-menu-bg);
1603
- border: 1px solid var(--p-form-field-border-color);
1604
- border-radius: 10px;
1605
- }
1606
-
1607
- .maskEditor_topPanelIconButton_light:hover {
1608
- background-color: var(--p-surface-300);
1609
- }
1610
-
1611
- .maskEditor_topPanelIconButton_light svg {
1612
- width: 25px;
1613
- height: 25px;
1614
- pointer-events: none;
1615
- fill: var(--input-text);
1616
- }
1617
-
1618
- .maskEditor_topPanelButton_dark {
1619
- height: 30px;
1620
- background: var(--p-surface-800);
1621
- border: 1px solid var(--p-form-field-border-color);
1622
- border-radius: 10px;
1623
- color: var(--input-text);
1624
- pointer-events: auto;
1625
- transition: 0.1s;
1626
- width: 60px;
1627
- }
1628
-
1629
- .maskEditor_topPanelButton_dark:hover {
1630
- background-color: var(--p-surface-900);
1631
- }
1632
-
1633
- .maskEditor_topPanelButton_light {
1634
- height: 30px;
1635
- background: var(--comfy-menu-bg);
1636
- border: 1px solid var(--p-form-field-border-color);
1637
- border-radius: 10px;
1638
- color: var(--input-text);
1639
- pointer-events: auto;
1640
- transition: 0.1s;
1641
- width: 60px;
1642
- }
1643
-
1644
- .maskEditor_topPanelButton_light:hover {
1645
- background-color: var(--p-surface-300);
1646
- }
1647
-
1648
- .maskEditor_sidePanel_paintBucket_Container {
1649
- width: 180px;
1650
- display: flex;
1651
- flex-direction: column;
1652
- position: relative;
1653
- }
1654
-
1655
- .maskEditor_sidePanel_colorSelect_Container {
1656
- display: flex;
1657
- width: 180px;
1658
- align-items: center;
1659
- gap: 5px;
1660
- height: 30px;
1661
- }
1662
-
1663
- .maskEditor_sidePanel_colorSelect_tolerance_container {
1664
- display: flex;
1665
- flex-direction: column;
1666
- gap: 10px;
1667
- margin-bottom: 10px;
1668
- }
1669
-
1670
- .maskEditor_sidePanelContainerColumn {
1671
- display: flex;
1672
- flex-direction: column;
1673
- gap: 12px;
1674
- padding-bottom: 12px;
1675
- }
1676
-
1677
- .maskEditor_sidePanelContainerRow {
1678
- display: flex;
1679
- flex-direction: row;
1680
- gap: 10px;
1681
- align-items: center;
1682
- min-height: 24px;
1683
- position: relative;
1684
- }
1685
-
1686
- .maskEditor_accent_bg_dark {
1687
- background: var(--p-surface-800);
1688
- }
1689
-
1690
- .maskEditor_accent_bg_very_dark {
1691
- background: var(--p-surface-900);
1692
- }
1693
-
1694
- .maskEditor_accent_bg_light {
1695
- background: var(--p-surface-300);
1696
- }
1697
-
1698
- .maskEditor_accent_bg_very_light {
1699
- background: var(--comfy-menu-bg);
1700
- }
1701
-
1702
- .maskEditor_sidePanelToggleContainer {
1703
- cursor: pointer;
1704
- display: inline-block;
1705
- position: absolute;
1706
- right: 0;
1707
- }
1708
-
1709
- .maskEditor_sidePanelToggleSwitch {
1710
- display: inline-block;
1711
- border-radius: 16px;
1712
- width: 40px;
1713
- height: 24px;
1714
- position: relative;
1715
- vertical-align: middle;
1716
- transition: background 0.25s;
1717
- background: var(--p-surface-300);
1718
- }
1719
-
1720
- .dark-theme .maskEditor_sidePanelToggleSwitch {
1721
- background: var(--p-surface-700);
1722
- }
1723
-
1724
- .maskEditor_sidePanelToggleSwitch::before,
1725
- .maskEditor_sidePanelToggleSwitch::after {
1726
- content: '';
1727
- }
1728
- .maskEditor_sidePanelToggleSwitch::before {
1729
- display: block;
1730
- background: linear-gradient(to bottom, #fff 0%, #eee 100%);
1731
- border-radius: 50%;
1732
- width: 16px;
1733
- height: 16px;
1734
- position: absolute;
1735
- top: 4px;
1736
- left: 4px;
1737
- transition: ease 0.2s;
1738
- }
1739
- .maskEditor_sidePanelToggleContainer:hover
1740
- .maskEditor_sidePanelToggleSwitch::before {
1741
- background: linear-gradient(to bottom, #fff 0%, #fff 100%);
1742
- }
1743
- .maskEditor_sidePanelToggleCheckbox:checked
1744
- + .maskEditor_sidePanelToggleSwitch {
1745
- background: var(--p-button-text-primary-color);
1746
- }
1747
- .maskEditor_sidePanelToggleCheckbox:checked
1748
- + .maskEditor_sidePanelToggleSwitch::before {
1749
- background: var(--comfy-menu-bg);
1750
- left: 20px;
1751
- }
1752
- .dark-theme
1753
- .maskEditor_sidePanelToggleCheckbox:checked
1754
- + .maskEditor_sidePanelToggleSwitch::before {
1755
- background: var(--p-surface-900);
1756
- }
1757
-
1758
- .maskEditor_sidePanelToggleCheckbox {
1759
- position: absolute;
1760
- visibility: hidden;
1761
- }
1762
-
1763
- .maskEditor_sidePanelDropdown {
1764
- border: 1px solid var(--p-form-field-border-color);
1765
- background: var(--comfy-menu-bg);
1766
- height: 24px;
1767
- padding-left: 5px;
1768
- padding-right: 5px;
1769
- border-radius: 6px;
1770
- transition: background 0.1s;
1771
- }
1772
-
1773
- .maskEditor_sidePanelDropdown option {
1774
- background: var(--comfy-menu-bg);
1775
- }
1776
-
1777
- .maskEditor_sidePanelDropdown:focus {
1778
- outline: 1px solid var(--p-surface-300);
1779
- }
1780
-
1781
- .maskEditor_sidePanelDropdown option:hover {
1782
- background: white;
1783
- }
1784
- .maskEditor_sidePanelDropdown option:active {
1785
- background: var(--p-surface-300);
1786
- }
1787
-
1788
- .dark-theme .maskEditor_sidePanelDropdown {
1789
- background: var(--p-surface-900);
1790
- }
1791
-
1792
- .dark-theme .maskEditor_sidePanelDropdown option {
1793
- background: var(--p-surface-900);
1794
- }
1795
-
1796
- .dark-theme .maskEditor_sidePanelDropdown:focus {
1797
- outline: 1px solid var(--p-button-text-primary-color);
1798
- }
1799
-
1800
- .dark-theme .maskEditor_sidePanelDropdown option:active {
1801
- background: var(--p-highlight-background);
1802
- }
1803
-
1804
- .maskEditor_layerRow {
1805
- height: 50px;
1806
- width: 100%;
1807
- border-radius: 10px;
1808
- }
1809
-
1810
- .maskEditor_sidePanelLayerPreviewContainer {
1811
- width: 40px;
1812
- height: 30px;
1813
- }
1814
-
1815
- .maskEditor_sidePanelLayerPreviewContainer > svg {
1816
- width: 100%;
1817
- height: 100%;
1818
- object-fit: contain;
1819
- fill: var(--p-surface-100);
1820
- }
1821
-
1822
- .maskEditor_sidePanelImageLayerImage {
1823
- width: 100%;
1824
- height: 100%;
1825
- object-fit: contain;
1826
- }
1827
-
1828
- .maskEditor_sidePanelSubTitle {
1829
- text-align: left;
1830
- font-size: 12px;
1831
- color: var(--descrip-text);
1832
- }
1833
-
1834
- .maskEditor_containerDropdown {
1835
- position: absolute;
1836
- right: 0;
1837
- }
1838
-
1839
- .maskEditor_sidePanelLayerCheckbox {
1840
- margin-left: 15px;
1841
- }
1842
- /* ===================== End of Mask Editor Styles ===================== */
267
+ @import './_mask-editor.css';
1843
268
 
1844
269
  /* ===================== Skeleton Shimmer ===================== */
1845
270
  .skeleton-shimmer {
@@ -1893,17 +318,3 @@ audio.comfy-audio.empty-audio-widget {
1893
318
  300% 14px;
1894
319
  background-attachment: local, local, scroll, scroll;
1895
320
  }
1896
-
1897
- /*
1898
- PrimeVue overlays teleport to body. When a Reka modal dialog is open it sets
1899
- body { pointer-events: none } via DismissableLayer, which propagates to the
1900
- body-portaled overlays and makes them unclickable. PrimeVue's own Dialog
1901
- sets pointer-events inline, but Select / ColorPicker / Popover / Autocomplete
1902
- overlays do not, so they need to opt in here.
1903
- */
1904
- .p-select-overlay,
1905
- .p-colorpicker-panel,
1906
- .p-popover,
1907
- .p-autocomplete-overlay {
1908
- pointer-events: auto;
1909
- }