webcoreui 1.5.0-0 → 1.5.0-beta.2
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.
- package/astro.d.ts +62 -56
- package/astro.js +4 -0
- package/components/Accordion/Accordion.astro +1 -1
- package/components/Accordion/Accordion.svelte +60 -58
- package/components/Accordion/Accordion.tsx +4 -2
- package/components/Alert/Alert.astro +2 -1
- package/components/Alert/Alert.svelte +9 -2
- package/components/Alert/Alert.tsx +10 -3
- package/components/Alert/alert.ts +2 -18
- package/components/AspectRatio/AspectRatio.astro +1 -1
- package/components/AspectRatio/AspectRatio.svelte +7 -2
- package/components/AspectRatio/AspectRatio.tsx +6 -3
- package/components/AspectRatio/aspectratio.ts +0 -10
- package/components/Avatar/Avatar.astro +1 -1
- package/components/Avatar/Avatar.svelte +3 -1
- package/components/Avatar/Avatar.tsx +3 -2
- package/components/Badge/Badge.astro +2 -1
- package/components/Badge/Badge.svelte +9 -2
- package/components/Badge/Badge.tsx +8 -3
- package/components/Badge/badge.ts +11 -13
- package/components/Banner/Banner.astro +1 -1
- package/components/Banner/Banner.svelte +7 -2
- package/components/Banner/Banner.tsx +6 -2
- package/components/Banner/banner.ts +0 -10
- package/components/BottomNavigation/BottomNavigation.astro +1 -1
- package/components/BottomNavigation/BottomNavigation.svelte +3 -1
- package/components/BottomNavigation/BottomNavigation.tsx +3 -2
- package/components/Breadcrumb/Breadcrumb.astro +1 -1
- package/components/Breadcrumb/Breadcrumb.svelte +3 -1
- package/components/Breadcrumb/Breadcrumb.tsx +3 -1
- package/components/Button/Button.astro +2 -1
- package/components/Button/Button.svelte +9 -2
- package/components/Button/Button.tsx +7 -2
- package/components/Button/button.ts +23 -20
- package/components/Card/Card.astro +9 -2
- package/components/Card/Card.svelte +17 -4
- package/components/Card/Card.tsx +23 -6
- package/components/Card/card.module.scss +11 -4
- package/components/Card/card.ts +3 -16
- package/components/Carousel/Carousel.astro +1 -1
- package/components/Carousel/Carousel.svelte +8 -3
- package/components/Carousel/Carousel.tsx +7 -2
- package/components/Carousel/carousel.ts +0 -12
- package/components/CarouselItem/CarouselItem.astro +14 -0
- package/components/CarouselItem/CarouselItem.svelte +18 -0
- package/components/CarouselItem/CarouselItem.tsx +18 -0
- package/components/CarouselItem/carouselItem.ts +4 -0
- package/components/Checkbox/Checkbox.astro +3 -6
- package/components/Checkbox/Checkbox.svelte +9 -7
- package/components/Checkbox/Checkbox.tsx +8 -5
- package/components/Checkbox/checkbox.ts +2 -17
- package/components/Collapsible/Collapsible.astro +1 -1
- package/components/Collapsible/Collapsible.svelte +9 -2
- package/components/Collapsible/Collapsible.tsx +8 -2
- package/components/Collapsible/collapsible.ts +0 -15
- package/components/ConditionalWrapper/ConditionalWrapper.astro +1 -1
- package/components/ConditionalWrapper/ConditionalWrapper.svelte +8 -2
- package/components/ConditionalWrapper/ConditionalWrapper.tsx +7 -2
- package/components/ConditionalWrapper/conditionalwrapper.ts +2 -14
- package/components/ContextMenu/ContextMenu.astro +2 -1
- package/components/ContextMenu/ContextMenu.svelte +9 -3
- package/components/ContextMenu/ContextMenu.tsx +8 -2
- package/components/ContextMenu/contextmenu.ts +2 -17
- package/components/Copy/Copy.astro +2 -2
- package/components/Copy/Copy.svelte +8 -3
- package/components/Copy/Copy.tsx +7 -3
- package/components/Copy/copy.ts +2 -12
- package/components/Counter/Counter.astro +3 -2
- package/components/Counter/Counter.svelte +10 -5
- package/components/Counter/Counter.tsx +11 -7
- package/components/Counter/counter.ts +2 -11
- package/components/DataTable/DataTable.astro +1 -1
- package/components/DataTable/DataTable.svelte +8 -2
- package/components/DataTable/DataTable.tsx +7 -2
- package/components/DataTable/datatable.ts +0 -12
- package/components/Flex/Flex.astro +2 -1
- package/components/Flex/Flex.svelte +8 -2
- package/components/Flex/Flex.tsx +8 -3
- package/components/Flex/flex.ts +2 -15
- package/components/Footer/Footer.astro +1 -1
- package/components/Footer/Footer.svelte +7 -2
- package/components/Footer/Footer.tsx +6 -2
- package/components/Footer/footer.ts +0 -10
- package/components/Grid/Grid.astro +2 -1
- package/components/Grid/Grid.svelte +8 -2
- package/components/Grid/Grid.tsx +8 -3
- package/components/Grid/grid.ts +2 -15
- package/components/Group/Group.astro +1 -1
- package/components/Group/Group.svelte +7 -2
- package/components/Group/Group.tsx +6 -2
- package/components/Group/group.ts +0 -10
- package/components/Icon/Icon.astro +1 -1
- package/components/Icon/Icon.svelte +3 -1
- package/components/Icon/Icon.tsx +3 -2
- package/components/Image/Image.astro +2 -1
- package/components/Image/Image.svelte +4 -1
- package/components/Image/Image.tsx +3 -1
- package/components/Image/image.ts +2 -3
- package/components/ImageLoader/ImageLoader.astro +1 -1
- package/components/ImageLoader/ImageLoader.svelte +3 -1
- package/components/ImageLoader/ImageLoader.tsx +4 -2
- package/components/Input/Input.astro +3 -2
- package/components/Input/Input.svelte +14 -4
- package/components/Input/Input.tsx +11 -3
- package/components/Input/input.ts +26 -53
- package/components/Kbd/Kbd.astro +1 -1
- package/components/Kbd/Kbd.svelte +7 -2
- package/components/Kbd/Kbd.tsx +6 -2
- package/components/Kbd/kbd.ts +0 -10
- package/components/List/List.astro +1 -1
- package/components/List/List.svelte +6 -2
- package/components/List/List.tsx +8 -4
- package/components/List/list.ts +0 -8
- package/components/Masonry/Masonry.astro +1 -1
- package/components/Masonry/Masonry.svelte +7 -2
- package/components/Masonry/Masonry.tsx +7 -3
- package/components/Masonry/masonry.ts +2 -13
- package/components/Menu/Menu.astro +1 -1
- package/components/Menu/Menu.svelte +7 -2
- package/components/Menu/Menu.tsx +6 -2
- package/components/Menu/menu.ts +0 -10
- package/components/Modal/Modal.astro +2 -3
- package/components/Modal/Modal.svelte +8 -4
- package/components/Modal/Modal.tsx +6 -4
- package/components/Modal/modal.ts +2 -14
- package/components/OTPInput/OTPInput.astro +3 -5
- package/components/OTPInput/OTPInput.svelte +6 -6
- package/components/OTPInput/OTPInput.tsx +10 -8
- package/components/OTPInput/otpinput.ts +2 -4
- package/components/Pagination/Pagination.astro +1 -1
- package/components/Pagination/Pagination.svelte +6 -2
- package/components/Pagination/Pagination.tsx +6 -2
- package/components/Pagination/pagination.ts +0 -8
- package/components/Popover/Popover.astro +3 -7
- package/components/Popover/Popover.svelte +9 -8
- package/components/Popover/Popover.tsx +9 -12
- package/components/Popover/popover.ts +2 -15
- package/components/Progress/Progress.astro +1 -1
- package/components/Progress/Progress.svelte +3 -1
- package/components/Progress/Progress.tsx +3 -1
- package/components/Radio/Radio.astro +3 -4
- package/components/Radio/Radio.svelte +10 -5
- package/components/Radio/Radio.tsx +7 -5
- package/components/Radio/radio.ts +2 -14
- package/components/RangeSlider/RangeSlider.astro +1 -1
- package/components/RangeSlider/RangeSlider.svelte +6 -2
- package/components/RangeSlider/RangeSlider.tsx +7 -3
- package/components/RangeSlider/rangeslider.ts +0 -9
- package/components/Rating/Rating.astro +1 -1
- package/components/Rating/Rating.svelte +3 -1
- package/components/Rating/Rating.tsx +3 -1
- package/components/Ribbon/Ribbon.astro +1 -1
- package/components/Ribbon/Ribbon.svelte +7 -2
- package/components/Ribbon/Ribbon.tsx +6 -2
- package/components/Ribbon/ribbon.ts +0 -10
- package/components/Select/Select.astro +1 -1
- package/components/Select/Select.svelte +9 -4
- package/components/Select/Select.tsx +9 -4
- package/components/Select/select.ts +1 -12
- package/components/Sheet/Sheet.astro +2 -1
- package/components/Sheet/Sheet.svelte +5 -3
- package/components/Sheet/Sheet.tsx +5 -4
- package/components/Sheet/sheet.ts +3 -10
- package/components/Sidebar/Sidebar.astro +1 -1
- package/components/Sidebar/Sidebar.svelte +7 -2
- package/components/Sidebar/Sidebar.tsx +6 -2
- package/components/Sidebar/sidebar.ts +0 -10
- package/components/Skeleton/Skeleton.astro +1 -1
- package/components/Skeleton/Skeleton.svelte +3 -1
- package/components/Skeleton/Skeleton.tsx +3 -1
- package/components/Slider/Slider.astro +1 -1
- package/components/Slider/Slider.svelte +8 -2
- package/components/Slider/Slider.tsx +6 -2
- package/components/Slider/slider.ts +0 -10
- package/components/SpeedDial/SpeedDial.astro +1 -1
- package/components/SpeedDial/SpeedDial.svelte +3 -1
- package/components/SpeedDial/SpeedDial.tsx +4 -2
- package/components/Spinner/Spinner.astro +1 -1
- package/components/Spinner/Spinner.svelte +3 -1
- package/components/Spinner/Spinner.tsx +3 -1
- package/components/Spoiler/Spoiler.astro +1 -1
- package/components/Spoiler/Spoiler.svelte +7 -2
- package/components/Spoiler/Spoiler.tsx +6 -2
- package/components/Spoiler/spoiler.ts +0 -10
- package/components/Stepper/Stepper.astro +1 -1
- package/components/Stepper/Stepper.svelte +3 -1
- package/components/Stepper/Stepper.tsx +3 -1
- package/components/Switch/Switch.astro +7 -2
- package/components/Switch/Switch.svelte +13 -4
- package/components/Switch/Switch.tsx +8 -4
- package/components/Switch/switch.ts +2 -16
- package/components/Tab/Tab.astro +25 -0
- package/components/Tab/Tab.svelte +28 -0
- package/components/Tab/Tab.tsx +30 -0
- package/components/Tab/tab.ts +6 -0
- package/components/Table/Table.astro +1 -1
- package/components/Table/Table.svelte +3 -1
- package/components/Table/Table.tsx +3 -1
- package/components/Tabs/Tabs.astro +58 -25
- package/components/Tabs/Tabs.svelte +45 -12
- package/components/Tabs/Tabs.tsx +42 -11
- package/components/Tabs/tabs.module.scss +7 -6
- package/components/Tabs/tabs.ts +0 -10
- package/components/Textarea/Textarea.astro +3 -6
- package/components/Textarea/Textarea.svelte +10 -7
- package/components/Textarea/Textarea.tsx +9 -7
- package/components/Textarea/textarea.ts +2 -17
- package/components/ThemeSwitcher/ThemeSwitcher.astro +1 -1
- package/components/ThemeSwitcher/ThemeSwitcher.svelte +9 -3
- package/components/ThemeSwitcher/ThemeSwitcher.tsx +7 -2
- package/components/ThemeSwitcher/themeswitcher.ts +0 -13
- package/components/Timeline/Timeline.astro +1 -1
- package/components/Timeline/Timeline.svelte +7 -2
- package/components/Timeline/Timeline.tsx +6 -2
- package/components/Timeline/timeline.ts +0 -10
- package/components/TimelineItem/TimelineItem.astro +1 -1
- package/components/TimelineItem/TimelineItem.svelte +7 -2
- package/components/TimelineItem/TimelineItem.tsx +8 -3
- package/components/TimelineItem/timelineitem.ts +0 -12
- package/components/Toast/Toast.astro +2 -1
- package/components/Toast/Toast.svelte +5 -3
- package/components/Toast/Toast.tsx +5 -4
- package/components/Toast/toast.ts +3 -11
- package/package.json +19 -19
- package/react.d.ts +145 -138
- package/react.js +4 -0
- package/svelte.d.ts +145 -138
- package/svelte.js +4 -0
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
import type { OTPInputProps } from './otpinput'
|
|
3
3
|
|
|
4
|
-
import Input from '../Input/Input.astro'
|
|
4
|
+
import Input, { type Props as InputProps } from '../Input/Input.astro'
|
|
5
5
|
|
|
6
6
|
import styles from './otpinput.module.scss'
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
export type Props = OTPInputProps<InputProps>
|
|
9
9
|
|
|
10
10
|
const {
|
|
11
11
|
name = 'otp',
|
|
12
|
-
disabled,
|
|
13
12
|
length = 6,
|
|
14
13
|
groupLength = 0,
|
|
15
14
|
separator = '•',
|
|
@@ -47,17 +46,16 @@ const inputs = Array.from({ length }, (_, i) => i + 1)
|
|
|
47
46
|
<div class={styles.separator}>{input}</div>
|
|
48
47
|
) : (
|
|
49
48
|
<Input
|
|
49
|
+
{...rest}
|
|
50
50
|
id={`${name}-${index}`}
|
|
51
51
|
class={styles.input}
|
|
52
52
|
type="text"
|
|
53
53
|
maxlength="1"
|
|
54
|
-
disabled={disabled}
|
|
55
54
|
inputmode="numeric"
|
|
56
55
|
autocomplete="one-time-code"
|
|
57
56
|
data-id="w-input-otp"
|
|
58
57
|
data-index={input}
|
|
59
58
|
aria-label={`OTP digit ${input + 1}`}
|
|
60
|
-
{...rest}
|
|
61
59
|
/>
|
|
62
60
|
)
|
|
63
61
|
)}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import type { OTPInputProps } from './otpinput'
|
|
3
3
|
|
|
4
|
-
import Input from '../Input/Input.svelte'
|
|
4
|
+
import Input, { type Props as InputProps } from '../Input/Input.svelte'
|
|
5
5
|
|
|
6
6
|
import { classNames } from '../../utils/classNames'
|
|
7
7
|
|
|
8
8
|
import styles from './otpinput.module.scss'
|
|
9
9
|
|
|
10
|
+
export type Props = OTPInputProps<InputProps>
|
|
11
|
+
|
|
10
12
|
let {
|
|
11
13
|
name = 'otp',
|
|
12
|
-
disabled,
|
|
13
14
|
length = 6,
|
|
14
15
|
groupLength = 0,
|
|
15
16
|
separator = '•',
|
|
@@ -18,7 +19,7 @@
|
|
|
18
19
|
className,
|
|
19
20
|
value = $bindable(''),
|
|
20
21
|
...rest
|
|
21
|
-
}:
|
|
22
|
+
}: Props = $props()
|
|
22
23
|
|
|
23
24
|
const classes = $derived(classNames([
|
|
24
25
|
styles.wrapper,
|
|
@@ -160,11 +161,11 @@
|
|
|
160
161
|
<div class={styles.separator}>{input}</div>
|
|
161
162
|
{:else}
|
|
162
163
|
<Input
|
|
164
|
+
{...rest}
|
|
163
165
|
id={`${name}-${index}`}
|
|
164
166
|
className={styles.input}
|
|
165
167
|
type="text"
|
|
166
|
-
maxlength=
|
|
167
|
-
disabled={disabled}
|
|
168
|
+
maxlength={1}
|
|
168
169
|
inputmode="numeric"
|
|
169
170
|
autocomplete="one-time-code"
|
|
170
171
|
data-index={input}
|
|
@@ -174,7 +175,6 @@
|
|
|
174
175
|
onfocus={handleFocus}
|
|
175
176
|
onInput={handleInput}
|
|
176
177
|
onpaste={handlePaste}
|
|
177
|
-
{...rest}
|
|
178
178
|
/>
|
|
179
179
|
{/if}
|
|
180
180
|
{/each}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import type { OTPInputProps } from './otpinput'
|
|
3
3
|
|
|
4
|
-
import Input from '../Input/Input.tsx'
|
|
4
|
+
import Input, { type Props as InputProps } from '../Input/Input.tsx'
|
|
5
5
|
|
|
6
6
|
import { classNames } from '../../utils/classNames'
|
|
7
7
|
|
|
8
8
|
import styles from './otpinput.module.scss'
|
|
9
9
|
|
|
10
|
+
export type Props = OTPInputProps<Omit<InputProps, 'onChange'>> & {
|
|
11
|
+
onChange?: (value: string) => void
|
|
12
|
+
}
|
|
13
|
+
|
|
10
14
|
const OTPInput = ({
|
|
11
15
|
name = 'otp',
|
|
12
|
-
disabled,
|
|
13
16
|
length = 6,
|
|
14
17
|
groupLength = 0,
|
|
15
18
|
separator = '•',
|
|
@@ -18,7 +21,7 @@ const OTPInput = ({
|
|
|
18
21
|
className,
|
|
19
22
|
onChange,
|
|
20
23
|
...rest
|
|
21
|
-
}:
|
|
24
|
+
}: Props) => {
|
|
22
25
|
const classes = classNames([
|
|
23
26
|
styles.wrapper,
|
|
24
27
|
className
|
|
@@ -64,7 +67,7 @@ const OTPInput = ({
|
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
69
|
|
|
67
|
-
const handleInput = (event: React.
|
|
70
|
+
const handleInput = (event: React.InputEvent<HTMLInputElement>) => {
|
|
68
71
|
const target = event.target
|
|
69
72
|
|
|
70
73
|
if (!(target instanceof HTMLInputElement)) {
|
|
@@ -97,7 +100,7 @@ const OTPInput = ({
|
|
|
97
100
|
}
|
|
98
101
|
}
|
|
99
102
|
|
|
100
|
-
const handlePaste = (event: ClipboardEvent) => {
|
|
103
|
+
const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {
|
|
101
104
|
event.preventDefault()
|
|
102
105
|
|
|
103
106
|
const target = event.target
|
|
@@ -122,7 +125,7 @@ const OTPInput = ({
|
|
|
122
125
|
}
|
|
123
126
|
}
|
|
124
127
|
|
|
125
|
-
const handleFocus = (event:
|
|
128
|
+
const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {
|
|
126
129
|
const target = event.target
|
|
127
130
|
|
|
128
131
|
if (target instanceof HTMLInputElement) {
|
|
@@ -163,12 +166,12 @@ const OTPInput = ({
|
|
|
163
166
|
<div className={styles.separator} key={index}>{input}</div>
|
|
164
167
|
) : (
|
|
165
168
|
<Input
|
|
169
|
+
{...rest}
|
|
166
170
|
key={index}
|
|
167
171
|
id={`${name}-${index}`}
|
|
168
172
|
className={styles.input}
|
|
169
173
|
type="text"
|
|
170
174
|
maxLength={1}
|
|
171
|
-
disabled={disabled}
|
|
172
175
|
inputMode="numeric"
|
|
173
176
|
autoComplete="one-time-code"
|
|
174
177
|
data-index={input}
|
|
@@ -178,7 +181,6 @@ const OTPInput = ({
|
|
|
178
181
|
onFocus={handleFocus}
|
|
179
182
|
onInput={handleInput}
|
|
180
183
|
onPaste={handlePaste}
|
|
181
|
-
{...rest}
|
|
182
184
|
/>
|
|
183
185
|
)
|
|
184
186
|
)}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
export type OTPInputProps = {
|
|
1
|
+
export type OTPInputProps<T extends object = object> = {
|
|
2
2
|
name?: string
|
|
3
|
-
disabled?: boolean
|
|
4
3
|
length?: number
|
|
5
4
|
groupLength?: number
|
|
6
5
|
separator?: string
|
|
7
6
|
label?: string
|
|
8
7
|
subText?: string
|
|
9
8
|
className?: string
|
|
10
|
-
|
|
11
|
-
}
|
|
9
|
+
} & T
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import type {
|
|
2
|
+
import type { PaginationEventType, PaginationProps } from './pagination'
|
|
3
3
|
|
|
4
4
|
import Button from '../Button/Button.svelte'
|
|
5
5
|
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
|
|
11
11
|
import styles from './pagination.module.scss'
|
|
12
12
|
|
|
13
|
+
export type Props = PaginationProps & {
|
|
14
|
+
onChange?: (event: PaginationEventType) => void
|
|
15
|
+
}
|
|
16
|
+
|
|
13
17
|
const {
|
|
14
18
|
type,
|
|
15
19
|
showChevrons,
|
|
@@ -26,7 +30,7 @@
|
|
|
26
30
|
currentPage,
|
|
27
31
|
onChange,
|
|
28
32
|
className
|
|
29
|
-
}:
|
|
33
|
+
}: Props = $props()
|
|
30
34
|
|
|
31
35
|
const classes = $derived(classNames([
|
|
32
36
|
styles.pagination,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react'
|
|
2
|
-
import type {
|
|
2
|
+
import type { PaginationEventType, PaginationProps } from './pagination'
|
|
3
3
|
|
|
4
4
|
import Button from '../Button/Button.tsx'
|
|
5
5
|
|
|
@@ -10,6 +10,10 @@ import ChevronRight from '../../icons/chevron-right.svg?raw'
|
|
|
10
10
|
|
|
11
11
|
import styles from './pagination.module.scss'
|
|
12
12
|
|
|
13
|
+
export type Props = PaginationProps & {
|
|
14
|
+
onChange?: (event: PaginationEventType) => void
|
|
15
|
+
}
|
|
16
|
+
|
|
13
17
|
const Pagination = ({
|
|
14
18
|
type,
|
|
15
19
|
showChevrons,
|
|
@@ -27,7 +31,7 @@ const Pagination = ({
|
|
|
27
31
|
onChange,
|
|
28
32
|
className
|
|
29
33
|
// eslint-disable-next-line complexity
|
|
30
|
-
}:
|
|
34
|
+
}: Props) => {
|
|
31
35
|
const [calculatedCurrentPage, setCalculatedCurrentPage] = useState(
|
|
32
36
|
currentPage
|
|
33
37
|
|| (pages?.findIndex(page => page.active) || -1) + 1
|
|
@@ -26,11 +26,3 @@ export type PaginationProps = {
|
|
|
26
26
|
link?: string
|
|
27
27
|
}[]
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
export type SveltePaginationProps = {
|
|
31
|
-
onChange?: (event: PaginationEventType) => void
|
|
32
|
-
} & PaginationProps
|
|
33
|
-
|
|
34
|
-
export type ReactPaginationProps = {
|
|
35
|
-
onChange?: (event: PaginationEventType) => void
|
|
36
|
-
} & PaginationProps
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
import type { HTMLAttributes } from 'astro/types'
|
|
2
3
|
import type { PopoverProps } from './popover'
|
|
3
4
|
|
|
4
5
|
import styles from './popover.module.scss'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
export type Props = PopoverProps<HTMLAttributes<'dialog'>>
|
|
7
8
|
|
|
8
9
|
const {
|
|
9
|
-
id,
|
|
10
10
|
className,
|
|
11
11
|
transparent,
|
|
12
12
|
...rest
|
|
@@ -19,10 +19,6 @@ const classes = [
|
|
|
19
19
|
]
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
<dialog
|
|
23
|
-
class:list={classes}
|
|
24
|
-
id={id}
|
|
25
|
-
{...rest}
|
|
26
|
-
>
|
|
22
|
+
<dialog {...rest} class:list={classes}>
|
|
27
23
|
<slot />
|
|
28
24
|
</dialog>
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import type {
|
|
2
|
+
import type { Snippet } from 'svelte'
|
|
3
|
+
import type { HTMLDialogAttributes } from 'svelte/elements'
|
|
4
|
+
import type { PopoverProps } from './popover'
|
|
3
5
|
|
|
4
6
|
import { classNames } from '../../utils/classNames'
|
|
5
7
|
|
|
6
8
|
import styles from './popover.module.scss'
|
|
7
9
|
|
|
10
|
+
export type Props = PopoverProps<HTMLDialogAttributes> & {
|
|
11
|
+
children: Snippet
|
|
12
|
+
}
|
|
13
|
+
|
|
8
14
|
const {
|
|
9
|
-
id,
|
|
10
15
|
className,
|
|
11
16
|
transparent,
|
|
12
17
|
children,
|
|
13
18
|
...rest
|
|
14
|
-
}:
|
|
19
|
+
}: Props = $props()
|
|
15
20
|
|
|
16
21
|
const classes = $derived(classNames([
|
|
17
22
|
styles.popover,
|
|
@@ -20,10 +25,6 @@
|
|
|
20
25
|
]))
|
|
21
26
|
</script>
|
|
22
27
|
|
|
23
|
-
<dialog
|
|
24
|
-
class={classes}
|
|
25
|
-
id={id}
|
|
26
|
-
{...rest}
|
|
27
|
-
>
|
|
28
|
+
<dialog {...rest} class={classes}>
|
|
28
29
|
{@render children?.()}
|
|
29
30
|
</dialog>
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import React, { useEffect,useState } from 'react'
|
|
2
2
|
import { createPortal } from 'react-dom'
|
|
3
|
-
import type {
|
|
3
|
+
import type { PopoverProps } from './popover'
|
|
4
4
|
|
|
5
5
|
import { classNames } from '../../utils/classNames'
|
|
6
6
|
|
|
7
7
|
import styles from './popover.module.scss'
|
|
8
8
|
|
|
9
|
+
export type Props = PopoverProps<React.DialogHTMLAttributes<HTMLDialogElement>> & {
|
|
10
|
+
isInteractive?: boolean
|
|
11
|
+
children?: React.ReactNode
|
|
12
|
+
}
|
|
13
|
+
|
|
9
14
|
const Popover = ({
|
|
10
15
|
id,
|
|
11
16
|
className,
|
|
@@ -13,7 +18,7 @@ const Popover = ({
|
|
|
13
18
|
isInteractive = false,
|
|
14
19
|
children,
|
|
15
20
|
...rest
|
|
16
|
-
}:
|
|
21
|
+
}: Props) => {
|
|
17
22
|
const [isMounted, setIsMounted] = useState(false)
|
|
18
23
|
|
|
19
24
|
const classes = classNames([
|
|
@@ -32,11 +37,7 @@ const Popover = ({
|
|
|
32
37
|
|
|
33
38
|
if (isInteractive) {
|
|
34
39
|
return createPortal(
|
|
35
|
-
<dialog
|
|
36
|
-
className={classes}
|
|
37
|
-
id={id}
|
|
38
|
-
{...rest}
|
|
39
|
-
>
|
|
40
|
+
<dialog {...rest} className={classes}>
|
|
40
41
|
{children}
|
|
41
42
|
</dialog>,
|
|
42
43
|
document.body
|
|
@@ -44,11 +45,7 @@ const Popover = ({
|
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
return (
|
|
47
|
-
<dialog
|
|
48
|
-
className={classes}
|
|
49
|
-
id={id}
|
|
50
|
-
{...rest}
|
|
51
|
-
>
|
|
48
|
+
<dialog {...rest} className={classes}>
|
|
52
49
|
{children}
|
|
53
50
|
</dialog>
|
|
54
51
|
)
|
|
@@ -1,17 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export type PopoverProps = {
|
|
4
|
-
id?: string
|
|
1
|
+
export type PopoverProps<T extends object = object> = {
|
|
5
2
|
className?: string
|
|
6
3
|
transparent?: boolean
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export type SveltePopoverProps = {
|
|
11
|
-
children: Snippet
|
|
12
|
-
} & PopoverProps
|
|
13
|
-
|
|
14
|
-
export type ReactPopoverProps = {
|
|
15
|
-
isInteractive?: boolean
|
|
16
|
-
children?: React.ReactNode
|
|
17
|
-
} & PopoverProps
|
|
4
|
+
} & T
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
import { classNames } from '../../utils/classNames'
|
|
5
5
|
|
|
6
6
|
import styles from './progress.module.scss'
|
|
7
|
+
|
|
8
|
+
export type Props = ProgressProps
|
|
7
9
|
|
|
8
10
|
const {
|
|
9
11
|
value,
|
|
@@ -17,7 +19,7 @@
|
|
|
17
19
|
stripeDark,
|
|
18
20
|
indeterminate,
|
|
19
21
|
className
|
|
20
|
-
}:
|
|
22
|
+
}: Props = $props()
|
|
21
23
|
|
|
22
24
|
const classes = $derived(classNames([
|
|
23
25
|
styles['w-progress'],
|
|
@@ -4,6 +4,8 @@ import type { ProgressProps } from './progress'
|
|
|
4
4
|
import { classNames } from '../../utils/classNames'
|
|
5
5
|
|
|
6
6
|
import styles from './progress.module.scss'
|
|
7
|
+
|
|
8
|
+
export type Props = ProgressProps
|
|
7
9
|
|
|
8
10
|
const Progress = ({
|
|
9
11
|
value,
|
|
@@ -17,7 +19,7 @@ const Progress = ({
|
|
|
17
19
|
stripeDark,
|
|
18
20
|
indeterminate,
|
|
19
21
|
className
|
|
20
|
-
}:
|
|
22
|
+
}: Props) => {
|
|
21
23
|
const classes = classNames([
|
|
22
24
|
styles['w-progress'],
|
|
23
25
|
size && styles[size],
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
|
+
import type { HTMLAttributes } from 'astro/types'
|
|
2
3
|
import type { RadioProps } from './radio'
|
|
3
4
|
|
|
4
5
|
import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.astro'
|
|
5
6
|
|
|
6
7
|
import styles from './radio.module.scss'
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
export type Props = RadioProps<HTMLAttributes<'input'>>
|
|
9
10
|
|
|
10
11
|
const {
|
|
11
|
-
name,
|
|
12
12
|
items,
|
|
13
13
|
color,
|
|
14
14
|
inline,
|
|
@@ -38,13 +38,12 @@ const style = color
|
|
|
38
38
|
children
|
|
39
39
|
</div>
|
|
40
40
|
<input
|
|
41
|
+
{...rest}
|
|
41
42
|
type="radio"
|
|
42
|
-
name={name}
|
|
43
43
|
value={item.value}
|
|
44
44
|
checked={item.selected}
|
|
45
45
|
disabled={item.disabled}
|
|
46
46
|
required={item.required}
|
|
47
|
-
{...rest}
|
|
48
47
|
/>
|
|
49
48
|
<span class={styles.icon} />
|
|
50
49
|
<span class={styles.label}>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import type {
|
|
2
|
+
import type { HTMLInputAttributes } from 'svelte/elements'
|
|
3
|
+
import type { RadioProps } from './radio'
|
|
3
4
|
|
|
4
5
|
import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.svelte'
|
|
5
6
|
|
|
@@ -7,15 +8,20 @@
|
|
|
7
8
|
|
|
8
9
|
import styles from './radio.module.scss'
|
|
9
10
|
|
|
11
|
+
import type { InputTarget } from '../Input/input'
|
|
12
|
+
|
|
13
|
+
export type Props = RadioProps<HTMLInputAttributes> & {
|
|
14
|
+
onChange?: (event: Event & InputTarget) => void
|
|
15
|
+
}
|
|
16
|
+
|
|
10
17
|
const {
|
|
11
|
-
name,
|
|
12
18
|
items,
|
|
13
19
|
color,
|
|
14
20
|
inline,
|
|
15
21
|
className,
|
|
16
22
|
onChange,
|
|
17
23
|
...rest
|
|
18
|
-
}:
|
|
24
|
+
}: Props = $props()
|
|
19
25
|
|
|
20
26
|
const classes = $derived(classNames([
|
|
21
27
|
styles.radio,
|
|
@@ -42,14 +48,13 @@
|
|
|
42
48
|
class={styles.wrapper}
|
|
43
49
|
>
|
|
44
50
|
<input
|
|
51
|
+
{...rest}
|
|
45
52
|
type="radio"
|
|
46
|
-
name={name}
|
|
47
53
|
value={item.value}
|
|
48
54
|
checked={item.selected}
|
|
49
55
|
disabled={item.disabled}
|
|
50
56
|
required={item.required}
|
|
51
57
|
onchange={onChange}
|
|
52
|
-
{...rest}
|
|
53
58
|
/>
|
|
54
59
|
<span class={styles.icon}></span>
|
|
55
60
|
<span class={styles.label}>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
import type {
|
|
2
|
+
import type { RadioProps } from './radio'
|
|
3
3
|
|
|
4
4
|
import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.tsx'
|
|
5
5
|
|
|
@@ -7,15 +7,18 @@ import { classNames } from '../../utils/classNames'
|
|
|
7
7
|
|
|
8
8
|
import styles from './radio.module.scss'
|
|
9
9
|
|
|
10
|
+
export type Props = RadioProps<React.InputHTMLAttributes<HTMLInputElement>> & {
|
|
11
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void
|
|
12
|
+
}
|
|
13
|
+
|
|
10
14
|
const Radio = ({
|
|
11
|
-
name,
|
|
12
15
|
items,
|
|
13
16
|
color,
|
|
14
17
|
inline,
|
|
15
18
|
className,
|
|
16
19
|
onChange,
|
|
17
20
|
...rest
|
|
18
|
-
}:
|
|
21
|
+
}: Props) => {
|
|
19
22
|
const classes = classNames([
|
|
20
23
|
styles.radio,
|
|
21
24
|
inline && styles.inline,
|
|
@@ -42,14 +45,13 @@ const Radio = ({
|
|
|
42
45
|
)}
|
|
43
46
|
>
|
|
44
47
|
<input
|
|
48
|
+
{...rest}
|
|
45
49
|
type="radio"
|
|
46
|
-
name={name}
|
|
47
50
|
value={item.value}
|
|
48
51
|
defaultChecked={item.selected}
|
|
49
52
|
disabled={item.disabled}
|
|
50
53
|
required={item.required}
|
|
51
54
|
onChange={onChange}
|
|
52
|
-
{...rest}
|
|
53
55
|
/>
|
|
54
56
|
<span className={styles.icon} />
|
|
55
57
|
<span
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export type RadioProps = {
|
|
1
|
+
export type RadioProps<T extends object = object> = {
|
|
4
2
|
items: {
|
|
5
3
|
label: string
|
|
6
4
|
value: string
|
|
@@ -9,17 +7,7 @@ export type RadioProps = {
|
|
|
9
7
|
disabled?: boolean
|
|
10
8
|
required?: boolean
|
|
11
9
|
}[]
|
|
12
|
-
name: string
|
|
13
10
|
color?: string
|
|
14
11
|
inline?: boolean
|
|
15
12
|
className?: string
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export type SvelteRadioProps = {
|
|
20
|
-
onChange?: (event: Event & InputTarget) => void
|
|
21
|
-
} & RadioProps
|
|
22
|
-
|
|
23
|
-
export type ReactRadioProps = {
|
|
24
|
-
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void
|
|
25
|
-
} & RadioProps
|
|
13
|
+
} & T
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import type {
|
|
2
|
+
import type { RangeSliderEventType, RangeSliderProps } from './rangeslider'
|
|
3
3
|
|
|
4
4
|
import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.svelte'
|
|
5
5
|
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
import styles from './rangeslider.module.scss'
|
|
10
10
|
|
|
11
|
+
export type Props = RangeSliderProps & {
|
|
12
|
+
onChange?: (event: RangeSliderEventType) => void
|
|
13
|
+
}
|
|
14
|
+
|
|
11
15
|
const {
|
|
12
16
|
min = 0,
|
|
13
17
|
max = 100,
|
|
@@ -30,7 +34,7 @@
|
|
|
30
34
|
className,
|
|
31
35
|
onChange,
|
|
32
36
|
...rest
|
|
33
|
-
}:
|
|
37
|
+
}: Props = $props()
|
|
34
38
|
|
|
35
39
|
const styleVariables = $derived(classNames([
|
|
36
40
|
color && `--w-range-slider-color: ${color};`,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable complexity */
|
|
2
2
|
import React, { useEffect, useRef, useState } from 'react'
|
|
3
|
-
import type {
|
|
3
|
+
import type { RangeSliderEventType, RangeSliderProps } from './rangeslider'
|
|
4
4
|
|
|
5
5
|
import ConditionalWrapper from '../ConditionalWrapper/ConditionalWrapper.tsx'
|
|
6
6
|
|
|
@@ -9,6 +9,10 @@ import { interpolate } from '../../utils/interpolate'
|
|
|
9
9
|
|
|
10
10
|
import styles from './rangeslider.module.scss'
|
|
11
11
|
|
|
12
|
+
export type Props = RangeSliderProps & {
|
|
13
|
+
onChange?: (event: RangeSliderEventType) => void
|
|
14
|
+
}
|
|
15
|
+
|
|
12
16
|
const RangeSlider = ({
|
|
13
17
|
min = 0,
|
|
14
18
|
max = 100,
|
|
@@ -31,7 +35,7 @@ const RangeSlider = ({
|
|
|
31
35
|
className,
|
|
32
36
|
onChange,
|
|
33
37
|
...rest
|
|
34
|
-
}:
|
|
38
|
+
}: Props) => {
|
|
35
39
|
const [minValue, setMinValue] = useState(selectedMin || min)
|
|
36
40
|
const [maxValue, setMaxValue] = useState(selectedMax || max)
|
|
37
41
|
const [dynamicMinLabel, setDynamicMinLabel] = useState(minLabel)
|
|
@@ -55,7 +59,7 @@ const RangeSlider = ({
|
|
|
55
59
|
}
|
|
56
60
|
}
|
|
57
61
|
|
|
58
|
-
const handleInput = (event: React.
|
|
62
|
+
const handleInput = (event: React.InputEvent<HTMLInputElement>) => {
|
|
59
63
|
const target = event.target
|
|
60
64
|
|
|
61
65
|
if (!(target instanceof HTMLInputElement)) {
|
|
@@ -28,12 +28,3 @@ export type RangeSliderProps = {
|
|
|
28
28
|
updateLabels?: boolean
|
|
29
29
|
className?: string
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
export type SvelteRangeSliderProps = {
|
|
33
|
-
onChange?: (event: RangeSliderEventType) => void
|
|
34
|
-
} & RangeSliderProps
|
|
35
|
-
|
|
36
|
-
export type ReactRangeSliderProps = {
|
|
37
|
-
onChange?: (event: RangeSliderEventType) => void
|
|
38
|
-
} & RangeSliderProps
|
|
39
|
-
|