2
import type { ComponentMeta, Dependency } from "../types";
3
import { BaseButton } from "@gradio/button";
4
import { Block } from "@gradio/atoms";
6
export let dependency: Dependency;
7
export let dependency_failures: boolean[][];
8
export let dependency_index: number;
9
export let instance_map: {
10
[id: number]: ComponentMeta;
12
export let run: (id: number) => Promise<void>;
13
export let dependency_inputs: string[][];
15
function format_label(label: unknown): string {
16
return label ? "'" + label + "'" : "the";
21
<div class="toggle-icon">
22
<div class="toggle-dot" />
27
<div class="payload-details">
29
<div class="first-level">"data": [</div>
30
{#each dependency.inputs as component_id, component_index}
31
<div class="second-level">
35
bind:value={dependency_inputs[dependency_index][component_index]}
37
{#if dependency_failures[dependency_index][component_index]}
38
<span class="error">ERROR</span>
42
: {instance_map[component_id].documentation?.type?.input_payload ||
43
instance_map[component_id].documentation?.type?.payload},
46
// represents {instance_map[component_id].documentation?.description
48
instance_map[component_id].documentation?.description?.payload} of
49
{format_label(instance_map[component_id].props.label)}
51
{instance_map[component_id].props.name}
57
<div class="first-level">]</div>
63
<BaseButton variant="primary" on:click={run.bind(null, dependency_index)}>
69
font-family: var(--font-mono);
75
margin-top: var(--size-4);
81
margin-top: var(--size-6);
82
margin-bottom: var(--size-3);
83
color: var(--body-text-color);
84
font-weight: var(--weight-bold);
90
margin-right: var(--size-2);
91
border-radius: var(--radius-full);
92
background: var(--color-grey-300);
98
border-radius: var(--radius-full);
99
background: var(--color-grey-700);
104
:global(.dark) .toggle-icon {
105
background: var(--color-grey-500);
108
:global(.dark) .toggle-dot {
109
background: var(--color-grey-400);
113
--ring-color: transparent;
114
margin: var(--size-1) 0;
115
outline: none !important;
116
box-shadow: var(--input-shadow);
117
border: var(--input-border-width) solid var(--input-border-color);
118
border-radius: var(--radius-lg);
119
background: var(--input-background-fill);
120
padding: var(--size-1-5);
121
color: var(--body-text-color);
122
font-weight: var(--input-text-weight);
123
font-size: var(--input-text-size);
124
line-height: var(--line-sm);
128
box-shadow: var(--input-shadow-focus);
129
border-color: var(--input-border-color-focus);
133
color: var(--error-text-color);
137
color: var(--block-label-text-color);
141
color: var(--body-text-color-subdued);
145
text-transform: capitalize;