diff --git a/frontend/src/lib/components/FieldHeader.svelte b/frontend/src/lib/components/FieldHeader.svelte index 7949282a56..99e4c95778 100644 --- a/frontend/src/lib/components/FieldHeader.svelte +++ b/frontend/src/lib/components/FieldHeader.svelte @@ -1,4 +1,5 @@
- + {label} @@ -18,11 +21,11 @@ ({format}) - {:else} + {:else if displayType} ({type ?? 'any'}{contentEncoding && contentEncoding != '' ? `, encoding: ${contentEncoding}` - : ''}) + : ''}) + {/if}
diff --git a/frontend/src/lib/components/LightweightArgInput.svelte b/frontend/src/lib/components/LightweightArgInput.svelte index e078d791be..a1f5c6b32d 100644 --- a/frontend/src/lib/components/LightweightArgInput.svelte +++ b/frontend/src/lib/components/LightweightArgInput.svelte @@ -13,7 +13,10 @@ import Toggle from './Toggle.svelte' import Range from './Range.svelte' import LightweightSchemaForm from './LightweightSchemaForm.svelte' + import type { ComponentCustomCSS } from './apps/types' + import { twMerge } from 'tailwind-merge' + export let css: ComponentCustomCSS<'schemaformcomponent'> | undefined = undefined export let label: string = '' export let value: any @@ -34,6 +37,7 @@ export let displayHeader = true export let properties: { [name: string]: SchemaProperty } | undefined = undefined export let extra: Record = {} + export let displayType: boolean = true const dispatch = createEventDispatcher() @@ -138,11 +142,19 @@
{#if displayHeader} - + {/if} {#if description} -
+
{description}
{/if} @@ -164,9 +176,11 @@ dispatch('focus') }} type="number" - class={valid - ? '' - : 'border border-red-700 border-opacity-30 focus:border-red-700 focus:border-opacity-30 bg-red-100'} + class={twMerge( + valid + ? '' + : 'border border-red-700 border-opacity-30 focus:border-red-700 focus:border-opacity-30 bg-red-100' + )} placeholder={defaultValue ?? ''} bind:value min={extra['min']} diff --git a/frontend/src/lib/components/LightweightSchemaForm.svelte b/frontend/src/lib/components/LightweightSchemaForm.svelte index a40c734ad5..0043281c5f 100644 --- a/frontend/src/lib/components/LightweightSchemaForm.svelte +++ b/frontend/src/lib/components/LightweightSchemaForm.svelte @@ -1,16 +1,22 @@ -
+
{#each Object.keys(schema.properties ?? {}) as argName (argName)}
{#if typeof args == 'object' && schema?.properties[argName] && args} @@ -29,6 +35,8 @@ itemsType={schema.properties[argName].items} extra={schema.properties[argName]} on:inputClicked + {displayType} + {css} /> {/if}
diff --git a/frontend/src/lib/components/apps/components/buttons/AppSchemaForm.svelte b/frontend/src/lib/components/apps/components/buttons/AppSchemaForm.svelte index c46b7a49ab..8204230a86 100644 --- a/frontend/src/lib/components/apps/components/buttons/AppSchemaForm.svelte +++ b/frontend/src/lib/components/apps/components/buttons/AppSchemaForm.svelte @@ -1,16 +1,22 @@ +{#each Object.keys(components['schemaformcomponent'].initialData.configuration) as key (key)} + +{/each} + {#if result && Object.keys(result.properties).length > 0}
!$connectingInput.opened && selectId(e, id, selectedComponent, $app)} > - +
{:else}

Empty form

diff --git a/frontend/src/lib/components/apps/editor/component/Component.svelte b/frontend/src/lib/components/apps/editor/component/Component.svelte index a4111822a2..24f963f77e 100644 --- a/frontend/src/lib/components/apps/editor/component/Component.svelte +++ b/frontend/src/lib/components/apps/editor/component/Component.svelte @@ -475,6 +475,8 @@ diff --git a/frontend/src/lib/components/apps/editor/component/components.ts b/frontend/src/lib/components/apps/editor/component/components.ts index 5e1ca1e4dd..870985a202 100644 --- a/frontend/src/lib/components/apps/editor/component/components.ts +++ b/frontend/src/lib/components/apps/editor/component/components.ts @@ -219,7 +219,8 @@ export const selectOptions = { 'en-CA' ], objectFitOptions: ['contain', 'cover', 'fill'], - splitPanelOptions: ['2', '3', '4'] + splitPanelOptions: ['2', '3', '4'], + formorientationOptions: ['Horizontal', 'Vertical'] } const onSuccessClick = { @@ -1691,7 +1692,9 @@ Hello \${ctx.username} icon: FileText, dims: '3:8-8:12' as AppComponentDimensions, customCss: { - container: { class: '', style: '' } + container: { class: '', style: '' }, + label: { class: '', style: '' }, + description: { class: '', style: '' } }, initialData: { componentInput: { @@ -1704,7 +1707,18 @@ Hello \${ctx.username} type: 'object' } }, - configuration: {} + configuration: { + displayType: { + fieldType: 'boolean', + type: 'static', + value: false + }, + largeGap: { + fieldType: 'boolean', + type: 'static', + value: false + } + } } } } as const