@wavv/ui 2.3.2 → 2.3.4
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/build/components/Accordion/Accordion.d.ts +1 -1
- package/build/components/Button/Button.d.ts +1 -1
- package/build/components/ComboBox.js +1 -0
- package/build/components/DropZone.d.ts +10 -5
- package/build/components/DropZone.js +57 -3
- package/build/components/Dropdown.d.ts +1 -1
- package/build/components/Dropdown.js +3 -1
- package/build/components/Ellipsis.js +2 -1
- package/build/components/FileTrigger.js +1 -0
- package/build/components/Inputs/DatePicker.js +1 -0
- package/build/components/Inputs/DateRangePicker.js +1 -0
- package/build/components/Inputs/NumberInput.js +1 -0
- package/build/components/Inputs/PhoneInput.js +1 -0
- package/build/components/Inputs/SearchInput.js +1 -0
- package/build/components/Inputs/TextArea.js +1 -0
- package/build/components/Inputs/TextInput.js +1 -0
- package/build/components/Inputs/TimeInput.js +1 -0
- package/build/components/Inputs/helpers/Label.d.ts +2 -1
- package/build/components/Inputs/helpers/Label.js +20 -4
- package/build/components/Select.js +1 -0
- package/build/components/Table/Table.d.ts +1 -1
- package/build/index.d.ts +2 -0
- package/build/index.js +2 -1
- package/build/utils/matchesFileTypes.d.ts +9 -0
- package/build/utils/matchesFileTypes.js +16 -0
- package/package.json +21 -21
|
@@ -37,6 +37,7 @@ declare const Accordion: {
|
|
|
37
37
|
style?: React.CSSProperties;
|
|
38
38
|
} & import("../types").Padding & import("../types").Height & {
|
|
39
39
|
download?: any;
|
|
40
|
+
form?: string | undefined | undefined;
|
|
40
41
|
key?: import("react").Key | null | undefined;
|
|
41
42
|
list?: string | undefined | undefined;
|
|
42
43
|
rows?: number | undefined | undefined;
|
|
@@ -52,7 +53,6 @@ declare const Accordion: {
|
|
|
52
53
|
ref?: import("react").Ref<HTMLDivElement> | undefined;
|
|
53
54
|
cite?: string | undefined | undefined;
|
|
54
55
|
data?: string | undefined | undefined;
|
|
55
|
-
form?: string | undefined | undefined;
|
|
56
56
|
label?: string | undefined | undefined;
|
|
57
57
|
slot?: string | undefined | undefined;
|
|
58
58
|
span?: number | undefined | undefined;
|
|
@@ -12,6 +12,7 @@ declare const _default: (({ content, children, dropdown, options, ref, ...rest }
|
|
|
12
12
|
collapse?: boolean;
|
|
13
13
|
} & import("./ButtonTypes").ButtonStyles) & Margin & import("../types").Width & {
|
|
14
14
|
download?: any;
|
|
15
|
+
form?: string | undefined | undefined;
|
|
15
16
|
key?: import("react").Key | null | undefined;
|
|
16
17
|
list?: string | undefined | undefined;
|
|
17
18
|
rows?: number | undefined | undefined;
|
|
@@ -27,7 +28,6 @@ declare const _default: (({ content, children, dropdown, options, ref, ...rest }
|
|
|
27
28
|
ref?: import("react").Ref<HTMLDivElement> | undefined;
|
|
28
29
|
cite?: string | undefined | undefined;
|
|
29
30
|
data?: string | undefined | undefined;
|
|
30
|
-
form?: string | undefined | undefined;
|
|
31
31
|
label?: string | undefined | undefined;
|
|
32
32
|
slot?: string | undefined | undefined;
|
|
33
33
|
span?: number | undefined | undefined;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { type DropZoneProps } from 'react-aria-components';
|
|
1
|
+
import { type DropZoneProps, type FileTriggerProps } from 'react-aria-components';
|
|
3
2
|
import type { MarginPadding, WidthHeight } from './types';
|
|
4
3
|
type Props = {
|
|
5
|
-
children?: ReactNode;
|
|
6
4
|
/** The label to display inside the drop zone */
|
|
7
5
|
label?: string;
|
|
6
|
+
/** Whether to show the file names in the drop zone */
|
|
7
|
+
showFileNames?: boolean;
|
|
8
8
|
/** Whether the drop target is disabled. If true, the drop target will not accept any drops. */
|
|
9
9
|
disabled?: DropZoneProps['isDisabled'];
|
|
10
10
|
className?: DropZoneProps['className'];
|
|
@@ -18,6 +18,11 @@ type Props = {
|
|
|
18
18
|
onHoverChange?: DropZoneProps['onHoverChange'];
|
|
19
19
|
onHoverStart?: DropZoneProps['onHoverStart'];
|
|
20
20
|
onHoverEnd?: DropZoneProps['onHoverEnd'];
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
acceptedFileTypes?: FileTriggerProps['acceptedFileTypes'];
|
|
22
|
+
allowsMultiple?: FileTriggerProps['allowsMultiple'];
|
|
23
|
+
defaultCamera?: FileTriggerProps['defaultCamera'];
|
|
24
|
+
acceptDirectory?: FileTriggerProps['acceptDirectory'];
|
|
25
|
+
onSelect?: FileTriggerProps['onSelect'];
|
|
26
|
+
} & MarginPadding & WidthHeight & Omit<DropZoneProps, 'isDisabled' | 'children'> & Omit<FileTriggerProps, 'children'>;
|
|
27
|
+
declare const DropZone: ({ label, showFileNames, disabled, acceptedFileTypes, allowsMultiple, defaultCamera, acceptDirectory, onDrop, onSelect, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
23
28
|
export default DropZone;
|
|
@@ -1,18 +1,57 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import styled from "@emotion/styled";
|
|
3
|
+
import { useState } from "react";
|
|
3
4
|
import { DropZone, Text } from "react-aria-components";
|
|
5
|
+
import matchesFileTypes from "../utils/matchesFileTypes.js";
|
|
6
|
+
import Ellipsis from "./Ellipsis.js";
|
|
7
|
+
import FileTrigger from "./FileTrigger.js";
|
|
4
8
|
import { marginProps, paddingProps, widthHeightProps } from "./helpers/styledProps.js";
|
|
5
|
-
const DropZone_DropZone = ({
|
|
9
|
+
const DropZone_DropZone = ({ label = 'Drop here', showFileNames = true, disabled, acceptedFileTypes, allowsMultiple, defaultCamera, acceptDirectory, onDrop, onSelect, ...rest })=>{
|
|
10
|
+
const [displayFiles, setDisplayFiles] = useState('');
|
|
11
|
+
const showFileTrigger = !!acceptedFileTypes || !!allowsMultiple || !!defaultCamera || !!acceptDirectory || !!onSelect;
|
|
12
|
+
const handleFileDrop = (event)=>{
|
|
13
|
+
let files = event.items.filter((file)=>'file' === file.kind);
|
|
14
|
+
if (acceptedFileTypes && acceptedFileTypes.length > 0) files = files.filter((file)=>matchesFileTypes(file, acceptedFileTypes));
|
|
15
|
+
if (!allowsMultiple && files.length > 1) files = files.slice(0, 1);
|
|
16
|
+
const fileNames = files.map(({ name })=>name).join(', ');
|
|
17
|
+
setDisplayFiles(fileNames);
|
|
18
|
+
if (onDrop) onDrop(event);
|
|
19
|
+
};
|
|
20
|
+
const handleFileSelect = (selected)=>{
|
|
21
|
+
if (!selected) return;
|
|
22
|
+
const files = Array.from(selected);
|
|
23
|
+
const fileNames = files.map(({ name })=>name).join(', ');
|
|
24
|
+
setDisplayFiles(fileNames);
|
|
25
|
+
if (onSelect) onSelect(selected);
|
|
26
|
+
};
|
|
27
|
+
return /*#__PURE__*/ jsxs(StyledDropZone, {
|
|
6
28
|
isDisabled: disabled,
|
|
29
|
+
onDrop: showFileTrigger ? handleFileDrop : onDrop,
|
|
7
30
|
...rest,
|
|
8
31
|
children: [
|
|
9
32
|
/*#__PURE__*/ jsx(StyledText, {
|
|
10
33
|
slot: "label",
|
|
11
34
|
children: label
|
|
12
35
|
}),
|
|
13
|
-
|
|
36
|
+
showFileTrigger && /*#__PURE__*/ jsx(SeparatorText, {
|
|
37
|
+
children: "or"
|
|
38
|
+
}),
|
|
39
|
+
showFileTrigger && /*#__PURE__*/ jsx(FileTrigger, {
|
|
40
|
+
acceptedFileTypes: acceptedFileTypes,
|
|
41
|
+
allowsMultiple: allowsMultiple,
|
|
42
|
+
defaultCamera: defaultCamera,
|
|
43
|
+
acceptDirectory: acceptDirectory,
|
|
44
|
+
onSelect: handleFileSelect
|
|
45
|
+
}),
|
|
46
|
+
displayFiles && showFileNames && /*#__PURE__*/ jsx(FilesContainer, {
|
|
47
|
+
title: displayFiles,
|
|
48
|
+
children: /*#__PURE__*/ jsx(Ellipsis, {
|
|
49
|
+
children: displayFiles
|
|
50
|
+
})
|
|
51
|
+
})
|
|
14
52
|
]
|
|
15
53
|
});
|
|
54
|
+
};
|
|
16
55
|
const StyledDropZone = styled(DropZone)(({ theme })=>({
|
|
17
56
|
display: 'flex',
|
|
18
57
|
flexDirection: 'column',
|
|
@@ -47,7 +86,22 @@ const StyledDropZone = styled(DropZone)(({ theme })=>({
|
|
|
47
86
|
}), widthHeightProps, marginProps, paddingProps);
|
|
48
87
|
const StyledText = styled(Text)(({ theme })=>({
|
|
49
88
|
fontSize: theme.font.size.md,
|
|
50
|
-
fontWeight: theme.font.weight.medium
|
|
89
|
+
fontWeight: theme.font.weight.medium,
|
|
90
|
+
lineHeight: '14px',
|
|
91
|
+
textAlign: 'center'
|
|
92
|
+
}));
|
|
93
|
+
const SeparatorText = styled(Text)(({ theme })=>({
|
|
94
|
+
fontSize: theme.font.size.md,
|
|
95
|
+
color: theme.scale6,
|
|
96
|
+
lineHeight: '14px'
|
|
97
|
+
}));
|
|
98
|
+
const FilesContainer = styled.div(({ theme })=>({
|
|
99
|
+
display: 'flex',
|
|
100
|
+
alignItems: 'center',
|
|
101
|
+
justifyContent: 'center',
|
|
102
|
+
fontSize: theme.font.size.sm,
|
|
103
|
+
color: theme.scale6,
|
|
104
|
+
width: '100%'
|
|
51
105
|
}));
|
|
52
106
|
const components_DropZone = DropZone_DropZone;
|
|
53
107
|
export { components_DropZone as default };
|
|
@@ -4,7 +4,7 @@ type Props = {
|
|
|
4
4
|
/** The options to be displayed in the dropdown */
|
|
5
5
|
options?: ListOption[];
|
|
6
6
|
} & Omit<SelectInputProps, 'options' | 'textOnly'> & OpenStateProps & Omit<ButtonProps, 'ref' | 'isDisabled'>;
|
|
7
|
-
declare const _default: (({ children, before, after, open, label, placeholder, options, width, height, value, defaultValue, loading, hideCaret, color, disabled, readOnly, placeholderColor, fontSize, fontWeight, description, errorMessage, position, backgroundColor, menuBackground, iconLeft, leftElement, rightElement, onChange, onOpenChange, afterShow, afterHide, ...props }: Props) => import("react/jsx-runtime").JSX.Element) & {
|
|
7
|
+
declare const _default: (({ children, before, after, open, label, placeholder, options, width, height, value, defaultValue, loading, hideCaret, color, disabled, readOnly, required, invalid, placeholderColor, fontSize, fontWeight, description, errorMessage, position, backgroundColor, menuBackground, iconLeft, leftElement, rightElement, onChange, onOpenChange, afterShow, afterHide, ...props }: Props) => import("react/jsx-runtime").JSX.Element) & {
|
|
8
8
|
Item: ({ children, id, value, header, body, leftElement, rightElement, inline, disabled, ...props }: {
|
|
9
9
|
children?: import("react").ReactNode;
|
|
10
10
|
} & Partial<SelectItem> & Omit<import("react-aria-components").GridListItemProps<object>, "id" | "value" | "isDisabled">) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -10,7 +10,7 @@ import GridListItem from "./ListBoxParts/GridListItem.js";
|
|
|
10
10
|
import GridListSection from "./ListHelpers/GridListSection.js";
|
|
11
11
|
import ListStyles from "./ListHelpers/ListStyles.js";
|
|
12
12
|
import MotionPopover from "./MotionPopover.js";
|
|
13
|
-
const Dropdown = ({ children, before, after, open, label, placeholder = 'Select', options = [], width, height, value, defaultValue, loading, hideCaret, color, disabled, readOnly, placeholderColor, fontSize, fontWeight, description, errorMessage, position, backgroundColor, menuBackground, iconLeft, leftElement, rightElement, onChange, onOpenChange, afterShow, afterHide, ...props })=>{
|
|
13
|
+
const Dropdown = ({ children, before, after, open, label, placeholder = 'Select', options = [], width, height, value, defaultValue, loading, hideCaret, color, disabled, readOnly, required, invalid, placeholderColor, fontSize, fontWeight, description, errorMessage, position, backgroundColor, menuBackground, iconLeft, leftElement, rightElement, onChange, onOpenChange, afterShow, afterHide, ...props })=>{
|
|
14
14
|
const [isOpen, handleOpenChange] = useControlledOpenState({
|
|
15
15
|
open,
|
|
16
16
|
onOpenChange,
|
|
@@ -44,6 +44,8 @@ const Dropdown = ({ children, before, after, open, label, placeholder = 'Select'
|
|
|
44
44
|
value: selectedOption?.value || currentValue,
|
|
45
45
|
disabled: disabled,
|
|
46
46
|
readOnly: readOnly || loading,
|
|
47
|
+
required: required,
|
|
48
|
+
invalid: invalid,
|
|
47
49
|
placeholder: placeholder,
|
|
48
50
|
placeholderColor: placeholderColor,
|
|
49
51
|
loading: loading,
|
|
@@ -12,7 +12,8 @@ const EllipsisContainer = styled.div(({ clampLines })=>({
|
|
|
12
12
|
WebkitLineClamp: clampLines,
|
|
13
13
|
display: clampLines ? '-webkit-box' : void 0,
|
|
14
14
|
WebkitBoxOrient: clampLines ? 'vertical' : void 0,
|
|
15
|
-
wordBreak: clampLines ? 'break-word' : void 0
|
|
15
|
+
wordBreak: clampLines ? 'break-word' : void 0,
|
|
16
|
+
minWidth: 0
|
|
16
17
|
}), ({ width })=>({
|
|
17
18
|
width: width || 'auto'
|
|
18
19
|
}), ({ textAlign })=>({
|
|
@@ -2,11 +2,12 @@ import type { ReactNode } from 'react';
|
|
|
2
2
|
type LabelProps = {
|
|
3
3
|
filled?: boolean;
|
|
4
4
|
disabled?: boolean;
|
|
5
|
+
required?: boolean;
|
|
5
6
|
disablePointerEvents?: boolean;
|
|
6
7
|
};
|
|
7
8
|
type LabelWrapperProps = {
|
|
8
9
|
children: ReactNode;
|
|
9
10
|
label?: string;
|
|
10
11
|
} & LabelProps;
|
|
11
|
-
declare const LabelWrapper: ({ children, label, ...props }: LabelWrapperProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare const LabelWrapper: ({ children, label, required, ...props }: LabelWrapperProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
13
|
export default LabelWrapper;
|
|
@@ -3,12 +3,18 @@ import styled from "@emotion/styled";
|
|
|
3
3
|
import { Label } from "react-aria-components";
|
|
4
4
|
import Ellipsis from "../../Ellipsis.js";
|
|
5
5
|
import isPropAllowed from "../../helpers/isPropAllowed.js";
|
|
6
|
-
const LabelWrapper = ({ children, label, ...props })=>/*#__PURE__*/ jsxs(Label_Label, {
|
|
6
|
+
const LabelWrapper = ({ children, label, required, ...props })=>/*#__PURE__*/ jsxs(Label_Label, {
|
|
7
7
|
...props,
|
|
8
8
|
children: [
|
|
9
|
-
label && /*#__PURE__*/
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
label && /*#__PURE__*/ jsxs(LabelContainer, {
|
|
10
|
+
children: [
|
|
11
|
+
/*#__PURE__*/ jsx(Ellipsis, {
|
|
12
|
+
children: label
|
|
13
|
+
}),
|
|
14
|
+
required && /*#__PURE__*/ jsx(Required, {
|
|
15
|
+
children: "*"
|
|
16
|
+
})
|
|
17
|
+
]
|
|
12
18
|
}),
|
|
13
19
|
children
|
|
14
20
|
]
|
|
@@ -19,6 +25,13 @@ const preventProps = {
|
|
|
19
25
|
'disablePointerEvents'
|
|
20
26
|
])
|
|
21
27
|
};
|
|
28
|
+
const LabelContainer = styled.div({
|
|
29
|
+
display: 'flex',
|
|
30
|
+
alignItems: 'center',
|
|
31
|
+
gap: 2,
|
|
32
|
+
width: 'inherit',
|
|
33
|
+
minWidth: 0
|
|
34
|
+
});
|
|
22
35
|
const Label_Label = styled(Label, preventProps)(({ theme: { font, input }, filled, disablePointerEvents })=>({
|
|
23
36
|
display: 'flex',
|
|
24
37
|
flexDirection: 'column',
|
|
@@ -38,5 +51,8 @@ const Label_Label = styled(Label, preventProps)(({ theme: { font, input }, fille
|
|
|
38
51
|
}), ({ theme: { input }, disabled })=>({
|
|
39
52
|
color: disabled ? input.labelColor.disabled : void 0
|
|
40
53
|
}));
|
|
54
|
+
const Required = styled.span(({ theme })=>({
|
|
55
|
+
color: theme.color.error
|
|
56
|
+
}));
|
|
41
57
|
const helpers_Label = LabelWrapper;
|
|
42
58
|
export { helpers_Label as default };
|
|
@@ -92,6 +92,7 @@ const Select_Select = ({ backgroundColor, menuBackground, children, fontSize, fo
|
|
|
92
92
|
filled: hasValue,
|
|
93
93
|
disabled: disabled,
|
|
94
94
|
disablePointerEvents: true,
|
|
95
|
+
required: required,
|
|
95
96
|
children: /*#__PURE__*/ jsx(DisplayValue, {
|
|
96
97
|
fontSize: fontSize,
|
|
97
98
|
fontWeight: fontWeight,
|
|
@@ -69,6 +69,7 @@ declare const Table: {
|
|
|
69
69
|
emphasis?: boolean | string;
|
|
70
70
|
} & Padding & import("../types").Height & {
|
|
71
71
|
download?: any;
|
|
72
|
+
form?: string | undefined | undefined;
|
|
72
73
|
key?: import("react").Key | null | undefined;
|
|
73
74
|
list?: string | undefined | undefined;
|
|
74
75
|
rows?: number | undefined | undefined;
|
|
@@ -84,7 +85,6 @@ declare const Table: {
|
|
|
84
85
|
ref?: import("react").Ref<HTMLTableRowElement> | undefined;
|
|
85
86
|
cite?: string | undefined | undefined;
|
|
86
87
|
data?: string | undefined | undefined;
|
|
87
|
-
form?: string | undefined | undefined;
|
|
88
88
|
label?: string | undefined | undefined;
|
|
89
89
|
slot?: string | undefined | undefined;
|
|
90
90
|
span?: number | undefined | undefined;
|
package/build/index.d.ts
CHANGED
|
@@ -75,6 +75,7 @@ export type { ITheme, ThemeProp } from './theme/ThemeTypes';
|
|
|
75
75
|
export type { ThemeOption } from './theme';
|
|
76
76
|
export type { EditorValue } from './components/Editor';
|
|
77
77
|
export type { Selection } from 'react-aria-components';
|
|
78
|
+
export type { DropEvent, DropItem } from 'react-aria';
|
|
78
79
|
export type { DotType } from './components/Dot';
|
|
79
80
|
export { default as useConfirm } from './hooks/useConfirm';
|
|
80
81
|
export { default as useElementObserver } from './hooks/useElementObserver';
|
|
@@ -90,3 +91,4 @@ export { default as formatDate } from './utils/formatDate';
|
|
|
90
91
|
export { default as formatNumber } from './utils/formatNumber';
|
|
91
92
|
export { default as numberWithCommas } from './utils/numberWithCommas';
|
|
92
93
|
export { createEditorContent, editorContentToText } from './components/Editor';
|
|
94
|
+
export { default as matchesFileTypes } from './utils/matchesFileTypes';
|
package/build/index.js
CHANGED
|
@@ -79,4 +79,5 @@ import copyToClipboard from "./utils/copyToClipboard.js";
|
|
|
79
79
|
import formatDate from "./utils/formatDate.js";
|
|
80
80
|
import formatNumber from "./utils/formatNumber.js";
|
|
81
81
|
import numberWithCommas from "./utils/numberWithCommas.js";
|
|
82
|
-
|
|
82
|
+
import matchesFileTypes from "./utils/matchesFileTypes.js";
|
|
83
|
+
export { Accordion, Audio, BarChart, Button, Calendar, Checkbox, Code, ComboBox, CommandMenu, DatePicker, DateRangePicker, DateRangeSelect, DocTable, Dot, DraftEditor, DropZone, Dropdown, DropdownMenu, DropdownSelect, Editor, Ellipsis, FileTrigger, Form, Grid, Icon, ImageViewer, InlineCode, InlineInput, InputHelpers as InputUtils, Label, LineChart, Menu, Message, MessageHr, Modal, MultiSelect, NumberInput, Pagination, PhoneInput, PieChart, Popover, PortalScope, Progress, Radio, RangeCalendar, ResetStyles, ScrollbarStyles, SearchInput, Select, Slider, Spinner, Table, Tabs, Tag, TextArea, TextInput, TimeInput, ToastStyles, Toggle, ToggleButton, ToggleButtonGroup, Tooltip, TransferList, Tree, UnstyledButton, colors, copyToClipboard, createEditorContent, darkScale, editorContentToText, formatDate, formatNumber, lightScale, marginProps, matchesFileTypes, numberWithCommas, paddingProps, positionProps, theme, themeClasses, themeOptions, useConfirm, useCopy, useElementObserver, useEventListener, useOnClickOutside, usePrevious, useSelectAll, useWindowSize, widthHeightProps };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FileDropItem } from 'react-aria';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if a file matches any of the accepted file types
|
|
4
|
+
* @param file - The file to check
|
|
5
|
+
* @param acceptedFileTypes - The accepted file types
|
|
6
|
+
* @returns True if the file matches any of the accepted file types, false otherwise
|
|
7
|
+
*/
|
|
8
|
+
declare const matchesFileTypes: (file: FileDropItem, acceptedFileTypes?: readonly string[]) => boolean;
|
|
9
|
+
export default matchesFileTypes;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const matchesFileTypes = (file, acceptedFileTypes)=>{
|
|
2
|
+
if (!acceptedFileTypes || 0 === acceptedFileTypes.length) return true;
|
|
3
|
+
const fileType = file.type || '';
|
|
4
|
+
const fileName = file.name || '';
|
|
5
|
+
return acceptedFileTypes.some((acceptedType)=>{
|
|
6
|
+
if (acceptedType === fileType) return true;
|
|
7
|
+
if (acceptedType.endsWith('/*')) {
|
|
8
|
+
const baseType = acceptedType.slice(0, -2);
|
|
9
|
+
return fileType.startsWith(`${baseType}/`);
|
|
10
|
+
}
|
|
11
|
+
if (acceptedType.startsWith('.')) return fileName.toLowerCase().endsWith(acceptedType.toLowerCase());
|
|
12
|
+
return false;
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
const utils_matchesFileTypes = matchesFileTypes;
|
|
16
|
+
export { utils_matchesFileTypes as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wavv/ui",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -31,29 +31,29 @@
|
|
|
31
31
|
"@emotion/styled": "^11.14.1",
|
|
32
32
|
"@internationalized/date": "3.10.0",
|
|
33
33
|
"@react-hook/resize-observer": "^2.0.2",
|
|
34
|
-
"@tiptap/core": "^3.11.
|
|
35
|
-
"@tiptap/extension-character-count": "^3.11.
|
|
36
|
-
"@tiptap/extension-highlight": "^3.11.
|
|
37
|
-
"@tiptap/extension-placeholder": "^3.11.
|
|
38
|
-
"@tiptap/extension-task-item": "^3.11.
|
|
39
|
-
"@tiptap/extension-task-list": "^3.11.
|
|
40
|
-
"@tiptap/markdown": "^3.11.
|
|
41
|
-
"@tiptap/pm": "^3.11.
|
|
42
|
-
"@tiptap/react": "^3.11.
|
|
43
|
-
"@tiptap/starter-kit": "^3.11.
|
|
34
|
+
"@tiptap/core": "^3.11.1",
|
|
35
|
+
"@tiptap/extension-character-count": "^3.11.1",
|
|
36
|
+
"@tiptap/extension-highlight": "^3.11.1",
|
|
37
|
+
"@tiptap/extension-placeholder": "^3.11.1",
|
|
38
|
+
"@tiptap/extension-task-item": "^3.11.1",
|
|
39
|
+
"@tiptap/extension-task-list": "^3.11.1",
|
|
40
|
+
"@tiptap/markdown": "^3.11.1",
|
|
41
|
+
"@tiptap/pm": "^3.11.1",
|
|
42
|
+
"@tiptap/react": "^3.11.1",
|
|
43
|
+
"@tiptap/starter-kit": "^3.11.1",
|
|
44
44
|
"cmdk": "^1.1.1",
|
|
45
45
|
"date-fns": "^4.1.0",
|
|
46
46
|
"draft-js": "^0.11.7",
|
|
47
47
|
"es-toolkit": "^1.42.0",
|
|
48
|
-
"libphonenumber-js": "^1.12.
|
|
49
|
-
"lucide-react": "^0.
|
|
48
|
+
"libphonenumber-js": "^1.12.30",
|
|
49
|
+
"lucide-react": "^0.555.0",
|
|
50
50
|
"polished": "^4.1.4",
|
|
51
51
|
"prism-react-renderer": "^2.4.1",
|
|
52
52
|
"react-aria": "3.44.0",
|
|
53
53
|
"react-aria-components": "1.13.0",
|
|
54
|
-
"react-keyed-flatten-children": "^5.
|
|
54
|
+
"react-keyed-flatten-children": "^5.1.1",
|
|
55
55
|
"react-phone-input-auto-format": "^0.1.0",
|
|
56
|
-
"recharts": "^3.
|
|
56
|
+
"recharts": "^3.5.1",
|
|
57
57
|
"sanitize.css": "^13.0.0",
|
|
58
58
|
"webfontloader": "^1.6.28"
|
|
59
59
|
},
|
|
@@ -65,10 +65,10 @@
|
|
|
65
65
|
"@chromatic-com/storybook": "^4.1.3",
|
|
66
66
|
"@emotion/babel-plugin": "^11.13.5",
|
|
67
67
|
"@emotion/react": "^11.14.0",
|
|
68
|
-
"@rsbuild/core": "1.6.
|
|
68
|
+
"@rsbuild/core": "1.6.11",
|
|
69
69
|
"@rsbuild/plugin-react": "^1.4.2",
|
|
70
70
|
"@rsbuild/plugin-svgr": "^1.2.2",
|
|
71
|
-
"@rslib/core": "^0.18.
|
|
71
|
+
"@rslib/core": "^0.18.2",
|
|
72
72
|
"@storybook/addon-docs": "^9.1.16",
|
|
73
73
|
"@storybook/addon-links": "^9.1.16",
|
|
74
74
|
"@storybook/addon-themes": "^9.1.16",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"@types/node": "^24.10.1",
|
|
84
84
|
"@types/prompts": "^2.4.9",
|
|
85
85
|
"@types/randomcolor": "^0.5.9",
|
|
86
|
-
"@types/react": "^19.2.
|
|
86
|
+
"@types/react": "^19.2.7",
|
|
87
87
|
"@types/react-dom": "^19.2.3",
|
|
88
88
|
"@types/signale": "^1.4.7",
|
|
89
89
|
"@types/webfontloader": "^1.6.38",
|
|
@@ -95,9 +95,9 @@
|
|
|
95
95
|
"ncp": "^2.0.0",
|
|
96
96
|
"path": "^0.12.7",
|
|
97
97
|
"phone": "^3.1.67",
|
|
98
|
-
"playwright": "^1.
|
|
98
|
+
"playwright": "^1.57.0",
|
|
99
99
|
"postcss": "^8.5.6",
|
|
100
|
-
"prettier": "^3.
|
|
100
|
+
"prettier": "^3.7.3",
|
|
101
101
|
"prompts": "^2.4.2",
|
|
102
102
|
"randomcolor": "^0.6.2",
|
|
103
103
|
"react": "^19.2.0",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"storybook-react-rsbuild": "^2.1.6",
|
|
109
109
|
"tsc-files": "^1.1.4",
|
|
110
110
|
"tslib": "^2.8.1",
|
|
111
|
-
"tsx": "^4.
|
|
111
|
+
"tsx": "^4.21.0",
|
|
112
112
|
"typescript": "5.9.3",
|
|
113
113
|
"uuid": "^13.0.0"
|
|
114
114
|
},
|