@intlayer/design-system 4.0.4 → 4.1.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.
Files changed (137) hide show
  1. package/dist/.vite/manifest.json +10 -10
  2. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.cjs +1 -1
  3. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.mjs +1 -1
  4. package/dist/components/Button/Button.cjs +9 -9
  5. package/dist/components/Button/Button.cjs.map +1 -1
  6. package/dist/components/Button/Button.mjs +9 -9
  7. package/dist/components/Button/Button.mjs.map +1 -1
  8. package/dist/components/DictionaryEditor/DictionaryEditor.cjs +4 -3
  9. package/dist/components/DictionaryEditor/DictionaryEditor.cjs.map +1 -1
  10. package/dist/components/DictionaryEditor/DictionaryEditor.d.ts +1 -0
  11. package/dist/components/DictionaryEditor/DictionaryEditor.d.ts.map +1 -1
  12. package/dist/components/DictionaryEditor/DictionaryEditor.mjs +4 -3
  13. package/dist/components/DictionaryEditor/DictionaryEditor.mjs.map +1 -1
  14. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs +29 -11
  15. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs.map +1 -1
  16. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.d.ts +1 -0
  17. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.d.ts.map +1 -1
  18. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs +31 -13
  19. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs.map +1 -1
  20. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.cjs +32 -0
  21. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.cjs.map +1 -1
  22. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.d.ts +4 -0
  23. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.d.ts.map +1 -1
  24. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.mjs +32 -0
  25. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.mjs.map +1 -1
  26. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs +4 -2
  27. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs.map +1 -1
  28. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts +1 -0
  29. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts.map +1 -1
  30. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs +4 -2
  31. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs.map +1 -1
  32. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs +1 -1
  33. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +1 -1
  34. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs +43 -14
  35. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs.map +1 -1
  36. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts +1 -0
  37. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts.map +1 -1
  38. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +46 -17
  39. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
  40. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs +32 -0
  41. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs.map +1 -1
  42. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +4 -0
  43. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts.map +1 -1
  44. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs +32 -0
  45. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs.map +1 -1
  46. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs +5 -4
  47. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
  48. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts +1 -0
  49. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts.map +1 -1
  50. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +5 -4
  51. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
  52. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.cjs +4 -1
  53. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.cjs.map +1 -1
  54. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.d.ts.map +1 -1
  55. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.mjs +4 -1
  56. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.mjs.map +1 -1
  57. package/dist/components/DictionaryFieldEditor/JSONEditor.cjs +1 -1
  58. package/dist/components/DictionaryFieldEditor/JSONEditor.cjs.map +1 -1
  59. package/dist/components/DictionaryFieldEditor/JSONEditor.mjs +1 -1
  60. package/dist/components/DictionaryFieldEditor/JSONEditor.mjs.map +1 -1
  61. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs +1 -1
  62. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs.map +1 -1
  63. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs +1 -1
  64. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs.map +1 -1
  65. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +45 -18
  66. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
  67. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts +1 -0
  68. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
  69. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +47 -20
  70. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  71. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs +32 -0
  72. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs.map +1 -1
  73. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +4 -0
  74. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
  75. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs +32 -0
  76. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
  77. package/dist/components/EditableField/EditableFieldLayout.cjs +1 -1
  78. package/dist/components/EditableField/EditableFieldLayout.cjs.map +1 -1
  79. package/dist/components/EditableField/EditableFieldLayout.mjs +1 -1
  80. package/dist/components/EditableField/EditableFieldLayout.mjs.map +1 -1
  81. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs +2 -2
  82. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs.map +1 -1
  83. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +2 -2
  84. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -1
  85. package/dist/components/RightDrawer/RightDrawer.cjs +2 -2
  86. package/dist/components/RightDrawer/RightDrawer.cjs.map +1 -1
  87. package/dist/components/RightDrawer/RightDrawer.d.ts.map +1 -1
  88. package/dist/components/RightDrawer/RightDrawer.mjs +2 -2
  89. package/dist/components/RightDrawer/RightDrawer.mjs.map +1 -1
  90. package/dist/hooks/index.cjs +1 -0
  91. package/dist/hooks/index.cjs.map +1 -1
  92. package/dist/hooks/index.mjs +3 -2
  93. package/dist/hooks/intlayerAPIHooks.cjs +11 -1
  94. package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
  95. package/dist/hooks/intlayerAPIHooks.d.ts +4 -0
  96. package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
  97. package/dist/hooks/intlayerAPIHooks.mjs +12 -2
  98. package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
  99. package/dist/hooks/useGetAllDictionaries.d.ts.map +1 -1
  100. package/dist/hooks/useIntlayerAPI.d.ts +4 -0
  101. package/dist/hooks/useIntlayerAPI.d.ts.map +1 -1
  102. package/dist/index-Ai6eeqZH.js +702 -0
  103. package/dist/index-Ai6eeqZH.js.map +1 -0
  104. package/dist/index-B1nU1-65.cjs +690 -0
  105. package/dist/index-B1nU1-65.cjs.map +1 -0
  106. package/dist/index-BIyA5LAs.js +691 -0
  107. package/dist/index-BIyA5LAs.js.map +1 -0
  108. package/dist/index-BbqOa6BU.cjs +701 -0
  109. package/dist/index-BbqOa6BU.cjs.map +1 -0
  110. package/dist/index-BqZwP4Lr.js +691 -0
  111. package/dist/index-BqZwP4Lr.js.map +1 -0
  112. package/dist/index-Buecpjbh.cjs +690 -0
  113. package/dist/index-Buecpjbh.cjs.map +1 -0
  114. package/dist/index-CDEJjmId.js +694 -0
  115. package/dist/index-CDEJjmId.js.map +1 -0
  116. package/dist/index-CTAyk6RY.cjs +693 -0
  117. package/dist/index-CTAyk6RY.cjs.map +1 -0
  118. package/dist/index-CVC2sfEj.js +693 -0
  119. package/dist/index-CVC2sfEj.js.map +1 -0
  120. package/dist/index-CVz0RdK6.js +691 -0
  121. package/dist/index-CVz0RdK6.js.map +1 -0
  122. package/dist/index-CjF2ksU7.cjs +693 -0
  123. package/dist/index-CjF2ksU7.cjs.map +1 -0
  124. package/dist/index-CuQs5759.cjs +692 -0
  125. package/dist/index-CuQs5759.cjs.map +1 -0
  126. package/dist/index-D_MDocy7.cjs +690 -0
  127. package/dist/index-D_MDocy7.cjs.map +1 -0
  128. package/dist/index-Djo2Jnua.cjs +693 -0
  129. package/dist/index-Djo2Jnua.cjs.map +1 -0
  130. package/dist/index-LFTthFne.js +694 -0
  131. package/dist/index-LFTthFne.js.map +1 -0
  132. package/dist/index-xZoGTokf.js +694 -0
  133. package/dist/index-xZoGTokf.js.map +1 -0
  134. package/dist/tailwind.config.cjs.map +1 -1
  135. package/dist/tailwind.config.mjs.map +1 -1
  136. package/dist/tailwind.css +1 -1
  137. package/package.json +18 -18
@@ -1 +1 @@
1
- {"version":3,"file":"EditableFieldLayout.mjs","sources":["../../../src/components/EditableField/EditableFieldLayout.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n\n'use client';\n\nimport { Pencil, Check, X } from 'lucide-react';\nimport {\n type FC,\n type ReactNode,\n useState,\n useEffect,\n useRef,\n useCallback,\n HTMLAttributes,\n} from 'react';\nimport { cn } from '../../utils/cn';\nimport { Button } from '../Button';\n\ntype EditableFieldLayoutProps = {\n value?: string | null | undefined;\n onCancel: () => void;\n onSave: () => void;\n children: ReactNode;\n isDisabled?: boolean;\n} & HTMLAttributes<HTMLSpanElement>;\n\nexport const EditableFieldLayout: FC<EditableFieldLayoutProps> = ({\n value = '',\n onCancel,\n onSave,\n onClick,\n children,\n isDisabled,\n ...props\n}) => {\n const [isEditing, setIsEditing] = useState(false);\n const editableFieldRef = useRef<HTMLSpanElement>(null);\n\n const handleSave = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n setIsEditing(false);\n onSave();\n };\n\n const handleCancel = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n setIsEditing(false);\n onCancel();\n };\n\n const result = !value || value === '' ? '-' : value;\n\n const handleClickOutside = useCallback(\n (e: MouseEvent) => {\n // Check if there's any text selected\n const selection = window.getSelection();\n if (selection && selection.toString().trim() !== '') {\n // If there is a selection, do not trigger the save and exit early.\n return;\n }\n\n // Proceed if the click is truly outside the component.\n if (\n editableFieldRef.current &&\n !editableFieldRef.current.contains(e.target as Node)\n ) {\n setIsEditing(false);\n onSave();\n }\n },\n [onSave]\n );\n\n useEffect(() => {\n if (isEditing) {\n document.addEventListener('click', handleClickOutside);\n } else {\n document.removeEventListener('click', handleClickOutside);\n }\n\n return () => document.removeEventListener('click', handleClickOutside);\n }, [handleClickOutside, isEditing]);\n\n return (\n <span\n className=\"group/editable-field flex gap-2\"\n role=\"button\"\n tabIndex={0}\n onClick={(e) => {\n setIsEditing(true);\n onClick?.(e);\n }}\n ref={editableFieldRef}\n {...props}\n >\n <div\n className={cn('flex flex-1 gap-2', isEditing ? 'display' : 'hidden')}\n key={String(isEditing)}\n >\n {children}\n <Button\n label=\"Save\"\n variant=\"hoverable\"\n size=\"icon-sm\"\n color=\"text\"\n Icon={Check}\n onClick={handleSave}\n disabled={isDisabled}\n className=\"!text-current\"\n />\n <Button\n label=\"Cancel\"\n color=\"text\"\n variant=\"hoverable\"\n className=\"!text-current\"\n size=\"icon-sm\"\n Icon={X}\n onClick={handleCancel}\n disabled={isDisabled}\n />\n </div>\n\n <div\n className={cn('flex flex-1 gap-2', isEditing ? 'hidden' : 'display')}\n >\n <span className=\"ml-2 whitespace-pre-wrap p-1 text-sm leading-6\">\n {result}\n </span>\n <Button\n label=\"Edit\"\n Icon={Pencil}\n color=\"text\"\n variant=\"hoverable\"\n size=\"icon-sm\"\n className=\"invisible !text-current group-hover/editable-field:visible\"\n disabled={isDisabled}\n onClick={(e) => {\n e.stopPropagation();\n setIsEditing(true);\n }}\n />\n </div>\n </span>\n );\n};\n"],"names":["jsxs","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"EditableFieldLayout.mjs","sources":["../../../src/components/EditableField/EditableFieldLayout.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n\n'use client';\n\nimport { Pencil, Check, X } from 'lucide-react';\nimport {\n type FC,\n type ReactNode,\n useState,\n useEffect,\n useRef,\n useCallback,\n HTMLAttributes,\n} from 'react';\nimport { cn } from '../../utils/cn';\nimport { Button } from '../Button';\n\ntype EditableFieldLayoutProps = {\n value?: string | null | undefined;\n onCancel: () => void;\n onSave: () => void;\n children: ReactNode;\n isDisabled?: boolean;\n} & HTMLAttributes<HTMLSpanElement>;\n\nexport const EditableFieldLayout: FC<EditableFieldLayoutProps> = ({\n value = '',\n onCancel,\n onSave,\n onClick,\n children,\n isDisabled,\n ...props\n}) => {\n const [isEditing, setIsEditing] = useState(false);\n const editableFieldRef = useRef<HTMLSpanElement>(null);\n\n const handleSave = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n setIsEditing(false);\n onSave();\n };\n\n const handleCancel = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n setIsEditing(false);\n onCancel();\n };\n\n const result = !value || value === '' ? '-' : value;\n\n const handleClickOutside = useCallback(\n (e: MouseEvent) => {\n // Check if there's any text selected\n const selection = window.getSelection();\n if (selection && selection.toString().trim() !== '') {\n // If there is a selection, do not trigger the save and exit early.\n return;\n }\n\n // Proceed if the click is truly outside the component.\n if (\n editableFieldRef.current &&\n !editableFieldRef.current.contains(e.target as Node)\n ) {\n setIsEditing(false);\n onSave();\n }\n },\n [onSave]\n );\n\n useEffect(() => {\n if (isEditing) {\n document.addEventListener('click', handleClickOutside);\n } else {\n document.removeEventListener('click', handleClickOutside);\n }\n\n return () => document.removeEventListener('click', handleClickOutside);\n }, [handleClickOutside, isEditing]);\n\n return (\n <span\n className=\"group/editable-field flex gap-2\"\n role=\"button\"\n tabIndex={0}\n onClick={(e) => {\n setIsEditing(true);\n onClick?.(e);\n }}\n ref={editableFieldRef}\n {...props}\n >\n <div\n className={cn('flex flex-1 gap-2', isEditing ? 'display' : 'hidden')}\n key={String(isEditing)}\n >\n {children}\n <Button\n label=\"Save\"\n variant=\"hoverable\"\n size=\"icon-sm\"\n color=\"text\"\n Icon={Check}\n onClick={handleSave}\n disabled={isDisabled}\n className=\"!text-current\"\n />\n <Button\n label=\"Cancel\"\n color=\"text\"\n variant=\"hoverable\"\n className=\"!text-current\"\n size=\"icon-sm\"\n Icon={X}\n onClick={handleCancel}\n disabled={isDisabled}\n />\n </div>\n\n <div\n className={cn('flex flex-1 gap-2', isEditing ? 'hidden' : 'display')}\n >\n <span className=\"ml-2 flex w-full whitespace-pre-wrap p-1 text-sm leading-6\">\n {result}\n </span>\n <Button\n label=\"Edit\"\n Icon={Pencil}\n color=\"text\"\n variant=\"hoverable\"\n size=\"icon-sm\"\n className=\"invisible !text-current group-hover/editable-field:visible\"\n disabled={isDisabled}\n onClick={(e) => {\n e.stopPropagation();\n setIsEditing(true);\n }}\n />\n </div>\n </span>\n );\n};\n"],"names":["jsxs","jsx"],"mappings":"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"}
@@ -112,8 +112,8 @@ const LocaleSwitcherContent = ({
112
112
  "aria-label": localeSwitcherLabel,
113
113
  children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(components_DropDown_index.DropDown, { identifier: DROPDOWN_IDENTIFIER, children: [
114
114
  /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(components_DropDown_index.DropDown.Trigger, { identifier: DROPDOWN_IDENTIFIER, children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("div", { className: "flex w-full items-center justify-between", children: [
115
- /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "px-2 py-1", children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(lucideReact.Globe, {}) }),
116
- /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(lucideReact.MoveVertical, { className: "w-5 self-center" })
115
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { className: "px-2 py-1", children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(lucideReact.Globe, { size: 18 }) }),
116
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(lucideReact.MoveVertical, { className: "self-center", size: 18 })
117
117
  ] }) }),
118
118
  /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
119
119
  components_DropDown_index.DropDown.Panel,
@@ -1 +1 @@
1
- {"version":3,"file":"LocaleSwitcherContent.cjs","sources":["../../../src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { IFuseOptions } from 'fuse.js';\nimport { Check, Globe, MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary, useLocale } from 'react-intlayer';\nimport { usePersistedStore } from '../../hooks';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport { SwitchSelector } from '../SwitchSelector';\nimport localeSwitcherContent from './localeSwitcher.content';\nimport { useLocaleSwitcherContent } from './LocaleSwitcherContentContext';\n\nexport type LocaleSwitcherContentProps = {\n panelProps?: Omit<PanelProps, 'identifier'>;\n isMultilingual?: boolean;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher-content';\n\ntype MultilingualAvailableLocales = {\n locale: Locales;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcherContent: FC<LocaleSwitcherContentProps> = ({\n panelProps,\n isMultilingual = true,\n}) => {\n const {\n switchTo,\n searchInput,\n localeSwitcherLabel,\n languageListLabel,\n seeAllLocalesSwitch,\n } = useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n const { locale } = useLocale();\n const { availableLocales, selectedLocales, setSelectedLocales } =\n useLocaleSwitcherContent();\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n availableLocales.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [availableLocales, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n const [seeAllLocales, setSeeAllLocales] = usePersistedStore(\n 'locale-content-selector-see-all-locales',\n false\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n const handleClickLocale = (localeItem: Locales) => {\n if (isMultilingual) {\n if (selectedLocales.includes(localeItem)) {\n if (selectedLocales.length > 1) {\n setSelectedLocales((prev) => prev.filter((el) => el !== localeItem));\n }\n } else {\n setSelectedLocales((prev) => [...prev, localeItem]);\n }\n } else {\n setSelectedLocales([localeItem]);\n }\n };\n\n const handleSeeAllLocales = (value: boolean) => {\n setSeeAllLocales(value);\n if (value) {\n setSelectedLocales(availableLocales);\n } else {\n setSelectedLocales([locale]);\n }\n };\n\n return (\n <div\n className=\"border-text text-text dark:border-text-dark dark:text-text-dark rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"px-2 py-1\">\n <Globe />\n </div>\n <MoveVertical className=\"w-5 self-center\" />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n className=\"left-auto right-0\"\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n border\n roundedSize=\"2xl\"\n borderColor=\"text\"\n aria-label={languageListLabel}\n >\n {isMultilingual && (\n <div className=\"m-auto p-2\">\n <SwitchSelector\n defaultValue={false}\n onChange={handleSeeAllLocales}\n color=\"text\"\n size=\"sm\"\n className=\"!w-60\"\n choices={[\n {\n content: seeAllLocalesSwitch.true,\n value: true,\n },\n {\n content: seeAllLocalesSwitch.false,\n value: false,\n },\n ]}\n />\n </div>\n )}\n\n {!(isMultilingual && seeAllLocales) && (\n <>\n <div className=\"p-3\">\n <Input\n type=\"search\"\n placeholder={searchInput.placeholder}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 dark:divide-text-dark/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({\n locale: localeItem,\n currentLocaleName,\n ownLocaleName,\n }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => handleClickLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? availableLocales).includes(\n localeItem\n )\n }\n isActive={selectedLocales.includes(localeItem)}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n size=\"sm\"\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n {isMultilingual && (\n <div className=\"w-4\">\n {selectedLocales.includes(localeItem) && (\n <Check className=\"size-full\" />\n )}\n </div>\n )}\n <div className=\"flex flex-1 flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral dark:text-neutral-dark text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral dark:text-neutral-dark text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </>\n )}\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":["useDictionary","localeSwitcherContent","useRef","useLocale","useLocaleSwitcherContent","useMemo","getLocaleName","Locales","useState","usePersistedStore","useCallback","jsx","jsxs","DropDown","Globe","MoveVertical","Container","SwitchSelector","Fragment","Input","Button","Check","getHTMLTextDir"],"mappings":"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"}
1
+ {"version":3,"file":"LocaleSwitcherContent.cjs","sources":["../../../src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { IFuseOptions } from 'fuse.js';\nimport { Check, Globe, MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary, useLocale } from 'react-intlayer';\nimport { usePersistedStore } from '../../hooks';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport { SwitchSelector } from '../SwitchSelector';\nimport localeSwitcherContent from './localeSwitcher.content';\nimport { useLocaleSwitcherContent } from './LocaleSwitcherContentContext';\n\nexport type LocaleSwitcherContentProps = {\n panelProps?: Omit<PanelProps, 'identifier'>;\n isMultilingual?: boolean;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher-content';\n\ntype MultilingualAvailableLocales = {\n locale: Locales;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcherContent: FC<LocaleSwitcherContentProps> = ({\n panelProps,\n isMultilingual = true,\n}) => {\n const {\n switchTo,\n searchInput,\n localeSwitcherLabel,\n languageListLabel,\n seeAllLocalesSwitch,\n } = useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n const { locale } = useLocale();\n const { availableLocales, selectedLocales, setSelectedLocales } =\n useLocaleSwitcherContent();\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n availableLocales.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [availableLocales, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n const [seeAllLocales, setSeeAllLocales] = usePersistedStore(\n 'locale-content-selector-see-all-locales',\n false\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n const handleClickLocale = (localeItem: Locales) => {\n if (isMultilingual) {\n if (selectedLocales.includes(localeItem)) {\n if (selectedLocales.length > 1) {\n setSelectedLocales((prev) => prev.filter((el) => el !== localeItem));\n }\n } else {\n setSelectedLocales((prev) => [...prev, localeItem]);\n }\n } else {\n setSelectedLocales([localeItem]);\n }\n };\n\n const handleSeeAllLocales = (value: boolean) => {\n setSeeAllLocales(value);\n if (value) {\n setSelectedLocales(availableLocales);\n } else {\n setSelectedLocales([locale]);\n }\n };\n\n return (\n <div\n className=\"border-text text-text dark:border-text-dark dark:text-text-dark rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"px-2 py-1\">\n <Globe size={18} />\n </div>\n <MoveVertical className=\"self-center\" size={18} />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n className=\"left-auto right-0\"\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n border\n roundedSize=\"2xl\"\n borderColor=\"text\"\n aria-label={languageListLabel}\n >\n {isMultilingual && (\n <div className=\"m-auto p-2\">\n <SwitchSelector\n defaultValue={false}\n onChange={handleSeeAllLocales}\n color=\"text\"\n size=\"sm\"\n className=\"!w-60\"\n choices={[\n {\n content: seeAllLocalesSwitch.true,\n value: true,\n },\n {\n content: seeAllLocalesSwitch.false,\n value: false,\n },\n ]}\n />\n </div>\n )}\n\n {!(isMultilingual && seeAllLocales) && (\n <>\n <div className=\"p-3\">\n <Input\n type=\"search\"\n placeholder={searchInput.placeholder}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 dark:divide-text-dark/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({\n locale: localeItem,\n currentLocaleName,\n ownLocaleName,\n }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => handleClickLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? availableLocales).includes(\n localeItem\n )\n }\n isActive={selectedLocales.includes(localeItem)}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n size=\"sm\"\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n {isMultilingual && (\n <div className=\"w-4\">\n {selectedLocales.includes(localeItem) && (\n <Check className=\"size-full\" />\n )}\n </div>\n )}\n <div className=\"flex flex-1 flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral dark:text-neutral-dark text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral dark:text-neutral-dark text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </>\n )}\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":["useDictionary","localeSwitcherContent","useRef","useLocale","useLocaleSwitcherContent","useMemo","getLocaleName","Locales","useState","usePersistedStore","useCallback","jsx","jsxs","DropDown","Globe","MoveVertical","Container","SwitchSelector","Fragment","Input","Button","Check","getHTMLTextDir"],"mappings":"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"}
@@ -110,8 +110,8 @@ const LocaleSwitcherContent = ({
110
110
  "aria-label": localeSwitcherLabel,
111
111
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DropDown, { identifier: DROPDOWN_IDENTIFIER, children: [
112
112
  /* @__PURE__ */ jsxRuntimeExports.jsx(DropDown.Trigger, { identifier: DROPDOWN_IDENTIFIER, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex w-full items-center justify-between", children: [
113
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-2 py-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Globe, {}) }),
114
- /* @__PURE__ */ jsxRuntimeExports.jsx(MoveVertical, { className: "w-5 self-center" })
113
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-2 py-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Globe, { size: 18 }) }),
114
+ /* @__PURE__ */ jsxRuntimeExports.jsx(MoveVertical, { className: "self-center", size: 18 })
115
115
  ] }) }),
116
116
  /* @__PURE__ */ jsxRuntimeExports.jsx(
117
117
  DropDown.Panel,
@@ -1 +1 @@
1
- {"version":3,"file":"LocaleSwitcherContent.mjs","sources":["../../../src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { IFuseOptions } from 'fuse.js';\nimport { Check, Globe, MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary, useLocale } from 'react-intlayer';\nimport { usePersistedStore } from '../../hooks';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport { SwitchSelector } from '../SwitchSelector';\nimport localeSwitcherContent from './localeSwitcher.content';\nimport { useLocaleSwitcherContent } from './LocaleSwitcherContentContext';\n\nexport type LocaleSwitcherContentProps = {\n panelProps?: Omit<PanelProps, 'identifier'>;\n isMultilingual?: boolean;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher-content';\n\ntype MultilingualAvailableLocales = {\n locale: Locales;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcherContent: FC<LocaleSwitcherContentProps> = ({\n panelProps,\n isMultilingual = true,\n}) => {\n const {\n switchTo,\n searchInput,\n localeSwitcherLabel,\n languageListLabel,\n seeAllLocalesSwitch,\n } = useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n const { locale } = useLocale();\n const { availableLocales, selectedLocales, setSelectedLocales } =\n useLocaleSwitcherContent();\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n availableLocales.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [availableLocales, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n const [seeAllLocales, setSeeAllLocales] = usePersistedStore(\n 'locale-content-selector-see-all-locales',\n false\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n const handleClickLocale = (localeItem: Locales) => {\n if (isMultilingual) {\n if (selectedLocales.includes(localeItem)) {\n if (selectedLocales.length > 1) {\n setSelectedLocales((prev) => prev.filter((el) => el !== localeItem));\n }\n } else {\n setSelectedLocales((prev) => [...prev, localeItem]);\n }\n } else {\n setSelectedLocales([localeItem]);\n }\n };\n\n const handleSeeAllLocales = (value: boolean) => {\n setSeeAllLocales(value);\n if (value) {\n setSelectedLocales(availableLocales);\n } else {\n setSelectedLocales([locale]);\n }\n };\n\n return (\n <div\n className=\"border-text text-text dark:border-text-dark dark:text-text-dark rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"px-2 py-1\">\n <Globe />\n </div>\n <MoveVertical className=\"w-5 self-center\" />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n className=\"left-auto right-0\"\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n border\n roundedSize=\"2xl\"\n borderColor=\"text\"\n aria-label={languageListLabel}\n >\n {isMultilingual && (\n <div className=\"m-auto p-2\">\n <SwitchSelector\n defaultValue={false}\n onChange={handleSeeAllLocales}\n color=\"text\"\n size=\"sm\"\n className=\"!w-60\"\n choices={[\n {\n content: seeAllLocalesSwitch.true,\n value: true,\n },\n {\n content: seeAllLocalesSwitch.false,\n value: false,\n },\n ]}\n />\n </div>\n )}\n\n {!(isMultilingual && seeAllLocales) && (\n <>\n <div className=\"p-3\">\n <Input\n type=\"search\"\n placeholder={searchInput.placeholder}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 dark:divide-text-dark/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({\n locale: localeItem,\n currentLocaleName,\n ownLocaleName,\n }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => handleClickLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? availableLocales).includes(\n localeItem\n )\n }\n isActive={selectedLocales.includes(localeItem)}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n size=\"sm\"\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n {isMultilingual && (\n <div className=\"w-4\">\n {selectedLocales.includes(localeItem) && (\n <Check className=\"size-full\" />\n )}\n </div>\n )}\n <div className=\"flex flex-1 flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral dark:text-neutral-dark text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral dark:text-neutral-dark text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </>\n )}\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":["jsx","jsxs","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"LocaleSwitcherContent.mjs","sources":["../../../src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { IFuseOptions } from 'fuse.js';\nimport { Check, Globe, MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary, useLocale } from 'react-intlayer';\nimport { usePersistedStore } from '../../hooks';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport { SwitchSelector } from '../SwitchSelector';\nimport localeSwitcherContent from './localeSwitcher.content';\nimport { useLocaleSwitcherContent } from './LocaleSwitcherContentContext';\n\nexport type LocaleSwitcherContentProps = {\n panelProps?: Omit<PanelProps, 'identifier'>;\n isMultilingual?: boolean;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher-content';\n\ntype MultilingualAvailableLocales = {\n locale: Locales;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcherContent: FC<LocaleSwitcherContentProps> = ({\n panelProps,\n isMultilingual = true,\n}) => {\n const {\n switchTo,\n searchInput,\n localeSwitcherLabel,\n languageListLabel,\n seeAllLocalesSwitch,\n } = useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n const { locale } = useLocale();\n const { availableLocales, selectedLocales, setSelectedLocales } =\n useLocaleSwitcherContent();\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n availableLocales.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [availableLocales, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n const [seeAllLocales, setSeeAllLocales] = usePersistedStore(\n 'locale-content-selector-see-all-locales',\n false\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n const handleClickLocale = (localeItem: Locales) => {\n if (isMultilingual) {\n if (selectedLocales.includes(localeItem)) {\n if (selectedLocales.length > 1) {\n setSelectedLocales((prev) => prev.filter((el) => el !== localeItem));\n }\n } else {\n setSelectedLocales((prev) => [...prev, localeItem]);\n }\n } else {\n setSelectedLocales([localeItem]);\n }\n };\n\n const handleSeeAllLocales = (value: boolean) => {\n setSeeAllLocales(value);\n if (value) {\n setSelectedLocales(availableLocales);\n } else {\n setSelectedLocales([locale]);\n }\n };\n\n return (\n <div\n className=\"border-text text-text dark:border-text-dark dark:text-text-dark rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"px-2 py-1\">\n <Globe size={18} />\n </div>\n <MoveVertical className=\"self-center\" size={18} />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n className=\"left-auto right-0\"\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n border\n roundedSize=\"2xl\"\n borderColor=\"text\"\n aria-label={languageListLabel}\n >\n {isMultilingual && (\n <div className=\"m-auto p-2\">\n <SwitchSelector\n defaultValue={false}\n onChange={handleSeeAllLocales}\n color=\"text\"\n size=\"sm\"\n className=\"!w-60\"\n choices={[\n {\n content: seeAllLocalesSwitch.true,\n value: true,\n },\n {\n content: seeAllLocalesSwitch.false,\n value: false,\n },\n ]}\n />\n </div>\n )}\n\n {!(isMultilingual && seeAllLocales) && (\n <>\n <div className=\"p-3\">\n <Input\n type=\"search\"\n placeholder={searchInput.placeholder}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 dark:divide-text-dark/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({\n locale: localeItem,\n currentLocaleName,\n ownLocaleName,\n }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => handleClickLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? availableLocales).includes(\n localeItem\n )\n }\n isActive={selectedLocales.includes(localeItem)}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n size=\"sm\"\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n {isMultilingual && (\n <div className=\"w-4\">\n {selectedLocales.includes(localeItem) && (\n <Check className=\"size-full\" />\n )}\n </div>\n )}\n <div className=\"flex flex-1 flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral dark:text-neutral-dark text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral dark:text-neutral-dark text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </>\n )}\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":["jsx","jsxs","Fragment"],"mappings":"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"}
@@ -93,7 +93,7 @@ const RightDrawer = ({
93
93
  children: backButton?.text
94
94
  }
95
95
  ) }),
96
- /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
96
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
97
97
  components_Button_Button.Button,
98
98
  {
99
99
  variant: "hoverable",
@@ -104,7 +104,7 @@ const RightDrawer = ({
104
104
  Icon: lucideReact.X,
105
105
  size: "icon-md"
106
106
  }
107
- )
107
+ ) })
108
108
  ] }),
109
109
  /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("h2", { className: "flex items-center justify-center text-lg font-bold", children: title }),
110
110
  header
@@ -1 +1 @@
1
- {"version":3,"file":"RightDrawer.cjs","sources":["../../../src/components/RightDrawer/RightDrawer.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n'use client';\n\nimport { ChevronLeft, X } from 'lucide-react';\nimport {\n type ReactNode,\n type FC,\n useEffect,\n useRef,\n type MouseEventHandler,\n} from 'react';\nimport { useShallow } from 'zustand/react/shallow';\nimport { useDevice } from '../../hooks/useDevice';\nimport { useScrollBlockage } from '../../hooks/useScrollBlockage';\nimport { isElementAtTopAndNotCovered } from '../../utils/isElementAtTopAndNotCovered';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { MaxWidthSmoother } from '../MaxWidthSmoother/index';\nimport { useRightDrawerStore } from './useRightDrawerStore';\n\ntype BackButtonProps = {\n onBack: () => void;\n text?: string;\n};\n\ntype RightDrawerProps = {\n title?: ReactNode;\n identifier: string;\n children?: ReactNode;\n header?: ReactNode;\n closeOnOutsideClick?: boolean;\n backButton?: BackButtonProps;\n isOpen?: boolean;\n onClose?: () => void;\n};\n\nexport const RightDrawer: FC<RightDrawerProps> = ({\n title,\n identifier,\n children,\n header,\n closeOnOutsideClick = true,\n backButton,\n isOpen: isOpenProp,\n onClose,\n}) => {\n const { isMobile } = useDevice('md');\n const panelRef = useRef<HTMLDivElement>(null);\n const childrenContainerRef = useRef<HTMLDivElement>(null);\n const { close, open, isOpen } = useRightDrawerStore(\n useShallow((s) => ({\n close: () => s.close(identifier),\n open: () => s.open(identifier),\n isOpen: s.isOpen(identifier),\n }))\n );\n\n useScrollBlockage({\n disableScroll: isOpen,\n key: identifier ? `right_drawer_${identifier}` : 'right_drawer',\n });\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n try {\n if (!panelRef.current) return;\n\n // Check if drawer is open and click outside is enabled\n const isClickAble = isOpen && closeOnOutsideClick;\n\n // Check if click is outside the drawer panel\n const isClickOutside =\n event.target && !panelRef.current.contains(event.target as Node);\n\n // Check if event propagation has been stopped\n const isAtTopAndVisible = isElementAtTopAndNotCovered(panelRef.current);\n\n if (\n (isClickAble && isClickOutside && isAtTopAndVisible) ||\n !event.target\n ) {\n close();\n onClose?.();\n }\n } catch (_e) {\n close();\n onClose?.();\n }\n };\n\n window.addEventListener('mousedown', handleClickOutside);\n return () => window.removeEventListener('mousedown', handleClickOutside);\n }, [isOpen, close, onClose, closeOnOutsideClick, identifier]); // Make sure the effect runs only if isOpen or close changes\n\n useEffect(() => {\n if (isOpenProp !== undefined) {\n if (isOpenProp) {\n open();\n } else {\n close();\n onClose?.();\n }\n }\n }, [close, open, onClose, isOpenProp, identifier]);\n\n const handleSpareSpaceClick: MouseEventHandler<HTMLDivElement> = (e) => {\n // Check if the click trigger the background\n if (e.target !== e.currentTarget) {\n return;\n }\n\n if (isMobile) {\n close();\n onClose?.();\n }\n };\n\n return (\n <div className=\"fixed right-0 top-0 z-50 flex h-full justify-end\">\n <MaxWidthSmoother isHidden={!isOpen} align=\"right\">\n <Container\n className=\"text-text dark:text-text-dark relative flex h-screen w-screen flex-col md:w-[400px]\"\n ref={panelRef}\n roundedSize=\"none\"\n >\n <div className=\"flex flex-col gap-3 p-6\">\n <div className=\"flex justify-between gap-3\">\n <div>\n {backButton && (\n <Button\n variant=\"hoverable\"\n color=\"text\"\n label={backButton.text ?? 'Go back'}\n onClick={backButton.onBack}\n Icon={ChevronLeft}\n >\n {backButton?.text}\n </Button>\n )}\n </div>\n <Button\n variant=\"hoverable\"\n color=\"text\"\n label=\"Close\"\n className=\"ml-auto\"\n onClick={close}\n Icon={X}\n size=\"icon-md\"\n />\n </div>\n <h2 className=\"flex items-center justify-center text-lg font-bold\">\n {title}\n </h2>\n {header}\n </div>\n\n <div className=\"flex h-full flex-col overflow-y-auto p-2\">\n <div\n className=\"flex-1\"\n onClick={handleSpareSpaceClick}\n ref={childrenContainerRef}\n >\n {children}\n </div>\n </div>\n </Container>\n </MaxWidthSmoother>\n </div>\n );\n};\n"],"names":["useDevice","useRef","useRightDrawerStore","useShallow","useScrollBlockage","useEffect","isElementAtTopAndNotCovered","jsx","MaxWidthSmoother","jsxs","Container","Button","ChevronLeft","X"],"mappings":"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"}
1
+ {"version":3,"file":"RightDrawer.cjs","sources":["../../../src/components/RightDrawer/RightDrawer.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n'use client';\n\nimport { ChevronLeft, X } from 'lucide-react';\nimport {\n type ReactNode,\n type FC,\n useEffect,\n useRef,\n type MouseEventHandler,\n} from 'react';\nimport { useShallow } from 'zustand/react/shallow';\nimport { useDevice } from '../../hooks/useDevice';\nimport { useScrollBlockage } from '../../hooks/useScrollBlockage';\nimport { isElementAtTopAndNotCovered } from '../../utils/isElementAtTopAndNotCovered';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { MaxWidthSmoother } from '../MaxWidthSmoother/index';\nimport { useRightDrawerStore } from './useRightDrawerStore';\n\ntype BackButtonProps = {\n onBack: () => void;\n text?: string;\n};\n\ntype RightDrawerProps = {\n title?: ReactNode;\n identifier: string;\n children?: ReactNode;\n header?: ReactNode;\n closeOnOutsideClick?: boolean;\n backButton?: BackButtonProps;\n isOpen?: boolean;\n onClose?: () => void;\n};\n\nexport const RightDrawer: FC<RightDrawerProps> = ({\n title,\n identifier,\n children,\n header,\n closeOnOutsideClick = true,\n backButton,\n isOpen: isOpenProp,\n onClose,\n}) => {\n const { isMobile } = useDevice('md');\n const panelRef = useRef<HTMLDivElement>(null);\n const childrenContainerRef = useRef<HTMLDivElement>(null);\n const { close, open, isOpen } = useRightDrawerStore(\n useShallow((s) => ({\n close: () => s.close(identifier),\n open: () => s.open(identifier),\n isOpen: s.isOpen(identifier),\n }))\n );\n\n useScrollBlockage({\n disableScroll: isOpen,\n key: identifier ? `right_drawer_${identifier}` : 'right_drawer',\n });\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n try {\n if (!panelRef.current) return;\n\n // Check if drawer is open and click outside is enabled\n const isClickAble = isOpen && closeOnOutsideClick;\n\n // Check if click is outside the drawer panel\n const isClickOutside =\n event.target && !panelRef.current.contains(event.target as Node);\n\n // Check if event propagation has been stopped\n const isAtTopAndVisible = isElementAtTopAndNotCovered(panelRef.current);\n\n if (\n (isClickAble && isClickOutside && isAtTopAndVisible) ||\n !event.target\n ) {\n close();\n onClose?.();\n }\n } catch (_e) {\n close();\n onClose?.();\n }\n };\n\n window.addEventListener('mousedown', handleClickOutside);\n return () => window.removeEventListener('mousedown', handleClickOutside);\n }, [isOpen, close, onClose, closeOnOutsideClick, identifier]); // Make sure the effect runs only if isOpen or close changes\n\n useEffect(() => {\n if (isOpenProp !== undefined) {\n if (isOpenProp) {\n open();\n } else {\n close();\n onClose?.();\n }\n }\n }, [close, open, onClose, isOpenProp, identifier]);\n\n const handleSpareSpaceClick: MouseEventHandler<HTMLDivElement> = (e) => {\n // Check if the click trigger the background\n if (e.target !== e.currentTarget) {\n return;\n }\n\n if (isMobile) {\n close();\n onClose?.();\n }\n };\n\n return (\n <div className=\"fixed right-0 top-0 z-50 flex h-full justify-end\">\n <MaxWidthSmoother isHidden={!isOpen} align=\"right\">\n <Container\n className=\"text-text dark:text-text-dark relative flex h-screen w-screen flex-col md:w-[400px]\"\n ref={panelRef}\n roundedSize=\"none\"\n >\n <div className=\"flex flex-col gap-3 p-6\">\n <div className=\"flex justify-between gap-3\">\n <div>\n {backButton && (\n <Button\n variant=\"hoverable\"\n color=\"text\"\n label={backButton.text ?? 'Go back'}\n onClick={backButton.onBack}\n Icon={ChevronLeft}\n >\n {backButton?.text}\n </Button>\n )}\n </div>\n <div>\n <Button\n variant=\"hoverable\"\n color=\"text\"\n label=\"Close\"\n className=\"ml-auto\"\n onClick={close}\n Icon={X}\n size=\"icon-md\"\n />\n </div>\n </div>\n <h2 className=\"flex items-center justify-center text-lg font-bold\">\n {title}\n </h2>\n {header}\n </div>\n\n <div className=\"flex h-full flex-col overflow-y-auto p-2\">\n <div\n className=\"flex-1\"\n onClick={handleSpareSpaceClick}\n ref={childrenContainerRef}\n >\n {children}\n </div>\n </div>\n </Container>\n </MaxWidthSmoother>\n </div>\n );\n};\n"],"names":["useDevice","useRef","useRightDrawerStore","useShallow","useScrollBlockage","useEffect","isElementAtTopAndNotCovered","jsx","MaxWidthSmoother","jsxs","Container","Button","ChevronLeft","X"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RightDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/RightDrawer/RightDrawer.tsx"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,EAAE,EAIR,MAAM,OAAO,CAAC;AAUf,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAqI5C,CAAC"}
1
+ {"version":3,"file":"RightDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/RightDrawer/RightDrawer.tsx"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,EAAE,EAIR,MAAM,OAAO,CAAC;AAUf,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAuI5C,CAAC"}
@@ -91,7 +91,7 @@ const RightDrawer = ({
91
91
  children: backButton?.text
92
92
  }
93
93
  ) }),
94
- /* @__PURE__ */ jsxRuntimeExports.jsx(
94
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
95
95
  Button,
96
96
  {
97
97
  variant: "hoverable",
@@ -102,7 +102,7 @@ const RightDrawer = ({
102
102
  Icon: X,
103
103
  size: "icon-md"
104
104
  }
105
- )
105
+ ) })
106
106
  ] }),
107
107
  /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "flex items-center justify-center text-lg font-bold", children: title }),
108
108
  header
@@ -1 +1 @@
1
- {"version":3,"file":"RightDrawer.mjs","sources":["../../../src/components/RightDrawer/RightDrawer.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n'use client';\n\nimport { ChevronLeft, X } from 'lucide-react';\nimport {\n type ReactNode,\n type FC,\n useEffect,\n useRef,\n type MouseEventHandler,\n} from 'react';\nimport { useShallow } from 'zustand/react/shallow';\nimport { useDevice } from '../../hooks/useDevice';\nimport { useScrollBlockage } from '../../hooks/useScrollBlockage';\nimport { isElementAtTopAndNotCovered } from '../../utils/isElementAtTopAndNotCovered';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { MaxWidthSmoother } from '../MaxWidthSmoother/index';\nimport { useRightDrawerStore } from './useRightDrawerStore';\n\ntype BackButtonProps = {\n onBack: () => void;\n text?: string;\n};\n\ntype RightDrawerProps = {\n title?: ReactNode;\n identifier: string;\n children?: ReactNode;\n header?: ReactNode;\n closeOnOutsideClick?: boolean;\n backButton?: BackButtonProps;\n isOpen?: boolean;\n onClose?: () => void;\n};\n\nexport const RightDrawer: FC<RightDrawerProps> = ({\n title,\n identifier,\n children,\n header,\n closeOnOutsideClick = true,\n backButton,\n isOpen: isOpenProp,\n onClose,\n}) => {\n const { isMobile } = useDevice('md');\n const panelRef = useRef<HTMLDivElement>(null);\n const childrenContainerRef = useRef<HTMLDivElement>(null);\n const { close, open, isOpen } = useRightDrawerStore(\n useShallow((s) => ({\n close: () => s.close(identifier),\n open: () => s.open(identifier),\n isOpen: s.isOpen(identifier),\n }))\n );\n\n useScrollBlockage({\n disableScroll: isOpen,\n key: identifier ? `right_drawer_${identifier}` : 'right_drawer',\n });\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n try {\n if (!panelRef.current) return;\n\n // Check if drawer is open and click outside is enabled\n const isClickAble = isOpen && closeOnOutsideClick;\n\n // Check if click is outside the drawer panel\n const isClickOutside =\n event.target && !panelRef.current.contains(event.target as Node);\n\n // Check if event propagation has been stopped\n const isAtTopAndVisible = isElementAtTopAndNotCovered(panelRef.current);\n\n if (\n (isClickAble && isClickOutside && isAtTopAndVisible) ||\n !event.target\n ) {\n close();\n onClose?.();\n }\n } catch (_e) {\n close();\n onClose?.();\n }\n };\n\n window.addEventListener('mousedown', handleClickOutside);\n return () => window.removeEventListener('mousedown', handleClickOutside);\n }, [isOpen, close, onClose, closeOnOutsideClick, identifier]); // Make sure the effect runs only if isOpen or close changes\n\n useEffect(() => {\n if (isOpenProp !== undefined) {\n if (isOpenProp) {\n open();\n } else {\n close();\n onClose?.();\n }\n }\n }, [close, open, onClose, isOpenProp, identifier]);\n\n const handleSpareSpaceClick: MouseEventHandler<HTMLDivElement> = (e) => {\n // Check if the click trigger the background\n if (e.target !== e.currentTarget) {\n return;\n }\n\n if (isMobile) {\n close();\n onClose?.();\n }\n };\n\n return (\n <div className=\"fixed right-0 top-0 z-50 flex h-full justify-end\">\n <MaxWidthSmoother isHidden={!isOpen} align=\"right\">\n <Container\n className=\"text-text dark:text-text-dark relative flex h-screen w-screen flex-col md:w-[400px]\"\n ref={panelRef}\n roundedSize=\"none\"\n >\n <div className=\"flex flex-col gap-3 p-6\">\n <div className=\"flex justify-between gap-3\">\n <div>\n {backButton && (\n <Button\n variant=\"hoverable\"\n color=\"text\"\n label={backButton.text ?? 'Go back'}\n onClick={backButton.onBack}\n Icon={ChevronLeft}\n >\n {backButton?.text}\n </Button>\n )}\n </div>\n <Button\n variant=\"hoverable\"\n color=\"text\"\n label=\"Close\"\n className=\"ml-auto\"\n onClick={close}\n Icon={X}\n size=\"icon-md\"\n />\n </div>\n <h2 className=\"flex items-center justify-center text-lg font-bold\">\n {title}\n </h2>\n {header}\n </div>\n\n <div className=\"flex h-full flex-col overflow-y-auto p-2\">\n <div\n className=\"flex-1\"\n onClick={handleSpareSpaceClick}\n ref={childrenContainerRef}\n >\n {children}\n </div>\n </div>\n </Container>\n </MaxWidthSmoother>\n </div>\n );\n};\n"],"names":["jsx","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"RightDrawer.mjs","sources":["../../../src/components/RightDrawer/RightDrawer.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n'use client';\n\nimport { ChevronLeft, X } from 'lucide-react';\nimport {\n type ReactNode,\n type FC,\n useEffect,\n useRef,\n type MouseEventHandler,\n} from 'react';\nimport { useShallow } from 'zustand/react/shallow';\nimport { useDevice } from '../../hooks/useDevice';\nimport { useScrollBlockage } from '../../hooks/useScrollBlockage';\nimport { isElementAtTopAndNotCovered } from '../../utils/isElementAtTopAndNotCovered';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { MaxWidthSmoother } from '../MaxWidthSmoother/index';\nimport { useRightDrawerStore } from './useRightDrawerStore';\n\ntype BackButtonProps = {\n onBack: () => void;\n text?: string;\n};\n\ntype RightDrawerProps = {\n title?: ReactNode;\n identifier: string;\n children?: ReactNode;\n header?: ReactNode;\n closeOnOutsideClick?: boolean;\n backButton?: BackButtonProps;\n isOpen?: boolean;\n onClose?: () => void;\n};\n\nexport const RightDrawer: FC<RightDrawerProps> = ({\n title,\n identifier,\n children,\n header,\n closeOnOutsideClick = true,\n backButton,\n isOpen: isOpenProp,\n onClose,\n}) => {\n const { isMobile } = useDevice('md');\n const panelRef = useRef<HTMLDivElement>(null);\n const childrenContainerRef = useRef<HTMLDivElement>(null);\n const { close, open, isOpen } = useRightDrawerStore(\n useShallow((s) => ({\n close: () => s.close(identifier),\n open: () => s.open(identifier),\n isOpen: s.isOpen(identifier),\n }))\n );\n\n useScrollBlockage({\n disableScroll: isOpen,\n key: identifier ? `right_drawer_${identifier}` : 'right_drawer',\n });\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n try {\n if (!panelRef.current) return;\n\n // Check if drawer is open and click outside is enabled\n const isClickAble = isOpen && closeOnOutsideClick;\n\n // Check if click is outside the drawer panel\n const isClickOutside =\n event.target && !panelRef.current.contains(event.target as Node);\n\n // Check if event propagation has been stopped\n const isAtTopAndVisible = isElementAtTopAndNotCovered(panelRef.current);\n\n if (\n (isClickAble && isClickOutside && isAtTopAndVisible) ||\n !event.target\n ) {\n close();\n onClose?.();\n }\n } catch (_e) {\n close();\n onClose?.();\n }\n };\n\n window.addEventListener('mousedown', handleClickOutside);\n return () => window.removeEventListener('mousedown', handleClickOutside);\n }, [isOpen, close, onClose, closeOnOutsideClick, identifier]); // Make sure the effect runs only if isOpen or close changes\n\n useEffect(() => {\n if (isOpenProp !== undefined) {\n if (isOpenProp) {\n open();\n } else {\n close();\n onClose?.();\n }\n }\n }, [close, open, onClose, isOpenProp, identifier]);\n\n const handleSpareSpaceClick: MouseEventHandler<HTMLDivElement> = (e) => {\n // Check if the click trigger the background\n if (e.target !== e.currentTarget) {\n return;\n }\n\n if (isMobile) {\n close();\n onClose?.();\n }\n };\n\n return (\n <div className=\"fixed right-0 top-0 z-50 flex h-full justify-end\">\n <MaxWidthSmoother isHidden={!isOpen} align=\"right\">\n <Container\n className=\"text-text dark:text-text-dark relative flex h-screen w-screen flex-col md:w-[400px]\"\n ref={panelRef}\n roundedSize=\"none\"\n >\n <div className=\"flex flex-col gap-3 p-6\">\n <div className=\"flex justify-between gap-3\">\n <div>\n {backButton && (\n <Button\n variant=\"hoverable\"\n color=\"text\"\n label={backButton.text ?? 'Go back'}\n onClick={backButton.onBack}\n Icon={ChevronLeft}\n >\n {backButton?.text}\n </Button>\n )}\n </div>\n <div>\n <Button\n variant=\"hoverable\"\n color=\"text\"\n label=\"Close\"\n className=\"ml-auto\"\n onClick={close}\n Icon={X}\n size=\"icon-md\"\n />\n </div>\n </div>\n <h2 className=\"flex items-center justify-center text-lg font-bold\">\n {title}\n </h2>\n {header}\n </div>\n\n <div className=\"flex h-full flex-col overflow-y-auto p-2\">\n <div\n className=\"flex-1\"\n onClick={handleSpareSpaceClick}\n ref={childrenContainerRef}\n >\n {children}\n </div>\n </div>\n </Container>\n </MaxWidthSmoother>\n </div>\n );\n};\n"],"names":["jsx","jsxs"],"mappings":"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"}
@@ -69,6 +69,7 @@ exports.useUpdateProjectMembers = hooks_intlayerAPIHooks.useUpdateProjectMembers
69
69
  exports.useUpdateTag = hooks_intlayerAPIHooks.useUpdateTag;
70
70
  exports.useUpdateUser = hooks_intlayerAPIHooks.useUpdateUser;
71
71
  exports.useVerifyEmail = hooks_intlayerAPIHooks.useVerifyEmail;
72
+ exports.useWriteDictionary = hooks_intlayerAPIHooks.useWriteDictionary;
72
73
  exports.useItemSelector = hooks_useItemSelector.useItemSelector;
73
74
  exports.useGetAllDictionaries = hooks_useGetAllDictionaries.useGetAllDictionaries;
74
75
  exports.usePersistedStore = hooks_usePersistedStore.usePersistedStore;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -5,7 +5,7 @@ import { useIsMounted } from "./useIsMounted.mjs";
5
5
  import { useScrollDetection } from "./useScrollDetection.mjs";
6
6
  import { useAsync } from "./useAsync/useAsync.mjs";
7
7
  import { AsyncStateProvider, useAsyncState } from "./useAsync/useAsyncStateStore.mjs";
8
- import { useAddDictionary, useAddNewAccessKey, useAddOrganization, useAddOrganizationMember, useAddProject, useAddTag, useAskDocQuestion, useAskResetPassword, useAuditContentDeclaration, useAuditContentDeclarationField, useAuditContentDeclarationMetadata, useAuditTag, useCancelSubscription, useChangePassword, useCheckIfUserHasPassword, useCreateUser, useDeleteAccessKey, useDeleteDictionary, useDeleteOrganization, useDeleteProject, useDeleteTag, useDeleteUser, useGetDictionaries, useGetDictionariesKeys, useGetDictionary, useGetOrganizations, useGetProjects, useGetSubscription, useGetTags, useGetUserByAccount, useGetUsers, useLogin, useLogout, usePushDictionaries, useRefreshAccessKey, useRegister, useResetPassword, useSelectOrganization, useSelectProject, useUnselectOrganization, useUnselectProject, useUpdateDictionary, useUpdateOrganization, useUpdateOrganizationMembers, useUpdateProject, useUpdateProjectMembers, useUpdateTag, useUpdateUser, useVerifyEmail } from "./intlayerAPIHooks.mjs";
8
+ import { useAddDictionary, useAddNewAccessKey, useAddOrganization, useAddOrganizationMember, useAddProject, useAddTag, useAskDocQuestion, useAskResetPassword, useAuditContentDeclaration, useAuditContentDeclarationField, useAuditContentDeclarationMetadata, useAuditTag, useCancelSubscription, useChangePassword, useCheckIfUserHasPassword, useCreateUser, useDeleteAccessKey, useDeleteDictionary, useDeleteOrganization, useDeleteProject, useDeleteTag, useDeleteUser, useGetDictionaries, useGetDictionariesKeys, useGetDictionary, useGetOrganizations, useGetProjects, useGetSubscription, useGetTags, useGetUserByAccount, useGetUsers, useLogin, useLogout, usePushDictionaries, useRefreshAccessKey, useRegister, useResetPassword, useSelectOrganization, useSelectProject, useUnselectOrganization, useUnselectProject, useUpdateDictionary, useUpdateOrganization, useUpdateOrganizationMembers, useUpdateProject, useUpdateProjectMembers, useUpdateTag, useUpdateUser, useVerifyEmail, useWriteDictionary } from "./intlayerAPIHooks.mjs";
9
9
  import { useItemSelector } from "./useItemSelector.mjs";
10
10
  import { useGetAllDictionaries } from "./useGetAllDictionaries.mjs";
11
11
  import { usePersistedStore } from "./usePersistedStore.mjs";
@@ -71,6 +71,7 @@ export {
71
71
  useUpdateProjectMembers,
72
72
  useUpdateTag,
73
73
  useUpdateUser,
74
- useVerifyEmail
74
+ useVerifyEmail,
75
+ useWriteDictionary
75
76
  };
76
77
  //# sourceMappingURL=index.mjs.map
@@ -42,7 +42,7 @@ const useErrorHandling = (options) => {
42
42
  };
43
43
  };
44
44
  const useAuthEnable = (options, { requireUser, requireProject, requireOrganization } = {}) => {
45
- const { configuration } = editorReact.useConfiguration();
45
+ const configuration = editorReact.useConfiguration();
46
46
  const { csrfToken, oAuth2AccessToken, session } = components_Auth_useAuth_index.useAuth({
47
47
  intlayerConfiguration: configuration
48
48
  });
@@ -66,6 +66,10 @@ const useAppAsync = (key, asyncFunction, options, authOptions) => {
66
66
  const optionsWithErrorHandling = useErrorHandling(optionsWithAuth);
67
67
  return hooks_useAsync_useAsync.useAsync(key, asyncFunction, optionsWithErrorHandling);
68
68
  };
69
+ const useEditorAsync = (key, asyncFunction, options) => {
70
+ const optionsWithErrorHandling = useErrorHandling(options ?? {});
71
+ return hooks_useAsync_useAsync.useAsync(key, asyncFunction, optionsWithErrorHandling);
72
+ };
69
73
  const useLogin = (args) => useAppAsync("login", hooks_useIntlayerAPI.useIntlayerAuth().auth.login, {
70
74
  invalidateQueries: ["getSession"],
71
75
  ...args
@@ -434,6 +438,11 @@ const useAuditTag = (args) => useAppAsync("auditTag", hooks_useIntlayerAPI.useIn
434
438
  requireProject: true
435
439
  });
436
440
  const useAskDocQuestion = (args) => useAppAsync("askDocQuestion", hooks_useIntlayerAPI.useIntlayerAuth().ai.askDocQuestion, args);
441
+ const useWriteDictionary = (args) => useEditorAsync(
442
+ "writeDictionary",
443
+ hooks_useIntlayerAPI.useIntlayerAuth().editor.writeDictionary,
444
+ args
445
+ );
437
446
  exports.useAddDictionary = useAddDictionary;
438
447
  exports.useAddNewAccessKey = useAddNewAccessKey;
439
448
  exports.useAddOrganization = useAddOrganization;
@@ -483,4 +492,5 @@ exports.useUpdateProjectMembers = useUpdateProjectMembers;
483
492
  exports.useUpdateTag = useUpdateTag;
484
493
  exports.useUpdateUser = useUpdateUser;
485
494
  exports.useVerifyEmail = useVerifyEmail;
495
+ exports.useWriteDictionary = useWriteDictionary;
486
496
  //# sourceMappingURL=intlayerAPIHooks.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"intlayerAPIHooks.cjs","sources":["../../__vite-browser-external","../../src/hooks/intlayerAPIHooks.ts"],"sourcesContent":["export default {}","/* eslint-disable @typescript-eslint/no-explicit-any */\n'use client';\n\nimport process from 'process';\nimport { intlayerAPI } from '@intlayer/api';\nimport { useConfiguration } from '@intlayer/editor-react';\nimport { useAuth } from '../components/Auth/useAuth/index';\nimport { useToast } from '../components/Toaster';\nimport { useAsync, UseAsyncOptions } from './useAsync/useAsync';\nimport { useIntlayerAuth } from './useIntlayerAPI';\n\n/**\n * Hook to handle error logging and toast notifications\n */\nconst useErrorHandling = <T extends UseAsyncOptions<any>>(options: T): T => {\n const { toast } = useToast();\n\n return {\n ...options,\n onError: (errorMessage) => {\n let error;\n\n // If json is valid, parse it\n try {\n error = JSON.parse(errorMessage);\n } catch (e) {\n console.error(e);\n // If json is not valid, set error to the original errorMessage\n\n error = errorMessage;\n }\n\n // render toast for each error if there is more than one\n // otherwise render the toast with the error message\n [error]\n .flatMap((error) => error)\n .forEach((error) =>\n toast({\n title:\n (process.env.NODE_ENV === 'production'\n ? error.title\n : error.code) ?? 'Error',\n description: error.message ?? errorMessage ?? 'An error occurred',\n variant: 'error',\n })\n );\n options.onError?.(errorMessage);\n },\n onSuccess: (data) => {\n if (data.message)\n toast({\n title: data.message,\n description: data.description,\n variant: 'success',\n });\n options.onSuccess?.(data);\n },\n };\n};\n\ntype AuthEnableOptions = {\n requireUser?: boolean;\n requireProject?: boolean;\n requireOrganization?: boolean;\n};\n\n/**\n * Hook to enable authentication\n */\nconst useAuthEnable = <T extends UseAsyncOptions<any>>(\n options: T,\n { requireUser, requireProject, requireOrganization }: AuthEnableOptions = {}\n): T => {\n const { configuration } = useConfiguration();\n const { csrfToken, oAuth2AccessToken, session } = useAuth({\n intlayerConfiguration: configuration,\n });\n\n const isEnabledOption = options?.enable ?? true;\n const user = session ? session.user : oAuth2AccessToken?.user;\n\n const organization = session\n ? session.organization\n : oAuth2AccessToken?.organization;\n\n const project = session ? session.project : oAuth2AccessToken?.project;\n\n const isUserEnabled = requireUser ? Boolean(user) : true;\n\n const isProjectEnabled = requireProject ? Boolean(project) : true;\n\n const isOrganizationEnabled = requireOrganization\n ? Boolean(organization)\n : true;\n\n const isCSRFEnabled =\n Boolean(csrfToken) ||\n // If auth using session, csrf token is not required\n (!session && Boolean(oAuth2AccessToken));\n\n const isEnabled =\n isEnabledOption &&\n isUserEnabled &&\n isProjectEnabled &&\n isOrganizationEnabled &&\n isCSRFEnabled;\n\n return {\n ...options,\n enable: isEnabled,\n };\n};\n\nconst useAppAsync = <\n U extends string,\n T extends (...args: any[]) => Promise<any>,\n>(\n key: U,\n asyncFunction: T,\n options?: UseAsyncOptions<T>,\n authOptions?: AuthEnableOptions\n) => {\n // Enhance options using custom hooks\n const optionsWithAuth = useAuthEnable(options ?? {}, authOptions);\n\n const optionsWithErrorHandling = useErrorHandling(optionsWithAuth);\n\n // Call the main useAsync hook with enhanced options\n return useAsync(key, asyncFunction, optionsWithErrorHandling);\n};\n\n/**\n * Auth\n */\n\nexport const useLogin = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.login>\n) =>\n useAppAsync('login', useIntlayerAuth().auth.login, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useRegister = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.register>\n) =>\n useAppAsync('register', useIntlayerAuth().auth.register, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useLogout = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.logout>\n) =>\n useAppAsync('logout', useIntlayerAuth().auth.logout, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useChangePassword = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.changePassword>\n) => useAppAsync('changePassword', useIntlayerAuth().auth.changePassword, args);\nexport const useAskResetPassword = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.askResetPassword>\n) =>\n useAppAsync(\n 'askResetPassword',\n useIntlayerAuth().auth.askResetPassword,\n args\n );\nexport const useResetPassword = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.resetPassword>\n) => useAppAsync('resetPassword', useIntlayerAuth().auth.resetPassword, args);\nexport const useCheckIfUserHasPassword = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.checkIfUserHasPassword>\n) =>\n useAppAsync(\n 'checkIfUserHasPassword',\n useIntlayerAuth().auth.checkIfUserHasPassword,\n args,\n {\n requireUser: true,\n }\n );\nexport const useVerifyEmail = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.verifyEmail>\n) => useAppAsync('verifyEmail', useIntlayerAuth().auth.verifyEmail, args);\n\nexport const useGetUserByAccount = (\n args?: UseAsyncOptions<typeof intlayerAPI.user.getUserByAccount>\n) =>\n useAppAsync(\n 'getUserByAccount',\n useIntlayerAuth().user.getUserByAccount,\n args\n );\n\n/**\n * User\n */\n\nexport const useGetUsers = (\n args?: UseAsyncOptions<typeof intlayerAPI.user.getUsers>\n) =>\n useAppAsync(\n 'getUsers',\n useIntlayerAuth().user.getUsers,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n autoFetch: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n }\n );\nexport const useCreateUser = (\n args?: UseAsyncOptions<typeof intlayerAPI.user.createUser>\n) =>\n useAppAsync('createUser', useIntlayerAuth().user.createUser, {\n invalidateQueries: ['getUsers'],\n ...args,\n });\nexport const useUpdateUser = (\n args?: UseAsyncOptions<typeof intlayerAPI.user.updateUser>\n) =>\n useAppAsync('updateUser', useIntlayerAuth().user.updateUser, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useDeleteUser = (\n args?: UseAsyncOptions<typeof intlayerAPI.user.deleteUser>\n) =>\n useAppAsync('deleteUser', useIntlayerAuth().user.deleteUser, {\n invalidateQueries: ['getUsers'],\n ...args,\n });\n\n/**\n * Organization\n */\n\nexport const useGetOrganizations = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.getOrganizations>\n) =>\n useAppAsync(\n 'getOrganizations',\n useIntlayerAuth().organization.getOrganizations,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n autoFetch: true,\n revalidation: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n }\n );\n\nexport const useAddOrganization = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.addOrganization>\n) =>\n useAppAsync(\n 'addOrganization',\n useIntlayerAuth().organization.addOrganization,\n {\n invalidateQueries: ['getOrganizations'],\n ...args,\n }\n );\nexport const useUpdateOrganization = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.updateOrganization>\n) =>\n useAppAsync(\n 'updateOrganization',\n useIntlayerAuth().organization.updateOrganization,\n {\n invalidateQueries: ['getSession'],\n ...args,\n }\n );\nexport const useUpdateOrganizationMembers = (\n args?: UseAsyncOptions<\n typeof intlayerAPI.organization.updateOrganizationMembers\n >\n) =>\n useAppAsync(\n 'updateOrganizationMembers',\n useIntlayerAuth().organization.updateOrganizationMembers,\n {\n invalidateQueries: ['getOrganizations'],\n ...args,\n }\n );\nexport const useAddOrganizationMember = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.addOrganizationMember>\n) =>\n useAppAsync(\n 'addOrganizationMember',\n useIntlayerAuth().organization.addOrganizationMember,\n {\n invalidateQueries: ['getOrganizations'],\n ...args,\n }\n );\nexport const useDeleteOrganization = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.deleteOrganization>\n) =>\n useAppAsync(\n 'deleteOrganization',\n useIntlayerAuth().organization.deleteOrganization,\n {\n invalidateQueries: ['getOrganizations'],\n ...args,\n }\n );\nexport const useSelectOrganization = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.selectOrganization>\n) =>\n useAppAsync(\n 'selectOrganization',\n useIntlayerAuth().organization.selectOrganization,\n {\n invalidateQueries: ['getSession'],\n ...args,\n }\n );\nexport const useUnselectOrganization = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.unselectOrganization>\n) =>\n useAppAsync(\n 'unselectOrganization',\n useIntlayerAuth().organization.unselectOrganization,\n {\n invalidateQueries: ['getSession'],\n ...args,\n }\n );\n\n/**\n * Project\n */\n\nexport const useGetProjects = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.getProjects>\n) =>\n useAppAsync(\n 'getProjects',\n useIntlayerAuth().project.getProjects,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n autoFetch: true,\n revalidation: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n requireOrganization: true,\n }\n );\nexport const useAddProject = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.addProject>\n) =>\n useAppAsync('addProject', useIntlayerAuth().project.addProject, {\n invalidateQueries: ['getProjects'],\n ...args,\n });\nexport const useUpdateProject = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.updateProject>\n) =>\n useAppAsync('updateProject', useIntlayerAuth().project.updateProject, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useUpdateProjectMembers = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.updateProjectMembers>\n) =>\n useAppAsync(\n 'updateProjectMembers',\n useIntlayerAuth().project.updateProjectMembers,\n {\n invalidateQueries: ['getSession'],\n ...args,\n }\n );\nexport const useDeleteProject = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.deleteProject>\n) =>\n useAppAsync('deleteProject', useIntlayerAuth().project.deleteProject, {\n invalidateQueries: ['getProjects'],\n ...args,\n });\nexport const useSelectProject = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.selectProject>\n) =>\n useAppAsync('selectProject', useIntlayerAuth().project.selectProject, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useUnselectProject = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.unselectProject>\n) =>\n useAppAsync('unselectProject', useIntlayerAuth().project.unselectProject, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useAddNewAccessKey = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.addNewAccessKey>\n) =>\n useAppAsync('addNewAccessKey', useIntlayerAuth().project.addNewAccessKey, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useDeleteAccessKey = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.deleteAccessKey>\n) =>\n useAppAsync('deleteAccessKey', useIntlayerAuth().project.deleteAccessKey, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useRefreshAccessKey = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.refreshAccessKey>\n) =>\n useAppAsync('refreshAccessKey', useIntlayerAuth().project.refreshAccessKey, {\n invalidateQueries: ['getSession'],\n ...args,\n });\n\n/**\n * Dictionary\n */\n\nexport const useGetDictionaries = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.getDictionaries>\n) =>\n useAppAsync(\n 'getDictionaries',\n useIntlayerAuth().dictionary.getDictionaries,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n autoFetch: true,\n revalidation: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n }\n );\n\nexport const useGetDictionariesKeys = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.getDictionariesKeys>\n) =>\n useAppAsync(\n 'getDictionariesKeys',\n useIntlayerAuth().dictionary.getDictionariesKeys,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n autoFetch: true,\n revalidation: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n }\n );\n\nexport const useGetDictionary = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.getDictionary>\n) =>\n useAppAsync(\n 'getDictionary',\n useIntlayerAuth().dictionary.getDictionary,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n revalidation: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n }\n );\nexport const useAddDictionary = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.addDictionary>\n) =>\n useAppAsync('addDictionary', useIntlayerAuth().dictionary.addDictionary, {\n invalidateQueries: ['getDictionaries', 'getDictionariesKeys'],\n ...args,\n });\n\nexport const usePushDictionaries = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.pushDictionaries>\n) =>\n useAppAsync(\n 'pushDictionaries',\n useIntlayerAuth().dictionary.pushDictionaries,\n {\n invalidateQueries: [\n 'getDictionaries',\n 'getDictionary',\n 'getDictionariesKeys',\n ],\n ...args,\n }\n );\nexport const useUpdateDictionary = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.updateDictionary>\n) =>\n useAppAsync(\n 'updateDictionary',\n useIntlayerAuth().dictionary.updateDictionary,\n {\n invalidateQueries: ['getDictionaries', 'getDictionary'],\n ...args,\n }\n );\nexport const useDeleteDictionary = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.deleteDictionary>\n) =>\n useAppAsync(\n 'deleteDictionary',\n useIntlayerAuth().dictionary.deleteDictionary,\n {\n invalidateQueries: [\n 'getDictionaries',\n 'getDictionary',\n 'getDictionariesKeys',\n ],\n ...args,\n }\n );\n\n/**\n * Tag\n */\n\nexport const useGetTags = (\n args?: UseAsyncOptions<typeof intlayerAPI.tag.getTags>\n) =>\n useAppAsync(\n 'getTags',\n useIntlayerAuth().tag.getTags,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n autoFetch: true,\n revalidation: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n requireOrganization: true,\n }\n );\nexport const useAddTag = (\n args?: UseAsyncOptions<typeof intlayerAPI.tag.addTag>\n) =>\n useAppAsync('addTag', useIntlayerAuth().tag.addTag, {\n invalidateQueries: ['getTags'],\n ...args,\n });\nexport const useUpdateTag = (\n args?: UseAsyncOptions<typeof intlayerAPI.tag.updateTag>\n) =>\n useAppAsync('updateTag', useIntlayerAuth().tag.updateTag, {\n invalidateQueries: ['getTags'],\n ...args,\n });\nexport const useDeleteTag = (\n args?: UseAsyncOptions<typeof intlayerAPI.tag.deleteTag>\n) =>\n useAppAsync('deleteTag', useIntlayerAuth().tag.deleteTag, {\n invalidateQueries: ['getTags'],\n ...args,\n });\n\n/**\n * Stripe\n */\n\nexport const useGetSubscription = (\n args?: UseAsyncOptions<typeof intlayerAPI.stripe.getSubscription>\n) =>\n useAppAsync(\n 'getSubscription',\n useIntlayerAuth().stripe.getSubscription,\n args,\n {\n requireUser: true,\n requireOrganization: true,\n }\n );\n\nexport const useCancelSubscription = (\n args?: UseAsyncOptions<typeof intlayerAPI.stripe.cancelSubscription>\n) =>\n useAppAsync(\n 'cancelSubscription',\n useIntlayerAuth().stripe.cancelSubscription,\n { invalidateQueries: ['getSession'], ...args },\n {\n requireUser: true,\n requireOrganization: true,\n }\n );\n\n/**\n * AI\n */\n\nexport const useAuditContentDeclaration = (\n args?: UseAsyncOptions<typeof intlayerAPI.ai.auditContentDeclaration>\n) =>\n useAppAsync(\n 'auditContentDeclaration',\n useIntlayerAuth().ai.auditContentDeclaration,\n args,\n {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n }\n );\n\nexport const useAuditContentDeclarationMetadata = (\n args?: UseAsyncOptions<typeof intlayerAPI.ai.auditContentDeclarationMetadata>\n) =>\n useAppAsync(\n 'auditContentDeclaration',\n useIntlayerAuth().ai.auditContentDeclarationMetadata,\n args,\n {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n }\n );\n\nexport const useAuditContentDeclarationField = (\n args?: UseAsyncOptions<typeof intlayerAPI.ai.auditContentDeclarationField>\n) =>\n useAppAsync(\n 'auditContentDeclarationField',\n useIntlayerAuth().ai.auditContentDeclarationField,\n args,\n {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n }\n );\n\nexport const useAuditTag = (\n args?: UseAsyncOptions<typeof intlayerAPI.ai.auditTag>\n) =>\n useAppAsync('auditTag', useIntlayerAuth().ai.auditTag, args, {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n });\n\nexport const useAskDocQuestion = (\n args?: UseAsyncOptions<typeof intlayerAPI.ai.askDocQuestion>\n) => useAppAsync('askDocQuestion', useIntlayerAuth().ai.askDocQuestion, args);\n"],"names":["useToast","error","useConfiguration","useAuth","useAsync","useIntlayerAuth"],"mappings":"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"}
1
+ {"version":3,"file":"intlayerAPIHooks.cjs","sources":["../../__vite-browser-external","../../src/hooks/intlayerAPIHooks.ts"],"sourcesContent":["export default {}","/* eslint-disable @typescript-eslint/no-explicit-any */\n'use client';\n\nimport process from 'process';\nimport { intlayerAPI } from '@intlayer/api';\nimport { useConfiguration } from '@intlayer/editor-react';\nimport { useAuth } from '../components/Auth/useAuth/index';\nimport { useToast } from '../components/Toaster';\nimport { useAsync, UseAsyncOptions } from './useAsync/useAsync';\nimport { useIntlayerAuth } from './useIntlayerAPI';\n\n/**\n * Hook to handle error logging and toast notifications\n */\nconst useErrorHandling = <T extends UseAsyncOptions<any>>(options: T): T => {\n const { toast } = useToast();\n\n return {\n ...options,\n onError: (errorMessage) => {\n let error;\n\n // If json is valid, parse it\n try {\n error = JSON.parse(errorMessage);\n } catch (e) {\n console.error(e);\n // If json is not valid, set error to the original errorMessage\n\n error = errorMessage;\n }\n\n // render toast for each error if there is more than one\n // otherwise render the toast with the error message\n [error]\n .flatMap((error) => error)\n .forEach((error) =>\n toast({\n title:\n (process.env.NODE_ENV === 'production'\n ? error.title\n : error.code) ?? 'Error',\n description: error.message ?? errorMessage ?? 'An error occurred',\n variant: 'error',\n })\n );\n options.onError?.(errorMessage);\n },\n onSuccess: (data) => {\n if (data.message)\n toast({\n title: data.message,\n description: data.description,\n variant: 'success',\n });\n options.onSuccess?.(data);\n },\n };\n};\n\ntype AuthEnableOptions = {\n requireUser?: boolean;\n requireProject?: boolean;\n requireOrganization?: boolean;\n};\n\n/**\n * Hook to enable authentication\n */\nconst useAuthEnable = <T extends UseAsyncOptions<any>>(\n options: T,\n { requireUser, requireProject, requireOrganization }: AuthEnableOptions = {}\n): T => {\n const configuration = useConfiguration();\n const { csrfToken, oAuth2AccessToken, session } = useAuth({\n intlayerConfiguration: configuration,\n });\n\n const isEnabledOption = options?.enable ?? true;\n const user = session ? session.user : oAuth2AccessToken?.user;\n\n const organization = session\n ? session.organization\n : oAuth2AccessToken?.organization;\n\n const project = session ? session.project : oAuth2AccessToken?.project;\n\n const isUserEnabled = requireUser ? Boolean(user) : true;\n\n const isProjectEnabled = requireProject ? Boolean(project) : true;\n\n const isOrganizationEnabled = requireOrganization\n ? Boolean(organization)\n : true;\n\n const isCSRFEnabled =\n Boolean(csrfToken) ||\n // If auth using session, csrf token is not required\n (!session && Boolean(oAuth2AccessToken));\n\n const isEnabled =\n isEnabledOption &&\n isUserEnabled &&\n isProjectEnabled &&\n isOrganizationEnabled &&\n isCSRFEnabled;\n\n return {\n ...options,\n enable: isEnabled,\n };\n};\n\nconst useAppAsync = <\n U extends string,\n T extends (...args: any[]) => Promise<any>,\n>(\n key: U,\n asyncFunction: T,\n options?: UseAsyncOptions<T>,\n authOptions?: AuthEnableOptions\n) => {\n // Enhance options using custom hooks\n const optionsWithAuth = useAuthEnable(options ?? {}, authOptions);\n\n const optionsWithErrorHandling = useErrorHandling(optionsWithAuth);\n\n // Call the main useAsync hook with enhanced options\n return useAsync(key, asyncFunction, optionsWithErrorHandling);\n};\n\nconst useEditorAsync = <\n U extends string,\n T extends (...args: any[]) => Promise<any>,\n>(\n key: U,\n asyncFunction: T,\n options?: UseAsyncOptions<T>\n) => {\n const optionsWithErrorHandling = useErrorHandling(options ?? {});\n\n // Call the main useAsync hook with enhanced options\n return useAsync(key, asyncFunction, optionsWithErrorHandling);\n};\n\n/**\n * Auth\n */\n\nexport const useLogin = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.login>\n) =>\n useAppAsync('login', useIntlayerAuth().auth.login, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useRegister = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.register>\n) =>\n useAppAsync('register', useIntlayerAuth().auth.register, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useLogout = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.logout>\n) =>\n useAppAsync('logout', useIntlayerAuth().auth.logout, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useChangePassword = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.changePassword>\n) => useAppAsync('changePassword', useIntlayerAuth().auth.changePassword, args);\nexport const useAskResetPassword = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.askResetPassword>\n) =>\n useAppAsync(\n 'askResetPassword',\n useIntlayerAuth().auth.askResetPassword,\n args\n );\nexport const useResetPassword = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.resetPassword>\n) => useAppAsync('resetPassword', useIntlayerAuth().auth.resetPassword, args);\nexport const useCheckIfUserHasPassword = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.checkIfUserHasPassword>\n) =>\n useAppAsync(\n 'checkIfUserHasPassword',\n useIntlayerAuth().auth.checkIfUserHasPassword,\n args,\n {\n requireUser: true,\n }\n );\nexport const useVerifyEmail = (\n args?: UseAsyncOptions<typeof intlayerAPI.auth.verifyEmail>\n) => useAppAsync('verifyEmail', useIntlayerAuth().auth.verifyEmail, args);\n\nexport const useGetUserByAccount = (\n args?: UseAsyncOptions<typeof intlayerAPI.user.getUserByAccount>\n) =>\n useAppAsync(\n 'getUserByAccount',\n useIntlayerAuth().user.getUserByAccount,\n args\n );\n\n/**\n * User\n */\n\nexport const useGetUsers = (\n args?: UseAsyncOptions<typeof intlayerAPI.user.getUsers>\n) =>\n useAppAsync(\n 'getUsers',\n useIntlayerAuth().user.getUsers,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n autoFetch: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n }\n );\nexport const useCreateUser = (\n args?: UseAsyncOptions<typeof intlayerAPI.user.createUser>\n) =>\n useAppAsync('createUser', useIntlayerAuth().user.createUser, {\n invalidateQueries: ['getUsers'],\n ...args,\n });\nexport const useUpdateUser = (\n args?: UseAsyncOptions<typeof intlayerAPI.user.updateUser>\n) =>\n useAppAsync('updateUser', useIntlayerAuth().user.updateUser, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useDeleteUser = (\n args?: UseAsyncOptions<typeof intlayerAPI.user.deleteUser>\n) =>\n useAppAsync('deleteUser', useIntlayerAuth().user.deleteUser, {\n invalidateQueries: ['getUsers'],\n ...args,\n });\n\n/**\n * Organization\n */\n\nexport const useGetOrganizations = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.getOrganizations>\n) =>\n useAppAsync(\n 'getOrganizations',\n useIntlayerAuth().organization.getOrganizations,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n autoFetch: true,\n revalidation: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n }\n );\n\nexport const useAddOrganization = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.addOrganization>\n) =>\n useAppAsync(\n 'addOrganization',\n useIntlayerAuth().organization.addOrganization,\n {\n invalidateQueries: ['getOrganizations'],\n ...args,\n }\n );\nexport const useUpdateOrganization = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.updateOrganization>\n) =>\n useAppAsync(\n 'updateOrganization',\n useIntlayerAuth().organization.updateOrganization,\n {\n invalidateQueries: ['getSession'],\n ...args,\n }\n );\nexport const useUpdateOrganizationMembers = (\n args?: UseAsyncOptions<\n typeof intlayerAPI.organization.updateOrganizationMembers\n >\n) =>\n useAppAsync(\n 'updateOrganizationMembers',\n useIntlayerAuth().organization.updateOrganizationMembers,\n {\n invalidateQueries: ['getOrganizations'],\n ...args,\n }\n );\nexport const useAddOrganizationMember = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.addOrganizationMember>\n) =>\n useAppAsync(\n 'addOrganizationMember',\n useIntlayerAuth().organization.addOrganizationMember,\n {\n invalidateQueries: ['getOrganizations'],\n ...args,\n }\n );\nexport const useDeleteOrganization = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.deleteOrganization>\n) =>\n useAppAsync(\n 'deleteOrganization',\n useIntlayerAuth().organization.deleteOrganization,\n {\n invalidateQueries: ['getOrganizations'],\n ...args,\n }\n );\nexport const useSelectOrganization = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.selectOrganization>\n) =>\n useAppAsync(\n 'selectOrganization',\n useIntlayerAuth().organization.selectOrganization,\n {\n invalidateQueries: ['getSession'],\n ...args,\n }\n );\nexport const useUnselectOrganization = (\n args?: UseAsyncOptions<typeof intlayerAPI.organization.unselectOrganization>\n) =>\n useAppAsync(\n 'unselectOrganization',\n useIntlayerAuth().organization.unselectOrganization,\n {\n invalidateQueries: ['getSession'],\n ...args,\n }\n );\n\n/**\n * Project\n */\n\nexport const useGetProjects = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.getProjects>\n) =>\n useAppAsync(\n 'getProjects',\n useIntlayerAuth().project.getProjects,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n autoFetch: true,\n revalidation: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n requireOrganization: true,\n }\n );\nexport const useAddProject = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.addProject>\n) =>\n useAppAsync('addProject', useIntlayerAuth().project.addProject, {\n invalidateQueries: ['getProjects'],\n ...args,\n });\nexport const useUpdateProject = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.updateProject>\n) =>\n useAppAsync('updateProject', useIntlayerAuth().project.updateProject, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useUpdateProjectMembers = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.updateProjectMembers>\n) =>\n useAppAsync(\n 'updateProjectMembers',\n useIntlayerAuth().project.updateProjectMembers,\n {\n invalidateQueries: ['getSession'],\n ...args,\n }\n );\nexport const useDeleteProject = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.deleteProject>\n) =>\n useAppAsync('deleteProject', useIntlayerAuth().project.deleteProject, {\n invalidateQueries: ['getProjects'],\n ...args,\n });\nexport const useSelectProject = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.selectProject>\n) =>\n useAppAsync('selectProject', useIntlayerAuth().project.selectProject, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useUnselectProject = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.unselectProject>\n) =>\n useAppAsync('unselectProject', useIntlayerAuth().project.unselectProject, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useAddNewAccessKey = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.addNewAccessKey>\n) =>\n useAppAsync('addNewAccessKey', useIntlayerAuth().project.addNewAccessKey, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useDeleteAccessKey = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.deleteAccessKey>\n) =>\n useAppAsync('deleteAccessKey', useIntlayerAuth().project.deleteAccessKey, {\n invalidateQueries: ['getSession'],\n ...args,\n });\nexport const useRefreshAccessKey = (\n args?: UseAsyncOptions<typeof intlayerAPI.project.refreshAccessKey>\n) =>\n useAppAsync('refreshAccessKey', useIntlayerAuth().project.refreshAccessKey, {\n invalidateQueries: ['getSession'],\n ...args,\n });\n\n/**\n * Dictionary\n */\n\nexport const useGetDictionaries = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.getDictionaries>\n) =>\n useAppAsync(\n 'getDictionaries',\n useIntlayerAuth().dictionary.getDictionaries,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n autoFetch: true,\n revalidation: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n }\n );\n\nexport const useGetDictionariesKeys = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.getDictionariesKeys>\n) =>\n useAppAsync(\n 'getDictionariesKeys',\n useIntlayerAuth().dictionary.getDictionariesKeys,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n autoFetch: true,\n revalidation: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n }\n );\n\nexport const useGetDictionary = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.getDictionary>\n) =>\n useAppAsync(\n 'getDictionary',\n useIntlayerAuth().dictionary.getDictionary,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n revalidation: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n }\n );\nexport const useAddDictionary = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.addDictionary>\n) =>\n useAppAsync('addDictionary', useIntlayerAuth().dictionary.addDictionary, {\n invalidateQueries: ['getDictionaries', 'getDictionariesKeys'],\n ...args,\n });\n\nexport const usePushDictionaries = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.pushDictionaries>\n) =>\n useAppAsync(\n 'pushDictionaries',\n useIntlayerAuth().dictionary.pushDictionaries,\n {\n invalidateQueries: [\n 'getDictionaries',\n 'getDictionary',\n 'getDictionariesKeys',\n ],\n ...args,\n }\n );\nexport const useUpdateDictionary = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.updateDictionary>\n) =>\n useAppAsync(\n 'updateDictionary',\n useIntlayerAuth().dictionary.updateDictionary,\n {\n invalidateQueries: ['getDictionaries', 'getDictionary'],\n ...args,\n }\n );\nexport const useDeleteDictionary = (\n args?: UseAsyncOptions<typeof intlayerAPI.dictionary.deleteDictionary>\n) =>\n useAppAsync(\n 'deleteDictionary',\n useIntlayerAuth().dictionary.deleteDictionary,\n {\n invalidateQueries: [\n 'getDictionaries',\n 'getDictionary',\n 'getDictionariesKeys',\n ],\n ...args,\n }\n );\n\n/**\n * Tag\n */\n\nexport const useGetTags = (\n args?: UseAsyncOptions<typeof intlayerAPI.tag.getTags>\n) =>\n useAppAsync(\n 'getTags',\n useIntlayerAuth().tag.getTags,\n {\n cache: true,\n store: true,\n retryLimit: 3,\n autoFetch: true,\n revalidation: true,\n revalidateTime: 5 * 60 * 1000, // 5 minutes\n ...args,\n },\n {\n requireUser: true,\n requireOrganization: true,\n }\n );\nexport const useAddTag = (\n args?: UseAsyncOptions<typeof intlayerAPI.tag.addTag>\n) =>\n useAppAsync('addTag', useIntlayerAuth().tag.addTag, {\n invalidateQueries: ['getTags'],\n ...args,\n });\nexport const useUpdateTag = (\n args?: UseAsyncOptions<typeof intlayerAPI.tag.updateTag>\n) =>\n useAppAsync('updateTag', useIntlayerAuth().tag.updateTag, {\n invalidateQueries: ['getTags'],\n ...args,\n });\nexport const useDeleteTag = (\n args?: UseAsyncOptions<typeof intlayerAPI.tag.deleteTag>\n) =>\n useAppAsync('deleteTag', useIntlayerAuth().tag.deleteTag, {\n invalidateQueries: ['getTags'],\n ...args,\n });\n\n/**\n * Stripe\n */\n\nexport const useGetSubscription = (\n args?: UseAsyncOptions<typeof intlayerAPI.stripe.getSubscription>\n) =>\n useAppAsync(\n 'getSubscription',\n useIntlayerAuth().stripe.getSubscription,\n args,\n {\n requireUser: true,\n requireOrganization: true,\n }\n );\n\nexport const useCancelSubscription = (\n args?: UseAsyncOptions<typeof intlayerAPI.stripe.cancelSubscription>\n) =>\n useAppAsync(\n 'cancelSubscription',\n useIntlayerAuth().stripe.cancelSubscription,\n { invalidateQueries: ['getSession'], ...args },\n {\n requireUser: true,\n requireOrganization: true,\n }\n );\n\n/**\n * AI\n */\n\nexport const useAuditContentDeclaration = (\n args?: UseAsyncOptions<typeof intlayerAPI.ai.auditContentDeclaration>\n) =>\n useAppAsync(\n 'auditContentDeclaration',\n useIntlayerAuth().ai.auditContentDeclaration,\n args,\n {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n }\n );\n\nexport const useAuditContentDeclarationMetadata = (\n args?: UseAsyncOptions<typeof intlayerAPI.ai.auditContentDeclarationMetadata>\n) =>\n useAppAsync(\n 'auditContentDeclaration',\n useIntlayerAuth().ai.auditContentDeclarationMetadata,\n args,\n {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n }\n );\n\nexport const useAuditContentDeclarationField = (\n args?: UseAsyncOptions<typeof intlayerAPI.ai.auditContentDeclarationField>\n) =>\n useAppAsync(\n 'auditContentDeclarationField',\n useIntlayerAuth().ai.auditContentDeclarationField,\n args,\n {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n }\n );\n\nexport const useAuditTag = (\n args?: UseAsyncOptions<typeof intlayerAPI.ai.auditTag>\n) =>\n useAppAsync('auditTag', useIntlayerAuth().ai.auditTag, args, {\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n });\n\nexport const useAskDocQuestion = (\n args?: UseAsyncOptions<typeof intlayerAPI.ai.askDocQuestion>\n) => useAppAsync('askDocQuestion', useIntlayerAuth().ai.askDocQuestion, args);\n\n/**\n * Editor\n */\n\nexport const useWriteDictionary = (\n args?: UseAsyncOptions<typeof intlayerAPI.editor.writeDictionary>\n) =>\n useEditorAsync(\n 'writeDictionary',\n useIntlayerAuth().editor.writeDictionary,\n args\n );\n"],"names":["useToast","error","useConfiguration","useAuth","useAsync","useIntlayerAuth"],"mappings":"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"}
@@ -73,4 +73,8 @@ export declare const useAuditContentDeclarationMetadata: (args?: UseAsyncOptions
73
73
  export declare const useAuditContentDeclarationField: (args?: UseAsyncOptions<typeof intlayerAPI.ai.auditContentDeclarationField>) => import('./useAsync').UseAsyncResult<"auditContentDeclarationField", (body?: import('@intlayer/backend').AuditContentDeclarationFieldBody, otherOptions?: import('@intlayer/api').FetcherOptions) => Promise<import('@intlayer/backend').AuditContentDeclarationFieldResult>>;
74
74
  export declare const useAuditTag: (args?: UseAsyncOptions<typeof intlayerAPI.ai.auditTag>) => import('./useAsync').UseAsyncResult<"auditTag", (body?: import('@intlayer/backend').AuditTagBody, otherOptions?: import('@intlayer/api').FetcherOptions) => Promise<import('@intlayer/backend').AuditTagResult>>;
75
75
  export declare const useAskDocQuestion: (args?: UseAsyncOptions<typeof intlayerAPI.ai.askDocQuestion>) => import('./useAsync').UseAsyncResult<"askDocQuestion", (body?: import('@intlayer/backend').AskDocQuestionBody, otherOptions?: import('@intlayer/api').FetcherOptions) => Promise<import('@intlayer/backend').AskDocQuestionResult>>;
76
+ /**
77
+ * Editor
78
+ */
79
+ export declare const useWriteDictionary: (args?: UseAsyncOptions<typeof intlayerAPI.editor.writeDictionary>) => import('./useAsync').UseAsyncResult<"writeDictionary", (dictionary: WriteContentDeclarationBody, otherOptions?: import('@intlayer/api').FetcherOptions) => Promise<void>>;
76
80
  //# sourceMappingURL=intlayerAPIHooks.d.ts.map