@bigbinary/neeto-molecules 5.5.1 → 5.5.2

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 (56) hide show
  1. package/dist/Onboarding.js +391 -8
  2. package/dist/Onboarding.js.map +1 -1
  3. package/dist/circle-user-ieD_gMjm.js +19 -0
  4. package/dist/circle-user-ieD_gMjm.js.map +1 -0
  5. package/dist/cjs/Onboarding.js +409 -7
  6. package/dist/cjs/Onboarding.js.map +1 -1
  7. package/dist/cjs/circle-user-D5aGw9mw.js +21 -0
  8. package/dist/cjs/circle-user-D5aGw9mw.js.map +1 -0
  9. package/dist/cjs/v2/AuditLogs.js +2 -16
  10. package/dist/cjs/v2/AuditLogs.js.map +1 -1
  11. package/dist/cjs/v2/Onboarding.js +435 -10
  12. package/dist/cjs/v2/Onboarding.js.map +1 -1
  13. package/dist/v2/AuditLogs.js +1 -15
  14. package/dist/v2/AuditLogs.js.map +1 -1
  15. package/dist/v2/Onboarding.js +418 -12
  16. package/dist/v2/Onboarding.js.map +1 -1
  17. package/package.json +1 -1
  18. package/src/translations/ar.json +12 -5
  19. package/src/translations/bg.json +13 -6
  20. package/src/translations/ca.json +13 -6
  21. package/src/translations/cs.json +12 -5
  22. package/src/translations/da.json +13 -6
  23. package/src/translations/de.json +13 -6
  24. package/src/translations/en.json +14 -7
  25. package/src/translations/es-MX.json +13 -6
  26. package/src/translations/es.json +13 -6
  27. package/src/translations/et.json +13 -6
  28. package/src/translations/fi.json +13 -6
  29. package/src/translations/fil.json +13 -6
  30. package/src/translations/fr.json +13 -6
  31. package/src/translations/he.json +13 -6
  32. package/src/translations/hi.json +12 -5
  33. package/src/translations/hr.json +12 -5
  34. package/src/translations/hu.json +13 -6
  35. package/src/translations/id.json +13 -6
  36. package/src/translations/it.json +13 -6
  37. package/src/translations/ja.json +13 -6
  38. package/src/translations/ko.json +13 -6
  39. package/src/translations/lv.json +13 -6
  40. package/src/translations/nl.json +13 -6
  41. package/src/translations/pl.json +13 -6
  42. package/src/translations/pt-BR.json +13 -6
  43. package/src/translations/pt.json +13 -6
  44. package/src/translations/ro.json +13 -6
  45. package/src/translations/ru.json +12 -5
  46. package/src/translations/sk.json +12 -5
  47. package/src/translations/sl.json +13 -6
  48. package/src/translations/sv.json +13 -6
  49. package/src/translations/th.json +12 -5
  50. package/src/translations/tr.json +13 -6
  51. package/src/translations/uk.json +13 -6
  52. package/src/translations/vi.json +13 -6
  53. package/src/translations/zh-CN.json +12 -5
  54. package/src/translations/zh-TW.json +13 -6
  55. package/types/Onboarding.d.ts +1 -0
  56. package/types/v2/Onboarding.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Onboarding.js","sources":["../../node_modules/lucide-react/dist/esm/icons/arrow-right.mjs","../../src/v2/components/Onboarding/constants.js","../../src/v2/components/Onboarding/HelpScreen.jsx","../../src/v2/components/Onboarding/utils.jsx","../../src/v2/components/Onboarding/hooks/useWindowDimensions.js","../../src/v2/components/Onboarding/CompletedScreen.jsx","../../src/v2/components/Onboarding/WelcomeScreen.jsx","../../src/v2/components/Onboarding/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"m12 5 7 7-7 7\", key: \"xquz4c\" }]\n];\nconst ArrowRight = createLucideIcon(\"arrow-right\", __iconNode);\n\nexport { __iconNode, ArrowRight as default };\n//# sourceMappingURL=arrow-right.mjs.map\n","export const GENERAL_ONBOARDING_STEPS = {\n WELCOME: \"welcome\",\n HELP: \"help\",\n FINISH: \"finish\",\n};\n","import { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { ArrowRight } from \"lucide-react\";\nimport useBreakpoints from \"neetocommons/v2/react-utils/useBreakpoints\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { GENERAL_ONBOARDING_STEPS } from \"./constants\";\n\nconst HelpScreen = ({ setCurrentStep, helpScreenClassName }) => {\n const { t } = useTranslation();\n const { isSize } = useBreakpoints();\n\n return (\n <div\n className={classNames(\n \"mx-auto flex w-full max-w-3xl flex-col items-start gap-y-6 px-6 pt-16 pb-6\",\n helpScreenClassName\n )}\n >\n <div className=\"flex flex-col gap-y-3\">\n <Typography data-testid=\"onboarding-help-title\" variant=\"h2\">\n {t(\"neetoMolecules.onboarding.helpScreen.title\")}\n </Typography>\n <Typography data-testid=\"onboarding-help-description\" variant=\"body1\">\n <Trans i18nKey=\"neetoMolecules.onboarding.helpScreen.description\" />\n </Typography>\n <div className=\"w-full pt-3\">\n {isSize(\"mobile\") ? (\n <img\n alt=\"\"\n src=\"https://ik.imagekit.io/d9mvewbju/Commons/NeetoMolecules/help-support-mobile_fgsI9Cx-IC.svg\"\n />\n ) : (\n <img\n alt=\"\"\n src=\"https://ik.imagekit.io/d9mvewbju/Commons/NeetoMolecules/help-support-desktop_CSOh3DrKTR.svg\"\n />\n )}\n </div>\n </div>\n <Button\n data-testid=\"onboarding-help-button\"\n icon={() => <ArrowRight className=\"rtl:scale-x-[-1]\" size={16} />}\n iconPosition=\"right\"\n label={t(\"neetoMolecules.onboarding.helpScreen.continueButton\")}\n onClick={() => setCurrentStep(GENERAL_ONBOARDING_STEPS.FINISH)}\n />\n </div>\n );\n};\n\nexport default HelpScreen;\n","import { t } from \"i18next\";\n\nimport { GENERAL_ONBOARDING_STEPS } from \"./constants\";\nimport HelpScreen from \"./HelpScreen\";\n\nexport const createSteps = (\n onboardingSteps,\n setCurrentStep,\n currentStep,\n helpScreenClassName\n) => {\n const helpStep = {\n key: GENERAL_ONBOARDING_STEPS.HELP,\n label: t(\"neetoMolecules.onboarding.helpLabel\"),\n element: (\n <HelpScreen {...{ currentStep, helpScreenClassName, setCurrentStep }} />\n ),\n };\n\n return onboardingSteps\n .concat(helpStep)\n .map((step, idx) => ({ ...step, id: idx + 1 }));\n};\n\nexport const getWindowDimensions = () =>\n typeof window !== \"undefined\"\n ? { width: window.innerWidth, height: window.innerHeight }\n : { width: 100, height: 100 };\n","import { useState, useLayoutEffect } from \"react\";\n\nimport { getWindowDimensions } from \"../utils\";\n\nconst useWindowDimensions = () => {\n const [windowDimensions, setWindowDimensions] = useState({\n width: 100,\n height: 100,\n });\n\n useLayoutEffect(() => {\n setWindowDimensions(getWindowDimensions());\n\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n return windowDimensions;\n};\n\nexport default useWindowDimensions;\n","import { useState, useEffect } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { isPresent, capitalize } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport Confetti from \"react-confetti\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useWindowDimensions from \"./hooks/useWindowDimensions.js\";\n\nconst CompletedScreen = ({\n completeButtonProps,\n completedScreenSuccessMessage,\n className,\n}) => {\n const { t } = useTranslation();\n\n const [dropConfetti, setDropConfetti] = useState(true);\n const { height, width } = useWindowDimensions();\n\n useEffect(() => {\n const timer = setTimeout(() => setDropConfetti(false), 10000);\n\n return () => clearTimeout(timer);\n }, []);\n\n return (\n <div\n data-testid=\"onboarding-congratulations-wrapper\"\n className={classnames(\n \"flex h-dvh w-full grow flex-col items-center overflow-y-auto\",\n className\n )}\n >\n <Confetti {...{ height, width }} recycle={dropConfetti} />\n {isPresent(completedScreenSuccessMessage) ? (\n completedScreenSuccessMessage\n ) : (\n <div className=\"mx-auto mb-6 flex w-full max-w-2xl flex-col gap-y-2 px-6 pt-16\">\n <Typography\n className=\"text-center\"\n data-testid=\"onboarding-congratulations-emoji\"\n variant=\"h2\"\n >\n 🎉\n </Typography>\n <Typography\n className=\"text-center\"\n data-testid=\"onboarding-congratulations-title\"\n variant=\"h2\"\n >\n <span className=\"text-success-foreground\">\n {t(\"neetoMolecules.onboarding.congratulations\")}\n </span>\n <br />\n {t(\"neetoMolecules.onboarding.readyToUse\", {\n appName: capitalize(globalProps.appName),\n })}\n </Typography>\n </div>\n )}\n <Button\n data-testid=\"onboarding-congratulations-button\"\n label={t(\"neetoMolecules.onboarding.helpScreen.startUsingButton\", {\n appName: globalProps.appName,\n })}\n {...completeButtonProps}\n />\n </div>\n );\n};\n\nexport default CompletedScreen;\n","import { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { ArrowRight } from \"lucide-react\";\nimport { capitalize } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nconst WelcomeScreen = withT(({ t, setCurrentStep, nextStep, className }) => (\n <div\n data-testid=\"onboarding-welcome-wrapper\"\n className={classnames(\n \"flex h-dvh w-full grow flex-col items-center overflow-y-auto\",\n className\n )}\n >\n <div className=\"mx-auto mb-6 flex w-full max-w-2xl flex-col gap-y-2 px-6 pt-16\">\n <Typography\n className=\"text-center\"\n data-testid=\"onboarding-welcome-title\"\n variant=\"h2\"\n >\n {t(\"neetoMolecules.onboarding.helpScreen.welcomeToTitle\", {\n appName: capitalize(globalProps.appName),\n })}\n </Typography>\n <Typography\n className=\"text-center\"\n data-testid=\"onboarding-welcome-description\"\n variant=\"body1\"\n >\n {t(\"neetoMolecules.onboarding.letUsCustomize\", {\n appName: capitalize(globalProps.appName),\n })}\n </Typography>\n </div>\n <Button\n data-testid=\"onboarding-welcome-button\"\n icon={() => <ArrowRight className=\"rtl:scale-x-[-1]\" size={16} />}\n label={t(\"neetoMolecules.onboarding.getStarted\")}\n onClick={() => setCurrentStep(nextStep)}\n />\n </div>\n));\n\nexport default WelcomeScreen;\n","import { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { Stepper } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { findIndexBy, noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport CompletedScreen from \"./CompletedScreen\";\nimport { GENERAL_ONBOARDING_STEPS } from \"./constants\";\nimport \"./onboarding.css\";\nimport { createSteps } from \"./utils\";\nimport WelcomeScreen from \"./WelcomeScreen\";\n\nconst Onboarding = ({\n currentStep = GENERAL_ONBOARDING_STEPS.WELCOME,\n setCurrentStep = noop,\n onboardingSteps = [],\n completeButtonProps = {},\n helpScreenClassName = \"\",\n isAnimated = true,\n disableStepClick = false,\n welcomeScreenClassName = \"\",\n completedScreenClassName = \"\",\n completedScreenSuccessMessage,\n}) => {\n const steps = useMemo(\n () =>\n createSteps(\n onboardingSteps,\n setCurrentStep,\n currentStep,\n helpScreenClassName\n ),\n [onboardingSteps]\n );\n\n const prevStep = useRef(currentStep);\n\n const [direction, setDirection] = useState(\"\");\n\n const getOnboardingStepIndex = stepKey =>\n steps.findIndex(step => step.key === stepKey);\n\n useEffect(() => {\n if (currentStep === prevStep.current) return;\n\n setDirection(\n getOnboardingStepIndex(currentStep) >\n getOnboardingStepIndex(prevStep.current)\n ? \"forward\"\n : \"backward\"\n );\n prevStep.current = currentStep;\n }, [currentStep]);\n\n if (currentStep === GENERAL_ONBOARDING_STEPS.WELCOME) {\n return (\n <WelcomeScreen\n {...{ currentStep, setCurrentStep }}\n className={welcomeScreenClassName}\n nextStep={steps[0].key}\n />\n );\n }\n\n if (currentStep === GENERAL_ONBOARDING_STEPS.FINISH) {\n return (\n <CompletedScreen\n {...{ completeButtonProps, completedScreenSuccessMessage }}\n className={completedScreenClassName}\n />\n );\n }\n\n const handleStepChange = index => setCurrentStep(steps[index].key);\n\n const isStepperVisible = steps.length > 1;\n\n return (\n <div\n className={classNames(\n \"relative flex h-dvh w-full flex-col overflow-y-auto\",\n { \"grow items-center\": !isStepperVisible }\n )}\n >\n {isStepperVisible && (\n <div className=\"border-border bg-background flex w-full shrink-0 border-b px-4 py-2 lg:justify-center\">\n <Stepper\n {...{ steps }}\n activeIndex={findIndexBy({ key: currentStep }, steps)}\n onStepClick={disableStepClick ? undefined : handleStepChange}\n />\n </div>\n )}\n {steps.map((step, index) => (\n <div\n key={index}\n className={classNames(\"min-h-0 w-full grow overflow-y-auto\", {\n \"neeto-molecules-onboarding-content--forward overflow-x-hidden\":\n isAnimated && direction === \"forward\",\n \"neeto-molecules-onboarding-content--backward overflow-x-hidden\":\n isAnimated && direction === \"backward\",\n hidden: currentStep !== step.key,\n })}\n >\n {step?.element}\n </div>\n ))}\n </div>\n );\n};\n\nOnboarding.propTypes = {\n /**\n * To specify the current step of the onboarding\n */\n currentStep: PropTypes.string,\n /**\n * List of Custom components for the onboarding\n */\n onboardingSteps: PropTypes.array,\n /**\n * Props for the complete button\n */\n completeButtonProps: PropTypes.object,\n /**\n * To set the step of the onboarding\n */\n setCurrentStep: PropTypes.func,\n /**\n * To pass additional classes to the help screen\n */\n helpScreenClassName: PropTypes.string,\n /**\n * A boolean value to enable or disable the animation for the stepper.\n */\n isAnimated: PropTypes.bool,\n};\n\nexport default Onboarding;\n"],"names":["GENERAL_ONBOARDING_STEPS","WELCOME","HELP","FINISH","HelpScreen","_ref","setCurrentStep","helpScreenClassName","_useTranslation","useTranslation","t","_useBreakpoints","useBreakpoints","isSize","_jsxs","className","classNames","children","_jsx","Typography","variant","Trans","i18nKey","alt","src","Button","icon","ArrowRight","size","iconPosition","label","onClick","createSteps","onboardingSteps","currentStep","helpStep","key","element","concat","map","step","idx","_objectSpread","id","getWindowDimensions","window","width","innerWidth","height","innerHeight","useWindowDimensions","_useState","useState","_useState2","_slicedToArray","windowDimensions","setWindowDimensions","useLayoutEffect","handleResize","addEventListener","removeEventListener","CompletedScreen","completeButtonProps","completedScreenSuccessMessage","dropConfetti","setDropConfetti","_useWindowDimensions","useEffect","timer","setTimeout","clearTimeout","classnames","Confetti","recycle","isPresent","appName","capitalize","globalProps","WelcomeScreen","withT","nextStep","Onboarding","_ref$currentStep","_ref$setCurrentStep","noop","_ref$onboardingSteps","_ref$completeButtonPr","_ref$helpScreenClassN","_ref$isAnimated","isAnimated","_ref$disableStepClick","disableStepClick","_ref$welcomeScreenCla","welcomeScreenClassName","_ref$completedScreenC","completedScreenClassName","steps","useMemo","prevStep","useRef","direction","setDirection","getOnboardingStepIndex","stepKey","findIndex","current","handleStepChange","index","isStepperVisible","length","Stepper","activeIndex","findIndexBy","onStepClick","undefined","hidden"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"Onboarding.js","sources":["../../node_modules/lucide-react/dist/esm/icons/arrow-right.mjs","../../node_modules/lucide-react/dist/esm/icons/notebook-text.mjs","../../src/v2/components/Onboarding/Community/constants.js","../../src/v2/components/Onboarding/Community/EmailRecipient.jsx","../../src/v2/components/Onboarding/Community/api.js","../../src/v2/components/Onboarding/Community/hooks/useJoinCommunity.js","../../src/v2/components/Onboarding/Community/utils.js","../../src/v2/components/Onboarding/Community/hooks/useRecipientEmails.js","../../src/v2/components/Onboarding/constants.js","../../src/v2/components/Onboarding/Community/index.jsx","../../src/v2/components/Onboarding/HelpScreen.jsx","../../src/v2/components/Onboarding/utils.jsx","../../src/v2/components/Onboarding/hooks/useWindowDimensions.js","../../src/v2/components/Onboarding/CompletedScreen.jsx","../../src/v2/components/Onboarding/WelcomeScreen.jsx","../../src/v2/components/Onboarding/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"m12 5 7 7-7 7\", key: \"xquz4c\" }]\n];\nconst ArrowRight = createLucideIcon(\"arrow-right\", __iconNode);\n\nexport { __iconNode, ArrowRight as default };\n//# sourceMappingURL=arrow-right.mjs.map\n","/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M2 6h4\", key: \"aawbzj\" }],\n [\"path\", { d: \"M2 10h4\", key: \"l0bgd4\" }],\n [\"path\", { d: \"M2 14h4\", key: \"1gsvsf\" }],\n [\"path\", { d: \"M2 18h4\", key: \"1bu2t1\" }],\n [\"rect\", { width: \"16\", height: \"20\", x: \"4\", y: \"2\", rx: \"2\", key: \"1nb95v\" }],\n [\"path\", { d: \"M9.5 8h5\", key: \"11mslq\" }],\n [\"path\", { d: \"M9.5 12H16\", key: \"ktog6x\" }],\n [\"path\", { d: \"M9.5 16H14\", key: \"p1seyn\" }]\n];\nconst NotebookText = createLucideIcon(\"notebook-text\", __iconNode);\n\nexport { __iconNode, NotebookText as default };\n//# sourceMappingURL=notebook-text.mjs.map\n","import { CircleUser, NotebookText } from \"lucide-react\";\n\nexport const COMMUNITY_OPTIONS = [\n {\n key: \"slack\",\n icon: CircleUser,\n dataTestid: \"onboarding-community-slack-checkbox\",\n recipientDataTestids: {\n change: \"onboarding-community-slack-email-change-button\",\n input: \"onboarding-community-slack-email-input\",\n save: \"onboarding-community-slack-email-save-button\",\n cancel: \"onboarding-community-slack-email-cancel-button\",\n },\n },\n {\n key: \"blog\",\n icon: NotebookText,\n dataTestid: \"onboarding-community-blog-checkbox\",\n recipientDataTestids: {\n change: \"onboarding-community-blog-email-change-button\",\n input: \"onboarding-community-blog-email-input\",\n save: \"onboarding-community-blog-email-save-button\",\n cancel: \"onboarding-community-blog-email-cancel-button\",\n },\n },\n];\n","import { Button, Input, Typography } from \"@bigbinary/neeto-atoms\";\nimport { Mail } from \"lucide-react\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nconst EmailRecipient = ({\n email,\n edit,\n onStartEditing,\n onDraftChange,\n onSave,\n onCancel,\n recipientKey,\n inputLabelKey,\n dataTestids,\n}) => {\n const { t } = useTranslation();\n\n const handleKeyDown = event => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n onSave();\n }\n\n if (event.key === \"Escape\") onCancel();\n };\n\n if (edit) {\n return (\n <div className=\"flex items-start gap-2 ps-6 pt-3\">\n <div className=\"w-72\">\n <Input\n autoFocus\n aria-label={t(inputLabelKey)}\n data-testid={dataTestids.input}\n error={edit.error}\n type=\"email\"\n value={edit.draft}\n onChange={event => onDraftChange(event.target.value)}\n onKeyDown={handleKeyDown}\n />\n </div>\n <Button\n data-testid={dataTestids.save}\n label={t(\"neetoMolecules.common.actions.save\")}\n onClick={onSave}\n />\n <Button\n data-testid={dataTestids.cancel}\n label={t(\"neetoMolecules.common.actions.cancel\")}\n variant=\"ghost\"\n onClick={onCancel}\n />\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-wrap items-center gap-2 ps-6 pt-3\">\n <Mail aria-hidden className=\"text-muted-foreground\" size={16} />\n <Typography color=\"muted\" variant=\"body2\">\n <Trans\n components={{ strong: <strong className=\"text-foreground\" /> }}\n i18nKey={recipientKey}\n values={{ email }}\n />\n </Typography>\n <Button\n data-testid={dataTestids.change}\n label={t(\"neetoMolecules.onboarding.communityScreen.changeButton\")}\n size=\"sm\"\n variant=\"link\"\n onClick={onStartEditing}\n />\n </div>\n );\n};\n\nexport default EmailRecipient;\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/v2/constants\";\n\nconst joinCommunity = communityJoin =>\n axios.post(\n `${BASE_API_V1_URL}/community_join`,\n { communityJoin },\n { showToastr: false }\n );\n\nconst communityApi = { joinCommunity };\n\nexport default communityApi;\n","import { useMutation } from \"@tanstack/react-query\";\n\nimport communityApi from \"../api\";\n\nconst useJoinCommunity = () =>\n useMutation({ mutationFn: communityApi.joinCommunity });\n\nexport default useJoinCommunity;\n","import * as yup from \"yup\";\n\nexport const isValidEmail = email =>\n !!email && yup.string().email().isValidSync(email);\n","import { useState } from \"react\";\n\nimport { t } from \"i18next\";\nimport { assoc, dissoc } from \"ramda\";\n\nimport { isValidEmail } from \"../utils\";\n\n// Tracks the email each option goes to, plus any address being edited, so\n// Continue can pick up a draft the user typed but did not save.\nconst useRecipientEmails = defaultEmail => {\n const [emails, setEmails] = useState({\n slack: defaultEmail,\n blog: defaultEmail,\n });\n\n // { [key]: { draft, error } } for the options whose email field is open.\n const [edits, setEdits] = useState({});\n\n const startEditing = key =>\n setEdits(assoc(key, { draft: emails[key], error: \"\" }));\n\n const changeDraft = (key, draft) =>\n setEdits(assoc(key, { draft, error: \"\" }));\n\n const cancel = key => setEdits(dissoc(key));\n\n const validate = key => {\n const draft = edits[key].draft.trim();\n\n return isValidEmail(draft)\n ? { draft }\n : { error: t(\"neetoMolecules.onboarding.communityScreen.invalidEmail\") };\n };\n\n const save = key => {\n const { draft, error } = validate(key);\n\n if (error) {\n setEdits(assoc(key, { ...edits[key], error }));\n\n return;\n }\n\n setEmails(assoc(key, draft));\n setEdits(dissoc(key));\n };\n\n // Applies every open draft of the given options. Returns the final emails,\n // or null when a draft is invalid, after showing its error.\n const applyDrafts = keys => {\n let nextEmails = emails;\n let nextEdits = edits;\n\n keys\n .filter(key => edits[key])\n .forEach(key => {\n const { draft, error } = validate(key);\n\n if (error) {\n nextEdits = assoc(key, { ...edits[key], error }, nextEdits);\n } else {\n nextEmails = assoc(key, draft, nextEmails);\n nextEdits = dissoc(key, nextEdits);\n }\n });\n\n setEmails(nextEmails);\n setEdits(nextEdits);\n\n const hasInvalidDraft = keys.some(key => nextEdits[key]);\n\n return hasInvalidDraft ? null : nextEmails;\n };\n\n return {\n emails,\n edits,\n startEditing,\n changeDraft,\n cancel,\n save,\n applyDrafts,\n };\n};\n\nexport default useRecipientEmails;\n","export const GENERAL_ONBOARDING_STEPS = {\n WELCOME: \"welcome\",\n COMMUNITY: \"community\",\n HELP: \"help\",\n FINISH: \"finish\",\n};\n","import { useState } from \"react\";\n\nimport { Button, Checkbox, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { ArrowRight } from \"lucide-react\";\nimport { capitalize } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { assoc } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { COMMUNITY_OPTIONS } from \"./constants\";\nimport EmailRecipient from \"./EmailRecipient\";\nimport useJoinCommunity from \"./hooks/useJoinCommunity\";\nimport useRecipientEmails from \"./hooks/useRecipientEmails\";\n\nimport { GENERAL_ONBOARDING_STEPS } from \"../constants\";\n\nconst Community = ({ setCurrentStep, communityScreenClassName }) => {\n const { t } = useTranslation();\n\n const [selected, setSelected] = useState({ slack: true, blog: true });\n\n // Both start at the signed-in user's email; each can be changed separately.\n const recipients = useRecipientEmails(globalProps.user?.email);\n\n const { mutate: joinCommunity } = useJoinCommunity();\n\n const appName = capitalize(globalProps.appName ?? \"\");\n\n const handleContinue = () => {\n const selectedKeys = Object.keys(selected).filter(key => selected[key]);\n\n // An address typed but not saved still counts; an invalid one keeps the\n // user here with its error showing.\n const emails = recipients.applyDrafts(selectedKeys);\n if (!emails) return;\n\n // The Slack invite and blog subscription are both sent by email in the\n // background, so onboarding moves on without waiting for them.\n if (selectedKeys.length > 0) {\n joinCommunity({\n ...selected,\n slackEmail: emails.slack,\n blogEmail: emails.blog,\n });\n }\n\n setCurrentStep(GENERAL_ONBOARDING_STEPS.HELP);\n };\n\n return (\n <div\n className={classNames(\n \"mx-auto flex w-full max-w-3xl flex-col items-start gap-y-6 px-6 pt-16 pb-6\",\n communityScreenClassName\n )}\n >\n <div className=\"space-y-2\">\n <Typography data-testid=\"onboarding-community-title\" variant=\"h2\">\n {t(\"neetoMolecules.onboarding.communityScreen.title\")}\n </Typography>\n <Typography\n data-testid=\"onboarding-community-description\"\n variant=\"body1\"\n >\n {t(\"neetoMolecules.onboarding.communityScreen.description\", {\n appName,\n })}\n </Typography>\n </div>\n <div className=\"border-border flex w-full flex-col gap-6 rounded-lg border p-3 lg:p-6\">\n {COMMUNITY_OPTIONS.map(\n ({ key, icon: Icon, dataTestid, recipientDataTestids }) => (\n <div className=\"w-full\" key={key}>\n <Checkbox\n checked={selected[key]}\n data-testid={dataTestid}\n id={dataTestid}\n labelProps={{ className: \"text-xl font-semibold\" }}\n label={\n <span className=\"flex flex-wrap items-center gap-2\">\n {t(\n `neetoMolecules.onboarding.communityScreen.${key}.title`,\n { appName }\n )}\n <Icon aria-hidden size={24} />\n </span>\n }\n onCheckedChange={checked => {\n setSelected(assoc(key, checked));\n if (!checked) recipients.cancel(key);\n }}\n />\n <Typography className=\"ps-6 pt-2\" color=\"muted\" variant=\"body1\">\n {t(\n `neetoMolecules.onboarding.communityScreen.${key}.description`\n )}\n </Typography>\n {selected[key] && (\n <EmailRecipient\n dataTestids={recipientDataTestids}\n edit={recipients.edits[key]}\n email={recipients.emails[key]}\n inputLabelKey={`neetoMolecules.onboarding.communityScreen.${key}.emailInputLabel`}\n recipientKey={`neetoMolecules.onboarding.communityScreen.${key}.recipient`}\n onCancel={() => recipients.cancel(key)}\n onDraftChange={draft => recipients.changeDraft(key, draft)}\n onSave={() => recipients.save(key)}\n onStartEditing={() => recipients.startEditing(key)}\n />\n )}\n </div>\n )\n )}\n </div>\n <Typography color=\"muted\" variant=\"body2\">\n {t(\"neetoMolecules.onboarding.communityScreen.unsubscribe\")}\n </Typography>\n <Button\n data-testid=\"community-onboarding-continue-button\"\n icon={() => <ArrowRight className=\"rtl:scale-x-[-1]\" size={16} />}\n iconPosition=\"right\"\n label={t(\"neetoMolecules.onboarding.communityScreen.continueButton\")}\n onClick={handleContinue}\n />\n </div>\n );\n};\n\nexport default Community;\n","import { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { ArrowRight } from \"lucide-react\";\nimport useBreakpoints from \"neetocommons/v2/react-utils/useBreakpoints\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { GENERAL_ONBOARDING_STEPS } from \"./constants\";\n\nconst HelpScreen = ({ setCurrentStep, helpScreenClassName }) => {\n const { t } = useTranslation();\n const { isSize } = useBreakpoints();\n\n return (\n <div\n className={classNames(\n \"mx-auto flex w-full max-w-3xl flex-col items-start gap-y-6 px-6 pt-16 pb-6\",\n helpScreenClassName\n )}\n >\n <div className=\"flex flex-col gap-y-3\">\n <Typography data-testid=\"onboarding-help-title\" variant=\"h2\">\n {t(\"neetoMolecules.onboarding.helpScreen.title\")}\n </Typography>\n <Typography data-testid=\"onboarding-help-description\" variant=\"body1\">\n <Trans i18nKey=\"neetoMolecules.onboarding.helpScreen.description\" />\n </Typography>\n <div className=\"w-full pt-3\">\n {isSize(\"mobile\") ? (\n <img\n alt=\"\"\n src=\"https://ik.imagekit.io/d9mvewbju/Commons/NeetoMolecules/help-support-mobile_fgsI9Cx-IC.svg\"\n />\n ) : (\n <img\n alt=\"\"\n src=\"https://ik.imagekit.io/d9mvewbju/Commons/NeetoMolecules/help-support-desktop_CSOh3DrKTR.svg\"\n />\n )}\n </div>\n </div>\n <Button\n data-testid=\"onboarding-help-button\"\n icon={() => <ArrowRight className=\"rtl:scale-x-[-1]\" size={16} />}\n iconPosition=\"right\"\n label={t(\"neetoMolecules.onboarding.helpScreen.continueButton\")}\n onClick={() => setCurrentStep(GENERAL_ONBOARDING_STEPS.FINISH)}\n />\n </div>\n );\n};\n\nexport default HelpScreen;\n","import { t } from \"i18next\";\n\nimport Community from \"./Community\";\nimport { GENERAL_ONBOARDING_STEPS } from \"./constants\";\nimport HelpScreen from \"./HelpScreen\";\n\nexport const createSteps = (\n onboardingSteps,\n setCurrentStep,\n currentStep,\n helpScreenClassName,\n isCommunityStepVisible\n) => {\n const communityStep = {\n key: GENERAL_ONBOARDING_STEPS.COMMUNITY,\n label: t(\"neetoMolecules.onboarding.communityLabel\"),\n element: <Community {...{ setCurrentStep }} />,\n };\n\n const helpStep = {\n key: GENERAL_ONBOARDING_STEPS.HELP,\n label: t(\"neetoMolecules.onboarding.helpLabel\"),\n element: (\n <HelpScreen {...{ currentStep, helpScreenClassName, setCurrentStep }} />\n ),\n };\n\n return onboardingSteps\n .concat(isCommunityStepVisible ? [communityStep, helpStep] : helpStep)\n .map((step, idx) => ({ ...step, id: idx + 1 }));\n};\n\nexport const getWindowDimensions = () =>\n typeof window !== \"undefined\"\n ? { width: window.innerWidth, height: window.innerHeight }\n : { width: 100, height: 100 };\n","import { useState, useLayoutEffect } from \"react\";\n\nimport { getWindowDimensions } from \"../utils\";\n\nconst useWindowDimensions = () => {\n const [windowDimensions, setWindowDimensions] = useState({\n width: 100,\n height: 100,\n });\n\n useLayoutEffect(() => {\n setWindowDimensions(getWindowDimensions());\n\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n return windowDimensions;\n};\n\nexport default useWindowDimensions;\n","import { useState, useEffect } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { isPresent, capitalize } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport Confetti from \"react-confetti\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useWindowDimensions from \"./hooks/useWindowDimensions.js\";\n\nconst CompletedScreen = ({\n completeButtonProps,\n completedScreenSuccessMessage,\n className,\n}) => {\n const { t } = useTranslation();\n\n const [dropConfetti, setDropConfetti] = useState(true);\n const { height, width } = useWindowDimensions();\n\n useEffect(() => {\n const timer = setTimeout(() => setDropConfetti(false), 10000);\n\n return () => clearTimeout(timer);\n }, []);\n\n return (\n <div\n data-testid=\"onboarding-congratulations-wrapper\"\n className={classnames(\n \"flex h-dvh w-full grow flex-col items-center overflow-y-auto\",\n className\n )}\n >\n <Confetti {...{ height, width }} recycle={dropConfetti} />\n {isPresent(completedScreenSuccessMessage) ? (\n completedScreenSuccessMessage\n ) : (\n <div className=\"mx-auto mb-6 flex w-full max-w-2xl flex-col gap-y-2 px-6 pt-16\">\n <Typography\n className=\"text-center\"\n data-testid=\"onboarding-congratulations-emoji\"\n variant=\"h2\"\n >\n 🎉\n </Typography>\n <Typography\n className=\"text-center\"\n data-testid=\"onboarding-congratulations-title\"\n variant=\"h2\"\n >\n <span className=\"text-success-foreground\">\n {t(\"neetoMolecules.onboarding.congratulations\")}\n </span>\n <br />\n {t(\"neetoMolecules.onboarding.readyToUse\", {\n appName: capitalize(globalProps.appName),\n })}\n </Typography>\n </div>\n )}\n <Button\n data-testid=\"onboarding-congratulations-button\"\n label={t(\"neetoMolecules.onboarding.helpScreen.startUsingButton\", {\n appName: globalProps.appName,\n })}\n {...completeButtonProps}\n />\n </div>\n );\n};\n\nexport default CompletedScreen;\n","import { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { ArrowRight } from \"lucide-react\";\nimport { capitalize } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nconst WelcomeScreen = withT(({ t, setCurrentStep, nextStep, className }) => (\n <div\n data-testid=\"onboarding-welcome-wrapper\"\n className={classnames(\n \"flex h-dvh w-full grow flex-col items-center overflow-y-auto\",\n className\n )}\n >\n <div className=\"mx-auto mb-6 flex w-full max-w-2xl flex-col gap-y-2 px-6 pt-16\">\n <Typography\n className=\"text-center\"\n data-testid=\"onboarding-welcome-title\"\n variant=\"h2\"\n >\n {t(\"neetoMolecules.onboarding.helpScreen.welcomeToTitle\", {\n appName: capitalize(globalProps.appName),\n })}\n </Typography>\n <Typography\n className=\"text-center\"\n data-testid=\"onboarding-welcome-description\"\n variant=\"body1\"\n >\n {t(\"neetoMolecules.onboarding.letUsCustomize\", {\n appName: capitalize(globalProps.appName),\n })}\n </Typography>\n </div>\n <Button\n data-testid=\"onboarding-welcome-button\"\n icon={() => <ArrowRight className=\"rtl:scale-x-[-1]\" size={16} />}\n label={t(\"neetoMolecules.onboarding.getStarted\")}\n onClick={() => setCurrentStep(nextStep)}\n />\n </div>\n));\n\nexport default WelcomeScreen;\n","import { useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\";\n\nimport { Stepper } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { findIndexBy, noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport CompletedScreen from \"./CompletedScreen\";\nimport { GENERAL_ONBOARDING_STEPS } from \"./constants\";\nimport \"./onboarding.css\";\nimport { createSteps } from \"./utils\";\nimport WelcomeScreen from \"./WelcomeScreen\";\n\nconst Onboarding = ({\n currentStep = GENERAL_ONBOARDING_STEPS.WELCOME,\n setCurrentStep = noop,\n onboardingSteps = [],\n completeButtonProps = {},\n helpScreenClassName = \"\",\n isAnimated = true,\n disableStepClick = false,\n welcomeScreenClassName = \"\",\n completedScreenClassName = \"\",\n completedScreenSuccessMessage,\n isCommunityStepVisible = true,\n}) => {\n const steps = useMemo(\n () =>\n createSteps(\n onboardingSteps,\n setCurrentStep,\n currentStep,\n helpScreenClassName,\n isCommunityStepVisible\n ),\n [onboardingSteps, isCommunityStepVisible]\n );\n\n const prevStep = useRef(currentStep);\n const isStepperNavigation = useRef(false);\n const isRedirectingToCommunity = useRef(false);\n\n // Products move from their last step straight to Help. Send them through\n // the community step first, unless they picked Help in the stepper.\n useLayoutEffect(() => {\n const isFromStepper = isStepperNavigation.current;\n isStepperNavigation.current = false;\n\n const shouldShowCommunityFirst =\n isCommunityStepVisible &&\n !isFromStepper &&\n currentStep === GENERAL_ONBOARDING_STEPS.HELP &&\n prevStep.current !== currentStep &&\n prevStep.current !== GENERAL_ONBOARDING_STEPS.COMMUNITY;\n\n if (shouldShowCommunityFirst) {\n isRedirectingToCommunity.current = true;\n setCurrentStep(GENERAL_ONBOARDING_STEPS.COMMUNITY);\n }\n }, [currentStep]);\n\n const [direction, setDirection] = useState(\"\");\n\n const getOnboardingStepIndex = stepKey =>\n steps.findIndex(step => step.key === stepKey);\n\n useEffect(() => {\n if (currentStep === prevStep.current) return;\n\n // Help is skipped over on the way to the community step, so the\n // animation should run from the step before it.\n if (isRedirectingToCommunity.current) {\n isRedirectingToCommunity.current = false;\n\n return;\n }\n\n setDirection(\n getOnboardingStepIndex(currentStep) >\n getOnboardingStepIndex(prevStep.current)\n ? \"forward\"\n : \"backward\"\n );\n prevStep.current = currentStep;\n }, [currentStep]);\n\n if (currentStep === GENERAL_ONBOARDING_STEPS.WELCOME) {\n return (\n <WelcomeScreen\n {...{ currentStep, setCurrentStep }}\n className={welcomeScreenClassName}\n nextStep={steps[0].key}\n />\n );\n }\n\n if (currentStep === GENERAL_ONBOARDING_STEPS.FINISH) {\n return (\n <CompletedScreen\n {...{ completeButtonProps, completedScreenSuccessMessage }}\n className={completedScreenClassName}\n />\n );\n }\n\n const handleStepChange = index => {\n const stepKey = steps[index].key;\n if (stepKey === currentStep) return;\n\n isStepperNavigation.current = true;\n setCurrentStep(stepKey);\n };\n\n const isStepperVisible = steps.length > 1;\n\n return (\n <div\n className={classNames(\n \"relative flex h-dvh w-full flex-col overflow-y-auto\",\n { \"grow items-center\": !isStepperVisible }\n )}\n >\n {isStepperVisible && (\n <div className=\"border-border bg-background flex w-full shrink-0 border-b px-4 py-2 lg:justify-center\">\n <Stepper\n {...{ steps }}\n activeIndex={findIndexBy({ key: currentStep }, steps)}\n onStepClick={disableStepClick ? undefined : handleStepChange}\n />\n </div>\n )}\n {steps.map((step, index) => (\n <div\n key={index}\n className={classNames(\"min-h-0 w-full grow overflow-y-auto\", {\n \"neeto-molecules-onboarding-content--forward overflow-x-hidden\":\n isAnimated && direction === \"forward\",\n \"neeto-molecules-onboarding-content--backward overflow-x-hidden\":\n isAnimated && direction === \"backward\",\n hidden: currentStep !== step.key,\n })}\n >\n {step?.element}\n </div>\n ))}\n </div>\n );\n};\n\nOnboarding.propTypes = {\n /**\n * To specify the current step of the onboarding\n */\n currentStep: PropTypes.string,\n /**\n * List of Custom components for the onboarding\n */\n onboardingSteps: PropTypes.array,\n /**\n * Props for the complete button\n */\n completeButtonProps: PropTypes.object,\n /**\n * To set the step of the onboarding\n */\n setCurrentStep: PropTypes.func,\n /**\n * To pass additional classes to the help screen\n */\n helpScreenClassName: PropTypes.string,\n /**\n * A boolean value to enable or disable the animation for the stepper.\n */\n isAnimated: PropTypes.bool,\n /**\n * To show the community step, where users can join the Neeto Slack\n * community and subscribe to the product's blog. It sits just before Help.\n */\n isCommunityStepVisible: PropTypes.bool,\n};\n\nexport default Onboarding;\n"],"names":["__iconNode","COMMUNITY_OPTIONS","key","icon","CircleUser","dataTestid","recipientDataTestids","change","input","save","cancel","NotebookText","EmailRecipient","_ref","email","edit","onStartEditing","onDraftChange","onSave","onCancel","recipientKey","inputLabelKey","dataTestids","_useTranslation","useTranslation","t","handleKeyDown","event","preventDefault","_jsxs","className","children","_jsx","Input","autoFocus","error","type","value","draft","onChange","target","onKeyDown","Button","label","onClick","variant","Mail","size","Typography","color","Trans","components","strong","i18nKey","values","joinCommunity","communityJoin","axios","post","concat","BASE_API_V1_URL","showToastr","communityApi","useJoinCommunity","useMutation","mutationFn","isValidEmail","yup","string","isValidSync","useRecipientEmails","defaultEmail","_useState","useState","slack","blog","_useState2","_slicedToArray","emails","setEmails","_useState3","_useState4","edits","setEdits","startEditing","assoc","changeDraft","dissoc","validate","trim","_validate","_objectSpread","applyDrafts","keys","nextEmails","nextEdits","filter","forEach","_validate2","hasInvalidDraft","some","GENERAL_ONBOARDING_STEPS","WELCOME","COMMUNITY","HELP","FINISH","Community","_globalProps$user","_globalProps$appName","setCurrentStep","communityScreenClassName","selected","setSelected","recipients","globalProps","user","_useJoinCommunity","mutate","appName","capitalize","handleContinue","selectedKeys","Object","length","slackEmail","blogEmail","classNames","map","_ref2","Icon","Checkbox","checked","id","labelProps","onCheckedChange","ArrowRight","iconPosition","HelpScreen","helpScreenClassName","_useBreakpoints","useBreakpoints","isSize","alt","src","createSteps","onboardingSteps","currentStep","isCommunityStepVisible","communityStep","element","helpStep","step","idx","getWindowDimensions","window","width","innerWidth","height","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","useLayoutEffect","handleResize","addEventListener","removeEventListener","CompletedScreen","completeButtonProps","completedScreenSuccessMessage","dropConfetti","setDropConfetti","_useWindowDimensions","useEffect","timer","setTimeout","clearTimeout","classnames","Confetti","recycle","isPresent","WelcomeScreen","withT","nextStep","Onboarding","_ref$currentStep","_ref$setCurrentStep","noop","_ref$onboardingSteps","_ref$completeButtonPr","_ref$helpScreenClassN","_ref$isAnimated","isAnimated","_ref$disableStepClick","disableStepClick","_ref$welcomeScreenCla","welcomeScreenClassName","_ref$completedScreenC","completedScreenClassName","_ref$isCommunityStepV","steps","useMemo","prevStep","useRef","isStepperNavigation","isRedirectingToCommunity","isFromStepper","current","shouldShowCommunityFirst","direction","setDirection","getOnboardingStepIndex","stepKey","findIndex","handleStepChange","index","isStepperVisible","Stepper","activeIndex","findIndexBy","onStepClick","undefined","hidden"],"mappings":"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","x_google_ignoreList":[0,1]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "5.5.1",
3
+ "version": "5.5.2",
4
4
  "description": "A package of reusable molecular components for neeto products.",
5
5
  "repository": "git@github.com:bigbinary/neeto-molecules.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -983,19 +983,26 @@
983
983
  "continueButton": "استمرار",
984
984
  "startUsingButton": "بدء استخدام {{appName, anyCase}}"
985
985
  },
986
- "communityLabel": "المجتمع والمدونة",
986
+ "communityLabel": "المجتمع",
987
987
  "communityScreen": {
988
988
  "continueButton": "استمر",
989
989
  "title": "المجتمع والمدونة",
990
990
  "slack": {
991
991
  "title": "انضم إلى مجتمع Slack الخاص بنا",
992
- "description": "<p>هل لديك سؤال؟ هل وجدت خطأ؟ هل تريد الوصول المبكر؟ أو فقط تريد لمحة عن ما نبنيه؟ مجتمع Slack الخاص بنا هو المكان الذي تحدث فيه السحر (والفوضى).</p> <p>جميع المهندسين والمصممين ومراكز المنتج الذين يبنون Neeto موجودون هناك - يشاركون التحديثات، ويتقبلون الملاحظات، وأحيانًا يتجادلون حول بعض القضايا.</p> <p>انضم إلى المحادثة، اطرح أفكارك، أو فقط تابع وراقب ما سيأتي بعد ذلك. سنكون سعداء بوجودك.</p>"
992
+ "description": "هل لديك سؤال، أو وجدت خطأ، أو تريد نظرة مبكرة على ما نبنيه؟ المهندسون والمصممون وموظفو المنتجات الذين يبنون Neeto جميعهم هنا، يشاركون التحديثات ويتلقون الملاحظات.",
993
+ "recipient": "ستُرسل الدعوة إلى <strong>{{email}}</strong>",
994
+ "emailInputLabel": "البريد الإلكتروني لدعوة Slack"
993
995
  },
994
996
  "blog": {
995
- "title": "انضم إلى مدونة NeetoCal",
996
- "description": "<p>احصل على التحديثات المتعلقة بالمنتجات تصل إلى صندوق الوارد الخاص بك.</p>"
997
+ "title": "اشترك في مدونة {{appName, anyCase}}",
998
+ "description": "احصل على تحديثات المنتج في بريدك الوارد. سنرسل لك بريدًا إلكترونيًا لتأكيد اشتراكك.",
999
+ "recipient": "ستصل التحديثات إلى <strong>{{email}}</strong>",
1000
+ "emailInputLabel": "البريد الإلكتروني للاشتراك في المدونة"
997
1001
  },
998
- "unsubscribe": "يمكنك إلغاء الاشتراك في هذه في أي وقت تريد."
1002
+ "unsubscribe": "يمكنك إلغاء الاشتراك في أي وقت.",
1003
+ "description": "ابق على اتصال مع الأشخاص الذين يبنون {{appName, anyCase}}.",
1004
+ "changeButton": "تغيير",
1005
+ "invalidEmail": "أدخل عنوان بريد إلكتروني صالح."
999
1006
  }
1000
1007
  },
1001
1008
  "moreDropdown": {
@@ -301,19 +301,26 @@
301
301
  "continueButton": "Продължи",
302
302
  "startUsingButton": "Започнете да използвате {{appName, anyCase}}"
303
303
  },
304
- "communityLabel": "Общност и Блог",
304
+ "communityLabel": "Общество",
305
305
  "communityScreen": {
306
306
  "continueButton": "Продължи",
307
- "title": "Общност и Блог",
307
+ "title": "Общество и блог",
308
308
  "slack": {
309
309
  "title": "Присъединете се към нашата Slack общност",
310
- "description": "<p>Имате въпрос? Намерихте бъг? Искате раннен достъп? Или просто искате да се запознаете с това, което изграждаме? Нашата Slack общност е мястото, където става магията (и хаосът).</p> <p>Инженерите, дизайнерите и продуктовите специалисти, които изграждат Neeto, са там—споделяйки актуализации, получавайки обратна връзка и понякога спорове по някакъв въпрос.</p> <p>Присъединете се към разговора, споделете вашите идеи или просто наблюдавайте и вижте какво предстои. Ще се радваме да имате вас.</p>"
310
+ "description": "Имаш въпрос, намери грешка или искаш ранно запознаване с това, което изграждаме? Инженерите, дизайнерите и продуктовите специалисти, които изграждат Neeto, са там, споделяйки актуализации и приемайки обратна връзка.",
311
+ "recipient": "Приканването ще бъде изпратено на <strong>{{email}}</strong>",
312
+ "emailInputLabel": "Имейл за покана в Slack"
311
313
  },
312
314
  "blog": {
313
- "title": "Присъединете се към блога на NeetoCal",
314
- "description": "<p>Получавайте актуализации за продукта директно на вашия имейл.</p>"
315
+ "title": "Абонирайте се за блога на {{appName, anyCase}}",
316
+ "description": "Получавайте актуализации за продукта, доставяни на вашия имейл. Ще ви изпратим имейл, за да потвърдите абонамента си.",
317
+ "recipient": "Актуализациите ще отидат на <strong>{{email}}</strong>",
318
+ "emailInputLabel": "Имейл за абонамент за блога"
315
319
  },
316
- "unsubscribe": "Можете да се отпишете от тях по всяко време."
320
+ "unsubscribe": "Можете да се отпишете по всяко време.",
321
+ "description": "Останете в контакт с хората, които изграждат {{appName, anyCase}}.",
322
+ "changeButton": "Промяната",
323
+ "invalidEmail": "Въведете валиден имейл адрес."
317
324
  }
318
325
  },
319
326
  "moreDropdown": {
@@ -983,19 +983,26 @@
983
983
  "continueButton": "Continuar",
984
984
  "startUsingButton": "Comença a fer servir {{appName, anyCase}}"
985
985
  },
986
- "communityLabel": "Comunitat i Bloc",
986
+ "communityLabel": "Comunitat",
987
987
  "communityScreen": {
988
988
  "continueButton": "Continuar",
989
- "title": "Comunitat i Bloc",
989
+ "title": "Comunitat i blog",
990
990
  "slack": {
991
991
  "title": "Uneix-te a la nostra comunitat de Slack",
992
- "description": "<p>Tens una pregunta? Has trobat un error? Vols accés anticipat? O només vols un avançament del que estem construint? La nostra comunitat de Slack és on passa la màgia (i el caos).</p> <p>Els enginyers, dissenyadors i persones de producte que construeixen Neeto hi són tots—compartint actualitzacions, prenent comentaris i ocasionalment discutint sobre algun tema.</p> <p>Uneix-te a la conversa, compartix les teves idees, o simplement observa i veu què vindrà a continuació. Ens encantaria tenir-te.</p>"
992
+ "description": "Teniu una pregunta, heu trobat un error o voleu veure primer el que estem construint? Els enginyers, dissenyadors i professionals de producte que construeixen Neeto hi són tots, compartint actualitzacions i recollint comentaris.",
993
+ "recipient": "S'enviarà una invitació a <strong>{{email}}</strong>",
994
+ "emailInputLabel": "Correu electrònic per a la invitació de Slack"
993
995
  },
994
996
  "blog": {
995
- "title": "Uneix-te al blog de NeetoCal",
996
- "description": "<p>Rep actualitzacions de producte directament a la teva bústia d'entrada.</p>"
997
+ "title": "Subscriviu-vos al blog de {{appName, anyCase}}",
998
+ "description": "Rebeu actualitzacions de producte al vostre correu electrònic. Us enviarem un correu electrònic per confirmar la vostra subscripció.",
999
+ "recipient": "Les actualitzacions aniran a <strong>{{email}}</strong>",
1000
+ "emailInputLabel": "Correu electrònic per a la subscripció al blog"
997
1001
  },
998
- "unsubscribe": "Pots cancel·lar la subscripció a aquests en qualsevol moment que vulguis."
1002
+ "unsubscribe": "Podeu cancel·lar la subscripció en qualsevol moment.",
1003
+ "description": "Mantingueu el contacte amb les persones que construeixen {{appName, anyCase}}.",
1004
+ "changeButton": "Canviar",
1005
+ "invalidEmail": "Introduïu una adreça de correu electrònic vàlida."
999
1006
  }
1000
1007
  },
1001
1008
  "moreDropdown": {
@@ -983,19 +983,26 @@
983
983
  "continueButton": "Pokračovat",
984
984
  "startUsingButton": "Začněte používat {{appName, anyCase}}"
985
985
  },
986
- "communityLabel": "Komunita a blog",
986
+ "communityLabel": "Komunita",
987
987
  "communityScreen": {
988
988
  "continueButton": "Pokračovat",
989
989
  "title": "Komunita a blog",
990
990
  "slack": {
991
991
  "title": "Připojte se k naší Slack komunitě",
992
- "description": "<p>Máte otázku? Našli jste chybu? Chcete předčasný přístup? Nebo si jen chcete prohlédnout, co budujeme? Naše Slack komunita je místo, kde se děje magie (a chaos).</p> <p>Inženýři, designéři a lidé z produktu, kteří vyvíjejí Neeto, jsou tam všichni – sdílejí aktualizace, berou zpětnou vazbu a občas se hádají o nějakou záležitost.</p> <p>Připojte se k diskuzi, sdílejte své nápady nebo se jen sledujte, co následuje. Rádi vás tam uvítáme.</p>"
992
+ "description": "Máte otázku, našli jste chybu, nebo chcete mít předběžný pohled na to, co vytváříme? Inženýři, designéři a produktoví lidé vytvářející Neeto jsou všichni tam, sdílejí aktualizace a shromažďují zpětnou vazbu.",
993
+ "recipient": "Pozvánka bude odeslána na <strong>{{email}}</strong>",
994
+ "emailInputLabel": "Email pro pozvánku na Slack"
993
995
  },
994
996
  "blog": {
995
- "title": "Připojte se k blogu NeetoCal",
996
- "description": "<p>Získejte produktové aktualizace doručené do vaší schránky.</p>"
997
+ "title": "Přihlaste se k odběru blogu {{appName, anyCase}}",
998
+ "description": "Získejte produktové aktualizace doručené do vaší schránky. Pošleme vám email pro potvrzení vašeho odběru.",
999
+ "recipient": "Aktualizace budou zasílány na <strong>{{email}}</strong>",
1000
+ "emailInputLabel": "Email pro odběr blogu"
997
1001
  },
998
- "unsubscribe": "Kdykoli se můžete odhlásit."
1002
+ "unsubscribe": "Můžete se kdykoliv odhlásit.",
1003
+ "description": "Zůstaňte v kontaktu s lidmi, kteří vytvářejí {{appName, anyCase}}.",
1004
+ "changeButton": "Změnit",
1005
+ "invalidEmail": "Zadejte platnou emailovou adresu."
999
1006
  }
1000
1007
  },
1001
1008
  "moreDropdown": {
@@ -983,19 +983,26 @@
983
983
  "continueButton": "Fortsæt",
984
984
  "startUsingButton": "Begynd at bruge {{appName, anyCase}}"
985
985
  },
986
- "communityLabel": "Fællesskab & Blog",
986
+ "communityLabel": "Fællesskab",
987
987
  "communityScreen": {
988
988
  "continueButton": "Fortsæt",
989
- "title": "Fællesskab & Blog",
989
+ "title": "Fællesskab & blog",
990
990
  "slack": {
991
991
  "title": "Deltag i vores Slack-fællesskab",
992
- "description": "<p>Har du et spørgsmål? Fundet en fejl? Ønsker du tidlig adgang? Eller vil du bare have et smugkig på, hvad vi bygger? Vores Slack-fællesskab er stedet, hvor magien (og kaosset) sker.</p> <p>Ingeniører, designere og produktfolk, der bygger Neeto, er alle der—de deler opdateringer, tager imod feedback og nogen gange diskuterer et spørgsmål.</p> <p>Deltag i samtalen, kom med dine idéer, eller lur bare og se, hvad der kommer næste. Vi vil elske at have dig med.</p>"
992
+ "description": "Har du et spørgsmål, fundet en fejl, eller vil du have et tidligt kig på, hvad vi bygger? Ingeniørerne, designerne og produktfolkene, der bygger Neeto, er alle der, deler opdateringer og modtager feedback.",
993
+ "recipient": "Invitationen vil blive sendt til <strong>{{email}}</strong>",
994
+ "emailInputLabel": "Email til Slack-invitation"
993
995
  },
994
996
  "blog": {
995
- "title": "Deltag i NeetoCal bloggen",
996
- "description": "<p>Få produktopdateringer sendt til din indbakke.</p>"
997
+ "title": "Abonner på {{appName, anyCase}} bloggen",
998
+ "description": "Få produktopdateringer sendt til din indbakke. Vi sender dig en email for at bekræfte dit abonnement.",
999
+ "recipient": "Opdateringer vil gå til <strong>{{email}}</strong>",
1000
+ "emailInputLabel": "Email til blog abonnement"
997
1001
  },
998
- "unsubscribe": "Du kan afmelde dig disse når som helst, du ønsker."
1002
+ "unsubscribe": "Du kan afmelde dig når som helst.",
1003
+ "description": "Hold kontakten med de mennesker, der bygger {{appName, anyCase}}.",
1004
+ "changeButton": "Ændre",
1005
+ "invalidEmail": "Indtast en gyldig emailadresse."
999
1006
  }
1000
1007
  },
1001
1008
  "moreDropdown": {
@@ -819,19 +819,26 @@
819
819
  "continueButton": "Fortfahren",
820
820
  "startUsingButton": "Beginnen Sie mit der Nutzung von {{appName, anyCase}}"
821
821
  },
822
- "communityLabel": "Community und Blog",
822
+ "communityLabel": "Gemeinschaft",
823
823
  "communityScreen": {
824
824
  "continueButton": "Weiter",
825
- "title": "Community und Blog",
825
+ "title": "Gemeinschaft & Blog",
826
826
  "slack": {
827
827
  "title": "Tritt unserer Slack-Community bei",
828
- "description": "<p>Hast du eine Frage? Hast du einen Fehler gefunden? Möchtest du früheren Zugang? Oder möchtest du nur einen ersten Blick darauf werfen, was wir bauen? Unsere Slack-Community ist der Ort, an dem die Magie (und das Chaos) passiert.</p> <p>Die Ingenieure, Designer und Produktmitarbeiter, die Neeto entwickeln, sind alle dort – teilen Updates, nehmen Feedback entgegen und diskutieren gelegentlich über einige Themen.</p> <p>Mach mit bei der Diskussion, teile deine Ideen oder lurke einfach und sieh, was als nächstes kommt. Wir würden uns freuen, dich dabei zu haben.</p>"
828
+ "description": "Haben Sie eine Frage, einen Fehler gefunden oder möchten Sie einen frühzeitigen Blick darauf werfen, was wir entwickeln? Die Ingenieure, Designer und Produktverantwortlichen, die Neeto entwickeln, sind alle dort, teilen Updates und nehmen Feedback entgegen.",
829
+ "recipient": "Einladung wird an <strong>{{email}}</strong> gesendet.",
830
+ "emailInputLabel": "E-Mail für die Slack-Einladung"
829
831
  },
830
832
  "blog": {
831
- "title": "Tritt dem NeetoCal-Blog bei",
832
- "description": "<p>Erhalte Produktupdates direkt in deinen Posteingang.</p>"
833
+ "title": "Abonnieren Sie den {{appName, anyCase}} Blog",
834
+ "description": "Erhalten Sie Produktupdates direkt in Ihren Posteingang. Wir senden Ihnen eine E-Mail, um Ihr Abonnement zu bestätigen.",
835
+ "recipient": "Updates werden an <strong>{{email}}</strong> gesendet.",
836
+ "emailInputLabel": "E-Mail für den Blog-Abonnement"
833
837
  },
834
- "unsubscribe": "Du kannst dich jederzeit davon abmelden."
838
+ "unsubscribe": "Sie können sich jederzeit abmelden.",
839
+ "description": "Bleiben Sie mit den Menschen in Kontakt, die {{appName, anyCase}} entwickeln.",
840
+ "changeButton": "Ändern",
841
+ "invalidEmail": "Geben Sie eine gültige E-Mail-Adresse ein."
835
842
  }
836
843
  },
837
844
  "moreDropdown": {
@@ -780,7 +780,7 @@
780
780
  "getStarted": "Get started",
781
781
  "startUsing": "Start using",
782
782
  "helpLabel": "Help",
783
- "communityLabel": "Community & Blog",
783
+ "communityLabel": "Community",
784
784
  "letUsCustomize": "Let's customize {{appName, anyCase}} so that it meets your needs.",
785
785
  "readyToUse": "Your {{appName, anyCase}} is ready to use.",
786
786
  "helpScreen": {
@@ -791,17 +791,24 @@
791
791
  "startUsingButton": "Start using {{appName, anyCase}}"
792
792
  },
793
793
  "communityScreen": {
794
- "continueButton": "Continue",
795
- "title": "Community & Blog",
794
+ "title": "Community & blog",
795
+ "description": "Stay in touch with the people building {{appName, anyCase}}.",
796
796
  "slack": {
797
797
  "title": "Join our Slack community",
798
- "description": "<p>Got a question? Found a bug? Want early access? Or just want a sneak peek at what we're building? Our Slack community is where the magic (and the chaos) happens.</p> <p>The engineers, designers, and product folks building Neeto are all there—sharing updates, taking feedback, and occasionally arguing over some issue.</p> <p>Join the conversation, drop your ideas, or just lurk and see what's coming next. We'd love to have you.</p>"
798
+ "description": "Got a question, found a bug, or want an early look at what we're building? The engineers, designers, and product folks building Neeto are all there, sharing updates and taking feedback.",
799
+ "recipient": "Invite will be sent to <strong>{{email}}</strong>",
800
+ "emailInputLabel": "Email for Slack invite"
799
801
  },
800
802
  "blog": {
801
- "title": "Join NeetoCal blog",
802
- "description": "<p>Get product updates delivered to your inbox.</p>"
803
+ "title": "Subscribe to the {{appName, anyCase}} blog",
804
+ "description": "Get product updates delivered to your inbox. We'll send you an email to confirm your subscription.",
805
+ "recipient": "Updates will go to <strong>{{email}}</strong>",
806
+ "emailInputLabel": "Email for blog subscription"
803
807
  },
804
- "unsubscribe": "You can unsubscribe to these at any time you want."
808
+ "changeButton": "Change",
809
+ "invalidEmail": "Enter a valid email address.",
810
+ "unsubscribe": "You can unsubscribe at any time.",
811
+ "continueButton": "Continue"
805
812
  }
806
813
  },
807
814
  "moreDropdown": {
@@ -983,19 +983,26 @@
983
983
  "continueButton": "Continuar",
984
984
  "startUsingButton": "Comenzar a usar {{appName, anyCase}}"
985
985
  },
986
- "communityLabel": "Comunidad y Blog",
986
+ "communityLabel": "Comunidad",
987
987
  "communityScreen": {
988
988
  "continueButton": "Continuar",
989
- "title": "Comunidad y Blog",
989
+ "title": "Comunidad y blog",
990
990
  "slack": {
991
991
  "title": "Únete a nuestra comunidad de Slack",
992
- "description": "<p>¿Tienes una pregunta? ¿Encontraste un error? ¿Quieres acceso anticipado? ¿O solo quieres echar un vistazo a lo que estamos construyendo? Nuestra comunidad de Slack es donde sucede la magia (y el caos).</p> <p>Los ingenieros, diseñadores y personas de producto que construyen Neeto están todos allí, compartiendo actualizaciones, recogiendo comentarios y, ocasionalmente, discutiendo sobre algún tema.</p> <p>Únete a la conversación, comparte tus ideas o simplemente observa y ve lo que vendrá. Nos encantaría tenerte.</p>"
992
+ "description": "¿Tienes una pregunta, encontraste un error o quieres ver antes lo que estamos construyendo? Los ingenieros, diseñadores y product managers que construyen Neeto están todos allí, compartiendo actualizaciones y recibiendo comentarios.",
993
+ "recipient": "La invitación se enviará a <strong>{{email}}</strong>",
994
+ "emailInputLabel": "Correo electrónico para la invitación de Slack"
993
995
  },
994
996
  "blog": {
995
- "title": "Únete al blog de NeetoCal",
996
- "description": "<p>Recibe actualizaciones de productos enviadas a tu bandeja de entrada.</p>"
997
+ "title": "Suscríbete al blog de {{appName, anyCase}}",
998
+ "description": "Recibe actualizaciones de productos entregadas en tu bandeja de entrada. Te enviaremos un correo electrónico para confirmar tu suscripción.",
999
+ "recipient": "Las actualizaciones se enviarán a <strong>{{email}}</strong>",
1000
+ "emailInputLabel": "Correo electrónico para la suscripción al blog"
997
1001
  },
998
- "unsubscribe": "Puedes darte de baja en cualquier momento."
1002
+ "unsubscribe": "Puedes darte de baja en cualquier momento.",
1003
+ "description": "Mantente en contacto con las personas que están construyendo {{appName, anyCase}}.",
1004
+ "changeButton": "Cambiar",
1005
+ "invalidEmail": "Ingresa una dirección de correo electrónico válida."
999
1006
  }
1000
1007
  },
1001
1008
  "moreDropdown": {
@@ -819,19 +819,26 @@
819
819
  "continueButton": "Continuar",
820
820
  "startUsingButton": "Comienza a usar {{appName, anyCase}}"
821
821
  },
822
- "communityLabel": "Comunidad y Blog",
822
+ "communityLabel": "Comunidad",
823
823
  "communityScreen": {
824
824
  "continueButton": "Continuar",
825
- "title": "Comunidad y Blog",
825
+ "title": "Comunidad y blog",
826
826
  "slack": {
827
827
  "title": "Únete a nuestra comunidad de Slack",
828
- "description": "<p>Tienes una pregunta? ¿Has encontrado un error? ¿Quieres acceso anticipado? ¿O solo quieres un adelanto de lo que estamos construyendo? Nuestra comunidad de Slack es donde ocurre la magia (y el caos).</p> <p>Los ingenieros, diseñadores y miembros del equipo de producto que construyen Neeto están todos allí, compartiendo actualizaciones, recibiendo comentarios y, ocasionalmente, discutiendo sobre algún tema.</p> <p>Únete a la conversación, comparte tus ideas o solo observa y ve lo que vendrá a continuación. Nos encantaría tenerte.</p>"
828
+ "description": "¿Tienes una pregunta, encontraste un error o quieres ver antes lo que estamos construyendo? Los ingenieros, diseñadores y personas de producto que construyen Neeto están todos allí, compartiendo actualizaciones y recibiendo comentarios.",
829
+ "recipient": "Se enviará una invitación a <strong>{{email}}</strong>",
830
+ "emailInputLabel": "Correo electrónico para la invitación de Slack"
829
831
  },
830
832
  "blog": {
831
- "title": "Únete al blog de NeetoCal",
832
- "description": "<p>Recibe actualizaciones de productos directamente en tu bandeja de entrada.</p>"
833
+ "title": "Suscríbete al blog de {{appName, anyCase}}",
834
+ "description": "Recibe actualizaciones de productos entregadas en tu bandeja de entrada. Te enviaremos un correo electrónico para confirmar tu suscripción.",
835
+ "recipient": "Las actualizaciones irán a <strong>{{email}}</strong>",
836
+ "emailInputLabel": "Correo electrónico para la suscripción al blog"
833
837
  },
834
- "unsubscribe": "Puedes darte de baja en cualquier momento que desees."
838
+ "unsubscribe": "Puedes darte de baja en cualquier momento.",
839
+ "description": "Mantente en contacto con las personas que construyen {{appName, anyCase}}.",
840
+ "changeButton": "Cambiar",
841
+ "invalidEmail": "Introduce una dirección de correo electrónico válida."
835
842
  }
836
843
  },
837
844
  "moreDropdown": {
@@ -983,19 +983,26 @@
983
983
  "continueButton": "Jätka",
984
984
  "startUsingButton": "Hakka kasutama {{appName, anyCase}}"
985
985
  },
986
- "communityLabel": "Kogukond ja blogi",
986
+ "communityLabel": "Kogukond",
987
987
  "communityScreen": {
988
988
  "continueButton": "Jätka",
989
- "title": "Kogukond ja blogi",
989
+ "title": "Kogukond & blogi",
990
990
  "slack": {
991
991
  "title": "Liitu meie Slack kogukonnaga",
992
- "description": "<p>Kas sul on küsimus? Leidsid vea? Tahad varajast ligipääsu? Või lihtsalt soovid pilku heita, mida me ehitame? Meie Slack kogukond on koht, kus toimub maagia (ja ka kaos).</p> <p>Neeto ehitavad insenerid, disainerid ja tooteinimesed on kõik seal – jagades uuendusi, saades tagasisidet ja aeg-ajalt vaieldes mõne küsimuse üle.</p> <p>Liitu vestlusega, jaga oma ideid või lihtsalt vaata ja näe, mis on tulemas. Meil oleks hea meel sind näha.</p>"
992
+ "description": "Kas teil on küsimus, leidsid vea või soovid varakult näha, mida me ehitame? Neeto ehitavad insenerid, disainerid ja toodete inimesed on kõik seal, jagades uuendusi ja võttes tagasisidet.",
993
+ "recipient": "Kutse saadetakse <strong>{{email}}</strong>",
994
+ "emailInputLabel": "Email Slack kutse jaoks"
993
995
  },
994
996
  "blog": {
995
- "title": "Liitu NeetoCal blogiga",
996
- "description": "<p>Saada tooteuuendusi oma postkasti.</p>"
997
+ "title": "Telli {{appName, anyCase}} blogi",
998
+ "description": "Saate tooteuuendusi otse oma postkasti. Saadame teile kinnituseks emaili.",
999
+ "recipient": "Uuendused saadetakse <strong>{{email}}</strong>",
1000
+ "emailInputLabel": "Email blogi tellimiseks"
997
1001
  },
998
- "unsubscribe": "Sa saad end igal ajal maha võtta."
1002
+ "unsubscribe": "Saate igal ajal loobuda.",
1003
+ "description": "Ole ühenduses inimestega, kes arendavad {{appName, anyCase}}.",
1004
+ "changeButton": "Muuda",
1005
+ "invalidEmail": "Sisestage kehtiv emaili aadress."
999
1006
  }
1000
1007
  },
1001
1008
  "moreDropdown": {