File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 3131 },
3232 "peerDependencies" : {
3333 "@stackoverflow/stacks" : " ^2.0.0 || ^3.0.0-beta.0 || ^3.0.0" ,
34- "svelte" : " ^5.0 .0"
34+ "svelte" : " ^5.19 .0"
3535 },
3636 "dependencies" : {
3737 "clsx" : " ^2.1.1" ,
Original file line number Diff line number Diff line change 33 </script >
44
55<script lang =" ts" >
6+ import clsx from " clsx" ;
7+ import type { ClassValue } from " svelte/elements" ;
68 import Checkbox from " ../Checkbox/Checkbox.svelte" ;
79 import Radio from " ../RadioGroup/Radio.svelte" ;
810 import Icon from " ../Icon/Icon.svelte" ;
5658 /**
5759 * Additional CSS classes added to the check control container
5860 */
59- class? : string ;
61+ class? : ClassValue ;
6062 }
6163
6264 const {
7274 class : className = " " ,
7375 }: Props = $props ();
7476
75- const getItemClasses = (className : string ) => {
76- return ` s-menu--item${ className ? ` ${ className } ` : " " } ` ;
77+ const getItemClasses = (className : ClassValue ) => {
78+ return clsx ( " s-menu--item" , className ) ;
7779 };
7880
7981 const itemClasses = $derived (getItemClasses (className ));
Original file line number Diff line number Diff line change 11<script lang =" ts" >
2+ import clsx from " clsx" ;
3+ import type { ClassValue } from " svelte/elements" ;
4+
25 interface Props {
36 /**
47 * Additional CSS classes added to the element
58 */
6- class? : string ;
9+ class? : ClassValue ;
710 }
811
912 let { class : className = " " }: Props = $props ();
1013
11- const getClasses = (className : string ) => {
12- const base = " s-menu--divider" ;
13- let classes = base ;
14-
15- if (className ) {
16- classes += ` ${className } ` ;
17- }
18-
19- return classes ;
14+ const getClasses = (className : ClassValue ) => {
15+ return clsx (" s-menu--divider" , className );
2016 };
2117
2218 const classes = $derived (getClasses (className ));
Original file line number Diff line number Diff line change 33 </script >
44
55<script lang =" ts" >
6+ import clsx from " clsx" ;
67 import type { Snippet } from " svelte" ;
78 import type {
9+ ClassValue ,
810 HTMLAnchorAttributes ,
911 HTMLButtonAttributes ,
1012 } from " svelte/elements" ;
3739 /**
3840 * Additional CSS classes added to the element
3941 */
40- class? : string ;
42+ class? : ClassValue ;
4143
4244 /**
4345 * Snippet for the menu item content
5658 ... restProps
5759 }: Props = $props ();
5860
59- const getItemClasses = (className : string ) => {
60- return ` s-menu--item${ className ? ` ${ className } ` : " " } ` ;
61+ const getItemClasses = (className : ClassValue ) => {
62+ return clsx ( " s-menu--item" , className ) ;
6163 };
6264
6365 const getLinkClasses = (
64- className : string ,
66+ className : ClassValue ,
6567 danger : boolean ,
6668 selected : boolean
6769 ) => {
68- const base = " s-menu--action" ;
69- let classes = base ;
70-
71- if (danger ) {
72- classes += ` ${base }__danger ` ;
73- }
74-
75- if (className ) {
76- classes += ` ${className } ` ;
77- }
78-
79- if (selected ) {
80- classes += ` is--selected ` ;
81- }
82-
83- return classes ;
70+ return clsx (
71+ " s-menu--action" ,
72+ danger && " s-menu--action__danger" ,
73+ className ,
74+ selected && " is--selected"
75+ );
8476 };
8577
8678 const itemClasses = $derived (getItemClasses (className ));
Original file line number Diff line number Diff line change 33 </script >
44
55<script lang =" ts" >
6+ import clsx from " clsx" ;
67 import type { Snippet } from " svelte" ;
8+ import type { ClassValue } from " svelte/elements" ;
79
810 interface Props {
911 /**
1012 * Additional CSS classes added to the element
1113 */
12- class? : string ;
14+ class? : ClassValue ;
1315
1416 /**
1517 * Sets whether the menu title is rendered within a fieldset
2426
2527 let { class : className = " " , type = " li" , children }: Props = $props ();
2628
27- const getClasses = (className : string ) => {
28- const base = " s-menu--title" ;
29- let classes = base ;
30-
31- if (className ) {
32- classes += ` ${className } ` ;
33- }
34-
35- return classes ;
29+ const getClasses = (className : ClassValue ) => {
30+ return clsx (" s-menu--title" , className );
3631 };
3732
3833 const classes = $derived (getClasses (className ));
Original file line number Diff line number Diff line change 11<script lang =" ts" >
2+ import clsx from " clsx" ;
3+ import type { ClassValue } from " svelte/elements" ;
24 import Icon from " ../Icon/Icon.svelte" ;
35 import { IconCross } from " @stackoverflow/stacks-icons/icons" ;
46 import { usePopoverContext } from " ./Popover.svelte" ;
1113 /**
1214 * Additional CSS classes added to the element
1315 */
14- class? : string ;
16+ class? : ClassValue ;
1517 /**
1618 * Callback fired when the close button is clicked
1719 */
3032
3133<button
3234 aria-label ={label }
33- class ={` s-popover--close s-btn s-btn__tonal ps-absolute${ className ? ` ${ className } ` : " " } ` }
35+ class ={clsx ( " s-popover--close s-btn s-btn__tonal ps-absolute" , className ) }
3436 type =" button"
3537 onclick ={handleClick }
3638>
You can’t perform that action at this time.
0 commit comments