From df31ec8a8e3310a9c3039b390a7c67228dae3471 Mon Sep 17 00:00:00 2001 From: Keavon Chambers Date: Wed, 24 Dec 2025 19:36:37 -0800 Subject: [PATCH] WIP: Part 1 --- .../utility_types/widgets/button_widgets.rs | 4 +++ .../utility_types/widgets/input_widgets.rs | 10 ++++++ .../utility_types/widgets/label_widgets.rs | 2 ++ frontend/src/components/panels/Layers.svelte | 2 +- .../components/widgets/WidgetSection.svelte | 2 +- .../src/components/widgets/WidgetSpan.svelte | 1 + .../widgets/buttons/TextButton.svelte | 6 ++-- .../widgets/inputs/DropdownInput.svelte | 1 + .../widgets/inputs/FieldInput.svelte | 33 ++++++++++++++----- .../widgets/inputs/NumberInput.svelte | 13 ++++---- .../widgets/inputs/RadioInput.svelte | 2 ++ .../widgets/inputs/TextInput.svelte | 8 ++--- .../widgets/labels/TextLabel.svelte | 1 + 13 files changed, 62 insertions(+), 23 deletions(-) diff --git a/editor/src/messages/layout/utility_types/widgets/button_widgets.rs b/editor/src/messages/layout/utility_types/widgets/button_widgets.rs index 82ac8b8e3c..dd57d985e5 100644 --- a/editor/src/messages/layout/utility_types/widgets/button_widgets.rs +++ b/editor/src/messages/layout/utility_types/widgets/button_widgets.rs @@ -138,8 +138,12 @@ pub struct TextButton { pub narrow: bool, // Sizing + #[serde(rename = "autoWidth")] + pub auto_width: bool, #[serde(rename = "minWidth")] pub min_width: u32, + #[serde(rename = "maxWidth")] + pub max_width: u32, // Tooltips #[serde(rename = "tooltipLabel")] diff --git a/editor/src/messages/layout/utility_types/widgets/input_widgets.rs b/editor/src/messages/layout/utility_types/widgets/input_widgets.rs index 12d17eb422..02ea3f1664 100644 --- a/editor/src/messages/layout/utility_types/widgets/input_widgets.rs +++ b/editor/src/messages/layout/utility_types/widgets/input_widgets.rs @@ -84,6 +84,8 @@ pub struct DropdownInput { pub interactive: bool, // Sizing + #[serde(rename = "autoWidth")] + pub auto_width: bool, #[serde(rename = "minWidth")] pub min_width: u32, #[serde(rename = "maxWidth")] @@ -189,6 +191,8 @@ pub struct NumberInput { pub unit_is_hidden_when_editing: bool, // Sizing + #[serde(rename = "autoWidth")] + pub auto_width: bool, #[serde(rename = "minWidth")] pub min_width: u32, #[serde(rename = "maxWidth")] @@ -309,8 +313,12 @@ pub struct RadioInput { pub narrow: bool, // Sizing + #[serde(rename = "autoWidth")] + pub auto_width: bool, #[serde(rename = "minWidth")] pub min_width: u32, + #[serde(rename = "maxWidth")] + pub max_width: u32, // // Callbacks exists on the `RadioEntryData` children, not this parent `RadioInput` } @@ -399,6 +407,8 @@ pub struct TextInput { pub centered: bool, // Sizing + #[serde(rename = "autoWidth")] + pub auto_width: bool, #[serde(rename = "minWidth")] pub min_width: u32, #[serde(rename = "maxWidth")] diff --git a/editor/src/messages/layout/utility_types/widgets/label_widgets.rs b/editor/src/messages/layout/utility_types/widgets/label_widgets.rs index a1975b9793..3bed9d59dd 100644 --- a/editor/src/messages/layout/utility_types/widgets/label_widgets.rs +++ b/editor/src/messages/layout/utility_types/widgets/label_widgets.rs @@ -70,6 +70,8 @@ pub struct TextLabel { pub table_align: bool, // Sizing + #[serde(rename = "autoWidth")] + pub auto_width: bool, #[serde(rename = "minWidth")] pub min_width: u32, #[serde(rename = "maxWidth")] diff --git a/frontend/src/components/panels/Layers.svelte b/frontend/src/components/panels/Layers.svelte index a9995954f3..5d4d8db79c 100644 --- a/frontend/src/components/panels/Layers.svelte +++ b/frontend/src/components/panels/Layers.svelte @@ -700,7 +700,7 @@ justify-content: space-between; .widget-span:first-child { - flex: 1 1 auto; + flex: 1 0 auto; } &:not(:has(*)) { diff --git a/frontend/src/components/widgets/WidgetSection.svelte b/frontend/src/components/widgets/WidgetSection.svelte index 0151e573c8..af092567eb 100644 --- a/frontend/src/components/widgets/WidgetSection.svelte +++ b/frontend/src/components/widgets/WidgetSection.svelte @@ -174,7 +174,7 @@ } > .text-label:first-of-type { - flex: 0 0 25%; + flex: 0 0 20%; margin-left: 16px; } diff --git a/frontend/src/components/widgets/WidgetSpan.svelte b/frontend/src/components/widgets/WidgetSpan.svelte index aa37ad21f2..9ecb943363 100644 --- a/frontend/src/components/widgets/WidgetSpan.svelte +++ b/frontend/src/components/widgets/WidgetSpan.svelte @@ -337,6 +337,7 @@ .widget-span.row { flex: 0 0 auto; display: flex; + overflow: hidden; min-height: var(--row-height); --row-height: 32px; diff --git a/frontend/src/components/widgets/buttons/TextButton.svelte b/frontend/src/components/widgets/buttons/TextButton.svelte index e239b04dd8..4fae6bab86 100644 --- a/frontend/src/components/widgets/buttons/TextButton.svelte +++ b/frontend/src/components/widgets/buttons/TextButton.svelte @@ -28,7 +28,9 @@ export let flush = false; export let narrow = false; // Sizing + export let autoWidth = false; export let minWidth = 0; + export let maxWidth = 0; // Tooltips export let tooltipLabel: string | undefined = undefined; export let tooltipDescription: string | undefined = undefined; @@ -107,15 +109,15 @@