@bigbinary/neeto-molecules 5.5.0 → 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 +24 -6
  19. package/src/translations/bg.json +25 -7
  20. package/src/translations/ca.json +25 -7
  21. package/src/translations/cs.json +24 -6
  22. package/src/translations/da.json +25 -7
  23. package/src/translations/de.json +25 -7
  24. package/src/translations/en.json +14 -7
  25. package/src/translations/es-MX.json +25 -7
  26. package/src/translations/es.json +25 -7
  27. package/src/translations/et.json +25 -7
  28. package/src/translations/fi.json +25 -7
  29. package/src/translations/fil.json +25 -7
  30. package/src/translations/fr.json +25 -7
  31. package/src/translations/he.json +25 -7
  32. package/src/translations/hi.json +24 -6
  33. package/src/translations/hr.json +24 -6
  34. package/src/translations/hu.json +25 -7
  35. package/src/translations/id.json +25 -7
  36. package/src/translations/it.json +25 -7
  37. package/src/translations/ja.json +25 -7
  38. package/src/translations/ko.json +25 -7
  39. package/src/translations/lv.json +25 -7
  40. package/src/translations/nl.json +25 -7
  41. package/src/translations/pl.json +25 -7
  42. package/src/translations/pt-BR.json +25 -7
  43. package/src/translations/pt.json +25 -7
  44. package/src/translations/ro.json +25 -7
  45. package/src/translations/ru.json +24 -6
  46. package/src/translations/sk.json +24 -6
  47. package/src/translations/sl.json +25 -7
  48. package/src/translations/sv.json +25 -7
  49. package/src/translations/th.json +24 -6
  50. package/src/translations/tr.json +25 -7
  51. package/src/translations/uk.json +25 -7
  52. package/src/translations/vi.json +25 -7
  53. package/src/translations/zh-CN.json +24 -6
  54. package/src/translations/zh-TW.json +25 -7
  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.0",
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>",
@@ -291,7 +291,8 @@
291
291
  "systemStatus": "حالة النظام",
292
292
  "askTheCommunity": "اسأل المجتمع",
293
293
  "requestFeature": "طلب ميزة",
294
- "roadmap": "خريطة الطريق"
294
+ "roadmap": "خريطة الطريق",
295
+ "reportSlowness": "الإبلاغ عن البطء"
295
296
  },
296
297
  "showMenu": "توسيع الشريط الجانبي",
297
298
  "hideMenu": "طي الشريط الجانبي",
@@ -982,19 +983,26 @@
982
983
  "continueButton": "استمرار",
983
984
  "startUsingButton": "بدء استخدام {{appName, anyCase}}"
984
985
  },
985
- "communityLabel": "المجتمع والمدونة",
986
+ "communityLabel": "المجتمع",
986
987
  "communityScreen": {
987
988
  "continueButton": "استمر",
988
989
  "title": "المجتمع والمدونة",
989
990
  "slack": {
990
991
  "title": "انضم إلى مجتمع Slack الخاص بنا",
991
- "description": "<p>هل لديك سؤال؟ هل وجدت خطأ؟ هل تريد الوصول المبكر؟ أو فقط تريد لمحة عن ما نبنيه؟ مجتمع Slack الخاص بنا هو المكان الذي تحدث فيه السحر (والفوضى).</p> <p>جميع المهندسين والمصممين ومراكز المنتج الذين يبنون Neeto موجودون هناك - يشاركون التحديثات، ويتقبلون الملاحظات، وأحيانًا يتجادلون حول بعض القضايا.</p> <p>انضم إلى المحادثة، اطرح أفكارك، أو فقط تابع وراقب ما سيأتي بعد ذلك. سنكون سعداء بوجودك.</p>"
992
+ "description": "هل لديك سؤال، أو وجدت خطأ، أو تريد نظرة مبكرة على ما نبنيه؟ المهندسون والمصممون وموظفو المنتجات الذين يبنون Neeto جميعهم هنا، يشاركون التحديثات ويتلقون الملاحظات.",
993
+ "recipient": "ستُرسل الدعوة إلى <strong>{{email}}</strong>",
994
+ "emailInputLabel": "البريد الإلكتروني لدعوة Slack"
992
995
  },
993
996
  "blog": {
994
- "title": "انضم إلى مدونة NeetoCal",
995
- "description": "<p>احصل على التحديثات المتعلقة بالمنتجات تصل إلى صندوق الوارد الخاص بك.</p>"
997
+ "title": "اشترك في مدونة {{appName, anyCase}}",
998
+ "description": "احصل على تحديثات المنتج في بريدك الوارد. سنرسل لك بريدًا إلكترونيًا لتأكيد اشتراكك.",
999
+ "recipient": "ستصل التحديثات إلى <strong>{{email}}</strong>",
1000
+ "emailInputLabel": "البريد الإلكتروني للاشتراك في المدونة"
996
1001
  },
997
- "unsubscribe": "يمكنك إلغاء الاشتراك في هذه في أي وقت تريد."
1002
+ "unsubscribe": "يمكنك إلغاء الاشتراك في أي وقت.",
1003
+ "description": "ابق على اتصال مع الأشخاص الذين يبنون {{appName, anyCase}}.",
1004
+ "changeButton": "تغيير",
1005
+ "invalidEmail": "أدخل عنوان بريد إلكتروني صالح."
998
1006
  }
999
1007
  },
1000
1008
  "moreDropdown": {
@@ -1015,6 +1023,16 @@
1015
1023
  "pricingInfo": "هل ترغب في معرفة المزيد عن ميزات خطة برو؟ اطلع على <pricingLink>صفحة التسعير</pricingLink>.",
1016
1024
  "sendRequest": "إرسال الطلب",
1017
1025
  "cancel": "إلغاء"
1026
+ },
1027
+ "reportSlowness": {
1028
+ "title": "الإبلاغ عن البطء",
1029
+ "descriptionLabel": "ما الذي شعرت أنه بطيء؟ (اختياري)",
1030
+ "descriptionPlaceholder": "على سبيل المثال، استغرق تحميل قائمة التذاكر وقتاً طويلاً",
1031
+ "cancel": "إلغاء",
1032
+ "submit": "إرسال",
1033
+ "success": "شكراً! لقد تم إرسال تقرير البطء الخاص بك.",
1034
+ "viewReplay": "عرض الإعادة",
1035
+ "error": "تعذر الإبلاغ عن البطء. يرجى المحاولة مرة أخرى."
1018
1036
  }
1019
1037
  }
1020
1038
  }
@@ -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": {
@@ -702,7 +709,8 @@
702
709
  "systemStatus": "Статус на системата",
703
710
  "askTheCommunity": "Попитайте общността",
704
711
  "requestFeature": "Искане на функция",
705
- "roadmap": "Пътна карта"
712
+ "roadmap": "Пътна карта",
713
+ "reportSlowness": "Докладвайте за забавяне"
706
714
  },
707
715
  "showMenu": "Разширете страничното меню",
708
716
  "hideMenu": "Сгънете страничното меню",
@@ -1009,6 +1017,16 @@
1009
1017
  "pricingInfo": "Искате да научите повече за функциите на професионалния план? Разгледайте нашата <pricingLink>страница за цени</pricingLink>.",
1010
1018
  "sendRequest": "Изпрати искане",
1011
1019
  "cancel": "Отмени"
1020
+ },
1021
+ "reportSlowness": {
1022
+ "title": "Докладвайте за забавяне",
1023
+ "descriptionLabel": "Какво се е усещало бавно? (по желание)",
1024
+ "descriptionPlaceholder": "Например, списъкът с билети отне много време за зареждане",
1025
+ "cancel": "Отмени",
1026
+ "submit": "Изпрати",
1027
+ "success": "Благодарим! Вашият доклад за забавяне е изпратен.",
1028
+ "viewReplay": "Преглед на запис",
1029
+ "error": "Не можа да се докладва забавяне. Моля, опитайте отново."
1012
1030
  }
1013
1031
  },
1014
1032
  "taxonomyDefaultLabels": {
@@ -291,7 +291,8 @@
291
291
  "systemStatus": "Estat del sistema",
292
292
  "askTheCommunity": "Pregunta a la comunitat",
293
293
  "requestFeature": "Sol·licitar una funció",
294
- "roadmap": "Full de ruta"
294
+ "roadmap": "Full de ruta",
295
+ "reportSlowness": "Informar de la lentitud"
295
296
  },
296
297
  "showMenu": "Expandir la barra lateral",
297
298
  "hideMenu": "Col·lapsar la barra lateral",
@@ -982,19 +983,26 @@
982
983
  "continueButton": "Continuar",
983
984
  "startUsingButton": "Comença a fer servir {{appName, anyCase}}"
984
985
  },
985
- "communityLabel": "Comunitat i Bloc",
986
+ "communityLabel": "Comunitat",
986
987
  "communityScreen": {
987
988
  "continueButton": "Continuar",
988
- "title": "Comunitat i Bloc",
989
+ "title": "Comunitat i blog",
989
990
  "slack": {
990
991
  "title": "Uneix-te a la nostra comunitat de Slack",
991
- "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"
992
995
  },
993
996
  "blog": {
994
- "title": "Uneix-te al blog de NeetoCal",
995
- "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"
996
1001
  },
997
- "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."
998
1006
  }
999
1007
  },
1000
1008
  "moreDropdown": {
@@ -1015,6 +1023,16 @@
1015
1023
  "pricingInfo": "Vols saber més sobre les característiques del pla Pro? Consulta la nostra <pricingLink>pàgina de preus</pricingLink>.",
1016
1024
  "sendRequest": "Enviar sol·licitud",
1017
1025
  "cancel": "Cancel·la"
1026
+ },
1027
+ "reportSlowness": {
1028
+ "title": "Informar de la lentitud",
1029
+ "descriptionLabel": "Què es va sentir lent? (opcional)",
1030
+ "descriptionPlaceholder": "Per exemple, la llista de tiquets va tardar a carregar",
1031
+ "cancel": "Cancel·lar",
1032
+ "submit": "Enviar",
1033
+ "success": "Gràcies! El teu informe de lentitud s'ha enviat.",
1034
+ "viewReplay": "Veure la repetició",
1035
+ "error": "No s'ha pogut informar de la lentitud. Si us plau, torna a provar."
1018
1036
  }
1019
1037
  }
1020
1038
  }
@@ -291,7 +291,8 @@
291
291
  "systemStatus": "Stav systému",
292
292
  "askTheCommunity": "Zeptejte se komunity",
293
293
  "requestFeature": "Požádat o funkci",
294
- "roadmap": "Plánovací mapa"
294
+ "roadmap": "Plánovací mapa",
295
+ "reportSlowness": "Nahlásit pomalost"
295
296
  },
296
297
  "showMenu": "Rozbalit boční lištu",
297
298
  "hideMenu": "Sbalit boční lištu",
@@ -982,19 +983,26 @@
982
983
  "continueButton": "Pokračovat",
983
984
  "startUsingButton": "Začněte používat {{appName, anyCase}}"
984
985
  },
985
- "communityLabel": "Komunita a blog",
986
+ "communityLabel": "Komunita",
986
987
  "communityScreen": {
987
988
  "continueButton": "Pokračovat",
988
989
  "title": "Komunita a blog",
989
990
  "slack": {
990
991
  "title": "Připojte se k naší Slack komunitě",
991
- "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"
992
995
  },
993
996
  "blog": {
994
- "title": "Připojte se k blogu NeetoCal",
995
- "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"
996
1001
  },
997
- "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."
998
1006
  }
999
1007
  },
1000
1008
  "moreDropdown": {
@@ -1015,6 +1023,16 @@
1015
1023
  "pricingInfo": "Chcete vědět více o funkcích profesionálního plánu? Podívejte se na naši <pricingLink>cenu</pricingLink>.",
1016
1024
  "sendRequest": "Odeslat žádost",
1017
1025
  "cancel": "Zrušit"
1026
+ },
1027
+ "reportSlowness": {
1028
+ "title": "Nahlásit pomalost",
1029
+ "descriptionLabel": "Co se zdálo pomalé? (volitelné)",
1030
+ "descriptionPlaceholder": "Například, seznam tiketů se dlouho načítal",
1031
+ "cancel": "Zrušit",
1032
+ "submit": "Odeslat",
1033
+ "success": "Děkujeme! Váš hlášení o pomalosti bylo odesláno.",
1034
+ "viewReplay": "Zobrazit záznam",
1035
+ "error": "Nepodařilo se nahlásit pomalost. Zkuste to prosím znovu."
1018
1036
  }
1019
1037
  }
1020
1038
  }
@@ -291,7 +291,8 @@
291
291
  "systemStatus": "Systemstatus",
292
292
  "askTheCommunity": "Spørg fællesskabet",
293
293
  "requestFeature": "Anmod om funktion",
294
- "roadmap": "Færdselsplan"
294
+ "roadmap": "Færdselsplan",
295
+ "reportSlowness": "Rapportér langsomhed"
295
296
  },
296
297
  "showMenu": "Udvid sidepanel",
297
298
  "hideMenu": "Skjul sidepanel",
@@ -982,19 +983,26 @@
982
983
  "continueButton": "Fortsæt",
983
984
  "startUsingButton": "Begynd at bruge {{appName, anyCase}}"
984
985
  },
985
- "communityLabel": "Fællesskab & Blog",
986
+ "communityLabel": "Fællesskab",
986
987
  "communityScreen": {
987
988
  "continueButton": "Fortsæt",
988
- "title": "Fællesskab & Blog",
989
+ "title": "Fællesskab & blog",
989
990
  "slack": {
990
991
  "title": "Deltag i vores Slack-fællesskab",
991
- "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"
992
995
  },
993
996
  "blog": {
994
- "title": "Deltag i NeetoCal bloggen",
995
- "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"
996
1001
  },
997
- "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."
998
1006
  }
999
1007
  },
1000
1008
  "moreDropdown": {
@@ -1015,6 +1023,16 @@
1015
1023
  "pricingInfo": "Vil du vide mere om Pro-planens funktioner? Tjek vores <pricingLink>priser side</pricingLink>.",
1016
1024
  "sendRequest": "Send anmodning",
1017
1025
  "cancel": "Annuller"
1026
+ },
1027
+ "reportSlowness": {
1028
+ "title": "Rapportér langsomhed",
1029
+ "descriptionLabel": "Hvad føltes langsomt? (valgfrit)",
1030
+ "descriptionPlaceholder": "For eksempel, liste over billetter tog lang tid at indlæse",
1031
+ "cancel": "Afbryd",
1032
+ "submit": "Indsend",
1033
+ "success": "Tak! Din rapport om langsomhed er blevet sendt.",
1034
+ "viewReplay": "Se replay",
1035
+ "error": "Kunne ikke rapportere langsomhed. Prøv igen."
1018
1036
  }
1019
1037
  }
1020
1038
  }
@@ -127,7 +127,8 @@
127
127
  "systemStatus": "Systemstatus",
128
128
  "askTheCommunity": "Frage die Community",
129
129
  "requestFeature": "Funktion anfordern",
130
- "roadmap": "Fahrplan"
130
+ "roadmap": "Fahrplan",
131
+ "reportSlowness": "Langsamkeit melden"
131
132
  },
132
133
  "showMenu": "Seitenleiste erweitern",
133
134
  "hideMenu": "Seitenleiste minimieren",
@@ -818,19 +819,26 @@
818
819
  "continueButton": "Fortfahren",
819
820
  "startUsingButton": "Beginnen Sie mit der Nutzung von {{appName, anyCase}}"
820
821
  },
821
- "communityLabel": "Community und Blog",
822
+ "communityLabel": "Gemeinschaft",
822
823
  "communityScreen": {
823
824
  "continueButton": "Weiter",
824
- "title": "Community und Blog",
825
+ "title": "Gemeinschaft & Blog",
825
826
  "slack": {
826
827
  "title": "Tritt unserer Slack-Community bei",
827
- "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"
828
831
  },
829
832
  "blog": {
830
- "title": "Tritt dem NeetoCal-Blog bei",
831
- "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"
832
837
  },
833
- "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."
834
842
  }
835
843
  },
836
844
  "moreDropdown": {
@@ -1009,6 +1017,16 @@
1009
1017
  "pricingInfo": "Möchten Sie mehr über die Funktionen des Pro-Pakets erfahren? Besuchen Sie unsere <pricingLink>Preisseite</pricingLink>.",
1010
1018
  "sendRequest": "Anfrage senden",
1011
1019
  "cancel": "Abbrechen"
1020
+ },
1021
+ "reportSlowness": {
1022
+ "title": "Langsamkeit melden",
1023
+ "descriptionLabel": "Was fühlte sich langsam an? (optional)",
1024
+ "descriptionPlaceholder": "Zum Beispiel, die Ticketliste hat lange zum Laden gebraucht",
1025
+ "cancel": "Abbrechen",
1026
+ "submit": "Einreichen",
1027
+ "success": "Danke! Ihr Langsamkeitsbericht wurde gesendet.",
1028
+ "viewReplay": "Wiedergabe anzeigen",
1029
+ "error": "Langsamkeit konnte nicht gemeldet werden. Bitte versuchen Sie es erneut."
1012
1030
  }
1013
1031
  },
1014
1032
  "taxonomyDefaultLabels": {