@bigbinary/neeto-atoms 1.0.93 → 1.0.95
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/dist/{Combobox-BQ5wLjOU.js → Combobox-CKR_H-QS.js} +2 -2
- package/dist/{Combobox-BQ5wLjOU.js.map → Combobox-CKR_H-QS.js.map} +1 -1
- package/dist/{Select-ChcG9Sse.js → Select-Bc0D3byr.js} +2 -2
- package/dist/{Select-ChcG9Sse.js.map → Select-Bc0D3byr.js.map} +1 -1
- package/dist/{Toastr-DP7naHnr.js → Toastr-Cka6pudu.js} +116 -58
- package/dist/Toastr-Cka6pudu.js.map +1 -0
- package/dist/{TranslationProvider-BvRvUsPS.js → TranslationProvider-CtJI6HJ4.js} +5 -1
- package/dist/{TranslationProvider-BvRvUsPS.js.map → TranslationProvider-CtJI6HJ4.js.map} +1 -1
- package/dist/cjs/{Combobox-C3PiYYF-.js → Combobox-Dd2m0qal.js} +2 -2
- package/dist/cjs/{Combobox-C3PiYYF-.js.map → Combobox-Dd2m0qal.js.map} +1 -1
- package/dist/cjs/{Select-DA4PZAwd.js → Select-DVDECeJb.js} +2 -2
- package/dist/cjs/{Select-DA4PZAwd.js.map → Select-DVDECeJb.js.map} +1 -1
- package/dist/cjs/{Toastr-CgRy7bg-.js → Toastr-E0yLh_MW.js} +115 -57
- package/dist/cjs/Toastr-E0yLh_MW.js.map +1 -0
- package/dist/cjs/{TranslationProvider-Dh5_Fzzk.js → TranslationProvider-BgCNBYs8.js} +5 -1
- package/dist/cjs/{TranslationProvider-Dh5_Fzzk.js.map → TranslationProvider-BgCNBYs8.js.map} +1 -1
- package/dist/cjs/components/Select.js +2 -2
- package/dist/cjs/components/Toastr.js +3 -2
- package/dist/cjs/components/Toastr.js.map +1 -1
- package/dist/cjs/components/TranslationProvider.js +1 -1
- package/dist/cjs/components/index.js +4 -4
- package/dist/cjs/formik/Select.js +2 -2
- package/dist/cjs/formik/index.js +2 -2
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/primitives/Combobox.js +1 -1
- package/dist/cjs/primitives/Command.js +1 -1
- package/dist/cjs/primitives/Command.js.map +1 -1
- package/dist/cjs/primitives/index.js +1 -1
- package/dist/components/Select.js +2 -2
- package/dist/components/Toastr/Toastr.d.ts +2 -0
- package/dist/components/Toastr/ToastrBody.d.ts +4 -2
- package/dist/components/Toastr/utils.d.ts +2 -1
- package/dist/components/Toastr.js +3 -2
- package/dist/components/Toastr.js.map +1 -1
- package/dist/components/TranslationProvider.js +1 -1
- package/dist/components/index.js +4 -4
- package/dist/formik/Select.js +2 -2
- package/dist/formik/index.js +2 -2
- package/dist/index.js +4 -4
- package/dist/primitives/Combobox.js +1 -1
- package/dist/primitives/Command.js +1 -1
- package/dist/primitives/Command.js.map +1 -1
- package/dist/primitives/index.js +1 -1
- package/dist/translations/index.d.ts +4 -0
- package/package.json +1 -1
- package/dist/Toastr-DP7naHnr.js.map +0 -1
- package/dist/cjs/Toastr-CgRy7bg-.js.map +0 -1
|
@@ -2,17 +2,92 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var index = require('./index-CPmGpPzg.js');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var reactI18next = require('react-i18next');
|
|
5
7
|
var utils = require('./utils-BhM0B89p.js');
|
|
8
|
+
var i18n = require('i18next');
|
|
6
9
|
var triangleAlert = require('./triangle-alert-CC-cck8p.js');
|
|
7
10
|
var info = require('./info-DGfDptn1.js');
|
|
8
11
|
var x = require('./x-Brw3FJst.js');
|
|
9
|
-
var i18n = require('i18next');
|
|
10
|
-
var React = require('react');
|
|
11
12
|
|
|
12
13
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
14
|
|
|
14
15
|
var i18n__default = /*#__PURE__*/_interopDefault(i18n);
|
|
15
16
|
|
|
17
|
+
const activeToasts = /* @__PURE__ */ new Set();
|
|
18
|
+
function toastKey(type, message, buttonLabel) {
|
|
19
|
+
if (typeof message !== "string") return null;
|
|
20
|
+
return `${type}::${message}::${buttonLabel ?? ""}`;
|
|
21
|
+
}
|
|
22
|
+
function getContentDir() {
|
|
23
|
+
if (typeof document === "undefined") return "ltr";
|
|
24
|
+
return document.documentElement.getAttribute("dir") ?? document.body.getAttribute("dir") ?? "ltr";
|
|
25
|
+
}
|
|
26
|
+
function resolveMessage(message) {
|
|
27
|
+
if (typeof message === "string") return message;
|
|
28
|
+
if (React.isValidElement(message)) return message;
|
|
29
|
+
if (Array.isArray(message)) return message;
|
|
30
|
+
if (message && typeof message === "object") {
|
|
31
|
+
const obj = message;
|
|
32
|
+
if (obj.customMessage) return obj.customMessage;
|
|
33
|
+
if (obj.notice) return obj.notice;
|
|
34
|
+
if (obj.noticeCode) return i18n__default.default.t(obj.noticeCode);
|
|
35
|
+
}
|
|
36
|
+
return String(message);
|
|
37
|
+
}
|
|
38
|
+
function resolveErrorMessage(errorObject) {
|
|
39
|
+
if (typeof errorObject === "string") return errorObject;
|
|
40
|
+
if (errorObject && typeof errorObject === "object") {
|
|
41
|
+
const axiosLike = errorObject;
|
|
42
|
+
if (axiosLike.response?.data) {
|
|
43
|
+
const data = axiosLike.response.data;
|
|
44
|
+
if (data.customMessage) return String(data.customMessage);
|
|
45
|
+
if (data.error) return String(data.error);
|
|
46
|
+
if (Array.isArray(data.errors)) return data.errors.join("\n");
|
|
47
|
+
if (data.noticeCode) return String(data.noticeCode);
|
|
48
|
+
}
|
|
49
|
+
if (axiosLike.isAxiosError && axiosLike.message) return axiosLike.message;
|
|
50
|
+
if (errorObject instanceof Error) return errorObject.message;
|
|
51
|
+
return resolveMessage(errorObject);
|
|
52
|
+
}
|
|
53
|
+
return "Something went wrong.";
|
|
54
|
+
}
|
|
55
|
+
async function copyToClipboard(text) {
|
|
56
|
+
try {
|
|
57
|
+
await navigator.clipboard.writeText(text);
|
|
58
|
+
return true;
|
|
59
|
+
} catch {
|
|
60
|
+
try {
|
|
61
|
+
const textArea = document.createElement("textarea");
|
|
62
|
+
textArea.value = text;
|
|
63
|
+
textArea.style.position = "fixed";
|
|
64
|
+
textArea.style.opacity = "0";
|
|
65
|
+
document.body.appendChild(textArea);
|
|
66
|
+
textArea.focus();
|
|
67
|
+
textArea.select();
|
|
68
|
+
const isCopied = document.execCommand("copy");
|
|
69
|
+
textArea.remove();
|
|
70
|
+
return isCopied;
|
|
71
|
+
} catch {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function parseConfig(args) {
|
|
77
|
+
if (args.length === 0) return {};
|
|
78
|
+
const first = args[0];
|
|
79
|
+
if (typeof first === "object" && first !== null && !Array.isArray(first)) {
|
|
80
|
+
return first;
|
|
81
|
+
}
|
|
82
|
+
const [buttonLabel, onClick, customConfig, showIcon] = args;
|
|
83
|
+
return {
|
|
84
|
+
...buttonLabel ? { buttonLabel } : {},
|
|
85
|
+
...onClick ? { onClick } : {},
|
|
86
|
+
...showIcon !== void 0 ? { showIcon } : {},
|
|
87
|
+
...customConfig ?? {}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
16
91
|
const ICONS = {
|
|
17
92
|
success: index.CircleCheck,
|
|
18
93
|
info: info.Info,
|
|
@@ -25,9 +100,11 @@ const VARIANT_CLASSES = {
|
|
|
25
100
|
warning: "bg-warning-solid text-warning-solid-foreground border-warning-solid/30",
|
|
26
101
|
info: "bg-info-solid text-info-solid-foreground border-info-solid/30"
|
|
27
102
|
};
|
|
103
|
+
const COPIED_FEEDBACK_DURATION_MS = 2e3;
|
|
28
104
|
const ToastrBody = ({
|
|
29
105
|
type,
|
|
30
106
|
message,
|
|
107
|
+
copyableMessage,
|
|
31
108
|
showIcon = true,
|
|
32
109
|
dismissible = true,
|
|
33
110
|
buttonLabel,
|
|
@@ -35,6 +112,21 @@ const ToastrBody = ({
|
|
|
35
112
|
onDismiss
|
|
36
113
|
}) => {
|
|
37
114
|
const Icon = ICONS[type];
|
|
115
|
+
const { t } = reactI18next.useTranslation();
|
|
116
|
+
const [isCopied, setIsCopied] = React.useState(false);
|
|
117
|
+
const copiedTimeoutRef = React.useRef(
|
|
118
|
+
void 0
|
|
119
|
+
);
|
|
120
|
+
React.useEffect(() => () => clearTimeout(copiedTimeoutRef.current), []);
|
|
121
|
+
const handleCopy = async () => {
|
|
122
|
+
if (!copyableMessage || !await copyToClipboard(copyableMessage)) return;
|
|
123
|
+
setIsCopied(true);
|
|
124
|
+
clearTimeout(copiedTimeoutRef.current);
|
|
125
|
+
copiedTimeoutRef.current = setTimeout(
|
|
126
|
+
() => setIsCopied(false),
|
|
127
|
+
COPIED_FEEDBACK_DURATION_MS
|
|
128
|
+
);
|
|
129
|
+
};
|
|
38
130
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
39
131
|
"div",
|
|
40
132
|
{
|
|
@@ -46,7 +138,22 @@ const ToastrBody = ({
|
|
|
46
138
|
),
|
|
47
139
|
children: [
|
|
48
140
|
showIcon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { "aria-hidden": true, className: "size-4 shrink-0" }),
|
|
49
|
-
/* @__PURE__ */ jsxRuntime.
|
|
141
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex-1", children: [
|
|
142
|
+
message,
|
|
143
|
+
copyableMessage && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
144
|
+
" ",
|
|
145
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
146
|
+
"button",
|
|
147
|
+
{
|
|
148
|
+
type: "button",
|
|
149
|
+
"data-testid": `toastr-${type}-copy-button`,
|
|
150
|
+
className: "text-xs italic underline-offset-2 opacity-80 transition-opacity hover:underline hover:opacity-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2",
|
|
151
|
+
onClick: handleCopy,
|
|
152
|
+
children: isCopied ? t("neetoatoms.toastr.copied", "Copied!") : t("neetoatoms.toastr.copyMessage", "Copy this error message")
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
] })
|
|
156
|
+
] }),
|
|
50
157
|
buttonLabel && /* @__PURE__ */ jsxRuntime.jsx(
|
|
51
158
|
"button",
|
|
52
159
|
{
|
|
@@ -73,65 +180,13 @@ const ToastrBody = ({
|
|
|
73
180
|
);
|
|
74
181
|
};
|
|
75
182
|
|
|
76
|
-
const activeToasts = /* @__PURE__ */ new Set();
|
|
77
|
-
function toastKey(type, message, buttonLabel) {
|
|
78
|
-
if (typeof message !== "string") return null;
|
|
79
|
-
return `${type}::${message}::${buttonLabel ?? ""}`;
|
|
80
|
-
}
|
|
81
|
-
function getContentDir() {
|
|
82
|
-
if (typeof document === "undefined") return "ltr";
|
|
83
|
-
return document.documentElement.getAttribute("dir") ?? document.body.getAttribute("dir") ?? "ltr";
|
|
84
|
-
}
|
|
85
|
-
function resolveMessage(message) {
|
|
86
|
-
if (typeof message === "string") return message;
|
|
87
|
-
if (React.isValidElement(message)) return message;
|
|
88
|
-
if (Array.isArray(message)) return message;
|
|
89
|
-
if (message && typeof message === "object") {
|
|
90
|
-
const obj = message;
|
|
91
|
-
if (obj.customMessage) return obj.customMessage;
|
|
92
|
-
if (obj.notice) return obj.notice;
|
|
93
|
-
if (obj.noticeCode) return i18n__default.default.t(obj.noticeCode);
|
|
94
|
-
}
|
|
95
|
-
return String(message);
|
|
96
|
-
}
|
|
97
|
-
function resolveErrorMessage(errorObject) {
|
|
98
|
-
if (typeof errorObject === "string") return errorObject;
|
|
99
|
-
if (errorObject && typeof errorObject === "object") {
|
|
100
|
-
const axiosLike = errorObject;
|
|
101
|
-
if (axiosLike.response?.data) {
|
|
102
|
-
const data = axiosLike.response.data;
|
|
103
|
-
if (data.customMessage) return String(data.customMessage);
|
|
104
|
-
if (data.error) return String(data.error);
|
|
105
|
-
if (Array.isArray(data.errors)) return data.errors.join("\n");
|
|
106
|
-
if (data.noticeCode) return String(data.noticeCode);
|
|
107
|
-
}
|
|
108
|
-
if (axiosLike.isAxiosError && axiosLike.message) return axiosLike.message;
|
|
109
|
-
if (errorObject instanceof Error) return errorObject.message;
|
|
110
|
-
return resolveMessage(errorObject);
|
|
111
|
-
}
|
|
112
|
-
return "Something went wrong.";
|
|
113
|
-
}
|
|
114
|
-
function parseConfig(args) {
|
|
115
|
-
if (args.length === 0) return {};
|
|
116
|
-
const first = args[0];
|
|
117
|
-
if (typeof first === "object" && first !== null && !Array.isArray(first)) {
|
|
118
|
-
return first;
|
|
119
|
-
}
|
|
120
|
-
const [buttonLabel, onClick, customConfig, showIcon] = args;
|
|
121
|
-
return {
|
|
122
|
-
...buttonLabel ? { buttonLabel } : {},
|
|
123
|
-
...onClick ? { onClick } : {},
|
|
124
|
-
...showIcon !== void 0 ? { showIcon } : {},
|
|
125
|
-
...customConfig ?? {}
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
|
|
129
183
|
function showToast(type, message, config) {
|
|
130
184
|
const {
|
|
131
185
|
buttonLabel,
|
|
132
186
|
onClick,
|
|
133
187
|
showIcon,
|
|
134
188
|
dismissible = true,
|
|
189
|
+
showCopyButton = true,
|
|
135
190
|
onDismiss: userOnDismiss,
|
|
136
191
|
onAutoClose: userOnAutoClose,
|
|
137
192
|
...restConfig
|
|
@@ -140,6 +195,7 @@ function showToast(type, message, config) {
|
|
|
140
195
|
if (key !== null && activeToasts.has(key)) return void 0;
|
|
141
196
|
if (key !== null) activeToasts.add(key);
|
|
142
197
|
const options = {
|
|
198
|
+
...type === "error" && { duration: Infinity },
|
|
143
199
|
...restConfig,
|
|
144
200
|
position: getContentDir() === "rtl" ? "bottom-right" : "bottom-left",
|
|
145
201
|
dismissible,
|
|
@@ -152,11 +208,13 @@ function showToast(type, message, config) {
|
|
|
152
208
|
userOnAutoClose?.(t);
|
|
153
209
|
}
|
|
154
210
|
};
|
|
211
|
+
const copyableMessage = showCopyButton && type === "error" && typeof message === "string" ? message : void 0;
|
|
155
212
|
return index.toast.custom(
|
|
156
213
|
(id) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
157
214
|
ToastrBody,
|
|
158
215
|
{
|
|
159
216
|
buttonLabel,
|
|
217
|
+
copyableMessage,
|
|
160
218
|
dismissible,
|
|
161
219
|
message,
|
|
162
220
|
showIcon,
|
|
@@ -194,4 +252,4 @@ const Toastr = {
|
|
|
194
252
|
};
|
|
195
253
|
|
|
196
254
|
exports.Toastr = Toastr;
|
|
197
|
-
//# sourceMappingURL=Toastr-
|
|
255
|
+
//# sourceMappingURL=Toastr-E0yLh_MW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toastr-E0yLh_MW.js","sources":["../../src/components/Toastr/utils.ts","../../src/components/Toastr/ToastrBody.tsx","../../src/components/Toastr/Toastr.tsx"],"sourcesContent":["import i18next from \"i18next\";\nimport { isValidElement, type ReactNode } from \"react\";\n\nimport type { ToastrConfig, ToastrErrorInput, ToastrMessage } from \"./Toastr\";\n\nconst activeToasts = new Set<string>();\n\nfunction toastKey(\n type: string,\n message: ReactNode,\n buttonLabel?: string\n): string | null {\n if (typeof message !== \"string\") return null;\n return `${type}::${message}::${buttonLabel ?? \"\"}`;\n}\n\nfunction getContentDir(): \"ltr\" | \"rtl\" {\n if (typeof document === \"undefined\") return \"ltr\";\n return (\n (document.documentElement.getAttribute(\"dir\") as \"ltr\" | \"rtl\") ??\n (document.body.getAttribute(\"dir\") as \"ltr\" | \"rtl\") ??\n \"ltr\"\n );\n}\n\nfunction resolveMessage(message: ToastrMessage): ReactNode {\n if (typeof message === \"string\") return message;\n if (isValidElement(message)) return message;\n // Arrays of ReactNodes (e.g. [<a/>, \" \", <b/>]) render natively via {message}.\n if (Array.isArray(message)) return message;\n if (message && typeof message === \"object\") {\n const obj = message as {\n noticeCode?: string;\n customMessage?: string;\n notice?: string;\n };\n if (obj.customMessage) return obj.customMessage;\n if (obj.notice) return obj.notice;\n if (obj.noticeCode) return i18next.t(obj.noticeCode);\n }\n return String(message);\n}\n\nfunction resolveErrorMessage(errorObject: ToastrErrorInput): ReactNode {\n if (typeof errorObject === \"string\") return errorObject;\n\n if (errorObject && typeof errorObject === \"object\") {\n // Axios-style error\n const axiosLike = errorObject as {\n response?: { data?: Record<string, unknown> };\n message?: string;\n isAxiosError?: boolean;\n };\n\n if (axiosLike.response?.data) {\n const data = axiosLike.response.data;\n if (data.customMessage) return String(data.customMessage);\n if (data.error) return String(data.error);\n if (Array.isArray(data.errors)) return data.errors.join(\"\\n\");\n if (data.noticeCode) return String(data.noticeCode);\n }\n\n if (axiosLike.isAxiosError && axiosLike.message) return axiosLike.message;\n\n // Native Error\n if (errorObject instanceof Error) return errorObject.message;\n\n // ToastrMessage (string, React element, array, or notice-shape object)\n return resolveMessage(errorObject as ToastrMessage);\n }\n\n return \"Something went wrong.\";\n}\n\nasync function copyToClipboard(text: string): Promise<boolean> {\n try {\n await navigator.clipboard.writeText(text);\n\n return true;\n } catch {\n // Clipboard API is unavailable in insecure contexts; fall back to execCommand.\n try {\n const textArea = document.createElement(\"textarea\");\n textArea.value = text;\n textArea.style.position = \"fixed\";\n textArea.style.opacity = \"0\";\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n const isCopied = document.execCommand(\"copy\");\n textArea.remove();\n\n return isCopied;\n } catch {\n return false;\n }\n }\n}\n\nfunction parseConfig(args: unknown[]): ToastrConfig {\n if (args.length === 0) return {};\n\n const first = args[0];\n if (typeof first === \"object\" && first !== null && !Array.isArray(first)) {\n return first as ToastrConfig;\n }\n\n // Legacy positional args: buttonLabel, onClick, customConfig, showIcon\n const [buttonLabel, onClick, customConfig, showIcon] = args as [\n string?,\n (() => void)?,\n Record<string, unknown>?,\n boolean?,\n ];\n\n return {\n ...(buttonLabel ? { buttonLabel } : {}),\n ...(onClick ? { onClick } : {}),\n ...(showIcon !== undefined ? { showIcon } : {}),\n ...(customConfig ?? {}),\n };\n}\n\nexport {\n activeToasts,\n copyToClipboard,\n getContentDir,\n parseConfig,\n resolveErrorMessage,\n resolveMessage,\n toastKey,\n};\n","import { useEffect, useRef, useState, type ReactNode } from \"react\";\nimport {\n CircleCheckIcon,\n InfoIcon,\n OctagonXIcon,\n TriangleAlertIcon,\n XIcon,\n type LucideIcon,\n} from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { copyToClipboard } from \"./utils\";\n\ntype ToastrType = \"success\" | \"info\" | \"warning\" | \"error\";\n\nconst ICONS: Record<ToastrType, LucideIcon> = {\n success: CircleCheckIcon,\n info: InfoIcon,\n warning: TriangleAlertIcon,\n error: OctagonXIcon,\n};\n\nconst VARIANT_CLASSES: Record<ToastrType, string> = {\n success:\n \"bg-success-solid text-success-solid-foreground border-success-solid/30\",\n error: \"bg-error-solid text-error-solid-foreground border-error-solid/30\",\n warning:\n \"bg-warning-solid text-warning-solid-foreground border-warning-solid/30\",\n info: \"bg-info-solid text-info-solid-foreground border-info-solid/30\",\n};\n\nexport interface ToastrBodyProps {\n type: ToastrType;\n message: ReactNode;\n /** Plain-text version of the message; renders a copy-to-clipboard affordance when set. */\n copyableMessage?: string;\n showIcon?: boolean;\n dismissible?: boolean;\n buttonLabel?: string;\n onAction?: () => void;\n onDismiss: () => void;\n}\n\nconst COPIED_FEEDBACK_DURATION_MS = 2000;\n\nconst ToastrBody = ({\n type,\n message,\n copyableMessage,\n showIcon = true,\n dismissible = true,\n buttonLabel,\n onAction,\n onDismiss,\n}: ToastrBodyProps) => {\n const Icon = ICONS[type];\n const { t } = useTranslation();\n const [isCopied, setIsCopied] = useState(false);\n const copiedTimeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(\n undefined\n );\n\n useEffect(() => () => clearTimeout(copiedTimeoutRef.current), []);\n\n const handleCopy = async () => {\n if (!copyableMessage || !(await copyToClipboard(copyableMessage))) return;\n\n setIsCopied(true);\n clearTimeout(copiedTimeoutRef.current);\n copiedTimeoutRef.current = setTimeout(\n () => setIsCopied(false),\n COPIED_FEEDBACK_DURATION_MS\n );\n };\n\n return (\n <div\n role={type === \"error\" || type === \"warning\" ? \"alert\" : \"status\"}\n data-testid={`toastr-${type}-container`}\n className={cn(\n \"flex w-full items-center gap-3 rounded-md border px-4 py-3 text-sm shadow-lg\",\n VARIANT_CLASSES[type]\n )}\n >\n {showIcon && <Icon aria-hidden className=\"size-4 shrink-0\" />}\n <span className=\"flex-1\">\n {message}\n {copyableMessage && (\n <>\n {\" \"}\n <button\n type=\"button\"\n data-testid={`toastr-${type}-copy-button`}\n className=\"text-xs italic underline-offset-2 opacity-80 transition-opacity hover:underline hover:opacity-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2\"\n onClick={handleCopy}\n >\n {isCopied\n ? t(\"neetoatoms.toastr.copied\", \"Copied!\")\n : t(\"neetoatoms.toastr.copyMessage\", \"Copy this error message\")}\n </button>\n </>\n )}\n </span>\n {buttonLabel && (\n <button\n type=\"button\"\n onClick={onAction}\n data-testid={`toastr-${type}-button`}\n className=\"shrink-0 text-sm font-medium underline-offset-2 hover:underline\"\n >\n {buttonLabel}\n </button>\n )}\n {dismissible && (\n <button\n type=\"button\"\n aria-label=\"Dismiss\"\n onClick={onDismiss}\n data-testid=\"toastr-close-button\"\n className=\"shrink-0 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2\"\n >\n <XIcon aria-hidden className=\"size-4\" />\n </button>\n )}\n </div>\n );\n};\n\nexport { ToastrBody };\n","import type { ReactNode } from \"react\";\nimport { toast } from \"sonner\";\n\nimport { ToastrBody } from \"./ToastrBody\";\nimport {\n activeToasts,\n getContentDir,\n parseConfig,\n resolveErrorMessage,\n resolveMessage,\n toastKey,\n} from \"./utils\";\n\nexport interface ToastrConfig {\n /** Label for an action button inside the toast. */\n buttonLabel?: string;\n /** Callback when the action button is clicked. */\n onClick?: () => void;\n /** Whether to show the type icon in the toast. */\n showIcon?: boolean;\n /** Whether the toast can be dismissed (shows X button + enables swipe). Defaults to true. */\n dismissible?: boolean;\n /** Whether to show the copy-to-clipboard affordance in error toasts. Defaults to true. */\n showCopyButton?: boolean;\n /** Additional sonner toast options (duration, position, etc.). */\n [key: string]: unknown;\n}\n\nexport type ToastrMessage =\n | ReactNode\n | { noticeCode?: string; customMessage?: string; notice?: string };\n\nexport type ToastrErrorInput =\n | string\n | Error\n | {\n response?: { data?: Record<string, unknown> };\n message?: string;\n isAxiosError?: boolean;\n }\n | ToastrMessage;\n\ntype SonnerType = \"success\" | \"info\" | \"warning\" | \"error\";\n\nfunction showToast(\n type: SonnerType,\n message: ReactNode,\n config?: ToastrConfig\n): string | number | undefined {\n const {\n buttonLabel,\n onClick,\n showIcon,\n dismissible = true,\n showCopyButton = true,\n onDismiss: userOnDismiss,\n onAutoClose: userOnAutoClose,\n ...restConfig\n } = config ?? {};\n\n const key = toastKey(type, message, buttonLabel);\n\n if (key !== null && activeToasts.has(key)) return undefined;\n if (key !== null) activeToasts.add(key);\n\n // Error toasts stay until dismissed so the message can be read and copied.\n const options: Record<string, unknown> = {\n ...(type === \"error\" && { duration: Infinity }),\n ...restConfig,\n position: getContentDir() === \"rtl\" ? \"bottom-right\" : \"bottom-left\",\n dismissible,\n onDismiss: (t: unknown) => {\n if (key !== null) activeToasts.delete(key);\n (userOnDismiss as ((t: unknown) => void) | undefined)?.(t);\n },\n onAutoClose: (t: unknown) => {\n if (key !== null) activeToasts.delete(key);\n (userOnAutoClose as ((t: unknown) => void) | undefined)?.(t);\n },\n };\n\n const copyableMessage =\n showCopyButton && type === \"error\" && typeof message === \"string\"\n ? message\n : undefined;\n\n return toast.custom(\n id => (\n <ToastrBody\n buttonLabel={buttonLabel}\n copyableMessage={copyableMessage}\n dismissible={dismissible}\n message={message}\n showIcon={showIcon}\n type={type}\n onAction={() => {\n try {\n onClick?.();\n } finally {\n toast.dismiss(id);\n }\n }}\n onDismiss={() => toast.dismiss(id)}\n />\n ),\n options\n );\n}\n\nconst Toastr = {\n success(message: ToastrMessage, ...args: unknown[]) {\n return showToast(\"success\", resolveMessage(message), parseConfig(args));\n },\n\n info(message: ToastrMessage, ...args: unknown[]) {\n return showToast(\"info\", resolveMessage(message), parseConfig(args));\n },\n\n show(message: ToastrMessage, ...args: unknown[]) {\n return showToast(\"info\", resolveMessage(message), parseConfig(args));\n },\n\n warning(message: ToastrMessage, ...args: unknown[]) {\n return showToast(\"warning\", resolveMessage(message), parseConfig(args));\n },\n\n error(errorObject: ToastrErrorInput, ...args: unknown[]) {\n const msg = resolveErrorMessage(errorObject);\n return showToast(\"error\", msg, parseConfig(args));\n },\n};\n\nexport { Toastr };\n"],"names":["isValidElement","i18next","CircleCheckIcon","InfoIcon","TriangleAlertIcon","OctagonXIcon","useTranslation","useState","useRef","useEffect","jsxs","cn","jsx","Fragment","XIcon","toast"],"mappings":";;;;;;;;;;;;;;;;AAKA,MAAM,YAAA,uBAAmB,GAAA,EAAY;AAErC,SAAS,QAAA,CACP,IAAA,EACA,OAAA,EACA,WAAA,EACe;AACf,EAAA,IAAI,OAAO,OAAA,KAAY,QAAA,EAAU,OAAO,IAAA;AACxC,EAAA,OAAO,GAAG,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,EAAA,EAAK,eAAe,EAAE,CAAA,CAAA;AAClD;AAEA,SAAS,aAAA,GAA+B;AACtC,EAAA,IAAI,OAAO,QAAA,KAAa,WAAA,EAAa,OAAO,KAAA;AAC5C,EAAA,OACG,QAAA,CAAS,gBAAgB,YAAA,CAAa,KAAK,KAC3C,QAAA,CAAS,IAAA,CAAK,YAAA,CAAa,KAAK,CAAA,IACjC,KAAA;AAEJ;AAEA,SAAS,eAAe,OAAA,EAAmC;AACzD,EAAA,IAAI,OAAO,OAAA,KAAY,QAAA,EAAU,OAAO,OAAA;AACxC,EAAA,IAAIA,oBAAA,CAAe,OAAO,CAAA,EAAG,OAAO,OAAA;AAEpC,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAG,OAAO,OAAA;AACnC,EAAA,IAAI,OAAA,IAAW,OAAO,OAAA,KAAY,QAAA,EAAU;AAC1C,IAAA,MAAM,GAAA,GAAM,OAAA;AAKZ,IAAA,IAAI,GAAA,CAAI,aAAA,EAAe,OAAO,GAAA,CAAI,aAAA;AAClC,IAAA,IAAI,GAAA,CAAI,MAAA,EAAQ,OAAO,GAAA,CAAI,MAAA;AAC3B,IAAA,IAAI,IAAI,UAAA,EAAY,OAAOC,qBAAA,CAAQ,CAAA,CAAE,IAAI,UAAU,CAAA;AAAA,EACrD;AACA,EAAA,OAAO,OAAO,OAAO,CAAA;AACvB;AAEA,SAAS,oBAAoB,WAAA,EAA0C;AACrE,EAAA,IAAI,OAAO,WAAA,KAAgB,QAAA,EAAU,OAAO,WAAA;AAE5C,EAAA,IAAI,WAAA,IAAe,OAAO,WAAA,KAAgB,QAAA,EAAU;AAElD,IAAA,MAAM,SAAA,GAAY,WAAA;AAMlB,IAAA,IAAI,SAAA,CAAU,UAAU,IAAA,EAAM;AAC5B,MAAA,MAAM,IAAA,GAAO,UAAU,QAAA,CAAS,IAAA;AAChC,MAAA,IAAI,IAAA,CAAK,aAAA,EAAe,OAAO,MAAA,CAAO,KAAK,aAAa,CAAA;AACxD,MAAA,IAAI,IAAA,CAAK,KAAA,EAAO,OAAO,MAAA,CAAO,KAAK,KAAK,CAAA;AACxC,MAAA,IAAI,KAAA,CAAM,QAAQ,IAAA,CAAK,MAAM,GAAG,OAAO,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AAC5D,MAAA,IAAI,IAAA,CAAK,UAAA,EAAY,OAAO,MAAA,CAAO,KAAK,UAAU,CAAA;AAAA,IACpD;AAEA,IAAA,IAAI,SAAA,CAAU,YAAA,IAAgB,SAAA,CAAU,OAAA,SAAgB,SAAA,CAAU,OAAA;AAGlE,IAAA,IAAI,WAAA,YAAuB,KAAA,EAAO,OAAO,WAAA,CAAY,OAAA;AAGrD,IAAA,OAAO,eAAe,WAA4B,CAAA;AAAA,EACpD;AAEA,EAAA,OAAO,uBAAA;AACT;AAEA,eAAe,gBAAgB,IAAA,EAAgC;AAC7D,EAAA,IAAI;AACF,IAAA,MAAM,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,IAAI,CAAA;AAExC,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,CAAA,MAAQ;AAEN,IAAA,IAAI;AACF,MAAA,MAAM,QAAA,GAAW,QAAA,CAAS,aAAA,CAAc,UAAU,CAAA;AAClD,MAAA,QAAA,CAAS,KAAA,GAAQ,IAAA;AACjB,MAAA,QAAA,CAAS,MAAM,QAAA,GAAW,OAAA;AAC1B,MAAA,QAAA,CAAS,MAAM,OAAA,GAAU,GAAA;AACzB,MAAA,QAAA,CAAS,IAAA,CAAK,YAAY,QAAQ,CAAA;AAClC,MAAA,QAAA,CAAS,KAAA,EAAM;AACf,MAAA,QAAA,CAAS,MAAA,EAAO;AAEhB,MAAA,MAAM,QAAA,GAAW,QAAA,CAAS,WAAA,CAAY,MAAM,CAAA;AAC5C,MAAA,QAAA,CAAS,MAAA,EAAO;AAEhB,MAAA,OAAO,QAAA;AAAA,IACT,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,EACF;AACF;AAEA,SAAS,YAAY,IAAA,EAA+B;AAClD,EAAA,IAAI,IAAA,CAAK,MAAA,KAAW,CAAA,EAAG,OAAO,EAAC;AAE/B,EAAA,MAAM,KAAA,GAAQ,KAAK,CAAC,CAAA;AACpB,EAAA,IAAI,OAAO,UAAU,QAAA,IAAY,KAAA,KAAU,QAAQ,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxE,IAAA,OAAO,KAAA;AAAA,EACT;AAGA,EAAA,MAAM,CAAC,WAAA,EAAa,OAAA,EAAS,YAAA,EAAc,QAAQ,CAAA,GAAI,IAAA;AAOvD,EAAA,OAAO;AAAA,IACL,GAAI,WAAA,GAAc,EAAE,WAAA,KAAgB,EAAC;AAAA,IACrC,GAAI,OAAA,GAAU,EAAE,OAAA,KAAY,EAAC;AAAA,IAC7B,GAAI,QAAA,KAAa,MAAA,GAAY,EAAE,QAAA,KAAa,EAAC;AAAA,IAC7C,GAAI,gBAAgB;AAAC,GACvB;AACF;;ACzGA,MAAM,KAAA,GAAwC;AAAA,EAC5C,OAAA,EAASC,iBAAA;AAAA,EACT,IAAA,EAAMC,SAAA;AAAA,EACN,OAAA,EAASC,2BAAA;AAAA,EACT,KAAA,EAAOC;AACT,CAAA;AAEA,MAAM,eAAA,GAA8C;AAAA,EAClD,OAAA,EACE,wEAAA;AAAA,EACF,KAAA,EAAO,kEAAA;AAAA,EACP,OAAA,EACE,wEAAA;AAAA,EACF,IAAA,EAAM;AACR,CAAA;AAcA,MAAM,2BAAA,GAA8B,GAAA;AAEpC,MAAM,aAAa,CAAC;AAAA,EAClB,IAAA;AAAA,EACA,OAAA;AAAA,EACA,eAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,WAAA,GAAc,IAAA;AAAA,EACd,WAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,KAAuB;AACrB,EAAA,MAAM,IAAA,GAAO,MAAM,IAAI,CAAA;AACvB,EAAA,MAAM,EAAE,CAAA,EAAE,GAAIC,2BAAA,EAAe;AAC7B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,eAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,gBAAA,GAAmBC,YAAA;AAAA,IACvB;AAAA,GACF;AAEA,EAAAC,eAAA,CAAU,MAAM,MAAM,YAAA,CAAa,iBAAiB,OAAO,CAAA,EAAG,EAAE,CAAA;AAEhE,EAAA,MAAM,aAAa,YAAY;AAC7B,IAAA,IAAI,CAAC,eAAA,IAAmB,CAAE,MAAM,eAAA,CAAgB,eAAe,CAAA,EAAI;AAEnE,IAAA,WAAA,CAAY,IAAI,CAAA;AAChB,IAAA,YAAA,CAAa,iBAAiB,OAAO,CAAA;AACrC,IAAA,gBAAA,CAAiB,OAAA,GAAU,UAAA;AAAA,MACzB,MAAM,YAAY,KAAK,CAAA;AAAA,MACvB;AAAA,KACF;AAAA,EACF,CAAA;AAEA,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,IAAA,KAAS,OAAA,IAAW,IAAA,KAAS,YAAY,OAAA,GAAU,QAAA;AAAA,MACzD,aAAA,EAAa,UAAU,IAAI,CAAA,UAAA,CAAA;AAAA,MAC3B,SAAA,EAAWC,QAAA;AAAA,QACT,8EAAA;AAAA,QACA,gBAAgB,IAAI;AAAA,OACtB;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,QAAA,oBAAYC,cAAA,CAAC,IAAA,EAAA,EAAK,aAAA,EAAW,IAAA,EAAC,WAAU,iBAAA,EAAkB,CAAA;AAAA,wBAC3DF,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EACb,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UACA,mCACCA,eAAA,CAAAG,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,YAAA,GAAA;AAAA,4BACDD,cAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,aAAA,EAAa,UAAU,IAAI,CAAA,YAAA,CAAA;AAAA,gBAC3B,SAAA,EAAU,gLAAA;AAAA,gBACV,OAAA,EAAS,UAAA;AAAA,gBAER,qBACG,CAAA,CAAE,0BAAA,EAA4B,SAAS,CAAA,GACvC,CAAA,CAAE,iCAAiC,yBAAyB;AAAA;AAAA;AAClE,WAAA,EACF;AAAA,SAAA,EAEJ,CAAA;AAAA,QACC,WAAA,oBACCA,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,QAAA;AAAA,YACT,aAAA,EAAa,UAAU,IAAI,CAAA,OAAA,CAAA;AAAA,YAC3B,SAAA,EAAU,iEAAA;AAAA,YAET,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QAED,WAAA,oBACCA,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,YAAA,EAAW,SAAA;AAAA,YACX,OAAA,EAAS,SAAA;AAAA,YACT,aAAA,EAAY,qBAAA;AAAA,YACZ,SAAA,EAAU,kJAAA;AAAA,YAEV,QAAA,kBAAAA,cAAA,CAACE,GAAA,EAAA,EAAM,aAAA,EAAW,IAAA,EAAC,WAAU,QAAA,EAAS;AAAA;AAAA;AACxC;AAAA;AAAA,GAEJ;AAEJ,CAAA;;ACpFA,SAAS,SAAA,CACP,IAAA,EACA,OAAA,EACA,MAAA,EAC6B;AAC7B,EAAA,MAAM;AAAA,IACJ,WAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA,GAAc,IAAA;AAAA,IACd,cAAA,GAAiB,IAAA;AAAA,IACjB,SAAA,EAAW,aAAA;AAAA,IACX,WAAA,EAAa,eAAA;AAAA,IACb,GAAG;AAAA,GACL,GAAI,UAAU,EAAC;AAEf,EAAA,MAAM,GAAA,GAAM,QAAA,CAAS,IAAA,EAAM,OAAA,EAAS,WAAW,CAAA;AAE/C,EAAA,IAAI,QAAQ,IAAA,IAAQ,YAAA,CAAa,GAAA,CAAI,GAAG,GAAG,OAAO,MAAA;AAClD,EAAA,IAAI,GAAA,KAAQ,IAAA,EAAM,YAAA,CAAa,GAAA,CAAI,GAAG,CAAA;AAGtC,EAAA,MAAM,OAAA,GAAmC;AAAA,IACvC,GAAI,IAAA,KAAS,OAAA,IAAW,EAAE,UAAU,QAAA,EAAS;AAAA,IAC7C,GAAG,UAAA;AAAA,IACH,QAAA,EAAU,aAAA,EAAc,KAAM,KAAA,GAAQ,cAAA,GAAiB,aAAA;AAAA,IACvD,WAAA;AAAA,IACA,SAAA,EAAW,CAAC,CAAA,KAAe;AACzB,MAAA,IAAI,GAAA,KAAQ,IAAA,EAAM,YAAA,CAAa,MAAA,CAAO,GAAG,CAAA;AACzC,MAAC,gBAAuD,CAAC,CAAA;AAAA,IAC3D,CAAA;AAAA,IACA,WAAA,EAAa,CAAC,CAAA,KAAe;AAC3B,MAAA,IAAI,GAAA,KAAQ,IAAA,EAAM,YAAA,CAAa,MAAA,CAAO,GAAG,CAAA;AACzC,MAAC,kBAAyD,CAAC,CAAA;AAAA,IAC7D;AAAA,GACF;AAEA,EAAA,MAAM,kBACJ,cAAA,IAAkB,IAAA,KAAS,WAAW,OAAO,OAAA,KAAY,WACrD,OAAA,GACA,MAAA;AAEN,EAAA,OAAOC,WAAA,CAAM,MAAA;AAAA,IACX,CAAA,EAAA,qBACEH,cAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,WAAA;AAAA,QACA,eAAA;AAAA,QACA,WAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,IAAA;AAAA,QACA,UAAU,MAAM;AACd,UAAA,IAAI;AACF,YAAA,OAAA,IAAU;AAAA,UACZ,CAAA,SAAE;AACA,YAAAG,WAAA,CAAM,QAAQ,EAAE,CAAA;AAAA,UAClB;AAAA,QACF,CAAA;AAAA,QACA,SAAA,EAAW,MAAMA,WAAA,CAAM,OAAA,CAAQ,EAAE;AAAA;AAAA,KACnC;AAAA,IAEF;AAAA,GACF;AACF;AAEA,MAAM,MAAA,GAAS;AAAA,EACb,OAAA,CAAQ,YAA2B,IAAA,EAAiB;AAClD,IAAA,OAAO,UAAU,SAAA,EAAW,cAAA,CAAe,OAAO,CAAA,EAAG,WAAA,CAAY,IAAI,CAAC,CAAA;AAAA,EACxE,CAAA;AAAA,EAEA,IAAA,CAAK,YAA2B,IAAA,EAAiB;AAC/C,IAAA,OAAO,UAAU,MAAA,EAAQ,cAAA,CAAe,OAAO,CAAA,EAAG,WAAA,CAAY,IAAI,CAAC,CAAA;AAAA,EACrE,CAAA;AAAA,EAEA,IAAA,CAAK,YAA2B,IAAA,EAAiB;AAC/C,IAAA,OAAO,UAAU,MAAA,EAAQ,cAAA,CAAe,OAAO,CAAA,EAAG,WAAA,CAAY,IAAI,CAAC,CAAA;AAAA,EACrE,CAAA;AAAA,EAEA,OAAA,CAAQ,YAA2B,IAAA,EAAiB;AAClD,IAAA,OAAO,UAAU,SAAA,EAAW,cAAA,CAAe,OAAO,CAAA,EAAG,WAAA,CAAY,IAAI,CAAC,CAAA;AAAA,EACxE,CAAA;AAAA,EAEA,KAAA,CAAM,gBAAkC,IAAA,EAAiB;AACvD,IAAA,MAAM,GAAA,GAAM,oBAAoB,WAAW,CAAA;AAC3C,IAAA,OAAO,SAAA,CAAU,OAAA,EAAS,GAAA,EAAK,WAAA,CAAY,IAAI,CAAC,CAAA;AAAA,EAClD;AACF;;;;"}
|
|
@@ -67,6 +67,10 @@ var neetoatoms = {
|
|
|
67
67
|
command: {
|
|
68
68
|
title: "Command Palette",
|
|
69
69
|
description: "Search for a command to run..."
|
|
70
|
+
},
|
|
71
|
+
toastr: {
|
|
72
|
+
copyMessage: "Copy this error message",
|
|
73
|
+
copied: "Copied!"
|
|
70
74
|
}
|
|
71
75
|
};
|
|
72
76
|
var enTranslations = {
|
|
@@ -103,4 +107,4 @@ TranslationProvider.displayName = "TranslationProvider";
|
|
|
103
107
|
|
|
104
108
|
exports.TranslationProvider = TranslationProvider;
|
|
105
109
|
exports.resources = resources;
|
|
106
|
-
//# sourceMappingURL=TranslationProvider-
|
|
110
|
+
//# sourceMappingURL=TranslationProvider-BgCNBYs8.js.map
|
package/dist/cjs/{TranslationProvider-Dh5_Fzzk.js.map → TranslationProvider-BgCNBYs8.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TranslationProvider-
|
|
1
|
+
{"version":3,"file":"TranslationProvider-BgCNBYs8.js","sources":["../../src/translations/index.ts","../../src/components/TranslationProvider/i18n.ts","../../src/components/TranslationProvider/TranslationProvider.tsx"],"sourcesContent":["import enTranslations from \"./en.json\";\n\nexport const resources = {\n en: { translation: enTranslations },\n};\n","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\n\nimport { resources } from \"src/translations\";\n\nexport const initializeI18n = (language = \"en\") => {\n i18n.use(initReactI18next).init({\n resources,\n lng: language,\n fallbackLng: \"en\",\n interpolation: { escapeValue: false },\n });\n\n return i18n;\n};\n","import { useEffect } from \"react\";\n\nimport { I18nextProvider } from \"react-i18next\";\n\nimport { initializeI18n } from \"./i18n\";\nimport type { TranslationProviderProps } from \"./types\";\n\nconst TranslationProvider = ({\n children,\n language = \"en\",\n}: TranslationProviderProps) => {\n const i18n = initializeI18n(language);\n\n useEffect(() => {\n if (i18n.language !== language) {\n i18n.changeLanguage(language);\n }\n }, [language, i18n]);\n\n return <I18nextProvider i18n={i18n}>{children}</I18nextProvider>;\n};\n\nTranslationProvider.displayName = \"TranslationProvider\";\n\nexport { TranslationProvider };\n"],"names":["i18n","initReactI18next","useEffect","jsx","I18nextProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,MAAM,SAAA,GAAY;AAAA,EACvB,EAAA,EAAI,EAAE,WAAA,EAAa,cAAA;AACrB;;ACCO,MAAM,cAAA,GAAiB,CAAC,QAAA,GAAW,IAAA,KAAS;AACjD,EAAAA,qBAAA,CAAK,GAAA,CAAIC,6BAAgB,CAAA,CAAE,IAAA,CAAK;AAAA,IAC9B,SAAA;AAAA,IACA,GAAA,EAAK,QAAA;AAAA,IACL,WAAA,EAAa,IAAA;AAAA,IACb,aAAA,EAAe,EAAE,WAAA,EAAa,KAAA;AAAM,GACrC,CAAA;AAED,EAAA,OAAOD,qBAAA;AACT,CAAA;;ACPA,MAAM,sBAAsB,CAAC;AAAA,EAC3B,QAAA;AAAA,EACA,QAAA,GAAW;AACb,CAAA,KAAgC;AAC9B,EAAA,MAAM,IAAA,GAAO,eAAe,QAAQ,CAAA;AAEpC,EAAAE,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,IAAA,CAAK,aAAa,QAAA,EAAU;AAC9B,MAAA,IAAA,CAAK,eAAe,QAAQ,CAAA;AAAA,IAC9B;AAAA,EACF,CAAA,EAAG,CAAC,QAAA,EAAU,IAAI,CAAC,CAAA;AAEnB,EAAA,uBAAOC,cAAA,CAACC,4BAAA,EAAA,EAAgB,IAAA,EAAa,QAAA,EAAS,CAAA;AAChD;AAEA,mBAAA,CAAoB,WAAA,GAAc,qBAAA;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var Select = require('../Select-
|
|
3
|
+
var Select = require('../Select-DVDECeJb.js');
|
|
4
4
|
require('react/jsx-runtime');
|
|
5
5
|
require('react');
|
|
6
6
|
require('../SelectFieldWrapper-DKkizQNM.js');
|
|
@@ -41,7 +41,7 @@ require('react-i18next');
|
|
|
41
41
|
require('../loader-circle-Bw7zP2Gn.js');
|
|
42
42
|
require('../label-BdcX4_ud.js');
|
|
43
43
|
require('../separator-DSL-aG1J.js');
|
|
44
|
-
require('../Combobox-
|
|
44
|
+
require('../Combobox-Dd2m0qal.js');
|
|
45
45
|
require('../input-group-BdQoKm0i.js');
|
|
46
46
|
require('../input-BVxqXG2C.js');
|
|
47
47
|
require('../textarea-Cq6pBK7q.js');
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var Toastr = require('../Toastr-
|
|
3
|
+
var Toastr = require('../Toastr-E0yLh_MW.js');
|
|
4
4
|
require('react/jsx-runtime');
|
|
5
5
|
require('../index-CPmGpPzg.js');
|
|
6
6
|
require('../createLucideIcon-D0tRgV6l.js');
|
|
7
7
|
require('react');
|
|
8
8
|
require('react-dom');
|
|
9
|
+
require('react-i18next');
|
|
9
10
|
require('../utils-BhM0B89p.js');
|
|
11
|
+
require('i18next');
|
|
10
12
|
require('../triangle-alert-CC-cck8p.js');
|
|
11
13
|
require('../info-DGfDptn1.js');
|
|
12
14
|
require('../x-Brw3FJst.js');
|
|
13
|
-
require('i18next');
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toastr.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Toastr.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|
|
@@ -21,7 +21,7 @@ var Pagination = require('../Pagination-8yFg8xR2.js');
|
|
|
21
21
|
var Popover = require('../Popover-DuRSsDHz.js');
|
|
22
22
|
var Progress = require('../Progress-yBpMAzIU.js');
|
|
23
23
|
var RadioGroup = require('../RadioGroup-DCEw94Dk.js');
|
|
24
|
-
var Select = require('../Select-
|
|
24
|
+
var Select = require('../Select-DVDECeJb.js');
|
|
25
25
|
var Sheet = require('../Sheet-By1W1pFD.js');
|
|
26
26
|
var Slider = require('../Slider-CRmd_VMs.js');
|
|
27
27
|
var Spinner = require('../Spinner-DzNBz8al.js');
|
|
@@ -31,9 +31,9 @@ var Tabs = require('../Tabs-COMRjTVU.js');
|
|
|
31
31
|
var Textarea = require('../Textarea-yWv-66yX.js');
|
|
32
32
|
var TimePicker = require('../TimePicker-DW7OM3IE.js');
|
|
33
33
|
var TimePickerPanel = require('../TimePickerPanel-DX6cjrSN.js');
|
|
34
|
-
var Toastr = require('../Toastr-
|
|
34
|
+
var Toastr = require('../Toastr-E0yLh_MW.js');
|
|
35
35
|
var Tooltip = require('../Tooltip-Dph_R3Ct.js');
|
|
36
|
-
var TranslationProvider = require('../TranslationProvider-
|
|
36
|
+
var TranslationProvider = require('../TranslationProvider-BgCNBYs8.js');
|
|
37
37
|
var Tree = require('../Tree-Y0ulyxew.js');
|
|
38
38
|
var TreeSelect = require('../TreeSelect-4g6YFilY.js');
|
|
39
39
|
var Typography = require('../Typography-BW6xEk10.js');
|
|
@@ -121,7 +121,7 @@ require('../primitives/HoverCard.js');
|
|
|
121
121
|
require('../primitives/Progress.js');
|
|
122
122
|
require('../primitives/RadioGroup.js');
|
|
123
123
|
require('../SelectFieldWrapper-DKkizQNM.js');
|
|
124
|
-
require('../Combobox-
|
|
124
|
+
require('../Combobox-Dd2m0qal.js');
|
|
125
125
|
require('../with-selector-DeKHbQY7.js');
|
|
126
126
|
require('../primitives/Sheet.js');
|
|
127
127
|
require('../sheet-G6ismmAK.js');
|
|
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var formik = require('formik');
|
|
6
6
|
var ramda = require('ramda');
|
|
7
|
-
var Select = require('../Select-
|
|
7
|
+
var Select = require('../Select-DVDECeJb.js');
|
|
8
8
|
require('../SelectFieldWrapper-DKkizQNM.js');
|
|
9
9
|
require('../primitives/Field.js');
|
|
10
10
|
require('../utils-BhM0B89p.js');
|
|
@@ -43,7 +43,7 @@ require('react-i18next');
|
|
|
43
43
|
require('../loader-circle-Bw7zP2Gn.js');
|
|
44
44
|
require('../label-BdcX4_ud.js');
|
|
45
45
|
require('../separator-DSL-aG1J.js');
|
|
46
|
-
require('../Combobox-
|
|
46
|
+
require('../Combobox-Dd2m0qal.js');
|
|
47
47
|
require('../input-group-BdQoKm0i.js');
|
|
48
48
|
require('../input-BVxqXG2C.js');
|
|
49
49
|
require('../textarea-Cq6pBK7q.js');
|
package/dist/cjs/formik/index.js
CHANGED
|
@@ -62,9 +62,9 @@ require('../textarea-Cq6pBK7q.js');
|
|
|
62
62
|
require('../withIconSize-C6LP0R7o.js');
|
|
63
63
|
require('../Textarea-yWv-66yX.js');
|
|
64
64
|
require('../primitives/Textarea.js');
|
|
65
|
-
require('../Select-
|
|
65
|
+
require('../Select-DVDECeJb.js');
|
|
66
66
|
require('../SelectFieldWrapper-DKkizQNM.js');
|
|
67
|
-
require('../Combobox-
|
|
67
|
+
require('../Combobox-Dd2m0qal.js');
|
|
68
68
|
require('../chevron-down-CPsWSS51.js');
|
|
69
69
|
require('../check-BQgcDXys.js');
|
|
70
70
|
require('../x-Brw3FJst.js');
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var utils$1 = require('@bigbinary/neeto-commons-frontend/utils');
|
|
4
|
-
var TranslationProvider = require('./TranslationProvider-
|
|
4
|
+
var TranslationProvider = require('./TranslationProvider-BgCNBYs8.js');
|
|
5
5
|
var components_DropdownMenu = require('./components/DropdownMenu.js');
|
|
6
6
|
var useMobile = require('./use-mobile-Be9CI6km.js');
|
|
7
7
|
var utils = require('./utils-BhM0B89p.js');
|
|
@@ -26,7 +26,7 @@ var Pagination = require('./Pagination-8yFg8xR2.js');
|
|
|
26
26
|
var Popover = require('./Popover-DuRSsDHz.js');
|
|
27
27
|
var Progress = require('./Progress-yBpMAzIU.js');
|
|
28
28
|
var RadioGroup = require('./RadioGroup-DCEw94Dk.js');
|
|
29
|
-
var Select = require('./Select-
|
|
29
|
+
var Select = require('./Select-DVDECeJb.js');
|
|
30
30
|
var Sheet = require('./Sheet-By1W1pFD.js');
|
|
31
31
|
var Slider = require('./Slider-CRmd_VMs.js');
|
|
32
32
|
var Spinner = require('./Spinner-DzNBz8al.js');
|
|
@@ -35,7 +35,7 @@ var Switch = require('./Switch-bY6bZw78.js');
|
|
|
35
35
|
var Tabs = require('./Tabs-COMRjTVU.js');
|
|
36
36
|
var Textarea = require('./Textarea-yWv-66yX.js');
|
|
37
37
|
var TimePicker = require('./TimePicker-DW7OM3IE.js');
|
|
38
|
-
var Toastr = require('./Toastr-
|
|
38
|
+
var Toastr = require('./Toastr-E0yLh_MW.js');
|
|
39
39
|
var Tooltip = require('./Tooltip-Dph_R3Ct.js');
|
|
40
40
|
var Tree = require('./Tree-Y0ulyxew.js');
|
|
41
41
|
var TreeSelect = require('./TreeSelect-4g6YFilY.js');
|
|
@@ -125,7 +125,7 @@ require('./primitives/HoverCard.js');
|
|
|
125
125
|
require('./primitives/Progress.js');
|
|
126
126
|
require('./primitives/RadioGroup.js');
|
|
127
127
|
require('./SelectFieldWrapper-DKkizQNM.js');
|
|
128
|
-
require('./Combobox-
|
|
128
|
+
require('./Combobox-Dd2m0qal.js');
|
|
129
129
|
require('./with-selector-DeKHbQY7.js');
|
|
130
130
|
require('./primitives/Sheet.js');
|
|
131
131
|
require('./sheet-G6ismmAK.js');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
require('react/jsx-runtime');
|
|
4
4
|
require('react');
|
|
5
5
|
require('../utils-BhM0B89p.js');
|
|
6
|
-
var primitives_Combobox = require('../Combobox-
|
|
6
|
+
var primitives_Combobox = require('../Combobox-Dd2m0qal.js');
|
|
7
7
|
require('../button-CMl9rLXi.js');
|
|
8
8
|
require('../index-vioSzJOw.js');
|
|
9
9
|
require('../index-DuNgWCXZ.js');
|
|
@@ -272,7 +272,7 @@ function CommandList$1({
|
|
|
272
272
|
{
|
|
273
273
|
"data-slot": "command-list",
|
|
274
274
|
className: utils.cn(
|
|
275
|
-
"
|
|
275
|
+
"max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none",
|
|
276
276
|
className
|
|
277
277
|
),
|
|
278
278
|
...props
|