@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.
Files changed (166) hide show
  1. package/dist/{Columns-DpeV3Jzz.js → Columns-gR00LMKF.js} +2 -2
  2. package/dist/Columns-gR00LMKF.js.map +1 -0
  3. package/dist/{ConfigureView-B0UvLoJe.js → ConfigureView-CG1M2-3b.js} +4 -15
  4. package/dist/ConfigureView-CG1M2-3b.js.map +1 -0
  5. package/dist/check-DvxzqR83.js +15 -0
  6. package/dist/check-DvxzqR83.js.map +1 -0
  7. package/dist/chevron-down-BMerqYpK.js +15 -0
  8. package/dist/chevron-down-BMerqYpK.js.map +1 -0
  9. package/dist/chevron-left-BTVCxPw8.js +15 -0
  10. package/dist/chevron-left-BTVCxPw8.js.map +1 -0
  11. package/dist/cjs/{Columns-C2ke8N58.js → Columns-Brpr2a_M.js} +2 -2
  12. package/dist/cjs/Columns-Brpr2a_M.js.map +1 -0
  13. package/dist/cjs/{ConfigureView-Coy1ViRc.js → ConfigureView-BVRHqVpb.js} +5 -16
  14. package/dist/cjs/ConfigureView-BVRHqVpb.js.map +1 -0
  15. package/dist/cjs/check-VgZf0qTr.js +17 -0
  16. package/dist/cjs/check-VgZf0qTr.js.map +1 -0
  17. package/dist/cjs/chevron-down-DwiliwN1.js +17 -0
  18. package/dist/cjs/chevron-down-DwiliwN1.js.map +1 -0
  19. package/dist/cjs/chevron-left-DWN80ILn.js +17 -0
  20. package/dist/cjs/chevron-left-DWN80ILn.js.map +1 -0
  21. package/dist/cjs/{useKeyboardShortcutsPaneState-BG_xVteC.js → useKeyboardShortcutsPaneState-DZUnpw9v.js} +2 -2
  22. package/dist/cjs/useKeyboardShortcutsPaneState-DZUnpw9v.js.map +1 -0
  23. package/dist/cjs/v2/AuditLogs.js +8 -8
  24. package/dist/cjs/v2/AuditLogs.js.map +1 -1
  25. package/dist/cjs/v2/BoardView.js +427 -0
  26. package/dist/cjs/v2/BoardView.js.map +1 -0
  27. package/dist/cjs/v2/Breadcrumbs.js +2 -2
  28. package/dist/cjs/v2/Breadcrumbs.js.map +1 -1
  29. package/dist/cjs/v2/CalendarView.js +429 -0
  30. package/dist/cjs/v2/CalendarView.js.map +1 -0
  31. package/dist/cjs/v2/Columns.js +2 -2
  32. package/dist/cjs/v2/ConfigurePageSidebar.js +4 -3
  33. package/dist/cjs/v2/ConfigurePageSidebar.js.map +1 -1
  34. package/dist/cjs/v2/CopyToClipboardButton.js +3 -13
  35. package/dist/cjs/v2/CopyToClipboardButton.js.map +1 -1
  36. package/dist/cjs/v2/DateFormat.js +42 -0
  37. package/dist/cjs/v2/DateFormat.js.map +1 -0
  38. package/dist/cjs/v2/DocumentEditor.js +329 -0
  39. package/dist/cjs/v2/DocumentEditor.js.map +1 -0
  40. package/dist/cjs/v2/EmojiPicker.js +125 -0
  41. package/dist/cjs/v2/EmojiPicker.js.map +1 -0
  42. package/dist/cjs/v2/Engagements.js +283 -0
  43. package/dist/cjs/v2/Engagements.js.map +1 -0
  44. package/dist/cjs/v2/ErrorPage.js +1 -1
  45. package/dist/cjs/v2/ErrorPage.js.map +1 -1
  46. package/dist/cjs/v2/FileUpload.js +644 -0
  47. package/dist/cjs/v2/FileUpload.js.map +1 -0
  48. package/dist/cjs/v2/FinderModal.js +253 -0
  49. package/dist/cjs/v2/FinderModal.js.map +1 -0
  50. package/dist/cjs/v2/FloatingActionMenu.js +11 -9
  51. package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
  52. package/dist/cjs/v2/Header.js +6 -6
  53. package/dist/cjs/v2/InlineInput.js +293 -0
  54. package/dist/cjs/v2/InlineInput.js.map +1 -0
  55. package/dist/cjs/v2/KeyboardShortcuts.js +3 -3
  56. package/dist/cjs/v2/KeyboardShortcuts.js.map +1 -1
  57. package/dist/cjs/v2/LoginPage.js +1 -1
  58. package/dist/cjs/v2/LoginPage.js.map +1 -1
  59. package/dist/cjs/v2/MenuBar.js +2 -2
  60. package/dist/cjs/v2/MenuBar.js.map +1 -1
  61. package/dist/cjs/v2/MoreDropdown.js +1 -1
  62. package/dist/cjs/v2/MoreDropdown.js.map +1 -1
  63. package/dist/cjs/v2/NavigationHeader.js +328 -0
  64. package/dist/cjs/v2/NavigationHeader.js.map +1 -0
  65. package/dist/cjs/v2/PublishBlock.js +414 -0
  66. package/dist/cjs/v2/PublishBlock.js.map +1 -0
  67. package/dist/cjs/v2/Rename.js +350 -0
  68. package/dist/cjs/v2/Rename.js.map +1 -0
  69. package/dist/cjs/v2/Scrollable.js +37 -0
  70. package/dist/cjs/v2/Scrollable.js.map +1 -0
  71. package/dist/cjs/v2/Search.js +5 -5
  72. package/dist/cjs/v2/Search.js.map +1 -1
  73. package/dist/cjs/v2/Settings.js +6 -6
  74. package/dist/cjs/v2/Settings.js.map +1 -1
  75. package/dist/cjs/v2/Sidebar.js +8 -7
  76. package/dist/cjs/v2/Sidebar.js.map +1 -1
  77. package/dist/cjs/v2/StickyRibbonsContainer.js +4 -4
  78. package/dist/cjs/v2/StickyRibbonsContainer.js.map +1 -1
  79. package/dist/cjs/v2/SubHeader.js +3 -3
  80. package/dist/cjs/v2/SubHeader.js.map +1 -1
  81. package/dist/cjs/v2/TimeFormat.js +15 -0
  82. package/dist/cjs/v2/TimeFormat.js.map +1 -0
  83. package/dist/{useKeyboardShortcutsPaneState-dNIbb_PI.js → useKeyboardShortcutsPaneState-BlyFMEtW.js} +2 -2
  84. package/dist/useKeyboardShortcutsPaneState-BlyFMEtW.js.map +1 -0
  85. package/dist/v2/AuditLogs.js +8 -8
  86. package/dist/v2/AuditLogs.js.map +1 -1
  87. package/dist/v2/BoardView.js +425 -0
  88. package/dist/v2/BoardView.js.map +1 -0
  89. package/dist/v2/Breadcrumbs.js +2 -2
  90. package/dist/v2/Breadcrumbs.js.map +1 -1
  91. package/dist/v2/CalendarView.js +427 -0
  92. package/dist/v2/CalendarView.js.map +1 -0
  93. package/dist/v2/Columns.js +2 -2
  94. package/dist/v2/ConfigurePageSidebar.js +4 -3
  95. package/dist/v2/ConfigurePageSidebar.js.map +1 -1
  96. package/dist/v2/CopyToClipboardButton.js +2 -12
  97. package/dist/v2/CopyToClipboardButton.js.map +1 -1
  98. package/dist/v2/DateFormat.js +40 -0
  99. package/dist/v2/DateFormat.js.map +1 -0
  100. package/dist/v2/DocumentEditor.js +327 -0
  101. package/dist/v2/DocumentEditor.js.map +1 -0
  102. package/dist/v2/EmojiPicker.js +123 -0
  103. package/dist/v2/EmojiPicker.js.map +1 -0
  104. package/dist/v2/Engagements.js +281 -0
  105. package/dist/v2/Engagements.js.map +1 -0
  106. package/dist/v2/ErrorPage.js +1 -1
  107. package/dist/v2/ErrorPage.js.map +1 -1
  108. package/dist/v2/FileUpload.js +641 -0
  109. package/dist/v2/FileUpload.js.map +1 -0
  110. package/dist/v2/FinderModal.js +251 -0
  111. package/dist/v2/FinderModal.js.map +1 -0
  112. package/dist/v2/FloatingActionMenu.js +11 -9
  113. package/dist/v2/FloatingActionMenu.js.map +1 -1
  114. package/dist/v2/Header.js +6 -6
  115. package/dist/v2/InlineInput.js +290 -0
  116. package/dist/v2/InlineInput.js.map +1 -0
  117. package/dist/v2/KeyboardShortcuts.js +3 -3
  118. package/dist/v2/KeyboardShortcuts.js.map +1 -1
  119. package/dist/v2/LoginPage.js +1 -1
  120. package/dist/v2/LoginPage.js.map +1 -1
  121. package/dist/v2/MenuBar.js +2 -2
  122. package/dist/v2/MenuBar.js.map +1 -1
  123. package/dist/v2/MoreDropdown.js +1 -1
  124. package/dist/v2/MoreDropdown.js.map +1 -1
  125. package/dist/v2/NavigationHeader.js +326 -0
  126. package/dist/v2/NavigationHeader.js.map +1 -0
  127. package/dist/v2/PublishBlock.js +412 -0
  128. package/dist/v2/PublishBlock.js.map +1 -0
  129. package/dist/v2/Rename.js +348 -0
  130. package/dist/v2/Rename.js.map +1 -0
  131. package/dist/v2/Scrollable.js +35 -0
  132. package/dist/v2/Scrollable.js.map +1 -0
  133. package/dist/v2/Search.js +5 -5
  134. package/dist/v2/Search.js.map +1 -1
  135. package/dist/v2/Settings.js +6 -6
  136. package/dist/v2/Settings.js.map +1 -1
  137. package/dist/v2/Sidebar.js +8 -7
  138. package/dist/v2/Sidebar.js.map +1 -1
  139. package/dist/v2/StickyRibbonsContainer.js +4 -4
  140. package/dist/v2/StickyRibbonsContainer.js.map +1 -1
  141. package/dist/v2/SubHeader.js +3 -3
  142. package/dist/v2/SubHeader.js.map +1 -1
  143. package/dist/v2/TimeFormat.js +13 -0
  144. package/dist/v2/TimeFormat.js.map +1 -0
  145. package/package.json +5 -5
  146. package/src/translations/en.json +4 -2
  147. package/types/v2/BoardView.d.ts +27 -0
  148. package/types/v2/CalendarView.d.ts +40 -0
  149. package/types/v2/DateFormat.d.ts +19 -0
  150. package/types/v2/DocumentEditor.d.ts +20 -0
  151. package/types/v2/EmojiPicker.d.ts +14 -0
  152. package/types/v2/Engagements.d.ts +50 -0
  153. package/types/v2/FileUpload.d.ts +30 -0
  154. package/types/v2/FinderModal.d.ts +24 -0
  155. package/types/v2/InlineInput.d.ts +28 -0
  156. package/types/v2/NavigationHeader.d.ts +80 -0
  157. package/types/v2/PublishBlock.d.ts +39 -0
  158. package/types/v2/Rename.d.ts +33 -0
  159. package/types/v2/Scrollable.d.ts +15 -0
  160. package/types/v2/TimeFormat.d.ts +17 -0
  161. package/dist/Columns-DpeV3Jzz.js.map +0 -1
  162. package/dist/ConfigureView-B0UvLoJe.js.map +0 -1
  163. package/dist/cjs/Columns-C2ke8N58.js.map +0 -1
  164. package/dist/cjs/ConfigureView-Coy1ViRc.js.map +0 -1
  165. package/dist/cjs/useKeyboardShortcutsPaneState-BG_xVteC.js.map +0 -1
  166. 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]}