@comfyorg/design-system 1.2.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.
Files changed (300) hide show
  1. package/README.md +27 -3
  2. package/dist/accordion/PropertiesAccordionItem.vue.d.ts +34 -0
  3. package/dist/accordion/PropertiesAccordionItem.vue.js +62 -0
  4. package/dist/badge/Badge.vue.js +1 -2
  5. package/dist/badge/CreditBadge.vue.d.ts +0 -1
  6. package/dist/badge/CreditBadge.vue.js +10 -24
  7. package/dist/badge/badge.variants.d.ts +1 -1
  8. package/dist/button/Button.vue.js +1 -2
  9. package/dist/button-group/ButtonGroup.vue.js +2 -4
  10. package/dist/button-group/IconGroup.vue.js +2 -4
  11. package/dist/card/Card.vue.js +1 -2
  12. package/dist/card/CardFooter.vue.js +1 -2
  13. package/dist/card/CardHeader.vue.js +1 -2
  14. package/dist/card/CoachmarkCard.vue.js +2 -4
  15. package/dist/chart/Chart.vue.js +4 -7
  16. package/dist/chart/__tests__/chartTestUtils.d.ts +3 -0
  17. package/dist/checkbox/Checkbox.vue.js +2 -4
  18. package/dist/chip/Tag.vue.d.ts +61 -0
  19. package/dist/chip/Tag.vue.js +71 -0
  20. package/dist/chip/TagRemoveButton.vue.js +1 -2
  21. package/dist/color-picker/ColorPicker.vue.d.ts +23 -0
  22. package/dist/color-picker/ColorPicker.vue.js +139 -0
  23. package/dist/color-picker/ColorPickerPanel.vue.d.ts +27 -0
  24. package/dist/color-picker/ColorPickerPanel.vue.js +1 -0
  25. package/dist/color-picker/ColorPickerSaturationValue.vue.d.ts +17 -0
  26. package/dist/color-picker/ColorPickerSaturationValue.vue.js +1 -0
  27. package/dist/color-picker/ColorPickerSlider.vue.d.ts +17 -0
  28. package/dist/color-picker/ColorPickerSlider.vue.js +1 -0
  29. package/dist/color-picker/types.d.ts +22 -0
  30. package/dist/color-picker/types.js +0 -0
  31. package/dist/color-picker/useColorPicker.d.ts +33 -0
  32. package/dist/common/CanvasBanner.vue.js +3 -5
  33. package/dist/common/ContentDivider.vue.js +2 -4
  34. package/dist/common/CustomFormValue.vue.js +1 -3
  35. package/dist/common/DotSpinner.vue.js +3 -5
  36. package/dist/common/EditableText.vue.js +3 -5
  37. package/dist/common/HighlightedText.vue.d.ts +8 -0
  38. package/dist/common/HighlightedText.vue.js +49 -0
  39. package/dist/common/LoadingOverlay.vue.js +3 -5
  40. package/dist/common/MarkdownText.vue.js +2 -4
  41. package/dist/common/MarqueeLine.vue.js +2 -3
  42. package/dist/common/NoResultsPlaceholder.vue.d.ts +28 -0
  43. package/dist/common/NoResultsPlaceholder.vue.js +49 -0
  44. package/dist/common/NotificationPopup.vue.d.ts +28 -0
  45. package/dist/common/NotificationPopup.vue.js +63 -0
  46. package/dist/common/OverlayIcon.vue.js +1 -2
  47. package/dist/common/SanitizedHtml.vue.js +2 -4
  48. package/dist/common/TextDivider.vue.js +3 -5
  49. package/dist/common/TextTicker.vue.js +2 -4
  50. package/dist/common/TextTickerMultiLine.vue.js +3 -6
  51. package/dist/common/UserAvatar.vue.d.ts +9 -0
  52. package/dist/common/UserAvatar.vue.js +45 -0
  53. package/dist/common/VerticalDivider.vue.js +2 -3
  54. package/dist/common/VideoCompareSlider.vue.js +3 -5
  55. package/dist/common/ViewportWidgetShell.vue.js +3 -5
  56. package/dist/common/VirtualGrid.vue.js +1 -3
  57. package/dist/common/highlightQuery.d.ts +6 -0
  58. package/dist/composables/useAttrsClass.js +1 -2
  59. package/dist/composables/usePopoverSizing.js +1 -2
  60. package/dist/confirm/ConfirmBody.vue.js +3 -5
  61. package/dist/confirm/ConfirmFooter.vue.d.ts +18 -0
  62. package/dist/confirm/ConfirmFooter.vue.js +53 -0
  63. package/dist/confirm/ConfirmHeader.vue.js +2 -4
  64. package/dist/content-card/CardBottom.vue.js +2 -4
  65. package/dist/content-card/CardContainer.vue.js +3 -5
  66. package/dist/content-card/CardTop.vue.js +2 -4
  67. package/dist/dialog/Dialog.vue.js +1 -3
  68. package/dist/dialog/DialogClose.vue.js +1 -24
  69. package/dist/dialog/DialogContent.vue.js +1 -73
  70. package/dist/dialog/DialogDescription.vue.js +2 -4
  71. package/dist/dialog/DialogFooter.vue.js +2 -4
  72. package/dist/dialog/DialogHeader.vue.js +2 -4
  73. package/dist/dialog/DialogMaximize.vue.js +2 -4
  74. package/dist/dialog/DialogOverlay.vue.js +1 -35
  75. package/dist/dialog/DialogPanel.vue.js +7 -9
  76. package/dist/dialog/DialogPortal.vue.js +1 -38
  77. package/dist/dialog/DialogTitle.vue.js +1 -2
  78. package/dist/dialog/Dialogue.vue.d.ts +22 -0
  79. package/dist/dialog/Dialogue.vue.js +56 -0
  80. package/dist/dialog/dialog.variants.js +4 -5
  81. package/dist/field/Field.vue.js +4 -7
  82. package/dist/field/FieldDescription.vue.js +2 -4
  83. package/dist/field/FieldError.vue.js +3 -5
  84. package/dist/field/FieldGroup.vue.js +2 -4
  85. package/dist/field/FieldLabel.vue.js +3 -5
  86. package/dist/field/FieldSwitch.vue.d.ts +16 -0
  87. package/dist/field/FieldSwitch.vue.js +43 -0
  88. package/dist/field/LayoutField.vue.d.ts +18 -0
  89. package/dist/field/LayoutField.vue.js +1 -0
  90. package/dist/field/ModelInfoField.vue.js +2 -4
  91. package/dist/hover-card/HoverCard.vue.js +1 -3
  92. package/dist/hover-card/HoverCardContent.vue.js +2 -4
  93. package/dist/hover-card/HoverCardTrigger.vue.js +1 -3
  94. package/dist/icon/ComfyLogo.vue.js +2 -4
  95. package/dist/icon/PuzzleIcon.vue.js +2 -4
  96. package/dist/icon/TinyChevronIcon.vue.js +1 -3
  97. package/dist/icon/VerifiedIcon.vue.js +2 -4
  98. package/dist/input/Input.vue.js +1 -2
  99. package/dist/input/PasswordInput.vue.js +5 -7
  100. package/dist/input-group/InputGroup.vue.js +1 -2
  101. package/dist/input-group/InputGroupAddon.vue.js +1 -2
  102. package/dist/input-group/InputGroupButton.vue.js +1 -2
  103. package/dist/input-group/InputGroupInput.vue.js +1 -2
  104. package/dist/input-group/inputGroup.variants.js +1 -2
  105. package/dist/knob/Knob.vue.js +3 -5
  106. package/dist/label/Label.vue.js +1 -2
  107. package/dist/layout/BaseModalLayout.vue.d.ts +67 -0
  108. package/dist/layout/BaseModalLayout.vue.js +198 -0
  109. package/dist/media/AudioPreview.vue.js +2 -4
  110. package/dist/media/ImageLightbox.vue.d.ts +17 -0
  111. package/dist/media/ImageLightbox.vue.js +76 -0
  112. package/dist/media/MediaTitle.vue.js +2 -4
  113. package/dist/media/Video.vue.d.ts +28 -0
  114. package/dist/media/Video.vue.js +100 -0
  115. package/dist/media/VideoPlayOverlay.vue.js +3 -5
  116. package/dist/media/VideoPreview.vue.js +2 -4
  117. package/dist/media/ZoomPane.vue.js +1 -3
  118. package/dist/menu/ContextMenu.vue.js +3 -5
  119. package/dist/menu/ContextMenuContent.vue.js +1 -2
  120. package/dist/menu/Menu.vue.js +3 -5
  121. package/dist/menu/MenuAction.vue.js +1 -2
  122. package/dist/menu/MenuContent.vue.js +1 -2
  123. package/dist/menu/MenuItem.vue.js +2 -4
  124. package/dist/menu/MenuItemContent.vue.js +1 -2
  125. package/dist/menu/MenuItems.vue.js +1 -2
  126. package/dist/menu/MenuRadioGroup.vue.js +1 -2
  127. package/dist/menu/MenuRadioItem.vue.js +1 -2
  128. package/dist/menu/MenuSeparator.vue.js +1 -2
  129. package/dist/menu/MenuSub.vue.js +1 -2
  130. package/dist/menu/MenuSubContent.vue.js +1 -2
  131. package/dist/menu/MenuSubTrigger.vue.js +1 -2
  132. package/dist/menu/MenuSubmenu.vue.js +1 -2
  133. package/dist/menu/menuAnchor.js +1 -2
  134. package/dist/menu/menuStyles.js +1 -2
  135. package/dist/menu/usePointMenu.js +1 -2
  136. package/dist/message/Message.vue.js +4 -6
  137. package/dist/message/message.variants.js +1 -2
  138. package/dist/multi-select/MultiSelect.vue.js +3 -5
  139. package/dist/multi-select/MultiSelectContent.vue.js +1 -2
  140. package/dist/multi-select/MultiSelectTrigger.vue.js +1 -2
  141. package/dist/navigation/LeftSidePanel.vue.d.ts +12 -0
  142. package/dist/navigation/LeftSidePanel.vue.js +82 -0
  143. package/dist/navigation/NavIcon.vue.d.ts +7 -0
  144. package/dist/navigation/NavIcon.vue.js +1 -0
  145. package/dist/navigation/NavItem.vue.d.ts +21 -0
  146. package/dist/navigation/NavItem.vue.js +1 -0
  147. package/dist/navigation/NavTitle.vue.js +1 -42
  148. package/dist/navigation/SidebarTopArea.vue.js +2 -3
  149. package/dist/navigation/types.d.ts +13 -0
  150. package/dist/navigation/types.js +0 -0
  151. package/dist/number-field/NumberField.vue.js +2 -4
  152. package/dist/number-field/NumberFieldDecrement.vue.js +2 -4
  153. package/dist/number-field/NumberFieldIncrement.vue.js +2 -4
  154. package/dist/number-field/NumberFieldInput.vue.js +2 -4
  155. package/dist/number-field/PropertyNumberField.vue.js +3 -5
  156. package/dist/pagination/Pagination.vue.js +8 -10
  157. package/dist/popover/PopoverContent.vue.js +1 -91
  158. package/dist/popover/usePopoverViewportDismiss.js +1 -2
  159. package/dist/radio-group/RadioGroup.vue.js +2 -4
  160. package/dist/radio-group/RadioGroupItem.vue.js +2 -4
  161. package/dist/search-input/AsyncSearchInput.vue.js +3 -5
  162. package/dist/search-input/SearchAutocomplete.vue.js +4 -6
  163. package/dist/search-input/SearchInput.vue.js +4 -6
  164. package/dist/select/DropdownControl.vue.js +2 -4
  165. package/dist/select/Select.vue.js +1 -2
  166. package/dist/select/SelectContent.vue.js +1 -2
  167. package/dist/select/SelectItem.vue.d.ts +4 -0
  168. package/dist/select/SelectItem.vue.js +1 -2
  169. package/dist/select/SelectScrollDownButton.vue.js +1 -2
  170. package/dist/select/SelectScrollUpButton.vue.js +1 -2
  171. package/dist/select/SelectTrigger.vue.js +1 -2
  172. package/dist/select/SelectValue.vue.js +1 -2
  173. package/dist/select/useSelectSearch.js +1 -2
  174. package/dist/shared/{Badge-D3uWa3yk.js → Badge-DFHO3AFi.js} +4 -6
  175. package/dist/shared/{Button-CilmsOkY.js → Button-Dj_H5v3V.js} +5 -8
  176. package/dist/shared/{Card-l7baUdn0.js → Card-BrvqUM49.js} +3 -5
  177. package/dist/shared/{CardFooter-BM6EmVi7.js → CardFooter-BV_I0pM-.js} +2 -4
  178. package/dist/shared/{CardHeader-B5To28Jp.js → CardHeader-CMutruBx.js} +2 -4
  179. package/dist/shared/ColorPickerPanel-DQGHuvxk.js +239 -0
  180. package/dist/shared/ColorPickerSaturationValue-B5VDiMcl.js +64 -0
  181. package/dist/shared/ColorPickerSlider--mnQyzWD.js +305 -0
  182. package/dist/shared/{ContextMenuContent-CNQHJQ81.js → ContextMenuContent-RNyBBJOX.js} +2 -4
  183. package/dist/shared/DialogClose-CrtPRSNX.js +22 -0
  184. package/dist/shared/DialogContent-v2s55FXs.js +71 -0
  185. package/dist/shared/DialogOverlay-C9qv0zme.js +33 -0
  186. package/dist/shared/DialogPortal-DtCpLgtO.js +36 -0
  187. package/dist/shared/{DialogTitle-CfkkTGuU.js → DialogTitle-Chomvpgq.js} +2 -4
  188. package/dist/shared/{Input-39RLwDr2.js → Input-DOeNoniw.js} +2 -4
  189. package/dist/shared/{InputGroup-kjQKkhyB.js → InputGroup-BYt6BWpk.js} +2 -4
  190. package/dist/shared/{InputGroupAddon-DLDRT0CQ.js → InputGroupAddon-B1cn7czs.js} +3 -5
  191. package/dist/shared/{InputGroupButton-BoEp2apg.js → InputGroupButton-tw5AYOoR.js} +3 -5
  192. package/dist/shared/{InputGroupInput-E2MlEVUU.js → InputGroupInput-C_kkIxvY.js} +3 -5
  193. package/dist/shared/{Label-Cx_lFofI.js → Label-kwhWNR2P.js} +2 -4
  194. package/dist/shared/LayoutField-C8KCaVF0.js +34 -0
  195. package/dist/shared/{MenuAction-BdghJ23k.js → MenuAction-0z8BSoX9.js} +5 -8
  196. package/dist/shared/{MenuContent-ChqlM3xA.js → MenuContent--tKCqaIO.js} +2 -4
  197. package/dist/shared/{MenuItemContent--dPNoBmU.js → MenuItemContent-Be658c7e.js} +6 -8
  198. package/dist/shared/{MenuItems-BJKetPV-.js → MenuItems-BZTlERd6.js} +5 -7
  199. package/dist/shared/{MenuRadioGroup-Bpjt9sHI.js → MenuRadioGroup-B28YS1p1.js} +4 -6
  200. package/dist/shared/{MenuRadioItem-h7hh_RGU.js → MenuRadioItem-D8DFu-KU.js} +2 -4
  201. package/dist/shared/{MenuSeparator-Dm6CkPqB.js → MenuSeparator-DrAiObmE.js} +2 -4
  202. package/dist/shared/{MenuSub-Dbnj2w-X.js → MenuSub-DSizq_fV.js} +1 -3
  203. package/dist/shared/{MenuSubContent-M-g3fllh.js → MenuSubContent-ghzkX4hX.js} +2 -4
  204. package/dist/shared/{MenuSubTrigger-D6-3s2NL.js → MenuSubTrigger-BGRIm_Bf.js} +2 -4
  205. package/dist/shared/{MenuSubmenu-QHWMyfKF.js → MenuSubmenu-CjPf8DXl.js} +5 -7
  206. package/dist/shared/{MultiSelectContent-c1D5avjh.js → MultiSelectContent-9xyBQKz3.js} +5 -7
  207. package/dist/shared/{MultiSelectTrigger-lmuXqETa.js → MultiSelectTrigger-DNySkpH9.js} +4 -6
  208. package/dist/shared/NavIcon-FTJH75HH.js +12 -0
  209. package/dist/shared/NavItem-sQJ-77Zw.js +77 -0
  210. package/dist/shared/NavTitle-BM22yfCR.js +40 -0
  211. package/dist/shared/{OverlayIcon-DntJI-mm.js → OverlayIcon-C-din824.js} +3 -5
  212. package/dist/shared/PopoverContent-DNqL6t-O.js +89 -0
  213. package/dist/shared/{SearchableSingleSelect-Dnti1kqJ.js → SearchableSingleSelect-DQauLQWW.js} +4 -6
  214. package/dist/shared/{Select-CP3OZjtL.js → Select-DtVgv7Po.js} +1 -3
  215. package/dist/shared/{SelectContent-C8aNlcFf.js → SelectContent-Ba1mCDWM.js} +4 -6
  216. package/dist/shared/{SelectItem-tU4CIa5J.js → SelectItem-DaOr3TFS.js} +23 -10
  217. package/dist/shared/{SelectScrollDownButton-Dvig5MVc.js → SelectScrollDownButton-DYmxtida.js} +2 -4
  218. package/dist/shared/{SelectScrollUpButton-lv-npT6v.js → SelectScrollUpButton-DiyvSb9O.js} +2 -4
  219. package/dist/shared/{SelectTrigger-CCDiZW91.js → SelectTrigger-BBicbVsI.js} +2 -4
  220. package/dist/shared/{SelectValue-DFZFSiQp.js → SelectValue-BjaQc-WU.js} +1 -3
  221. package/dist/shared/{Switch-DsCzHpDU.js → Switch-qavkHWMz.js} +3 -5
  222. package/dist/shared/{TableHead-OxGist4m.js → TableHead-DpsXVMzk.js} +2 -4
  223. package/dist/shared/{TagRemoveButton-BiCdscIC.js → TagRemoveButton-D919R-To.js} +4 -6
  224. package/dist/shared/{TextTooltip-ClHQl84h.js → TextTooltip-BNlZI515.js} +4 -6
  225. package/dist/shared/{Tooltip-DbXyHv20.js → Tooltip-4rCebVao.js} +2 -4
  226. package/dist/shared/{TooltipContent-Bju-U7gc.js → TooltipContent-0GR7hBNu.js} +3 -5
  227. package/dist/shared/{TooltipTrigger-CVwISmWo.js → TooltipTrigger-64EIE5f2.js} +2 -4
  228. package/dist/shared/TransitionCollapse-VfBzyj5a.js +108 -0
  229. package/dist/shared/{_plugin-vue_export-helper-BOaGB7Aw.js → _plugin-vue_export-helper-DjkACiAr.js} +1 -2
  230. package/dist/shared/{searchInput.variants-NOge_52E.js → searchInput.variants-BdYHNjce.js} +1 -2
  231. package/dist/shared/{select.variants-BPn5Z7N1.js → select.variants-cRXaATWS.js} +1 -2
  232. package/dist/shared/{src-CnJ6AzLP.js → src-DTwuqov4.js} +1 -2
  233. package/dist/shared/{tabKeys-BISOrxWu.js → tabKeys-CP6c3wTY.js} +1 -2
  234. package/dist/shared/{tabs.variants-XUREdHry.js → tabs.variants-Cgk7bRhG.js} +1 -2
  235. package/dist/shared/{tag.variants-CCqCn8Jc.js → tag.variants-BEXRRbPc.js} +1 -2
  236. package/dist/shared/{tagsInputContext-QXu7RrG5.js → tagsInputContext-C-X1-iNf.js} +1 -2
  237. package/dist/shared/{toggleGroup.variants-CvjZDHMw.js → toggleGroup.variants-BuwGELw0.js} +1 -2
  238. package/dist/shared/{tooltipContext-BL5JtM0i.js → tooltipContext-arEyjGQC.js} +1 -2
  239. package/dist/single-select/SearchableSingleSelect.vue.js +1 -2
  240. package/dist/single-select/SingleSelect.vue.js +5 -7
  241. package/dist/skeleton/Skeleton.vue.js +2 -4
  242. package/dist/slider/GradientSlider.vue.d.ts +20 -0
  243. package/dist/slider/GradientSlider.vue.js +100 -0
  244. package/dist/slider/Slider.vue.js +2 -4
  245. package/dist/slider/gradients.d.ts +6 -0
  246. package/dist/spinner/Spinner.vue.js +2 -4
  247. package/dist/splitter/SplitterGroup.vue.js +2 -4
  248. package/dist/splitter/SplitterPanel.vue.js +2 -4
  249. package/dist/splitter/SplitterResizeHandle.vue.js +2 -4
  250. package/dist/switch/Switch.vue.js +1 -2
  251. package/dist/tab/Tab.vue.js +5 -8
  252. package/dist/tab/TabList.vue.js +3 -5
  253. package/dist/tab/TabPanel.vue.js +3 -5
  254. package/dist/table/Table.vue.js +3 -5
  255. package/dist/table/TableBody.vue.js +2 -4
  256. package/dist/table/TableCell.vue.js +2 -4
  257. package/dist/table/TableHead.vue.js +1 -2
  258. package/dist/table/TableHeader.vue.js +2 -4
  259. package/dist/table/TableRow.vue.js +2 -4
  260. package/dist/table/TableSortHead.vue.js +3 -5
  261. package/dist/table/tableUtils.js +1 -2
  262. package/dist/tabs/Tabs.vue.js +2 -4
  263. package/dist/tabs/TabsContent.vue.js +2 -4
  264. package/dist/tabs/TabsList.vue.js +3 -5
  265. package/dist/tabs/TabsTrigger.vue.js +3 -5
  266. package/dist/tags-input/TagsInput.vue.js +4 -6
  267. package/dist/tags-input/TagsInputInput.vue.js +3 -5
  268. package/dist/tags-input/TagsInputItem.vue.js +3 -5
  269. package/dist/tags-input/TagsInputItemDelete.vue.js +2 -4
  270. package/dist/tags-input/TagsInputItemText.vue.js +2 -4
  271. package/dist/textarea/Textarea.vue.js +2 -4
  272. package/dist/toast/ToastClose.vue.js +3 -5
  273. package/dist/toast/ToastDescription.vue.js +2 -4
  274. package/dist/toast/ToastDock.vue.js +2 -4
  275. package/dist/toast/ToastPanel.vue.js +3 -5
  276. package/dist/toast/ToastRoot.vue.js +3 -5
  277. package/dist/toast/ToastTitle.vue.js +2 -4
  278. package/dist/toast/ToastViewport.vue.js +2 -4
  279. package/dist/toggle-group/ToggleGroup.vue.js +3 -5
  280. package/dist/toggle-group/ToggleGroupItem.vue.js +3 -5
  281. package/dist/tooltip/TextTooltip.vue.js +1 -2
  282. package/dist/tooltip/Tooltip.vue.js +1 -2
  283. package/dist/tooltip/TooltipContent.vue.js +1 -2
  284. package/dist/tooltip/TooltipProvider.vue.js +1 -3
  285. package/dist/tooltip/TooltipTrigger.vue.js +1 -2
  286. package/dist/tooltip/tooltipConfig.js +1 -2
  287. package/dist/transition/TransitionCollapse.vue.js +1 -110
  288. package/dist/tree/Tree.vue.d.ts +1 -1
  289. package/dist/tree/Tree.vue.js +2 -4
  290. package/dist/tree/TreeItem.vue.js +4 -6
  291. package/dist/tree/treeStyles.js +1 -2
  292. package/package.json +40 -20
  293. package/src/css/_mask-editor.css +0 -1
  294. package/src/css/component-support.css +69 -0
  295. package/src/css/iconSizing.test.ts +1 -1
  296. package/src/css/published.css +3 -0
  297. package/src/css/style.css +2 -316
  298. package/src/css/theme.css +243 -0
  299. package/src/css/themes/void.css +102 -0
  300. package/src/icons/README.md +41 -84
@@ -1,16 +1,15 @@
1
- import { t as cn } from "../shared/src-CnJ6AzLP.js";
2
- import { t as Button_default } from "../shared/Button-CilmsOkY.js";
1
+ import { t as cn } from "../shared/src-DTwuqov4.js";
2
+ import { t as Button_default } from "../shared/Button-Dj_H5v3V.js";
3
3
  import { treeItemClass, treeItemIndent } from "./treeStyles.js";
4
4
  import { computed, createBlock, createElementBlock, createElementVNode, createPropsRestProxy, defineComponent, mergeProps, normalizeClass, openBlock, renderSlot, unref, useTemplateRef, withCtx, withModifiers } from "vue";
5
5
  import { TreeItem, injectTreeRootContext } from "reka-ui";
6
6
  import { useElementHover } from "@vueuse/core";
7
- //#region src/components/tree/TreeItem.vue?vue&type=script&setup=true&lang.ts
7
+ // src/components/tree/TreeItem.vue?vue&type=script&setup=true&lang.ts
8
8
  var _hoisted_1 = {
9
9
  key: 1,
10
10
  class: "size-5 shrink-0"
11
11
  };
12
- //#endregion
13
- //#region src/components/tree/TreeItem.vue
12
+ // src/components/tree/TreeItem.vue
14
13
  var TreeItem_default = /* @__PURE__ */ defineComponent({
15
14
  __name: "TreeItem",
16
15
  props: {
@@ -78,5 +77,4 @@ var TreeItem_default = /* @__PURE__ */ defineComponent({
78
77
  };
79
78
  }
80
79
  });
81
- //#endregion
82
80
  export { TreeItem_default as default };
@@ -1,7 +1,6 @@
1
- //#region src/components/tree/treeStyles.ts
1
+ // src/components/tree/treeStyles.ts
2
2
  var treeItemClass = "group/tree-node flex w-full min-w-0 cursor-pointer items-center gap-3 rounded-sm py-(--tree-item-padding,--spacing(2)) pr-2 text-sm text-foreground outline-none select-none hover:bg-accent focus-visible:bg-accent data-selected:bg-muted";
3
3
  function treeItemIndent(level) {
4
4
  return { paddingLeft: `${8 + (level - 1) * 24}px` };
5
5
  }
6
- //#endregion
7
6
  export { treeItemClass, treeItemIndent };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comfyorg/design-system",
3
- "version": "1.2.0",
3
+ "version": "1.3.0-alpha.0",
4
4
  "description": "Shared design system for ComfyUI Frontend",
5
5
  "homepage": "https://comfy.org",
6
6
  "license": "MIT",
@@ -30,6 +30,11 @@
30
30
  "import": "./dist/*.vue.js",
31
31
  "default": "./dist/*.vue.js"
32
32
  },
33
+ "./lib/color-picker/types": {
34
+ "types": "./dist/color-picker/types.d.ts",
35
+ "import": "./dist/color-picker/types.js",
36
+ "default": "./dist/color-picker/types.js"
37
+ },
33
38
  "./lib/composables/useAttrsClass": {
34
39
  "types": "./dist/composables/useAttrsClass.d.ts",
35
40
  "import": "./dist/composables/useAttrsClass.js",
@@ -85,6 +90,11 @@
85
90
  "import": "./dist/multi-select/types.js",
86
91
  "default": "./dist/multi-select/types.js"
87
92
  },
93
+ "./lib/navigation/types": {
94
+ "types": "./dist/navigation/types.d.ts",
95
+ "import": "./dist/navigation/types.js",
96
+ "default": "./dist/navigation/types.js"
97
+ },
88
98
  "./lib/popover/usePopoverViewportDismiss": {
89
99
  "types": "./dist/popover/usePopoverViewportDismiss.d.ts",
90
100
  "import": "./dist/popover/usePopoverViewportDismiss.js",
@@ -121,6 +131,7 @@
121
131
  "default": "./dist/tree/treeStyles.js"
122
132
  },
123
133
  "./components.css": "./dist/components.css",
134
+ "./css/style.css": "./src/css/published.css",
124
135
  "./css/*": "./src/css/*",
125
136
  "./icons/*": "./src/icons/*",
126
137
  "./button.variants": {
@@ -148,44 +159,53 @@
148
159
  "@iconify/tailwind4": "^1.2.3",
149
160
  "@iconify/tools": "^5.0.3",
150
161
  "@iconify/utils": "^3.1.0",
151
- "@vueuse/core": "^14.4.0",
152
- "@vueuse/integrations": "^14.4.0",
153
162
  "chart.js": "^4.5.0",
154
163
  "clsx": "^2.1.1",
155
164
  "cva": "1.0.0-beta.4",
156
- "dompurify": "^3.4.13",
165
+ "dompurify": "^3.4.17",
157
166
  "es-toolkit": "^1.39.9",
158
167
  "fuse.js": "^7.0.0",
159
168
  "tailwind-merge": "^2.2.0",
160
169
  "tw-animate-css": "^1.3.8"
161
170
  },
162
171
  "devDependencies": {
163
- "@storybook/vue3-vite": "^10.5.6",
164
- "@tailwindcss/vite": "^4.3.2",
165
- "@testing-library/jest-dom": "^6.9.1",
166
- "@testing-library/user-event": "^14.6.1",
172
+ "@comfyorg/shared-frontend-utils": "^1.0.0",
173
+ "@comfyorg/tailwind-utils": "^1.0.0",
174
+ "@storybook/vue3-vite": "^10.6.5",
175
+ "@tailwindcss/vite": "^4.3.3",
176
+ "@testing-library/jest-dom": "^7.0.1",
177
+ "@testing-library/user-event": "^14.6.8",
167
178
  "@testing-library/vue": "^8.1.0",
168
- "@vitejs/plugin-vue": "^6.0.8",
169
- "@vitest/coverage-v8": "^5.0.2",
170
- "happy-dom": "20.14.5",
179
+ "@vitejs/plugin-vue": "^6.0.10",
180
+ "@vitest/coverage-v8": "^5.0.5",
181
+ "@vueuse/core": "^14.4.0",
182
+ "@vueuse/integrations": "^14.4.0",
183
+ "happy-dom": "21.0.4",
171
184
  "reka-ui": "2.11.0",
172
- "storybook": "^10.5.6",
173
- "tailwindcss": "^4.3.2",
185
+ "storybook": "^10.6.5",
186
+ "tailwindcss": "^4.3.3",
174
187
  "typescript": "^6.0.3",
175
- "vite": "^8.2.2",
176
- "vite-plugin-dts": "^5.1.0",
177
- "vitest": "^5.0.2",
178
- "vue": "^3.5.42",
179
- "vue-component-type-helpers": "^3.3.11",
180
- "@comfyorg/tailwind-utils": "^1.0.0"
188
+ "vite": "^8.3.5",
189
+ "vite-plugin-dts": "^5.1.2",
190
+ "vitest": "^5.0.5",
191
+ "vue": "^3.5.44",
192
+ "vue-component-type-helpers": "^3.3.14"
181
193
  },
182
194
  "peerDependencies": {
183
- "reka-ui": "^2.11.0",
195
+ "@vueuse/core": "^14.4.0",
196
+ "@vueuse/integrations": "^14.4.0",
197
+ "reka-ui": "^2.10.5",
184
198
  "tailwindcss": "^4.1.0",
185
199
  "vue": "^3.5.40",
186
200
  "vue-component-type-helpers": "^3.3.0"
187
201
  },
188
202
  "peerDependenciesMeta": {
203
+ "@vueuse/core": {
204
+ "optional": true
205
+ },
206
+ "@vueuse/integrations": {
207
+ "optional": true
208
+ },
189
209
  "reka-ui": {
190
210
  "optional": true
191
211
  },
@@ -1,6 +1,5 @@
1
1
  #maskEditor_brush {
2
2
  position: absolute;
3
- z-index: 8889;
4
3
  pointer-events: none;
5
4
  border-radius: 50%;
6
5
  overflow: visible;
@@ -0,0 +1,69 @@
1
+ @import './_palette.css';
2
+ @import 'tw-animate-css';
3
+
4
+ @plugin "./iconifyDynamicPlugin.ts";
5
+
6
+ @plugin "./lucideStrokePlugin.js";
7
+
8
+ @custom-variant touch (@media (hover: none));
9
+
10
+ @theme {
11
+ --z-index-panel: 1100;
12
+ --z-index-education: 1500;
13
+ --z-index-onboarding: 1600;
14
+ --z-index-overlay: 1700;
15
+ --z-index-tour: 1800;
16
+ --z-index-toast: 9999;
17
+ --z-index-blocking: 10000;
18
+
19
+ --text-2xs: 0.625rem;
20
+ --text-2xs--line-height: calc(1 / 0.625);
21
+
22
+ --text-3xs: 0.5625rem;
23
+ --text-3xs--line-height: calc(1 / 0.5625);
24
+
25
+ --color-credit: #ddbd31;
26
+ --color-warning-foreground: var(--color-charcoal-800);
27
+ }
28
+
29
+ @utility highlight {
30
+ background-color: color-mix(in srgb, currentColor 20%, transparent);
31
+ font-weight: 700;
32
+ border-radius: 0.25rem;
33
+ }
34
+
35
+ @utility scrollbar-hide {
36
+ scrollbar-width: none;
37
+ &::-webkit-scrollbar {
38
+ width: 1px;
39
+ }
40
+ &::-webkit-scrollbar-thumb {
41
+ background-color: transparent;
42
+ }
43
+ }
44
+
45
+ @utility scrollbar-custom {
46
+ overflow-y: auto;
47
+ scrollbar-width: thin;
48
+ scrollbar-color: var(--muted) transparent;
49
+
50
+ &::-webkit-scrollbar {
51
+ width: 10px;
52
+ height: 10px;
53
+ background-color: transparent;
54
+ }
55
+ &::-webkit-scrollbar-track {
56
+ background: transparent;
57
+ }
58
+ &::-webkit-scrollbar-thumb {
59
+ background: var(--muted);
60
+ border-radius: 9999px;
61
+ border: 2px solid transparent;
62
+ }
63
+ &::-webkit-scrollbar-thumb:hover {
64
+ background: var(--muted);
65
+ }
66
+ &::-webkit-scrollbar-corner {
67
+ background: transparent;
68
+ }
69
+ }
@@ -77,4 +77,4 @@ it('compiles non-shrinking size-4 icons with explicit overrides', async () => {
77
77
  expect(rules.get('.w-8')?.width).toBe('calc(var(--spacing) * 8)')
78
78
  expect(rules.get('.h-5')?.height).toBe('calc(var(--spacing) * 5)')
79
79
  expect(rules.get('.shrink')?.['flex-shrink']).toBe('1')
80
- })
80
+ }, 30_000)
@@ -0,0 +1,3 @@
1
+ @import './theme.css';
2
+
3
+ @source '../../dist';
package/src/css/style.css CHANGED
@@ -1,320 +1,6 @@
1
- @layer theme, base, components, utilities;
2
-
3
- @import './fonts.css';
4
- @import './_palette.css';
5
- @import './_deprecated-aliases.css';
6
- @import './_legacy-palette.css';
7
- @import 'tailwindcss/theme' layer(theme);
8
- @import 'tailwindcss/utilities' layer(utilities);
9
- @import 'tw-animate-css';
1
+ @import './theme.css';
10
2
 
11
3
  @source '../components';
12
4
  @source not '../components/**/*.test.ts';
5
+ @source not '../components/**/*.stories.ts';
13
6
  @source not '../components/**/*.md';
14
- @source '../../dist';
15
-
16
- @plugin "./iconifyDynamicPlugin.ts";
17
-
18
- @plugin "./lucideStrokePlugin.js";
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
-
42
- /* Safelist dynamic comfy icons for node library folders */
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}]");
44
-
45
- /* Badge icon names are built at runtime, so the scanner cannot find them. */
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}]");
47
-
48
- @custom-variant touch (@media (hover: none));
49
-
50
- @theme {
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);
68
- --shadow-inset-highlight: inset 0 1px 0 0 rgb(from white r g b / 0.1);
69
-
70
- --text-2xs: 0.625rem;
71
- --text-2xs--line-height: calc(1 / 0.625);
72
-
73
- --text-3xs: 0.5625rem;
74
- --text-3xs--line-height: calc(1 / 0.5625);
75
-
76
- --color-credit: #ddbd31;
77
-
78
- --color-bypass: #6a246a;
79
- --color-warning-foreground: var(--color-charcoal-800);
80
- --color-success: var(--color-jade-600);
81
- }
82
-
83
- :root {
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
-
104
- --default-transition-duration: 0.1s;
105
- --comfy-topbar-height: 2.5rem;
106
- --workflow-tabs-height: 2.375rem;
107
- --comfy-textarea-font-size: 10px;
108
-
109
- --warning: var(--color-gold-600);
110
- --shadow-color: rgb(0 0 0 / 0.4);
111
- }
112
-
113
- @theme inline {
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);
120
- --color-node-border: var(--node-border);
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);
131
-
132
- /* Semantic tokens */
133
- --color-warning: var(--warning);
134
- }
135
-
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);
141
- }
142
-
143
- @utility highlight {
144
- background-color: color-mix(in srgb, currentColor 20%, transparent);
145
- font-weight: 700;
146
- border-radius: 0.25rem;
147
- }
148
-
149
- @utility scrollbar-hide {
150
- scrollbar-width: none;
151
- &::-webkit-scrollbar {
152
- width: 1px;
153
- }
154
- &::-webkit-scrollbar-thumb {
155
- background-color: transparent;
156
- }
157
- }
158
-
159
- /* ===================== Scrollbar Utilities (Tailwind) =====================
160
- Usage: Add `scrollbar-custom` class to scrollable containers.
161
- The scrollbar styling adapts to light/dark theme automatically.
162
- ============================================================================ */
163
-
164
- @utility scrollbar-custom {
165
- overflow-y: auto;
166
- /* Firefox */
167
- scrollbar-width: thin;
168
- scrollbar-color: var(--muted) transparent;
169
-
170
- /* WebKit */
171
- &::-webkit-scrollbar {
172
- width: 10px;
173
- height: 10px;
174
- background-color: transparent;
175
- }
176
- &::-webkit-scrollbar-track {
177
- background: transparent;
178
- }
179
- &::-webkit-scrollbar-thumb {
180
- background: var(--muted);
181
- border-radius: 9999px;
182
- border: 2px solid transparent;
183
- }
184
- &::-webkit-scrollbar-thumb:hover {
185
- background: var(--muted);
186
- }
187
- &::-webkit-scrollbar-corner {
188
- background: transparent;
189
- }
190
- }
191
- /* =================== End Custom Scrollbar (cross-browser) =================== */
192
-
193
- /* Everthing below here to be cleaned up over time. */
194
-
195
- :root[data-palette-switching] * {
196
- transition: none;
197
- }
198
-
199
- body {
200
- width: 100vw;
201
- height: 100vh;
202
- margin: 0;
203
- overflow: hidden;
204
- min-height: -webkit-fill-available;
205
- max-height: -webkit-fill-available;
206
- min-width: -webkit-fill-available;
207
- max-width: -webkit-fill-available;
208
- font-family: Inter, Arial, sans-serif;
209
- background-color: var(--background);
210
- color: var(--foreground);
211
- }
212
-
213
- .comfy-multiline-input {
214
- background-color: var(--input);
215
- color: var(--foreground);
216
- overflow: hidden;
217
- overflow-y: auto;
218
- padding: 2px;
219
- resize: none;
220
- border: none;
221
- box-sizing: border-box;
222
- font-family: var(--font-mono);
223
- font-size: var(--comfy-textarea-font-size);
224
- }
225
-
226
- @import './_markdown.css';
227
-
228
- @import './_legacy-ui.css';
229
-
230
- audio.comfy-audio.empty-audio-widget {
231
- display: none;
232
- }
233
-
234
- #vue-app {
235
- position: absolute;
236
- top: 0;
237
- left: 0;
238
- width: 100%;
239
- height: 100%;
240
- }
241
-
242
- /* [Desktop] Electron window specific styles */
243
- .app-drag {
244
- app-region: drag;
245
- }
246
-
247
- .no-drag {
248
- app-region: no-drag;
249
- }
250
-
251
- .window-actions-spacer {
252
- width: calc(100vw - env(titlebar-area-width, 100vw));
253
- }
254
- /* End of [Desktop] Electron window specific styles */
255
-
256
- .lg-node {
257
- /* Disable text selection on all nodes */
258
- user-select: none;
259
- }
260
-
261
- .lg-node .lg-slot {
262
- transition:
263
- opacity 0.1s ease,
264
- font-size 0.1s ease;
265
- }
266
-
267
- @import './_mask-editor.css';
268
-
269
- /* ===================== Skeleton Shimmer ===================== */
270
- .skeleton-shimmer {
271
- background:
272
- linear-gradient(135deg, rgb(188 188 188 / 0.5) 0%, rgb(0 0 0 / 0.5) 100%) 0
273
- 0 / 200% 200%,
274
- #000;
275
- animation: skeleton-shimmer 2s ease-in-out infinite;
276
- }
277
-
278
- @keyframes skeleton-shimmer {
279
- 0%,
280
- 100% {
281
- background-position: 100% 100%;
282
- }
283
- 50% {
284
- background-position: 0 0;
285
- }
286
- }
287
-
288
- @utility scroll-shadows-* {
289
- overflow: auto;
290
-
291
- background:
292
- /* Shadow Cover TOP */
293
- linear-gradient(--value(--color-*) 30%, transparent) center top,
294
- /* Shadow Cover BOTTOM */
295
- linear-gradient(transparent, --value(--color-*) 70%) center bottom,
296
- /* Shadow TOP */
297
- radial-gradient(
298
- farthest-side at 50% 0,
299
- color-mix(in oklab, --value(--color-*), #777777 35%),
300
- 60%,
301
- transparent
302
- )
303
- center top,
304
- /* Shadow BOTTOM */
305
- radial-gradient(
306
- farthest-side at 50% 100%,
307
- color-mix(in oklab, --value(--color-*), #777777 35%),
308
- 60%,
309
- transparent
310
- )
311
- center bottom;
312
-
313
- background-repeat: no-repeat;
314
- background-size:
315
- 300% 40px,
316
- 300% 40px,
317
- 300% 14px,
318
- 300% 14px;
319
- background-attachment: local, local, scroll, scroll;
320
- }