mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-11 16:09:39 +00:00
* Monaco transparent bg
* started improving input transform form
* always show static/f selector
* fix connecting btn changing size
* pretty Fill Inputs button
* ResizeTransitionWrapper
* Prettier TemplateEditor
* prevent double onpointerdown when clicking button to close
* text hint
* force focus border for TemplateEditor
* styling in js mode
* update select style
* fix jittery fake monaco placeholder
* select nits
* aiproviderpicker + nits
* smaller ${...} badge
* no-default-style
* select dropdown slide
* nit
* Refresh button in flow picker quick
* jsonEditor pretty
* ai provider toggle button more
* change resource edit button pos
* ResourcePicker Add and Refresh btn
* fix scrollbar
* Fix FileInput and S3 Arg Input
* fix textarea styling
* nicer refresh button in Test This Step
* fix togglebutton border in darkmode
* rounded nit
* Fix multiselect styling
* Prevent crash when selecting dyn-multiselect
* missing $derived and $state => reactivity issue when switching between DynSelect and DynMultiselect
* forgot $effect.pre
* fix nested objects
* nits
* prettier json toggle and array inputs
* array input nits
* nit
* fix json toggle appearing in fileinputs
* nit
* started updating PropertyEditor
* (stash) fix select dropdown animation teleporting from bottom to top
* nit
* nit
* resize transition in schemaform
* nit
* nit typo
* nit enableFlyTransition
* shadow nit
* small consistency changes
* user setting nit
* resize transition in module preview form
* more space
* nit readability on hover
* DateTimeInput new style
* nit fix
* remove yPadding in template and simple editor
* nits
* Revert "remove yPadding in template and simple editor"
This reverts commit 8f27c8d0b8.
* nit
* Fix proppicker border
* fix inconsistent spacing btw arginput and input transform form field headers
* consistent add item button
* nit
* s3 settings nits
* RunsFilter fix
* gray ${...} badge
* border fix darkmode
* nit
* nit app editor consistency
* fix step input gen style
* nit fix
* nits
* toggle border
* nit toggle button
* nit font-medium
* nit font-medium
* nit font-medium
* nit font-medium
* nit
---------
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
83 lines
1.7 KiB
Svelte
83 lines
1.7 KiB
Svelte
<script lang="ts">
|
|
import { createEventDispatcher } from 'svelte'
|
|
import { twMerge } from 'tailwind-merge'
|
|
import { createSync } from '@melt-ui/svelte'
|
|
|
|
const dispatch = createEventDispatcher()
|
|
|
|
import { createToggleGroup, melt } from '@melt-ui/svelte'
|
|
interface Props {
|
|
id?: string | null | undefined
|
|
selected?: string | string[] | undefined
|
|
noWFull?: boolean
|
|
disabled?: boolean
|
|
tabListClass?: string
|
|
allowEmpty?: boolean
|
|
class?: string
|
|
wrap?: boolean
|
|
children?: import('svelte').Snippet<[any]>
|
|
onSelected?: (value: any) => void
|
|
}
|
|
|
|
let {
|
|
id = undefined,
|
|
selected = $bindable(undefined),
|
|
noWFull = false,
|
|
disabled = false,
|
|
tabListClass = '',
|
|
allowEmpty = false,
|
|
class: className = '',
|
|
wrap = false,
|
|
onSelected,
|
|
children
|
|
}: Props = $props()
|
|
|
|
const {
|
|
elements: { root, item },
|
|
options: { disabled: disabledOption },
|
|
states
|
|
} = createToggleGroup({
|
|
type: 'single',
|
|
onValueChange: ({ curr, next }) => {
|
|
if (next === undefined && !allowEmpty) {
|
|
return curr
|
|
}
|
|
if (curr !== next && curr !== undefined) {
|
|
dispatch('selected', next)
|
|
onSelected?.(next)
|
|
}
|
|
return next
|
|
}
|
|
})
|
|
|
|
$effect(() => {
|
|
$disabledOption = disabled
|
|
})
|
|
|
|
const sync = createSync(states)
|
|
$effect(() => {
|
|
sync.value(selected, (v) => (selected = v))
|
|
})
|
|
</script>
|
|
|
|
<div
|
|
use:melt={$root}
|
|
class={twMerge(
|
|
`flex ${noWFull ? '' : 'w-full'} ${disabled ? 'disabled' : ''}`,
|
|
className,
|
|
'flex items-center data-[orientation="vertical"]:flex-col'
|
|
)}
|
|
aria-label="Toggle button group"
|
|
{id}
|
|
>
|
|
<div
|
|
class={twMerge(
|
|
'flex bg-surface-secondary rounded-md h-full',
|
|
wrap ? 'flex-wrap' : '',
|
|
tabListClass
|
|
)}
|
|
>
|
|
{@render children?.({ item, disabled })}
|
|
</div>
|
|
</div>
|