react-smart-editor
Version:
React rich text editor with track changes functionality
1 lines • 9 kB
Source Map (JSON)
{"version":3,"sources":["ReactSmartEditor.css","FormattingToolbar.css","ChangeTooltip.css"],"names":[],"mappings":"AAAA,WASE,kBAAmB,CARnB,8BAAiC,CAOjC,iBAAkB,CADlB,eAAmB,CALnB,4CAA+C,CAC/C,6QAOF,CAEA,iCAIE,WAAY,CAQZ,kCAAmC,CACnC,iCAAkC,CAVlC,wCAA4C,CAE5C,iBAAkB,CAElB,mBAAoB,CADpB,eAAmB,CAGnB,aAAc,CADd,mBAMF,CAEA,sBACE,eACF,CACA,kBACE,eACF,CACA,uBACE,eACF,CACA,oBACE,eACF,CACA,kBACE,eACF,CAEA,oBACE,qBAAsB,CAEtB,qBAAsB,CACtB,WAAY,CAFZ,iBAAkB,CAIlB,aACE,YACF,CAEA,GACE,oBAEF,CAEA,MAHE,2BAMF,CAHA,GACE,uBAEF,CAEA,MACE,sBAEF,CAEA,YAHE,yBAMF,CAHA,MACE,2BAEF,CAEA,SACE,sBAEF,CAEA,kBAHE,0BAMF,CAHA,SACE,2BAEF,CAEA,GACE,cAAe,CACf,eAAgB,CAChB,kBACF,CAEA,GACE,gBAAiB,CACjB,eAAgB,CAChB,mBACF,CAEA,GACE,iBAAkB,CAClB,eAAgB,CAChB,oBACF,CAEA,SAKE,4EAA6E,CAF7E,QAAS,CACT,SAEF,CACF,CAEA,4BACE,wBAAyB,CACzB,aACE,WACF,CACF,CCpHA,4BAGE,wBAAyB,CAFzB,eAAgB,CAChB,SAEF,CAEA,oBAKE,4BAA6B,CAJ7B,YAAa,CACb,cAAe,CACf,OAAQ,CACR,WAAY,CAGZ,iBAAkB,CADlB,SAEF,CAEA,sBAGE,kBAAmB,CAFnB,YAAa,CACb,OAEF,CAEA,0BAGE,kBAAmB,CAGnB,4BAA6B,CAL7B,YAAa,CACb,OAAQ,CAGR,eAAgB,CADhB,UAGF,CAEA,mCACE,YACF,CAEA,eAEE,kBAAmB,CAGnB,qBAAuB,CADvB,qBAAsB,CAGtB,iBAAkB,CAOlB,UAAY,CARZ,cAAe,CALf,YAAa,CAWb,eAAiB,CADjB,WAAY,CARZ,sBAAuB,CAMvB,QAAS,CADT,SAAU,CAKV,uBAAyB,CAHzB,UAKF,CAEA,oCACE,wBACF,CAEA,0BACE,wBACF,CAEA,iBAEE,cAAe,CADf,6BAEF,CAEA,0BACE,WACF,CAEA,2BAEE,kBAAmB,CAGnB,qBAAuB,CADvB,qBAAsB,CAGtB,iBAAkB,CAOlB,UAAY,CARZ,cAAe,CALf,YAAa,CAWb,eAAiB,CADjB,WAAY,CARZ,sBAAuB,CAMvB,QAAS,CADT,SAAU,CAKV,uBAAyB,CAHzB,UAAW,CAKX,WACE,kBACF,CACF,CAEA,2BACE,qBAAsB,CACtB,iBAAkB,CAClB,eAAgB,CAChB,WACE,kBACF,CACF,CAEA,gDACE,wBACF,CAEA,kCACE,wBAAyB,CACzB,iBACF,CAEA,sCAIE,qBAAsB,CACtB,iBAAkB,CAClB,cAAe,CAJf,WAAY,CACZ,SAAU,CAFV,UAAW,CAMX,WACE,kBACF,CACF,CAEA,oEACE,SACF,CAEA,4DACE,WAAY,CACZ,iBACF,CAEA,wBACE,YAAa,CACb,OAAQ,CAER,OAEE,WAAY,CACZ,iBAAkB,CAIlB,UAAY,CAHZ,cAAe,CAIf,cAAe,CAFf,WAAY,CALZ,SAAU,CAIV,UAAW,CAKX,UACE,wBACF,CACA,SACE,wBACF,CACF,CACF,CCrJA,gBAEE,eAAiB,CACjB,qBAAsB,CACtB,iBAAkB,CAClB,2BAA4B,CAE5B,mCAAwC,CAIxC,UAAY,CAFZ,eAAgB,CAHhB,YAAa,CALb,cAAe,CAWf,gBAAiB,CAFjB,+BAAiC,CAFjC,YAKF,CAEA,sBAQE,kEAAwE,CADxE,0BAA2B,CAJ3B,YAAa,CAFb,UAAW,CAKX,WAAY,CAFZ,UAAY,CAFZ,iBAAkB,CAGlB,UAIF,CAEA,eACE,QACF,CAEA,kBAGE,sBAAuB,CAFvB,YAAa,CACb,QAAS,CAET,6BACF,CACA,oBACE,cACF,CAEA,gBACE,YAAa,CACb,OAAQ,CAER,OAEE,WAAY,CACZ,iBAAkB,CAIlB,UAAY,CAHZ,cAAe,CAEf,WAAY,CALZ,SAAU,CAIV,UAAW,CAIX,cACE,wBACF,CACA,aACE,wBACF,CACF,CACF","file":"index.css","sourcesContent":["@font-face {\n font-family: 'react-smart-editor';\n src: url('fonts/react-smart-editor.eot?awmtp4');\n src: url('fonts/react-smart-editor.eot?awmtp4#iefix') format('embedded-opentype'),\n url('fonts/react-smart-editor.ttf?awmtp4') format('truetype'),\n url('fonts/react-smart-editor.woff?awmtp4') format('woff'),\n url('fonts/react-smart-editor.svg?awmtp4#react-smart-editor') format('svg');\n font-weight: normal;\n font-style: normal;\n font-display: block;\n}\n\n[class^='icon-'],\n[class*=' icon-'] {\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: 'react-smart-editor' !important;\n speak: never;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.icon-list-num:before {\n content: '\\e900';\n}\n.icon-list:before {\n content: '\\e901';\n}\n.icon-underline:before {\n content: '\\e902';\n}\n.icon-italic:before {\n content: '\\e903';\n}\n.icon-bold:before {\n content: '\\e904';\n}\n\n.react-smart-editor {\n border: 1px solid #ccc;\n position: relative;\n box-sizing: border-box;\n height: 100%;\n\n &.input-view {\n min-height: 0;\n }\n\n ul {\n list-style-type: disc;\n padding-inline-start: 1.5rem;\n }\n\n ol {\n list-style-type: decimal;\n padding-inline-start: 1.5rem;\n }\n\n ul ul {\n list-style-type: circle;\n padding-inline-start: 1rem;\n }\n\n ol ol {\n list-style-type: lower-latin;\n padding-inline-start: 1rem;\n }\n\n ul ul ul {\n list-style-type: square;\n padding-inline-start: 0.5rem;\n }\n\n ol ol ol {\n list-style-type: lower-roman;\n padding-inline-start: 0.5rem;\n }\n\n h1 {\n font-size: 2rem;\n font-weight: 600;\n margin-bottom: 1rem;\n }\n\n h2 {\n font-size: 1.5rem;\n font-weight: 500;\n margin-bottom: 0.5rem;\n }\n\n h3 {\n font-size: 1.25rem;\n font-weight: 400;\n margin-bottom: 0.25rem;\n }\n\n h1,\n h2,\n h3 {\n margin: 0;\n padding: 0;\n counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n }\n}\n\n.react-smart-editor-content {\n height: calc(100% - 43px);\n &.input-view {\n height: 100%;\n }\n}\n",".formatting-toolbar-wrapper {\n position: sticky;\n z-index: 1;\n background-color: #f1f1f1;\n}\n\n.formatting-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n padding: 6px;\n border-bottom: 1px solid #ccc;\n z-index: 1;\n position: relative;\n}\n\n.toolbar-main-buttons {\n display: flex;\n gap: 5px;\n align-items: center;\n}\n\n.toolbar-expanded-buttons {\n display: none;\n gap: 5px;\n align-items: center;\n width: 100%;\n padding-top: 5px;\n border-top: 1px solid #e0e0e0;\n}\n\n.toolbar-expanded-buttons.expanded {\n display: flex;\n}\n\n.expand-button {\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #ccc;\n background-color: white;\n cursor: pointer;\n border-radius: 3px;\n padding: 0;\n margin: 0;\n width: 30px;\n height: 30px;\n font-weight: bold;\n transition: all 0.2s ease;\n color: black;\n}\n\n.expand-button:hover:not(:disabled) {\n background-color: #e0e0e0;\n}\n\n.expand-button.expanded i {\n transform: rotate(180deg);\n}\n\n.expand-button i {\n transition: transform 0.2s ease;\n font-size: 12px;\n}\n\n.icon-chevron-down::before {\n content: '▼';\n}\n\n.formatting-toolbar button {\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #ccc;\n background-color: white;\n cursor: pointer;\n border-radius: 3px;\n padding: 0;\n margin: 0;\n width: 30px;\n height: 30px;\n font-weight: bold;\n transition: all 0.2s ease;\n color: black;\n &:disabled {\n cursor: not-allowed;\n }\n}\n\n.formatting-toolbar select {\n border: 1px solid #ccc;\n border-radius: 3px;\n padding-block: 0;\n &:disabled {\n cursor: not-allowed;\n }\n}\n\n.formatting-toolbar button:hover:not(:disabled) {\n background-color: #e0e0e0;\n}\n\n.formatting-toolbar button.active {\n background-color: #e0e0e0;\n border-color: #999;\n}\n\n.formatting-toolbar input[type='color'] {\n width: 30px;\n height: 30px;\n padding: 0;\n border: 1px solid #ccc;\n border-radius: 3px;\n cursor: pointer;\n &:disabled {\n cursor: not-allowed;\n }\n}\n\n.formatting-toolbar input[type='color']::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n.formatting-toolbar input[type='color']::-webkit-color-swatch {\n border: none;\n border-radius: 2px;\n}\n\n.change-actions-toolbar {\n display: flex;\n gap: 4px;\n\n button {\n padding: 0;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n width: 30px;\n height: 30px;\n color: black;\n font-size: 16px;\n\n &.approve {\n background-color: #7fc682;\n }\n &.reject {\n background-color: #cc7a74;\n }\n }\n}\n\n/* Медиа-запрос для больших экранов - показываем все кнопки сразу */\n/* @media (min-width: 768px) {\n .formatting-toolbar {\n flex-wrap: nowrap;\n }\n\n .toolbar-main-buttons {\n flex: 1;\n }\n\n .toolbar-expanded-buttons {\n display: flex !important;\n width: auto;\n margin-top: 0;\n padding-top: 0;\n border-top: none;\n }\n\n .expand-button {\n display: none;\n }\n} */\n",".change-tooltip {\n position: fixed;\n background: white;\n border: 1px solid #ccc;\n border-radius: 4px;\n border-bottom-left-radius: 0;\n padding: 10px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n min-width: 200px;\n transform: translate(-50%, -100%);\n color: black;\n text-align: start;\n}\n\n.change-tooltip::after {\n content: '';\n position: absolute;\n bottom: -10px;\n left: -0.9px;\n width: 10px;\n height: 10px;\n border-left: 1px solid #ccc;\n background: linear-gradient(135deg, #fff 45%, #ccc 45%, transparent 55%);\n}\n\n.change-info p {\n margin: 0;\n}\n\n.change-info-user {\n display: flex;\n gap: 10px;\n align-items: flex-start;\n justify-content: space-between;\n}\n.change-info-action {\n font-size: 12px;\n}\n\n.change-actions {\n display: flex;\n gap: 4px;\n\n button {\n padding: 0;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n width: 20px;\n height: 20px;\n color: black;\n\n &:first-child {\n background-color: #7fc682;\n }\n &:last-child {\n background-color: #cc7a74;\n }\n }\n}\n"]}