@intlayer/design-system 5.7.2 → 5.7.4
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/.vite/manifest.json +39 -0
- package/dist/Form-CriPBaZk.js.map +1 -1
- package/dist/Form-DJrUK3mm.cjs.map +1 -1
- package/dist/better-auth.8zoxzg-F-BEBqzpjz.cjs +40 -0
- package/dist/better-auth.8zoxzg-F-BEBqzpjz.cjs.map +1 -0
- package/dist/better-auth.8zoxzg-F-D8e0X4ys.js +41 -0
- package/dist/better-auth.8zoxzg-F-D8e0X4ys.js.map +1 -0
- package/dist/components/Breadcrumb/index.cjs +1 -0
- package/dist/components/Breadcrumb/index.cjs.map +1 -1
- package/dist/components/Breadcrumb/index.d.ts +1 -1
- package/dist/components/Breadcrumb/index.d.ts.map +1 -1
- package/dist/components/Breadcrumb/index.mjs +1 -0
- package/dist/components/Breadcrumb/index.mjs.map +1 -1
- package/dist/components/CopyToClipboard/index.cjs +32 -23
- package/dist/components/CopyToClipboard/index.cjs.map +1 -1
- package/dist/components/CopyToClipboard/index.d.ts.map +1 -1
- package/dist/components/CopyToClipboard/index.mjs +32 -23
- package/dist/components/CopyToClipboard/index.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs +7 -4
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts +2 -2
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +7 -4
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs +1 -0
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +1 -0
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs +2 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +2 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs +2 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +2 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs +2 -2
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +2 -2
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +5 -2
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +5 -2
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/StructureView/StructureView.cjs +2 -1
- package/dist/components/DictionaryFieldEditor/StructureView/StructureView.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/StructureView/StructureView.mjs +2 -1
- package/dist/components/DictionaryFieldEditor/StructureView/StructureView.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.cjs +2 -1
- package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs +2 -1
- package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs.map +1 -1
- package/dist/components/EditableField/EditableFieldTextArea.cjs +2 -1
- package/dist/components/EditableField/EditableFieldTextArea.cjs.map +1 -1
- package/dist/components/EditableField/EditableFieldTextArea.mjs +2 -1
- package/dist/components/EditableField/EditableFieldTextArea.mjs.map +1 -1
- package/dist/components/Flags/Flag.cjs +23 -1
- package/dist/components/Flags/Flag.cjs.map +1 -1
- package/dist/components/Flags/Flag.d.ts.map +1 -1
- package/dist/components/Flags/Flag.mjs +23 -1
- package/dist/components/Flags/Flag.mjs.map +1 -1
- package/dist/components/Form/FormBase.cjs.map +1 -1
- package/dist/components/Form/FormBase.mjs.map +1 -1
- package/dist/components/Form/elements/CheckboxElement.d.ts +2 -2
- package/dist/components/Form/elements/CheckboxElement.d.ts.map +1 -1
- package/dist/components/IDE/CodeContext.cjs +2 -1
- package/dist/components/IDE/CodeContext.cjs.map +1 -1
- package/dist/components/IDE/CodeContext.mjs +2 -1
- package/dist/components/IDE/CodeContext.mjs.map +1 -1
- package/dist/components/Input/Checkbox.cjs +29 -22
- package/dist/components/Input/Checkbox.cjs.map +1 -1
- package/dist/components/Input/Checkbox.d.ts +3 -2
- package/dist/components/Input/Checkbox.d.ts.map +1 -1
- package/dist/components/Input/Checkbox.mjs +30 -23
- package/dist/components/Input/Checkbox.mjs.map +1 -1
- package/dist/components/Link/Link.cjs +2 -2
- package/dist/components/Link/Link.cjs.map +1 -1
- package/dist/components/Link/Link.mjs +2 -2
- package/dist/components/Link/Link.mjs.map +1 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs +2 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs.map +1 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +2 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.cjs +2 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.cjs.map +1 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs +2 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs.map +1 -1
- package/dist/components/Modal/Modal.cjs +2 -1
- package/dist/components/Modal/Modal.cjs.map +1 -1
- package/dist/components/Modal/Modal.mjs +2 -1
- package/dist/components/Modal/Modal.mjs.map +1 -1
- package/dist/components/Navbar/MobileNavbar.cjs +2 -1
- package/dist/components/Navbar/MobileNavbar.cjs.map +1 -1
- package/dist/components/Navbar/MobileNavbar.mjs +2 -1
- package/dist/components/Navbar/MobileNavbar.mjs.map +1 -1
- package/dist/components/Navbar/index.cjs +2 -1
- package/dist/components/Navbar/index.cjs.map +1 -1
- package/dist/components/Navbar/index.mjs +2 -1
- package/dist/components/Navbar/index.mjs.map +1 -1
- package/dist/components/SwitchSelector/index.cjs +2 -1
- package/dist/components/SwitchSelector/index.cjs.map +1 -1
- package/dist/components/SwitchSelector/index.mjs +2 -1
- package/dist/components/SwitchSelector/index.mjs.map +1 -1
- package/dist/components/TabSelector/TabSelector.cjs +2 -1
- package/dist/components/TabSelector/TabSelector.cjs.map +1 -1
- package/dist/components/TabSelector/TabSelector.mjs +2 -1
- package/dist/components/TabSelector/TabSelector.mjs.map +1 -1
- package/dist/components/TextArea/AutocompleteTextArea.cjs +5 -4
- package/dist/components/TextArea/AutocompleteTextArea.cjs.map +1 -1
- package/dist/components/TextArea/AutocompleteTextArea.mjs +5 -4
- package/dist/components/TextArea/AutocompleteTextArea.mjs.map +1 -1
- package/dist/hooks/auth.cjs +1783 -0
- package/dist/hooks/auth.cjs.map +1 -0
- package/dist/hooks/auth.d.ts +32 -0
- package/dist/hooks/auth.d.ts.map +1 -0
- package/dist/hooks/auth.mjs +1783 -0
- package/dist/hooks/auth.mjs.map +1 -0
- package/dist/hooks/index.cjs +4 -1
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.mjs +5 -2
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/hooks/intlayerAPIHooks.cjs +65 -66
- package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
- package/dist/hooks/intlayerAPIHooks.d.ts +884 -9
- package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
- package/dist/hooks/intlayerAPIHooks.mjs +66 -67
- package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
- package/dist/hooks/useAuth/useAuth.cjs.map +1 -1
- package/dist/hooks/useAuth/useAuth.d.ts +6 -7
- package/dist/hooks/useAuth/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth/useAuth.mjs.map +1 -1
- package/dist/hooks/useAuth/useOAuth2.cjs +3 -3
- package/dist/hooks/useAuth/useOAuth2.cjs.map +1 -1
- package/dist/hooks/useAuth/useOAuth2.mjs +3 -3
- package/dist/hooks/useAuth/useOAuth2.mjs.map +1 -1
- package/dist/hooks/useAuth/useSession.cjs +5 -5
- package/dist/hooks/useAuth/useSession.cjs.map +1 -1
- package/dist/hooks/useAuth/useSession.d.ts +354 -6
- package/dist/hooks/useAuth/useSession.d.ts.map +1 -1
- package/dist/hooks/useAuth/useSession.mjs +5 -5
- package/dist/hooks/useAuth/useSession.mjs.map +1 -1
- package/dist/hooks/useIntlayerAPI.cjs +7 -1
- package/dist/hooks/useIntlayerAPI.cjs.map +1 -1
- package/dist/hooks/useIntlayerAPI.d.ts +11 -0
- package/dist/hooks/useIntlayerAPI.d.ts.map +1 -0
- package/dist/hooks/useIntlayerAPI.mjs +8 -2
- package/dist/hooks/useIntlayerAPI.mjs.map +1 -1
- package/dist/hooks/useUser/index.cjs +2 -1
- package/dist/hooks/useUser/index.cjs.map +1 -1
- package/dist/hooks/useUser/index.d.ts +18 -2
- package/dist/hooks/useUser/index.d.ts.map +1 -1
- package/dist/hooks/useUser/index.mjs +2 -1
- package/dist/hooks/useUser/index.mjs.map +1 -1
- package/package.json +20 -19
- package/dist/tailwind.css +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../src/components/Breadcrumb/index.tsx"],"sourcesContent":["'use client';\n\nimport type { Locales } from '@intlayer/config/client';\nimport { ChevronRightIcon } from 'lucide-react';\nimport {
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/components/Breadcrumb/index.tsx"],"sourcesContent":["'use client';\n\nimport type { Locales } from '@intlayer/config/client';\nimport { ChevronRightIcon } from 'lucide-react';\nimport { Fragment, type FC, type HTMLAttributes } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { cn } from '../../utils/cn';\nimport { Button, type ButtonProps } from '../Button';\nimport { Link, type LinkProps } from '../Link';\nimport { breadCrumbContent } from './breadcrumb.content';\n\ntype LinkLinkProps = {\n children: string;\n position: number;\n locale?: Locales;\n} & Omit<LinkProps, 'children' | 'label'>;\n\nconst LinkLink: FC<LinkLinkProps> = ({\n href,\n lang,\n children,\n onClick,\n color,\n position,\n locale,\n ...props\n}) => {\n const { linkLabel } = useDictionary(breadCrumbContent);\n\n return (\n <>\n <Link\n href={href}\n locale={locale}\n color={color}\n onClick={onClick}\n itemProp=\"item\"\n isExternalLink={false}\n itemScope\n itemType=\"https://schema.org/WebPage\"\n {...props}\n label={`${linkLabel} ${children}`}\n itemID={href}\n >\n <span itemProp=\"name\">{children}</span>\n </Link>\n <meta itemProp=\"position\" content={position.toString()} />\n </>\n );\n};\n\ntype ButtonButtonProps = {\n children: string;\n position: number;\n} & Omit<ButtonProps, 'children' | 'label'>;\n\nconst ButtonLink: FC<ButtonButtonProps> = ({\n children: text,\n onClick,\n color,\n position,\n ...props\n}) => {\n const { linkLabel } = useDictionary(breadCrumbContent);\n\n return (\n <>\n <Button\n onClick={onClick}\n variant=\"link\"\n label={`${linkLabel} ${text}`}\n color={color}\n itemProp=\"item\"\n {...props}\n >\n <span itemProp=\"name\">{text}</span>\n </Button>\n <meta itemProp=\"position\" content={position.toString()} />\n </>\n );\n};\n\ntype SpanProps = {\n children: string;\n position: number;\n} & HTMLAttributes<HTMLSpanElement>;\n\nconst Span: FC<SpanProps> = ({ children, position, ...props }) => (\n <span itemProp=\"item\">\n <span itemProp=\"name\" {...props}>\n {children}\n </span>\n <meta itemProp=\"position\" content={position.toString()} />\n </span>\n);\n\ntype DetailedBreadcrumbLink = {\n href?: string;\n text: string;\n onClick?: () => void;\n};\nexport type BreadcrumbLink = string | DetailedBreadcrumbLink;\n\nexport type BreadcrumbProps = {\n links: BreadcrumbLink[];\n color?:\n | 'primary'\n | 'destructive'\n | 'neutral'\n | 'light'\n | 'dark'\n | 'text'\n | 'custom';\n locale?: Locales;\n elementType?: 'page' | 'location';\n} & HTMLAttributes<HTMLOListElement>;\n\nexport const Breadcrumb: FC<BreadcrumbProps> = ({\n links,\n className,\n color = 'text',\n locale,\n elementType = 'page',\n ...props\n}) => (\n <nav aria-label=\"breadcrumb\">\n <ol\n className={cn(\n 'flex flex-row flex-wrap items-center gap-2 text-sm',\n className\n )}\n itemScope\n itemType=\"http://schema.org/BreadcrumbList\"\n {...props}\n >\n {links.map((link, index) => {\n const isLastLink = index === links.length - 1;\n const isLink =\n typeof link === 'object' && typeof link.href === 'string';\n const isButton =\n typeof link === 'object' && typeof link.onClick === 'function';\n const isActive = index === links.length - 1;\n const ariaCurrent = isActive ? elementType : undefined;\n\n const text = (link as DetailedBreadcrumbLink).text ?? link;\n\n let section = (\n <Span key={text} position={index + 1} aria-current={ariaCurrent}>\n {text}\n </Span>\n );\n\n if (isLink) {\n section = (\n <LinkLink\n key={text}\n href={link.href!}\n color={color}\n position={index + 1}\n locale={locale}\n aria-current={ariaCurrent}\n >\n {text}\n </LinkLink>\n );\n } else if (isButton) {\n section = (\n <ButtonLink\n key={text}\n onClick={link.onClick!}\n color={color}\n position={index + 1}\n aria-current={ariaCurrent}\n >\n {text}\n </ButtonLink>\n );\n }\n\n const listElement = (\n <li\n itemProp=\"itemListElement\"\n itemScope\n itemType=\"https://schema.org/ListItem\"\n key={text}\n >\n {section}\n </li>\n );\n\n if (isLastLink) {\n return listElement;\n }\n\n return (\n <Fragment key={text}>\n {listElement}\n <ChevronRightIcon size={10} />\n </Fragment>\n );\n })}\n </ol>\n </nav>\n);\n"],"names":["Fragment"],"mappings":"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"}
|
|
@@ -17,29 +17,38 @@ const CopyToClipboard = ({
|
|
|
17
17
|
setTimeout(() => setIsCopied(false), 1e3);
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
20
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21
|
+
"span",
|
|
22
|
+
{
|
|
23
|
+
className: utils_cn.cn(
|
|
24
|
+
"inline-block gap-2 hover:cursor-pointer hover:bg-neutral/10 rounded-md p-0.5",
|
|
25
|
+
className
|
|
26
|
+
),
|
|
27
|
+
onClick: handleCopy,
|
|
28
|
+
children: [
|
|
29
|
+
children,
|
|
30
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex", children: text && (isCopied ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
31
|
+
lucideReact.CopyCheck,
|
|
32
|
+
{
|
|
33
|
+
size: 12,
|
|
34
|
+
"aria-label": "copied",
|
|
35
|
+
role: "button",
|
|
36
|
+
"data-testid": "copy-to-clipboard",
|
|
37
|
+
className: "ml-1 mt-1"
|
|
38
|
+
}
|
|
39
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
40
|
+
lucideReact.CopyIcon,
|
|
41
|
+
{
|
|
42
|
+
size: 12,
|
|
43
|
+
"aria-label": "copy",
|
|
44
|
+
role: "button",
|
|
45
|
+
"data-testid": "copy-to-clipboard",
|
|
46
|
+
className: "ml-1 mt-1 cursor-pointer"
|
|
47
|
+
}
|
|
48
|
+
)) })
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
);
|
|
43
52
|
};
|
|
44
53
|
exports.CopyToClipboard = CopyToClipboard;
|
|
45
54
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../src/components/CopyToClipboard/index.tsx"],"sourcesContent":["'use client';\n\nimport { CopyCheck, CopyIcon } from 'lucide-react';\nimport { type FC, type PropsWithChildren, useState } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport type CopyToClipboardProps = PropsWithChildren<{\n text: string;\n className?: string;\n}>;\n\nexport const CopyToClipboard: FC<CopyToClipboardProps> = ({\n text,\n children,\n className,\n}) => {\n const [isCopied, setIsCopied] = useState(false);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(text).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 1000);\n });\n };\n\n return (\n <span
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/CopyToClipboard/index.tsx"],"sourcesContent":["'use client';\n\nimport { CopyCheck, CopyIcon } from 'lucide-react';\nimport { type FC, type PropsWithChildren, useState } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport type CopyToClipboardProps = PropsWithChildren<{\n text: string;\n className?: string;\n}>;\n\nexport const CopyToClipboard: FC<CopyToClipboardProps> = ({\n text,\n children,\n className,\n}) => {\n const [isCopied, setIsCopied] = useState(false);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(text).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 1000);\n });\n };\n\n return (\n <span\n className={cn(\n 'inline-block gap-2 hover:cursor-pointer hover:bg-neutral/10 rounded-md p-0.5',\n className\n )}\n onClick={handleCopy}\n >\n {children}\n\n <span className=\"inline-flex\">\n {text &&\n (isCopied ? (\n <CopyCheck\n size={12}\n aria-label=\"copied\"\n role=\"button\"\n data-testid=\"copy-to-clipboard\"\n className=\"ml-1 mt-1\"\n />\n ) : (\n <CopyIcon\n size={12}\n aria-label=\"copy\"\n role=\"button\"\n data-testid=\"copy-to-clipboard\"\n className=\"ml-1 mt-1 cursor-pointer\"\n />\n ))}\n </span>\n </span>\n );\n};\n"],"names":["useState","jsxs","cn","jsx","CopyCheck","CopyIcon"],"mappings":";;;;;;;AAWO,MAAM,kBAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,UAAU,WAAW,IAAIA,aAAAA,SAAS,KAAK;AAE9C,QAAM,aAAa,MAAM;AACvB,cAAU,UAAU,UAAU,IAAI,EAAE,KAAK,MAAM;AAC7C,kBAAY,IAAI;AAChB,iBAAW,MAAM,YAAY,KAAK,GAAG,GAAI;AAAA,IAAA,CAC1C;AAAA,EACH;AAGE,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,SAAA;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,SAAS;AAAA,MAER,UAAA;AAAA,QAAA;AAAA,QAEAC,2BAAA,IAAA,QAAA,EAAK,WAAU,eACb,mBACE,WACCA,2BAAA;AAAA,UAACC,YAAA;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,cAAW;AAAA,YACX,MAAK;AAAA,YACL,eAAY;AAAA,YACZ,WAAU;AAAA,UAAA;AAAA,QAAA,IAGZD,2BAAA;AAAA,UAACE,YAAA;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,cAAW;AAAA,YACX,MAAK;AAAA,YACL,eAAY;AAAA,YACZ,WAAU;AAAA,UAAA;AAAA,QAAA,GAGlB,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CopyToClipboard/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAY,MAAM,OAAO,CAAC;AAGlE,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CopyToClipboard/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAY,MAAM,OAAO,CAAC;AAGlE,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA8CpD,CAAC"}
|
|
@@ -15,29 +15,38 @@ const CopyToClipboard = ({
|
|
|
15
15
|
setTimeout(() => setIsCopied(false), 1e3);
|
|
16
16
|
});
|
|
17
17
|
};
|
|
18
|
-
return /* @__PURE__ */ jsxs(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
18
|
+
return /* @__PURE__ */ jsxs(
|
|
19
|
+
"span",
|
|
20
|
+
{
|
|
21
|
+
className: cn(
|
|
22
|
+
"inline-block gap-2 hover:cursor-pointer hover:bg-neutral/10 rounded-md p-0.5",
|
|
23
|
+
className
|
|
24
|
+
),
|
|
25
|
+
onClick: handleCopy,
|
|
26
|
+
children: [
|
|
27
|
+
children,
|
|
28
|
+
/* @__PURE__ */ jsx("span", { className: "inline-flex", children: text && (isCopied ? /* @__PURE__ */ jsx(
|
|
29
|
+
CopyCheck,
|
|
30
|
+
{
|
|
31
|
+
size: 12,
|
|
32
|
+
"aria-label": "copied",
|
|
33
|
+
role: "button",
|
|
34
|
+
"data-testid": "copy-to-clipboard",
|
|
35
|
+
className: "ml-1 mt-1"
|
|
36
|
+
}
|
|
37
|
+
) : /* @__PURE__ */ jsx(
|
|
38
|
+
CopyIcon,
|
|
39
|
+
{
|
|
40
|
+
size: 12,
|
|
41
|
+
"aria-label": "copy",
|
|
42
|
+
role: "button",
|
|
43
|
+
"data-testid": "copy-to-clipboard",
|
|
44
|
+
className: "ml-1 mt-1 cursor-pointer"
|
|
45
|
+
}
|
|
46
|
+
)) })
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
);
|
|
41
50
|
};
|
|
42
51
|
export {
|
|
43
52
|
CopyToClipboard
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../src/components/CopyToClipboard/index.tsx"],"sourcesContent":["'use client';\n\nimport { CopyCheck, CopyIcon } from 'lucide-react';\nimport { type FC, type PropsWithChildren, useState } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport type CopyToClipboardProps = PropsWithChildren<{\n text: string;\n className?: string;\n}>;\n\nexport const CopyToClipboard: FC<CopyToClipboardProps> = ({\n text,\n children,\n className,\n}) => {\n const [isCopied, setIsCopied] = useState(false);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(text).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 1000);\n });\n };\n\n return (\n <span
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/components/CopyToClipboard/index.tsx"],"sourcesContent":["'use client';\n\nimport { CopyCheck, CopyIcon } from 'lucide-react';\nimport { type FC, type PropsWithChildren, useState } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport type CopyToClipboardProps = PropsWithChildren<{\n text: string;\n className?: string;\n}>;\n\nexport const CopyToClipboard: FC<CopyToClipboardProps> = ({\n text,\n children,\n className,\n}) => {\n const [isCopied, setIsCopied] = useState(false);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(text).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 1000);\n });\n };\n\n return (\n <span\n className={cn(\n 'inline-block gap-2 hover:cursor-pointer hover:bg-neutral/10 rounded-md p-0.5',\n className\n )}\n onClick={handleCopy}\n >\n {children}\n\n <span className=\"inline-flex\">\n {text &&\n (isCopied ? (\n <CopyCheck\n size={12}\n aria-label=\"copied\"\n role=\"button\"\n data-testid=\"copy-to-clipboard\"\n className=\"ml-1 mt-1\"\n />\n ) : (\n <CopyIcon\n size={12}\n aria-label=\"copy\"\n role=\"button\"\n data-testid=\"copy-to-clipboard\"\n className=\"ml-1 mt-1 cursor-pointer\"\n />\n ))}\n </span>\n </span>\n );\n};\n"],"names":[],"mappings":";;;;;AAWO,MAAM,kBAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAE9C,QAAM,aAAa,MAAM;AACvB,cAAU,UAAU,UAAU,IAAI,EAAE,KAAK,MAAM;AAC7C,kBAAY,IAAI;AAChB,iBAAW,MAAM,YAAY,KAAK,GAAG,GAAI;AAAA,IAAA,CAC1C;AAAA,EACH;AAGE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,SAAS;AAAA,MAER,UAAA;AAAA,QAAA;AAAA,QAEA,oBAAA,QAAA,EAAK,WAAU,eACb,mBACE,WACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,cAAW;AAAA,YACX,MAAK;AAAA,YACL,eAAY;AAAA,YACZ,WAAU;AAAA,UAAA;AAAA,QAAA,IAGZ;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,cAAW;AAAA,YACX,MAAK;AAAA,YACL,eAAY;AAAA,YACZ,WAAU;AAAA,UAAA;AAAA,QAAA,GAGlB,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
|
|
@@ -7,10 +7,11 @@ const editorReact = require("@intlayer/editor-react");
|
|
|
7
7
|
const lucideReact = require("lucide-react");
|
|
8
8
|
const ReactExports = require("react");
|
|
9
9
|
const reactIntlayer = require("react-intlayer");
|
|
10
|
+
require("@intlayer/config/built");
|
|
11
|
+
require("../../../better-auth.8zoxzg-F-BEBqzpjz.cjs");
|
|
10
12
|
const hooks_intlayerAPIHooks = require("../../../hooks/intlayerAPIHooks.cjs");
|
|
11
13
|
require("../../../hooks/useAsync/useAsyncStateStore.cjs");
|
|
12
14
|
require("@intlayer/api");
|
|
13
|
-
require("@intlayer/config/built");
|
|
14
15
|
require("deepmerge");
|
|
15
16
|
require("../../../hooks/useScrollBlockage/useScrollBlockageStore.cjs");
|
|
16
17
|
const utils_object = require("../../../utils/object.cjs");
|
|
@@ -62,9 +63,11 @@ const ContentEditorTextArea = ({
|
|
|
62
63
|
}),
|
|
63
64
|
keyPath,
|
|
64
65
|
locales: configuration.internationalization.locales ?? [],
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
aiOptions: {
|
|
67
|
+
apiKey: configuration.ai?.apiKey,
|
|
68
|
+
model: configuration.ai?.model,
|
|
69
|
+
temperature: configuration.ai?.temperature
|
|
70
|
+
}
|
|
68
71
|
}).then((response) => {
|
|
69
72
|
if (!response?.data) return;
|
|
70
73
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextEditor.cjs","sources":["../../../../src/components/DictionaryFieldEditor/ContentEditorView/TextEditor.tsx"],"sourcesContent":["'use client';\n\nimport type { Locales } from '@intlayer/config';\nimport {\n type Dictionary,\n type MarkdownContent,\n type NestedContent,\n type EnumerationContent,\n type TranslationContent,\n NodeType,\n type KeyPath,\n type ContentNode,\n getLocaleName,\n getNodeType,\n type ConditionContent,\n getEmptyNode,\n InsertionContent,\n FileContent,\n} from '@intlayer/core';\nimport { useConfiguration, useEditedContent } from '@intlayer/editor-react';\nimport { Plus, Trash, WandSparkles } from 'lucide-react';\nimport { Fragment, ReactNode, useState, type FC } from 'react';\nimport { useDictionary, useLocale } from 'react-intlayer';\nimport { useAuditContentDeclarationField } from '../../../hooks';\nimport { renameKey } from '../../../utils/object';\nimport { Button } from '../../Button';\nimport { Container } from '../../Container';\nimport {\n type ContentEditorInputProps as ContentEditorInputPropsBase,\n ContentEditorInput as ContentEditorInputBase,\n} from '../../ContentEditor/ContentEditorInput';\nimport {\n type ContentEditorTextAreaProps as ContentEditorTextAreaPropsBase,\n ContentEditorTextArea as ContentEditorTextAreaBase,\n} from '../../ContentEditor/ContentEditorTextArea';\nimport { Label } from '../../Label';\nimport { useLocaleSwitcherContent } from '../../LocaleSwitcherContentDropDown';\nimport { MarkdownRenderer } from '../../MarkDownRender';\nimport {\n type SwitchSelectorChoices,\n type SwitchSelectorProps,\n SwitchSelector,\n} from '../../SwitchSelector';\nimport { EnumKeyInput } from '../EnumKeyInput';\nimport { navigationViewContent } from '../NavigationView/navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\ntype ContentEditorTextAreaProps = Omit<\n ContentEditorTextAreaPropsBase,\n 'onContentChange'\n> & {\n keyPath: KeyPath[];\n dictionary: Dictionary;\n};\n\nconst ContentEditorTextArea: FC<ContentEditorTextAreaProps> = ({\n keyPath,\n dictionary,\n ...props\n}) => {\n const { editedContent, addEditedContent } = useEditedContent();\n const configuration = useConfiguration();\n const { auditContentDeclarationField, isLoading: isAuditing } =\n useAuditContentDeclarationField();\n\n return (\n <ContentEditorTextAreaBase\n variant=\"default\"\n onContentChange={(newValue) =>\n addEditedContent(dictionary.key, newValue, keyPath)\n }\n additionalButtons={\n <Button\n Icon={WandSparkles}\n label=\"Audit\"\n variant=\"hoverable\"\n size=\"icon-sm\"\n color=\"text\"\n className=\"cursor-pointer hover:scale-110\"\n isLoading={isAuditing}\n onClick={() => {\n auditContentDeclarationField({\n fileContent: JSON.stringify({\n ...dictionary,\n ...(editedContent?.[dictionary.key] ?? {}),\n }),\n keyPath,\n locales: configuration.internationalization.locales ?? [],\n openAiApiKey: configuration.editor.openAiApiKey,\n model: configuration.editor.openAiApiModel,\n temperature: configuration.editor.openAiApiTemperature,\n }).then((response) => {\n if (!response?.data) return;\n\n try {\n const editedContent = response.data.fileContent as string;\n\n addEditedContent(dictionary.key, editedContent, keyPath);\n } catch (error) {\n console.error(error);\n }\n });\n }}\n />\n }\n {...props}\n />\n );\n};\n\ntype ContentEditorInputProps = Omit<\n ContentEditorInputPropsBase,\n 'onContentChange'\n> & {\n keyPath: KeyPath[];\n dictionary: Dictionary;\n};\n\nconst ContentEditorInput: FC<ContentEditorInputProps> = ({\n keyPath,\n dictionary,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n return (\n <ContentEditorInputBase\n variant=\"default\"\n onContentChange={(newValue) =>\n addEditedContent(dictionary.key, newValue, keyPath)\n }\n {...props}\n />\n );\n};\n\nconst toggleContent = [\n {\n content: 'False',\n value: false,\n },\n {\n content: 'True',\n value: true,\n },\n] as SwitchSelectorChoices<boolean>;\n\ntype ContentEditorToggleProps = SwitchSelectorProps & {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n};\n\nconst ContentEditorToggle: FC<ContentEditorToggleProps> = ({\n dictionary,\n keyPath,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n return (\n <SwitchSelector\n choices={toggleContent}\n value={true}\n onChange={(value) => addEditedContent(dictionary.key, value, keyPath)}\n color=\"text\"\n size=\"sm\"\n {...props}\n />\n );\n};\n\nexport type TextEditorProps = {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n section: ContentNode;\n isDarkMode?: boolean;\n renderSection?: (content: string) => ReactNode;\n onContentChange?: (newValue: string) => void;\n};\n\nconst TranslationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}: TextEditorProps) => {\n const { locale, defaultLocale } = useLocale();\n const { selectedLocales, availableLocales } = useLocaleSwitcherContent();\n\n const sectionContent = (section as TranslationContent<string>)[\n NodeType.Translation\n ] as Record<Locales, string>;\n\n const sectionContentKeys = Object.keys(sectionContent) as Locales[];\n\n const isFiltered = availableLocales.length > selectedLocales.length;\n\n const localesList = isFiltered\n ? selectedLocales\n : // If the translation include content in other locales, we display all of them\n [...new Set([...availableLocales, ...sectionContentKeys])];\n\n const content = (section as TranslationContent<string>)[NodeType.Translation];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {localesList.map((translationKey) => (\n <Fragment key={translationKey}>\n <tr className=\"mt-2 w-full p-2 text-xs\">\n {getLocaleName(translationKey, locale)}\n </tr>\n <tr>\n <TextEditorContainer\n section={\n content[translationKey] ??\n getEmptyNode(content[defaultLocale])\n }\n keyPath={[\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst EnumerationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const { addEditedContent } = useEditedContent();\n const { addNewEnumeration, removeEnumeration } = useDictionary(\n navigationViewContent\n );\n\n const content = (section as EnumerationContent<string>)[NodeType.Enumeration];\n const firstKey = Object.keys(content)[0] as keyof typeof content;\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {Object.keys(\n (section as EnumerationContent<ContentNode>)[NodeType.Enumeration]\n ).map((enumKey) => {\n const childrenKeyPath = [\n ...keyPath,\n { type: NodeType.Enumeration },\n ] as KeyPath[];\n return (\n <Fragment key={enumKey}>\n <tr className=\"mt-2 w-full\">\n <div className=\"flex flex-1\">\n <Button\n label={removeEnumeration.label.value}\n variant=\"hoverable\"\n color=\"text\"\n Icon={Trash}\n className=\"ml-auto\"\n onClick={() =>\n addEditedContent(\n dictionary.key,\n undefined,\n childrenKeyPath\n )\n }\n >\n {removeEnumeration.text}\n </Button>\n </div>\n </tr>\n <tr className=\"w-full p-2\">\n <EnumKeyInput\n value={enumKey}\n onChange={(value) => {\n const preValueContent = (\n section as EnumerationContent<string>\n )[NodeType.Enumeration];\n const newValueContent = renameKey(\n preValueContent,\n enumKey as keyof typeof preValueContent,\n value\n );\n const newValue = {\n ...(section as EnumerationContent<string>),\n [NodeType.Enumeration]: newValueContent,\n };\n\n addEditedContent(dictionary.key, newValue, keyPath);\n }}\n />\n </tr>\n <tr className=\"block w-full\">\n <TextEditor\n section={\n content[enumKey as keyof typeof content] ??\n getEmptyNode(content[firstKey])\n }\n keyPath={childrenKeyPath}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n );\n })}\n </tbody>\n </table>\n\n <Button\n label={addNewEnumeration.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n isFullWidth\n onClick={() =>\n addEditedContent(\n dictionary.key,\n getEmptyNode(content[firstKey]) ?? '',\n [...keyPath, { type: NodeType.Enumeration, key: 'unknown' }]\n )\n }\n Icon={Plus}\n className=\"m-2\"\n >\n {addNewEnumeration.text}\n </Button>\n </div>\n );\n};\n\nconst ConditionTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const content = (section as ConditionContent<string>)[NodeType.Condition];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {['true', 'false', 'fallback'].map((condKey) => (\n <Fragment key={condKey}>\n <tr key={condKey} className=\"mt-2 block w-full p-2 text-xs\">\n {String(condKey)}\n </tr>\n <tr key={condKey} className=\"block w-full\">\n <TextEditorContainer\n section={\n content[condKey as keyof typeof content] ??\n getEmptyNode(content['true'])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Condition,\n key: condKey,\n } as KeyPath,\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst ArrayTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const { addEditedContent } = useEditedContent();\n const { addNewElement, removeElement } = useDictionary(navigationViewContent);\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => (\n <Fragment key={JSON.stringify(subSection)}>\n <tr className=\"mt-2 flex w-full justify-between gap-2 p-2\">\n <span className=\"text-xs\">{String(index)}</span>\n <Button\n label={removeElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n className=\"ml-auto\"\n textAlign=\"left\"\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n addEditedContent(dictionary.key, undefined, newKeyPath);\n }}\n Icon={Trash}\n >\n {removeElement.text}\n </Button>\n </tr>\n\n <tr className=\"block w-full\">\n <TextEditorContainer\n section={\n subSection ??\n getEmptyNode((section as unknown as ContentNode[])[0])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Array,\n key: index,\n },\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n <Button\n label={addNewElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n isFullWidth\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n addEditedContent(\n dictionary.key,\n getEmptyNode((section as unknown as ContentNode[])[0]) ?? '',\n newKeyPath,\n false\n );\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n};\n\nconst ObjectTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => (\n <>\n <table className=\"w-full\">\n <tbody className=\"flex flex-col gap-2\">\n {Object.keys(section as unknown as Record<string, ContentNode>).map(\n (key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n const typedSection = section as unknown as Record<\n string,\n ContentNode\n >;\n const firstKey = Object.keys(\n typedSection\n )[0] as keyof typeof section;\n const subSection =\n typedSection[key as keyof typeof section] ??\n getEmptyNode(typedSection[firstKey]);\n\n return (\n <Fragment key={key}>\n <tr\n key={JSON.stringify(subSection)}\n className=\"mt-2 p-2 text-xs\"\n >\n {String(key)}\n </tr>\n <tr key={JSON.stringify(subSection)} className=\"block w-full\">\n <TextEditor\n section={subSection}\n keyPath={childKeyPath}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n );\n }\n )}\n </tbody>\n </table>\n </>\n);\n\nenum MarkdownViewMode {\n Edit,\n Preview,\n}\n\nconst MarkdownTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n isDarkMode,\n onContentChange,\n}) => {\n const [mode, setMode] = useState(MarkdownViewMode.Edit);\n const toggleContent = [\n {\n content: 'Edit',\n value: MarkdownViewMode.Edit,\n },\n {\n content: 'Preview',\n value: MarkdownViewMode.Preview,\n },\n ] as SwitchSelectorChoices<MarkdownViewMode>;\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.Markdown }];\n\n const content = (section as MarkdownContent<ContentNode>)[\n NodeType.Markdown\n ] as ContentNode;\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <SwitchSelector\n choices={toggleContent}\n value={mode}\n onChange={setMode}\n color=\"text\"\n size=\"sm\"\n className=\"ml-auto\"\n />\n\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n dictionary={dictionary}\n renderSection={\n mode === MarkdownViewMode.Preview\n ? (content) => (\n <MarkdownRenderer isDarkMode={isDarkMode}>\n {content}\n </MarkdownRenderer>\n )\n : undefined\n }\n onContentChange={onContentChange}\n />\n </div>\n );\n};\n\nconst InsertionTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n ...props\n}) => {\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.Insertion }];\n\n const content = (section as InsertionContent<ContentNode>)[\n NodeType.Insertion\n ];\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n {...props}\n />\n </div>\n );\n};\n\nconst FileTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n ...props\n}) => {\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.File }];\n\n const fileUrl = (section as FileContent)[NodeType.File];\n const { content } = section as FileContent;\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <span className=\"text-neutral text-sm\">{fileUrl} </span>\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n {...props}\n />\n </div>\n );\n};\n\nconst NestedTextEditor: FC<TextEditorProps> = ({\n keyPath,\n dictionary,\n renderSection,\n section,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n const content = (section as NestedContent)[NodeType.Nested];\n const childrenKeyPath = [...keyPath, { type: NodeType.Nested }] as KeyPath[];\n\n return (\n <div className=\"w-full p-2\">\n <Label>Dictionary key</Label>\n <ContentEditorInputBase\n aria-label=\"Edit field\"\n type=\"text\"\n variant=\"default\"\n {...props}\n onContentChange={(newValue) => {\n addEditedContent(\n dictionary.key,\n {\n ...content,\n dictionaryKey: String(newValue),\n },\n childrenKeyPath\n );\n }}\n >\n {content.dictionaryKey ?? ''}\n </ContentEditorInputBase>\n\n <Label>Path (optional)</Label>\n <ContentEditorInputBase\n aria-label=\"Edit field\"\n type=\"text\"\n variant=\"default\"\n {...props}\n onContentChange={(newValue) => {\n addEditedContent(\n dictionary.key,\n {\n ...content,\n path: newValue !== '' ? newValue : undefined,\n },\n childrenKeyPath\n );\n }}\n >\n {content.path ?? ''}\n </ContentEditorInputBase>\n </div>\n );\n};\n\nexport const TextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n isDarkMode,\n}) => {\n const { tsxNotEditable } = useDictionary(navigationViewContent);\n const nodeType = getNodeType(section);\n\n if (nodeType === NodeType.ReactNode) {\n return (\n <>\n <span>[React Node]</span>\n <span className=\"text-neutral text-xs\">{tsxNotEditable}</span>\n </>\n );\n }\n\n if (nodeType === NodeType.Nested) {\n return (\n <NestedTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <TranslationTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Enumeration) {\n return (\n <EnumerationTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Condition) {\n return (\n <ConditionTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Insertion) {\n return (\n <InsertionTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Markdown) {\n return (\n <MarkdownTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n isDarkMode={isDarkMode}\n />\n );\n }\n\n if (nodeType === NodeType.File) {\n return (\n <FileTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <ArrayTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Object) {\n return (\n <ObjectTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Number) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorInput\n dictionary={dictionary}\n keyPath={keyPath}\n type=\"number\"\n aria-label=\"Edit field\"\n >\n {section as number}\n </ContentEditorInput>\n </div>\n );\n }\n\n if (nodeType === NodeType.Text) {\n return (\n <div className=\"w-full p-2\">\n {typeof renderSection === 'function' ? (\n renderSection(section as string)\n ) : (\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n keyPath={keyPath}\n dictionary={dictionary}\n >\n {section as string}\n </ContentEditorTextArea>\n )}\n </div>\n );\n }\n\n if (nodeType === NodeType.Boolean) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorToggle\n dictionary={dictionary}\n keyPath={keyPath}\n value={section as boolean}\n />\n </div>\n );\n }\n\n return (\n <div className=\"w-full p-2\">\n Error. Format not supported.\n {JSON.stringify(section, null, 2)}\n {JSON.stringify(keyPath, null, 2)}\n NodeType : {nodeType}\n </div>\n );\n};\n\nexport const TextEditorContainer: FC<TextEditorProps> = (props) => (\n <Container\n border\n background=\"none\"\n className=\"top-6 flex h-full flex-1 flex-col gap-6 overflow-hidden p-2 md:sticky\"\n roundedSize=\"xl\"\n >\n <TextEditor {...props} />\n </Container>\n);\n"],"names":["useEditedContent","useConfiguration","useAuditContentDeclarationField","jsx","ContentEditorTextAreaBase","Button","WandSparkles","editedContent","ContentEditorInputBase","SwitchSelector","useLocale","useLocaleSwitcherContent","NodeType","jsxs","Fragment","getLocaleName","getEmptyNode","useDictionary","navigationViewContent","Trash","EnumKeyInput","renameKey","Plus","useState","toggleContent","content","MarkdownRenderer","Label","getNodeType","Container"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TextEditor.cjs","sources":["../../../../src/components/DictionaryFieldEditor/ContentEditorView/TextEditor.tsx"],"sourcesContent":["'use client';\n\nimport type { Locales } from '@intlayer/config';\nimport {\n type ConditionContent,\n type ContentNode,\n type Dictionary,\n type EnumerationContent,\n type KeyPath,\n type MarkdownContent,\n type NestedContent,\n type TranslationContent,\n FileContent,\n getEmptyNode,\n getLocaleName,\n getNodeType,\n InsertionContent,\n NodeType,\n} from '@intlayer/core';\nimport { useConfiguration, useEditedContent } from '@intlayer/editor-react';\nimport { Plus, Trash, WandSparkles } from 'lucide-react';\nimport { type FC, Fragment, ReactNode, useState } from 'react';\nimport { useDictionary, useLocale } from 'react-intlayer';\nimport { useAuditContentDeclarationField } from '../../../hooks';\nimport { renameKey } from '../../../utils/object';\nimport { Button } from '../../Button';\nimport { Container } from '../../Container';\nimport {\n type ContentEditorInputProps as ContentEditorInputPropsBase,\n ContentEditorInput as ContentEditorInputBase,\n} from '../../ContentEditor/ContentEditorInput';\nimport {\n type ContentEditorTextAreaProps as ContentEditorTextAreaPropsBase,\n ContentEditorTextArea as ContentEditorTextAreaBase,\n} from '../../ContentEditor/ContentEditorTextArea';\nimport { Label } from '../../Label';\nimport { useLocaleSwitcherContent } from '../../LocaleSwitcherContentDropDown';\nimport { MarkdownRenderer } from '../../MarkDownRender';\nimport {\n type SwitchSelectorChoices,\n type SwitchSelectorProps,\n SwitchSelector,\n} from '../../SwitchSelector';\nimport { EnumKeyInput } from '../EnumKeyInput';\nimport { navigationViewContent } from '../NavigationView/navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\ntype ContentEditorTextAreaProps = Omit<\n ContentEditorTextAreaPropsBase,\n 'onContentChange'\n> & {\n keyPath: KeyPath[];\n dictionary: Dictionary;\n};\n\nconst ContentEditorTextArea: FC<ContentEditorTextAreaProps> = ({\n keyPath,\n dictionary,\n ...props\n}) => {\n const { editedContent, addEditedContent } = useEditedContent();\n const configuration = useConfiguration();\n const { auditContentDeclarationField, isLoading: isAuditing } =\n useAuditContentDeclarationField();\n\n return (\n <ContentEditorTextAreaBase\n variant=\"default\"\n onContentChange={(newValue) =>\n addEditedContent(dictionary.key, newValue, keyPath)\n }\n additionalButtons={\n <Button\n Icon={WandSparkles}\n label=\"Audit\"\n variant=\"hoverable\"\n size=\"icon-sm\"\n color=\"text\"\n className=\"cursor-pointer hover:scale-110\"\n isLoading={isAuditing}\n onClick={() => {\n auditContentDeclarationField({\n fileContent: JSON.stringify({\n ...dictionary,\n ...(editedContent?.[dictionary.key] ?? {}),\n }),\n keyPath,\n locales: configuration.internationalization.locales ?? [],\n aiOptions: {\n apiKey: configuration.ai?.apiKey,\n model: configuration.ai?.model,\n temperature: configuration.ai?.temperature,\n },\n }).then((response) => {\n if (!response?.data) return;\n\n try {\n const editedContent = response.data.fileContent as string;\n\n addEditedContent(dictionary.key, editedContent, keyPath);\n } catch (error) {\n console.error(error);\n }\n });\n }}\n />\n }\n {...props}\n />\n );\n};\n\ntype ContentEditorInputProps = Omit<\n ContentEditorInputPropsBase,\n 'onContentChange'\n> & {\n keyPath: KeyPath[];\n dictionary: Dictionary;\n};\n\nconst ContentEditorInput: FC<ContentEditorInputProps> = ({\n keyPath,\n dictionary,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n return (\n <ContentEditorInputBase\n variant=\"default\"\n onContentChange={(newValue) =>\n addEditedContent(dictionary.key, newValue, keyPath)\n }\n {...props}\n />\n );\n};\n\nconst toggleContent = [\n {\n content: 'False',\n value: false,\n },\n {\n content: 'True',\n value: true,\n },\n] as SwitchSelectorChoices<boolean>;\n\ntype ContentEditorToggleProps = SwitchSelectorProps & {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n};\n\nconst ContentEditorToggle: FC<ContentEditorToggleProps> = ({\n dictionary,\n keyPath,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n return (\n <SwitchSelector\n choices={toggleContent}\n value={true}\n onChange={(value) => addEditedContent(dictionary.key, value, keyPath)}\n color=\"text\"\n size=\"sm\"\n {...props}\n />\n );\n};\n\nexport type TextEditorProps = {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n section: ContentNode;\n isDarkMode?: boolean;\n renderSection?: (content: string) => ReactNode;\n onContentChange?: (newValue: string) => void;\n};\n\nconst TranslationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}: TextEditorProps) => {\n const { locale, defaultLocale } = useLocale();\n const { selectedLocales, availableLocales } = useLocaleSwitcherContent();\n\n const sectionContent = (section as TranslationContent<string>)[\n NodeType.Translation\n ] as Record<Locales, string>;\n\n const sectionContentKeys = Object.keys(sectionContent) as Locales[];\n\n const isFiltered = availableLocales.length > selectedLocales.length;\n\n const localesList = isFiltered\n ? selectedLocales\n : // If the translation include content in other locales, we display all of them\n [...new Set([...availableLocales, ...sectionContentKeys])];\n\n const content = (section as TranslationContent<string>)[NodeType.Translation];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {localesList.map((translationKey) => (\n <Fragment key={translationKey}>\n <tr className=\"mt-2 w-full p-2 text-xs\">\n {getLocaleName(translationKey, locale)}\n </tr>\n <tr>\n <TextEditorContainer\n section={\n content[translationKey] ??\n getEmptyNode(content[defaultLocale])\n }\n keyPath={[\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst EnumerationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const { addEditedContent } = useEditedContent();\n const { addNewEnumeration, removeEnumeration } = useDictionary(\n navigationViewContent\n );\n\n const content = (section as EnumerationContent<string>)[NodeType.Enumeration];\n const firstKey = Object.keys(content)[0] as keyof typeof content;\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {Object.keys(\n (section as EnumerationContent<ContentNode>)[NodeType.Enumeration]\n ).map((enumKey) => {\n const childrenKeyPath = [\n ...keyPath,\n { type: NodeType.Enumeration },\n ] as KeyPath[];\n return (\n <Fragment key={enumKey}>\n <tr className=\"mt-2 w-full\">\n <div className=\"flex flex-1\">\n <Button\n label={removeEnumeration.label.value}\n variant=\"hoverable\"\n color=\"text\"\n Icon={Trash}\n className=\"ml-auto\"\n onClick={() =>\n addEditedContent(\n dictionary.key,\n undefined,\n childrenKeyPath\n )\n }\n >\n {removeEnumeration.text}\n </Button>\n </div>\n </tr>\n <tr className=\"w-full p-2\">\n <EnumKeyInput\n value={enumKey}\n onChange={(value) => {\n const preValueContent = (\n section as EnumerationContent<string>\n )[NodeType.Enumeration];\n const newValueContent = renameKey(\n preValueContent,\n enumKey as keyof typeof preValueContent,\n value\n );\n const newValue = {\n ...(section as EnumerationContent<string>),\n [NodeType.Enumeration]: newValueContent,\n };\n\n addEditedContent(dictionary.key, newValue, keyPath);\n }}\n />\n </tr>\n <tr className=\"block w-full\">\n <TextEditor\n section={\n content[enumKey as keyof typeof content] ??\n getEmptyNode(content[firstKey])\n }\n keyPath={childrenKeyPath}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n );\n })}\n </tbody>\n </table>\n\n <Button\n label={addNewEnumeration.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n isFullWidth\n onClick={() =>\n addEditedContent(\n dictionary.key,\n getEmptyNode(content[firstKey]) ?? '',\n [...keyPath, { type: NodeType.Enumeration, key: 'unknown' }]\n )\n }\n Icon={Plus}\n className=\"m-2\"\n >\n {addNewEnumeration.text}\n </Button>\n </div>\n );\n};\n\nconst ConditionTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const content = (section as ConditionContent<string>)[NodeType.Condition];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {['true', 'false', 'fallback'].map((condKey) => (\n <Fragment key={condKey}>\n <tr key={condKey} className=\"mt-2 block w-full p-2 text-xs\">\n {String(condKey)}\n </tr>\n <tr key={condKey} className=\"block w-full\">\n <TextEditorContainer\n section={\n content[condKey as keyof typeof content] ??\n getEmptyNode(content['true'])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Condition,\n key: condKey,\n } as KeyPath,\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst ArrayTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const { addEditedContent } = useEditedContent();\n const { addNewElement, removeElement } = useDictionary(navigationViewContent);\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => (\n <Fragment key={JSON.stringify(subSection)}>\n <tr className=\"mt-2 flex w-full justify-between gap-2 p-2\">\n <span className=\"text-xs\">{String(index)}</span>\n <Button\n label={removeElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n className=\"ml-auto\"\n textAlign=\"left\"\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n addEditedContent(dictionary.key, undefined, newKeyPath);\n }}\n Icon={Trash}\n >\n {removeElement.text}\n </Button>\n </tr>\n\n <tr className=\"block w-full\">\n <TextEditorContainer\n section={\n subSection ??\n getEmptyNode((section as unknown as ContentNode[])[0])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Array,\n key: index,\n },\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n <Button\n label={addNewElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n isFullWidth\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n addEditedContent(\n dictionary.key,\n getEmptyNode((section as unknown as ContentNode[])[0]) ?? '',\n newKeyPath,\n false\n );\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n};\n\nconst ObjectTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => (\n <>\n <table className=\"w-full\">\n <tbody className=\"flex flex-col gap-2\">\n {Object.keys(section as unknown as Record<string, ContentNode>).map(\n (key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n const typedSection = section as unknown as Record<\n string,\n ContentNode\n >;\n const firstKey = Object.keys(\n typedSection\n )[0] as keyof typeof section;\n const subSection =\n typedSection[key as keyof typeof section] ??\n getEmptyNode(typedSection[firstKey]);\n\n return (\n <Fragment key={key}>\n <tr\n key={JSON.stringify(subSection)}\n className=\"mt-2 p-2 text-xs\"\n >\n {String(key)}\n </tr>\n <tr key={JSON.stringify(subSection)} className=\"block w-full\">\n <TextEditor\n section={subSection}\n keyPath={childKeyPath}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n );\n }\n )}\n </tbody>\n </table>\n </>\n);\n\nenum MarkdownViewMode {\n Edit,\n Preview,\n}\n\nconst MarkdownTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n isDarkMode,\n onContentChange,\n}) => {\n const [mode, setMode] = useState(MarkdownViewMode.Edit);\n const toggleContent = [\n {\n content: 'Edit',\n value: MarkdownViewMode.Edit,\n },\n {\n content: 'Preview',\n value: MarkdownViewMode.Preview,\n },\n ] as SwitchSelectorChoices<MarkdownViewMode>;\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.Markdown }];\n\n const content = (section as MarkdownContent<ContentNode>)[\n NodeType.Markdown\n ] as ContentNode;\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <SwitchSelector\n choices={toggleContent}\n value={mode}\n onChange={setMode}\n color=\"text\"\n size=\"sm\"\n className=\"ml-auto\"\n />\n\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n dictionary={dictionary}\n renderSection={\n mode === MarkdownViewMode.Preview\n ? (content) => (\n <MarkdownRenderer isDarkMode={isDarkMode}>\n {content}\n </MarkdownRenderer>\n )\n : undefined\n }\n onContentChange={onContentChange}\n />\n </div>\n );\n};\n\nconst InsertionTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n ...props\n}) => {\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.Insertion }];\n\n const content = (section as InsertionContent<ContentNode>)[\n NodeType.Insertion\n ];\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n {...props}\n />\n </div>\n );\n};\n\nconst FileTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n ...props\n}) => {\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.File }];\n\n const fileUrl = (section as FileContent)[NodeType.File];\n const { content } = section as FileContent;\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <span className=\"text-neutral text-sm\">{fileUrl} </span>\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n {...props}\n />\n </div>\n );\n};\n\nconst NestedTextEditor: FC<TextEditorProps> = ({\n keyPath,\n dictionary,\n renderSection,\n section,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n const content = (section as NestedContent)[NodeType.Nested];\n const childrenKeyPath = [...keyPath, { type: NodeType.Nested }] as KeyPath[];\n\n return (\n <div className=\"w-full p-2\">\n <Label>Dictionary key</Label>\n <ContentEditorInputBase\n aria-label=\"Edit field\"\n type=\"text\"\n variant=\"default\"\n {...props}\n onContentChange={(newValue) => {\n addEditedContent(\n dictionary.key,\n {\n ...content,\n dictionaryKey: String(newValue),\n },\n childrenKeyPath\n );\n }}\n >\n {content.dictionaryKey ?? ''}\n </ContentEditorInputBase>\n\n <Label>Path (optional)</Label>\n <ContentEditorInputBase\n aria-label=\"Edit field\"\n type=\"text\"\n variant=\"default\"\n {...props}\n onContentChange={(newValue) => {\n addEditedContent(\n dictionary.key,\n {\n ...content,\n path: newValue !== '' ? newValue : undefined,\n },\n childrenKeyPath\n );\n }}\n >\n {content.path ?? ''}\n </ContentEditorInputBase>\n </div>\n );\n};\n\nexport const TextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n isDarkMode,\n}) => {\n const { tsxNotEditable } = useDictionary(navigationViewContent);\n const nodeType = getNodeType(section);\n\n if (nodeType === NodeType.ReactNode) {\n return (\n <>\n <span>[React Node]</span>\n <span className=\"text-neutral text-xs\">{tsxNotEditable}</span>\n </>\n );\n }\n\n if (nodeType === NodeType.Nested) {\n return (\n <NestedTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <TranslationTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Enumeration) {\n return (\n <EnumerationTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Condition) {\n return (\n <ConditionTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Insertion) {\n return (\n <InsertionTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Markdown) {\n return (\n <MarkdownTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n isDarkMode={isDarkMode}\n />\n );\n }\n\n if (nodeType === NodeType.File) {\n return (\n <FileTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <ArrayTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Object) {\n return (\n <ObjectTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Number) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorInput\n dictionary={dictionary}\n keyPath={keyPath}\n type=\"number\"\n aria-label=\"Edit field\"\n >\n {section as number}\n </ContentEditorInput>\n </div>\n );\n }\n\n if (nodeType === NodeType.Text) {\n return (\n <div className=\"w-full p-2\">\n {typeof renderSection === 'function' ? (\n renderSection(section as string)\n ) : (\n <ContentEditorTextArea\n variant=\"default\"\n aria-label=\"Edit field\"\n keyPath={keyPath}\n dictionary={dictionary}\n >\n {section as string}\n </ContentEditorTextArea>\n )}\n </div>\n );\n }\n\n if (nodeType === NodeType.Boolean) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorToggle\n dictionary={dictionary}\n keyPath={keyPath}\n value={section as boolean}\n />\n </div>\n );\n }\n\n return (\n <div className=\"w-full p-2\">\n Error. Format not supported.\n {JSON.stringify(section, null, 2)}\n {JSON.stringify(keyPath, null, 2)}\n NodeType : {nodeType}\n </div>\n );\n};\n\nexport const TextEditorContainer: FC<TextEditorProps> = (props) => (\n <Container\n border\n background=\"none\"\n className=\"top-6 flex h-full flex-1 flex-col gap-6 overflow-hidden p-2 md:sticky\"\n roundedSize=\"xl\"\n >\n <TextEditor {...props} />\n </Container>\n);\n"],"names":["useEditedContent","useConfiguration","useAuditContentDeclarationField","jsx","ContentEditorTextAreaBase","Button","WandSparkles","editedContent","ContentEditorInputBase","SwitchSelector","useLocale","useLocaleSwitcherContent","NodeType","jsxs","Fragment","getLocaleName","getEmptyNode","useDictionary","navigationViewContent","Trash","EnumKeyInput","renameKey","Plus","useState","toggleContent","content","MarkdownRenderer","Label","getNodeType","Container"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Dictionary, KeyPath
|
|
2
|
-
import {
|
|
1
|
+
import { ContentNode, Dictionary, KeyPath } from '@intlayer/core';
|
|
2
|
+
import { FC, ReactNode } from 'react';
|
|
3
3
|
export declare const traceKeys: string[];
|
|
4
4
|
export type TextEditorProps = {
|
|
5
5
|
dictionary: Dictionary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/ContentEditorView/TextEditor.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"TextEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/ContentEditorView/TextEditor.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,UAAU,EAEf,KAAK,OAAO,EAUb,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,EAAY,SAAS,EAAY,MAAM,OAAO,CAAC;AAyB/D,eAAO,MAAM,SAAS,EAAE,MAAM,EAAmC,CAAC;AAgIlE,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC;IAC/C,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,CAAC;AAsfF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA4K1C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,eAAe,CASnD,CAAC"}
|
|
@@ -5,10 +5,11 @@ import { useEditedContent, useConfiguration } from "@intlayer/editor-react";
|
|
|
5
5
|
import { Trash, Plus, WandSparkles } from "lucide-react";
|
|
6
6
|
import { Fragment as Fragment$1, useState } from "react";
|
|
7
7
|
import { useDictionary, useLocale } from "react-intlayer";
|
|
8
|
+
import "@intlayer/config/built";
|
|
9
|
+
import "../../../better-auth.8zoxzg-F-D8e0X4ys.js";
|
|
8
10
|
import { useAuditContentDeclarationField } from "../../../hooks/intlayerAPIHooks.mjs";
|
|
9
11
|
import "../../../hooks/useAsync/useAsyncStateStore.mjs";
|
|
10
12
|
import "@intlayer/api";
|
|
11
|
-
import "@intlayer/config/built";
|
|
12
13
|
import "deepmerge";
|
|
13
14
|
import "../../../hooks/useScrollBlockage/useScrollBlockageStore.mjs";
|
|
14
15
|
import { renameKey } from "../../../utils/object.mjs";
|
|
@@ -60,9 +61,11 @@ const ContentEditorTextArea = ({
|
|
|
60
61
|
}),
|
|
61
62
|
keyPath,
|
|
62
63
|
locales: configuration.internationalization.locales ?? [],
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
aiOptions: {
|
|
65
|
+
apiKey: configuration.ai?.apiKey,
|
|
66
|
+
model: configuration.ai?.model,
|
|
67
|
+
temperature: configuration.ai?.temperature
|
|
68
|
+
}
|
|
66
69
|
}).then((response) => {
|
|
67
70
|
if (!response?.data) return;
|
|
68
71
|
try {
|