@wavv/ui 2.4.3 → 2.4.4-alpha.10

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.
@@ -146,17 +146,17 @@ declare const Accordion: {
146
146
  onFocusCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
147
147
  onBlur?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
148
148
  onBlurCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
149
- onChangeCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
149
+ onChangeCapture?: import("react").ChangeEventHandler<HTMLDivElement, Element> | undefined;
150
150
  onBeforeInput?: import("react").InputEventHandler<HTMLDivElement> | undefined;
151
- onBeforeInputCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
152
- onInput?: import("react").FormEventHandler<HTMLDivElement> | undefined;
153
- onInputCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
154
- onReset?: import("react").FormEventHandler<HTMLDivElement> | undefined;
155
- onResetCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
156
- onSubmit?: import("react").FormEventHandler<HTMLDivElement> | undefined;
157
- onSubmitCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
158
- onInvalid?: import("react").FormEventHandler<HTMLDivElement> | undefined;
159
- onInvalidCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
151
+ onBeforeInputCapture?: import("react").InputEventHandler<HTMLDivElement> | undefined;
152
+ onInput?: import("react").InputEventHandler<HTMLDivElement> | undefined;
153
+ onInputCapture?: import("react").InputEventHandler<HTMLDivElement> | undefined;
154
+ onReset?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
155
+ onResetCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
156
+ onSubmit?: import("react").SubmitEventHandler<HTMLDivElement> | undefined;
157
+ onSubmitCapture?: import("react").SubmitEventHandler<HTMLDivElement> | undefined;
158
+ onInvalid?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
159
+ onInvalidCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
160
160
  onLoad?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
161
161
  onLoadCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
162
162
  onError?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
@@ -120,17 +120,17 @@ declare const _default: (({ content, children, dropdown, options, ref, ...rest }
120
120
  onFocusCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
121
121
  onBlur?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
122
122
  onBlurCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
123
- onChangeCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
123
+ onChangeCapture?: import("react").ChangeEventHandler<HTMLDivElement, Element> | undefined;
124
124
  onBeforeInput?: import("react").InputEventHandler<HTMLDivElement> | undefined;
125
- onBeforeInputCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
126
- onInput?: import("react").FormEventHandler<HTMLDivElement> | undefined;
127
- onInputCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
128
- onReset?: import("react").FormEventHandler<HTMLDivElement> | undefined;
129
- onResetCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
130
- onSubmit?: import("react").FormEventHandler<HTMLDivElement> | undefined;
131
- onSubmitCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
132
- onInvalid?: import("react").FormEventHandler<HTMLDivElement> | undefined;
133
- onInvalidCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
125
+ onBeforeInputCapture?: import("react").InputEventHandler<HTMLDivElement> | undefined;
126
+ onInput?: import("react").InputEventHandler<HTMLDivElement> | undefined;
127
+ onInputCapture?: import("react").InputEventHandler<HTMLDivElement> | undefined;
128
+ onReset?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
129
+ onResetCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
130
+ onSubmit?: import("react").SubmitEventHandler<HTMLDivElement> | undefined;
131
+ onSubmitCapture?: import("react").SubmitEventHandler<HTMLDivElement> | undefined;
132
+ onInvalid?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
133
+ onInvalidCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
134
134
  onLoad?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
135
135
  onLoadCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
136
136
  onError?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
@@ -8,12 +8,14 @@ import DropdownMenu from "../DropdownMenu.js";
8
8
  import { marginProps } from "../helpers/styledProps.js";
9
9
  import Icon from "../Icon/index.js";
10
10
  import ButtonLoader from "./ButtonLoader.js";
11
+ import DropdownCaretIcon from "./DropdownCaretIcon.js";
11
12
  import Group from "./Group.js";
12
13
  const Button_Button = ({ content, children, dropdown, options, ref, ...rest })=>{
13
14
  const text = content || children;
14
- if (dropdown && options) return /*#__PURE__*/ jsx(DropdownButton, {
15
+ if ((true === dropdown || 'single' === dropdown) && options) return /*#__PURE__*/ jsx(DropdownButton, {
15
16
  ref: ref,
16
17
  options: options,
18
+ dropdown: dropdown,
17
19
  ...rest,
18
20
  children: text
19
21
  });
@@ -66,8 +68,20 @@ const BasicButton = ({ children, onClick, onPress, icon, iconPosition, iconColor
66
68
  ]
67
69
  });
68
70
  };
69
- const DropdownButton = ({ children, options, onClick, onPress, afterShow, afterHide, secondary, negative, positive, caution, outline, subtle, link, size, small, tiny, large, disabled, buttonDisabled, optionsDisabled, loading, direction, collapse, width, hideDivider, gap, ref, ...props })=>{
71
+ const DropdownButton = ({ children, options, dropdown = true, onClick, onPress, afterShow, afterHide, secondary, negative, positive, caution, outline, subtle, link, size, small, tiny, large, disabled, buttonDisabled, optionsDisabled, loading, direction, collapse, width, hideDivider, gap, icon, iconPosition, ref, ...props })=>{
70
72
  const [optionsOpen, setOptionsOpen] = useState(false);
73
+ const isSingle = 'single' === dropdown;
74
+ let buttonSize = size || 'medium';
75
+ if (small) buttonSize = 'small';
76
+ else if (large) buttonSize = 'large';
77
+ else if (tiny) buttonSize = 'tiny';
78
+ const caretDimensions = {
79
+ large: 7,
80
+ medium: 6,
81
+ small: 5,
82
+ tiny: 4
83
+ };
84
+ const caretSize = caretDimensions[buttonSize];
71
85
  const buttonStyleProps = {
72
86
  secondary,
73
87
  negative,
@@ -93,6 +107,38 @@ const DropdownButton = ({ children, options, onClick, onPress, afterShow, afterH
93
107
  if (afterHide) afterHide();
94
108
  setOptionsOpen(false);
95
109
  };
110
+ if (isSingle) return /*#__PURE__*/ jsx(DropdownContainer, {
111
+ children: /*#__PURE__*/ jsx(DropdownMenu, {
112
+ options: options,
113
+ position: `${direction || 'bottom'} right`,
114
+ afterShow: handleShow,
115
+ afterHide: handleHide,
116
+ isTriggerButton: true,
117
+ trigger: /*#__PURE__*/ jsxs(BasicButton, {
118
+ ...buttonStyleProps,
119
+ ...props,
120
+ ref: ref,
121
+ disabled: disabled,
122
+ width: width && !collapse ? '100%' : void 0,
123
+ collapse: collapse,
124
+ loading: loading,
125
+ icon: icon,
126
+ iconPosition: iconPosition,
127
+ children: [
128
+ children && /*#__PURE__*/ jsx(DropdownButtonChildren, {
129
+ children: children
130
+ }),
131
+ /*#__PURE__*/ jsx(CaretIconWrapper, {
132
+ isOpen: optionsOpen,
133
+ children: /*#__PURE__*/ jsx(Icon, {
134
+ svg: /*#__PURE__*/ jsx(DropdownCaretIcon, {}),
135
+ size: caretSize
136
+ })
137
+ })
138
+ ]
139
+ })
140
+ })
141
+ });
96
142
  return /*#__PURE__*/ jsx(DropdownContainer, {
97
143
  children: /*#__PURE__*/ jsxs(Group, {
98
144
  width: collapse ? void 0 : width,
@@ -247,10 +293,23 @@ const DropdownContainer = styled.div({
247
293
  position: 'relative'
248
294
  });
249
295
  const DropdownButtonChildren = styled.div({
250
- marginRight: 8
296
+ marginRight: 8,
297
+ display: 'inline-flex',
298
+ alignItems: 'center'
251
299
  });
300
+ const CaretIconWrapper = styled.span(({ isOpen })=>({
301
+ display: 'inline-flex',
302
+ alignItems: 'center',
303
+ flexShrink: 0,
304
+ '& > div': {
305
+ transform: isOpen ? 'rotate(-180deg)' : 'rotate(0deg)',
306
+ transition: 'transform 0.2s ease-in-out'
307
+ }
308
+ }));
252
309
  const Inner = styled.span({
253
- pointerEvents: 'none'
310
+ pointerEvents: 'none',
311
+ display: 'inline-flex',
312
+ alignItems: 'center'
254
313
  });
255
314
  const components_Button_Button = Object.assign(Button_Button, {
256
315
  Group: Group
@@ -112,7 +112,7 @@ export type DropdownProps = {
112
112
  optionsDisabled?: never;
113
113
  } | {
114
114
  /** Adds a dropdown button to the main button, allowing for multiple button options */
115
- dropdown: true;
115
+ dropdown: true | 'single';
116
116
  /** The dropdown options array of { id: string; label: string; action: () => void; } */
117
117
  options: ListItem[];
118
118
  /** The direction the options should open in relation to the button */
@@ -131,6 +131,7 @@ export type DropdownProps = {
131
131
  optionsDisabled?: boolean;
132
132
  };
133
133
  export type ButtonDropdownProps = {
134
+ dropdown: true | 'single';
134
135
  options: ListItem[];
135
136
  direction?: 'top' | 'bottom';
136
137
  afterShow?: () => void;
@@ -0,0 +1,3 @@
1
+ import type * as React from 'react';
2
+ declare function DropdownCaretIcon(props: React.SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
3
+ export default DropdownCaretIcon;
@@ -0,0 +1,20 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ function DropdownCaretIcon(props) {
3
+ return /*#__PURE__*/ jsx("svg", {
4
+ width: "6",
5
+ height: "4",
6
+ viewBox: "0 0 6 4",
7
+ fill: "none",
8
+ xmlns: "http://www.w3.org/2000/svg",
9
+ ...props,
10
+ children: /*#__PURE__*/ jsx("path", {
11
+ d: "M0.75 0.75L3 3L5.25 0.75",
12
+ stroke: "currentColor",
13
+ strokeWidth: "1.5",
14
+ strokeLinecap: "round",
15
+ strokeLinejoin: "round"
16
+ })
17
+ });
18
+ }
19
+ const Button_DropdownCaretIcon = DropdownCaretIcon;
20
+ export { Button_DropdownCaretIcon as default };
@@ -0,0 +1,67 @@
1
+ import type { CSSProperties, ReactNode, RefObject } from 'react';
2
+ import type { IconName } from './Icon/Icon';
3
+ import type { Attributes } from './typeDefs/elementTypes';
4
+ import type { MaxWidthHeight, MinWidthHeight, Padding, PositionType, WidthHeight } from './types';
5
+ type DivAttributes = Attributes<HTMLDivElement>;
6
+ type DialogProps = {
7
+ /** The header content displayed at the top of the dialog */
8
+ header: ReactNode;
9
+ /** The icon displayed to the left of the header text */
10
+ headerIcon?: IconName;
11
+ /** The main text content displayed in the dialog body */
12
+ text?: ReactNode;
13
+ /** Additional children content */
14
+ children?: ReactNode;
15
+ /** The text of the cancel button */
16
+ cancelText?: string;
17
+ /** The text of the confirm button */
18
+ confirmText?: string;
19
+ /** The text of the middle button (between cancel and confirm) */
20
+ middleText?: string;
21
+ /** The confirm button will be negative (red) */
22
+ negative?: boolean;
23
+ /** Disables the confirm button */
24
+ confirmDisabled?: boolean;
25
+ /** Shows loading state on the confirm button */
26
+ confirmLoading?: boolean;
27
+ /** Disables the middle button */
28
+ middleDisabled?: boolean;
29
+ /** Shows loading state on the middle button */
30
+ middleLoading?: boolean;
31
+ /** The function called when the confirm button is clicked */
32
+ onConfirm?: () => void;
33
+ /** The function called when the middle button is clicked */
34
+ onMiddle?: () => void;
35
+ /** The function called when the cancel button is clicked */
36
+ onCancel?: () => void;
37
+ /** Controls whether or not the Dialog is open */
38
+ visible: boolean;
39
+ /** The function called when the Dialog is closed */
40
+ onClose: () => void;
41
+ /** Displays a close icon in the top right of the Dialog */
42
+ closeIcon?: boolean;
43
+ /** Prevents the Dialog from closing if the overlay outside the dialog is clicked */
44
+ preventOverlayClose?: boolean;
45
+ /** Adjust or disable the blur effect of the dialog overlay */
46
+ overlayBlur?: boolean | number;
47
+ /** Sets the color of the dialog overlay */
48
+ overlayColor?: string;
49
+ /** Overrides the backgroundColor of the dialog container */
50
+ backgroundColor?: string;
51
+ /** Overrides the borderRadius of the dialog container */
52
+ borderRadius?: number | string;
53
+ /** Overrides the overflow of the dialog container */
54
+ overflow?: CSSProperties['overflow'];
55
+ /** Prevents the dialog from being interacted with */
56
+ inert?: boolean;
57
+ /** Renders the Dialog scoped inside a container */
58
+ scopeRef?: RefObject<HTMLElement | null>;
59
+ /** Sets the position of the dialog container */
60
+ position?: PositionType;
61
+ /** Sets the zIndex of the dialog container */
62
+ zIndex?: number;
63
+ /** The `aria-label` of the dialog */
64
+ 'aria-label'?: string;
65
+ } & WidthHeight & MaxWidthHeight & MinWidthHeight & Padding & DivAttributes;
66
+ declare const Dialog: ({ header, headerIcon, text, children, cancelText, confirmText, middleText, negative, confirmDisabled, confirmLoading, middleDisabled, middleLoading, onConfirm, onMiddle, onCancel, visible, width, height, onClose, closeIcon, preventOverlayClose, overlayBlur, overlayColor, backgroundColor, inert, scopeRef, position, zIndex, ...props }: DialogProps) => import("react/jsx-runtime").JSX.Element;
67
+ export default Dialog;
@@ -0,0 +1,168 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import styled from "@emotion/styled";
3
+ import { Dialog, Heading, Modal, ModalOverlay } from "react-aria-components";
4
+ import Button from "./Button/index.js";
5
+ import getIcon from "./helpers/getIcon.js";
6
+ import { body1, head3, maxWidthHeightProps, minWidthHeightProps, paddingProps } from "./helpers/styledProps.js";
7
+ import Icon from "./Icon/index.js";
8
+ import PortalScope from "./PortalScope.js";
9
+ const Dialog_Dialog = ({ header, headerIcon, text, children, cancelText = 'Cancel', confirmText = 'Okay', middleText, negative, confirmDisabled, confirmLoading, middleDisabled, middleLoading, onConfirm, onMiddle, onCancel, visible, width, height, onClose, closeIcon, preventOverlayClose, overlayBlur = true, overlayColor, backgroundColor, inert, scopeRef, position, zIndex, ...props })=>{
10
+ const { 'aria-label': ariaLabel, ...rest } = props;
11
+ const handleOpenChange = (open)=>{
12
+ if (!open) onClose();
13
+ };
14
+ const hasFooter = !!onConfirm;
15
+ const dialog = /*#__PURE__*/ jsx(Overlay, {
16
+ isDismissable: !preventOverlayClose,
17
+ isOpen: visible,
18
+ onOpenChange: handleOpenChange,
19
+ color: overlayColor,
20
+ position: scopeRef ? 'absolute' : position,
21
+ width: scopeRef ? '100%' : void 0,
22
+ height: scopeRef ? '100%' : void 0,
23
+ zIndex: zIndex,
24
+ blur: overlayBlur,
25
+ ref: (node)=>{
26
+ if (!node) return;
27
+ if (inert) node.setAttribute('inert', '');
28
+ else node.removeAttribute('inert');
29
+ },
30
+ children: /*#__PURE__*/ jsx(StyledModal, {
31
+ children: /*#__PURE__*/ jsx(StyledDialog, {
32
+ "aria-label": ariaLabel,
33
+ children: /*#__PURE__*/ jsxs(DialogContainer, {
34
+ width: width,
35
+ height: height,
36
+ backgroundColor: backgroundColor,
37
+ ...rest,
38
+ children: [
39
+ /*#__PURE__*/ jsxs(DialogHeader, {
40
+ slot: "title",
41
+ children: [
42
+ /*#__PURE__*/ jsxs(HeaderContent, {
43
+ children: [
44
+ headerIcon && getIcon(headerIcon),
45
+ header
46
+ ]
47
+ }),
48
+ closeIcon && /*#__PURE__*/ jsx(CloseInHeader, {
49
+ children: /*#__PURE__*/ jsx(Icon, {
50
+ name: "close",
51
+ size: "small",
52
+ onClick: onClose
53
+ })
54
+ })
55
+ ]
56
+ }),
57
+ (text || children) && /*#__PURE__*/ jsxs(DialogContent, {
58
+ hasFooter: hasFooter,
59
+ children: [
60
+ text,
61
+ children
62
+ ]
63
+ }),
64
+ hasFooter && /*#__PURE__*/ jsxs(DialogFooter, {
65
+ children: [
66
+ /*#__PURE__*/ jsx(Button, {
67
+ secondary: true,
68
+ onClick: onCancel || onClose,
69
+ children: cancelText
70
+ }),
71
+ onMiddle && /*#__PURE__*/ jsx(Button, {
72
+ secondary: true,
73
+ disabled: middleDisabled,
74
+ loading: middleLoading,
75
+ onClick: onMiddle,
76
+ children: middleText
77
+ }),
78
+ /*#__PURE__*/ jsx(Button, {
79
+ negative: negative,
80
+ disabled: confirmDisabled,
81
+ loading: confirmLoading,
82
+ onClick: onConfirm,
83
+ children: confirmText
84
+ })
85
+ ]
86
+ })
87
+ ]
88
+ })
89
+ })
90
+ })
91
+ });
92
+ return scopeRef ? /*#__PURE__*/ jsx(PortalScope, {
93
+ containerRef: scopeRef,
94
+ children: dialog
95
+ }) : dialog;
96
+ };
97
+ const DialogHeader = styled(Heading)(({ theme })=>({
98
+ display: 'flex',
99
+ alignItems: 'center',
100
+ justifyContent: 'space-between',
101
+ color: theme.modal.color.header,
102
+ margin: 0,
103
+ padding: 16,
104
+ borderBottom: theme.defaultBorder,
105
+ position: 'relative',
106
+ width: '100%',
107
+ boxSizing: 'border-box'
108
+ }), head3);
109
+ const HeaderContent = styled.div({
110
+ display: 'flex',
111
+ alignItems: 'center',
112
+ gap: 8
113
+ });
114
+ const DialogContent = styled.div(({ theme, hasFooter })=>({
115
+ color: theme.modal.color.body,
116
+ padding: hasFooter ? '16px 16px 8px' : 16,
117
+ boxSizing: 'border-box'
118
+ }), body1);
119
+ const DialogFooter = styled.div({
120
+ display: 'flex',
121
+ alignItems: 'center',
122
+ justifyContent: 'flex-end',
123
+ padding: 16,
124
+ gap: 8,
125
+ boxSizing: 'border-box'
126
+ });
127
+ const DialogContainer = styled.div(({ theme, width, height, backgroundColor, borderRadius, overflow })=>({
128
+ display: 'flex',
129
+ flexDirection: 'column',
130
+ backgroundColor: backgroundColor || theme.modal.background,
131
+ color: theme.scale10,
132
+ boxShadow: theme.elevation3,
133
+ width: width || 'max-content',
134
+ height: height || 'max-content',
135
+ borderRadius: borderRadius || theme.size.sm,
136
+ overflow: overflow || 'hidden'
137
+ }), {
138
+ position: 'absolute',
139
+ top: '50%',
140
+ left: '50%',
141
+ transform: 'translate(-50%,-50%)'
142
+ }, paddingProps, minWidthHeightProps, maxWidthHeightProps);
143
+ const CloseInHeader = styled.div(({ theme })=>({
144
+ display: 'flex',
145
+ justifyContent: 'center',
146
+ alignItems: 'center',
147
+ marginLeft: 'auto',
148
+ cursor: 'pointer',
149
+ color: theme.scale10
150
+ }));
151
+ const Overlay = styled(ModalOverlay)(({ color, blur, position, zIndex, width, height })=>({
152
+ position: position || 'fixed',
153
+ top: 0,
154
+ left: 0,
155
+ width: width || '100vw',
156
+ height: height || 'var(--visual-viewport-height)',
157
+ zIndex: zIndex || 100,
158
+ backgroundColor: color || 'rgba(0, 0, 0, 0.2)',
159
+ backdropFilter: blur ? `blur(${'number' == typeof blur ? blur : 4}px)` : 'none'
160
+ }));
161
+ const StyledModal = styled(Modal)({
162
+ outline: 'none'
163
+ });
164
+ const StyledDialog = styled(Dialog)({
165
+ outline: 'none'
166
+ });
167
+ const components_Dialog = Dialog_Dialog;
168
+ export { components_Dialog as default };
@@ -9,6 +9,14 @@ const Icon = ({ name, svg, external, size, width, height, color, hoverColor, poi
9
9
  let SvgComponent = null;
10
10
  let svgContent = null;
11
11
  let WrappedIconComponent = null;
12
+ const iconSizes = {
13
+ tiny: 12,
14
+ small: 18,
15
+ medium: 24,
16
+ large: 40
17
+ };
18
+ let iconSize = 'number' == typeof size ? size : iconSizes.medium;
19
+ if ('tiny' === size || 'small' === size || 'medium' === size || 'large' === size) iconSize = iconSizes[size];
12
20
  if (name) {
13
21
  if (name in customIcons) SvgComponent = customIcons[name];
14
22
  else if (name in icons) WrappedIconComponent = icons[name];
@@ -16,19 +24,11 @@ const Icon = ({ name, svg, external, size, width, height, color, hoverColor, poi
16
24
  let element = svg;
17
25
  if ('function' == typeof svg) element = svg();
18
26
  const clonedSvg = /*#__PURE__*/ cloneElement(element, {
19
- width: width || size,
20
- height: height || size
27
+ width: width || iconSize,
28
+ height: height || iconSize
21
29
  });
22
30
  svgContent = clonedSvg;
23
31
  }
24
- const iconSizes = {
25
- tiny: 12,
26
- small: 18,
27
- medium: 24,
28
- large: 40
29
- };
30
- let iconSize = 'number' == typeof size ? size : iconSizes.medium;
31
- if ('tiny' === size || 'small' === size || 'medium' === size || 'large' === size) iconSize = iconSizes[size];
32
32
  if (external) return /*#__PURE__*/ jsx(DynamicIcon, {
33
33
  ...props,
34
34
  name: external,
@@ -32,6 +32,7 @@ declare const icons: {
32
32
  readonly clapperboard: ComponentType<WrappedIconProps>;
33
33
  readonly close: ComponentType<WrappedIconProps>;
34
34
  readonly 'close-circle': ComponentType<WrappedIconProps>;
35
+ readonly compose: ComponentType<WrappedIconProps>;
35
36
  readonly copy: ComponentType<WrappedIconProps>;
36
37
  readonly 'copy-check': ComponentType<WrappedIconProps>;
37
38
  readonly 'copy-plus': ComponentType<WrappedIconProps>;
@@ -86,6 +87,8 @@ declare const icons: {
86
87
  readonly loading: ComponentType<WrappedIconProps>;
87
88
  readonly 'local-area': ComponentType<WrappedIconProps>;
88
89
  readonly location: ComponentType<WrappedIconProps>;
90
+ readonly lock: ComponentType<WrappedIconProps>;
91
+ readonly 'lock-open': ComponentType<WrappedIconProps>;
89
92
  readonly logout: ComponentType<WrappedIconProps>;
90
93
  readonly maximize: ComponentType<WrappedIconProps>;
91
94
  readonly menu: ComponentType<WrappedIconProps>;
@@ -104,6 +107,8 @@ declare const icons: {
104
107
  readonly 'pause-circle': ComponentType<WrappedIconProps>;
105
108
  readonly person: ComponentType<WrappedIconProps>;
106
109
  readonly 'person-add': ComponentType<WrappedIconProps>;
110
+ readonly pin: ComponentType<WrappedIconProps>;
111
+ readonly 'pin-off': ComponentType<WrappedIconProps>;
107
112
  readonly play: ComponentType<WrappedIconProps>;
108
113
  readonly 'play-circle': ComponentType<WrappedIconProps>;
109
114
  readonly priority: ComponentType<WrappedIconProps>;
@@ -113,6 +118,7 @@ declare const icons: {
113
118
  readonly rocket: ComponentType<WrappedIconProps>;
114
119
  readonly schedule: ComponentType<WrappedIconProps>;
115
120
  readonly search: ComponentType<WrappedIconProps>;
121
+ readonly send: ComponentType<WrappedIconProps>;
116
122
  readonly settings: ComponentType<WrappedIconProps>;
117
123
  readonly share: ComponentType<WrappedIconProps>;
118
124
  readonly 'share-arrow': ComponentType<WrappedIconProps>;
@@ -1,4 +1,4 @@
1
- import { ArrowDown, ArrowDownWideNarrow, ArrowLeft, ArrowRight, ArrowRightLeft, ArrowUp, ArrowUpWideNarrow, BadgeCheck, Ban, Bell, BellDot, Bold, Bot, Braces, Bug, CalendarDays, Camera, ChartColumn, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, ChevronsLeft, ChevronsRight, ChevronsUpDown, Circle, CircleAlert, CircleCheck, CirclePause, CirclePlay, CirclePlus, CircleQuestionMark, CircleStop, CircleUserRound, CircleX, Clapperboard, Clock, Copy, CopyCheck, CopyPlus, CreditCard, Download, Ear, EllipsisVertical, ExternalLink, Eye, EyeOff, Facebook, FileText, Flag, FlaskConical, Frown, Funnel, Globe, GripVertical, Hash, Heading, Heading1, Heading2, Heading3, Heading4, Heading5, Heading6, Headset, Heart, Highlighter, Hourglass, House, IdCard, Info, Instagram, Italic, Kanban, Layers2, LayoutDashboard, Lightbulb, Link, Linkedin, List, ListChecks, ListFilter, ListOrdered, ListTodo, Loader, LogIn, LogOut, MapPin, MapPinned, Maximize2, Meh, Menu, Merge, MessageSquareMore, Mic, MicOff, Minimize2, Minus, MonitorSmartphone, NotebookPen, Paperclip, Pause, Pencil, Pilcrow, Play, Plus, Redo, RefreshCcwDot, RefreshCw, Rocket, RotateCw, Search, Settings, Share, Share2, Shield, ShieldCheck, ShieldOff, ShieldPlus, ShoppingCart, Smartphone, Smile, Sparkles, Square, SquareStack, Star, Strikethrough, TextQuote, Trash2, TriangleAlert, Trophy, Underline, Undo, Upload, UserRound, UserRoundPlus, Users, Video, Voicemail, Volume2, X, Youtube } from "lucide-react";
1
+ import { ArrowDown, ArrowDownWideNarrow, ArrowLeft, ArrowRight, ArrowRightLeft, ArrowUp, ArrowUpWideNarrow, BadgeCheck, Ban, Bell, BellDot, Bold, Bot, Braces, Bug, CalendarDays, Camera, ChartColumn, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, ChevronsLeft, ChevronsRight, ChevronsUpDown, Circle, CircleAlert, CircleCheck, CirclePause, CirclePlay, CirclePlus, CircleQuestionMark, CircleStop, CircleUserRound, CircleX, Clapperboard, Clock, Copy, CopyCheck, CopyPlus, CreditCard, Download, Ear, EllipsisVertical, ExternalLink, Eye, EyeOff, Facebook, FileText, Flag, FlaskConical, Frown, Funnel, Globe, GripVertical, Hash, Heading, Heading1, Heading2, Heading3, Heading4, Heading5, Heading6, Headset, Heart, Highlighter, Hourglass, House, IdCard, Info, Instagram, Italic, Kanban, Layers2, LayoutDashboard, Lightbulb, Link, Linkedin, List, ListChecks, ListFilter, ListOrdered, ListTodo, Loader, LockKeyhole, LockKeyholeOpen, LogIn, LogOut, MapPin, MapPinned, Maximize2, Meh, Menu, Merge, MessageSquareMore, Mic, MicOff, Minimize2, Minus, MonitorSmartphone, NotebookPen, Paperclip, Pause, Pencil, Pilcrow, Pin, PinOff, Play, Plus, Redo, RefreshCcwDot, RefreshCw, Rocket, RotateCw, Search, Send, Settings, Share, Share2, Shield, ShieldCheck, ShieldOff, ShieldPlus, ShoppingCart, Smartphone, Smile, Sparkles, Square, SquarePen, SquareStack, Star, Strikethrough, TextQuote, Trash2, TriangleAlert, Trophy, Underline, Undo, Upload, UserRound, UserRoundPlus, Users, Video, Voicemail, Volume2, X, Youtube } from "lucide-react";
2
2
  import createWrappedIcon from "./createWrappedIcon.js";
3
3
  const icons = {
4
4
  'activity-history': createWrappedIcon(IdCard),
@@ -32,6 +32,7 @@ const icons = {
32
32
  clapperboard: createWrappedIcon(Clapperboard),
33
33
  close: createWrappedIcon(X),
34
34
  'close-circle': createWrappedIcon(CircleX),
35
+ compose: createWrappedIcon(SquarePen),
35
36
  copy: createWrappedIcon(Copy),
36
37
  'copy-check': createWrappedIcon(CopyCheck),
37
38
  'copy-plus': createWrappedIcon(CopyPlus),
@@ -86,6 +87,8 @@ const icons = {
86
87
  loading: createWrappedIcon(Loader),
87
88
  'local-area': createWrappedIcon(MapPinned),
88
89
  location: createWrappedIcon(MapPin),
90
+ lock: createWrappedIcon(LockKeyhole),
91
+ 'lock-open': createWrappedIcon(LockKeyholeOpen),
89
92
  logout: createWrappedIcon(LogOut),
90
93
  maximize: createWrappedIcon(Maximize2),
91
94
  menu: createWrappedIcon(Menu),
@@ -104,6 +107,8 @@ const icons = {
104
107
  'pause-circle': createWrappedIcon(CirclePause),
105
108
  person: createWrappedIcon(UserRound),
106
109
  'person-add': createWrappedIcon(UserRoundPlus),
110
+ pin: createWrappedIcon(Pin),
111
+ 'pin-off': createWrappedIcon(PinOff),
107
112
  play: createWrappedIcon(Play),
108
113
  'play-circle': createWrappedIcon(CirclePlay),
109
114
  priority: createWrappedIcon(ArrowUpWideNarrow),
@@ -113,6 +118,7 @@ const icons = {
113
118
  rocket: createWrappedIcon(Rocket),
114
119
  schedule: createWrappedIcon(Clock),
115
120
  search: createWrappedIcon(Search),
121
+ send: createWrappedIcon(Send),
116
122
  settings: createWrappedIcon(Settings),
117
123
  share: createWrappedIcon(Share2),
118
124
  'share-arrow': createWrappedIcon(Share),
@@ -1,5 +1,3 @@
1
- import type { ThemeProp } from '../types';
2
- declare const ListHeader: import("@emotion/styled").StyledComponent<import("react").HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLDivElement> & {
3
- theme?: import("@emotion/react").Theme;
4
- } & ThemeProp, {}, {}>;
5
- export default ListHeader;
1
+ import { GridListHeader as GridListHeaderBase } from 'react-aria-components';
2
+ declare const GridListHeader: typeof GridListHeaderBase;
3
+ export default GridListHeader;
@@ -1,6 +1,6 @@
1
1
  import styled from "@emotion/styled";
2
2
  import { GridListHeader } from "react-aria-components";
3
- const ListHeader = styled(GridListHeader)(({ theme })=>({
3
+ const GridListHeader_GridListHeader = styled(GridListHeader)(({ theme })=>({
4
4
  backgroundColor: theme.scale0,
5
5
  padding: '0 16px',
6
6
  color: theme.scale6,
@@ -10,5 +10,5 @@ const ListHeader = styled(GridListHeader)(({ theme })=>({
10
10
  backgroundColor: theme.scale0
11
11
  }
12
12
  }));
13
- const ListHelpers_GridListHeader = ListHeader;
13
+ const ListHelpers_GridListHeader = GridListHeader_GridListHeader;
14
14
  export { ListHelpers_GridListHeader as default };
@@ -1,5 +1,3 @@
1
- import type { ThemeProp } from '../types';
2
- declare const ListHeader: import("@emotion/styled").StyledComponent<import("react").HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLElement> & {
3
- theme?: import("@emotion/react").Theme;
4
- } & ThemeProp, {}, {}>;
1
+ import { Header } from 'react-aria-components';
2
+ declare const ListHeader: typeof Header;
5
3
  export default ListHeader;
@@ -178,17 +178,17 @@ declare const Table: {
178
178
  onFocusCapture?: import("react").FocusEventHandler<HTMLTableRowElement> | undefined;
179
179
  onBlur?: import("react").FocusEventHandler<HTMLTableRowElement> | undefined;
180
180
  onBlurCapture?: import("react").FocusEventHandler<HTMLTableRowElement> | undefined;
181
- onChangeCapture?: import("react").FormEventHandler<HTMLTableRowElement> | undefined;
181
+ onChangeCapture?: import("react").ChangeEventHandler<HTMLTableRowElement, Element> | undefined;
182
182
  onBeforeInput?: import("react").InputEventHandler<HTMLTableRowElement> | undefined;
183
- onBeforeInputCapture?: import("react").FormEventHandler<HTMLTableRowElement> | undefined;
184
- onInput?: import("react").FormEventHandler<HTMLTableRowElement> | undefined;
185
- onInputCapture?: import("react").FormEventHandler<HTMLTableRowElement> | undefined;
186
- onReset?: import("react").FormEventHandler<HTMLTableRowElement> | undefined;
187
- onResetCapture?: import("react").FormEventHandler<HTMLTableRowElement> | undefined;
188
- onSubmit?: import("react").FormEventHandler<HTMLTableRowElement> | undefined;
189
- onSubmitCapture?: import("react").FormEventHandler<HTMLTableRowElement> | undefined;
190
- onInvalid?: import("react").FormEventHandler<HTMLTableRowElement> | undefined;
191
- onInvalidCapture?: import("react").FormEventHandler<HTMLTableRowElement> | undefined;
183
+ onBeforeInputCapture?: import("react").InputEventHandler<HTMLTableRowElement> | undefined;
184
+ onInput?: import("react").InputEventHandler<HTMLTableRowElement> | undefined;
185
+ onInputCapture?: import("react").InputEventHandler<HTMLTableRowElement> | undefined;
186
+ onReset?: import("react").ReactEventHandler<HTMLTableRowElement> | undefined;
187
+ onResetCapture?: import("react").ReactEventHandler<HTMLTableRowElement> | undefined;
188
+ onSubmit?: import("react").SubmitEventHandler<HTMLTableRowElement> | undefined;
189
+ onSubmitCapture?: import("react").SubmitEventHandler<HTMLTableRowElement> | undefined;
190
+ onInvalid?: import("react").ReactEventHandler<HTMLTableRowElement> | undefined;
191
+ onInvalidCapture?: import("react").ReactEventHandler<HTMLTableRowElement> | undefined;
192
192
  onLoad?: import("react").ReactEventHandler<HTMLTableRowElement> | undefined;
193
193
  onLoadCapture?: import("react").ReactEventHandler<HTMLTableRowElement> | undefined;
194
194
  onError?: import("react").ReactEventHandler<HTMLTableRowElement> | undefined;
@@ -6,3 +6,14 @@ export declare const minWidthHeightProps: ({ minWidth, minHeight }: MinWidthHeig
6
6
  export declare const paddingProps: ({ padding, paddingTop, paddingBottom, paddingRight, paddingLeft, }: Padding) => CSSObject;
7
7
  export declare const marginProps: ({ margin, marginTop, marginBottom, marginRight, marginLeft }: Margin) => CSSObject;
8
8
  export declare const positionProps: ({ position, top, bottom, right, left }: Position) => CSSObject;
9
+ export declare const head1: () => CSSObject;
10
+ export declare const head2: () => CSSObject;
11
+ export declare const head3: () => CSSObject;
12
+ export declare const body1: () => CSSObject;
13
+ export declare const body1Medium: () => CSSObject;
14
+ export declare const body2: () => CSSObject;
15
+ export declare const body2Medium: () => CSSObject;
16
+ export declare const body3: () => CSSObject;
17
+ export declare const body3Medium: () => CSSObject;
18
+ export declare const body4: () => CSSObject;
19
+ export declare const body4Medium: () => CSSObject;
@@ -31,4 +31,59 @@ const positionProps = ({ position, top, bottom, right, left })=>({
31
31
  right,
32
32
  left
33
33
  });
34
- export { marginProps, maxWidthHeightProps, minWidthHeightProps, paddingProps, positionProps, widthHeightProps };
34
+ const head1 = ()=>({
35
+ fontSize: 28,
36
+ fontWeight: 500,
37
+ lineHeight: '33px'
38
+ });
39
+ const head2 = ()=>({
40
+ fontSize: 20,
41
+ fontWeight: 500,
42
+ lineHeight: '24px'
43
+ });
44
+ const head3 = ()=>({
45
+ fontSize: 18,
46
+ fontWeight: 400,
47
+ lineHeight: '22px'
48
+ });
49
+ const body1 = ()=>({
50
+ fontSize: 16,
51
+ fontWeight: 400,
52
+ lineHeight: '19px'
53
+ });
54
+ const body1Medium = ()=>({
55
+ fontSize: 16,
56
+ fontWeight: 500,
57
+ lineHeight: '19px'
58
+ });
59
+ const body2 = ()=>({
60
+ fontSize: 14,
61
+ fontWeight: 400,
62
+ lineHeight: '17px'
63
+ });
64
+ const body2Medium = ()=>({
65
+ fontSize: 14,
66
+ fontWeight: 500,
67
+ lineHeight: '17px'
68
+ });
69
+ const body3 = ()=>({
70
+ fontSize: 12,
71
+ fontWeight: 400,
72
+ lineHeight: '15px'
73
+ });
74
+ const body3Medium = ()=>({
75
+ fontSize: 12,
76
+ fontWeight: 500,
77
+ lineHeight: '15px'
78
+ });
79
+ const body4 = ()=>({
80
+ fontSize: 10,
81
+ fontWeight: 400,
82
+ lineHeight: '12px'
83
+ });
84
+ const body4Medium = ()=>({
85
+ fontSize: 10,
86
+ fontWeight: 500,
87
+ lineHeight: '12px'
88
+ });
89
+ export { body1, body1Medium, body2, body2Medium, body3, body3Medium, body4, body4Medium, head1, head2, head3, marginProps, maxWidthHeightProps, minWidthHeightProps, paddingProps, positionProps, widthHeightProps };
package/build/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export { default as Checkbox } from './components/Checkbox';
8
8
  export { default as Code } from './components/Code';
9
9
  export { default as ComboBox } from './components/ComboBox';
10
10
  export { default as CommandMenu } from './components/CommandMenu';
11
+ export { default as Dialog } from './components/Dialog';
11
12
  export { default as DocTable } from './components/DocTable';
12
13
  export { default as Dot } from './components/Dot';
13
14
  export { default as DraftEditor } from './components/DraftEditor';
package/build/index.js CHANGED
@@ -8,6 +8,7 @@ import Checkbox from "./components/Checkbox.js";
8
8
  import Code from "./components/Code/index.js";
9
9
  import ComboBox from "./components/ComboBox.js";
10
10
  import CommandMenu from "./components/CommandMenu/index.js";
11
+ import Dialog from "./components/Dialog.js";
11
12
  import DocTable from "./components/DocTable.js";
12
13
  import Dot from "./components/Dot.js";
13
14
  import DraftEditor from "./components/DraftEditor.js";
@@ -82,4 +83,4 @@ import formatDate from "./utils/formatDate.js";
82
83
  import formatNumber from "./utils/formatNumber.js";
83
84
  import numberWithCommas from "./utils/numberWithCommas.js";
84
85
  import matchesFileTypes from "./utils/matchesFileTypes.js";
85
- export { Accordion, Audio, Avatar, 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, PaymentLogo, 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 };
86
+ export { Accordion, Audio, Avatar, BarChart, Button, Calendar, Checkbox, Code, ComboBox, CommandMenu, DatePicker, DateRangePicker, DateRangeSelect, Dialog, 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, PaymentLogo, 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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavv/ui",
3
- "version": "2.4.3",
3
+ "version": "2.4.4-alpha.10",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -28,62 +28,62 @@
28
28
  "author": "Raleigh Wayland",
29
29
  "license": "MIT",
30
30
  "dependencies": {
31
- "@emotion/styled": "^11.14.1",
32
- "@internationalized/date": "3.10.1",
33
- "@react-hook/resize-observer": "^2.0.2",
34
- "@tiptap/core": "^3.15.3",
35
- "@tiptap/extension-character-count": "^3.15.3",
36
- "@tiptap/extension-highlight": "^3.15.3",
37
- "@tiptap/extension-placeholder": "^3.15.3",
38
- "@tiptap/extension-task-item": "^3.15.3",
39
- "@tiptap/extension-task-list": "^3.15.3",
40
- "@tiptap/markdown": "^3.15.3",
41
- "@tiptap/pm": "^3.15.3",
42
- "@tiptap/react": "^3.15.3",
43
- "@tiptap/starter-kit": "^3.15.3",
44
- "cmdk": "^1.1.1",
45
- "date-fns": "^4.1.0",
46
- "draft-js": "^0.11.7",
47
- "es-toolkit": "^1.44.0",
48
- "libphonenumber-js": "^1.12.34",
49
- "lucide-react": "^0.562.0",
50
- "polished": "^4.1.4",
51
- "prism-react-renderer": "^2.4.1",
52
- "react-aria": "3.45.0",
53
- "react-aria-components": "1.14.0",
54
- "react-keyed-flatten-children": "^5.1.1",
55
- "react-phone-input-auto-format": "^0.1.0",
56
- "recharts": "^3.6.0",
57
- "sanitize.css": "^13.0.0",
58
- "webfontloader": "^1.6.28"
31
+ "@emotion/styled": "11.14.1",
32
+ "@internationalized/date": "3.11.0",
33
+ "@react-hook/resize-observer": "2.0.2",
34
+ "@tiptap/core": "3.19.0",
35
+ "@tiptap/extension-character-count": "3.19.0",
36
+ "@tiptap/extension-highlight": "3.19.0",
37
+ "@tiptap/extension-placeholder": "3.19.0",
38
+ "@tiptap/extension-task-item": "3.19.0",
39
+ "@tiptap/extension-task-list": "3.19.0",
40
+ "@tiptap/markdown": "3.19.0",
41
+ "@tiptap/pm": "3.19.0",
42
+ "@tiptap/react": "3.19.0",
43
+ "@tiptap/starter-kit": "3.19.0",
44
+ "cmdk": "1.1.1",
45
+ "date-fns": "4.1.0",
46
+ "draft-js": "0.11.7",
47
+ "es-toolkit": "1.44.0",
48
+ "libphonenumber-js": "1.12.36",
49
+ "lucide-react": "0.563.0",
50
+ "polished": "4.3.1",
51
+ "prism-react-renderer": "2.4.1",
52
+ "react-aria": "3.46.0",
53
+ "react-aria-components": "1.15.0",
54
+ "react-keyed-flatten-children": "5.1.1",
55
+ "react-phone-input-auto-format": "0.1.0",
56
+ "recharts": "3.7.0",
57
+ "sanitize.css": "13.0.0",
58
+ "webfontloader": "1.6.28"
59
59
  },
60
60
  "devDependencies": {
61
- "@babel/core": "^7.28.6",
62
- "@babel/preset-env": "^7.28.6",
61
+ "@babel/core": "^7.29.0",
62
+ "@babel/preset-env": "^7.29.0",
63
63
  "@babel/preset-typescript": "^7.28.5",
64
- "@biomejs/biome": "2.3.11",
64
+ "@biomejs/biome": "2.3.14",
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.7.2",
69
- "@rsbuild/plugin-react": "^1.4.3",
70
- "@rsbuild/plugin-svgr": "^1.2.4",
71
- "@rslib/core": "^0.19.2",
72
- "@storybook/addon-docs": "^10.1.11",
73
- "@storybook/addon-links": "^10.1.11",
74
- "@storybook/addon-themes": "^10.1.11",
68
+ "@rsbuild/core": "1.7.3",
69
+ "@rsbuild/plugin-react": "^1.4.5",
70
+ "@rsbuild/plugin-svgr": "^1.3.0",
71
+ "@rslib/core": "^0.19.5",
72
+ "@storybook/addon-docs": "^10.2.7",
73
+ "@storybook/addon-links": "^10.2.7",
74
+ "@storybook/addon-themes": "^10.2.7",
75
75
  "@storybook/test-runner": "^0.24.2",
76
76
  "@svgr/core": "^8.1.0",
77
77
  "@svgr/plugin-jsx": "^8.1.0",
78
78
  "@svgr/plugin-prettier": "^8.1.0",
79
- "@swc/plugin-emotion": "14.3.0",
79
+ "@swc/plugin-emotion": "14.5.0",
80
80
  "@types/draft-js": "^0.11.20",
81
81
  "@types/jest": "^30.0.0",
82
82
  "@types/ncp": "^2.0.8",
83
- "@types/node": "^25.0.9",
83
+ "@types/node": "^25.2.1",
84
84
  "@types/prompts": "^2.4.9",
85
85
  "@types/randomcolor": "^0.5.9",
86
- "@types/react": "^19.2.8",
86
+ "@types/react": "^19.2.13",
87
87
  "@types/react-dom": "^19.2.3",
88
88
  "@types/signale": "^1.4.7",
89
89
  "@types/webfontloader": "^1.6.38",
@@ -91,20 +91,20 @@
91
91
  "change-case": "^5.4.4",
92
92
  "chromatic": "^13.3.5",
93
93
  "jest": "^30.2.0",
94
- "lefthook": "^2.0.15",
94
+ "lefthook": "^2.1.0",
95
95
  "ncp": "^2.0.0",
96
96
  "path": "^0.12.7",
97
- "phone": "^3.1.69",
98
- "playwright": "^1.57.0",
97
+ "phone": "^3.1.70",
98
+ "playwright": "^1.58.1",
99
99
  "postcss": "^8.5.6",
100
- "prettier": "^3.8.0",
100
+ "prettier": "^3.8.1",
101
101
  "prompts": "^2.4.2",
102
102
  "randomcolor": "^0.6.2",
103
- "react": "^19.2.3",
104
- "react-dom": "^19.2.3",
103
+ "react": "^19.2.4",
104
+ "react-dom": "^19.2.4",
105
105
  "replace": "^1.2.2",
106
106
  "signale": "^1.4.0",
107
- "storybook": "^10.1.11",
107
+ "storybook": "^10.2.7",
108
108
  "storybook-react-rsbuild": "^3.2.2",
109
109
  "tsc-files": "^1.1.4",
110
110
  "tslib": "^2.8.1",