modelValue: string
readonly?: boolean
+ placeholder?: string
}>()
const emit = defineEmits<{
diff --git a/src/renderer/extensions/vueNodes/widgets/components/WidgetTreeSelect.vue b/src/renderer/extensions/vueNodes/widgets/components/WidgetTreeSelect.vue
index 10b1989d8..81f7a117f 100644
--- a/src/renderer/extensions/vueNodes/widgets/components/WidgetTreeSelect.vue
+++ b/src/renderer/extensions/vueNodes/widgets/components/WidgetTreeSelect.vue
@@ -4,7 +4,7 @@
v-model="localValue"
v-bind="filteredProps"
:disabled="readonly"
- class="w-full text-xs"
+ :class="cn(WidgetInputBaseClass, 'w-full text-xs')"
size="small"
@update:model-value="onChange"
/>
@@ -17,11 +17,13 @@ import { computed } from 'vue'
import { useWidgetValue } from '@/composables/graph/useWidgetValue'
import type { SimplifiedWidget } from '@/types/simplifiedWidget'
+import { cn } from '@/utils/tailwindUtil'
import {
PANEL_EXCLUDED_PROPS,
filterWidgetProps
} from '@/utils/widgetPropFilter'
+import { WidgetInputBaseClass } from './layout'
import WidgetLayoutField from './layout/WidgetLayoutField.vue'
const props = defineProps<{
diff --git a/src/renderer/extensions/vueNodes/widgets/components/form/FormSelectButton.vue b/src/renderer/extensions/vueNodes/widgets/components/form/FormSelectButton.vue
new file mode 100644
index 000000000..41e5f6efa
--- /dev/null
+++ b/src/renderer/extensions/vueNodes/widgets/components/form/FormSelectButton.vue
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/extensions/vueNodes/widgets/components/layout/index.ts b/src/renderer/extensions/vueNodes/widgets/components/layout/index.ts
new file mode 100644
index 000000000..5de9f97aa
--- /dev/null
+++ b/src/renderer/extensions/vueNodes/widgets/components/layout/index.ts
@@ -0,0 +1,14 @@
+export const WidgetInputBaseClass = [
+ // Background
+ 'bg-zinc-500/10',
+ // Outline
+ 'border-none',
+ 'outline',
+ 'outline-1',
+ 'outline-offset-[-1px]',
+ 'outline-zinc-300/10',
+ // Rounded
+ '!rounded-lg',
+ // Hover
+ 'hover:outline-blue-500/80'
+].join(' ')
diff --git a/src/renderer/extensions/vueNodes/widgets/composables/useWidgetRenderer.ts b/src/renderer/extensions/vueNodes/widgets/composables/useWidgetRenderer.ts
index 953f93d6b..659500fb6 100644
--- a/src/renderer/extensions/vueNodes/widgets/composables/useWidgetRenderer.ts
+++ b/src/renderer/extensions/vueNodes/widgets/composables/useWidgetRenderer.ts
@@ -23,6 +23,12 @@ const TYPE_TO_ENUM_MAP: Record = {
// Selection
combo: WidgetType.COMBO,
COMBO: WidgetType.COMBO,
+ selectbutton: WidgetType.SELECTBUTTON,
+ SELECTBUTTON: WidgetType.SELECTBUTTON,
+ multiselect: WidgetType.MULTISELECT,
+ MULTISELECT: WidgetType.MULTISELECT,
+ treeselect: WidgetType.TREESELECT,
+ TREESELECT: WidgetType.TREESELECT,
// Boolean
toggle: WidgetType.TOGGLESWITCH,
@@ -32,6 +38,7 @@ const TYPE_TO_ENUM_MAP: Record = {
// Multiline text
multiline: WidgetType.TEXTAREA,
textarea: WidgetType.TEXTAREA,
+ TEXTAREA: WidgetType.TEXTAREA,
customtext: WidgetType.TEXTAREA,
MARKDOWN: WidgetType.MARKDOWN,