diff --git a/bun.lockb b/bun.lockb index edade209..d5737872 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/src/lib/components/chart/rampricehistory.svelte b/src/lib/components/chart/rampricehistory.svelte index 3d7cdf48..0e4ea3f5 100644 --- a/src/lib/components/chart/rampricehistory.svelte +++ b/src/lib/components/chart/rampricehistory.svelte @@ -9,30 +9,29 @@ import { Card, Stack } from '$lib/components/layout'; import { Asset } from '@wharfkit/antelope'; import Select from '../select/select.svelte'; + import type { ExtendedSelectOption } from '../select/types'; interface Props { data: { date: Date; value: Asset }[]; - debug?: boolean; } - let { data, debug = true }: Props = $props(); + let { data }: Props = $props(); let ctx: HTMLCanvasElement; let chart: Chart<'line'>; - const range = [ + const range: ExtendedSelectOption[] = [ { label: '1D', value: 1 }, { label: '1W', value: 7 }, { label: '1M', value: 30 }, { label: '1Y', value: 365 } ]; - let selectedRange = $state(range[1]); + let selectedRange: ExtendedSelectOption = $state(range[1]); let dataRange = $derived.by(() => { const rangeEndDate = dayjs(data[0].date); - const rangeStartDate = rangeEndDate.subtract(selectedRange.value, 'day'); - debug && $inspect({ rangeStartDate, rangeEndDate }); + const rangeStartDate = rangeEndDate.subtract(Number(selectedRange.value), 'day'); return data.filter(({ date }) => dayjs(date).isAfter(rangeStartDate)); }); @@ -96,10 +95,6 @@ legend: { display: false } - // decimation: { - // enabled: true, - // algorithm: 'lttb' - // } } } }); @@ -110,9 +105,6 @@ chart.data.datasets[0].data = values; chart.update(); }); - - debug && - $inspect({ dataRangeLength: dataRange.length, currentDate: currentPoint.date, percentChange }); diff --git a/src/lib/components/select/elements/index.ts b/src/lib/components/select/elements/index.ts new file mode 100644 index 00000000..94d4cdf6 --- /dev/null +++ b/src/lib/components/select/elements/index.ts @@ -0,0 +1,3 @@ +export { default as SelectMenu } from './menu.svelte'; +export { default as SelectTrigger } from './trigger.svelte'; +export { default as SelectItem } from './item.svelte'; diff --git a/src/lib/components/select/elements/item.svelte b/src/lib/components/select/elements/item.svelte new file mode 100644 index 00000000..7d5313f6 --- /dev/null +++ b/src/lib/components/select/elements/item.svelte @@ -0,0 +1,53 @@ + + +
+ {#if props.item.image && typeof props.item.image === 'string'} + {props.item.label} + {:else} +
+ +
+ {/if} + {props.item.label} +
diff --git a/src/lib/components/select/elements/menu.svelte b/src/lib/components/select/elements/menu.svelte new file mode 100644 index 00000000..6110b1ff --- /dev/null +++ b/src/lib/components/select/elements/menu.svelte @@ -0,0 +1,45 @@ + + +{#if props.open} +
+ {@render props.children()} +
+{/if} diff --git a/src/lib/components/select/elements/trigger.svelte b/src/lib/components/select/elements/trigger.svelte new file mode 100644 index 00000000..340424bb --- /dev/null +++ b/src/lib/components/select/elements/trigger.svelte @@ -0,0 +1,53 @@ + + + diff --git a/src/lib/components/select/select.svelte b/src/lib/components/select/select.svelte index 309f9474..c0aa6e5d 100644 --- a/src/lib/components/select/select.svelte +++ b/src/lib/components/select/select.svelte @@ -1,22 +1,15 @@ - - - + + {#if selectedOption.image && typeof selectedOption.image === 'string'} + {selectedOption.label} + {/if} + {$selectedLabel || 'Select an option'} + {#if $open} -
+ {#each options as item} -
- {#if item.image} - {item.label} - {:else} -
- -
- {/if} - {item.label} -
+ {/each} -
+ {/if} diff --git a/src/lib/components/select/token.svelte b/src/lib/components/select/token.svelte index ee158049..53a33b69 100644 --- a/src/lib/components/select/token.svelte +++ b/src/lib/components/select/token.svelte @@ -1,78 +1,128 @@ -