diff --git a/src/lib/components/ui/rarity-picker/RarityPicker.svelte b/src/lib/components/ui/rarity-picker/RarityPicker.svelte
new file mode 100644
index 00000000..9f620590
--- /dev/null
+++ b/src/lib/components/ui/rarity-picker/RarityPicker.svelte
@@ -0,0 +1,126 @@
+
+
+
+
+{#if shouldUseDropdown}
+ {#if multiple}
+
+ {:else}
+
+ {/if}
+{:else}
+
+{/if}
diff --git a/src/lib/components/ui/rarity-picker/RarityPickerSegmented.svelte b/src/lib/components/ui/rarity-picker/RarityPickerSegmented.svelte
new file mode 100644
index 00000000..4af1a6f6
--- /dev/null
+++ b/src/lib/components/ui/rarity-picker/RarityPickerSegmented.svelte
@@ -0,0 +1,302 @@
+
+
+
+
+{#if showClear}
+
+
+ {#if multiple}
+
+ {#each RARITY_DISPLAY_ORDER as rarity}
+
+ {#snippet children()}
+
+
+
+ {/snippet}
+
+ {/each}
+
+ {:else}
+
+ {#each RARITY_DISPLAY_ORDER as rarity}
+
+ {#snippet children()}
+
+
+
+ {/snippet}
+
+ {/each}
+
+ {/if}
+
+ {#if hasSelection}
+
+ {/if}
+
+{:else}
+
+ {#if multiple}
+
+ {#each RARITY_DISPLAY_ORDER as rarity}
+
+ {#snippet children()}
+
+
+
+ {/snippet}
+
+ {/each}
+
+ {:else}
+
+ {#each RARITY_DISPLAY_ORDER as rarity}
+
+ {#snippet children()}
+
+
+
+ {/snippet}
+
+ {/each}
+
+ {/if}
+
+{/if}
+
+