From 3a41adc4f26ca956c87a31cceff169a03c724279 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Wed, 3 Dec 2025 16:08:17 -0800 Subject: [PATCH] add artifact UI components for phase 4 - DisclosureRow: iOS-style disclosure row for navigation - ArtifactSkillRow: shows skill with modifiers and level/value controls - ArtifactModifierList: selectable list of skills by polarity - ArtifactGradeDisplay: shows letter grade, breakdown, recommendation - ArtifactEditPane: main edit pane combining base props, skills, grade --- .../artifact/ArtifactEditPane.svelte | 305 ++++++++++++++++++ .../artifact/ArtifactGradeDisplay.svelte | 237 ++++++++++++++ .../artifact/ArtifactModifierList.svelte | 178 ++++++++++ .../artifact/ArtifactSkillRow.svelte | 223 +++++++++++++ src/lib/components/ui/DisclosureRow.svelte | 139 ++++++++ 5 files changed, 1082 insertions(+) create mode 100644 src/lib/components/artifact/ArtifactEditPane.svelte create mode 100644 src/lib/components/artifact/ArtifactGradeDisplay.svelte create mode 100644 src/lib/components/artifact/ArtifactModifierList.svelte create mode 100644 src/lib/components/artifact/ArtifactSkillRow.svelte create mode 100644 src/lib/components/ui/DisclosureRow.svelte diff --git a/src/lib/components/artifact/ArtifactEditPane.svelte b/src/lib/components/artifact/ArtifactEditPane.svelte new file mode 100644 index 00000000..9ba7ea8e --- /dev/null +++ b/src/lib/components/artifact/ArtifactEditPane.svelte @@ -0,0 +1,305 @@ + + + + +
+ + + {#if disabled} + + + {elementOptions.find((o) => o.value === element)?.label ?? '—'} + + {:else} + + {/if} + + {:else} + + {/if} + + + {#if disabled || isQuirk} + {level} + {:else} + v !== undefined && handleStrengthChange(v)} + {disabled} + /> +
+
+ +