webcoreui 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +5 -2
  2. package/astro.d.ts +7 -1
  3. package/astro.js +6 -0
  4. package/components/Accordion/Accordion.astro +2 -0
  5. package/components/Accordion/Accordion.svelte +2 -0
  6. package/components/Accordion/Accordion.tsx +2 -0
  7. package/components/Alert/Alert.astro +3 -2
  8. package/components/Alert/Alert.svelte +4 -3
  9. package/components/Alert/Alert.tsx +3 -2
  10. package/components/Avatar/Avatar.astro +2 -1
  11. package/components/Avatar/Avatar.svelte +2 -1
  12. package/components/Avatar/Avatar.tsx +3 -3
  13. package/components/Badge/Badge.astro +1 -0
  14. package/components/Badge/Badge.svelte +3 -2
  15. package/components/Badge/Badge.tsx +2 -1
  16. package/components/Button/Button.astro +4 -5
  17. package/components/Button/Button.svelte +2 -1
  18. package/components/Button/Button.tsx +2 -1
  19. package/components/Button/button.ts +1 -1
  20. package/components/Card/Card.astro +11 -3
  21. package/components/Card/Card.svelte +5 -2
  22. package/components/Card/Card.tsx +5 -2
  23. package/components/Card/card.ts +1 -0
  24. package/components/Checkbox/Checkbox.astro +1 -0
  25. package/components/Checkbox/Checkbox.svelte +7 -5
  26. package/components/Checkbox/Checkbox.tsx +4 -2
  27. package/components/Collapsible/Collapsible.astro +2 -1
  28. package/components/Collapsible/Collapsible.svelte +2 -1
  29. package/components/Collapsible/Collapsible.tsx +55 -54
  30. package/components/ConditionalWrapper/ConditionalWrapper.astro +2 -1
  31. package/components/ConditionalWrapper/ConditionalWrapper.tsx +1 -2
  32. package/components/Group/Group.astro +22 -0
  33. package/components/Group/Group.svelte +20 -0
  34. package/components/Group/Group.tsx +22 -0
  35. package/components/Group/group.module.scss +43 -0
  36. package/components/Group/group.ts +8 -0
  37. package/components/Icon/map.ts +2 -0
  38. package/components/Input/Input.astro +8 -1
  39. package/components/Input/Input.svelte +15 -3
  40. package/components/Input/Input.tsx +10 -3
  41. package/components/Input/input.module.scss +4 -1
  42. package/components/Input/input.ts +9 -4
  43. package/components/List/List.astro +169 -0
  44. package/components/List/List.svelte +147 -0
  45. package/components/List/List.tsx +168 -0
  46. package/components/List/list.module.scss +91 -0
  47. package/components/List/list.ts +37 -0
  48. package/components/Menu/Menu.astro +2 -1
  49. package/components/Menu/Menu.svelte +7 -5
  50. package/components/Menu/Menu.tsx +116 -113
  51. package/components/Modal/Modal.astro +6 -4
  52. package/components/Modal/Modal.svelte +8 -6
  53. package/components/Modal/Modal.tsx +79 -76
  54. package/components/Modal/modal.ts +1 -0
  55. package/components/Popover/Popover.astro +4 -1
  56. package/components/Popover/Popover.svelte +4 -2
  57. package/components/Popover/Popover.tsx +55 -27
  58. package/components/Popover/popover.module.scss +1 -0
  59. package/components/Popover/popover.ts +2 -0
  60. package/components/Progress/Progress.astro +2 -1
  61. package/components/Progress/Progress.svelte +2 -1
  62. package/components/Progress/Progress.tsx +3 -2
  63. package/components/Radio/Radio.astro +1 -0
  64. package/components/Radio/Radio.svelte +4 -2
  65. package/components/Radio/Radio.tsx +3 -2
  66. package/components/Rating/Rating.astro +3 -1
  67. package/components/Rating/Rating.svelte +9 -7
  68. package/components/Rating/Rating.tsx +4 -2
  69. package/components/Select/Select.astro +135 -0
  70. package/components/Select/Select.svelte +122 -0
  71. package/components/Select/Select.tsx +142 -0
  72. package/components/Select/select.module.scss +25 -0
  73. package/components/Select/select.ts +21 -0
  74. package/components/Sheet/Sheet.astro +2 -1
  75. package/components/Sheet/Sheet.svelte +2 -1
  76. package/components/Sheet/Sheet.tsx +33 -32
  77. package/components/Slider/Slider.astro +2 -1
  78. package/components/Slider/Slider.svelte +2 -1
  79. package/components/Slider/Slider.tsx +49 -48
  80. package/components/Spinner/Spinner.astro +4 -3
  81. package/components/Spinner/Spinner.svelte +3 -2
  82. package/components/Spinner/Spinner.tsx +4 -3
  83. package/components/Switch/Switch.astro +2 -1
  84. package/components/Switch/Switch.svelte +5 -4
  85. package/components/Switch/Switch.tsx +2 -2
  86. package/components/Switch/switch.module.scss +1 -1
  87. package/components/Table/Table.astro +1 -0
  88. package/components/Table/Table.svelte +2 -1
  89. package/components/Table/Table.tsx +2 -1
  90. package/components/Tabs/Tabs.astro +2 -1
  91. package/components/Tabs/Tabs.svelte +2 -1
  92. package/components/Tabs/Tabs.tsx +4 -3
  93. package/components/Textarea/Textarea.astro +1 -0
  94. package/components/Textarea/Textarea.svelte +3 -1
  95. package/components/Textarea/Textarea.tsx +52 -50
  96. package/components/ThemeSwitcher/ThemeSwitcher.astro +108 -107
  97. package/components/ThemeSwitcher/ThemeSwitcher.svelte +5 -4
  98. package/components/ThemeSwitcher/ThemeSwitcher.tsx +91 -90
  99. package/components/Timeline/Timeline.astro +3 -2
  100. package/components/Timeline/Timeline.svelte +3 -2
  101. package/components/Timeline/Timeline.tsx +3 -2
  102. package/components/TimelineItem/TimelineItem.svelte +2 -1
  103. package/components/TimelineItem/TimelineItem.tsx +2 -1
  104. package/components/Toast/Toast.astro +3 -1
  105. package/components/Toast/Toast.svelte +3 -1
  106. package/components/Toast/Toast.tsx +3 -1
  107. package/icons/moon.svg +1 -1
  108. package/icons/search.svg +3 -0
  109. package/icons.d.ts +1 -0
  110. package/icons.js +1 -0
  111. package/index.d.ts +55 -25
  112. package/package.json +22 -4
  113. package/react.d.ts +6 -0
  114. package/react.js +6 -0
  115. package/scss/config/mixins.scss +12 -10
  116. package/scss/config/variables.scss +1 -0
  117. package/scss/config.scss +1 -0
  118. package/scss/global/utility.scss +2 -0
  119. package/svelte.d.ts +7 -1
  120. package/svelte.js +6 -0
  121. package/utils/cookies.ts +4 -4
  122. package/utils/debounce.ts +1 -1
  123. package/utils/event.ts +2 -2
  124. package/utils/interpolate.ts +5 -5
  125. package/utils/modal.ts +90 -27
  126. package/utils/popover.ts +30 -8
  127. package/utils/toast.ts +6 -2
package/README.md CHANGED
@@ -79,7 +79,7 @@ yarn add webcoreui
79
79
 
80
80
  ### Setup
81
81
 
82
- Create an empty `webcore.config.scss` file at the root of your project to setup CSS configurations. Setup default styles and fonts by calling the following in your global SCSS file:
82
+ Create an empty [`webcore.config.scss`](https://webcoreui.dev/docs/css-configuration#webcoreconfigscss) file at the root of your project to setup CSS configurations. Setup default styles and fonts by calling the following in your global SCSS file:
83
83
 
84
84
  ```scss
85
85
  @import 'webcoreui/styles';
@@ -113,7 +113,7 @@ html body {
113
113
  // Checkbox component
114
114
  --w-checkbox-color: var(--w-color-primary);
115
115
 
116
- // Collapsible
116
+ // Collapsible component
117
117
  --w-collapsible-initial-height: 0;
118
118
  --w-collapsible-max-height: 100%;
119
119
 
@@ -203,14 +203,17 @@ import { Accordion } from 'webcoreui/react'
203
203
  - [Checkbox](https://github.com/Frontendland/webcoreui/tree/main/src/components/Checkbox)
204
204
  - [Collapsible](https://github.com/Frontendland/webcoreui/tree/main/src/components/Collapsible)
205
205
  - [ConditionalWrapper](https://github.com/Frontendland/webcoreui/tree/main/src/components/ConditionalWrapper)
206
+ - [Group](https://github.com/Frontendland/webcoreui/tree/main/src/components/Group)
206
207
  - [Icon](https://github.com/Frontendland/webcoreui/tree/main/src/components/Icon)
207
208
  - [Input](https://github.com/Frontendland/webcoreui/tree/main/src/components/Input)
209
+ - [List](https://github.com/Frontendland/webcoreui/tree/main/src/components/List)
208
210
  - [Menu](https://github.com/Frontendland/webcoreui/tree/main/src/components/Menu)
209
211
  - [Modal](https://github.com/Frontendland/webcoreui/tree/main/src/components/Modal)
210
212
  - [Popover](https://github.com/Frontendland/webcoreui/tree/main/src/components/Popover)
211
213
  - [Progress](https://github.com/Frontendland/webcoreui/tree/main/src/components/Progress)
212
214
  - [Radio](https://github.com/Frontendland/webcoreui/tree/main/src/components/Radio)
213
215
  - [Rating](https://github.com/Frontendland/webcoreui/tree/main/src/components/Rating)
216
+ - [Select](https://github.com/Frontendland/webcoreui/tree/main/src/components/Select)
214
217
  - [Sheet](https://github.com/Frontendland/webcoreui/tree/main/src/components/Sheet)
215
218
  - [Slider](https://github.com/Frontendland/webcoreui/tree/main/src/components/Slider)
216
219
  - [Spinner](https://github.com/Frontendland/webcoreui/tree/main/src/components/Spinner)
package/astro.d.ts CHANGED
@@ -7,14 +7,17 @@ import type { CardProps } from './components/Card/card'
7
7
  import type { CheckboxProps } from './components/Checkbox/checkbox'
8
8
  import type { CollapsibleProps } from './components/Collapsible/collapsible'
9
9
  import type { ConditionalWrapperProps } from './components/ConditionalWrapper/conditionalwrapper'
10
+ import type { GroupProps } from './components/Group/group'
10
11
  import type { IconProps } from './components/Icon/icon'
11
12
  import type { InputProps } from './components/Input/input'
13
+ import type { ListProps } from './components/List/list'
12
14
  import type { MenuProps } from './components/Menu/menu'
13
15
  import type { ModalProps } from './components/Modal/modal'
14
16
  import type { PopoverProps } from './components/Popover/popover'
15
17
  import type { ProgressProps } from './components/Progress/progress'
16
18
  import type { RadioProps } from './components/Radio/radio'
17
19
  import type { RatingProps } from './components/Rating/rating'
20
+ import type { SelectProps } from './components/Select/select'
18
21
  import type { SheetProps } from './components/Sheet/sheet'
19
22
  import type { SliderProps } from './components/Slider/slider'
20
23
  import type { SpinnerProps } from './components/Spinner/spinner'
@@ -26,7 +29,7 @@ import type { ThemeSwitcherProps } from './components/ThemeSwitcher/themeswitche
26
29
  import type { TimelineProps } from './components/Timeline/timeline'
27
30
  import type { TimelineItemProps } from './components/TimelineItem/timelineitem'
28
31
  import type { ToastProps } from './components/Toast/toast'
29
-
32
+
30
33
  declare module 'webcoreui/astro' {
31
34
  export function Accordion(_props: AccordionProps): any
32
35
  export function Alert(_props: AlertProps): any
@@ -37,14 +40,17 @@ declare module 'webcoreui/astro' {
37
40
  export function Checkbox(_props: CheckboxProps): any
38
41
  export function Collapsible(_props: CollapsibleProps): any
39
42
  export function ConditionalWrapper(_props: ConditionalWrapperProps): any
43
+ export function Group(_props: GroupProps): any
40
44
  export function Icon(_props: IconProps): any
41
45
  export function Input(_props: InputProps): any
46
+ export function List(_props: ListProps): any
42
47
  export function Menu(_props: MenuProps): any
43
48
  export function Modal(_props: ModalProps): any
44
49
  export function Popover(_props: PopoverProps): any
45
50
  export function Progress(_props: ProgressProps): any
46
51
  export function Radio(_props: RadioProps): any
47
52
  export function Rating(_props: RatingProps): any
53
+ export function Select(_props: SelectProps): any
48
54
  export function Sheet(_props: SheetProps): any
49
55
  export function Slider(_props: SliderProps): any
50
56
  export function Spinner(_props: SpinnerProps): any
package/astro.js CHANGED
@@ -7,14 +7,17 @@ import CardComponent from './components/Card/Card.astro'
7
7
  import CheckboxComponent from './components/Checkbox/Checkbox.astro'
8
8
  import CollapsibleComponent from './components/Collapsible/Collapsible.astro'
9
9
  import ConditionalWrapperComponent from './components/ConditionalWrapper/ConditionalWrapper.astro'
10
+ import GroupComponent from './components/Group/Group.astro'
10
11
  import IconComponent from './components/Icon/Icon.astro'
11
12
  import InputComponent from './components/Input/Input.astro'
13
+ import ListComponent from './components/List/List.astro'
12
14
  import MenuComponent from './components/Menu/Menu.astro'
13
15
  import ModalComponent from './components/Modal/Modal.astro'
14
16
  import PopoverComponent from './components/Popover/Popover.astro'
15
17
  import ProgressComponent from './components/Progress/Progress.astro'
16
18
  import RadioComponent from './components/Radio/Radio.astro'
17
19
  import RatingComponent from './components/Rating/Rating.astro'
20
+ import SelectComponent from './components/Select/Select.astro'
18
21
  import SheetComponent from './components/Sheet/Sheet.astro'
19
22
  import SliderComponent from './components/Slider/Slider.astro'
20
23
  import SpinnerComponent from './components/Spinner/Spinner.astro'
@@ -36,14 +39,17 @@ export const Card = CardComponent
36
39
  export const Checkbox = CheckboxComponent
37
40
  export const Collapsible = CollapsibleComponent
38
41
  export const ConditionalWrapper = ConditionalWrapperComponent
42
+ export const Group = GroupComponent
39
43
  export const Icon = IconComponent
40
44
  export const Input = InputComponent
45
+ export const List = ListComponent
41
46
  export const Menu = MenuComponent
42
47
  export const Modal = ModalComponent
43
48
  export const Popover = PopoverComponent
44
49
  export const Progress = ProgressComponent
45
50
  export const Radio = RadioComponent
46
51
  export const Rating = RatingComponent
52
+ export const Select = SelectComponent
47
53
  export const Sheet = SheetComponent
48
54
  export const Slider = SliderComponent
49
55
  export const Spinner = SpinnerComponent
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  import type { AccordionProps } from './accordion'
3
+
3
4
  import ArrowDown from '../../icons/arrow-down.svg?raw'
5
+
4
6
  import styles from './accordion.module.scss'
5
7
 
6
8
  interface Props extends AccordionProps {}
@@ -1,6 +1,8 @@
1
1
  <script lang="ts">
2
2
  import type { AccordionProps } from './accordion'
3
+
3
4
  import ArrowDown from '../../icons/arrow-down.svg?raw'
5
+
4
6
  import styles from './accordion.module.scss'
5
7
 
6
8
  export let items: AccordionProps['items']
@@ -1,6 +1,8 @@
1
1
  import React, { useState } from 'react'
2
2
  import type { AccordionProps } from './accordion'
3
+
3
4
  import ArrowDown from '../../icons/arrow-down.svg?raw'
5
+
4
6
  import styles from './accordion.module.scss'
5
7
 
6
8
  const Accordion = ({ items }: AccordionProps) => {
@@ -1,11 +1,12 @@
1
1
  ---
2
2
  import type { AlertProps } from './alert'
3
+
3
4
  import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.astro'
4
5
 
5
- import info from '../../icons/info.svg?raw'
6
+ import alert from '../../icons/alert.svg?raw'
6
7
  import success from '../../icons/circle-check.svg?raw'
8
+ import info from '../../icons/info.svg?raw'
7
9
  import warning from '../../icons/warning.svg?raw'
8
- import alert from '../../icons/alert.svg?raw'
9
10
 
10
11
  import styles from './alert.module.scss'
11
12
 
@@ -1,11 +1,12 @@
1
1
  <script lang="ts">
2
2
  import type { AlertProps } from './alert'
3
+
3
4
  import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.svelte'
4
5
 
5
- import info from '../../icons/info.svg?raw'
6
+ import alert from '../../icons/alert.svg?raw'
6
7
  import success from '../../icons/circle-check.svg?raw'
8
+ import info from '../../icons/info.svg?raw'
7
9
  import warning from '../../icons/warning.svg?raw'
8
- import alert from '../../icons/alert.svg?raw'
9
10
 
10
11
  import styles from './alert.module.scss'
11
12
 
@@ -40,7 +41,7 @@
40
41
  {#if !hasCustomIcon && theme}
41
42
  {@html iconMap[theme]}
42
43
  {/if}
43
-
44
+
44
45
  <ConditionalWrapper
45
46
  condition={!!(hasCustomIcon || theme)}
46
47
  element="div"
@@ -1,11 +1,12 @@
1
1
  import React from 'react'
2
2
  import type { ReactAlertProps } from './alert'
3
+
3
4
  import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.tsx'
4
5
 
5
- import info from '../../icons/info.svg?raw'
6
+ import alert from '../../icons/alert.svg?raw'
6
7
  import success from '../../icons/circle-check.svg?raw'
8
+ import info from '../../icons/info.svg?raw'
7
9
  import warning from '../../icons/warning.svg?raw'
8
- import alert from '../../icons/alert.svg?raw'
9
10
 
10
11
  import styles from './alert.module.scss'
11
12
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  import type { AvatarProps } from './avatar'
3
+
3
4
  import styles from './avatar.module.scss'
4
5
 
5
6
  interface Props extends AvatarProps {}
@@ -12,7 +13,7 @@ const {
12
13
  borderColor,
13
14
  borderless,
14
15
  reverse,
15
- className,
16
+ className
16
17
  } = Astro.props
17
18
 
18
19
  const classes = [
@@ -1,9 +1,10 @@
1
1
  <script lang="ts">
2
2
  import type { AvatarProps } from './avatar'
3
3
 
4
- import styles from './avatar.module.scss'
5
4
  import { classNames } from '../../utils/classNames'
6
5
 
6
+ import styles from './avatar.module.scss'
7
+
7
8
  export let img: AvatarProps['img'] = ''
8
9
  export let alt: AvatarProps['alt'] = 'Avatar'
9
10
  export let size: AvatarProps['size'] = 40
@@ -1,9 +1,10 @@
1
1
  import React from 'react'
2
2
  import type { AvatarProps } from './avatar'
3
3
 
4
- import styles from './avatar.module.scss'
5
4
  import { classNames } from '../../utils/classNames'
6
5
 
6
+ import styles from './avatar.module.scss'
7
+
7
8
  const Avatar = ({
8
9
  img,
9
10
  alt = 'Avatar',
@@ -12,7 +13,7 @@ const Avatar = ({
12
13
  borderColor,
13
14
  borderless,
14
15
  reverse,
15
- className,
16
+ className
16
17
  }: AvatarProps) => {
17
18
  const classes = classNames([
18
19
  styles.avatar,
@@ -60,7 +61,6 @@ const Avatar = ({
60
61
  style={borderColorStyle}
61
62
  />
62
63
  )
63
-
64
64
  }
65
65
 
66
66
  export default Avatar
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  import type { BadgeProps } from './badge'
3
+
3
4
  import styles from './badge.module.scss'
4
5
 
5
6
  interface Props extends BadgeProps {}
@@ -1,9 +1,10 @@
1
1
  <script lang="ts">
2
2
  import type { SvelteBadgeProps } from './badge'
3
3
 
4
- import styles from './badge.module.scss'
5
4
  import { classNames } from '../../utils/classNames'
6
-
5
+
6
+ import styles from './badge.module.scss'
7
+
7
8
  export let theme: SvelteBadgeProps['theme'] = null
8
9
  export let onClick: SvelteBadgeProps['onClick'] = null
9
10
  export let hover: SvelteBadgeProps['hover'] = false
@@ -1,9 +1,10 @@
1
1
  import React from 'react'
2
2
  import type { ReactBadgeProps } from './badge'
3
3
 
4
- import styles from './badge.module.scss'
5
4
  import { classNames } from '../../utils/classNames'
6
5
 
6
+ import styles from './badge.module.scss'
7
+
7
8
  const Badge = ({
8
9
  theme,
9
10
  onClick,
@@ -2,7 +2,6 @@
2
2
  import type { ButtonProps } from './button'
3
3
 
4
4
  import styles from './button.module.scss'
5
- import { classNames } from '../../utils/classNames'
6
5
 
7
6
  interface Props extends ButtonProps {}
8
7
 
@@ -13,19 +12,19 @@ const {
13
12
  ...rest
14
13
  } = Astro.props
15
14
 
16
- const classes = classNames([
15
+ const classes = [
17
16
  styles.button,
18
17
  theme && styles[theme],
19
18
  className
20
- ])
19
+ ]
21
20
  ---
22
21
 
23
22
  {href ? (
24
- <a {...rest} href={href} class={classes || null}>
23
+ <a {...rest} href={href} class:list={classes}>
25
24
  <slot />
26
25
  </a>
27
26
  ) : (
28
- <button {...rest} class={classes || null}>
27
+ <button {...rest} class:list={classes}>
29
28
  <slot />
30
29
  </button>
31
30
  )}
@@ -1,9 +1,10 @@
1
1
  <script lang="ts">
2
2
  import type { SvelteButtonProps } from './button'
3
3
 
4
- import styles from './button.module.scss'
5
4
  import { classNames } from '../../utils/classNames'
6
5
 
6
+ import styles from './button.module.scss'
7
+
7
8
  export let theme: SvelteButtonProps['theme'] = null
8
9
  export let href: SvelteButtonProps['href'] = ''
9
10
  export let className: SvelteButtonProps['className'] = ''
@@ -1,9 +1,10 @@
1
1
  import React from 'react'
2
2
  import type { ReactButtonProps } from './button'
3
3
 
4
- import styles from './button.module.scss'
5
4
  import { classNames } from '../../utils/classNames'
6
5
 
6
+ import styles from './button.module.scss'
7
+
7
8
  const Button = ({
8
9
  theme,
9
10
  href,
@@ -18,5 +18,5 @@ export type SvelteButtonProps = {
18
18
 
19
19
  export type ReactButtonProps = {
20
20
  onClick?: () => any
21
- children?: React.ReactNode
21
+ children: React.ReactNode
22
22
  } & ButtonProps
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  import type { CardProps } from './card'
3
+
3
4
  import styles from './card.module.scss'
4
5
 
5
6
  interface Props extends CardProps {}
@@ -10,6 +11,7 @@ const {
10
11
  titleTag = 'span',
11
12
  compact,
12
13
  className,
14
+ bodyClassName,
13
15
  secondary,
14
16
  ...rest
15
17
  } = Astro.props
@@ -17,8 +19,14 @@ const {
17
19
  const classes = [
18
20
  styles.card,
19
21
  secondary && styles.secondary,
20
- className,
21
- ].filter(Boolean).join(' ')
22
+ className
23
+ ]
24
+
25
+ const bodyClasses = [
26
+ styles.body,
27
+ compact && styles.compact,
28
+ bodyClassName
29
+ ]
22
30
 
23
31
  const Component = element
24
32
  const Title = titleTag
@@ -28,7 +36,7 @@ const Title = titleTag
28
36
  {title && (
29
37
  <Title class:list={styles.title}>{title}</Title>
30
38
  )}
31
- <div class:list={[styles.body, compact && styles.compact]}>
39
+ <div class:list={bodyClasses}>
32
40
  <slot />
33
41
  </div>
34
42
  </Component>
@@ -1,14 +1,16 @@
1
1
  <script lang="ts">
2
2
  import type { CardProps } from './card'
3
3
 
4
- import styles from './card.module.scss'
5
4
  import { classNames } from '../../utils/classNames'
6
5
 
6
+ import styles from './card.module.scss'
7
+
7
8
  export let element: CardProps['element'] = 'section'
8
9
  export let title: CardProps['title'] = ''
9
10
  export let titleTag: CardProps['titleTag'] = 'span'
10
11
  export let compact: CardProps['compact'] = false
11
12
  export let className: CardProps['className'] = ''
13
+ export let bodyClassName: CardProps['bodyClassName'] = ''
12
14
  export let secondary: CardProps['secondary'] = false
13
15
 
14
16
  const classes = classNames([
@@ -19,7 +21,8 @@
19
21
 
20
22
  const bodyClasses = classNames([
21
23
  styles.body,
22
- compact && styles.compact
24
+ compact && styles.compact,
25
+ bodyClassName
23
26
  ])
24
27
  </script>
25
28
 
@@ -1,15 +1,17 @@
1
1
  import React from 'react'
2
2
  import type { ReactCardProps } from './card'
3
3
 
4
- import styles from './card.module.scss'
5
4
  import { classNames } from '../../utils/classNames'
6
5
 
6
+ import styles from './card.module.scss'
7
+
7
8
  const Card = ({
8
9
  Element = 'section',
9
10
  title,
10
11
  TitleTag = 'span',
11
12
  compact,
12
13
  className,
14
+ bodyClassName,
13
15
  secondary,
14
16
  children,
15
17
  ...rest
@@ -22,7 +24,8 @@ const Card = ({
22
24
 
23
25
  const bodyClasses = classNames([
24
26
  styles.body,
25
- compact && styles.compact
27
+ compact && styles.compact,
28
+ bodyClassName
26
29
  ])
27
30
 
28
31
  return (
@@ -4,6 +4,7 @@ export type CardProps = {
4
4
  titleTag?: string
5
5
  compact?: boolean
6
6
  className?: string
7
+ bodyClassName?: string
7
8
  secondary?: boolean
8
9
  [key: string]: any
9
10
  }
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  import type { CheckboxProps } from './checkbox'
3
+
3
4
  import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.astro'
4
5
 
5
6
  import check from '../../icons/check.svg?raw'
@@ -1,12 +1,14 @@
1
1
  <script lang="ts">
2
2
  import type { SvelteCheckboxProps } from './checkbox'
3
+
3
4
  import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.svelte'
4
-
5
+
6
+ import { classNames } from '../../utils/classNames'
7
+
5
8
  import check from '../../icons/check.svg?raw'
6
-
9
+
7
10
  import styles from './checkbox.module.scss'
8
- import { classNames } from '../../utils/classNames'
9
-
11
+
10
12
  export let checked: SvelteCheckboxProps['checked'] = false
11
13
  export let label: SvelteCheckboxProps['label'] = ''
12
14
  export let subText: SvelteCheckboxProps['subText'] = ''
@@ -20,7 +22,7 @@
20
22
  label && subText && styles.col,
21
23
  className
22
24
  ])
23
-
25
+
24
26
  const style = color
25
27
  ? `--w-checkbox-color: ${color};`
26
28
  : null
@@ -1,11 +1,13 @@
1
1
  import React from 'react'
2
2
  import type { ReactCheckboxProps } from './checkbox'
3
+
3
4
  import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.tsx'
4
5
 
6
+ import { classNames } from '../../utils/classNames'
7
+
5
8
  import check from '../../icons/check.svg?raw'
6
9
 
7
10
  import styles from './checkbox.module.scss'
8
- import { classNames } from '../../utils/classNames'
9
11
 
10
12
  const Checkbox = ({
11
13
  checked,
@@ -21,7 +23,7 @@ const Checkbox = ({
21
23
  label && subText && styles.col,
22
24
  className
23
25
  ])
24
-
26
+
25
27
  const style = color
26
28
  ? { '--w-checkbox-color': color } as React.CSSProperties
27
29
  : undefined
@@ -1,9 +1,10 @@
1
1
  ---
2
2
  import type { CollapsibleProps } from './collapsible'
3
3
 
4
- import styles from './collapsible.module.scss'
5
4
  import { classNames } from '../../utils/classNames'
6
5
 
6
+ import styles from './collapsible.module.scss'
7
+
7
8
  interface Props extends CollapsibleProps {}
8
9
 
9
10
  const {
@@ -1,9 +1,10 @@
1
1
  <script lang="ts">
2
2
  import type { CollapsibleProps } from './collapsible'
3
3
 
4
- import styles from './collapsible.module.scss'
5
4
  import { classNames } from '../../utils/classNames'
6
5
 
6
+ import styles from './collapsible.module.scss'
7
+
7
8
  export let initialHeight: CollapsibleProps['initialHeight'] = ''
8
9
  export let maxHeight: CollapsibleProps['maxHeight'] = ''
9
10
  export let toggled: CollapsibleProps['toggled'] = false