@wavv/ui 2.3.1 → 2.3.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.
@@ -0,0 +1,23 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type DropZoneProps } from 'react-aria-components';
3
+ import type { MarginPadding, WidthHeight } from './types';
4
+ type Props = {
5
+ children?: ReactNode;
6
+ /** The label to display inside the drop zone */
7
+ label?: string;
8
+ /** Whether the drop target is disabled. If true, the drop target will not accept any drops. */
9
+ disabled?: DropZoneProps['isDisabled'];
10
+ className?: DropZoneProps['className'];
11
+ style?: DropZoneProps['style'];
12
+ onDrop?: DropZoneProps['onDrop'];
13
+ onDropEnter?: DropZoneProps['onDropEnter'];
14
+ onDropMove?: DropZoneProps['onDropMove'];
15
+ onDropExit?: DropZoneProps['onDropExit'];
16
+ onDropActivate?: DropZoneProps['onDropActivate'];
17
+ getDropOperation?: DropZoneProps['getDropOperation'];
18
+ onHoverChange?: DropZoneProps['onHoverChange'];
19
+ onHoverStart?: DropZoneProps['onHoverStart'];
20
+ onHoverEnd?: DropZoneProps['onHoverEnd'];
21
+ } & MarginPadding & WidthHeight & Omit<DropZoneProps, 'isDisabled' | 'children'>;
22
+ declare const DropZone: ({ children, label, disabled, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
23
+ export default DropZone;
@@ -0,0 +1,53 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import styled from "@emotion/styled";
3
+ import { DropZone, Text } from "react-aria-components";
4
+ import { marginProps, paddingProps, widthHeightProps } from "./helpers/styledProps.js";
5
+ const DropZone_DropZone = ({ children, label = 'Drop here', disabled, ...rest })=>/*#__PURE__*/ jsxs(StyledDropZone, {
6
+ isDisabled: disabled,
7
+ ...rest,
8
+ children: [
9
+ /*#__PURE__*/ jsx(StyledText, {
10
+ slot: "label",
11
+ children: label
12
+ }),
13
+ children
14
+ ]
15
+ });
16
+ const StyledDropZone = styled(DropZone)(({ theme })=>({
17
+ display: 'flex',
18
+ flexDirection: 'column',
19
+ alignItems: 'center',
20
+ justifyContent: 'center',
21
+ gap: theme.size.sm,
22
+ padding: theme.size.md,
23
+ border: `1px dashed ${theme.scale4}`,
24
+ borderRadius: 8,
25
+ backgroundColor: 'transparent',
26
+ outline: 'none',
27
+ color: theme.scale10,
28
+ transition: 'background-color 0.2s ease, border-color 0.2s ease',
29
+ '&[data-focus-visible]': {
30
+ outline: `${theme.accent} solid 2px`,
31
+ outlineOffset: -1
32
+ },
33
+ '&[data-drop-target]': {
34
+ backgroundColor: theme.scale1,
35
+ borderColor: theme.color.brand
36
+ },
37
+ '&[data-disabled]': {
38
+ cursor: 'not-allowed',
39
+ backgroundColor: theme.scale0,
40
+ borderColor: theme.scale4,
41
+ opacity: 0.4,
42
+ userSelect: 'none',
43
+ '& > *': {
44
+ pointerEvents: 'none'
45
+ }
46
+ }
47
+ }), widthHeightProps, marginProps, paddingProps);
48
+ const StyledText = styled(Text)(({ theme })=>({
49
+ fontSize: theme.font.size.md,
50
+ fontWeight: theme.font.weight.medium
51
+ }));
52
+ const components_DropZone = DropZone_DropZone;
53
+ export { components_DropZone as default };
@@ -0,0 +1,11 @@
1
+ import { type FileTriggerProps } from 'react-aria-components';
2
+ import type { Margin } from './types';
3
+ type Props = {
4
+ acceptedFileTypes?: FileTriggerProps['acceptedFileTypes'];
5
+ allowsMultiple?: FileTriggerProps['allowsMultiple'];
6
+ defaultCamera?: FileTriggerProps['defaultCamera'];
7
+ acceptDirectory?: FileTriggerProps['acceptDirectory'];
8
+ onSelect?: FileTriggerProps['onSelect'];
9
+ } & Margin & Omit<FileTriggerProps, 'children'>;
10
+ declare const FileTrigger: (props: Props) => import("react/jsx-runtime").JSX.Element;
11
+ export default FileTrigger;
@@ -0,0 +1,12 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { FileTrigger } from "react-aria-components";
3
+ import Button from "./Button/index.js";
4
+ const FileTrigger_FileTrigger = (props)=>/*#__PURE__*/ jsx(FileTrigger, {
5
+ ...props,
6
+ children: /*#__PURE__*/ jsx(Button, {
7
+ small: true,
8
+ children: "Select files"
9
+ })
10
+ });
11
+ const components_FileTrigger = FileTrigger_FileTrigger;
12
+ export { components_FileTrigger as default };
package/build/index.d.ts CHANGED
@@ -10,11 +10,13 @@ export { default as CommandMenu } from './components/CommandMenu';
10
10
  export { default as DocTable } from './components/DocTable';
11
11
  export { default as Dot } from './components/Dot';
12
12
  export { default as DraftEditor } from './components/DraftEditor';
13
+ export { default as DropZone } from './components/DropZone';
13
14
  export { default as Editor } from './components/Editor';
14
15
  export { default as DropdownMenu } from './components/DropdownMenu';
15
16
  export { default as DropdownSelect } from './components/DropdownSelect';
16
17
  export { default as Dropdown } from './components/Dropdown';
17
18
  export { default as Ellipsis } from './components/Ellipsis';
19
+ export { default as FileTrigger } from './components/FileTrigger';
18
20
  export { default as Form } from './components/Form';
19
21
  export { default as Grid } from './components/Grid';
20
22
  export { default as Icon } from './components/Icon';
package/build/index.js CHANGED
@@ -10,11 +10,13 @@ import CommandMenu from "./components/CommandMenu/index.js";
10
10
  import DocTable from "./components/DocTable.js";
11
11
  import Dot from "./components/Dot.js";
12
12
  import DraftEditor from "./components/DraftEditor.js";
13
+ import DropZone from "./components/DropZone.js";
13
14
  import Editor, { createEditorContent, editorContentToText } from "./components/Editor/index.js";
14
15
  import DropdownMenu from "./components/DropdownMenu.js";
15
16
  import DropdownSelect from "./components/DropdownSelect.js";
16
17
  import Dropdown from "./components/Dropdown.js";
17
18
  import Ellipsis from "./components/Ellipsis.js";
19
+ import FileTrigger from "./components/FileTrigger.js";
18
20
  import Form from "./components/Form.js";
19
21
  import Grid from "./components/Grid.js";
20
22
  import Icon from "./components/Icon/index.js";
@@ -77,4 +79,4 @@ import copyToClipboard from "./utils/copyToClipboard.js";
77
79
  import formatDate from "./utils/formatDate.js";
78
80
  import formatNumber from "./utils/formatNumber.js";
79
81
  import numberWithCommas from "./utils/numberWithCommas.js";
80
- export { Accordion, Audio, BarChart, Button, Calendar, Checkbox, Code, ComboBox, CommandMenu, DatePicker, DateRangePicker, DateRangeSelect, DocTable, Dot, DraftEditor, Dropdown, DropdownMenu, DropdownSelect, Editor, Ellipsis, 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, numberWithCommas, paddingProps, positionProps, theme, themeClasses, themeOptions, useConfirm, useCopy, useElementObserver, useEventListener, useOnClickOutside, usePrevious, useSelectAll, useWindowSize, widthHeightProps };
82
+ 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, numberWithCommas, paddingProps, positionProps, theme, themeClasses, themeOptions, useConfirm, useCopy, useElementObserver, useEventListener, useOnClickOutside, usePrevious, useSelectAll, useWindowSize, widthHeightProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavv/ui",
3
- "version": "2.3.1",
3
+ "version": "2.3.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {