payload-intl 0.1.0 → 0.2.0
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/components/MessageController.js +11 -11
- package/dist/components/MessageController.js.map +1 -1
- package/dist/components/MessagesForm.d.ts +2 -3
- package/dist/components/MessagesForm.js +75 -84
- package/dist/components/MessagesForm.js.map +1 -1
- package/dist/components/inputs/LexicalInput.d.ts +8 -0
- package/dist/components/inputs/LexicalInput.js +60 -0
- package/dist/components/inputs/LexicalInput.js.map +1 -0
- package/dist/components/inputs/variables/editors/PluralVariableEditor.js.map +1 -1
- package/dist/components/inputs/variables/editors/SelectVariableEditor.js.map +1 -1
- package/dist/components/inputs/variables/editors/TagVariableEditor.js.map +1 -1
- package/dist/components/inputs/variables/pickers/NumericVariablePicker.js.map +1 -1
- package/dist/components/layout/MessageField.js.map +1 -1
- package/dist/components/layout/MessagesTree.js.map +1 -1
- package/dist/context/messages-form.d.ts +2 -4
- package/dist/context/messages-form.js +10 -11
- package/dist/context/messages-form.js.map +1 -1
- package/dist/exports/view.d.ts +2 -3
- package/dist/exports/view.js +21 -23
- package/dist/exports/view.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +30 -17
- package/dist/index.js.map +1 -1
- package/dist/requests/fetchMessages.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types.d.ts +0 -8
- package/dist/utils/schema.js.map +1 -1
- package/dist/utils/validate.d.ts +1 -1
- package/dist/utils/validate.js.map +1 -1
- package/package.json +23 -34
- package/dist/components/inputs/RichTextInput.d.ts +0 -8
- package/dist/components/inputs/RichTextInput.js +0 -85
- package/dist/components/inputs/RichTextInput.js.map +0 -1
- package/dist/components/inputs/toolbar/AlignmentControls.d.ts +0 -5
- package/dist/components/inputs/toolbar/AlignmentControls.js +0 -62
- package/dist/components/inputs/toolbar/AlignmentControls.js.map +0 -1
- package/dist/components/inputs/toolbar/BlockElementSelect.d.ts +0 -5
- package/dist/components/inputs/toolbar/BlockElementSelect.js +0 -135
- package/dist/components/inputs/toolbar/BlockElementSelect.js.map +0 -1
- package/dist/components/inputs/toolbar/LinkEditor.d.ts +0 -58
- package/dist/components/inputs/toolbar/LinkEditor.js +0 -242
- package/dist/components/inputs/toolbar/LinkEditor.js.map +0 -1
- package/dist/components/inputs/toolbar/MarkControls.d.ts +0 -5
- package/dist/components/inputs/toolbar/MarkControls.js +0 -48
- package/dist/components/inputs/toolbar/MarkControls.js.map +0 -1
- package/dist/components/inputs/toolbar/RichTextToolbar.d.ts +0 -6
- package/dist/components/inputs/toolbar/RichTextToolbar.js +0 -35
- package/dist/components/inputs/toolbar/RichTextToolbar.js.map +0 -1
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as r } from "react/jsx-runtime";
|
|
3
|
-
import { createContext as
|
|
4
|
-
import { FormProvider as
|
|
5
|
-
const t =
|
|
3
|
+
import { createContext as n, use as m } from "react";
|
|
4
|
+
import { FormProvider as c, useFormContext as i } from "react-hook-form";
|
|
5
|
+
const t = n({
|
|
6
6
|
locales: ["en"]
|
|
7
7
|
});
|
|
8
|
-
function
|
|
8
|
+
function f({
|
|
9
9
|
locales: e,
|
|
10
10
|
form: o,
|
|
11
|
-
|
|
12
|
-
children: n
|
|
11
|
+
children: s
|
|
13
12
|
}) {
|
|
14
|
-
return /* @__PURE__ */ r(t
|
|
13
|
+
return /* @__PURE__ */ r(t, { value: { locales: e }, children: /* @__PURE__ */ r(c, { ...o, children: s }) });
|
|
15
14
|
}
|
|
16
|
-
const
|
|
17
|
-
const e =
|
|
15
|
+
const l = () => {
|
|
16
|
+
const e = m(t), o = i();
|
|
18
17
|
return {
|
|
19
18
|
...e,
|
|
20
19
|
...o
|
|
21
20
|
};
|
|
22
21
|
};
|
|
23
22
|
export {
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
f as MessagesFormProvider,
|
|
24
|
+
l as useMessagesForm
|
|
26
25
|
};
|
|
27
26
|
//# sourceMappingURL=messages-form.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages-form.js","sources":["../../src/context/messages-form.tsx"],"sourcesContent":["\"use client\";\n\nimport type {
|
|
1
|
+
{"version":3,"file":"messages-form.js","sources":["../../src/context/messages-form.tsx"],"sourcesContent":["\"use client\";\n\nimport type { Locales, Messages, Translations } from \"@/types\";\nimport type { UseFormReturn } from \"react-hook-form\";\nimport { createContext, use } from \"react\";\nimport { FormProvider, useFormContext } from \"react-hook-form\";\n\nexport type FormValues = Translations<Messages>;\n\nconst MessagesFormContext = createContext<{\n locales: Locales;\n}>({\n locales: [\"en\"],\n});\n\ninterface MessagesFormProviderProps {\n locales: Locales;\n form: UseFormReturn<FormValues>;\n}\n\nexport function MessagesFormProvider({\n locales,\n form,\n children,\n}: React.PropsWithChildren<MessagesFormProviderProps>) {\n return (\n <MessagesFormContext value={{ locales }}>\n <FormProvider {...form}>{children}</FormProvider>\n </MessagesFormContext>\n );\n}\n\nexport const useMessagesForm = () => {\n const context = use(MessagesFormContext);\n const form = useFormContext<FormValues>();\n return {\n ...context,\n ...form,\n };\n};\n"],"names":["MessagesFormContext","createContext","MessagesFormProvider","locales","form","children","jsx","FormProvider","useMessagesForm","context","use","useFormContext"],"mappings":";;;;AASA,MAAMA,IAAsBC,EAEzB;AAAA,EACD,SAAS,CAAC,IAAI;AAChB,CAAC;AAOM,SAASC,EAAqB;AAAA,EACnC,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AACF,GAAuD;AACrD,SACE,gBAAAC,EAACN,GAAA,EAAoB,OAAO,EAAE,SAAAG,EAAA,GAC5B,UAAA,gBAAAG,EAACC,GAAA,EAAc,GAAGH,GAAO,UAAAC,EAAA,CAAS,EAAA,CACpC;AAEJ;AAEO,MAAMG,IAAkB,MAAM;AACnC,QAAMC,IAAUC,EAAIV,CAAmB,GACjCI,IAAOO,EAAA;AACb,SAAO;AAAA,IACL,GAAGF;AAAA,IACH,GAAGL;AAAA,EAAA;AAEP;"}
|
package/dist/exports/view.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { Locales, Messages, MessagesGuard
|
|
1
|
+
import { Locales, Messages, MessagesGuard } from '../types.ts';
|
|
2
2
|
import { AdminViewServerProps } from 'payload';
|
|
3
3
|
export interface MessagesViewProps {
|
|
4
4
|
locales: Locales;
|
|
5
5
|
schema: Messages;
|
|
6
6
|
tabs: boolean | undefined;
|
|
7
7
|
access: MessagesGuard;
|
|
8
|
-
richTextEditorOptions?: RichTextEditorOptions;
|
|
9
8
|
}
|
|
10
|
-
export declare function MessagesView({ access, initPageResult, locales, params, payload, schema, searchParams, tabs,
|
|
9
|
+
export declare function MessagesView({ access, initPageResult, locales, params, payload, schema, searchParams, tabs, }: AdminViewServerProps & MessagesViewProps): Promise<import("react/jsx-runtime").JSX.Element>;
|
package/dist/exports/view.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import
|
|
3
|
-
import { DefaultTemplate as
|
|
4
|
-
import { Gutter as
|
|
5
|
-
import { redirect as
|
|
6
|
-
import { Toaster as
|
|
7
|
-
import { sanitizeMessages as
|
|
8
|
-
import { MessagesForm as
|
|
9
|
-
import { fetchMessages as
|
|
10
|
-
async function
|
|
1
|
+
import { jsxs as l, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import d from "path";
|
|
3
|
+
import { DefaultTemplate as h } from "@payloadcms/next/templates";
|
|
4
|
+
import { Gutter as g } from "@payloadcms/ui";
|
|
5
|
+
import { redirect as u, RedirectType as v } from "next/navigation";
|
|
6
|
+
import { Toaster as A } from "sonner";
|
|
7
|
+
import { sanitizeMessages as M } from "../utils/sanitize.js";
|
|
8
|
+
import { MessagesForm as j } from "../components/MessagesForm.js";
|
|
9
|
+
import { fetchMessages as q } from "../requests/fetchMessages.js";
|
|
10
|
+
async function D({
|
|
11
11
|
access: m,
|
|
12
12
|
initPageResult: e,
|
|
13
13
|
locales: i,
|
|
@@ -15,17 +15,16 @@ async function F({
|
|
|
15
15
|
payload: s,
|
|
16
16
|
schema: t,
|
|
17
17
|
searchParams: c,
|
|
18
|
-
tabs: f = !1
|
|
19
|
-
richTextEditorOptions: a
|
|
18
|
+
tabs: f = !1
|
|
20
19
|
}) {
|
|
21
|
-
await m(e.req) ||
|
|
20
|
+
await m(e.req) || u(s.getAdminURL(), v.replace);
|
|
22
21
|
const n = {};
|
|
23
22
|
for (const r of i) {
|
|
24
|
-
const
|
|
25
|
-
n[r] =
|
|
23
|
+
const a = await q(s, r);
|
|
24
|
+
n[r] = M(t, a);
|
|
26
25
|
}
|
|
27
|
-
return /* @__PURE__ */
|
|
28
|
-
|
|
26
|
+
return /* @__PURE__ */ l(
|
|
27
|
+
h,
|
|
29
28
|
{
|
|
30
29
|
i18n: e.req.i18n,
|
|
31
30
|
locale: e.locale,
|
|
@@ -37,23 +36,22 @@ async function F({
|
|
|
37
36
|
viewActions: s.config.admin.components.actions.filter((r) => typeof r != "object" ? !0 : r.exportName !== "MessagesLink"),
|
|
38
37
|
visibleEntities: e.visibleEntities,
|
|
39
38
|
children: [
|
|
40
|
-
/* @__PURE__ */ o(
|
|
41
|
-
|
|
39
|
+
/* @__PURE__ */ o(g, { children: /* @__PURE__ */ o(
|
|
40
|
+
j,
|
|
42
41
|
{
|
|
43
42
|
locales: i,
|
|
44
43
|
schema: t,
|
|
45
44
|
tabs: f,
|
|
46
45
|
values: n,
|
|
47
|
-
endpointUrl:
|
|
48
|
-
richTextEditorOptions: a
|
|
46
|
+
endpointUrl: d.join(s.getAPIURL(), "intl-plugin")
|
|
49
47
|
}
|
|
50
48
|
) }),
|
|
51
|
-
/* @__PURE__ */ o(
|
|
49
|
+
/* @__PURE__ */ o(A, { position: "top-right" })
|
|
52
50
|
]
|
|
53
51
|
}
|
|
54
52
|
);
|
|
55
53
|
}
|
|
56
54
|
export {
|
|
57
|
-
|
|
55
|
+
D as MessagesView
|
|
58
56
|
};
|
|
59
57
|
//# sourceMappingURL=view.js.map
|
package/dist/exports/view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sources":["../../src/exports/view.tsx"],"sourcesContent":["import path from \"path\";\nimport type {\n DeepPartial,\n Locales,\n Messages,\n MessagesGuard,\n
|
|
1
|
+
{"version":3,"file":"view.js","sources":["../../src/exports/view.tsx"],"sourcesContent":["import path from \"path\";\nimport type {\n DeepPartial,\n Locales,\n Messages,\n MessagesGuard,\n Translations,\n} from \"@/types\";\nimport type { AdminViewServerProps } from \"payload\";\nimport { DefaultTemplate } from \"@payloadcms/next/templates\";\nimport { Gutter } from \"@payloadcms/ui\";\nimport { redirect, RedirectType } from \"next/navigation\";\nimport { Toaster } from \"sonner\";\n\nimport { sanitizeMessages } from \"@/utils/sanitize\";\n\nimport { MessagesForm } from \"../components/MessagesForm\";\nimport { fetchMessages } from \"../requests/fetchMessages\";\n\nexport interface MessagesViewProps {\n locales: Locales;\n schema: Messages;\n tabs: boolean | undefined;\n access: MessagesGuard;\n}\n\nexport async function MessagesView({\n access,\n initPageResult,\n locales,\n params,\n payload,\n schema,\n searchParams,\n tabs = false,\n}: AdminViewServerProps & MessagesViewProps) {\n const hasAccess = await access(initPageResult.req);\n if (!hasAccess) redirect(payload.getAdminURL(), RedirectType.replace);\n\n const translations: Translations<DeepPartial<Messages>> = {};\n\n for (const locale of locales) {\n const messages = await fetchMessages(payload, locale);\n translations[locale] = sanitizeMessages(schema, messages);\n }\n return (\n <DefaultTemplate\n i18n={initPageResult.req.i18n}\n locale={initPageResult.locale}\n params={params}\n payload={initPageResult.req.payload}\n permissions={initPageResult.permissions}\n searchParams={searchParams}\n user={initPageResult.req.user || undefined}\n viewActions={payload.config.admin.components.actions.filter((action) => {\n if (typeof action !== \"object\") {\n return true;\n }\n return action.exportName !== \"MessagesLink\";\n })}\n visibleEntities={initPageResult.visibleEntities}\n >\n <Gutter>\n <MessagesForm\n locales={locales}\n schema={schema}\n tabs={tabs}\n values={translations}\n endpointUrl={path.join(payload.getAPIURL(), \"intl-plugin\")}\n />\n </Gutter>\n <Toaster position=\"top-right\" />\n </DefaultTemplate>\n );\n}\n"],"names":["MessagesView","access","initPageResult","locales","params","payload","schema","searchParams","tabs","redirect","RedirectType","translations","locale","messages","fetchMessages","sanitizeMessages","jsxs","DefaultTemplate","action","jsx","Gutter","MessagesForm","path","Toaster"],"mappings":";;;;;;;;;AA0BA,eAAsBA,EAAa;AAAA,EACjC,QAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC,IAAO;AACT,GAA6C;AAE3C,EADkB,MAAMP,EAAOC,EAAe,GAAG,KACjCO,EAASJ,EAAQ,YAAA,GAAeK,EAAa,OAAO;AAEpE,QAAMC,IAAoD,CAAA;AAE1D,aAAWC,KAAUT,GAAS;AAC5B,UAAMU,IAAW,MAAMC,EAAcT,GAASO,CAAM;AACpD,IAAAD,EAAaC,CAAM,IAAIG,EAAiBT,GAAQO,CAAQ;AAAA,EAC1D;AACA,SACE,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMf,EAAe,IAAI;AAAA,MACzB,QAAQA,EAAe;AAAA,MACvB,QAAAE;AAAA,MACA,SAASF,EAAe,IAAI;AAAA,MAC5B,aAAaA,EAAe;AAAA,MAC5B,cAAAK;AAAA,MACA,MAAML,EAAe,IAAI,QAAQ;AAAA,MACjC,aAAaG,EAAQ,OAAO,MAAM,WAAW,QAAQ,OAAO,CAACa,MACvD,OAAOA,KAAW,WACb,KAEFA,EAAO,eAAe,cAC9B;AAAA,MACD,iBAAiBhB,EAAe;AAAA,MAEhC,UAAA;AAAA,QAAA,gBAAAiB,EAACC,GAAA,EACC,UAAA,gBAAAD;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,SAAAlB;AAAA,YACA,QAAAG;AAAA,YACA,MAAAE;AAAA,YACA,QAAQG;AAAA,YACR,aAAaW,EAAK,KAAKjB,EAAQ,UAAA,GAAa,aAAa;AAAA,UAAA;AAAA,QAAA,GAE7D;AAAA,QACA,gBAAAc,EAACI,GAAA,EAAQ,UAAS,YAAA,CAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGpC;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Plugin } from 'payload';
|
|
2
2
|
import { MessagesPluginConfig } from './types.ts';
|
|
3
|
-
export declare const intlPlugin: ({ schema, tabs, collectionSlug, hooks, editorAccess,
|
|
3
|
+
export declare const intlPlugin: ({ schema, tabs, collectionSlug, hooks, editorAccess, }: MessagesPluginConfig) => Plugin;
|
|
4
4
|
export { fetchMessages } from './requests/fetchMessages';
|
|
5
5
|
export type { MessagesPluginConfig, MessagesSchema, Messages, } from './types.ts';
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/* empty css */
|
|
2
|
+
import { lexicalEditor as m } from "@payloadcms/richtext-lexical";
|
|
2
3
|
import { getMessagesEndpoint as r } from "./endpoints/get-messages.js";
|
|
3
|
-
import { setMessagesEndpoint as
|
|
4
|
-
import { getSupportedLocales as
|
|
5
|
-
import { fetchMessages as
|
|
6
|
-
const
|
|
4
|
+
import { setMessagesEndpoint as i } from "./endpoints/set-messages.js";
|
|
5
|
+
import { getSupportedLocales as u, attachPluginContext as c } from "./utils/config.js";
|
|
6
|
+
import { fetchMessages as E } from "./requests/fetchMessages.js";
|
|
7
|
+
const w = ({
|
|
7
8
|
schema: s,
|
|
8
9
|
tabs: a,
|
|
9
10
|
collectionSlug: t = "messages",
|
|
10
11
|
hooks: n,
|
|
11
|
-
editorAccess: o = (e) => e.user !== null
|
|
12
|
-
richTextEditorOptions: i
|
|
12
|
+
editorAccess: o = (e) => e.user !== null
|
|
13
13
|
}) => (e) => {
|
|
14
|
-
const
|
|
14
|
+
const p = u(e.localization);
|
|
15
15
|
return e.admin ??= {}, e.admin.components ??= {}, e.admin.components.actions ??= [], e.admin.components.actions.push({
|
|
16
16
|
exportName: "MessagesLink",
|
|
17
17
|
path: "payload-intl/rsc#MessagesLink"
|
|
@@ -22,16 +22,29 @@ const y = ({
|
|
|
22
22
|
path: "payload-intl/rsc#MessagesView",
|
|
23
23
|
serverProps: {
|
|
24
24
|
access: o,
|
|
25
|
-
locales:
|
|
25
|
+
locales: p,
|
|
26
26
|
schema: s,
|
|
27
|
-
tabs: a
|
|
28
|
-
richTextEditorOptions: i
|
|
27
|
+
tabs: a
|
|
29
28
|
}
|
|
30
29
|
},
|
|
31
30
|
path: "/intl"
|
|
32
31
|
}
|
|
33
|
-
},
|
|
32
|
+
}, c(e, {
|
|
34
33
|
collectionSlug: t
|
|
34
|
+
}), e.globals ??= [], e.globals.push({
|
|
35
|
+
slug: "intl-plugin",
|
|
36
|
+
fields: [
|
|
37
|
+
{
|
|
38
|
+
name: "editorTemplate",
|
|
39
|
+
type: "richText",
|
|
40
|
+
editor: m({
|
|
41
|
+
features: ({ defaultFeatures: l }) => l.filter(
|
|
42
|
+
({ key: d }) => !["relationship", "upload"].includes(d)
|
|
43
|
+
)
|
|
44
|
+
}),
|
|
45
|
+
admin: { hidden: !0 }
|
|
46
|
+
}
|
|
47
|
+
]
|
|
35
48
|
}), e.collections ??= [], e.collections.push({
|
|
36
49
|
slug: t,
|
|
37
50
|
admin: {
|
|
@@ -40,7 +53,7 @@ const y = ({
|
|
|
40
53
|
access: {
|
|
41
54
|
read: () => !0
|
|
42
55
|
},
|
|
43
|
-
endpoints: [
|
|
56
|
+
endpoints: [i, r],
|
|
44
57
|
fields: [
|
|
45
58
|
{
|
|
46
59
|
name: "locale",
|
|
@@ -48,7 +61,7 @@ const y = ({
|
|
|
48
61
|
required: !0
|
|
49
62
|
}
|
|
50
63
|
],
|
|
51
|
-
hooks:
|
|
64
|
+
hooks: h(n),
|
|
52
65
|
indexes: [
|
|
53
66
|
{
|
|
54
67
|
fields: ["locale"]
|
|
@@ -57,8 +70,8 @@ const y = ({
|
|
|
57
70
|
upload: {
|
|
58
71
|
mimeTypes: ["application/json"]
|
|
59
72
|
}
|
|
60
|
-
}), e.endpoints ??= [], e.endpoints.push(r), e.endpoints.push(
|
|
61
|
-
},
|
|
73
|
+
}), e.endpoints ??= [], e.endpoints.push(r), e.endpoints.push(i), e;
|
|
74
|
+
}, h = (s) => {
|
|
62
75
|
if (!s)
|
|
63
76
|
return;
|
|
64
77
|
const { afterUpdate: a, ...t } = s;
|
|
@@ -73,7 +86,7 @@ const y = ({
|
|
|
73
86
|
};
|
|
74
87
|
};
|
|
75
88
|
export {
|
|
76
|
-
|
|
77
|
-
|
|
89
|
+
E as fetchMessages,
|
|
90
|
+
w as intlPlugin
|
|
78
91
|
};
|
|
79
92
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import \"./styles.css\";\n\nimport type {\n CollectionAfterChangeHook,\n CollectionConfig,\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import \"./styles.css\";\n\nimport type {\n CollectionAfterChangeHook,\n CollectionConfig,\n Plugin,\n} from \"payload\";\nimport { lexicalEditor } from \"@payloadcms/richtext-lexical\";\n\nimport type { MessagesViewProps } from \"./exports/view\";\nimport type { MessagesPluginConfig } from \"./types.ts\";\nimport { getMessagesEndpoint } from \"./endpoints/get-messages\";\nimport { setMessagesEndpoint } from \"./endpoints/set-messages\";\nimport { attachPluginContext, getSupportedLocales } from \"./utils/config\";\n\nexport const intlPlugin =\n ({\n schema,\n tabs,\n collectionSlug = \"messages\",\n hooks,\n editorAccess = (req) => req.user !== null,\n }: MessagesPluginConfig): Plugin =>\n (config) => {\n const locales = getSupportedLocales(config.localization);\n\n config.admin ??= {};\n config.admin.components ??= {};\n config.admin.components.actions ??= [];\n config.admin.components.actions.push({\n exportName: \"MessagesLink\",\n path: \"payload-intl/rsc#MessagesLink\",\n });\n\n config.admin.components.views = {\n ...config.admin.components.views,\n intl: {\n Component: {\n path: \"payload-intl/rsc#MessagesView\",\n serverProps: {\n access: editorAccess,\n locales,\n schema,\n tabs,\n } satisfies MessagesViewProps,\n },\n path: \"/intl\",\n },\n };\n\n attachPluginContext(config, {\n collectionSlug,\n });\n config.globals ??= [];\n config.globals.push({\n slug: \"intl-plugin\",\n fields: [\n {\n name: \"editorTemplate\",\n type: \"richText\",\n editor: lexicalEditor({\n features: ({ defaultFeatures }) =>\n defaultFeatures.filter(\n ({ key }) => ![\"relationship\", \"upload\"].includes(key),\n ),\n }),\n admin: { hidden: true },\n },\n ],\n });\n\n config.collections ??= [];\n config.collections.push({\n slug: collectionSlug,\n admin: {\n hidden: true,\n },\n access: {\n read: () => true,\n },\n endpoints: [setMessagesEndpoint, getMessagesEndpoint],\n fields: [\n {\n name: \"locale\",\n type: \"text\",\n required: true,\n },\n ],\n hooks: createHooks(hooks),\n indexes: [\n {\n fields: [\"locale\"],\n },\n ],\n upload: {\n mimeTypes: [\"application/json\"],\n },\n });\n\n config.endpoints ??= [];\n config.endpoints.push(getMessagesEndpoint);\n config.endpoints.push(setMessagesEndpoint);\n\n return config;\n };\n\nexport { fetchMessages } from \"./requests/fetchMessages\";\n\nexport type {\n MessagesPluginConfig,\n MessagesSchema,\n Messages,\n} from \"./types.ts\";\n\nconst createHooks = (\n hooks: MessagesPluginConfig[\"hooks\"],\n): CollectionConfig[\"hooks\"] => {\n if (!hooks) {\n return undefined;\n }\n const { afterUpdate, ...rest } = hooks;\n if (!afterUpdate) {\n return rest;\n }\n\n const afterUpdateHook: CollectionAfterChangeHook = async ({ operation }) => {\n if (operation === \"update\") {\n await afterUpdate();\n }\n return;\n };\n return {\n ...rest,\n afterChange: [...(rest.afterChange ?? []), afterUpdateHook],\n };\n};\n"],"names":["intlPlugin","schema","tabs","collectionSlug","hooks","editorAccess","req","config","locales","getSupportedLocales","attachPluginContext","lexicalEditor","defaultFeatures","key","setMessagesEndpoint","getMessagesEndpoint","createHooks","afterUpdate","rest","afterUpdateHook","operation"],"mappings":";;;;;;AAeO,MAAMA,IACX,CAAC;AAAA,EACC,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,OAAAC;AAAA,EACA,cAAAC,IAAe,CAACC,MAAQA,EAAI,SAAS;AACvC,MACA,CAACC,MAAW;AACV,QAAMC,IAAUC,EAAoBF,EAAO,YAAY;AAEvD,SAAAA,EAAO,UAAU,CAAA,GACjBA,EAAO,MAAM,eAAe,CAAA,GAC5BA,EAAO,MAAM,WAAW,YAAY,CAAA,GACpCA,EAAO,MAAM,WAAW,QAAQ,KAAK;AAAA,IACnC,YAAY;AAAA,IACZ,MAAM;AAAA,EAAA,CACP,GAEDA,EAAO,MAAM,WAAW,QAAQ;AAAA,IAC9B,GAAGA,EAAO,MAAM,WAAW;AAAA,IAC3B,MAAM;AAAA,MACJ,WAAW;AAAA,QACT,MAAM;AAAA,QACN,aAAa;AAAA,UACX,QAAQF;AAAA,UACR,SAAAG;AAAA,UACA,QAAAP;AAAA,UACA,MAAAC;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,MAAM;AAAA,IAAA;AAAA,EACR,GAGFQ,EAAoBH,GAAQ;AAAA,IAC1B,gBAAAJ;AAAA,EAAA,CACD,GACDI,EAAO,YAAY,CAAA,GACnBA,EAAO,QAAQ,KAAK;AAAA,IAClB,MAAM;AAAA,IACN,QAAQ;AAAA,MACN;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQI,EAAc;AAAA,UACpB,UAAU,CAAC,EAAE,iBAAAC,EAAA,MACXA,EAAgB;AAAA,YACd,CAAC,EAAE,KAAAC,EAAA,MAAU,CAAC,CAAC,gBAAgB,QAAQ,EAAE,SAASA,CAAG;AAAA,UAAA;AAAA,QACvD,CACH;AAAA,QACD,OAAO,EAAE,QAAQ,GAAA;AAAA,MAAK;AAAA,IACxB;AAAA,EACF,CACD,GAEDN,EAAO,gBAAgB,CAAA,GACvBA,EAAO,YAAY,KAAK;AAAA,IACtB,MAAMJ;AAAA,IACN,OAAO;AAAA,MACL,QAAQ;AAAA,IAAA;AAAA,IAEV,QAAQ;AAAA,MACN,MAAM,MAAM;AAAA,IAAA;AAAA,IAEd,WAAW,CAACW,GAAqBC,CAAmB;AAAA,IACpD,QAAQ;AAAA,MACN;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,IAEF,OAAOC,EAAYZ,CAAK;AAAA,IACxB,SAAS;AAAA,MACP;AAAA,QACE,QAAQ,CAAC,QAAQ;AAAA,MAAA;AAAA,IACnB;AAAA,IAEF,QAAQ;AAAA,MACN,WAAW,CAAC,kBAAkB;AAAA,IAAA;AAAA,EAChC,CACD,GAEDG,EAAO,cAAc,CAAA,GACrBA,EAAO,UAAU,KAAKQ,CAAmB,GACzCR,EAAO,UAAU,KAAKO,CAAmB,GAElCP;AACT,GAUIS,IAAc,CAClBZ,MAC8B;AAC9B,MAAI,CAACA;AACH;AAEF,QAAM,EAAE,aAAAa,GAAa,GAAGC,EAAA,IAASd;AACjC,MAAI,CAACa;AACH,WAAOC;AAGT,QAAMC,IAA6C,OAAO,EAAE,WAAAC,QAAgB;AAC1E,IAAIA,MAAc,YAChB,MAAMH,EAAA;AAAA,EAGV;AACA,SAAO;AAAA,IACL,GAAGC;AAAA,IACH,aAAa,CAAC,GAAIA,EAAK,eAAe,CAAA,GAAKC,CAAe;AAAA,EAAA;AAE9D;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchMessages.js","sources":["../../src/requests/fetchMessages.ts"],"sourcesContent":["import type { BasePayload } from \"payload\";\n\nimport { getPluginContext } from \"@/utils/config\";\n\nimport type { Messages } from \"../types\";\n\nexport async function fetchMessages(\n payload: BasePayload,\n locale: string,\n): Promise<Messages> {\n const {\n docs: [doc],\n } = await payload.find({\n collection: getPluginContext(payload.config).collectionSlug,\n where: { locale: { equals: locale } },\n });\n\n if (!doc) {\n console.warn(`No messages found for locale ${locale}`);\n return {};\n }\n\n const { url } = doc as unknown as { url: string };\n\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(\n `Could not fetch messages for locale \"${locale}\": The page returned an error.\\n\\n${url}`,\n );\n }\n\n if (response.headers.get(\"content-type\") !== \"application/json\") {\n throw new Error(\n `Could not fetch messages for locale \"${locale}\": The page did not return a JSON file.\\n\\n${url}`,\n );\n }\n\n return await response.json();\n}\n"],"names":["fetchMessages","payload","locale","doc","getPluginContext","url","response"],"mappings":";
|
|
1
|
+
{"version":3,"file":"fetchMessages.js","sources":["../../src/requests/fetchMessages.ts"],"sourcesContent":["import type { BasePayload } from \"payload\";\nimport {\n buildEditorState,\n RenderLexical,\n} from \"@payloadcms/richtext-lexical/client\";\n\nimport { getPluginContext } from \"@/utils/config\";\n\nimport type { Messages } from \"../types\";\n\nexport async function fetchMessages(\n payload: BasePayload,\n locale: string,\n): Promise<Messages> {\n const {\n docs: [doc],\n } = await payload.find({\n collection: getPluginContext(payload.config).collectionSlug,\n where: { locale: { equals: locale } },\n });\n\n if (!doc) {\n console.warn(`No messages found for locale ${locale}`);\n return {};\n }\n\n const { url } = doc as unknown as { url: string };\n\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(\n `Could not fetch messages for locale \"${locale}\": The page returned an error.\\n\\n${url}`,\n );\n }\n\n if (response.headers.get(\"content-type\") !== \"application/json\") {\n throw new Error(\n `Could not fetch messages for locale \"${locale}\": The page did not return a JSON file.\\n\\n${url}`,\n );\n }\n\n return await response.json();\n}\n"],"names":["fetchMessages","payload","locale","doc","getPluginContext","url","response"],"mappings":";AAUA,eAAsBA,EACpBC,GACAC,GACmB;AACnB,QAAM;AAAA,IACJ,MAAM,CAACC,CAAG;AAAA,EAAA,IACR,MAAMF,EAAQ,KAAK;AAAA,IACrB,YAAYG,EAAiBH,EAAQ,MAAM,EAAE;AAAA,IAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQC,IAAO;AAAA,EAAE,CACrC;AAED,MAAI,CAACC;AACH,mBAAQ,KAAK,gCAAgCD,CAAM,EAAE,GAC9C,CAAA;AAGT,QAAM,EAAE,KAAAG,MAAQF,GAEVG,IAAW,MAAM,MAAMD,CAAG;AAEhC,MAAI,CAACC,EAAS;AACZ,UAAM,IAAI;AAAA,MACR,wCAAwCJ,CAAM;AAAA;AAAA,EAAqCG,CAAG;AAAA,IAAA;AAI1F,MAAIC,EAAS,QAAQ,IAAI,cAAc,MAAM;AAC3C,UAAM,IAAI;AAAA,MACR,wCAAwCJ,CAAM;AAAA;AAAA,EAA8CG,CAAG;AAAA,IAAA;AAInG,SAAO,MAAMC,EAAS,KAAA;AACxB;"}
|
package/dist/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-medium:500;--radius-sm:var(--style-radius-s);--radius-md:var(--style-radius-m);--color-border:var(--theme-border-color);--color-background:var(--theme-bg);--color-input:var(--theme-input-bg);--color-elevation-0:var(--theme-elevation-0);--color-elevation-50:var(--theme-elevation-50);--color-elevation-100:var(--theme-elevation-100);--color-elevation-250:var(--theme-elevation-250);--color-elevation-400:var(--theme-elevation-400);--color-elevation-600:var(--theme-elevation-600);--color-elevation-800:var(--theme-elevation-800)}}@layer base,components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.z-10{z-index:10}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-3{margin-inline:calc(var(--spacing)*-3)}.mx-0{margin-inline:calc(var(--spacing)*0)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.my-0{margin-block:calc(var(--spacing)*0)}.my-1{margin-block:calc(var(--spacing)*1)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.-ml-2{margin-left:calc(var(--spacing)*-2)}.ml-auto{margin-left:auto}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.h-7{height:calc(var(--spacing)*7)}.h-10{height:calc(var(--spacing)*10)}.h-\[calc\(100vh-var\(--app-header-height\)\)\]{height:calc(100vh - var(--app-header-height))}.h-px{height:1px}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-8{min-height:calc(var(--spacing)*8)}.w-8{width:calc(var(--spacing)*8)}.w-34{width:calc(var(--spacing)*34)}.w-40{width:calc(var(--spacing)*40)}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[8rem\]{min-width:8rem}.min-w-max{min-width:max-content}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-grow-0{flex-grow:0}.basis-auto{flex-basis:auto}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-hover-card-content-transform-origin\){transform-origin:var(--radix-hover-card-content-transform-origin)}.translate-y-2{--tw-translate-y:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[3rem_8rem_1\.5rem\]{grid-template-columns:3rem 8rem 1.5rem}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-y-2{row-gap:calc(var(--spacing)*2)}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-x-none{overscroll-behavior-x:none}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.border-error{border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-error-400)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-none{--tw-border-style:none;border-style:none}.border-border{border-color:var(--color-border)}.border-transparent{border-color:#0000}.bg-background{background-color:var(--color-background)}.bg-border{background-color:var(--color-border)}.bg-elevation-50{background-color:var(--color-elevation-50)}.bg-elevation-100{background-color:var(--color-elevation-100)}.bg-elevation-250{background-color:var(--color-elevation-250)}.bg-elevation-600{background-color:var(--color-elevation-600)}.bg-elevation-800{background-color:var(--color-elevation-800)}.bg-error{background-color:var(--theme-error-100)}.bg-input{background-color:var(--color-input)}.bg-transparent{background-color:#0000}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.pt-8{padding-top:calc(var(--spacing)*8)}.pr-0{padding-right:calc(var(--spacing)*0)}.pb-16{padding-bottom:calc(var(--spacing)*16)}.pl-2{padding-left:calc(var(--spacing)*2)}.text-center{text-align:center}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-nowrap{text-wrap:nowrap}.text-elevation-0{color:var(--color-elevation-0)}.text-error{color:var(--theme-error-400)}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.running{animation-play-state:running}.slide-in-from-top-2{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.empty\:hidden:empty{display:none}.focus-within\:border-elevation-400:focus-within{border-color:var(--color-elevation-400)}.focus-within\:border-elevation-600:focus-within{border-color:var(--color-elevation-600)}@media (hover:hover){.hover\:bg-elevation-250:hover{background-color:var(--color-elevation-250)}.hover\:bg-elevation-400:hover{background-color:var(--color-elevation-400)}.hover\:bg-elevation-600:hover{background-color:var(--color-elevation-600)}.hover\:text-error:hover{color:var(--theme-error-400)}.hover\:outline-none:hover{--tw-outline-style:none;outline-style:none}}.focus\:relative:focus{position:relative}.focus\:border-border:focus{border-color:var(--color-border)}.focus\:outline:focus{outline-style:var(--tw-outline-style);outline-width:1px}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:bg-transparent:disabled{background-color:#0000}.disabled\:text-elevation-250:disabled{color:var(--color-elevation-250)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=checked\]\:pointer-events-none[data-state=checked]{pointer-events:none}.data-\[state\=checked\]\:bg-elevation-800[data-state=checked]{background-color:var(--color-elevation-800)}.data-\[state\=checked\]\:text-elevation-0[data-state=checked]{color:var(--color-elevation-0)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=off\]\:cursor-pointer[data-state=off]{cursor:pointer}.data-\[state\=off\]\:opacity-50[data-state=off]{opacity:.5}@media (hover:hover){.data-\[state\=off\]\:hover\:opacity-100[data-state=off]:hover{opacity:1}}.data-\[state\=on\]\:bg-elevation-600[data-state=on]{background-color:var(--color-elevation-600)}.data-\[state\=on\]\:bg-elevation-800[data-state=on]{background-color:var(--color-elevation-800)}.data-\[state\=on\]\:text-elevation-0[data-state=on]{color:var(--color-elevation-0)}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}.tiptap-editor{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.tiptap-editor>.ProseMirror{color:var(--tw-prose-body);max-width:65ch}.tiptap-editor>.ProseMirror :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.tiptap-editor>.ProseMirror :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.tiptap-editor>.ProseMirror :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.tiptap-editor>.ProseMirror :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.tiptap-editor>.ProseMirror :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.tiptap-editor>.ProseMirror :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.tiptap-editor>.ProseMirror :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.tiptap-editor>.ProseMirror :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.tiptap-editor>.ProseMirror :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.tiptap-editor>.ProseMirror :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.tiptap-editor>.ProseMirror :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.tiptap-editor>.ProseMirror :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.tiptap-editor>.ProseMirror :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.tiptap-editor>.ProseMirror :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.tiptap-editor>.ProseMirror :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.tiptap-editor>.ProseMirror :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.tiptap-editor>.ProseMirror :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.tiptap-editor>.ProseMirror :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.tiptap-editor>.ProseMirror :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.tiptap-editor>.ProseMirror :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.tiptap-editor>.ProseMirror :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.tiptap-editor>.ProseMirror :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.tiptap-editor>.ProseMirror :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.tiptap-editor>.ProseMirror :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.tiptap-editor>.ProseMirror :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.tiptap-editor>.ProseMirror :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.tiptap-editor>.ProseMirror :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.tiptap-editor>.ProseMirror :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.tiptap-editor>.ProseMirror :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.tiptap-editor>.ProseMirror :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.tiptap-editor>.ProseMirror :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.tiptap-editor>.ProseMirror :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px rgb(var(--tw-prose-kbd-shadows)/10%);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.tiptap-editor>.ProseMirror :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.tiptap-editor>.ProseMirror :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.tiptap-editor>.ProseMirror :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.tiptap-editor>.ProseMirror :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.tiptap-editor>.ProseMirror :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.tiptap-editor>.ProseMirror :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.tiptap-editor>.ProseMirror :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.tiptap-editor>.ProseMirror :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.tiptap-editor>.ProseMirror :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.tiptap-editor>.ProseMirror :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.tiptap-editor>.ProseMirror :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.tiptap-editor>.ProseMirror :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.tiptap-editor>.ProseMirror :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.tiptap-editor>.ProseMirror :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.tiptap-editor>.ProseMirror :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.tiptap-editor>.ProseMirror :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.tiptap-editor>.ProseMirror :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.tiptap-editor>.ProseMirror :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.tiptap-editor>.ProseMirror :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.tiptap-editor>.ProseMirror :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.tiptap-editor>.ProseMirror :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.tiptap-editor>.ProseMirror{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:NaN NaN NaN;--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.tiptap-editor>.ProseMirror :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.tiptap-editor>.ProseMirror :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.tiptap-editor>.ProseMirror :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.tiptap-editor>.ProseMirror :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.tiptap-editor>.ProseMirror :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.tiptap-editor>.ProseMirror :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tiptap-editor>.ProseMirror :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.tiptap-editor>.ProseMirror{font-size:1.125rem;line-height:1.77778}.tiptap-editor>.ProseMirror :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.tiptap-editor>.ProseMirror :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.09091em;margin-bottom:1.09091em;font-size:1.22222em;line-height:1.45455}.tiptap-editor>.ProseMirror :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em}.tiptap-editor>.ProseMirror :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.833333em;font-size:2.66667em;line-height:1}.tiptap-editor>.ProseMirror :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.66667em;line-height:1.33333}.tiptap-editor>.ProseMirror :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:.666667em;font-size:1.33333em;line-height:1.5}.tiptap-editor>.ProseMirror :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:.444444em;line-height:1.55556}.tiptap-editor>.ProseMirror :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.tiptap-editor>.ProseMirror :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.tiptap-editor>.ProseMirror :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.tiptap-editor>.ProseMirror :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.222222em;padding-inline-end:.444444em;padding-bottom:.222222em;border-radius:.3125rem;padding-inline-start:.444444em;font-size:.888889em}.tiptap-editor>.ProseMirror :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.tiptap-editor>.ProseMirror :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.866667em}.tiptap-editor>.ProseMirror :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.tiptap-editor>.ProseMirror :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;border-radius:.375rem;margin-top:2em;margin-bottom:2em;padding-inline-start:1.5em;font-size:.888889em;line-height:1.75}.tiptap-editor>.ProseMirror :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.55556em}.tiptap-editor>.ProseMirror :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;margin-bottom:.666667em}.tiptap-editor>.ProseMirror :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.444444em}.tiptap-editor>.ProseMirror :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.tiptap-editor>.ProseMirror :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.tiptap-editor>.ProseMirror :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.tiptap-editor>.ProseMirror :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.tiptap-editor>.ProseMirror :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.tiptap-editor>.ProseMirror :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.tiptap-editor>.ProseMirror :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.tiptap-editor>.ProseMirror :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.tiptap-editor>.ProseMirror :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;padding-inline-start:1.55556em}.tiptap-editor>.ProseMirror :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.11111em;margin-bottom:3.11111em}.tiptap-editor>.ProseMirror :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tiptap-editor>.ProseMirror :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em;line-height:1.5}.tiptap-editor>.ProseMirror :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.tiptap-editor>.ProseMirror :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.tiptap-editor>.ProseMirror :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.tiptap-editor>.ProseMirror :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.tiptap-editor>.ProseMirror :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.tiptap-editor>.ProseMirror :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.tiptap-editor>.ProseMirror :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.tiptap-editor>.ProseMirror :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.tiptap-editor>.ProseMirror :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1em;font-size:.888889em;line-height:1.5}.tiptap-editor>.ProseMirror :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tiptap-editor>.ProseMirror :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.tiptap-editor>.ProseMirror:focus{--tw-outline-style:none;outline-style:none}.tiptap-editor>.ProseMirror:where([data-theme=dark],[data-theme=dark] *){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.tiptap-editor>.ProseMirror:focus{outline:none}.tiptap-editor>.ProseMirror>:first-child{margin-top:calc(var(--spacing)*0)}.tiptap-editor>.ProseMirror>:last-child{margin-bottom:calc(var(--spacing)*0)}.messages-tree-collapsible{overflow:clip}@media (hover:hover){.messages-tree-collapsible:hover{border-color:var(--color-border)}}.messages-tree-collapsible>.collapsible__toggle-wrap{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-border);top:calc(var(--nesting-level)*40px - 26px);z-index:calc(9 - var(--nesting-level));border-radius:0;position:sticky}.messages-tree-collapsible .collapsible__content{padding:calc(var(--spacing)*3)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}
|
|
1
|
+
/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-medium:500;--radius-sm:var(--style-radius-s);--radius-md:var(--style-radius-m);--color-border:var(--theme-border-color);--color-background:var(--theme-bg);--color-elevation-0:var(--theme-elevation-0);--color-elevation-50:var(--theme-elevation-50);--color-elevation-100:var(--theme-elevation-100);--color-elevation-250:var(--theme-elevation-250);--color-elevation-400:var(--theme-elevation-400);--color-elevation-800:var(--theme-elevation-800)}}@layer base,components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.z-10{z-index:10}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-3{margin-inline:calc(var(--spacing)*-3)}.mx-0{margin-inline:calc(var(--spacing)*0)}.my-0{margin-block:calc(var(--spacing)*0)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.-ml-2{margin-left:calc(var(--spacing)*-2)}.ml-auto{margin-left:auto}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.h-\[calc\(100vh-var\(--app-header-height\)\)\]{height:calc(100vh - var(--app-header-height))}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-8{min-height:calc(var(--spacing)*8)}.w-8{width:calc(var(--spacing)*8)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[8rem\]{min-width:8rem}.flex-1{flex:1}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-hover-card-content-transform-origin\){transform-origin:var(--radix-hover-card-content-transform-origin)}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[3rem_8rem_1\.5rem\]{grid-template-columns:3rem 8rem 1.5rem}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-y-2{row-gap:calc(var(--spacing)*2)}.overflow-clip{overflow:clip}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-x-none{overscroll-behavior-x:none}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.border-error{border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-error-400)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-none{--tw-border-style:none;border-style:none}.border-border{border-color:var(--color-border)}.border-transparent{border-color:#0000}.bg-background{background-color:var(--color-background)}.bg-elevation-50{background-color:var(--color-elevation-50)}.bg-elevation-100{background-color:var(--color-elevation-100)}.bg-elevation-250{background-color:var(--color-elevation-250)}.bg-elevation-800{background-color:var(--color-elevation-800)}.bg-error{background-color:var(--theme-error-100)}.bg-transparent{background-color:#0000}.p-0{padding:calc(var(--spacing)*0)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.pt-8{padding-top:calc(var(--spacing)*8)}.pr-0{padding-right:calc(var(--spacing)*0)}.pb-16{padding-bottom:calc(var(--spacing)*16)}.pl-2{padding-left:calc(var(--spacing)*2)}.text-center{text-align:center}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-nowrap{text-wrap:nowrap}.text-elevation-0{color:var(--color-elevation-0)}.text-error{color:var(--theme-error-400)}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.running{animation-play-state:running}.empty\:hidden:empty{display:none}.focus-within\:border-elevation-400:focus-within{border-color:var(--color-elevation-400)}@media (hover:hover){.hover\:bg-elevation-250:hover{background-color:var(--color-elevation-250)}.hover\:bg-elevation-400:hover{background-color:var(--color-elevation-400)}.hover\:text-error:hover{color:var(--theme-error-400)}}.focus\:border-border:focus{border-color:var(--color-border)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=off\]\:cursor-pointer[data-state=off]{cursor:pointer}.data-\[state\=off\]\:opacity-50[data-state=off]{opacity:.5}@media (hover:hover){.data-\[state\=off\]\:hover\:opacity-100[data-state=off]:hover{opacity:1}}.data-\[state\=on\]\:bg-elevation-800[data-state=on]{background-color:var(--color-elevation-800)}.data-\[state\=on\]\:text-elevation-0[data-state=on]{color:var(--color-elevation-0)}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}.tiptap-editor{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.tiptap-editor>.ProseMirror{color:var(--tw-prose-body);max-width:65ch}.tiptap-editor>.ProseMirror :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.tiptap-editor>.ProseMirror :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.tiptap-editor>.ProseMirror :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.tiptap-editor>.ProseMirror :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.tiptap-editor>.ProseMirror :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.tiptap-editor>.ProseMirror :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.tiptap-editor>.ProseMirror :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.tiptap-editor>.ProseMirror :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.tiptap-editor>.ProseMirror :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.tiptap-editor>.ProseMirror :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.tiptap-editor>.ProseMirror :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.tiptap-editor>.ProseMirror :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.tiptap-editor>.ProseMirror :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.tiptap-editor>.ProseMirror :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.tiptap-editor>.ProseMirror :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.tiptap-editor>.ProseMirror :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.tiptap-editor>.ProseMirror :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.tiptap-editor>.ProseMirror :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.tiptap-editor>.ProseMirror :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.tiptap-editor>.ProseMirror :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.tiptap-editor>.ProseMirror :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.tiptap-editor>.ProseMirror :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.tiptap-editor>.ProseMirror :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.tiptap-editor>.ProseMirror :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.tiptap-editor>.ProseMirror :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.tiptap-editor>.ProseMirror :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.tiptap-editor>.ProseMirror :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.tiptap-editor>.ProseMirror :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.tiptap-editor>.ProseMirror :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.tiptap-editor>.ProseMirror :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.tiptap-editor>.ProseMirror :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.tiptap-editor>.ProseMirror :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px rgb(var(--tw-prose-kbd-shadows)/10%);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.tiptap-editor>.ProseMirror :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.tiptap-editor>.ProseMirror :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.tiptap-editor>.ProseMirror :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.tiptap-editor>.ProseMirror :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.tiptap-editor>.ProseMirror :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.tiptap-editor>.ProseMirror :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.tiptap-editor>.ProseMirror :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.tiptap-editor>.ProseMirror :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.tiptap-editor>.ProseMirror :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.tiptap-editor>.ProseMirror :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.tiptap-editor>.ProseMirror :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.tiptap-editor>.ProseMirror :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.tiptap-editor>.ProseMirror :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.tiptap-editor>.ProseMirror :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.tiptap-editor>.ProseMirror :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.tiptap-editor>.ProseMirror :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.tiptap-editor>.ProseMirror :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.tiptap-editor>.ProseMirror :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.tiptap-editor>.ProseMirror :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.tiptap-editor>.ProseMirror :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.tiptap-editor>.ProseMirror :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.tiptap-editor>.ProseMirror{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:NaN NaN NaN;--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.tiptap-editor>.ProseMirror :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.tiptap-editor>.ProseMirror :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.tiptap-editor>.ProseMirror :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.tiptap-editor>.ProseMirror :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.tiptap-editor>.ProseMirror :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.tiptap-editor>.ProseMirror :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tiptap-editor>.ProseMirror :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.tiptap-editor>.ProseMirror{font-size:1.125rem;line-height:1.77778}.tiptap-editor>.ProseMirror :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.tiptap-editor>.ProseMirror :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.09091em;margin-bottom:1.09091em;font-size:1.22222em;line-height:1.45455}.tiptap-editor>.ProseMirror :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em}.tiptap-editor>.ProseMirror :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.833333em;font-size:2.66667em;line-height:1}.tiptap-editor>.ProseMirror :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.66667em;line-height:1.33333}.tiptap-editor>.ProseMirror :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:.666667em;font-size:1.33333em;line-height:1.5}.tiptap-editor>.ProseMirror :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:.444444em;line-height:1.55556}.tiptap-editor>.ProseMirror :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.tiptap-editor>.ProseMirror :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.tiptap-editor>.ProseMirror :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.tiptap-editor>.ProseMirror :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.222222em;padding-inline-end:.444444em;padding-bottom:.222222em;border-radius:.3125rem;padding-inline-start:.444444em;font-size:.888889em}.tiptap-editor>.ProseMirror :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.tiptap-editor>.ProseMirror :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.866667em}.tiptap-editor>.ProseMirror :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.tiptap-editor>.ProseMirror :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;border-radius:.375rem;margin-top:2em;margin-bottom:2em;padding-inline-start:1.5em;font-size:.888889em;line-height:1.75}.tiptap-editor>.ProseMirror :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.55556em}.tiptap-editor>.ProseMirror :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;margin-bottom:.666667em}.tiptap-editor>.ProseMirror :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.444444em}.tiptap-editor>.ProseMirror :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.tiptap-editor>.ProseMirror :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.tiptap-editor>.ProseMirror :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.tiptap-editor>.ProseMirror :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.tiptap-editor>.ProseMirror :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.tiptap-editor>.ProseMirror :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.tiptap-editor>.ProseMirror :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.tiptap-editor>.ProseMirror :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.tiptap-editor>.ProseMirror :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;padding-inline-start:1.55556em}.tiptap-editor>.ProseMirror :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.11111em;margin-bottom:3.11111em}.tiptap-editor>.ProseMirror :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.tiptap-editor>.ProseMirror :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tiptap-editor>.ProseMirror :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em;line-height:1.5}.tiptap-editor>.ProseMirror :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.tiptap-editor>.ProseMirror :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.tiptap-editor>.ProseMirror :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.tiptap-editor>.ProseMirror :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.tiptap-editor>.ProseMirror :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.tiptap-editor>.ProseMirror :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.tiptap-editor>.ProseMirror :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.tiptap-editor>.ProseMirror :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.tiptap-editor>.ProseMirror :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1em;font-size:.888889em;line-height:1.5}.tiptap-editor>.ProseMirror :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.tiptap-editor>.ProseMirror :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.tiptap-editor>.ProseMirror:focus{--tw-outline-style:none;outline-style:none}.tiptap-editor>.ProseMirror:where([data-theme=dark],[data-theme=dark] *){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.tiptap-editor>.ProseMirror:focus{outline:none}.tiptap-editor>.ProseMirror>:first-child{margin-top:calc(var(--spacing)*0)}.tiptap-editor>.ProseMirror>:last-child{margin-bottom:calc(var(--spacing)*0)}@media (hover:hover){.messages-tree-collapsible:hover{border-color:var(--color-border)}}.messages-tree-collapsible>.collapsible__toggle-wrap{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-border);top:calc(var(--nesting-level)*40px - 26px);z-index:calc(9 - var(--nesting-level));position:sticky}.messages-tree-collapsible .collapsible__content{padding:calc(var(--spacing)*3)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { LiteralElement, MessageFormatElement, PoundElement } from '@formatjs/icu-messageformat-parser';
|
|
2
|
-
import { HeadingOptions } from '@tiptap/extension-heading';
|
|
3
2
|
import { CollectionConfig, PayloadRequest } from 'payload';
|
|
4
3
|
import { DeepPartial } from 'react-hook-form';
|
|
5
4
|
export interface MessagesPluginConfig {
|
|
@@ -18,18 +17,11 @@ export interface MessagesPluginConfig {
|
|
|
18
17
|
editorAccess?: MessagesGuard;
|
|
19
18
|
hooks?: MessagesHooks;
|
|
20
19
|
tabs?: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* The options for the rich text editor.
|
|
23
|
-
*/
|
|
24
|
-
richTextEditorOptions?: RichTextEditorOptions;
|
|
25
20
|
}
|
|
26
21
|
export type MessagesHooks = {
|
|
27
22
|
afterUpdate?: () => Promise<void> | void;
|
|
28
23
|
} & CollectionConfig["hooks"];
|
|
29
24
|
export type MessagesGuard = (req: PayloadRequest) => boolean | Promise<boolean>;
|
|
30
|
-
export type RichTextEditorOptions = {
|
|
31
|
-
heading?: Partial<HeadingOptions> | false;
|
|
32
|
-
};
|
|
33
25
|
type Locale = string;
|
|
34
26
|
export type Locales = [Locale, ...Locale[]];
|
|
35
27
|
export type Translations<T> = Record<Locale, T>;
|
package/dist/utils/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sources":["../../src/utils/schema.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"schema.js","sources":["../../src/utils/schema.ts"],"sourcesContent":["import type { MessageSchema, TemplateVariable } from \"@/types\";\nimport type { MessageFormatElement } from \"@formatjs/icu-messageformat-parser\";\nimport { parse, TYPE } from \"@formatjs/icu-messageformat-parser\";\n\nexport const parseMessageSchema = (schema: MessageSchema): MessageConfig => {\n const description = schema.match(/^\\[.+\\]/)?.[0];\n // TODO add support for variables description\n // const withoutDescription = schema.replace(description || \"\", \"\").trim();\n // const withoutOptional = withoutDescription.split(\" | \")[0]?.trim();\n\n return {\n description: description?.slice(1, -1),\n type: schema === \"$RICH$\" ? \"rich\" : \"icu\",\n variables: extractTemplateVariables(schema),\n };\n};\n\nexport const extractTemplateVariables = (\n schema: MessageSchema,\n): TemplateVariable[] => collectTemplateVariables(parse(schema));\n\nconst collectTemplateVariables = (\n parts: MessageFormatElement[],\n): TemplateVariable[] =>\n parts.flatMap<TemplateVariable>((part) => {\n switch (part.type) {\n case TYPE.literal:\n case TYPE.pound:\n return [];\n case TYPE.argument:\n case TYPE.number:\n case TYPE.date:\n case TYPE.time:\n return [part];\n case TYPE.plural:\n case TYPE.select:\n return [\n part,\n ...collectTemplateVariables(\n Object.values(part.options).flatMap(({ value }) => value),\n ),\n ];\n case TYPE.tag:\n return [part, ...collectTemplateVariables(part.children)];\n default:\n return [part];\n }\n });\n\n// MARK: Types\n\nexport type MessageType = \"rich\" | \"icu\";\nexport type MessageConfig = {\n description: string | undefined;\n type: MessageType;\n variables: TemplateVariable[];\n};\n"],"names":["parseMessageSchema","schema","extractTemplateVariables","collectTemplateVariables","parse","parts","part","TYPE","value"],"mappings":";AAIO,MAAMA,IAAqB,CAACC,OAM1B;AAAA,EACL,aANkBA,EAAO,MAAM,SAAS,IAAI,CAAC,GAMnB,MAAM,GAAG,EAAE;AAAA,EACrC,MAAMA,MAAW,WAAW,SAAS;AAAA,EACrC,WAAWC,EAAyBD,CAAM;AAAA,IAIjCC,IAA2B,CACtCD,MACuBE,EAAyBC,EAAMH,CAAM,CAAC,GAEzDE,IAA2B,CAC/BE,MAEAA,EAAM,QAA0B,CAACC,MAAS;AACxC,UAAQA,EAAK,MAAA;AAAA,IACX,KAAKC,EAAK;AAAA,IACV,KAAKA,EAAK;AACR,aAAO,CAAA;AAAA,IACT,KAAKA,EAAK;AAAA,IACV,KAAKA,EAAK;AAAA,IACV,KAAKA,EAAK;AAAA,IACV,KAAKA,EAAK;AACR,aAAO,CAACD,CAAI;AAAA,IACd,KAAKC,EAAK;AAAA,IACV,KAAKA,EAAK;AACR,aAAO;AAAA,QACLD;AAAA,QACA,GAAGH;AAAA,UACD,OAAO,OAAOG,EAAK,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAAE,EAAA,MAAYA,CAAK;AAAA,QAAA;AAAA,MAC1D;AAAA,IAEJ,KAAKD,EAAK;AACR,aAAO,CAACD,GAAM,GAAGH,EAAyBG,EAAK,QAAQ,CAAC;AAAA,IAC1D;AACE,aAAO,CAACA,CAAI;AAAA,EAAA;AAElB,CAAC;"}
|
package/dist/utils/validate.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ValidateResult } from 'react-hook-form';
|
|
2
1
|
import { TemplateVariable } from '../types.ts';
|
|
2
|
+
import { ValidateResult } from 'react-hook-form';
|
|
3
3
|
export declare const validateMessage: (value: unknown, variables: TemplateVariable[]) => ValidateResult;
|
|
4
4
|
export declare const createValidator: (variables: TemplateVariable[]) => MessageValidator;
|
|
5
5
|
export type MessageValidator = (value: unknown) => ValidateResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sources":["../../src/utils/validate.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"validate.js","sources":["../../src/utils/validate.ts"],"sourcesContent":["import type { TemplateVariable } from \"@/types\";\nimport type { ValidateResult } from \"react-hook-form\";\nimport { TYPE } from \"@formatjs/icu-messageformat-parser\";\n\nimport { isNumericElement, isTemporalElement } from \"./guards\";\nimport { extractTemplateVariables } from \"./schema\";\n\nexport const validateMessage = (\n value: unknown,\n variables: TemplateVariable[],\n): ValidateResult => {\n if (typeof value !== \"string\") return \"Invalid value\";\n\n try {\n const variableUsages = extractTemplateVariables(value);\n\n for (const allowedVariable of variables) {\n const variableUsage = variableUsages.find(\n (placeholder) => placeholder.value === allowedVariable.value,\n );\n\n if (!variableUsage) continue;\n\n if (isNumericElement(allowedVariable)) {\n if (isNumericElement(variableUsage)) continue;\n return `{${allowedVariable.value}} has invalid type`;\n }\n\n if (isTemporalElement(allowedVariable)) {\n if (isTemporalElement(variableUsage)) continue;\n return `{${allowedVariable.value}} has invalid type`;\n }\n\n switch (allowedVariable.type) {\n case TYPE.argument:\n if (variableUsage.type === TYPE.argument) continue;\n return `{${allowedVariable.value}} has invalid type`;\n case TYPE.select: {\n if (variableUsage.type !== TYPE.select)\n return `{${allowedVariable.value}} has invalid type`;\n\n const allowedOptions = Object.keys(allowedVariable.options);\n for (const option of allowedOptions) {\n if (variableUsage.options[option]) continue;\n return `{${allowedVariable.value}} has missing option: ${option}`;\n }\n const usedOptions = Object.keys(variableUsage.options);\n for (const option of usedOptions) {\n if (allowedOptions.includes(option)) continue;\n return `{${allowedVariable.value}} has unsupported option: ${option}`;\n }\n continue;\n }\n case TYPE.tag:\n if (variableUsage.type === TYPE.tag) continue;\n return `{${allowedVariable.value}} has invalid type`;\n }\n }\n\n const supportedVariables = new Set(variables.map(({ value }) => value));\n\n for (const variableUsage of variableUsages) {\n if (supportedVariables.has(variableUsage.value)) continue;\n return `{${variableUsage.value}} is not supported`;\n }\n\n return true;\n } catch (error) {\n if (!(error instanceof Error)) return false;\n return `Invalid syntax: ${error.message}`;\n }\n};\n\nexport const createValidator =\n (variables: TemplateVariable[]): MessageValidator =>\n (value: unknown) =>\n validateMessage(value, variables);\n\nexport type MessageValidator = (value: unknown) => ValidateResult;\n"],"names":["validateMessage","value","variables","variableUsages","extractTemplateVariables","allowedVariable","variableUsage","placeholder","isNumericElement","isTemporalElement","TYPE","allowedOptions","option","usedOptions","supportedVariables","error","createValidator"],"mappings":";;;AAOO,MAAMA,IAAkB,CAC7BC,GACAC,MACmB;AACnB,MAAI,OAAOD,KAAU,SAAU,QAAO;AAEtC,MAAI;AACF,UAAME,IAAiBC,EAAyBH,CAAK;AAErD,eAAWI,KAAmBH,GAAW;AACvC,YAAMI,IAAgBH,EAAe;AAAA,QACnC,CAACI,MAAgBA,EAAY,UAAUF,EAAgB;AAAA,MAAA;AAGzD,UAAKC,GAEL;AAAA,YAAIE,EAAiBH,CAAe,GAAG;AACrC,cAAIG,EAAiBF,CAAa,EAAG;AACrC,iBAAO,IAAID,EAAgB,KAAK;AAAA,QAClC;AAEA,YAAII,EAAkBJ,CAAe,GAAG;AACtC,cAAII,EAAkBH,CAAa,EAAG;AACtC,iBAAO,IAAID,EAAgB,KAAK;AAAA,QAClC;AAEA,gBAAQA,EAAgB,MAAA;AAAA,UACtB,KAAKK,EAAK;AACR,gBAAIJ,EAAc,SAASI,EAAK,SAAU;AAC1C,mBAAO,IAAIL,EAAgB,KAAK;AAAA,UAClC,KAAKK,EAAK,QAAQ;AAChB,gBAAIJ,EAAc,SAASI,EAAK;AAC9B,qBAAO,IAAIL,EAAgB,KAAK;AAElC,kBAAMM,IAAiB,OAAO,KAAKN,EAAgB,OAAO;AAC1D,uBAAWO,KAAUD;AACnB,kBAAI,CAAAL,EAAc,QAAQM,CAAM;AAChC,uBAAO,IAAIP,EAAgB,KAAK,yBAAyBO,CAAM;AAEjE,kBAAMC,IAAc,OAAO,KAAKP,EAAc,OAAO;AACrD,uBAAWM,KAAUC;AACnB,kBAAI,CAAAF,EAAe,SAASC,CAAM;AAClC,uBAAO,IAAIP,EAAgB,KAAK,6BAA6BO,CAAM;AAErE;AAAA,UACF;AAAA,UACA,KAAKF,EAAK;AACR,gBAAIJ,EAAc,SAASI,EAAK,IAAK;AACrC,mBAAO,IAAIL,EAAgB,KAAK;AAAA,QAAA;AAAA;AAAA,IAEtC;AAEA,UAAMS,IAAqB,IAAI,IAAIZ,EAAU,IAAI,CAAC,EAAE,OAAAD,QAAYA,CAAK,CAAC;AAEtE,eAAWK,KAAiBH;AAC1B,UAAI,CAAAW,EAAmB,IAAIR,EAAc,KAAK;AAC9C,eAAO,IAAIA,EAAc,KAAK;AAGhC,WAAO;AAAA,EACT,SAASS,GAAO;AACd,WAAMA,aAAiB,QAChB,mBAAmBA,EAAM,OAAO,KADD;AAAA,EAExC;AACF,GAEaC,IACX,CAACd,MACD,CAACD,MACCD,EAAgBC,GAAOC,CAAS;"}
|