authscape 1.0.740 → 1.0.744

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/index.js CHANGED
@@ -15,7 +15,6 @@ var _router = _interopRequireDefault(require("next/router"));
15
15
  var _ga4React = _interopRequireDefault(require("ga-4-react"));
16
16
  var _zustand = require("zustand");
17
17
  var _reactMicrosoftClarity = require("react-microsoft-clarity");
18
- var _authscape = require("authscape");
19
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
20
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
@@ -305,7 +304,7 @@ function AuthScapeApp(_ref) {
305
304
  // ----- Enforce login (client) -----
306
305
  (0, _react.useEffect)(function () {
307
306
  if (enforceLoggedIn && pathname !== "/signin-oidc" && frontEndLoadedState && !signedInUserState) {
308
- (0, _authscape.authService)().login();
307
+ authService().login();
309
308
  }
310
309
  }, [signedInUserState, enforceLoggedIn, frontEndLoadedState, pathname]);
311
310
 
@@ -2639,6 +2638,466 @@ var GoogleMapsAutoComplete = exports.GoogleMapsAutoComplete = function GoogleMap
2639
2638
  };
2640
2639
  "use strict";
2641
2640
 
2641
+ Object.defineProperty(exports, "__esModule", {
2642
+ value: true
2643
+ });
2644
+ exports.LexicalEditor = LexicalEditor;
2645
+ var _react = _interopRequireWildcard(require("react"));
2646
+ var _LexicalComposer = require("@lexical/react/LexicalComposer");
2647
+ var _LexicalRichTextPlugin = require("@lexical/react/LexicalRichTextPlugin");
2648
+ var _LexicalContentEditable = require("@lexical/react/LexicalContentEditable");
2649
+ var _LexicalHistoryPlugin = require("@lexical/react/LexicalHistoryPlugin");
2650
+ var _LexicalOnChangePlugin = require("@lexical/react/LexicalOnChangePlugin");
2651
+ var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
2652
+ var _LexicalErrorBoundary = require("@lexical/react/LexicalErrorBoundary");
2653
+ var _LexicalListPlugin = require("@lexical/react/LexicalListPlugin");
2654
+ var _LexicalLinkPlugin = require("@lexical/react/LexicalLinkPlugin");
2655
+ var _html = require("@lexical/html");
2656
+ var _lexical = require("lexical");
2657
+ var _selection = require("@lexical/selection");
2658
+ var _richText = require("@lexical/rich-text");
2659
+ var _list = require("@lexical/list");
2660
+ var _link = require("@lexical/link");
2661
+ var _code = require("@lexical/code");
2662
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
2663
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
2664
+ var _Divider = _interopRequireDefault(require("@mui/material/Divider"));
2665
+ var _Select = _interopRequireDefault(require("@mui/material/Select"));
2666
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
2667
+ var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
2668
+ var _FormatBold = _interopRequireDefault(require("@mui/icons-material/FormatBold"));
2669
+ var _FormatItalic = _interopRequireDefault(require("@mui/icons-material/FormatItalic"));
2670
+ var _FormatUnderlined = _interopRequireDefault(require("@mui/icons-material/FormatUnderlined"));
2671
+ var _StrikethroughS = _interopRequireDefault(require("@mui/icons-material/StrikethroughS"));
2672
+ var _FormatListBulleted = _interopRequireDefault(require("@mui/icons-material/FormatListBulleted"));
2673
+ var _FormatListNumbered = _interopRequireDefault(require("@mui/icons-material/FormatListNumbered"));
2674
+ var _FormatQuote = _interopRequireDefault(require("@mui/icons-material/FormatQuote"));
2675
+ var _Code = _interopRequireDefault(require("@mui/icons-material/Code"));
2676
+ var _Link = _interopRequireDefault(require("@mui/icons-material/Link"));
2677
+ var _LinkOff = _interopRequireDefault(require("@mui/icons-material/LinkOff"));
2678
+ var _Undo = _interopRequireDefault(require("@mui/icons-material/Undo"));
2679
+ var _Redo = _interopRequireDefault(require("@mui/icons-material/Redo"));
2680
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
2681
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
2682
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
2683
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2684
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2685
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
2686
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
2687
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2688
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
2689
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
2690
+ 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; }
2691
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).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; }
2692
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2693
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
2694
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
2695
+ var theme = {
2696
+ paragraph: 'lexical-paragraph',
2697
+ quote: 'lexical-quote',
2698
+ heading: {
2699
+ h1: 'lexical-h1',
2700
+ h2: 'lexical-h2',
2701
+ h3: 'lexical-h3',
2702
+ h4: 'lexical-h4',
2703
+ h5: 'lexical-h5',
2704
+ h6: 'lexical-h6'
2705
+ },
2706
+ list: {
2707
+ nested: {
2708
+ listitem: 'lexical-nested-listitem'
2709
+ },
2710
+ ol: 'lexical-ol',
2711
+ ul: 'lexical-ul',
2712
+ listitem: 'lexical-listitem'
2713
+ },
2714
+ text: {
2715
+ bold: 'lexical-bold',
2716
+ italic: 'lexical-italic',
2717
+ underline: 'lexical-underline',
2718
+ strikethrough: 'lexical-strikethrough',
2719
+ code: 'lexical-code'
2720
+ },
2721
+ link: 'lexical-link',
2722
+ code: 'lexical-code-block'
2723
+ };
2724
+ var editorStyles = "\n .lexical-editor-container {\n border: 1px solid #ccc;\n border-radius: 4px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;\n }\n .lexical-editor-inner {\n position: relative;\n }\n .lexical-editor-input {\n padding: 12px;\n outline: none;\n overflow-y: auto;\n }\n .lexical-editor-input:focus {\n outline: none;\n }\n .lexical-placeholder {\n position: absolute;\n top: 12px;\n left: 12px;\n color: #999;\n pointer-events: none;\n user-select: none;\n }\n .lexical-paragraph {\n margin: 0 0 8px 0;\n }\n .lexical-h1 { font-size: 2em; font-weight: bold; margin: 16px 0 8px 0; }\n .lexical-h2 { font-size: 1.5em; font-weight: bold; margin: 14px 0 8px 0; }\n .lexical-h3 { font-size: 1.17em; font-weight: bold; margin: 12px 0 8px 0; }\n .lexical-h4 { font-size: 1em; font-weight: bold; margin: 10px 0 8px 0; }\n .lexical-h5 { font-size: 0.83em; font-weight: bold; margin: 8px 0 8px 0; }\n .lexical-h6 { font-size: 0.67em; font-weight: bold; margin: 6px 0 8px 0; }\n .lexical-quote {\n margin: 8px 0;\n padding: 8px 16px;\n border-left: 4px solid #ccc;\n background: #f9f9f9;\n font-style: italic;\n }\n .lexical-ul, .lexical-ol {\n margin: 8px 0;\n padding-left: 24px;\n }\n .lexical-listitem {\n margin: 4px 0;\n }\n .lexical-bold { font-weight: bold; }\n .lexical-italic { font-style: italic; }\n .lexical-underline { text-decoration: underline; }\n .lexical-strikethrough { text-decoration: line-through; }\n .lexical-code {\n background: #f0f0f0;\n padding: 2px 4px;\n border-radius: 3px;\n font-family: monospace;\n }\n .lexical-link {\n color: #0066cc;\n text-decoration: underline;\n }\n .lexical-code-block {\n background: #f5f5f5;\n padding: 12px;\n border-radius: 4px;\n font-family: monospace;\n overflow-x: auto;\n }\n";
2725
+
2726
+ // Toolbar button style to match react-draft-wysiwyg
2727
+ var toolbarButtonStyle = {
2728
+ minWidth: 32,
2729
+ width: 32,
2730
+ height: 32,
2731
+ padding: '4px',
2732
+ margin: '2px',
2733
+ borderRadius: '2px',
2734
+ border: '1px solid transparent',
2735
+ '&:hover': {
2736
+ backgroundColor: '#f0f0f0',
2737
+ border: '1px solid #ccc'
2738
+ }
2739
+ };
2740
+ var activeButtonStyle = _objectSpread(_objectSpread({}, toolbarButtonStyle), {}, {
2741
+ backgroundColor: '#e0e0e0',
2742
+ border: '1px solid #ccc'
2743
+ });
2744
+
2745
+ // HTML Import Plugin
2746
+ function HtmlImportPlugin(_ref) {
2747
+ var initialHtml = _ref.initialHtml;
2748
+ var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
2749
+ _useLexicalComposerCo2 = _slicedToArray(_useLexicalComposerCo, 1),
2750
+ editor = _useLexicalComposerCo2[0];
2751
+ var _React$useState = _react["default"].useState(false),
2752
+ _React$useState2 = _slicedToArray(_React$useState, 2),
2753
+ initialized = _React$useState2[0],
2754
+ setInitialized = _React$useState2[1];
2755
+ (0, _react.useEffect)(function () {
2756
+ if (initialHtml && !initialized) {
2757
+ editor.update(function () {
2758
+ var parser = new DOMParser();
2759
+ var dom = parser.parseFromString(initialHtml, 'text/html');
2760
+ var nodes = (0, _html.$generateNodesFromDOM)(editor, dom);
2761
+ var root = (0, _lexical.$getRoot)();
2762
+ root.clear();
2763
+ nodes.forEach(function (node) {
2764
+ return root.append(node);
2765
+ });
2766
+ });
2767
+ setInitialized(true);
2768
+ }
2769
+ }, [editor, initialHtml, initialized]);
2770
+ return null;
2771
+ }
2772
+
2773
+ // HTML Export Plugin
2774
+ function HtmlExportPlugin(_ref2) {
2775
+ var onChange = _ref2.onChange;
2776
+ var _useLexicalComposerCo3 = (0, _LexicalComposerContext.useLexicalComposerContext)(),
2777
+ _useLexicalComposerCo4 = _slicedToArray(_useLexicalComposerCo3, 1),
2778
+ editor = _useLexicalComposerCo4[0];
2779
+ var handleChange = (0, _react.useCallback)(function () {
2780
+ editor.update(function () {
2781
+ var html = (0, _html.$generateHtmlFromNodes)(editor, null);
2782
+ onChange(html);
2783
+ });
2784
+ }, [editor, onChange]);
2785
+ return /*#__PURE__*/_react["default"].createElement(_LexicalOnChangePlugin.OnChangePlugin, {
2786
+ onChange: handleChange
2787
+ });
2788
+ }
2789
+
2790
+ // Toolbar Component
2791
+ function Toolbar(_ref3) {
2792
+ var isDisabled = _ref3.isDisabled;
2793
+ var _useLexicalComposerCo5 = (0, _LexicalComposerContext.useLexicalComposerContext)(),
2794
+ _useLexicalComposerCo6 = _slicedToArray(_useLexicalComposerCo5, 1),
2795
+ editor = _useLexicalComposerCo6[0];
2796
+ var _React$useState3 = _react["default"].useState(false),
2797
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
2798
+ isBold = _React$useState4[0],
2799
+ setIsBold = _React$useState4[1];
2800
+ var _React$useState5 = _react["default"].useState(false),
2801
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
2802
+ isItalic = _React$useState6[0],
2803
+ setIsItalic = _React$useState6[1];
2804
+ var _React$useState7 = _react["default"].useState(false),
2805
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
2806
+ isUnderline = _React$useState8[0],
2807
+ setIsUnderline = _React$useState8[1];
2808
+ var _React$useState9 = _react["default"].useState(false),
2809
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
2810
+ isStrikethrough = _React$useState10[0],
2811
+ setIsStrikethrough = _React$useState10[1];
2812
+ var _React$useState11 = _react["default"].useState(false),
2813
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
2814
+ isCode = _React$useState12[0],
2815
+ setIsCode = _React$useState12[1];
2816
+ var _React$useState13 = _react["default"].useState(false),
2817
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
2818
+ isLink = _React$useState14[0],
2819
+ setIsLink = _React$useState14[1];
2820
+ var _React$useState15 = _react["default"].useState('paragraph'),
2821
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
2822
+ blockType = _React$useState16[0],
2823
+ setBlockType = _React$useState16[1];
2824
+ var updateToolbar = (0, _react.useCallback)(function () {
2825
+ var selection = (0, _lexical.$getSelection)();
2826
+ if ((0, _lexical.$isRangeSelection)(selection)) {
2827
+ setIsBold(selection.hasFormat('bold'));
2828
+ setIsItalic(selection.hasFormat('italic'));
2829
+ setIsUnderline(selection.hasFormat('underline'));
2830
+ setIsStrikethrough(selection.hasFormat('strikethrough'));
2831
+ setIsCode(selection.hasFormat('code'));
2832
+ }
2833
+ }, []);
2834
+ (0, _react.useEffect)(function () {
2835
+ return editor.registerUpdateListener(function (_ref4) {
2836
+ var editorState = _ref4.editorState;
2837
+ editorState.read(function () {
2838
+ updateToolbar();
2839
+ });
2840
+ });
2841
+ }, [editor, updateToolbar]);
2842
+ var formatText = function formatText(format) {
2843
+ editor.dispatchCommand(_lexical.FORMAT_TEXT_COMMAND, format);
2844
+ };
2845
+ var formatBlock = function formatBlock(type) {
2846
+ editor.update(function () {
2847
+ var selection = (0, _lexical.$getSelection)();
2848
+ if ((0, _lexical.$isRangeSelection)(selection)) {
2849
+ if (type === 'paragraph') {
2850
+ (0, _selection.$setBlocksType)(selection, function () {
2851
+ return (0, _lexical.$createParagraphNode)();
2852
+ });
2853
+ } else if (type === 'quote') {
2854
+ (0, _selection.$setBlocksType)(selection, function () {
2855
+ return (0, _richText.$createQuoteNode)();
2856
+ });
2857
+ } else if (type.startsWith('h')) {
2858
+ (0, _selection.$setBlocksType)(selection, function () {
2859
+ return (0, _richText.$createHeadingNode)(type);
2860
+ });
2861
+ }
2862
+ setBlockType(type);
2863
+ }
2864
+ });
2865
+ };
2866
+ var formatList = function formatList(listType) {
2867
+ if (listType === 'bullet') {
2868
+ editor.dispatchCommand(_list.INSERT_UNORDERED_LIST_COMMAND, undefined);
2869
+ } else if (listType === 'number') {
2870
+ editor.dispatchCommand(_list.INSERT_ORDERED_LIST_COMMAND, undefined);
2871
+ }
2872
+ };
2873
+ var insertLink = function insertLink() {
2874
+ var url = prompt('Enter URL:');
2875
+ if (url) {
2876
+ editor.dispatchCommand(_link.TOGGLE_LINK_COMMAND, url);
2877
+ }
2878
+ };
2879
+ var removeLink = function removeLink() {
2880
+ editor.dispatchCommand(_link.TOGGLE_LINK_COMMAND, null);
2881
+ };
2882
+ var undo = function undo() {
2883
+ editor.dispatchCommand('UNDO', undefined);
2884
+ };
2885
+ var redo = function redo() {
2886
+ editor.dispatchCommand('REDO', undefined);
2887
+ };
2888
+ if (isDisabled) {
2889
+ return null;
2890
+ }
2891
+ return /*#__PURE__*/_react["default"].createElement(_Box["default"], {
2892
+ sx: {
2893
+ display: 'flex',
2894
+ flexWrap: 'wrap',
2895
+ alignItems: 'center',
2896
+ padding: '8px',
2897
+ borderBottom: '1px solid #ccc',
2898
+ backgroundColor: '#f9f9f9',
2899
+ gap: '4px'
2900
+ }
2901
+ }, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
2902
+ size: "small",
2903
+ value: blockType,
2904
+ onChange: function onChange(e) {
2905
+ return formatBlock(e.target.value);
2906
+ },
2907
+ sx: {
2908
+ minWidth: 120,
2909
+ height: 32,
2910
+ mr: 1
2911
+ }
2912
+ }, /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
2913
+ value: "paragraph"
2914
+ }, "Normal"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
2915
+ value: "h1"
2916
+ }, "Heading 1"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
2917
+ value: "h2"
2918
+ }, "Heading 2"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
2919
+ value: "h3"
2920
+ }, "Heading 3"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
2921
+ value: "h4"
2922
+ }, "Heading 4"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
2923
+ value: "h5"
2924
+ }, "Heading 5"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
2925
+ value: "h6"
2926
+ }, "Heading 6"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
2927
+ value: "quote"
2928
+ }, "Blockquote")), /*#__PURE__*/_react["default"].createElement(_Divider["default"], {
2929
+ orientation: "vertical",
2930
+ flexItem: true,
2931
+ sx: {
2932
+ mx: 1
2933
+ }
2934
+ }), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
2935
+ title: "Bold (Ctrl+B)"
2936
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
2937
+ size: "small",
2938
+ onClick: function onClick() {
2939
+ return formatText('bold');
2940
+ },
2941
+ sx: isBold ? activeButtonStyle : toolbarButtonStyle
2942
+ }, /*#__PURE__*/_react["default"].createElement(_FormatBold["default"], {
2943
+ fontSize: "small"
2944
+ }))), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
2945
+ title: "Italic (Ctrl+I)"
2946
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
2947
+ size: "small",
2948
+ onClick: function onClick() {
2949
+ return formatText('italic');
2950
+ },
2951
+ sx: isItalic ? activeButtonStyle : toolbarButtonStyle
2952
+ }, /*#__PURE__*/_react["default"].createElement(_FormatItalic["default"], {
2953
+ fontSize: "small"
2954
+ }))), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
2955
+ title: "Underline (Ctrl+U)"
2956
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
2957
+ size: "small",
2958
+ onClick: function onClick() {
2959
+ return formatText('underline');
2960
+ },
2961
+ sx: isUnderline ? activeButtonStyle : toolbarButtonStyle
2962
+ }, /*#__PURE__*/_react["default"].createElement(_FormatUnderlined["default"], {
2963
+ fontSize: "small"
2964
+ }))), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
2965
+ title: "Strikethrough"
2966
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
2967
+ size: "small",
2968
+ onClick: function onClick() {
2969
+ return formatText('strikethrough');
2970
+ },
2971
+ sx: isStrikethrough ? activeButtonStyle : toolbarButtonStyle
2972
+ }, /*#__PURE__*/_react["default"].createElement(_StrikethroughS["default"], {
2973
+ fontSize: "small"
2974
+ }))), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
2975
+ title: "Code"
2976
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
2977
+ size: "small",
2978
+ onClick: function onClick() {
2979
+ return formatText('code');
2980
+ },
2981
+ sx: isCode ? activeButtonStyle : toolbarButtonStyle
2982
+ }, /*#__PURE__*/_react["default"].createElement(_Code["default"], {
2983
+ fontSize: "small"
2984
+ }))), /*#__PURE__*/_react["default"].createElement(_Divider["default"], {
2985
+ orientation: "vertical",
2986
+ flexItem: true,
2987
+ sx: {
2988
+ mx: 1
2989
+ }
2990
+ }), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
2991
+ title: "Bullet List"
2992
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
2993
+ size: "small",
2994
+ onClick: function onClick() {
2995
+ return formatList('bullet');
2996
+ },
2997
+ sx: toolbarButtonStyle
2998
+ }, /*#__PURE__*/_react["default"].createElement(_FormatListBulleted["default"], {
2999
+ fontSize: "small"
3000
+ }))), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
3001
+ title: "Numbered List"
3002
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
3003
+ size: "small",
3004
+ onClick: function onClick() {
3005
+ return formatList('number');
3006
+ },
3007
+ sx: toolbarButtonStyle
3008
+ }, /*#__PURE__*/_react["default"].createElement(_FormatListNumbered["default"], {
3009
+ fontSize: "small"
3010
+ }))), /*#__PURE__*/_react["default"].createElement(_Divider["default"], {
3011
+ orientation: "vertical",
3012
+ flexItem: true,
3013
+ sx: {
3014
+ mx: 1
3015
+ }
3016
+ }), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
3017
+ title: "Insert Link"
3018
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
3019
+ size: "small",
3020
+ onClick: insertLink,
3021
+ sx: toolbarButtonStyle
3022
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], {
3023
+ fontSize: "small"
3024
+ }))), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
3025
+ title: "Remove Link"
3026
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
3027
+ size: "small",
3028
+ onClick: removeLink,
3029
+ sx: toolbarButtonStyle
3030
+ }, /*#__PURE__*/_react["default"].createElement(_LinkOff["default"], {
3031
+ fontSize: "small"
3032
+ }))), /*#__PURE__*/_react["default"].createElement(_Divider["default"], {
3033
+ orientation: "vertical",
3034
+ flexItem: true,
3035
+ sx: {
3036
+ mx: 1
3037
+ }
3038
+ }), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
3039
+ title: "Undo (Ctrl+Z)"
3040
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
3041
+ size: "small",
3042
+ onClick: undo,
3043
+ sx: toolbarButtonStyle
3044
+ }, /*#__PURE__*/_react["default"].createElement(_Undo["default"], {
3045
+ fontSize: "small"
3046
+ }))), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
3047
+ title: "Redo (Ctrl+Y)"
3048
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
3049
+ size: "small",
3050
+ onClick: redo,
3051
+ sx: toolbarButtonStyle
3052
+ }, /*#__PURE__*/_react["default"].createElement(_Redo["default"], {
3053
+ fontSize: "small"
3054
+ }))));
3055
+ }
3056
+ function onError(error) {
3057
+ console.error('Lexical error:', error);
3058
+ }
3059
+ function LexicalEditor(_ref5) {
3060
+ var initialHtml = _ref5.initialHtml,
3061
+ onChange = _ref5.onChange,
3062
+ _ref5$height = _ref5.height,
3063
+ height = _ref5$height === void 0 ? 400 : _ref5$height,
3064
+ _ref5$isDisabled = _ref5.isDisabled,
3065
+ isDisabled = _ref5$isDisabled === void 0 ? false : _ref5$isDisabled;
3066
+ var initialConfig = {
3067
+ namespace: 'RichTextEditor',
3068
+ theme: theme,
3069
+ onError: onError,
3070
+ nodes: [_richText.HeadingNode, _richText.QuoteNode, _list.ListNode, _list.ListItemNode, _link.LinkNode, _code.CodeNode],
3071
+ editable: !isDisabled
3072
+ };
3073
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("style", null, editorStyles), /*#__PURE__*/_react["default"].createElement(_LexicalComposer.LexicalComposer, {
3074
+ initialConfig: initialConfig
3075
+ }, /*#__PURE__*/_react["default"].createElement("div", {
3076
+ className: "lexical-editor-container"
3077
+ }, /*#__PURE__*/_react["default"].createElement(Toolbar, {
3078
+ isDisabled: isDisabled
3079
+ }), /*#__PURE__*/_react["default"].createElement("div", {
3080
+ className: "lexical-editor-inner"
3081
+ }, /*#__PURE__*/_react["default"].createElement(_LexicalRichTextPlugin.RichTextPlugin, {
3082
+ contentEditable: /*#__PURE__*/_react["default"].createElement(_LexicalContentEditable.ContentEditable, {
3083
+ className: "lexical-editor-input",
3084
+ style: {
3085
+ minHeight: height,
3086
+ maxHeight: height
3087
+ }
3088
+ }),
3089
+ placeholder: /*#__PURE__*/_react["default"].createElement("div", {
3090
+ className: "lexical-placeholder"
3091
+ }, "Enter text..."),
3092
+ ErrorBoundary: _LexicalErrorBoundary.LexicalErrorBoundary
3093
+ }), /*#__PURE__*/_react["default"].createElement(_LexicalHistoryPlugin.HistoryPlugin, null), /*#__PURE__*/_react["default"].createElement(_LexicalListPlugin.ListPlugin, null), /*#__PURE__*/_react["default"].createElement(_LexicalLinkPlugin.LinkPlugin, null), /*#__PURE__*/_react["default"].createElement(HtmlImportPlugin, {
3094
+ initialHtml: initialHtml
3095
+ }), /*#__PURE__*/_react["default"].createElement(HtmlExportPlugin, {
3096
+ onChange: onChange
3097
+ })))));
3098
+ }
3099
+ "use strict";
3100
+
2642
3101
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2643
3102
  Object.defineProperty(exports, "__esModule", {
2644
3103
  value: true
@@ -6439,8 +6898,6 @@ Object.defineProperty(exports, "__esModule", {
6439
6898
  });
6440
6899
  exports.RichTextEditor = void 0;
6441
6900
  var _react = _interopRequireWildcard(require("react"));
6442
- var _draftJs = require("draft-js");
6443
- var _draftjsToHtml = _interopRequireDefault(require("draftjs-to-html"));
6444
6901
  var _dynamic = _interopRequireDefault(require("next/dynamic"));
6445
6902
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
6446
6903
  var _Button = _interopRequireDefault(require("@mui/material/Button"));
@@ -6457,11 +6914,12 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
6457
6914
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
6458
6915
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
6459
6916
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
6460
- var Editor = (0, _dynamic["default"])(function () {
6917
+ // Dynamically import the editor to avoid SSR issues
6918
+ var LexicalEditor = (0, _dynamic["default"])(function () {
6461
6919
  return Promise.resolve().then(function () {
6462
- return _interopRequireWildcard(require('react-draft-wysiwyg'));
6920
+ return _interopRequireWildcard(require('./LexicalEditor'));
6463
6921
  }).then(function (mod) {
6464
- return mod.Editor;
6922
+ return mod.LexicalEditor;
6465
6923
  });
6466
6924
  }, {
6467
6925
  ssr: false
@@ -6473,47 +6931,23 @@ var RichTextEditor = exports.RichTextEditor = function RichTextEditor(_ref) {
6473
6931
  height = _ref$height === void 0 ? 400 : _ref$height,
6474
6932
  _ref$isDisabled = _ref.isDisabled,
6475
6933
  isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled;
6476
- var _useState = (0, _react.useState)(_draftJs.EditorState.createEmpty()),
6477
- _useState2 = _slicedToArray(_useState, 2),
6478
- editorState = _useState2[0],
6479
- setEditorState = _useState2[1];
6480
- var onEditorStateChange = function onEditorStateChange(editorState) {
6481
- setEditorState(editorState);
6482
- };
6934
+ var _React$useState = _react["default"].useState(html || ''),
6935
+ _React$useState2 = _slicedToArray(_React$useState, 2),
6936
+ editorHtml = _React$useState2[0],
6937
+ setEditorHtml = _React$useState2[1];
6483
6938
  (0, _react.useEffect)(function () {
6484
6939
  if (html != null) {
6485
- var contentBlock = (0, _draftJs.convertFromHTML)(html);
6486
- if (contentBlock) {
6487
- var contentState = _draftJs.ContentState.createFromBlockArray(contentBlock.contentBlocks);
6488
- var _editorState = _draftJs.EditorState.createWithContent(contentState);
6489
- setEditorState(_editorState);
6490
- }
6940
+ setEditorHtml(html);
6491
6941
  }
6492
6942
  }, [html]);
6493
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(Editor, {
6494
- editorState: editorState,
6495
- toolbarClassName: "toolbarClassName",
6496
- wrapperClassName: "wrapperClassName",
6497
- editorClassName: "editorClassName",
6498
- readOnly: isDisabled,
6499
- editorStyle: {
6500
- height: height
6501
- },
6502
- onEditorStateChange: onEditorStateChange
6503
- // mention={{
6504
- // separator: " ",
6505
- // trigger: "@",
6506
- // suggestions: [
6507
- // { text: "APPLE", value: "apple" },
6508
- // { text: "BANANA", value: "banana", url: "banana" },
6509
- // { text: "CHERRY", value: "cherry", url: "cherry" },
6510
- // { text: "DURIAN", value: "durian", url: "durian" },
6511
- // { text: "EGGFRUIT", value: "eggfruit", url: "eggfruit" },
6512
- // { text: "FIG", value: "fig", url: "fig" },
6513
- // { text: "GRAPEFRUIT", value: "grapefruit", url: "grapefruit" },
6514
- // { text: "HONEYDEW", value: "honeydew", url: "honeydew" }
6515
- // ]
6516
- // }}
6943
+ var handleChange = (0, _react.useCallback)(function (newHtml) {
6944
+ setEditorHtml(newHtml);
6945
+ }, []);
6946
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(LexicalEditor, {
6947
+ initialHtml: html,
6948
+ onChange: handleChange,
6949
+ height: height,
6950
+ isDisabled: isDisabled
6517
6951
  }), /*#__PURE__*/_react["default"].createElement("hr", null), /*#__PURE__*/_react["default"].createElement(_Box["default"], {
6518
6952
  sx: {
6519
6953
  textAlign: "right"
@@ -6526,7 +6960,7 @@ var RichTextEditor = exports.RichTextEditor = function RichTextEditor(_ref) {
6526
6960
  while (1) switch (_context.prev = _context.next) {
6527
6961
  case 0:
6528
6962
  _context.next = 2;
6529
- return onSave((0, _draftjsToHtml["default"])((0, _draftJs.convertToRaw)(editorState.getCurrentContent())));
6963
+ return onSave(editorHtml);
6530
6964
  case 2:
6531
6965
  case "end":
6532
6966
  return _context.stop();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "authscape",
3
- "version": "1.0.740",
3
+ "version": "1.0.744",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -31,7 +31,15 @@
31
31
  "react-dom": "^18.3.1"
32
32
  },
33
33
  "dependencies": {
34
+ "@lexical/code": "^0.21.0",
35
+ "@lexical/html": "^0.21.0",
36
+ "@lexical/link": "^0.21.0",
37
+ "@lexical/list": "^0.21.0",
38
+ "@lexical/react": "^0.21.0",
39
+ "@lexical/rich-text": "^0.21.0",
40
+ "@lexical/selection": "^0.21.0",
34
41
  "@microsoft/signalr": "^8.0.0",
42
+ "lexical": "^0.21.0",
35
43
  "audit": "^0.0.6",
36
44
  "axios": "^1.6.1",
37
45
  "eslint-config-next": "^16.0.3",