File tree 16 files changed +67
-42
lines changed
16 files changed +67
-42
lines changed Original file line number Diff line number Diff line change @@ -22,7 +22,8 @@ const buildTypes = type => {
22
22
if ( type === 'svelte' ) {
23
23
const getTypeName = component => {
24
24
const componentsWithSvelteSpecificTypes = [
25
- 'Badge'
25
+ 'Badge' ,
26
+ 'Button'
26
27
]
27
28
28
29
return componentsWithSvelteSpecificTypes . includes ( component )
Original file line number Diff line number Diff line change 1
1
<script lang =" ts" >
2
2
import type { AvatarProps } from ' ./avatar'
3
+
3
4
import styles from ' ./avatar.module.scss'
5
+ import { classNames } from ' ../../utils/classNames'
4
6
5
7
export let img: AvatarProps [' img' ] = ' '
6
8
export let alt: AvatarProps [' alt' ] = ' Avatar'
11
13
export let reverse: AvatarProps [' reverse' ] = false
12
14
export let className: AvatarProps [' className' ] = ' '
13
15
14
- const classes = [
16
+ const classes = classNames ( [
15
17
styles .avatar ,
16
18
borderless && styles .borderless ,
17
19
className
18
- ]. filter ( Boolean ). join ( ' ' )
20
+ ])
19
21
20
- const groupStyles = [
22
+ const groupStyles = classNames ( [
21
23
styles .group ,
22
24
reverse && styles .reverse
23
- ]. filter ( Boolean ). join ( ' ' )
25
+ ])
24
26
</script >
25
27
26
28
{#if Array .isArray (img )}
Original file line number Diff line number Diff line change 1
1
import React from 'react'
2
2
import type { AvatarProps } from './avatar'
3
+
3
4
import styles from './avatar.module.scss'
5
+ import { classNames } from '../../utils/classNames'
4
6
5
7
const Avatar = ( {
6
8
img,
@@ -12,16 +14,16 @@ const Avatar = ({
12
14
reverse,
13
15
className,
14
16
} : AvatarProps ) => {
15
- const classes = [
17
+ const classes = classNames ( [
16
18
styles . avatar ,
17
19
borderless && styles . borderless ,
18
20
className
19
- ] . filter ( Boolean ) . join ( ' ' )
21
+ ] )
20
22
21
- const groupStyles = [
23
+ const groupStyles = classNames ( [
22
24
styles . group ,
23
25
reverse && styles . reverse
24
- ] . filter ( Boolean ) . join ( ' ' )
26
+ ] )
25
27
26
28
const borderColorStyle = borderColor
27
29
? { '--w-avatar-border' : borderColor } as React . CSSProperties
Original file line number Diff line number Diff line change 1
1
---
2
2
import type { ButtonProps } from ' ./button'
3
+
3
4
import styles from ' ./button.module.scss'
5
+ import { classNames } from ' ../../utils/classNames'
4
6
5
7
interface Props extends ButtonProps {}
6
8
@@ -11,11 +13,11 @@ const {
11
13
... rest
12
14
} = Astro .props
13
15
14
- const classes = [
16
+ const classes = classNames ( [
15
17
styles .button ,
16
18
bold && styles .bold ,
17
19
theme && styles [theme ]
18
- ]. filter ( Boolean ). join ( ' ' )
20
+ ])
19
21
---
20
22
21
23
{ href ? (
Original file line number Diff line number Diff line change 1
1
<script lang =" ts" >
2
- import type { ButtonProps } from ' ./button'
2
+ import type { SvelteButtonProps } from ' ./button'
3
+
3
4
import styles from ' ./button.module.scss'
5
+ import { classNames } from ' ../../utils/classNames'
4
6
5
- export let theme: ButtonProps [' theme' ] = null
6
- export let bold: ButtonProps [' bold' ] = false
7
- export let href: ButtonProps [' href' ] = ' '
8
- export let onClick: ButtonProps [' onClick' ] = () => {}
7
+ export let theme: SvelteButtonProps [' theme' ] = null
8
+ export let bold: SvelteButtonProps [' bold' ] = false
9
+ export let href: SvelteButtonProps [' href' ] = ' '
10
+ export let onClick: SvelteButtonProps [' onClick' ] = () => {}
9
11
10
- const classes = [
12
+ const classes = classNames ( [
11
13
styles .button ,
12
14
bold && styles .bold ,
13
15
theme && styles [theme ]
14
- ]. filter ( Boolean ). join ( ' ' )
16
+ ])
15
17
</script >
16
18
17
19
Original file line number Diff line number Diff line change 1
1
import React from 'react'
2
2
import type { ReactButtonProps } from './button'
3
+
3
4
import styles from './button.module.scss'
5
+ import { classNames } from '../../utils/classNames'
4
6
5
7
const Button = ( {
6
8
theme,
@@ -10,11 +12,11 @@ const Button = ({
10
12
onClick,
11
13
...rest
12
14
} : ReactButtonProps ) => {
13
- const classes = [
15
+ const classes = classNames ( [
14
16
styles . button ,
15
17
bold && styles . bold ,
16
18
theme && styles [ theme ]
17
- ] . filter ( Boolean ) . join ( ' ' )
19
+ ] )
18
20
19
21
if ( href ) {
20
22
return (
Original file line number Diff line number Diff line change @@ -9,10 +9,14 @@ export type ButtonProps = {
9
9
| null
10
10
bold ?: boolean
11
11
href ?: string
12
- onClick ?: ( ) => any
13
12
[ key : string ] : any
14
13
}
15
14
15
+ export type SvelteButtonProps = {
16
+ onClick ?: ( ) => any
17
+ } & ButtonProps
18
+
16
19
export type ReactButtonProps = {
20
+ onClick ?: ( ) => any
17
21
children : React . ReactNode
18
22
} & ButtonProps
Original file line number Diff line number Diff line change 1
1
<script lang =" ts" >
2
2
import type { CardProps } from ' ./card'
3
+
3
4
import styles from ' ./card.module.scss'
5
+ import { classNames } from ' ../../utils/classNames'
4
6
5
7
export let element: CardProps [' element' ] = ' section'
6
8
export let title: CardProps [' title' ] = ' '
9
11
export let className: CardProps [' className' ] = ' '
10
12
export let secondary: CardProps [' secondary' ] = false
11
13
12
- const classes = [
14
+ const classes = classNames ( [
13
15
styles .card ,
14
16
secondary && styles .secondary ,
15
17
className
16
- ]. filter ( Boolean ). join ( ' ' )
18
+ ])
17
19
18
- const bodyClasses = [
20
+ const bodyClasses = classNames ( [
19
21
styles .body ,
20
22
compact && styles .compact
21
- ]. filter ( Boolean ). join ( ' ' )
23
+ ])
22
24
</script >
23
25
24
26
<svelte:element this ={element } class ={classes } {...$$restProps }>
Original file line number Diff line number Diff line change 1
1
import React from 'react'
2
2
import type { ReactCardProps } from './card'
3
+
3
4
import styles from './card.module.scss'
5
+ import { classNames } from '../../utils/classNames'
4
6
5
7
const Card = ( {
6
8
Element = 'section' ,
@@ -12,16 +14,16 @@ const Card = ({
12
14
children,
13
15
...rest
14
16
} : ReactCardProps ) => {
15
- const classes = [
17
+ const classes = classNames ( [
16
18
styles . card ,
17
19
className ,
18
20
secondary && styles . secondary
19
- ] . filter ( Boolean ) . join ( ' ' )
21
+ ] )
20
22
21
- const bodyClasses = [
23
+ const bodyClasses = classNames ( [
22
24
styles . body ,
23
25
compact && styles . compact
24
- ] . filter ( Boolean ) . join ( ' ' )
26
+ ] )
25
27
26
28
return (
27
29
< Element className = { classes } { ...rest } >
Original file line number Diff line number Diff line change 5
5
import check from ' ../../icons/check.svg?raw'
6
6
7
7
import styles from ' ./checkbox.module.scss'
8
+ import { classNames } from ' ../../utils/classNames'
8
9
9
10
export let checked: CheckboxProps [' checked' ] = false
10
11
export let label: CheckboxProps [' label' ] = ' '
14
15
export let color: CheckboxProps [' color' ] = ' '
15
16
export let onClick: () => any = () => {}
16
17
17
- const classes = [
18
+ const classes = classNames ( [
18
19
styles .checkbox ,
19
20
boxed && styles .boxed ,
20
21
label && subText && styles .col
21
- ]. filter ( Boolean ). join ( ' ' )
22
+ ])
22
23
23
24
const style = color
24
25
? ` --w-checkbox-color: ${color }; `
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.tsx'
5
5
import check from '../../icons/check.svg?raw'
6
6
7
7
import styles from './checkbox.module.scss'
8
+ import { classNames } from '../../utils/classNames'
8
9
9
10
const Checkbox = ( {
10
11
checked,
@@ -15,11 +16,11 @@ const Checkbox = ({
15
16
color,
16
17
onClick
17
18
} : ReactCheckboxProps ) => {
18
- const classes = [
19
+ const classes = classNames ( [
19
20
styles . checkbox ,
20
21
boxed && styles . boxed ,
21
22
label && subText && styles . col
22
- ] . filter ( Boolean ) . join ( ' ' )
23
+ ] )
23
24
24
25
const style = color
25
26
? { '--w-checkbox-color' : color } as React . CSSProperties
Original file line number Diff line number Diff line change 3
3
import ConditionalWrapper from ' ../ConditionalWrapper/ConditionalWrapper.svelte'
4
4
5
5
import styles from ' ./input.module.scss'
6
+ import { classNames } from ' ../../utils/classNames'
6
7
7
8
export let type: InputProps [' type' ] = ' text'
8
9
export let theme: InputProps [' theme' ] = null
13
14
export let onChange: (e : any ) => any = () => {}
14
15
export let onKeyUp: (e : any ) => any = () => {}
15
16
16
- const classes = [
17
+ const classes = classNames ( [
17
18
styles .input ,
18
19
theme && styles [theme ],
19
20
fill && styles .fill ,
20
21
className
21
- ]. filter ( Boolean ). join ( ' ' )
22
+ ])
22
23
23
24
const useLabel = !! (label || subText || $$slots .icon )
24
25
</script >
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ import type { ReactInputProps } from './input'
3
3
import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.tsx'
4
4
5
5
import styles from './input.module.scss'
6
+ import { classNames } from '../../utils/classNames'
6
7
7
8
const Input = ( {
8
9
type = 'text' ,
@@ -15,12 +16,12 @@ const Input = ({
15
16
className,
16
17
...rest
17
18
} : ReactInputProps ) => {
18
- const classes = [
19
+ const classes = classNames ( [
19
20
styles . input ,
20
21
theme && styles [ theme ] ,
21
22
fill && styles . fill ,
22
23
className
23
- ] . filter ( Boolean ) . join ( ' ' )
24
+ ] )
24
25
25
26
const useLabel = ! ! ( label || subText || icon )
26
27
Original file line number Diff line number Diff line change 3
3
import ConditionalWrapper from ' ../ConditionalWrapper/ConditionalWrapper.svelte'
4
4
5
5
import styles from ' ./radio.module.scss'
6
+ import { classNames } from ' ../../utils/classNames'
6
7
7
8
export let name: RadioProps [' name' ] = ' '
8
9
export let items: RadioProps [' items' ] = []
11
12
export let className: RadioProps [' className' ] = ' '
12
13
export let onChange: () => any = () => {}
13
14
14
- const classes = [
15
+ const classes = classNames ( [
15
16
styles .radio ,
16
17
inline && styles .inline ,
17
18
className
18
- ]. filter ( Boolean ). join ( ' ' )
19
+ ])
19
20
20
21
const style = color
21
22
? ` --w-radio-color: ${color }; `
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ import type { ReactRadioProps } from './radio'
4
4
import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.tsx'
5
5
6
6
import styles from './radio.module.scss'
7
+ import { classNames } from '../../utils/classNames'
7
8
8
9
const Radio = ( {
9
10
name,
@@ -13,11 +14,11 @@ const Radio = ({
13
14
className,
14
15
onChange
15
16
} : ReactRadioProps ) => {
16
- const classes = [
17
+ const classes = classNames ( [
17
18
styles . radio ,
18
19
inline && styles . inline ,
19
20
className
20
- ] . filter ( Boolean ) . join ( ' ' )
21
+ ] )
21
22
22
23
const style = color
23
24
? { '--w-radio-color' : color } as React . CSSProperties
Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ $rightOffset: calc((((25px + 4px) / 2) - 1px) * -1);
17
17
& ::before {
18
18
position : absolute ;
19
19
content : ' ' ;
20
- width : 1 px ;
20
+ width : 2 px ;
21
21
background : var (--w-timeline-color );
22
22
height : 100% ;
23
23
left : $leftOffset
You can’t perform that action at this time.
0 commit comments