mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-20 00:02:19 +00:00
5d79f33590
* Remove $$props.field usage * Rename slots to ensure no hyphen * _props * _trigger * OnSelectedIteration type correct capitalization * rename _content * Remove afterUpdate * Migrate everything to svelte 5 * array bind * Fix popover * type never * nit fixes * Fixed many trivial errors * onClick * Fix errors * use let: * nit typing * fix: wrap state_referenced_locally vars with untrack() Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Add untrack import * Fix all syntax errors due to untrack migration * Fix undefined errors * Fix more undefined errors * untrack(() => initialOpen) * svelte-ignore * Fix state_descriptors_fixed error in Chart.svelte Use $state.snapshot() to pass plain copies of data/options to Chart.js instead of $state proxies. Chart.js's listenArrayEvents tries to define property descriptors on data arrays, which Svelte 5 proxies reject. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * nit typing * Merge issue * Fix "path is not set" error in resource picker / editor * Fix InputTransformForm error when rerunning some flows * fix npm run check --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
83 lines
1.9 KiB
Svelte
83 lines
1.9 KiB
Svelte
<script lang="ts">
|
|
import { twMerge } from 'tailwind-merge'
|
|
import Required from './Required.svelte'
|
|
import { capitalize, emptyString } from '$lib/utils'
|
|
import Tooltip from './meltComponents/Tooltip.svelte'
|
|
import { InfoIcon } from 'lucide-svelte'
|
|
|
|
interface Props {
|
|
label: string;
|
|
format?: string;
|
|
contentEncoding?: string;
|
|
type?: string | undefined;
|
|
disabled?: boolean;
|
|
required?: boolean;
|
|
displayType?: boolean;
|
|
labelClass?: string;
|
|
prettify?: boolean;
|
|
simpleTooltip?: string | undefined;
|
|
lightHeader?: boolean;
|
|
SimpleTooltipIcon?: any;
|
|
simpleTooltipIconClass?: string;
|
|
}
|
|
|
|
let {
|
|
label,
|
|
format = '',
|
|
contentEncoding = '',
|
|
type = undefined,
|
|
disabled = false,
|
|
required = false,
|
|
displayType = true,
|
|
labelClass = '',
|
|
prettify = false,
|
|
simpleTooltip = undefined,
|
|
lightHeader = false,
|
|
SimpleTooltipIcon = InfoIcon,
|
|
simpleTooltipIconClass = ''
|
|
}: Props = $props();
|
|
</script>
|
|
|
|
<div class="inline-flex flex-row items-baseline truncated">
|
|
<span
|
|
class={twMerge(
|
|
disabled ? 'text-primary' : '',
|
|
'font-semibold text-xs',
|
|
lightHeader ? 'text-secondary font-normal' : 'text-emphasis',
|
|
labelClass
|
|
)}
|
|
>
|
|
{#if prettify}
|
|
{label.replace(/_/g, ' ').split(' ').map(capitalize).join(' ')}
|
|
{:else}
|
|
{label}
|
|
{/if}
|
|
</span>
|
|
{#if !disabled}
|
|
<Required {required} class="!ml-0" />
|
|
{/if}
|
|
|
|
{#if displayType}
|
|
<span class="text-2xs italic ml-2 text-hint">
|
|
{#if format && !format.startsWith('resource') && !format.startsWith('jsonschema-')}
|
|
{format}
|
|
{:else}
|
|
{type ?? 'any'}{contentEncoding && contentEncoding != ''
|
|
? `, encoding: ${contentEncoding}`
|
|
: ''}
|
|
{/if}
|
|
</span>
|
|
{/if}
|
|
|
|
{#if !emptyString(simpleTooltip)}
|
|
<Tooltip class="ml-2" placement="bottom">
|
|
<SimpleTooltipIcon size="14" class={'-mb-0.5 ' + simpleTooltipIconClass} />
|
|
{#snippet text()}
|
|
<span class="text-xs" >
|
|
{simpleTooltip}
|
|
</span>
|
|
{/snippet}
|
|
</Tooltip>
|
|
{/if}
|
|
</div>
|