@bigbinary/neeto-molecules 4.2.0 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Columns-DpeV3Jzz.js → Columns-gR00LMKF.js} +2 -2
- package/dist/Columns-gR00LMKF.js.map +1 -0
- package/dist/{ConfigureView-B0UvLoJe.js → ConfigureView-CG1M2-3b.js} +4 -15
- package/dist/ConfigureView-CG1M2-3b.js.map +1 -0
- package/dist/check-DvxzqR83.js +15 -0
- package/dist/check-DvxzqR83.js.map +1 -0
- package/dist/chevron-down-BMerqYpK.js +15 -0
- package/dist/chevron-down-BMerqYpK.js.map +1 -0
- package/dist/chevron-left-BTVCxPw8.js +15 -0
- package/dist/chevron-left-BTVCxPw8.js.map +1 -0
- package/dist/cjs/{Columns-C2ke8N58.js → Columns-Brpr2a_M.js} +2 -2
- package/dist/cjs/Columns-Brpr2a_M.js.map +1 -0
- package/dist/cjs/{ConfigureView-Coy1ViRc.js → ConfigureView-BVRHqVpb.js} +5 -16
- package/dist/cjs/ConfigureView-BVRHqVpb.js.map +1 -0
- package/dist/cjs/check-VgZf0qTr.js +17 -0
- package/dist/cjs/check-VgZf0qTr.js.map +1 -0
- package/dist/cjs/chevron-down-DwiliwN1.js +17 -0
- package/dist/cjs/chevron-down-DwiliwN1.js.map +1 -0
- package/dist/cjs/chevron-left-DWN80ILn.js +17 -0
- package/dist/cjs/chevron-left-DWN80ILn.js.map +1 -0
- package/dist/cjs/{useKeyboardShortcutsPaneState-BG_xVteC.js → useKeyboardShortcutsPaneState-DZUnpw9v.js} +2 -2
- package/dist/cjs/useKeyboardShortcutsPaneState-DZUnpw9v.js.map +1 -0
- package/dist/cjs/v2/AuditLogs.js +8 -8
- package/dist/cjs/v2/AuditLogs.js.map +1 -1
- package/dist/cjs/v2/BoardView.js +427 -0
- package/dist/cjs/v2/BoardView.js.map +1 -0
- package/dist/cjs/v2/Breadcrumbs.js +2 -2
- package/dist/cjs/v2/Breadcrumbs.js.map +1 -1
- package/dist/cjs/v2/CalendarView.js +429 -0
- package/dist/cjs/v2/CalendarView.js.map +1 -0
- package/dist/cjs/v2/Columns.js +2 -2
- package/dist/cjs/v2/ConfigurePageSidebar.js +4 -3
- package/dist/cjs/v2/ConfigurePageSidebar.js.map +1 -1
- package/dist/cjs/v2/CopyToClipboardButton.js +3 -13
- package/dist/cjs/v2/CopyToClipboardButton.js.map +1 -1
- package/dist/cjs/v2/DateFormat.js +42 -0
- package/dist/cjs/v2/DateFormat.js.map +1 -0
- package/dist/cjs/v2/DocumentEditor.js +329 -0
- package/dist/cjs/v2/DocumentEditor.js.map +1 -0
- package/dist/cjs/v2/EmojiPicker.js +125 -0
- package/dist/cjs/v2/EmojiPicker.js.map +1 -0
- package/dist/cjs/v2/Engagements.js +283 -0
- package/dist/cjs/v2/Engagements.js.map +1 -0
- package/dist/cjs/v2/ErrorPage.js +1 -1
- package/dist/cjs/v2/ErrorPage.js.map +1 -1
- package/dist/cjs/v2/FileUpload.js +644 -0
- package/dist/cjs/v2/FileUpload.js.map +1 -0
- package/dist/cjs/v2/FinderModal.js +253 -0
- package/dist/cjs/v2/FinderModal.js.map +1 -0
- package/dist/cjs/v2/FloatingActionMenu.js +11 -9
- package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/v2/Header.js +6 -6
- package/dist/cjs/v2/InlineInput.js +293 -0
- package/dist/cjs/v2/InlineInput.js.map +1 -0
- package/dist/cjs/v2/KeyboardShortcuts.js +3 -3
- package/dist/cjs/v2/KeyboardShortcuts.js.map +1 -1
- package/dist/cjs/v2/LoginPage.js +1 -1
- package/dist/cjs/v2/LoginPage.js.map +1 -1
- package/dist/cjs/v2/MenuBar.js +2 -2
- package/dist/cjs/v2/MenuBar.js.map +1 -1
- package/dist/cjs/v2/MoreDropdown.js +1 -1
- package/dist/cjs/v2/MoreDropdown.js.map +1 -1
- package/dist/cjs/v2/NavigationHeader.js +328 -0
- package/dist/cjs/v2/NavigationHeader.js.map +1 -0
- package/dist/cjs/v2/PublishBlock.js +414 -0
- package/dist/cjs/v2/PublishBlock.js.map +1 -0
- package/dist/cjs/v2/Rename.js +350 -0
- package/dist/cjs/v2/Rename.js.map +1 -0
- package/dist/cjs/v2/Scrollable.js +37 -0
- package/dist/cjs/v2/Scrollable.js.map +1 -0
- package/dist/cjs/v2/Search.js +5 -5
- package/dist/cjs/v2/Search.js.map +1 -1
- package/dist/cjs/v2/Settings.js +6 -6
- package/dist/cjs/v2/Settings.js.map +1 -1
- package/dist/cjs/v2/Sidebar.js +8 -7
- package/dist/cjs/v2/Sidebar.js.map +1 -1
- package/dist/cjs/v2/StickyRibbonsContainer.js +4 -4
- package/dist/cjs/v2/StickyRibbonsContainer.js.map +1 -1
- package/dist/cjs/v2/SubHeader.js +3 -3
- package/dist/cjs/v2/SubHeader.js.map +1 -1
- package/dist/cjs/v2/TimeFormat.js +15 -0
- package/dist/cjs/v2/TimeFormat.js.map +1 -0
- package/dist/{useKeyboardShortcutsPaneState-dNIbb_PI.js → useKeyboardShortcutsPaneState-BlyFMEtW.js} +2 -2
- package/dist/useKeyboardShortcutsPaneState-BlyFMEtW.js.map +1 -0
- package/dist/v2/AuditLogs.js +8 -8
- package/dist/v2/AuditLogs.js.map +1 -1
- package/dist/v2/BoardView.js +425 -0
- package/dist/v2/BoardView.js.map +1 -0
- package/dist/v2/Breadcrumbs.js +2 -2
- package/dist/v2/Breadcrumbs.js.map +1 -1
- package/dist/v2/CalendarView.js +427 -0
- package/dist/v2/CalendarView.js.map +1 -0
- package/dist/v2/Columns.js +2 -2
- package/dist/v2/ConfigurePageSidebar.js +4 -3
- package/dist/v2/ConfigurePageSidebar.js.map +1 -1
- package/dist/v2/CopyToClipboardButton.js +2 -12
- package/dist/v2/CopyToClipboardButton.js.map +1 -1
- package/dist/v2/DateFormat.js +40 -0
- package/dist/v2/DateFormat.js.map +1 -0
- package/dist/v2/DocumentEditor.js +327 -0
- package/dist/v2/DocumentEditor.js.map +1 -0
- package/dist/v2/EmojiPicker.js +123 -0
- package/dist/v2/EmojiPicker.js.map +1 -0
- package/dist/v2/Engagements.js +281 -0
- package/dist/v2/Engagements.js.map +1 -0
- package/dist/v2/ErrorPage.js +1 -1
- package/dist/v2/ErrorPage.js.map +1 -1
- package/dist/v2/FileUpload.js +641 -0
- package/dist/v2/FileUpload.js.map +1 -0
- package/dist/v2/FinderModal.js +251 -0
- package/dist/v2/FinderModal.js.map +1 -0
- package/dist/v2/FloatingActionMenu.js +11 -9
- package/dist/v2/FloatingActionMenu.js.map +1 -1
- package/dist/v2/Header.js +6 -6
- package/dist/v2/InlineInput.js +290 -0
- package/dist/v2/InlineInput.js.map +1 -0
- package/dist/v2/KeyboardShortcuts.js +3 -3
- package/dist/v2/KeyboardShortcuts.js.map +1 -1
- package/dist/v2/LoginPage.js +1 -1
- package/dist/v2/LoginPage.js.map +1 -1
- package/dist/v2/MenuBar.js +2 -2
- package/dist/v2/MenuBar.js.map +1 -1
- package/dist/v2/MoreDropdown.js +1 -1
- package/dist/v2/MoreDropdown.js.map +1 -1
- package/dist/v2/NavigationHeader.js +326 -0
- package/dist/v2/NavigationHeader.js.map +1 -0
- package/dist/v2/PublishBlock.js +412 -0
- package/dist/v2/PublishBlock.js.map +1 -0
- package/dist/v2/Rename.js +348 -0
- package/dist/v2/Rename.js.map +1 -0
- package/dist/v2/Scrollable.js +35 -0
- package/dist/v2/Scrollable.js.map +1 -0
- package/dist/v2/Search.js +5 -5
- package/dist/v2/Search.js.map +1 -1
- package/dist/v2/Settings.js +6 -6
- package/dist/v2/Settings.js.map +1 -1
- package/dist/v2/Sidebar.js +8 -7
- package/dist/v2/Sidebar.js.map +1 -1
- package/dist/v2/StickyRibbonsContainer.js +4 -4
- package/dist/v2/StickyRibbonsContainer.js.map +1 -1
- package/dist/v2/SubHeader.js +3 -3
- package/dist/v2/SubHeader.js.map +1 -1
- package/dist/v2/TimeFormat.js +13 -0
- package/dist/v2/TimeFormat.js.map +1 -0
- package/package.json +5 -5
- package/src/translations/en.json +4 -2
- package/types/v2/BoardView.d.ts +27 -0
- package/types/v2/CalendarView.d.ts +40 -0
- package/types/v2/DateFormat.d.ts +19 -0
- package/types/v2/DocumentEditor.d.ts +20 -0
- package/types/v2/EmojiPicker.d.ts +14 -0
- package/types/v2/Engagements.d.ts +50 -0
- package/types/v2/FileUpload.d.ts +30 -0
- package/types/v2/FinderModal.d.ts +24 -0
- package/types/v2/InlineInput.d.ts +28 -0
- package/types/v2/NavigationHeader.d.ts +80 -0
- package/types/v2/PublishBlock.d.ts +39 -0
- package/types/v2/Rename.d.ts +33 -0
- package/types/v2/Scrollable.d.ts +15 -0
- package/types/v2/TimeFormat.d.ts +17 -0
- package/dist/Columns-DpeV3Jzz.js.map +0 -1
- package/dist/ConfigureView-B0UvLoJe.js.map +0 -1
- package/dist/cjs/Columns-C2ke8N58.js.map +0 -1
- package/dist/cjs/ConfigureView-Coy1ViRc.js.map +0 -1
- package/dist/cjs/useKeyboardShortcutsPaneState-BG_xVteC.js.map +0 -1
- package/dist/useKeyboardShortcutsPaneState-dNIbb_PI.js.map +0 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import { Tooltip, Typography } from '@bigbinary/neeto-atoms';
|
|
3
|
+
import { capitalize } from '@bigbinary/neeto-cist';
|
|
4
|
+
import useTimer from '@bigbinary/neeto-commons-frontend/v2/react-utils/useTimer';
|
|
5
|
+
import { timeFormat } from '@bigbinary/neeto-commons-frontend/v2/utils/datetime';
|
|
6
|
+
import { fromPairs, keys } from 'ramda';
|
|
7
|
+
import { jsx } from 'react/jsx-runtime';
|
|
8
|
+
|
|
9
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
+
var DateFormat = fromPairs(keys(timeFormat).map(function (key) {
|
|
12
|
+
return [capitalize(key), function (_ref) {
|
|
13
|
+
var date = _ref.date,
|
|
14
|
+
_ref$timerInterval = _ref.timerInterval,
|
|
15
|
+
timerInterval = _ref$timerInterval === void 0 ? 60 : _ref$timerInterval,
|
|
16
|
+
_ref$tooltipProps = _ref.tooltipProps,
|
|
17
|
+
tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
|
|
18
|
+
_ref$typographyProps = _ref.typographyProps,
|
|
19
|
+
typographyProps = _ref$typographyProps === void 0 ? {} : _ref$typographyProps,
|
|
20
|
+
_ref$tooltipDateForma = _ref.tooltipDateFormat,
|
|
21
|
+
tooltipDateFormat = _ref$tooltipDateForma === void 0 ? "extended" : _ref$tooltipDateForma;
|
|
22
|
+
useTimer(timerInterval);
|
|
23
|
+
return /*#__PURE__*/jsx(Tooltip, _objectSpread(_objectSpread({
|
|
24
|
+
interactive: true,
|
|
25
|
+
content: timeFormat[tooltipDateFormat](date),
|
|
26
|
+
disabled: key === tooltipDateFormat,
|
|
27
|
+
position: "top"
|
|
28
|
+
}, tooltipProps), {}, {
|
|
29
|
+
children: /*#__PURE__*/jsx(Typography, _objectSpread(_objectSpread({
|
|
30
|
+
as: "span",
|
|
31
|
+
variant: "body3"
|
|
32
|
+
}, typographyProps), {}, {
|
|
33
|
+
children: timeFormat[key](date)
|
|
34
|
+
}))
|
|
35
|
+
}));
|
|
36
|
+
}];
|
|
37
|
+
}));
|
|
38
|
+
|
|
39
|
+
export { DateFormat as default };
|
|
40
|
+
//# sourceMappingURL=DateFormat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateFormat.js","sources":["../../src/v2/components/DateFormat.jsx"],"sourcesContent":["import { Tooltip, Typography } from \"@bigbinary/neeto-atoms\";\nimport { capitalize } from \"neetocist\";\nimport useTimer from \"neetocommons/v2/react-utils/useTimer\";\nimport { timeFormat } from \"neetocommons/v2/utils/datetime\";\nimport PropTypes from \"prop-types\";\nimport { fromPairs, keys } from \"ramda\";\n\nconst DateFormat = fromPairs(\n keys(timeFormat).map(key => [\n capitalize(key),\n ({\n date,\n timerInterval = 60,\n tooltipProps = {},\n typographyProps = {},\n tooltipDateFormat = \"extended\",\n }) => {\n useTimer(timerInterval);\n\n return (\n <Tooltip\n interactive\n content={timeFormat[tooltipDateFormat](date)}\n disabled={key === tooltipDateFormat}\n position=\"top\"\n {...tooltipProps}\n >\n <Typography as=\"span\" variant=\"body3\" {...typographyProps}>\n {timeFormat[key](date)}\n </Typography>\n </Tooltip>\n );\n },\n ])\n);\n\nDateFormat.propTypes = {\n /**\n * The date object to be formatted.\n */\n date: PropTypes.instanceOf(Date),\n /**\n * This prop will be used to re-render the component in every `timerInterval` seconds to show updated relative time.\n */\n timerInterval: PropTypes.number,\n /**\n * This prop will accept a string to set the format corresponding to\n * [dateFormat](https://github.com/bigbinary/neeto-commons-frontend/blob/main/docs/utils/dateFormat.md)\n * options from `neeto-commons-frontend`.\n */\n tooltipDateFormat: PropTypes.string,\n /**\n * This prop will be forwarded to the atoms Tooltip component. Default position is \"top\".\n */\n tooltipProps: PropTypes.object,\n /**\n * Props forwarded to the atoms `Typography` component (renders as `<span>`\n * with `variant=\"body3\"` by default). Accepts `variant`, `weight`, `color`,\n * `lineClamp`, `className`, `as`, etc.\n */\n typographyProps: PropTypes.object,\n};\n\nexport default DateFormat;\n"],"names":["DateFormat","fromPairs","keys","timeFormat","map","key","capitalize","_ref","date","_ref$timerInterval","timerInterval","_ref$tooltipProps","tooltipProps","_ref$typographyProps","typographyProps","_ref$tooltipDateForma","tooltipDateFormat","useTimer","_jsx","Tooltip","_objectSpread","interactive","content","disabled","position","children","Typography","as","variant"],"mappings":";;;;;;;;;;AAOA,IAAMA,UAAU,GAAGC,SAAS,CAC1BC,IAAI,CAACC,UAAU,CAAC,CAACC,GAAG,CAAC,UAAAC,GAAG,EAAA;EAAA,OAAI,CAC1BC,UAAU,CAACD,GAAG,CAAC,EACf,UAAAE,IAAA,EAMM;AAAA,IAAA,IALJC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAAC,kBAAA,GAAAF,IAAA,CACJG,aAAa;AAAbA,MAAAA,aAAa,GAAAD,kBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,kBAAA;MAAAE,iBAAA,GAAAJ,IAAA,CAClBK,YAAY;AAAZA,MAAAA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,iBAAA;MAAAE,oBAAA,GAAAN,IAAA,CACjBO,eAAe;AAAfA,MAAAA,eAAe,GAAAD,oBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,oBAAA;MAAAE,qBAAA,GAAAR,IAAA,CACpBS,iBAAiB;AAAjBA,MAAAA,iBAAiB,GAAAD,qBAAA,KAAA,MAAA,GAAG,UAAU,GAAAA,qBAAA;IAE9BE,QAAQ,CAACP,aAAa,CAAC;AAEvB,IAAA,oBACEQ,GAAA,CAACC,OAAO,EAAAC,aAAA,CAAAA,aAAA,CAAA;MACNC,WAAW,EAAA,IAAA;AACXC,MAAAA,OAAO,EAAEnB,UAAU,CAACa,iBAAiB,CAAC,CAACR,IAAI,CAAE;MAC7Ce,QAAQ,EAAElB,GAAG,KAAKW,iBAAkB;AACpCQ,MAAAA,QAAQ,EAAC;AAAK,KAAA,EACVZ,YAAY,CAAA,EAAA,EAAA,EAAA;AAAAa,MAAAA,QAAA,eAEhBP,GAAA,CAACQ,UAAU,EAAAN,aAAA,CAAAA,aAAA,CAAA;AAACO,QAAAA,EAAE,EAAC,MAAM;AAACC,QAAAA,OAAO,EAAC;AAAO,OAAA,EAAKd,eAAe,CAAA,EAAA,EAAA,EAAA;AAAAW,QAAAA,QAAA,EACtDtB,UAAU,CAACE,GAAG,CAAC,CAACG,IAAI;OAAC,CACZ;AAAC,KAAA,CACN,CAAC;AAEd,EAAA,CAAC,CACF;AAAA,CAAA,CACH;;;;"}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
+
import { useCallback, memo, useRef, useState, useMemo } from 'react';
|
|
4
|
+
import { Spinner, DropdownMenu, Dialog } from '@bigbinary/neeto-atoms';
|
|
5
|
+
import { Textarea } from '@bigbinary/neeto-atoms/formik';
|
|
6
|
+
import classnames from 'classnames';
|
|
7
|
+
import { useFormikContext } from 'formik';
|
|
8
|
+
import { isPresent, noop } from '@bigbinary/neeto-cist';
|
|
9
|
+
import FormikEditor from '@bigbinary/neeto-editor/FormikEditor';
|
|
10
|
+
import { isEmpty, mergeRight } from 'ramda';
|
|
11
|
+
import { useTranslation } from 'react-i18next';
|
|
12
|
+
import { n } from '../inject-css-C2dztUxs.js';
|
|
13
|
+
import useHotkeys from '@bigbinary/neeto-hotkeys';
|
|
14
|
+
import ImageUploader from '@bigbinary/neeto-image-uploader-frontend/ImageUploader';
|
|
15
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
16
|
+
import { t } from 'i18next';
|
|
17
|
+
import { c as createLucideIcon } from '../createLucideIcon-mNMhCCpf.js';
|
|
18
|
+
import { E as Ellipsis } from '../ellipsis-DpI9xqUK.js';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @license lucide-react v1.7.0 - ISC
|
|
22
|
+
*
|
|
23
|
+
* This source code is licensed under the ISC license.
|
|
24
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
const __iconNode = [
|
|
29
|
+
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
|
|
30
|
+
["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
|
|
31
|
+
["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
|
|
32
|
+
];
|
|
33
|
+
const Image = createLucideIcon("image", __iconNode);
|
|
34
|
+
|
|
35
|
+
var EDITOR_ADDONS = ["highlight", "emoji", "video-upload", "code-block", "block-quote", "image-upload", "image-upload-unsplash", "divider", "video-embed", "undo", "redo", "table", "callout"];
|
|
36
|
+
var DEFAULT_EDITOR_PROPS = {
|
|
37
|
+
isMenuIndependent: true,
|
|
38
|
+
addons: [],
|
|
39
|
+
size: "medium"
|
|
40
|
+
};
|
|
41
|
+
var IMAGE_UPLOAD_CONFIG = {
|
|
42
|
+
maxImageSize: 1,
|
|
43
|
+
allowedImageTypes: {
|
|
44
|
+
"image/jpg": [".jpg", ".jpeg"],
|
|
45
|
+
"image/png": [".png"],
|
|
46
|
+
"image/svg": [".svg"]
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
var css = ".nm-document-editor__wrapper{color:var(--foreground);height:100%}@media screen and (max-width:768px){.nm-document-editor__wrapper{width:100%}}.nm-document-editor__container{margin:0 auto;max-width:48rem!important;width:100%}.nm-document-editor__menubar{background-color:var(--background);position:sticky;top:0;width:100%;z-index:20}.nm-document-editor__menubar .neeto-editor-fixed-menu,.nm-document-editor__menubar.neeto-editor-fixed-menu{width:100%}.nm-document-editor__title{margin-top:1.5rem;width:100%}.nm-document-editor__title textarea{background-color:transparent;color:var(--foreground);font-size:2.625rem;font-weight:700;line-height:3rem;max-height:none;padding:0;resize:none}.nm-document-editor__title textarea,.nm-document-editor__title textarea:focus-visible,.nm-document-editor__title textarea[aria-invalid=true],.nm-document-editor__title textarea[aria-invalid=true]:focus-visible{--tw-ring-shadow:0 0 #0000!important;--tw-ring-color:transparent!important;border-color:transparent!important;box-shadow:none!important}.nm-document-editor__title textarea::-moz-placeholder{color:var(--muted-foreground);opacity:.5}.nm-document-editor__title textarea::placeholder{color:var(--muted-foreground);opacity:.5}@media screen and (max-width:1024px){.nm-document-editor__title textarea{font-size:2rem;line-height:1.25}}.nm-document-editor__error{margin:.75rem auto}.nm-document-editor__thumbnail{background-color:var(--muted);border-radius:.5rem;overflow:hidden;padding-bottom:56.25%;position:relative;width:100%}.nm-document-editor__thumbnail img{height:100%;inset-inline-start:0;-o-object-fit:cover;object-fit:cover;position:absolute;top:0;width:100%}.nm-document-editor__wrapper .neeto-editor-fixed-menu{background-color:transparent;border-bottom:1px solid var(--border);border-inline-end:0;border-inline-start:0;border-radius:0;border-top:1px solid var(--border);width:100%}.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper{align-items:center;display:flex;gap:2px;margin:0 auto;max-width:46.875rem;padding:.375rem 0;padding-inline-end:0!important;padding-inline-start:0!important;width:100%}.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item{align-items:center;background-color:transparent;border:0;border-radius:.375rem;color:var(--foreground);cursor:pointer;display:inline-flex;flex-shrink:0;height:1.75rem;justify-content:center;min-width:1.75rem;padding:0 .375rem;transition:background-color .15s ease,color .15s ease}.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item.is-active,.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item:hover,.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item[aria-pressed=true],.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item[data-active=true]{background-color:var(--accent);color:var(--accent-foreground)}.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item:disabled{cursor:not-allowed;opacity:.4}.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper button.neeto-editor-fixed-menu__item svg{height:1rem;width:1rem}@media screen and (max-width:768px){.nm-document-editor__wrapper .neeto-editor-fixed-menu__wrapper{overflow-x:auto;padding:.375rem .5rem}.nm-document-editor__wrapper button.neeto-editor-fixed-menu__item{padding:0 .25rem}}.nm-document-editor__wrapper .ProseMirror{flex-grow:1;height:auto;max-height:none;outline:none;overflow-y:hidden}.nm-document-editor__wrapper .ProseMirror p.is-editor-empty:first-child:before{color:var(--muted-foreground);content:attr(data-placeholder);float:left;height:0;opacity:.5;pointer-events:none}.nm-document-editor__wrapper .editor-content__wrapper{border:none!important;padding:.75rem 1.5rem 2rem!important;width:100%!important}.nm-document-editor__wrapper .editor-content-attachments{border:none;margin:.75rem auto 0;max-width:48rem!important;padding-inline-end:1rem;padding-inline-start:1rem}.nm-document-editor__wrapper .editor-content-attachments--no-attachments{display:none!important}.nm-document-editor__wrapper .neeto-editor-character-count{color:var(--muted-foreground);font-size:.75rem;margin:0 auto;max-width:48rem!important;padding-inline-end:1rem;padding-inline-start:1rem}.nm-document-editor__wrapper .ne-attachments__wrapper{width:100%}.nm-document-editor__wrapper ins{background-color:#c1f4cb!important;text-decoration:none!important}.nm-document-editor__wrapper del{background-color:#faa!important}";
|
|
51
|
+
n(css,{});
|
|
52
|
+
|
|
53
|
+
var useEditor = function useEditor(_ref) {
|
|
54
|
+
var onContentChange = _ref.onContentChange,
|
|
55
|
+
editorContentFieldName = _ref.editorContentFieldName,
|
|
56
|
+
onAttachmentChange = _ref.onAttachmentChange,
|
|
57
|
+
onTitleChange = _ref.onTitleChange,
|
|
58
|
+
titleFieldName = _ref.titleFieldName,
|
|
59
|
+
editorRef = _ref.editorRef,
|
|
60
|
+
titleRef = _ref.titleRef;
|
|
61
|
+
var _useFormikContext = useFormikContext(),
|
|
62
|
+
setFieldValue = _useFormikContext.setFieldValue,
|
|
63
|
+
errors = _useFormikContext.errors;
|
|
64
|
+
var handleContentChange = useCallback(function (content) {
|
|
65
|
+
setFieldValue(editorContentFieldName, content);
|
|
66
|
+
onContentChange === null || onContentChange === void 0 || onContentChange(content);
|
|
67
|
+
}, [editorContentFieldName, onContentChange, setFieldValue]);
|
|
68
|
+
var handleAttachmentChange = useCallback(function (attachments) {
|
|
69
|
+
setFieldValue("attachments", attachments);
|
|
70
|
+
onAttachmentChange === null || onAttachmentChange === void 0 || onAttachmentChange(attachments);
|
|
71
|
+
}, [onAttachmentChange, setFieldValue]);
|
|
72
|
+
var handleTitleChange = function handleTitleChange(event) {
|
|
73
|
+
var title = event.target.value;
|
|
74
|
+
setFieldValue(titleFieldName, title);
|
|
75
|
+
onTitleChange === null || onTitleChange === void 0 || onTitleChange(title);
|
|
76
|
+
};
|
|
77
|
+
var handleEditorBackspaceKeypress = function handleEditorBackspaceKeypress() {
|
|
78
|
+
var _editorRef$current, _editor$state;
|
|
79
|
+
var editor = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.editor;
|
|
80
|
+
var selection = editor === null || editor === void 0 || (_editor$state = editor.state) === null || _editor$state === void 0 ? void 0 : _editor$state.selection;
|
|
81
|
+
if (editor !== null && editor !== void 0 && editor.isFocused && isPresent(titleRef.current) && (selection === null || selection === void 0 ? void 0 : selection.anchor) === 1) {
|
|
82
|
+
var title = titleRef.current.value;
|
|
83
|
+
titleRef.current.focus();
|
|
84
|
+
titleRef.current.setSelectionRange(title === null || title === void 0 ? void 0 : title.length, title === null || title === void 0 ? void 0 : title.length);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
var titleHotkeyRef = useHotkeys("return", function () {
|
|
88
|
+
var _editorRef$current2, _editorRef$current3;
|
|
89
|
+
(_editorRef$current2 = editorRef.current) === null || _editorRef$current2 === void 0 || (_editorRef$current2 = _editorRef$current2.editor) === null || _editorRef$current2 === void 0 || (_editorRef$current2 = _editorRef$current2.commands) === null || _editorRef$current2 === void 0 || _editorRef$current2.insertContentAt(0, "<p />");
|
|
90
|
+
(_editorRef$current3 = editorRef.current) === null || _editorRef$current3 === void 0 || (_editorRef$current3 = _editorRef$current3.editor) === null || _editorRef$current3 === void 0 || (_editorRef$current3 = _editorRef$current3.commands) === null || _editorRef$current3 === void 0 || _editorRef$current3.focus("start");
|
|
91
|
+
}, {
|
|
92
|
+
mode: "scoped"
|
|
93
|
+
});
|
|
94
|
+
var editorHotkeyRef = useHotkeys("backspace", handleEditorBackspaceKeypress, {
|
|
95
|
+
mode: "scoped"
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
handleContentChange: handleContentChange,
|
|
99
|
+
handleAttachmentChange: handleAttachmentChange,
|
|
100
|
+
handleTitleChange: handleTitleChange,
|
|
101
|
+
editorHotkeyRef: editorHotkeyRef,
|
|
102
|
+
titleHotkeyRef: titleHotkeyRef,
|
|
103
|
+
errors: errors
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
var MediaUploader = function MediaUploader(_ref) {
|
|
108
|
+
var setIsThumbnailImageModalOpen = _ref.setIsThumbnailImageModalOpen;
|
|
109
|
+
var _useFormikContext = useFormikContext(),
|
|
110
|
+
thumbnailImageUrl = _useFormikContext.values.thumbnailImageUrl,
|
|
111
|
+
setFieldValue = _useFormikContext.setFieldValue,
|
|
112
|
+
initialValues = _useFormikContext.initialValues,
|
|
113
|
+
submitForm = _useFormikContext.submitForm;
|
|
114
|
+
var handleUpload = function handleUpload(file) {
|
|
115
|
+
var url = file.url,
|
|
116
|
+
signedId = file.signedId;
|
|
117
|
+
setFieldValue("thumbnailImage", signedId);
|
|
118
|
+
setFieldValue("thumbnailImageUrl", url);
|
|
119
|
+
setTimeout(function () {
|
|
120
|
+
setIsThumbnailImageModalOpen(false);
|
|
121
|
+
submitForm();
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
if (isEmpty(initialValues)) {
|
|
125
|
+
return /*#__PURE__*/jsx(Spinner, {});
|
|
126
|
+
}
|
|
127
|
+
return /*#__PURE__*/jsx(ImageUploader, {
|
|
128
|
+
className: "h-auto w-full",
|
|
129
|
+
src: thumbnailImageUrl,
|
|
130
|
+
uploadConfig: IMAGE_UPLOAD_CONFIG,
|
|
131
|
+
onUploadComplete: handleUpload
|
|
132
|
+
}, thumbnailImageUrl);
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
var getThumbnailAddon = function getThumbnailAddon(command) {
|
|
136
|
+
return {
|
|
137
|
+
label: t("neetoMolecules.documentEditor.thumbnailImage"),
|
|
138
|
+
optionName: "thumbnail-image",
|
|
139
|
+
command: command,
|
|
140
|
+
icon: Image,
|
|
141
|
+
isEnabled: true,
|
|
142
|
+
"data-testid": "thumbnail-image-addon"
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
147
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
148
|
+
var Editor = function Editor(_ref) {
|
|
149
|
+
var attachments = _ref.attachments,
|
|
150
|
+
onContentChange = _ref.onContentChange,
|
|
151
|
+
onAttachmentChange = _ref.onAttachmentChange,
|
|
152
|
+
onTitleChange = _ref.onTitleChange,
|
|
153
|
+
_ref$getTitleRef = _ref.getTitleRef,
|
|
154
|
+
getTitleRef = _ref$getTitleRef === void 0 ? noop : _ref$getTitleRef,
|
|
155
|
+
_ref$getEditorRef = _ref.getEditorRef,
|
|
156
|
+
getEditorRef = _ref$getEditorRef === void 0 ? noop : _ref$getEditorRef,
|
|
157
|
+
menuClassName = _ref.menuClassName,
|
|
158
|
+
_ref$editorContentFie = _ref.editorContentFieldName,
|
|
159
|
+
editorContentFieldName = _ref$editorContentFie === void 0 ? "htmlContent" : _ref$editorContentFie,
|
|
160
|
+
_ref$titleFieldName = _ref.titleFieldName,
|
|
161
|
+
titleFieldName = _ref$titleFieldName === void 0 ? "title" : _ref$titleFieldName,
|
|
162
|
+
_ref$editorProps = _ref.editorProps,
|
|
163
|
+
customEditorProps = _ref$editorProps === void 0 ? {} : _ref$editorProps,
|
|
164
|
+
_ref$titleProps = _ref.titleProps,
|
|
165
|
+
titleProps = _ref$titleProps === void 0 ? {} : _ref$titleProps,
|
|
166
|
+
_ref$hasThumbnailImag = _ref.hasThumbnailImage,
|
|
167
|
+
hasThumbnailImage = _ref$hasThumbnailImag === void 0 ? false : _ref$hasThumbnailImag,
|
|
168
|
+
children = _ref.children;
|
|
169
|
+
var _useTranslation = useTranslation(),
|
|
170
|
+
t = _useTranslation.t;
|
|
171
|
+
var _useFormikContext = useFormikContext(),
|
|
172
|
+
values = _useFormikContext.values,
|
|
173
|
+
setFieldValue = _useFormikContext.setFieldValue,
|
|
174
|
+
submitForm = _useFormikContext.submitForm;
|
|
175
|
+
var thumbnailImageUrl = values.thumbnailImageUrl;
|
|
176
|
+
var titleRef = useRef();
|
|
177
|
+
var editorRef = useRef();
|
|
178
|
+
var _useState = useState(false),
|
|
179
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
180
|
+
isThumbnailImageModalOpen = _useState2[0],
|
|
181
|
+
setIsThumbnailImageModalOpen = _useState2[1];
|
|
182
|
+
var editorProps = useMemo(function () {
|
|
183
|
+
var baseProps = mergeRight(DEFAULT_EDITOR_PROPS, customEditorProps);
|
|
184
|
+
if (!hasThumbnailImage) return baseProps;
|
|
185
|
+
var thumbnailAddon = getThumbnailAddon(function () {
|
|
186
|
+
return setIsThumbnailImageModalOpen(true);
|
|
187
|
+
});
|
|
188
|
+
return mergeRight(baseProps, {
|
|
189
|
+
addonCommands: [thumbnailAddon]
|
|
190
|
+
});
|
|
191
|
+
}, [customEditorProps, hasThumbnailImage]);
|
|
192
|
+
var _useEditor = useEditor({
|
|
193
|
+
onContentChange: onContentChange,
|
|
194
|
+
editorContentFieldName: editorContentFieldName,
|
|
195
|
+
onAttachmentChange: onAttachmentChange,
|
|
196
|
+
onTitleChange: onTitleChange,
|
|
197
|
+
titleFieldName: titleFieldName,
|
|
198
|
+
editorRef: editorRef,
|
|
199
|
+
titleRef: titleRef
|
|
200
|
+
}),
|
|
201
|
+
handleContentChange = _useEditor.handleContentChange,
|
|
202
|
+
handleAttachmentChange = _useEditor.handleAttachmentChange,
|
|
203
|
+
handleTitleChange = _useEditor.handleTitleChange,
|
|
204
|
+
editorHotkeyRef = _useEditor.editorHotkeyRef,
|
|
205
|
+
titleHotkeyRef = _useEditor.titleHotkeyRef,
|
|
206
|
+
errors = _useEditor.errors;
|
|
207
|
+
var setTitleRef = function setTitleRef(node) {
|
|
208
|
+
titleHotkeyRef.current = node;
|
|
209
|
+
getTitleRef(node);
|
|
210
|
+
titleRef.current = node;
|
|
211
|
+
};
|
|
212
|
+
var setEditorRef = useCallback(function (node) {
|
|
213
|
+
editorRef.current = node;
|
|
214
|
+
getEditorRef(node);
|
|
215
|
+
}, []);
|
|
216
|
+
var addons = useMemo(function () {
|
|
217
|
+
return EDITOR_ADDONS.concat(editorProps.addons || []);
|
|
218
|
+
}, [editorProps.addons]);
|
|
219
|
+
var handleTab = function handleTab() {
|
|
220
|
+
var _editorRef$current, _editorRef$current2;
|
|
221
|
+
var isListActive = ((_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.editor) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.isActive("orderedList")) || ((_editorRef$current2 = editorRef.current) === null || _editorRef$current2 === void 0 || (_editorRef$current2 = _editorRef$current2.editor) === null || _editorRef$current2 === void 0 ? void 0 : _editorRef$current2.isActive("bulletList"));
|
|
222
|
+
if (isListActive) {
|
|
223
|
+
var _editorRef$current3;
|
|
224
|
+
(_editorRef$current3 = editorRef.current) === null || _editorRef$current3 === void 0 || (_editorRef$current3 = _editorRef$current3.editor) === null || _editorRef$current3 === void 0 || (_editorRef$current3 = _editorRef$current3.commands) === null || _editorRef$current3 === void 0 || _editorRef$current3.sinkListItem("listItem");
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
return true;
|
|
228
|
+
};
|
|
229
|
+
var handleDeleteThumbnail = function handleDeleteThumbnail() {
|
|
230
|
+
setFieldValue("thumbnailImage", "");
|
|
231
|
+
setFieldValue("thumbnailImageUrl", "");
|
|
232
|
+
setTimeout(submitForm);
|
|
233
|
+
};
|
|
234
|
+
return /*#__PURE__*/jsxs("div", {
|
|
235
|
+
className: "nm-document-editor__wrapper",
|
|
236
|
+
"data-testid": "document-editor-container",
|
|
237
|
+
ref: editorHotkeyRef,
|
|
238
|
+
children: [/*#__PURE__*/jsxs(FormikEditor, _objectSpread(_objectSpread({
|
|
239
|
+
attachmentsClassName: "editor-content-attachments w-full flex-shrink-0",
|
|
240
|
+
className: "h-full w-full",
|
|
241
|
+
contentClassName: "editor-content__wrapper nm-document-editor__container",
|
|
242
|
+
"data-testid": "neeto-molecules-document-content-text-area",
|
|
243
|
+
error: undefined,
|
|
244
|
+
errorWrapperClassName: "w-full min-h-full flex flex-col items-center",
|
|
245
|
+
hideSlashCommands: false,
|
|
246
|
+
menuClassName: classnames("nm-document-editor__menubar", menuClassName),
|
|
247
|
+
name: editorContentFieldName,
|
|
248
|
+
ref: setEditorRef
|
|
249
|
+
}, _objectSpread(_objectSpread({
|
|
250
|
+
attachments: attachments
|
|
251
|
+
}, editorProps), {}, {
|
|
252
|
+
addons: addons
|
|
253
|
+
})), {}, {
|
|
254
|
+
contentWrapperClassName: "w-full flex flex-col flex-grow",
|
|
255
|
+
keyboardShortcuts: _objectSpread({
|
|
256
|
+
Tab: handleTab
|
|
257
|
+
}, editorProps.keyboardShortcuts),
|
|
258
|
+
onChange: handleContentChange,
|
|
259
|
+
onChangeAttachments: handleAttachmentChange,
|
|
260
|
+
children: [children, /*#__PURE__*/jsxs("div", {
|
|
261
|
+
className: "nm-document-editor__container px-6",
|
|
262
|
+
children: [/*#__PURE__*/jsx(Textarea, _objectSpread({
|
|
263
|
+
nakedTextarea: true,
|
|
264
|
+
className: "nm-document-editor__title",
|
|
265
|
+
"data-testid": "neeto-molecules-document-title-text-field",
|
|
266
|
+
name: titleFieldName,
|
|
267
|
+
ref: setTitleRef,
|
|
268
|
+
rows: 1,
|
|
269
|
+
placeholder: titleProps.placeholder || t("neetoMolecules.documentEditor.title"),
|
|
270
|
+
onChange: handleTitleChange,
|
|
271
|
+
onKeyDown: function onKeyDown(e) {
|
|
272
|
+
return e.key === "Enter" && !e.shiftKey && e.preventDefault();
|
|
273
|
+
}
|
|
274
|
+
}, titleProps)), thumbnailImageUrl && /*#__PURE__*/jsxs("div", {
|
|
275
|
+
className: "group relative mt-4",
|
|
276
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
277
|
+
className: "nm-document-editor__thumbnail",
|
|
278
|
+
children: /*#__PURE__*/jsx("img", {
|
|
279
|
+
alt: "Cover",
|
|
280
|
+
src: thumbnailImageUrl
|
|
281
|
+
})
|
|
282
|
+
}), /*#__PURE__*/jsx("div", {
|
|
283
|
+
className: "absolute end-2 top-2",
|
|
284
|
+
children: /*#__PURE__*/jsx(DropdownMenu, {
|
|
285
|
+
buttonProps: {
|
|
286
|
+
variant: "secondary",
|
|
287
|
+
size: "icon-sm"
|
|
288
|
+
},
|
|
289
|
+
icon: Ellipsis,
|
|
290
|
+
children: /*#__PURE__*/jsx(DropdownMenu.MenuItem, {
|
|
291
|
+
onClick: handleDeleteThumbnail,
|
|
292
|
+
children: t("neetoMolecules.documentEditor.delete")
|
|
293
|
+
})
|
|
294
|
+
})
|
|
295
|
+
})]
|
|
296
|
+
}), errors[editorContentFieldName] && /*#__PURE__*/jsx("p", {
|
|
297
|
+
className: "text-destructive nm-document-editor__error text-sm font-normal",
|
|
298
|
+
"data-slot": "field-error",
|
|
299
|
+
"data-testid": "articles-content-input-error",
|
|
300
|
+
role: "alert",
|
|
301
|
+
children: errors[editorContentFieldName]
|
|
302
|
+
})]
|
|
303
|
+
})]
|
|
304
|
+
})), /*#__PURE__*/jsxs(Dialog, {
|
|
305
|
+
"data-testid": "thumbnail-image-modal",
|
|
306
|
+
isOpen: isThumbnailImageModalOpen,
|
|
307
|
+
size: "medium",
|
|
308
|
+
onClose: function onClose() {
|
|
309
|
+
return setIsThumbnailImageModalOpen(false);
|
|
310
|
+
},
|
|
311
|
+
children: [/*#__PURE__*/jsx(Dialog.Header, {
|
|
312
|
+
children: /*#__PURE__*/jsx(Dialog.Title, {
|
|
313
|
+
children: t("neetoMolecules.documentEditor.uploadThumbnailImage")
|
|
314
|
+
})
|
|
315
|
+
}), /*#__PURE__*/jsx(Dialog.Body, {
|
|
316
|
+
children: /*#__PURE__*/jsx(MediaUploader, {
|
|
317
|
+
setIsThumbnailImageModalOpen: setIsThumbnailImageModalOpen
|
|
318
|
+
})
|
|
319
|
+
})]
|
|
320
|
+
})]
|
|
321
|
+
});
|
|
322
|
+
};
|
|
323
|
+
Editor.displayName = "DocumentEditor";
|
|
324
|
+
var index = /*#__PURE__*/memo(Editor);
|
|
325
|
+
|
|
326
|
+
export { index as default };
|
|
327
|
+
//# sourceMappingURL=DocumentEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentEditor.js","sources":["../../node_modules/lucide-react/dist/esm/icons/image.js","../../src/v2/components/DocumentEditor/constants.js","../../src/v2/components/DocumentEditor/hooks/useEditor.js","../../src/v2/components/DocumentEditor/MediaUploader.jsx","../../src/v2/components/DocumentEditor/utils.js","../../src/v2/components/DocumentEditor/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.7.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.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", ry: \"2\", key: \"1m3agn\" }],\n [\"circle\", { cx: \"9\", cy: \"9\", r: \"2\", key: \"af1f0g\" }],\n [\"path\", { d: \"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\", key: \"1xmnt7\" }]\n];\nconst Image = createLucideIcon(\"image\", __iconNode);\n\nexport { __iconNode, Image as default };\n//# sourceMappingURL=image.js.map\n","export const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"video-upload\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"image-upload-unsplash\",\n \"divider\",\n \"video-embed\",\n \"undo\",\n \"redo\",\n \"table\",\n \"callout\",\n];\n\nexport const DEFAULT_EDITOR_PROPS = {\n isMenuIndependent: true,\n addons: [],\n size: \"medium\",\n};\n\nexport const IMAGE_UPLOAD_CONFIG = {\n maxImageSize: 1,\n allowedImageTypes: {\n \"image/jpg\": [\".jpg\", \".jpeg\"],\n \"image/png\": [\".png\"],\n \"image/svg\": [\".svg\"],\n },\n};\n","import { useCallback } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\n\nconst useEditor = ({\n onContentChange,\n editorContentFieldName,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n}) => {\n const { setFieldValue, errors } = useFormikContext();\n\n const handleContentChange = useCallback(\n content => {\n setFieldValue(editorContentFieldName, content);\n onContentChange?.(content);\n },\n [editorContentFieldName, onContentChange, setFieldValue]\n );\n\n const handleAttachmentChange = useCallback(\n attachments => {\n setFieldValue(\"attachments\", attachments);\n onAttachmentChange?.(attachments);\n },\n [onAttachmentChange, setFieldValue]\n );\n\n const handleTitleChange = event => {\n const title = event.target.value;\n setFieldValue(titleFieldName, title);\n onTitleChange?.(title);\n };\n\n const handleEditorBackspaceKeypress = () => {\n const editor = editorRef.current?.editor;\n const selection = editor?.state?.selection;\n if (\n editor?.isFocused &&\n isPresent(titleRef.current) &&\n selection?.anchor === 1\n ) {\n const title = titleRef.current.value;\n titleRef.current.focus();\n titleRef.current.setSelectionRange(title?.length, title?.length);\n }\n };\n\n const titleHotkeyRef = useHotkeys(\n \"return\",\n () => {\n editorRef.current?.editor?.commands?.insertContentAt(0, \"<p />\");\n editorRef.current?.editor?.commands?.focus(\"start\");\n },\n { mode: \"scoped\" }\n );\n\n const editorHotkeyRef = useHotkeys(\n \"backspace\",\n handleEditorBackspaceKeypress,\n { mode: \"scoped\" }\n );\n\n return {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n };\n};\n\nexport default useEditor;\n","import { Spinner } from \"@bigbinary/neeto-atoms\";\nimport { useFormikContext } from \"formik\";\nimport { ImageUploader } from \"neetoimageuploader\";\nimport { isEmpty } from \"ramda\";\n\nimport { IMAGE_UPLOAD_CONFIG } from \"./constants\";\n\nconst MediaUploader = ({ setIsThumbnailImageModalOpen }) => {\n const {\n values: { thumbnailImageUrl },\n setFieldValue,\n initialValues,\n submitForm,\n } = useFormikContext();\n\n const handleUpload = file => {\n const { url, signedId } = file;\n setFieldValue(\"thumbnailImage\", signedId);\n setFieldValue(\"thumbnailImageUrl\", url);\n setTimeout(() => {\n setIsThumbnailImageModalOpen(false);\n submitForm();\n });\n };\n\n if (isEmpty(initialValues)) {\n return <Spinner />;\n }\n\n return (\n <ImageUploader\n className=\"h-auto w-full\"\n key={thumbnailImageUrl}\n src={thumbnailImageUrl}\n uploadConfig={IMAGE_UPLOAD_CONFIG}\n onUploadComplete={handleUpload}\n />\n );\n};\n\nexport default MediaUploader;\n","import { t } from \"i18next\";\nimport { Image } from \"lucide-react\";\n\nexport const getThumbnailAddon = command => ({\n label: t(\"neetoMolecules.documentEditor.thumbnailImage\"),\n optionName: \"thumbnail-image\",\n command,\n icon: Image,\n isEnabled: true,\n \"data-testid\": \"thumbnail-image-addon\",\n});\n","import { memo, useCallback, useMemo, useRef, useState } from \"react\";\n\nimport { Dialog, DropdownMenu } from \"@bigbinary/neeto-atoms\";\nimport { Textarea as FormikTextarea } from \"@bigbinary/neeto-atoms/formik\";\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Ellipsis } from \"lucide-react\";\nimport { noop } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport PropTypes from \"prop-types\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_EDITOR_PROPS, EDITOR_ADDONS } from \"./constants\";\nimport \"./editor.css\";\nimport useEditor from \"./hooks/useEditor\";\nimport MediaUploader from \"./MediaUploader\";\nimport { getThumbnailAddon } from \"./utils\";\n\nconst Editor = ({\n attachments,\n onContentChange,\n onAttachmentChange,\n onTitleChange,\n getTitleRef = noop,\n getEditorRef = noop,\n menuClassName,\n editorContentFieldName = \"htmlContent\",\n titleFieldName = \"title\",\n editorProps: customEditorProps = {},\n titleProps = {},\n hasThumbnailImage = false,\n children,\n}) => {\n const { t } = useTranslation();\n const { values, setFieldValue, submitForm } = useFormikContext();\n const { thumbnailImageUrl } = values;\n\n const titleRef = useRef();\n const editorRef = useRef();\n const [isThumbnailImageModalOpen, setIsThumbnailImageModalOpen] =\n useState(false);\n\n const editorProps = useMemo(() => {\n const baseProps = mergeRight(DEFAULT_EDITOR_PROPS, customEditorProps);\n\n if (!hasThumbnailImage) return baseProps;\n\n const thumbnailAddon = getThumbnailAddon(() =>\n setIsThumbnailImageModalOpen(true)\n );\n\n return mergeRight(baseProps, { addonCommands: [thumbnailAddon] });\n }, [customEditorProps, hasThumbnailImage]);\n\n const {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n } = useEditor({\n onContentChange,\n editorContentFieldName,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n });\n\n const setTitleRef = node => {\n titleHotkeyRef.current = node;\n getTitleRef(node);\n titleRef.current = node;\n };\n\n const setEditorRef = useCallback(node => {\n editorRef.current = node;\n getEditorRef(node);\n }, []);\n\n const addons = useMemo(\n () => EDITOR_ADDONS.concat(editorProps.addons || []),\n [editorProps.addons]\n );\n\n const handleTab = () => {\n const isListActive =\n editorRef.current?.editor?.isActive(\"orderedList\") ||\n editorRef.current?.editor?.isActive(\"bulletList\");\n\n if (isListActive) {\n editorRef.current?.editor?.commands?.sinkListItem(\"listItem\");\n\n return true;\n }\n\n return true;\n };\n\n const handleDeleteThumbnail = () => {\n setFieldValue(\"thumbnailImage\", \"\");\n setFieldValue(\"thumbnailImageUrl\", \"\");\n setTimeout(submitForm);\n };\n\n return (\n <div\n className=\"nm-document-editor__wrapper\"\n data-testid=\"document-editor-container\"\n ref={editorHotkeyRef}\n >\n <FormikEditor\n attachmentsClassName=\"editor-content-attachments w-full flex-shrink-0\"\n className=\"h-full w-full\"\n contentClassName=\"editor-content__wrapper nm-document-editor__container\"\n data-testid=\"neeto-molecules-document-content-text-area\"\n error={undefined}\n errorWrapperClassName=\"w-full min-h-full flex flex-col items-center\"\n hideSlashCommands={false}\n menuClassName={classNames(\"nm-document-editor__menubar\", menuClassName)}\n name={editorContentFieldName}\n ref={setEditorRef}\n {...{ attachments, ...editorProps, addons }}\n contentWrapperClassName=\"w-full flex flex-col flex-grow\"\n keyboardShortcuts={{ Tab: handleTab, ...editorProps.keyboardShortcuts }}\n onChange={handleContentChange}\n onChangeAttachments={handleAttachmentChange}\n >\n {children}\n <div className=\"nm-document-editor__container px-6\">\n <FormikTextarea\n nakedTextarea\n className=\"nm-document-editor__title\"\n data-testid=\"neeto-molecules-document-title-text-field\"\n name={titleFieldName}\n ref={setTitleRef}\n rows={1}\n placeholder={\n titleProps.placeholder || t(\"neetoMolecules.documentEditor.title\")\n }\n onChange={handleTitleChange}\n onKeyDown={e =>\n e.key === \"Enter\" && !e.shiftKey && e.preventDefault()\n }\n {...titleProps}\n />\n {thumbnailImageUrl && (\n <div className=\"group relative mt-4\">\n <div className=\"nm-document-editor__thumbnail\">\n <img alt=\"Cover\" src={thumbnailImageUrl} />\n </div>\n <div className=\"absolute end-2 top-2\">\n <DropdownMenu\n buttonProps={{ variant: \"secondary\", size: \"icon-sm\" }}\n icon={Ellipsis}\n >\n <DropdownMenu.MenuItem onClick={handleDeleteThumbnail}>\n {t(\"neetoMolecules.documentEditor.delete\")}\n </DropdownMenu.MenuItem>\n </DropdownMenu>\n </div>\n </div>\n )}\n {errors[editorContentFieldName] && (\n <p\n className=\"text-destructive nm-document-editor__error text-sm font-normal\"\n data-slot=\"field-error\"\n data-testid=\"articles-content-input-error\"\n role=\"alert\"\n >\n {errors[editorContentFieldName]}\n </p>\n )}\n </div>\n </FormikEditor>\n <Dialog\n data-testid=\"thumbnail-image-modal\"\n isOpen={isThumbnailImageModalOpen}\n size=\"medium\"\n onClose={() => setIsThumbnailImageModalOpen(false)}\n >\n <Dialog.Header>\n <Dialog.Title>\n {t(\"neetoMolecules.documentEditor.uploadThumbnailImage\")}\n </Dialog.Title>\n </Dialog.Header>\n <Dialog.Body>\n <MediaUploader {...{ setIsThumbnailImageModalOpen }} />\n </Dialog.Body>\n </Dialog>\n </div>\n );\n};\n\nEditor.propTypes = {\n attachments: PropTypes.arrayOf(\n PropTypes.shape({\n contentType: PropTypes.string,\n filename: PropTypes.string,\n signedId: PropTypes.string,\n url: PropTypes.string,\n })\n ),\n onContentChange: PropTypes.func,\n onAttachmentChange: PropTypes.func,\n onTitleChange: PropTypes.func,\n getTitleRef: PropTypes.func,\n getEditorRef: PropTypes.func,\n editorContentFieldName: PropTypes.string,\n titleFieldName: PropTypes.string,\n editorProps: PropTypes.object,\n titleProps: PropTypes.object,\n menuClassName: PropTypes.string,\n children: PropTypes.node,\n hasThumbnailImage: PropTypes.bool,\n};\n\nEditor.displayName = \"DocumentEditor\";\n\nexport default memo(Editor);\n"],"names":["EDITOR_ADDONS","DEFAULT_EDITOR_PROPS","isMenuIndependent","addons","size","IMAGE_UPLOAD_CONFIG","maxImageSize","allowedImageTypes","useEditor","_ref","onContentChange","editorContentFieldName","onAttachmentChange","onTitleChange","titleFieldName","editorRef","titleRef","_useFormikContext","useFormikContext","setFieldValue","errors","handleContentChange","useCallback","content","handleAttachmentChange","attachments","handleTitleChange","event","title","target","value","handleEditorBackspaceKeypress","_editorRef$current","_editor$state","editor","current","selection","state","isFocused","isPresent","anchor","focus","setSelectionRange","length","titleHotkeyRef","useHotkeys","_editorRef$current2","_editorRef$current3","commands","insertContentAt","mode","editorHotkeyRef","MediaUploader","setIsThumbnailImageModalOpen","thumbnailImageUrl","values","initialValues","submitForm","handleUpload","file","url","signedId","setTimeout","isEmpty","_jsx","Spinner","ImageUploader","className","src","uploadConfig","onUploadComplete","getThumbnailAddon","command","label","t","optionName","icon","Image","isEnabled","Editor","_ref$getTitleRef","getTitleRef","noop","_ref$getEditorRef","getEditorRef","menuClassName","_ref$editorContentFie","_ref$titleFieldName","_ref$editorProps","editorProps","customEditorProps","_ref$titleProps","titleProps","_ref$hasThumbnailImag","hasThumbnailImage","children","_useTranslation","useTranslation","useRef","_useState","useState","_useState2","_slicedToArray","isThumbnailImageModalOpen","useMemo","baseProps","mergeRight","thumbnailAddon","addonCommands","_useEditor","setTitleRef","node","setEditorRef","concat","handleTab","isListActive","isActive","sinkListItem","handleDeleteThumbnail","_jsxs","ref","FormikEditor","_objectSpread","attachmentsClassName","contentClassName","error","undefined","errorWrapperClassName","hideSlashCommands","classNames","name","contentWrapperClassName","keyboardShortcuts","Tab","onChange","onChangeAttachments","FormikTextarea","nakedTextarea","rows","placeholder","onKeyDown","e","key","shiftKey","preventDefault","alt","DropdownMenu","buttonProps","variant","Ellipsis","MenuItem","onClick","role","Dialog","isOpen","onClose","Header","Title","Body","displayName","memo"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import { Button } from '@bigbinary/neeto-atoms';
|
|
5
|
+
import { Popover, PopoverTrigger, PopoverContent } from '@bigbinary/neeto-atoms/primitives';
|
|
6
|
+
import { useTranslation } from 'react-i18next';
|
|
7
|
+
import { Picker } from 'emoji-mart';
|
|
8
|
+
import { useQuery } from '@tanstack/react-query';
|
|
9
|
+
import axios from 'axios';
|
|
10
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
11
|
+
import { c as createLucideIcon } from '../createLucideIcon-mNMhCCpf.js';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @license lucide-react v1.7.0 - ISC
|
|
15
|
+
*
|
|
16
|
+
* This source code is licensed under the ISC license.
|
|
17
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
const __iconNode = [
|
|
22
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
23
|
+
["path", { d: "M8 14s1.5 2 4 2 4-2 4-2", key: "1y1vjs" }],
|
|
24
|
+
["line", { x1: "9", x2: "9.01", y1: "9", y2: "9", key: "yxxnd0" }],
|
|
25
|
+
["line", { x1: "15", x2: "15.01", y1: "9", y2: "9", key: "1p4y9e" }]
|
|
26
|
+
];
|
|
27
|
+
const Smile = createLucideIcon("smile", __iconNode);
|
|
28
|
+
|
|
29
|
+
var fetch = function fetch() {
|
|
30
|
+
return axios.get("https://cdn.jsdelivr.net/npm/@emoji-mart/data");
|
|
31
|
+
};
|
|
32
|
+
var emojiPickerApi = {
|
|
33
|
+
fetch: fetch
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var QUERY_KEYS = {
|
|
37
|
+
EMOJI_DATA: "emoji-data"
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
var useEmojiData = function useEmojiData() {
|
|
41
|
+
return useQuery({
|
|
42
|
+
queryKey: [QUERY_KEYS.EMOJI_DATA],
|
|
43
|
+
queryFn: emojiPickerApi.fetch
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
var EmojiPickerMenu = function EmojiPickerMenu(_ref) {
|
|
48
|
+
var onEmojiSelect = _ref.onEmojiSelect;
|
|
49
|
+
var _useEmojiData = useEmojiData(),
|
|
50
|
+
data = _useEmojiData.data;
|
|
51
|
+
var _useTranslation = useTranslation(),
|
|
52
|
+
t = _useTranslation.t;
|
|
53
|
+
var createPicker = function createPicker(ref) {
|
|
54
|
+
new Picker({
|
|
55
|
+
autoFocus: true,
|
|
56
|
+
data: data,
|
|
57
|
+
"native": true,
|
|
58
|
+
onEmojiSelect: onEmojiSelect,
|
|
59
|
+
previewPosition: "none",
|
|
60
|
+
ref: {
|
|
61
|
+
current: ref
|
|
62
|
+
},
|
|
63
|
+
skinTonePosition: "none",
|
|
64
|
+
style: {
|
|
65
|
+
maxWidth: "100%"
|
|
66
|
+
},
|
|
67
|
+
theme: "light"
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
return /*#__PURE__*/jsx("div", {
|
|
71
|
+
"aria-label": t("neetoMolecules.common.emojiPicker"),
|
|
72
|
+
ref: createPicker,
|
|
73
|
+
role: "dialog",
|
|
74
|
+
style: {
|
|
75
|
+
minWidth: "350px"
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
81
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
82
|
+
var EmojiPicker = function EmojiPicker(_ref) {
|
|
83
|
+
var onSelect = _ref.onSelect,
|
|
84
|
+
dropdownProps = _ref.dropdownProps,
|
|
85
|
+
_ref$defaultOpen = _ref.defaultOpen,
|
|
86
|
+
defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen;
|
|
87
|
+
var _useTranslation = useTranslation(),
|
|
88
|
+
t = _useTranslation.t;
|
|
89
|
+
var _useState = useState(defaultOpen),
|
|
90
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
91
|
+
isOpen = _useState2[0],
|
|
92
|
+
setIsOpen = _useState2[1];
|
|
93
|
+
var onEmojiClick = function onEmojiClick(emoji) {
|
|
94
|
+
setIsOpen(false);
|
|
95
|
+
onSelect(emoji);
|
|
96
|
+
};
|
|
97
|
+
return /*#__PURE__*/jsxs(Popover, {
|
|
98
|
+
open: isOpen,
|
|
99
|
+
onOpenChange: setIsOpen,
|
|
100
|
+
children: [/*#__PURE__*/jsx(PopoverTrigger, {
|
|
101
|
+
asChild: true,
|
|
102
|
+
children: /*#__PURE__*/jsx(Button, {
|
|
103
|
+
"aria-haspopup": "dialog",
|
|
104
|
+
"aria-label": t("neetoMolecules.common.emojiPicker"),
|
|
105
|
+
"data-testid": "emoji-picker-dropdown-icon",
|
|
106
|
+
icon: Smile,
|
|
107
|
+
size: "icon-sm",
|
|
108
|
+
variant: "ghost"
|
|
109
|
+
})
|
|
110
|
+
}), /*#__PURE__*/jsx(PopoverContent, _objectSpread(_objectSpread({
|
|
111
|
+
align: "start",
|
|
112
|
+
className: "w-fit overflow-x-hidden p-0",
|
|
113
|
+
side: "bottom"
|
|
114
|
+
}, dropdownProps), {}, {
|
|
115
|
+
children: /*#__PURE__*/jsx(EmojiPickerMenu, {
|
|
116
|
+
onEmojiSelect: onEmojiClick
|
|
117
|
+
})
|
|
118
|
+
}))]
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export { EmojiPicker as default };
|
|
123
|
+
//# sourceMappingURL=EmojiPicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmojiPicker.js","sources":["../../node_modules/lucide-react/dist/esm/icons/smile.js","../../src/v2/components/EmojiPicker/api.js","../../src/v2/components/EmojiPicker/constants.js","../../src/v2/components/EmojiPicker/hooks/useEmojiData.js","../../src/v2/components/EmojiPicker/EmojiPickerMenu.jsx","../../src/v2/components/EmojiPicker/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.7.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.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M8 14s1.5 2 4 2 4-2 4-2\", key: \"1y1vjs\" }],\n [\"line\", { x1: \"9\", x2: \"9.01\", y1: \"9\", y2: \"9\", key: \"yxxnd0\" }],\n [\"line\", { x1: \"15\", x2: \"15.01\", y1: \"9\", y2: \"9\", key: \"1p4y9e\" }]\n];\nconst Smile = createLucideIcon(\"smile\", __iconNode);\n\nexport { __iconNode, Smile as default };\n//# sourceMappingURL=smile.js.map\n","import axios from \"axios\";\n\nconst fetch = () => axios.get(\"https://cdn.jsdelivr.net/npm/@emoji-mart/data\");\n\nconst emojiPickerApi = { fetch };\n\nexport default emojiPickerApi;\n","export const QUERY_KEYS = { EMOJI_DATA: \"emoji-data\" };\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport emojiPickerApi from \"../api\";\nimport { QUERY_KEYS } from \"../constants\";\n\nexport const useEmojiData = () =>\n useQuery({\n queryKey: [QUERY_KEYS.EMOJI_DATA],\n queryFn: emojiPickerApi.fetch,\n });\n","import { Picker } from \"emoji-mart\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useEmojiData } from \"./hooks/useEmojiData\";\n\nconst EmojiPickerMenu = ({ onEmojiSelect }) => {\n const { data } = useEmojiData();\n const { t } = useTranslation();\n\n const createPicker = ref => {\n new Picker({\n autoFocus: true,\n data,\n native: true,\n onEmojiSelect,\n previewPosition: \"none\",\n ref: { current: ref },\n skinTonePosition: \"none\",\n style: { maxWidth: \"100%\" },\n theme: \"light\",\n });\n };\n\n return (\n <div\n aria-label={t(\"neetoMolecules.common.emojiPicker\")}\n ref={createPicker}\n role=\"dialog\"\n style={{ minWidth: \"350px\" }}\n />\n );\n};\n\nEmojiPickerMenu.propTypes = { onEmojiSelect: PropTypes.func };\n\nexport default EmojiPickerMenu;\n","import { useState } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { Smile } from \"lucide-react\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmojiPickerMenu from \"./EmojiPickerMenu\";\n\nconst EmojiPicker = ({ onSelect, dropdownProps, defaultOpen = false }) => {\n const { t } = useTranslation();\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n const onEmojiClick = emoji => {\n setIsOpen(false);\n onSelect(emoji);\n };\n\n return (\n <Popover open={isOpen} onOpenChange={setIsOpen}>\n <PopoverTrigger asChild>\n <Button\n aria-haspopup=\"dialog\"\n aria-label={t(\"neetoMolecules.common.emojiPicker\")}\n data-testid=\"emoji-picker-dropdown-icon\"\n icon={Smile}\n size=\"icon-sm\"\n variant=\"ghost\"\n />\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-fit overflow-x-hidden p-0\"\n side=\"bottom\"\n {...dropdownProps}\n >\n <EmojiPickerMenu onEmojiSelect={onEmojiClick} />\n </PopoverContent>\n </Popover>\n );\n};\n\nEmojiPicker.propTypes = {\n /**\n * Function called when an emoji is selected. Receives the selected\n * emoji-mart object: `{ native, id, name, unified, ... }`.\n */\n onSelect: PropTypes.func.isRequired,\n /**\n * Props forwarded to atoms `PopoverContent` (Radix-based). Accepts\n * `align`, `side`, `sideOffset`, `alignOffset`, `collisionPadding`,\n * `className`, etc. Note: v1's `strategy: \"fixed\"` is no longer\n * supported (Radix manages positioning internally via Floating UI).\n */\n dropdownProps: PropTypes.object,\n /**\n * Initial open state. The component then manages its own open state.\n * For fully controlled behavior, lift state up and re-render with this\n * prop changed (currently treated as initial value only).\n */\n defaultOpen: PropTypes.bool,\n};\n\nexport default EmojiPicker;\n"],"names":["fetch","axios","get","emojiPickerApi","QUERY_KEYS","EMOJI_DATA","useEmojiData","useQuery","queryKey","queryFn","EmojiPickerMenu","_ref","onEmojiSelect","_useEmojiData","data","_useTranslation","useTranslation","t","createPicker","ref","Picker","autoFocus","previewPosition","current","skinTonePosition","style","maxWidth","theme","_jsx","role","minWidth","EmojiPicker","onSelect","dropdownProps","_ref$defaultOpen","defaultOpen","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","onEmojiClick","emoji","_jsxs","Popover","open","onOpenChange","children","PopoverTrigger","asChild","Button","icon","Smile","size","variant","PopoverContent","_objectSpread","align","className","side"],"mappings":"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","x_google_ignoreList":[0]}
|