@rovula/ui 0.0.45 → 0.0.46

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.
@@ -356,3 +356,11 @@ export declare const WithAction: {
356
356
  args: {};
357
357
  render: (args: {}) => import("react/jsx-runtime").JSX.Element;
358
358
  };
359
+ export declare const Custom: {
360
+ args: {
361
+ onClose: import("@storybook/addon-actions").HandlerFunction;
362
+ };
363
+ render: (args: {
364
+ onClose?: (() => void) | undefined;
365
+ }) => import("react/jsx-runtime").JSX.Element;
366
+ };
@@ -1,3 +1,4 @@
1
+ import { ToastProviderProps } from "@radix-ui/react-toast";
1
2
  type ToasterProps = {
2
3
  viewportClassName?: string;
3
4
  titleClassName?: string;
@@ -6,5 +7,5 @@ type ToasterProps = {
6
7
  iconWrapperClassName?: string;
7
8
  actionWrapperClassName?: string;
8
9
  };
9
- export declare function Toaster({ viewportClassName, titleClassName, descriptionClassName, contentClassName, iconWrapperClassName, actionWrapperClassName, }: ToasterProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function Toaster({ viewportClassName, titleClassName, descriptionClassName, contentClassName, iconWrapperClassName, actionWrapperClassName, ...toastProviderProps }: ToasterProps & ToastProviderProps): import("react/jsx-runtime").JSX.Element;
10
11
  export {};
@@ -6,6 +6,7 @@ type ToasterToast = ToastProps & {
6
6
  description?: React.ReactNode;
7
7
  action?: ToastActionElement;
8
8
  contentMode?: "vertical" | "horizontal";
9
+ onClose?: () => void;
9
10
  };
10
11
  type ToasterPosition = "top-center" | "top-left" | "top-right" | "bottom-center" | "bottom-left" | "bottom-right" | undefined;
11
12
  declare const actionTypes: {
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect } from "react";
3
+ import { action } from "@storybook/addon-actions";
3
4
  import { Toast, ToastAction } from "./Toast";
4
5
  import { Toaster } from "./Toaster";
5
6
  import { useToast } from "./useToast";
@@ -80,3 +81,21 @@ export const WithAction = {
80
81
  }, children: "Show Toast" })] }));
81
82
  },
82
83
  };
84
+ export const Custom = {
85
+ args: {
86
+ onClose: action("Close Naja (*0_0*) "),
87
+ },
88
+ render: (args) => {
89
+ const props = Object.assign({}, args);
90
+ const { toast } = useToast();
91
+ return (_jsxs("div", { className: "flex flex-row gap-4 w-full", children: [_jsx(Toaster, { viewportClassName: "bg-red-100 -mt-[30px]", titleClassName: "text-red-500", descriptionClassName: "text-grey2-500", contentClassName: "bg-pink-100", iconWrapperClassName: "border-info border-2", actionWrapperClassName: "bg-green-500", duration: 3000 }), _jsx(Button, { onClick: () => {
92
+ toast({
93
+ title: "Uh oh! Something went wrong.",
94
+ description: "There was a problem with your request.",
95
+ action: (_jsx(ToastAction, { altText: "Try again", onClick: () => alert("My action"), children: "Try again" })),
96
+ duration: 1000,
97
+ onClose: props.onClose,
98
+ });
99
+ }, children: "Show Toast" })] }));
100
+ },
101
+ };
@@ -16,10 +16,11 @@ import { useToast } from "./useToast";
16
16
  import Icon from "../Icon/Icon";
17
17
  import { toastContentVariants, toastIconVariants } from "./Toast.styles";
18
18
  import { cn } from "@/utils/cn";
19
- export function Toaster({ viewportClassName, titleClassName, descriptionClassName, contentClassName, iconWrapperClassName, actionWrapperClassName, }) {
19
+ export function Toaster(_a) {
20
+ var { viewportClassName, titleClassName, descriptionClassName, contentClassName, iconWrapperClassName, actionWrapperClassName } = _a, toastProviderProps = __rest(_a, ["viewportClassName", "titleClassName", "descriptionClassName", "contentClassName", "iconWrapperClassName", "actionWrapperClassName"]);
20
21
  const { toasts, position } = useToast();
21
- return (_jsxs(ToastProvider, { children: [toasts.map(function (_a) {
22
+ return (_jsxs(ToastProvider, Object.assign({}, toastProviderProps, { children: [toasts.map(function (_a) {
22
23
  var { id, title, description, action, contentMode = "horizontal" } = _a, props = __rest(_a, ["id", "title", "description", "action", "contentMode"]);
23
24
  return (_jsxs(Toast, Object.assign({}, props, { children: [_jsx("div", { className: cn(toastIconVariants({ variant: props.variant }), iconWrapperClassName), children: _jsx(Icon, { type: "heroicons", name: "check-circle", className: "size-6" }) }), _jsxs("div", { className: cn(toastContentVariants({ contentMode }), contentClassName), children: [title && (_jsx(ToastTitle, { className: titleClassName, children: title })), description && (_jsx(ToastDescription, { className: descriptionClassName, children: description }))] }), _jsx("div", { className: cn("self-center ml-[var(--spacing-spacing-xl)]", actionWrapperClassName), children: action }), _jsx(ToastClose, {})] }), id));
24
- }), _jsx(ToastViewport, { position: position, className: viewportClassName })] }));
25
+ }), _jsx(ToastViewport, { position: position, className: viewportClassName })] })));
25
26
  }
@@ -37,7 +37,7 @@ const addToRemoveQueue = (toastId) => {
37
37
  type: "REMOVE_TOAST",
38
38
  toastId: toastId,
39
39
  });
40
- }, TOAST_REMOVE_DELAY); // TODO
40
+ }, TOAST_REMOVE_DELAY);
41
41
  toastTimeouts.set(toastId, timeout);
42
42
  };
43
43
  export const reducer = (state, action) => {
@@ -89,8 +89,11 @@ function toast(_a) {
89
89
  dispatch({
90
90
  type: "ADD_TOAST",
91
91
  toast: Object.assign(Object.assign({}, props), { id, open: true, onOpenChange: (open) => {
92
- if (!open)
92
+ var _a;
93
+ if (!open) {
93
94
  dismiss();
95
+ (_a = props === null || props === void 0 ? void 0 : props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
96
+ }
94
97
  } }),
95
98
  });
96
99
  return {
@@ -671,6 +671,9 @@ input[type=number] {
671
671
  .-mr-2{
672
672
  margin-right: -0.5rem;
673
673
  }
674
+ .-mt-\[30px\]{
675
+ margin-top: -30px;
676
+ }
674
677
  .ml-2{
675
678
  margin-left: 0.5rem;
676
679
  }
@@ -1333,6 +1336,10 @@ input[type=number] {
1333
1336
  --tw-border-opacity: 1;
1334
1337
  border-color: color-mix(in srgb, var(--function-default-solid) calc(100% * var(--tw-border-opacity)), transparent);
1335
1338
  }
1339
+ .border-info{
1340
+ --tw-border-opacity: 1;
1341
+ border-color: color-mix(in srgb, var(--state-color-info-default) calc(100% * var(--tw-border-opacity)), transparent);
1342
+ }
1336
1343
  .border-info-stroke{
1337
1344
  --tw-border-opacity: 1;
1338
1345
  border-color: color-mix(in srgb, var(--state-color-info-stroke) calc(100% * var(--tw-border-opacity)), transparent);
@@ -1726,6 +1733,10 @@ input[type=number] {
1726
1733
  --tw-bg-opacity: 1;
1727
1734
  background-color: rgb(229 231 235 / var(--tw-bg-opacity));
1728
1735
  }
1736
+ .bg-green-500{
1737
+ --tw-bg-opacity: 1;
1738
+ background-color: rgb(34 197 94 / var(--tw-bg-opacity));
1739
+ }
1729
1740
  .bg-grey-10{
1730
1741
  --tw-bg-opacity: 1;
1731
1742
  background-color: color-mix(in srgb, var(--grey-grey-10) calc(100% * var(--tw-bg-opacity)), transparent);
@@ -1986,6 +1997,10 @@ input[type=number] {
1986
1997
  --tw-bg-opacity: 1;
1987
1998
  background-color: color-mix(in srgb, var(--input-color-label-bg) calc(100% * var(--tw-bg-opacity)), transparent);
1988
1999
  }
2000
+ .bg-pink-100{
2001
+ --tw-bg-opacity: 1;
2002
+ background-color: rgb(252 231 243 / var(--tw-bg-opacity));
2003
+ }
1989
2004
  .bg-primary{
1990
2005
  --tw-bg-opacity: 1;
1991
2006
  background-color: color-mix(in srgb, var(--state-color-primary-default) calc(100% * var(--tw-bg-opacity)), transparent);
@@ -2114,6 +2129,10 @@ input[type=number] {
2114
2129
  --tw-bg-opacity: 1;
2115
2130
  background-color: color-mix(in srgb, var(--main-transparency-primary-8) calc(100% * var(--tw-bg-opacity)), transparent);
2116
2131
  }
2132
+ .bg-red-100{
2133
+ --tw-bg-opacity: 1;
2134
+ background-color: rgb(254 226 226 / var(--tw-bg-opacity));
2135
+ }
2117
2136
  .bg-secondary{
2118
2137
  --tw-bg-opacity: 1;
2119
2138
  background-color: color-mix(in srgb, var(--state-color-secondary-default) calc(100% * var(--tw-bg-opacity)), transparent);
@@ -3262,6 +3281,10 @@ input[type=number] {
3262
3281
  --tw-text-opacity: 1;
3263
3282
  color: rgb(107 114 128 / var(--tw-text-opacity));
3264
3283
  }
3284
+ .text-grey2-500{
3285
+ --tw-text-opacity: 1;
3286
+ color: color-mix(in srgb, var(--grey2-grey2-500) calc(100% * var(--tw-text-opacity)), transparent);
3287
+ }
3265
3288
  .text-info{
3266
3289
  --tw-text-opacity: 1;
3267
3290
  color: color-mix(in srgb, var(--state-color-info-default) calc(100% * var(--tw-text-opacity)), transparent);
@@ -3289,6 +3312,10 @@ input[type=number] {
3289
3312
  --tw-text-opacity: 1;
3290
3313
  color: color-mix(in srgb, var(--state-color-primary-default) calc(100% * var(--tw-text-opacity)), transparent);
3291
3314
  }
3315
+ .text-red-500{
3316
+ --tw-text-opacity: 1;
3317
+ color: rgb(239 68 68 / var(--tw-text-opacity));
3318
+ }
3292
3319
  .text-secondary{
3293
3320
  --tw-text-opacity: 1;
3294
3321
  color: color-mix(in srgb, var(--state-color-secondary-default) calc(100% * var(--tw-text-opacity)), transparent);