File tree 2 files changed +15
-1
lines changed
2 files changed +15
-1
lines changed Original file line number Diff line number Diff line change 61
61
<Story name ="Disabled and Selected" args ={{ disabled : true , value : ' pizza' }} />
62
62
63
63
<Story name ="Label Hidden" args ={{ labelHidden : true }} />
64
+
65
+ <Story
66
+ name =" Invalid with error message"
67
+ args ={{ valid : false , error : ' This value is invalid' }}
68
+ />
Original file line number Diff line number Diff line change 24
24
import { writable , type Writable } from ' svelte/store' ;
25
25
26
26
import { onMount , setContext } from ' svelte' ;
27
+ import { twMerge } from ' tailwind-merge' ;
27
28
28
29
import type { ButtonStyles } from ' $lib/holocene/button.svelte' ;
29
30
import type { IconName } from ' $lib/holocene/icon' ;
46
47
menuClass? : string ;
47
48
variant? : ButtonStyles [' variant' ];
48
49
required? : boolean ;
50
+ valid? : boolean ;
51
+ error? : string ;
49
52
};
50
53
51
54
export let label: string ;
59
62
export let menuClass: string | undefined = undefined ;
60
63
export let variant: ButtonStyles [' variant' ] = ' secondary' ;
61
64
export let required = false ;
65
+ export let error = ' ' ;
66
+ export let valid = true ;
62
67
63
68
// We get the "true" value of this further down but before the mount happens we should have some kind of value
64
69
const valueCtx = writable <T >(value );
106
111
<Label class ="pb-1" {label } hidden ={labelHidden } for ={id } {required } />
107
112
{#key $labelCtx }
108
113
<MenuButton
109
- class =" w-full"
114
+ class ={ twMerge ( ' w-full' , ! valid ? ' border-danger ' : undefined )}
110
115
hasIndicator ={! disabled }
111
116
{disabled }
112
117
controls =" {id }-select"
136
141
<Menu role ="listbox" id =" {id }-select" class ={menuClass }>
137
142
<slot />
138
143
</Menu >
144
+
145
+ {#if error && ! valid }
146
+ <span class ="text-xs text-danger" >{error }</span >
147
+ {/if }
139
148
</MenuContainer >
140
149
141
150
<style lang =" postcss" >
You can’t perform that action at this time.
0 commit comments