@ryuzaki13/react-foundation-ui 3.11.0 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{TextEditorLexicalClient-Cj6yjCGm.js → TextEditorLexicalClient-BwKsJG31.js} +347 -338
- package/dist/chunks/TextEditorLexicalClient-BwKsJG31.js.map +1 -0
- package/dist/chunks/types-CxXyru6U.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/text-editor/LinkDialog.d.ts +2 -1
- package/dist/text-editor/LinkDialog.d.ts.map +1 -1
- package/dist/text-editor/TextEditorDialogs.d.ts +3 -2
- package/dist/text-editor/TextEditorDialogs.d.ts.map +1 -1
- package/dist/text-editor/TextEditorLexicalClient.d.ts +1 -1
- package/dist/text-editor/TextEditorLexicalClient.d.ts.map +1 -1
- package/dist/text-editor/TextEditorLexicalViewer.d.ts +10 -0
- package/dist/text-editor/TextEditorLexicalViewer.d.ts.map +1 -0
- package/dist/text-editor/editorModel.d.ts +18 -1
- package/dist/text-editor/editorModel.d.ts.map +1 -1
- package/dist/text-editor/index.d.ts +2 -1
- package/dist/text-editor/index.d.ts.map +1 -1
- package/dist/text-editor/index.js +298 -7
- package/dist/text-editor/index.js.map +1 -1
- package/dist/text-editor/lib/viewer/getTextEditorViewerElementStyle.d.ts +5 -0
- package/dist/text-editor/lib/viewer/getTextEditorViewerElementStyle.d.ts.map +1 -0
- package/dist/text-editor/lib/viewer/parseTextEditorViewerDocument.d.ts +4 -0
- package/dist/text-editor/lib/viewer/parseTextEditorViewerDocument.d.ts.map +1 -0
- package/dist/text-editor/lib/viewer/resolveTextEditorViewerLink.d.ts +3 -0
- package/dist/text-editor/lib/viewer/resolveTextEditorViewerLink.d.ts.map +1 -0
- package/dist/text-editor/model/hooks/useTextEditorLexicalActions.d.ts.map +1 -1
- package/dist/text-editor/model/textEditorViewerTypes.d.ts +58 -0
- package/dist/text-editor/model/textEditorViewerTypes.d.ts.map +1 -0
- package/dist/text-editor/toolbar/LinkButtons.d.ts +2 -1
- package/dist/text-editor/toolbar/LinkButtons.d.ts.map +1 -1
- package/dist/text-editor/toolbar/TextEditorToolbarLexical.d.ts.map +1 -1
- package/dist/text-editor/ui/viewer/TextEditorViewerNode.d.ts +7 -0
- package/dist/text-editor/ui/viewer/TextEditorViewerNode.d.ts.map +1 -0
- package/dist/text-editor/ui/viewer/TextEditorViewerText.d.ts +8 -0
- package/dist/text-editor/ui/viewer/TextEditorViewerText.d.ts.map +1 -0
- package/package.json +1 -1
- package/storybook-static/assets/{Badge-CVgLMAJT.js → Badge-Bg4hGIjf.js} +1 -1
- package/storybook-static/assets/{Badge.stories-KeadkKsz.js → Badge.stories-DvgJJzd7.js} +1 -1
- package/storybook-static/assets/{BadgeList-_jBtMkE3.js → BadgeList-OoSc_pn4.js} +1 -1
- package/storybook-static/assets/{BarcodeScannerDialog.stories-J9XDExKK.js → BarcodeScannerDialog.stories-e2CjbCdx.js} +1 -1
- package/storybook-static/assets/{Button-C-uRygWz.js → Button-CQU_2OUm.js} +1 -1
- package/storybook-static/assets/{Button-DegBPiAl.js → Button-CmAd-UMc.js} +1 -1
- package/storybook-static/assets/{Button.stories-Ds4zCq_9.js → Button.stories-CdXudj27.js} +1 -1
- package/storybook-static/assets/{CalendarView-iyr_ipPy.js → CalendarView-CfpxnEan.js} +1 -1
- package/storybook-static/assets/{CheckBox-B0zrARHA.js → CheckBox-CtrHIcza.js} +1 -1
- package/storybook-static/assets/{CheckBox-nBqHJGY9.js → CheckBox-HehqIiiV.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-CxO9FwA7.js → CheckBox.stories-C8DlH2mz.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-Dzuzn5Yr.js → Color-6AOWCN3U-D9jGjZ1P.js} +1 -1
- package/storybook-static/assets/{ContextMenu-BC5OXqVj.js → ContextMenu-BxHTZhuC.js} +1 -1
- package/storybook-static/assets/{ContextMenu-CnZu58rQ.js → ContextMenu-t1s2BKrj.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-CPdTdVV7.js → ContextMenu.stories-CMbIfQb7.js} +1 -1
- package/storybook-static/assets/{DateInput-B5j7kofa.js → DateInput-9FbhYoqV.js} +1 -1
- package/storybook-static/assets/{DateInput-CuYe4WXO.js → DateInput-Dm6Kiwka.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-C4ZaIPUG.js → DateInput.stories-CPAnx1Ii.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CbDK9t1J.js → DateRangePresetSelect-6l9Q7na9.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-Cg6yPY0K.js → DateRangePresetSelect-CyxvE8Px.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-DPWUHjXu.js → DateRangePresetSelect.stories-UZ8CMuwl.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect-DkGsEVRD.js → DeprecatedMultiSelect-C04-2wDB.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect-DCReLsN-.js → DeprecatedMultiSelect-CySF9Hqp.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect.stories-tbYFDSML.js → DeprecatedMultiSelect.stories-FANxJnL0.js} +1 -1
- package/storybook-static/assets/{Detail-CtVpK6xU.js → Detail-CLPDP9b0.js} +1 -1
- package/storybook-static/assets/{Detail.stories-zAQfXGuT.js → Detail.stories-BmBFOXYz.js} +1 -1
- package/storybook-static/assets/{Dialog-JetMtpYt.js → Dialog-Co-EPLF-.js} +1 -1
- package/storybook-static/assets/{Dialog-B9ltl4hS.js → Dialog-Pzgcq_7r.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-tJymN3yq.js → Dialog.stories-B4DitG-A.js} +1 -1
- package/storybook-static/assets/{Disclosure-j-RCrVFs.js → Disclosure-Bt0yvf3r.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-4Jj2XNlo.js → Disclosure.stories-Bx4Z3eyR.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-CM7GlGI4.js → DisclosureGroup-CMheYvQ6.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-DevtpZi5.js → DocsRenderer-JROSPFPF-B4cQpl4D.js} +1 -1
- package/storybook-static/assets/{DropZone-CPrhOtX-.js → DropZone-D0j1N6Cy.js} +1 -1
- package/storybook-static/assets/{DropZone-Bwo7NG5D.js → DropZone-N4HTfImG.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-VyNhIaxw.js → DropZone.stories-CPHCbKF-.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-DMWZzFK1.js → DropdownMenu-Bf0k8HDo.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-DmKB3xVB.js → ExpandableActionPanel-QyKVmfxd.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-Kh_OSEIl.js → ExpandableActionPanel.stories-BmA0hkNv.js} +1 -1
- package/storybook-static/assets/{Flex-BZKhuaao.js → Flex-7J7Ai0St.js} +1 -1
- package/storybook-static/assets/{Flex.stories-CrHxjVCH.js → Flex.stories-DTJoxIVr.js} +1 -1
- package/storybook-static/assets/{FlexContainer-DGc37vCr.js → FlexContainer-CeCwnfbr.js} +1 -1
- package/storybook-static/assets/{FlexItem-DYv72TvP.js → FlexItem-D4epTRUG.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-Bd3b1U8c.js → FloatingPopover-4lCnQQo9.js} +1 -1
- package/storybook-static/assets/{FloatingWindows.stories-Cs_i092m.js → FloatingWindows.stories-BziZWCR7.js} +1 -1
- package/storybook-static/assets/FormattedTableCell-SClhK1-d.js +15 -0
- package/storybook-static/assets/{Grid-DUcSdqsI.js → Grid-BEn16yj_.js} +1 -1
- package/storybook-static/assets/{Grid-DIKudfVu.js → Grid-Bv9iz3Ru.js} +1 -1
- package/storybook-static/assets/{Grid.stories-sZUaIp7v.js → Grid.stories-DCcd1XpQ.js} +1 -1
- package/storybook-static/assets/{GridContainer-C5r-VTTG.js → GridContainer-tbwtNWmU.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-Bk3SF90a.js → ImageCropper.stories-Cj7_L3px.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-CM-YetP0.js → ImageRenderer-B8sjaCxb.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-CMqKyVuX.js → ImageRenderer.stories-BjjI8Xl3.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-9IjWDUev.js → ImageView.stories-DSQT9rOC.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-D-Zzvzh3.js → ImageViewer.stories-BwSjtNZu.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-BRWmVnG3.js → ImageViewerRuntime-BYsmm3rq.js} +1 -1
- package/storybook-static/assets/{Input-BaEhNNL0.js → Input-A2NM7h5s.js} +1 -1
- package/storybook-static/assets/{Input-YuUUu0DD.js → Input-DFpaY5iR.js} +1 -1
- package/storybook-static/assets/{Input.stories-CoJY4vR8.js → Input.stories-Dr3bILG0.js} +1 -1
- package/storybook-static/assets/{InputDateTime-CPlDTMTI.js → InputDateTime-B1HZuWxu.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-DaOA4pFM.js → InputDateTime.stories-BRgylAlk.js} +1 -1
- package/storybook-static/assets/{InputFile-7PMO3B4Q.js → InputFile-BiYYtArL.js} +1 -1
- package/storybook-static/assets/{InputFile-D2HPvbt_.js → InputFile-DJZa1zb6.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-CD4sJtXF.js → InputFile.stories-fGygLQ4u.js} +1 -1
- package/storybook-static/assets/{InputFiles-DwgBtqPe.js → InputFiles-BhE9kv5d.js} +1 -1
- package/storybook-static/assets/{InputFiles-DSOs_hpc.js → InputFiles-Dhx7VEsV.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-B2zPOUXW.js → InputFiles.stories-Dr4Qonyz.js} +1 -1
- package/storybook-static/assets/{InputFilesList-DWtH6HFC.js → InputFilesList-Cv2Gpuuc.js} +1 -1
- package/storybook-static/assets/{InputImage-Cke0I8XV.js → InputImage-CcGsKNGs.js} +1 -1
- package/storybook-static/assets/{InputImage-CnTU-bKF.js → InputImage-CsX9WLK_.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-CadyFqUh.js → InputImage.stories-DBXKFyN8.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-cNgymLXT.js → InteractiveComponents-o5dGoBer.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-c5kIdj-d.js → InteractiveComponents.stories-CbpCs1ke.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-u5tv4tmF.js → LayoutPicker-BTV50163.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-BydBdeCh.js → LayoutPicker-wQBp2vRv.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-ZcTgJxX5.js → LayoutPicker.stories-BA9v21Xx.js} +1 -1
- package/storybook-static/assets/Lexical.prod-DSYr9I3p.js +11 -0
- package/storybook-static/assets/{Listbox-CaBDvhDA.js → Listbox-CiYd52jg.js} +1 -1
- package/storybook-static/assets/{Listbox-CzmfAAEG.js → Listbox-RA3seYue.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-B_tFWmxp.js → Listbox.stories-DFPgEF8r.js} +1 -1
- package/storybook-static/assets/{NoData-CRi9NzcI.js → LoadingMessage-Ce0vqRgG.js} +1 -1
- package/storybook-static/assets/{Modal-DIJuHLSp.js → Modal-BQsAioCj.js} +1 -1
- package/storybook-static/assets/{Modal-CIptTLdh.js → Modal-BpU6G6JZ.js} +1 -1
- package/storybook-static/assets/{Modal.stories-BAh1Lzf0.js → Modal.stories-CQrrk4EW.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-DH2lt3jw.js → ModalManagerProvider-CoqdrSRD.js} +1 -1
- package/storybook-static/assets/{MultiSelect-CbcU2Cam.js → MultiSelect-CU9zjw_p.js} +1 -1
- package/storybook-static/assets/{MultiSelect-OPkS-VFp.js → MultiSelect-CZNPmVvS.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-jghnBwe0.js → MultiSelect.stories-DFz-EHdG.js} +1 -1
- package/storybook-static/assets/{MultiSelectCore-AgK9lN-8.js → MultiSelectCore-Cvyz709z.js} +1 -1
- package/storybook-static/assets/NoData-Db8STACh.js +1 -0
- package/storybook-static/assets/{NotificationsHost-C8sCDEzY.js → NotificationsHost-BfICsokh.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-BxpWtMHl.js → NotificationsHost.stories-DlihTcqk.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-Cjptiw3k.js → ODataMultiSelect-bFKNwfVi.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-B-tBcHkU.js → ODataMultiSelect.stories-dSgAmYNP.js} +1 -1
- package/storybook-static/assets/{ODataSelect-BdVlf2WW.js → ODataSelect-B-VxiKqe.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-DZv8DgW4.js → ODataSelect.stories-IrICK-VV.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-B83uLKnT.js → ODataTreeMultiSelect-1-ZKOoT5.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-k92VjXYz.js → ODataTreeMultiSelect.stories-Dj2gz4OX.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-CkZeBBoA.js → ODataTreeSelect-C03yKX3Q.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-COweaWEr.js → ODataTreeSelect.stories-BaWPoCj8.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-dD9RSWvg.js → OneStepScroller-C1e40EsR.js} +1 -1
- package/storybook-static/assets/{Option-lTkoUcHa.js → Option-DkhmepGt.js} +1 -1
- package/storybook-static/assets/{OptionButton-Bt6YtqRZ.js → OptionButton-CaOcFLRc.js} +1 -1
- package/storybook-static/assets/{OptionContent-C7Zoef1L.js → OptionContent-C2VjIa7E.js} +1 -1
- package/storybook-static/assets/{OptionContentContainer-xpO-es_t.js → OptionContentContainer-D9gbmo8X.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DkGZmPFu.js → PeriodSelect-CKHsqr9Q.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-CmGjITS0.js → PeriodSelect-DyuBxEQO.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-BxkZen1s.js → PeriodSelect.stories-Clvkah1Y.js} +1 -1
- package/storybook-static/assets/{PickerField-vwGcXNU3.js → PickerField-BeafhNsw.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-BVO2pwu2.js → PickerTriggerActions-DiC3sf79.js} +1 -1
- package/storybook-static/assets/{Popover-DU0wD6MT.js → Popover-CTWgpldX.js} +1 -1
- package/storybook-static/assets/{Popover-PRWJVARx.js → Popover-Cic2guk_.js} +1 -1
- package/storybook-static/assets/{Popover.stories-CXKDCIfT.js → Popover.stories-BN8W4Ioo.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-B1oR9Z-A.js → PresetRangeDateInput-BlwDGFlO.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-DUcxF5lh.js → PresetRangeDateInput-Cw-UACKj.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-CAPHV6_P.js → PresetRangeDateInput.stories-BW4A9N6I.js} +1 -1
- package/storybook-static/assets/{PresetSelect-Hrow5Qbz.js → PresetSelect-BROMDIaD.js} +1 -1
- package/storybook-static/assets/{README-CHgqsGMV.js → README--dlFTbfU.js} +1 -1
- package/storybook-static/assets/{README-w3_FegOo.js → README-0oBzUW7p.js} +1 -1
- package/storybook-static/assets/{README-CF5B-uBm.js → README-3_ON5xt9.js} +1 -1
- package/storybook-static/assets/{README-FJ4JNfan.js → README-B2Q8nqgC.js} +1 -1
- package/storybook-static/assets/{README-JqCoy91R.js → README-B2a17RtT.js} +1 -1
- package/storybook-static/assets/{README-Cb_U_ZYK.js → README-B2o_mu2p.js} +1 -1
- package/storybook-static/assets/{README-MUzkojYd.js → README-B4UtPkAG.js} +1 -1
- package/storybook-static/assets/{README-DjM1av8U.js → README-BC-mtx0Z.js} +1 -1
- package/storybook-static/assets/{README-mq6pyk4G.js → README-BEo-chiK.js} +1 -1
- package/storybook-static/assets/{README-CxBqJjI3.js → README-BKgDrLYy.js} +1 -1
- package/storybook-static/assets/{README-ctVjdbq7.js → README-BU-hpYkT.js} +1 -1
- package/storybook-static/assets/{README-BwSjP1rm.js → README-BZO4LN8h.js} +1 -1
- package/storybook-static/assets/{README-BCXjh3I1.js → README-Bt7qMnXG.js} +1 -1
- package/storybook-static/assets/{README-CDq7upsw.js → README-BzXKbqC2.js} +1 -1
- package/storybook-static/assets/{README-Xu3cmYZg.js → README-C0oFjEzk.js} +1 -1
- package/storybook-static/assets/{README-DmT1wyUb.js → README-C4DwwmPx.js} +1 -1
- package/storybook-static/assets/{README-C_hI3IVn.js → README-CC7qsfLO.js} +1 -1
- package/storybook-static/assets/{README-SkcZXYo1.js → README-CCA-VcWp.js} +1 -1
- package/storybook-static/assets/{README-D_iA9J4Q.js → README-CM3GEer1.js} +1 -1
- package/storybook-static/assets/{README-BCBBtU0T.js → README-CMm_WVI_.js} +1 -1
- package/storybook-static/assets/{README-BJXCE3us.js → README-Ch0dHOCi.js} +1 -1
- package/storybook-static/assets/{README-CRfg4Opx.js → README-CovA1JtH.js} +1 -1
- package/storybook-static/assets/{README-DA8e0atn.js → README-CsAmAsnQ.js} +1 -1
- package/storybook-static/assets/{README-DnpmMCNN.js → README-CsgpoZpo.js} +1 -1
- package/storybook-static/assets/{README-DYjyXvbd.js → README-CyTthj47.js} +1 -1
- package/storybook-static/assets/{README-O1ww7U1S.js → README-D42tlbcC.js} +1 -1
- package/storybook-static/assets/{README-CRk_ElRL.js → README-D7e1q280.js} +1 -1
- package/storybook-static/assets/{README-COzEPNJ8.js → README-DEIwHKH_.js} +1 -1
- package/storybook-static/assets/{README-DUVORqie.js → README-DJXuAagO.js} +1 -1
- package/storybook-static/assets/{README-CGalXaw7.js → README-DO98xR7D.js} +1 -1
- package/storybook-static/assets/{README-CdDd6nD8.js → README-DOCP85Ok.js} +1 -1
- package/storybook-static/assets/{README-De02nG6s.js → README-DV0qQm_q.js} +1 -1
- package/storybook-static/assets/{README-AWtoYOeO.js → README-D_wqIsQU.js} +1 -1
- package/storybook-static/assets/{README-BPOSX1IH.js → README-Da2MtxkC.js} +1 -1
- package/storybook-static/assets/{README-o-a96Aib.js → README-DgnwOBAf.js} +1 -1
- package/storybook-static/assets/{README-CDYORt73.js → README-Dh-aESek.js} +1 -1
- package/storybook-static/assets/{README-BLog3wnj.js → README-Dh3cmlxY.js} +1 -1
- package/storybook-static/assets/{README-CF79JAmm.js → README-DkqWljOh.js} +1 -1
- package/storybook-static/assets/{README-BEUQd7JO.js → README-Dns7UYFR.js} +1 -1
- package/storybook-static/assets/{README-bcnh89ek.js → README-Dp9qT5k5.js} +1 -1
- package/storybook-static/assets/{README-C8-H1dVZ.js → README-Dq_L-Ug6.js} +1 -1
- package/storybook-static/assets/{README-CTbRRHIT.js → README-DxnLeJiR.js} +1 -1
- package/storybook-static/assets/{README-Cu3r4RYC.js → README-JNaV5buf.js} +1 -1
- package/storybook-static/assets/{README-BDdhvdKa.js → README-Sg5qacmO.js} +1 -1
- package/storybook-static/assets/{README-BB_tSzAG.js → README-Y_9dubMU.js} +1 -1
- package/storybook-static/assets/{README-f5UPnPkY.js → README-Zi-FFn8W.js} +1 -1
- package/storybook-static/assets/{README-UfCsOg0n.js → README-g61K1aLN.js} +1 -1
- package/storybook-static/assets/{README-D0EguYwa.js → README-gW1fz6Ad.js} +1 -1
- package/storybook-static/assets/{README-CbCzYjzO.js → README-ivZpRido.js} +1 -1
- package/storybook-static/assets/{README-zelg96nd.js → README-kq33WRAi.js} +1 -1
- package/storybook-static/assets/{README-JrppLPED.js → README-lXA9AEv5.js} +1 -1
- package/storybook-static/assets/{README-BIHT1kGT.js → README-trL-e_Hw.js} +1 -1
- package/storybook-static/assets/{README-diVWU6bQ.js → README-yOf-BvTs.js} +1 -1
- package/storybook-static/assets/{RadioButton-BztQMLNR.js → RadioButton-Bc-qW8X4.js} +1 -1
- package/storybook-static/assets/{RadioButton-DUOPHyRt.js → RadioButton-dLi6i_d_.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-BOE5cGej.js → RadioButton.stories-fyW8-L85.js} +1 -1
- package/storybook-static/assets/RadioGroup-K_pYzh4S.js +1 -0
- package/storybook-static/assets/{RadioGroup-QICEWbjz.js → RadioGroup-hx5JHhIo.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-f2qU7hhM.js → RadioGroup.stories-DkJM4C8g.js} +1 -1
- package/storybook-static/assets/{ResponsiveLayoutPreview-BWBLsr8u.js → ResponsiveLayoutPreview-2trckzJQ.js} +1 -1
- package/storybook-static/assets/{Scrollable-CAnjXb6_.js → Scrollable-BKrnU0ak.js} +1 -1
- package/storybook-static/assets/{Scrollable-Cc641kuG.js → Scrollable-D4W1DFQg.js} +1 -1
- package/storybook-static/assets/{Scrollable.stories-ZQT-1f1f.js → Scrollable.stories-D27cJCFP.js} +1 -1
- package/storybook-static/assets/{Select-D6RLm9D5.js → Select-BdSn2R7K.js} +1 -1
- package/storybook-static/assets/{Select-BeoH_3V4.js → Select-DEZyRp-R.js} +1 -1
- package/storybook-static/assets/{Select.stories-DI6pVDzi.js → Select.stories-D1Z2CcxZ.js} +1 -1
- package/storybook-static/assets/{Separator-tkZoR8Ft.js → Separator-5i4GBBEP.js} +1 -1
- package/storybook-static/assets/{Separator-De9vEg4j.js → Separator-BgRJ7Ocd.js} +1 -1
- package/storybook-static/assets/{Separator.stories-CGZrsdLJ.js → Separator.stories-CgSiKmhl.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-BWgkYLIe.js → SerializableSelect-DyFu3F0w.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-BfGg_SmN.js → SerializableSelect.stories-DGeUH4C-.js} +1 -1
- package/storybook-static/assets/{ShimmerText-D1ygdKrh.js → ShimmerText-Dp8aRJ4I.js} +1 -1
- package/storybook-static/assets/{ShimmerText.stories-D5AB85Hj.js → ShimmerText.stories-Cf25PNCz.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-Bf2RpSbC.js → SingleDateTimeInput-Bzm87a3Z.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-C2O-fXgE.js → SingleDateTimeInput-DVFOi4lM.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-BUbSA1UY.js → SingleDateTimeInput.stories-ChMKxw-w.js} +1 -1
- package/storybook-static/assets/{Slider-CVPKS3XB.js → Slider-CyZ-Su8l.js} +1 -1
- package/storybook-static/assets/{Slider-BhfM7XZ9.js → Slider-DD9J2Qhk.js} +1 -1
- package/storybook-static/assets/{Slider.stories-C6ZUJc4b.js → Slider.stories-B8wpT9DE.js} +1 -1
- package/storybook-static/assets/{SliderInput-MMUGLDDl.js → SliderInput-CZ5RGazl.js} +1 -1
- package/storybook-static/assets/{SliderInput-PwHeDeo2.js → SliderInput-DI2fPYZP.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-zBDRonPh.js → SliderInput.stories-kV5nIvmp.js} +1 -1
- package/storybook-static/assets/{Sortable-BKNLJGIe.js → Sortable-BRJshDsd.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-CLY263mj.js → Sortable.stories-DWdCANF3.js} +1 -1
- package/storybook-static/assets/{Splitter-PyZco_V_.js → Splitter-amimlmxB.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-CY3Itq_G.js → Splitter.stories-Bp8FI1V5.js} +1 -1
- package/storybook-static/assets/{StateSelect-BlEIRWer.js → StateSelect-CEg--oWR.js} +1 -1
- package/storybook-static/assets/{StateSelect-DfUif3cG.js → StateSelect-U7CVxa71.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-ClSYkdz8.js → StateSelect.stories-DO2hudAT.js} +1 -1
- package/storybook-static/assets/{StatusIndicator-CL-WMBHT.js → StatusIndicator-BgS55kfh.js} +1 -1
- package/storybook-static/assets/{StatusIndicator.stories-BbpEocDe.js → StatusIndicator.stories-BThF4RAA.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-0r9TfflS.js → StringToggle.stories-DGpM8fWe.js} +1 -1
- package/storybook-static/assets/{Switch-HAWn3D1c.js → Switch-DuR6uVds.js} +1 -1
- package/storybook-static/assets/{Switch-AoVSoc9P.js → Switch-M0xvOjjd.js} +1 -1
- package/storybook-static/assets/{Switch.stories-D1VJIWsC.js → Switch.stories-4k1xDlbq.js} +1 -1
- package/storybook-static/assets/{Table-CyX8frK4.js → Table-BmYczjli.js} +1 -1
- package/storybook-static/assets/{Table.stories-DoGpFMZB.js → Table.stories-c1Yu2DYz.js} +1 -1
- package/storybook-static/assets/{TableEditor.stories-Mh6q2awx.js → TableEditor.stories-hIvit7LX.js} +1 -1
- package/storybook-static/assets/{Tabs-BZfNXmy0.js → Tabs-1AzTozGX.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-C9L4pJDb.js → Tabs.stories-DUQx0Ezh.js} +1 -1
- package/storybook-static/assets/TabsBox-DGdo-Cb1.js +2 -0
- package/storybook-static/assets/{TagInput-CPB6lb2J.js → TagInput-qylU7_PQ.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-CT6B8CVV.js → TagInput.stories-Bs78VRGv.js} +1 -1
- package/storybook-static/assets/{Text-AbSWZQO3.js → Text-C8ptoppM.js} +1 -1
- package/storybook-static/assets/TextEditorLexical.stories-DWCIfqOj.js +54 -0
- package/storybook-static/assets/TextEditorLexicalClient-B17un2t_.js +30 -0
- package/storybook-static/assets/TextEditorLexicalClient-CLf0OiWB.css +1 -0
- package/storybook-static/assets/TextEditorLexicalViewer-DRQG2UON.css +1 -0
- package/storybook-static/assets/TextEditorLexicalViewer.stories-IP2pavj0.js +66 -0
- package/storybook-static/assets/{Textarea-Bz9O1y1I.js → Textarea-Cpnrb2o_.js} +1 -1
- package/storybook-static/assets/{Textarea-BY51Li7J.js → Textarea-nCjyO4i5.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-CJbv3jrK.js → Textarea.stories-BNkapgda.js} +1 -1
- package/storybook-static/assets/{TimePanel-Wn5lUiwx.js → TimePanel-BQK5NbxR.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-dF5kTdp1.js → TimePanel.stories-DYq--6bF.js} +1 -1
- package/storybook-static/assets/{Toggle-CUO99pvo.js → Toggle-0Y7W-fPi.js} +1 -1
- package/storybook-static/assets/{Toggle-BpDn9f6k.js → Toggle-DVuWIK21.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-T1Hk_etn.js → Toggle.stories-DYZE2fC3.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-bqQExCm8.js → TreeMultiSelect-BM3xCVHR.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DEsECkRj.js → TreeMultiSelect-D7GJiBAt.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-DyK7bWZu.js → TreeMultiSelect.stories-D2JpEs59.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-BCbV37dL.js → TreePickerBase-BCpA1kfG.js} +2 -2
- package/storybook-static/assets/{TreeSelect-CTvlmF81.js → TreeSelect-BXBL2lAD.js} +1 -1
- package/storybook-static/assets/{TreeSelect-Cepr58wS.js → TreeSelect-D5oAYLRd.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-RVPMBCd_.js → TreeSelect.stories-emFXypZX.js} +1 -1
- package/storybook-static/assets/{TreeTable-DznOmuAD.js → TreeTable-CEyrFWSm.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-Lx2ImfgC.js → TreeTable.stories-DDcnv5XB.js} +1 -1
- package/storybook-static/assets/{blocks-u0CCD6I1.js → blocks-DvVybOVR.js} +4 -4
- package/storybook-static/assets/{check-CHvYWZD5.js → check-YfnFIyMh.js} +1 -1
- package/storybook-static/assets/{chevron-down-DqHAghNU.js → chevron-down-BjxDxv4C.js} +1 -1
- package/storybook-static/assets/{chevron-left-Bj7vIyg-.js → chevron-left-C0xgKKWw.js} +1 -1
- package/storybook-static/assets/{chevron-right-BUqG0v39.js → chevron-right-Bo0n7sEl.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-BSczDjJT.js → chunk-W22LQPXL-r7A3h_Tz.js} +1 -1
- package/storybook-static/assets/{circle-alert-DXUFM6uc.js → circle-alert-Dl_8Z1un.js} +1 -1
- package/storybook-static/assets/{circle-check-0x9vHUU_.js → circle-check-CS9puXbe.js} +1 -1
- package/storybook-static/assets/{contextMenu-D8PjjiwD.js → contextMenu-C7If_pOc.js} +1 -1
- package/storybook-static/assets/{download-15Eb3eUj.js → download-BWZFjl62.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-CypKyrM4.js → floating-ui.react-DoLsHxAF.js} +1 -1
- package/storybook-static/assets/{formatMultiSelectOptionCount-BxXwE0wd.js → formatMultiSelectOptionCount-Cb7rzikh.js} +1 -1
- package/storybook-static/assets/{formatters-DVE1YVNQ-CJCkXjuI.js → formatters-DVE1YVNQ-CimVV-di.js} +1 -1
- package/storybook-static/assets/{foundationApi-dmPNotab.js → foundationApi-DUDdWpQ2.js} +1 -1
- package/storybook-static/assets/{foundationLib-CyrgF87o.js → foundationLib-C0aoelQA.js} +1 -1
- package/storybook-static/assets/hooks-KqAveAk8.js +5 -0
- package/storybook-static/assets/{iframe-BmGorvhi.js → iframe-BwMqUCxF.js} +4 -4
- package/storybook-static/assets/iframe-CQgVo28z.js +1 -0
- package/storybook-static/assets/{info-HMSnCOw2.js → info-BzoIh38o.js} +1 -1
- package/storybook-static/assets/{isRecord-DXDTW-jA-DtM9YD3V.js → isRecord-DXDTW-jA-CMenzszF.js} +1 -1
- package/storybook-static/assets/odata-B4ZS5oGx.js +1 -0
- package/storybook-static/assets/{odataStoryFixtures-DiC-gXoK.js → odataStoryFixtures-BoXfGt8L.js} +1 -1
- package/storybook-static/assets/{react-BLxZ0fqY.js → react-BxTMipfI.js} +1 -1
- package/storybook-static/assets/{refresh-cw-Obk3FkLO.js → refresh-cw-DZHdlgJG.js} +1 -1
- package/storybook-static/assets/{settings-2-BQ2LYeiA.js → settings-2-CSUUgi_0.js} +1 -1
- package/storybook-static/assets/sortable-Bikh9uZC.js +1 -0
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-JUCJEf5U.js → syntaxhighlighter-QEQV7K2Y-BvV0CW9d.js} +1 -1
- package/storybook-static/assets/{trash-2-CzXfDl_F.js → trash-2-Csx302gq.js} +1 -1
- package/storybook-static/assets/{triangle-alert-Ww2Tuzxk.js → triangle-alert-CA_CSo3b.js} +1 -1
- package/storybook-static/assets/types-U_TJ2tHU.js +1 -0
- package/storybook-static/assets/{useODataSelectBase-DIZSERuU.js → useODataSelectBase-Dmlavp_v.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-DLgIiNMG.js → useODataTreeData-W3o26svk.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-BZ1Hrn2J.js → usePickerQuery-IBbvSDWi.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-BIarg6M4.js → usePickerTriggerController-Cy-RrU3A.js} +1 -1
- package/storybook-static/assets/{utils-tg3ibbzi.js → utils-DiA8FLax.js} +1 -1
- package/storybook-static/assets/validators-CLNEY_Fa.js +1 -0
- package/storybook-static/assets/{x-BmlmEU-a.js → x-CP7phAx6.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/dist/chunks/TextEditorLexicalClient-Cj6yjCGm.js.map +0 -1
- package/storybook-static/assets/FormattedTableCell-CdlWquoj.js +0 -15
- package/storybook-static/assets/RadioGroup-CDqbnv4J.js +0 -1
- package/storybook-static/assets/TabsBox-qRCIBtqi.js +0 -2
- package/storybook-static/assets/hooks-DM8_3IU2.js +0 -5
- package/storybook-static/assets/iframe-WuXBbC_P.js +0 -1
- package/storybook-static/assets/odata-DLogt0PY.js +0 -1
- package/storybook-static/assets/sortable-BrLDYUp8.js +0 -1
- package/storybook-static/assets/validators-D82aYLRK.js +0 -1
- /package/storybook-static/assets/{NoData-C7KqaHUh.css → LoadingMessage-C7KqaHUh.css} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextEditorLexicalViewer.d.ts","sourceRoot":"","sources":["../../src/text-editor/TextEditorLexicalViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAIhD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAM1D,MAAM,MAAM,4BAA4B,GAAG,QAAQ,CAAC;IACnD,GAAG,EAAE,oBAAoB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC,CAAC;AAEH,mGAAmG;AACnG,wBAAgB,uBAAuB,CAAC,EACvC,GAAG,EACH,SAAS,EACT,QAAmD,EACnD,EAAE,4BAA4B,+BAqB9B"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { ComponentType } from "react";
|
|
1
|
+
import { type ComponentProps, type ComponentType } from "react";
|
|
2
|
+
import { type TextEditorBlockStyle } from "./model/textEditorTypes";
|
|
3
|
+
import { type LinkTypes } from "./toolbar/types";
|
|
2
4
|
export type TextEditorLexicalRaw = {
|
|
3
5
|
format: "lexical";
|
|
4
6
|
version: 1;
|
|
@@ -10,12 +12,25 @@ export type TextEditorData<TRaw = unknown> = {
|
|
|
10
12
|
};
|
|
11
13
|
export interface TextEditorToolbarComponents {
|
|
12
14
|
blocks?: boolean;
|
|
15
|
+
/** Сужает включённую группу blocks; отсутствие сохраняет прежний полный набор. Не фильтрует документ. */
|
|
16
|
+
blockStyles?: readonly TextEditorBlockStyle[];
|
|
13
17
|
links?: boolean;
|
|
18
|
+
/** Сужает включённую группу links в каноническом порядке; пустой список скрывает группу. */
|
|
19
|
+
linkTypes?: readonly LinkTypes[];
|
|
14
20
|
history?: boolean;
|
|
15
21
|
alignment?: boolean;
|
|
16
22
|
inline?: boolean;
|
|
17
23
|
tags?: boolean;
|
|
24
|
+
/** Независимая кнопка очистки semantic tag; по умолчанию сохраняется для прежних consumers. */
|
|
25
|
+
clearSemanticTag?: boolean;
|
|
18
26
|
}
|
|
27
|
+
/** Только атрибуты доступности editable: consumer не подменяет обработчики и DOM-контракт Lexical. */
|
|
28
|
+
export type TextEditorEditableProps = Readonly<Pick<ComponentProps<"div">, "id" | "aria-label" | "aria-labelledby" | "aria-describedby" | "aria-invalid" | "aria-required">>;
|
|
29
|
+
/** Опции диалога внешней ссылки; не являются валидатором initial raw или вставленного документа. */
|
|
30
|
+
export type TextEditorExternalLinkOptions = Readonly<{
|
|
31
|
+
/** false скрывает QR-переключатель и записывает qrCode=false при подтверждении; по умолчанию true. */
|
|
32
|
+
allowQrCode?: boolean;
|
|
33
|
+
}>;
|
|
19
34
|
export interface LocalLinkDialogAdapterProps {
|
|
20
35
|
isOpen: boolean;
|
|
21
36
|
onClose: () => void;
|
|
@@ -29,6 +44,8 @@ export interface TextEditorCoreProps<TRaw = unknown> {
|
|
|
29
44
|
onChange: (data: TextEditorData<TextEditorLexicalRaw>) => void;
|
|
30
45
|
toolbarComponents?: TextEditorToolbarComponents;
|
|
31
46
|
businessAdapters?: TextEditorBusinessAdapters;
|
|
47
|
+
editableProps?: TextEditorEditableProps;
|
|
48
|
+
externalLinkOptions?: TextEditorExternalLinkOptions;
|
|
32
49
|
}
|
|
33
50
|
export declare const isLexicalTextRaw: (raw: unknown) => raw is TextEditorLexicalRaw;
|
|
34
51
|
//# sourceMappingURL=editorModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editorModel.d.ts","sourceRoot":"","sources":["../../src/text-editor/editorModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"editorModel.d.ts","sourceRoot":"","sources":["../../src/text-editor/editorModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAEhE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,IAAI,GAAG,OAAO,IAAI;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;CACV,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yGAAyG;IACzG,WAAW,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,sGAAsG;AACtG,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAC7C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe,CAAC,CAC5H,CAAC;AAEF,oGAAoG;AACpG,MAAM,MAAM,6BAA6B,GAAG,QAAQ,CAAC;IACpD,sGAAsG;IACtG,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,WAAW,2BAA2B;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,0BAA0B;IAC1C,wBAAwB,CAAC,EAAE,aAAa,CAAC,2BAA2B,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,mBAAmB,CAAC,IAAI,GAAG,OAAO;IAClD,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC;IAC/D,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;IAChD,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;IAC9C,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,mBAAmB,CAAC,EAAE,6BAA6B,CAAC;CACpD;AAED,eAAO,MAAM,gBAAgB,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,oBAKtD,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { TextEditorLexical } from "./TextEditorLexical";
|
|
2
|
-
export
|
|
2
|
+
export { TextEditorLexicalViewer, type TextEditorLexicalViewerProps } from "./TextEditorLexicalViewer";
|
|
3
|
+
export type { LocalLinkDialogAdapterProps, TextEditorBusinessAdapters, TextEditorCoreProps, TextEditorData, TextEditorEditableProps, TextEditorExternalLinkOptions, TextEditorLexicalRaw, TextEditorToolbarComponents } from "./editorModel";
|
|
3
4
|
export { isLexicalTextRaw } from "./editorModel";
|
|
4
5
|
export type { LinkType, TextEditorLinkState } from "./linkTypes";
|
|
5
6
|
export { LinkTypes, TagTypes } from "./toolbar";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/text-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EACX,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/text-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,KAAK,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACvG,YAAY,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,6BAA6B,EAC7B,oBAAoB,EACpB,2BAA2B,EAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EACX,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { m as e } from "../chunks/misc-Dcr24uDY.js";
|
|
2
2
|
import { a as t, n, t as r } from "../chunks/types-CxXyru6U.js";
|
|
3
|
-
import {
|
|
3
|
+
import { cn as i } from "@ryuzaki13/react-foundation-lib/utils";
|
|
4
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
5
|
+
import { useMemo as o } from "react";
|
|
6
|
+
import { isPlainObject as s, isRecord as c } from "@ryuzaki13/react-foundation-lib/validators";
|
|
7
|
+
import { IS_BOLD as l, IS_CODE as u, IS_HIGHLIGHT as d, IS_ITALIC as f, IS_STRIKETHROUGH as p, IS_SUBSCRIPT as m, IS_SUPERSCRIPT as h, IS_UNDERLINE as g } from "lexical";
|
|
4
8
|
//#region src/text-editor/TextEditorLexical.tsx
|
|
5
|
-
function
|
|
6
|
-
return import("../chunks/TextEditorLexicalClient-
|
|
9
|
+
function _() {
|
|
10
|
+
return import("../chunks/TextEditorLexicalClient-BwKsJG31.js").then((e) => ({ TextEditorLexicalClient: e.TextEditorLexicalClient }));
|
|
7
11
|
}
|
|
8
|
-
function
|
|
9
|
-
return /* @__PURE__ */
|
|
12
|
+
function v(t) {
|
|
13
|
+
return /* @__PURE__ */ a(e, {
|
|
10
14
|
clientOnly: !0,
|
|
11
|
-
importFunc:
|
|
15
|
+
importFunc: _,
|
|
12
16
|
componentName: "TextEditorLexicalClient",
|
|
13
17
|
cacheKey: "shared-ui:text-editor-lexical-client",
|
|
14
18
|
fallback: null,
|
|
@@ -16,6 +20,293 @@ function o(t) {
|
|
|
16
20
|
});
|
|
17
21
|
}
|
|
18
22
|
//#endregion
|
|
19
|
-
|
|
23
|
+
//#region src/text-editor/lib/viewer/getTextEditorViewerElementStyle.ts
|
|
24
|
+
function y(e) {
|
|
25
|
+
return {
|
|
26
|
+
textAlign: e.alignment || void 0,
|
|
27
|
+
marginInlineStart: e.indent ? `min(${e.indent} * var(--space-lg), 25%)` : void 0
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region src/text-editor/lib/viewer/resolveTextEditorViewerLink.ts
|
|
32
|
+
function b(e) {
|
|
33
|
+
if (typeof e != "string" || e.length === 0 || /[\s\u0000-\u001f\u007f]/u.test(e) || !URL.canParse(e)) return null;
|
|
34
|
+
let t = new URL(e);
|
|
35
|
+
return t.protocol !== "http:" && t.protocol !== "https:" || !t.hostname || t.username || t.password ? null : t.href;
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region src/text-editor/lib/viewer/parseTextEditorViewerDocument.ts
|
|
39
|
+
var x = 1e4, S = 32, C = 1e6, w = 32, T = l | f | p | g | u | m | h | d, E = [
|
|
40
|
+
"type",
|
|
41
|
+
"version",
|
|
42
|
+
"children",
|
|
43
|
+
"direction",
|
|
44
|
+
"format",
|
|
45
|
+
"indent",
|
|
46
|
+
"textFormat",
|
|
47
|
+
"textStyle"
|
|
48
|
+
], D = [
|
|
49
|
+
...E,
|
|
50
|
+
"url",
|
|
51
|
+
"target",
|
|
52
|
+
"rel",
|
|
53
|
+
"title"
|
|
54
|
+
], O = [
|
|
55
|
+
...D,
|
|
56
|
+
"ariaLabel",
|
|
57
|
+
"qrCode",
|
|
58
|
+
"add",
|
|
59
|
+
"text"
|
|
60
|
+
], k = { status: "invalid" };
|
|
61
|
+
function A(e) {
|
|
62
|
+
if (!c(e) || !s(e)) return null;
|
|
63
|
+
let t = Reflect.ownKeys(e);
|
|
64
|
+
if (t.length > O.length) return null;
|
|
65
|
+
for (let n of t) {
|
|
66
|
+
if (typeof n != "string") return null;
|
|
67
|
+
let t = Object.getOwnPropertyDescriptor(e, n);
|
|
68
|
+
if (!t || !t.enumerable || !("value" in t)) return null;
|
|
69
|
+
}
|
|
70
|
+
return e;
|
|
71
|
+
}
|
|
72
|
+
function j(e, t) {
|
|
73
|
+
return Object.keys(e).every((e) => t.includes(e));
|
|
74
|
+
}
|
|
75
|
+
function M(e) {
|
|
76
|
+
return typeof e == "number" && Number.isSafeInteger(e) && e >= 0 && e <= T && (e & ~T) === 0;
|
|
77
|
+
}
|
|
78
|
+
function N(e, t) {
|
|
79
|
+
return typeof e == "string" && (t.textUnits += e.length, t.textUnits <= C);
|
|
80
|
+
}
|
|
81
|
+
function P(e) {
|
|
82
|
+
return typeof e == "number" && Number.isSafeInteger(e) && e > 0;
|
|
83
|
+
}
|
|
84
|
+
function F(e) {
|
|
85
|
+
let t = e.direction, n = e.format, r = e.indent;
|
|
86
|
+
return t !== null && t !== "ltr" && t !== "rtl" || n !== "" && n !== "left" && n !== "right" && n !== "center" && n !== "justify" && n !== "start" && n !== "end" || typeof r != "number" || !Number.isSafeInteger(r) || r < 0 || r > w || e.textFormat !== void 0 && !M(e.textFormat) || e.textStyle !== void 0 && e.textStyle !== "" ? null : {
|
|
87
|
+
direction: t,
|
|
88
|
+
alignment: n,
|
|
89
|
+
indent: r
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function I(e) {
|
|
93
|
+
return e.type === "text" || e.type === "linebreak" || e.type === "link";
|
|
94
|
+
}
|
|
95
|
+
function L(e) {
|
|
96
|
+
return e.type === "text" || e.type === "linebreak";
|
|
97
|
+
}
|
|
98
|
+
function R(e) {
|
|
99
|
+
return e.type === "paragraph" || e.type === "quote" || e.type === "heading" || e.type === "list";
|
|
100
|
+
}
|
|
101
|
+
function z(e) {
|
|
102
|
+
return e.type === "listitem";
|
|
103
|
+
}
|
|
104
|
+
function B(e) {
|
|
105
|
+
return I(e) || e.type === "list";
|
|
106
|
+
}
|
|
107
|
+
function V(e, t, n, r) {
|
|
108
|
+
if (!Array.isArray(e) || Object.getPrototypeOf(e) !== Array.prototype || e.length > x || Reflect.ownKeys(e).length !== e.length + 1) return null;
|
|
109
|
+
let i = [];
|
|
110
|
+
for (let a = 0; a < e.length; a++) {
|
|
111
|
+
let o = Object.getOwnPropertyDescriptor(e, a);
|
|
112
|
+
if (!o || !("value" in o)) return null;
|
|
113
|
+
let s = H(o.value, t, n);
|
|
114
|
+
if (!s || !r(s)) return null;
|
|
115
|
+
i.push(s);
|
|
116
|
+
}
|
|
117
|
+
return i;
|
|
118
|
+
}
|
|
119
|
+
function H(e, t, n) {
|
|
120
|
+
if (++t.nodes > x || n > S) return null;
|
|
121
|
+
let r = A(e);
|
|
122
|
+
if (!r || r.version !== 1) return null;
|
|
123
|
+
if (r.type === "text") return !j(r, [
|
|
124
|
+
"type",
|
|
125
|
+
"version",
|
|
126
|
+
"detail",
|
|
127
|
+
"format",
|
|
128
|
+
"mode",
|
|
129
|
+
"style",
|
|
130
|
+
"text"
|
|
131
|
+
]) || r.detail !== 0 || r.mode !== "normal" || r.style !== "" || !M(r.format) || !N(r.text, t) ? null : {
|
|
132
|
+
type: "text",
|
|
133
|
+
text: r.text,
|
|
134
|
+
format: r.format
|
|
135
|
+
};
|
|
136
|
+
if (r.type === "linebreak") return j(r, ["type", "version"]) ? { type: "linebreak" } : null;
|
|
137
|
+
let i = F(r);
|
|
138
|
+
if (!i) return null;
|
|
139
|
+
switch (r.type) {
|
|
140
|
+
case "paragraph":
|
|
141
|
+
case "quote": {
|
|
142
|
+
if (!j(r, E)) return null;
|
|
143
|
+
let e = V(r.children, t, n + 1, I);
|
|
144
|
+
return e ? {
|
|
145
|
+
...i,
|
|
146
|
+
type: r.type,
|
|
147
|
+
children: e
|
|
148
|
+
} : null;
|
|
149
|
+
}
|
|
150
|
+
case "heading": {
|
|
151
|
+
if (!j(r, [...E, "tag"])) return null;
|
|
152
|
+
let e = r.tag;
|
|
153
|
+
if (e !== "h1" && e !== "h2" && e !== "h3" && e !== "h4" && e !== "h5" && e !== "h6") return null;
|
|
154
|
+
let a = V(r.children, t, n + 1, I);
|
|
155
|
+
return a ? {
|
|
156
|
+
...i,
|
|
157
|
+
type: "heading",
|
|
158
|
+
tag: e,
|
|
159
|
+
children: a
|
|
160
|
+
} : null;
|
|
161
|
+
}
|
|
162
|
+
case "list": {
|
|
163
|
+
if (!j(r, [
|
|
164
|
+
...E,
|
|
165
|
+
"listType",
|
|
166
|
+
"tag",
|
|
167
|
+
"start"
|
|
168
|
+
]) || !P(r.start)) return null;
|
|
169
|
+
let e = r.listType;
|
|
170
|
+
if (!(e === "bullet" && r.tag === "ul" || e === "number" && r.tag === "ol")) return null;
|
|
171
|
+
let a = V(r.children, t, n + 1, z);
|
|
172
|
+
return a ? {
|
|
173
|
+
...i,
|
|
174
|
+
type: "list",
|
|
175
|
+
listType: e,
|
|
176
|
+
start: r.start,
|
|
177
|
+
children: a
|
|
178
|
+
} : null;
|
|
179
|
+
}
|
|
180
|
+
case "listitem": {
|
|
181
|
+
if (!j(r, [
|
|
182
|
+
...E,
|
|
183
|
+
"value",
|
|
184
|
+
"checked"
|
|
185
|
+
]) || !P(r.value) || r.checked !== void 0) return null;
|
|
186
|
+
let e = V(r.children, t, n + 1, B);
|
|
187
|
+
return e ? {
|
|
188
|
+
...i,
|
|
189
|
+
type: "listitem",
|
|
190
|
+
value: r.value,
|
|
191
|
+
children: e
|
|
192
|
+
} : null;
|
|
193
|
+
}
|
|
194
|
+
case "link":
|
|
195
|
+
case "accessible-link": {
|
|
196
|
+
if (!j(r, r.type === "link" ? D : O) || !N(r.url, t)) return null;
|
|
197
|
+
let e = b(r.url);
|
|
198
|
+
if (!e || r.target !== null && r.target !== void 0 && r.target !== "_self" && r.target !== "_blank" || r.rel !== void 0 && r.rel !== null && !N(r.rel, t) || r.title !== void 0 && r.title !== null && !N(r.title, t) || r.type === "accessible-link" && (r.qrCode !== void 0 && r.qrCode !== !1 || r.add !== void 0 && r.add !== null || r.text !== void 0 && r.text !== null && !N(r.text, t) || r.ariaLabel !== void 0 && r.ariaLabel !== null && !N(r.ariaLabel, t))) return null;
|
|
199
|
+
let a = V(r.children, t, n + 1, L);
|
|
200
|
+
return a ? {
|
|
201
|
+
...i,
|
|
202
|
+
type: "link",
|
|
203
|
+
url: e,
|
|
204
|
+
target: r.target === "_blank" ? "_blank" : "_self",
|
|
205
|
+
ariaLabel: typeof r.ariaLabel == "string" ? r.ariaLabel : null,
|
|
206
|
+
title: typeof r.title == "string" ? r.title : null,
|
|
207
|
+
children: a
|
|
208
|
+
} : null;
|
|
209
|
+
}
|
|
210
|
+
default: return null;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
function U(e) {
|
|
214
|
+
let t = A(e);
|
|
215
|
+
if (!t || !j(t, [
|
|
216
|
+
"format",
|
|
217
|
+
"version",
|
|
218
|
+
"editorState"
|
|
219
|
+
]) || t.format !== "lexical" || t.version !== 1) return k;
|
|
220
|
+
let n = A(t.editorState);
|
|
221
|
+
if (!n || !j(n, ["root"])) return k;
|
|
222
|
+
let r = A(n.root);
|
|
223
|
+
if (!r || !j(r, E) || r.type !== "root" || r.version !== 1) return k;
|
|
224
|
+
let i = F(r);
|
|
225
|
+
if (!i) return k;
|
|
226
|
+
let a = V(r.children, {
|
|
227
|
+
nodes: 1,
|
|
228
|
+
textUnits: 0
|
|
229
|
+
}, 1, R);
|
|
230
|
+
return a ? {
|
|
231
|
+
status: "valid",
|
|
232
|
+
element: i,
|
|
233
|
+
children: a
|
|
234
|
+
} : k;
|
|
235
|
+
}
|
|
236
|
+
var W = { viewer: "IFCV0m" };
|
|
237
|
+
//#endregion
|
|
238
|
+
//#region src/text-editor/ui/viewer/TextEditorViewerText.tsx
|
|
239
|
+
function G({ node: e }) {
|
|
240
|
+
let t = e.text;
|
|
241
|
+
return e.format & l && (t = /* @__PURE__ */ a("strong", { children: t })), e.format & f && (t = /* @__PURE__ */ a("em", { children: t })), e.format & g && (t = /* @__PURE__ */ a("u", { children: t })), e.format & p && (t = /* @__PURE__ */ a("s", { children: t })), e.format & u && (t = /* @__PURE__ */ a("code", { children: t })), e.format & d && (t = /* @__PURE__ */ a("mark", { children: t })), e.format & m && (t = /* @__PURE__ */ a("sub", { children: t })), e.format & h && (t = /* @__PURE__ */ a("sup", { children: t })), t;
|
|
242
|
+
}
|
|
243
|
+
//#endregion
|
|
244
|
+
//#region src/text-editor/ui/viewer/TextEditorViewerNode.tsx
|
|
245
|
+
function K({ node: e }) {
|
|
246
|
+
if (e.type === "text") return /* @__PURE__ */ a(G, { node: e });
|
|
247
|
+
if (e.type === "linebreak") return /* @__PURE__ */ a("br", {});
|
|
248
|
+
let t = e.children.map((e, t) => /* @__PURE__ */ a(K, { node: e }, t)), n = {
|
|
249
|
+
dir: e.direction ?? void 0,
|
|
250
|
+
style: y(e)
|
|
251
|
+
};
|
|
252
|
+
switch (e.type) {
|
|
253
|
+
case "paragraph": return /* @__PURE__ */ a("p", {
|
|
254
|
+
...n,
|
|
255
|
+
children: t.length ? t : /* @__PURE__ */ a("br", {})
|
|
256
|
+
});
|
|
257
|
+
case "quote": return /* @__PURE__ */ a("blockquote", {
|
|
258
|
+
...n,
|
|
259
|
+
children: t
|
|
260
|
+
});
|
|
261
|
+
case "heading": {
|
|
262
|
+
let r = e.tag;
|
|
263
|
+
return /* @__PURE__ */ a(r, {
|
|
264
|
+
...n,
|
|
265
|
+
children: t
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
case "link": return /* @__PURE__ */ a("a", {
|
|
269
|
+
...n,
|
|
270
|
+
href: e.url,
|
|
271
|
+
target: e.target,
|
|
272
|
+
rel: e.target === "_blank" ? "noopener noreferrer" : void 0,
|
|
273
|
+
"aria-label": e.ariaLabel ?? void 0,
|
|
274
|
+
title: e.title ?? void 0,
|
|
275
|
+
children: t
|
|
276
|
+
});
|
|
277
|
+
case "list": return e.listType === "number" ? /* @__PURE__ */ a("ol", {
|
|
278
|
+
...n,
|
|
279
|
+
start: e.start,
|
|
280
|
+
children: t
|
|
281
|
+
}) : /* @__PURE__ */ a("ul", {
|
|
282
|
+
...n,
|
|
283
|
+
children: t
|
|
284
|
+
});
|
|
285
|
+
case "listitem": return /* @__PURE__ */ a("li", {
|
|
286
|
+
...n,
|
|
287
|
+
value: e.value,
|
|
288
|
+
"data-nested-list": e.children.length === 1 && e.children[0]?.type === "list" ? "true" : void 0,
|
|
289
|
+
children: t
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
//#endregion
|
|
294
|
+
//#region src/text-editor/TextEditorLexicalViewer.tsx
|
|
295
|
+
function q({ raw: e, className: t, fallback: n = "Содержимое недоступно для отображения." }) {
|
|
296
|
+
let r = o(() => U(e), [e]);
|
|
297
|
+
return r.status === "invalid" ? /* @__PURE__ */ a("div", {
|
|
298
|
+
className: i(W.viewer, t),
|
|
299
|
+
"data-text-editor-viewer": "unsupported",
|
|
300
|
+
children: n
|
|
301
|
+
}) : /* @__PURE__ */ a("div", {
|
|
302
|
+
className: i(W.viewer, t),
|
|
303
|
+
"data-text-editor-viewer": "ready",
|
|
304
|
+
dir: r.element.direction ?? void 0,
|
|
305
|
+
style: y(r.element),
|
|
306
|
+
children: r.children.map((e, t) => /* @__PURE__ */ a(K, { node: e }, t))
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
//#endregion
|
|
310
|
+
export { r as LinkTypes, n as TagTypes, v as TextEditorLexical, q as TextEditorLexicalViewer, t as isLexicalTextRaw };
|
|
20
311
|
|
|
21
312
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/text-editor/TextEditorLexical.tsx"],"sourcesContent":["import { LazyDynamicComponent } from \"../misc\";\n\nimport type { TextEditorCoreProps } from \"./editorModel\";\n\nfunction importTextEditorLexicalClient() {\n\tif (import.meta.env.SSR) return Promise.resolve(null);\n\n\treturn import(\"./TextEditorLexicalClient\").then((module) => ({\n\t\tTextEditorLexicalClient: module.TextEditorLexicalClient\n\t}));\n}\n\n/**\n * Client-only граница редактора: Lexical использует DOM и не должен попадать в SSR-исполнение.\n */\nexport function TextEditorLexical(props: TextEditorCoreProps) {\n\treturn (\n\t\t<LazyDynamicComponent<TextEditorCoreProps>\n\t\t\tclientOnly\n\t\t\timportFunc={importTextEditorLexicalClient}\n\t\t\tcomponentName=\"TextEditorLexicalClient\"\n\t\t\tcacheKey=\"shared-ui:text-editor-lexical-client\"\n\t\t\tfallback={null}\n\t\t\tprops={props}\n\t\t/>\n\t);\n}\n"],"mappings":";;;;AAIA,SAAS,IAAgC;CAGxC,OAAO,OAAO,gDAA4B,CAAC,MAAM,OAAY,EAC5D,yBAAyB,EAAO,wBACjC,EAAE;AACH;AAKA,SAAgB,EAAkB,GAA4B;CAC7D,OACC,kBAAC,GAAD;EACC,YAAA;EACA,YAAY;EACZ,eAAc;EACd,UAAS;EACT,UAAU;EACH;CACP,CAAA;AAEH"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/text-editor/TextEditorLexical.tsx","../../src/text-editor/lib/viewer/getTextEditorViewerElementStyle.ts","../../src/text-editor/lib/viewer/resolveTextEditorViewerLink.ts","../../src/text-editor/lib/viewer/parseTextEditorViewerDocument.ts","../../src/text-editor/TextEditorLexicalViewer.module.scss","../../src/text-editor/ui/viewer/TextEditorViewerText.tsx","../../src/text-editor/ui/viewer/TextEditorViewerNode.tsx","../../src/text-editor/TextEditorLexicalViewer.tsx"],"sourcesContent":["import { LazyDynamicComponent } from \"../misc\";\n\nimport type { TextEditorCoreProps } from \"./editorModel\";\n\nfunction importTextEditorLexicalClient() {\n\tif (import.meta.env.SSR) return Promise.resolve(null);\n\n\treturn import(\"./TextEditorLexicalClient\").then((module) => ({\n\t\tTextEditorLexicalClient: module.TextEditorLexicalClient\n\t}));\n}\n\n/**\n * Client-only граница редактора: Lexical использует DOM и не должен попадать в SSR-исполнение.\n */\nexport function TextEditorLexical(props: TextEditorCoreProps) {\n\treturn (\n\t\t<LazyDynamicComponent<TextEditorCoreProps>\n\t\t\tclientOnly\n\t\t\timportFunc={importTextEditorLexicalClient}\n\t\t\tcomponentName=\"TextEditorLexicalClient\"\n\t\t\tcacheKey=\"shared-ui:text-editor-lexical-client\"\n\t\t\tfallback={null}\n\t\t\tprops={props}\n\t\t/>\n\t);\n}\n","import { type CSSProperties } from \"react\";\n\nimport { type TextEditorViewerElement } from \"../../model/textEditorViewerTypes\";\n\n/** CSS получает только проверенные enum/число; произвольный style из raw сюда не попадает. */\nexport function getTextEditorViewerElementStyle(element: TextEditorViewerElement): CSSProperties {\n\treturn {\n\t\ttextAlign: element.alignment || undefined,\n\t\tmarginInlineStart: element.indent ? `min(${element.indent} * var(--space-lg), 25%)` : undefined\n\t};\n}\n","/** URL не зависит от browser origin: сервер и клиент принимают одну абсолютную безопасную форму. */\nexport function resolveTextEditorViewerLink(input: unknown): string | null {\n\tif (typeof input !== \"string\" || input.length === 0 || /[\\s\\u0000-\\u001f\\u007f]/u.test(input)) return null;\n\tif (!URL.canParse(input)) return null;\n\tconst url = new URL(input);\n\tif ((url.protocol !== \"http:\" && url.protocol !== \"https:\") || !url.hostname || url.username || url.password) return null;\n\treturn url.href;\n}\n","import { isPlainObject, isRecord } from \"@ryuzaki13/react-foundation-lib/validators\";\nimport { IS_BOLD, IS_CODE, IS_HIGHLIGHT, IS_ITALIC, IS_STRIKETHROUGH, IS_SUBSCRIPT, IS_SUPERSCRIPT, IS_UNDERLINE } from \"lexical\";\n\nimport {\n\ttype TextEditorViewerBlock,\n\ttype TextEditorViewerDocument,\n\ttype TextEditorViewerElement,\n\ttype TextEditorViewerInline,\n\ttype TextEditorViewerLineBreak,\n\ttype TextEditorViewerList,\n\ttype TextEditorViewerListItem,\n\ttype TextEditorViewerNode,\n\ttype TextEditorViewerText\n} from \"../../model/textEditorViewerTypes\";\n\nimport { resolveTextEditorViewerLink } from \"./resolveTextEditorViewerLink\";\n\nconst MAX_NODE_COUNT = 10_000;\nconst MAX_NODE_DEPTH = 32;\nconst MAX_TEXT_UNITS = 1_000_000;\nconst MAX_INDENT = 32;\nconst INLINE_FORMAT_MASK = IS_BOLD | IS_ITALIC | IS_STRIKETHROUGH | IS_UNDERLINE | IS_CODE | IS_SUBSCRIPT | IS_SUPERSCRIPT | IS_HIGHLIGHT;\nconst ELEMENT_FIELDS = [\"type\", \"version\", \"children\", \"direction\", \"format\", \"indent\", \"textFormat\", \"textStyle\"];\nconst LINK_FIELDS = [...ELEMENT_FIELDS, \"url\", \"target\", \"rel\", \"title\"];\nconst ACCESSIBLE_LINK_FIELDS = [...LINK_FIELDS, \"ariaLabel\", \"qrCode\", \"add\", \"text\"];\nconst INVALID_DOCUMENT: TextEditorViewerDocument = { status: \"invalid\" };\n\ntype ViewerParseBudget = { nodes: number; textUnits: number };\n\n/** Accessor и prototype objects не являются сериализованными данными; не вызываем чужой getter при render. */\nfunction readPlainRecord(input: unknown): Record<string, unknown> | null {\n\tif (!isRecord(input) || !isPlainObject(input)) return null;\n\tconst keys = Reflect.ownKeys(input);\n\tif (keys.length > ACCESSIBLE_LINK_FIELDS.length) return null;\n\tfor (const key of keys) {\n\t\tif (typeof key !== \"string\") return null;\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(input, key);\n\t\tif (!descriptor || !descriptor.enumerable || !(\"value\" in descriptor)) return null;\n\t}\n\treturn input;\n}\n\nfunction hasOnlyFields(input: Record<string, unknown>, fields: readonly string[]): boolean {\n\treturn Object.keys(input).every((key) => fields.includes(key));\n}\n\nfunction isInlineFormat(input: unknown): input is number {\n\treturn (\n\t\ttypeof input === \"number\" &&\n\t\tNumber.isSafeInteger(input) &&\n\t\tinput >= 0 &&\n\t\tinput <= INLINE_FORMAT_MASK &&\n\t\t(input & ~INLINE_FORMAT_MASK) === 0\n\t);\n}\n\nfunction consumeText(input: unknown, budget: ViewerParseBudget): input is string {\n\tif (typeof input !== \"string\") return false;\n\tbudget.textUnits += input.length;\n\treturn budget.textUnits <= MAX_TEXT_UNITS;\n}\n\nfunction isPositiveInteger(input: unknown): input is number {\n\treturn typeof input === \"number\" && Number.isSafeInteger(input) && input > 0;\n}\n\nfunction readElement(input: Record<string, unknown>): TextEditorViewerElement | null {\n\tconst direction = input.direction;\n\tconst alignment = input.format;\n\tconst indent = input.indent;\n\tif (direction !== null && direction !== \"ltr\" && direction !== \"rtl\") return null;\n\tif (\n\t\talignment !== \"\" &&\n\t\talignment !== \"left\" &&\n\t\talignment !== \"right\" &&\n\t\talignment !== \"center\" &&\n\t\talignment !== \"justify\" &&\n\t\talignment !== \"start\" &&\n\t\talignment !== \"end\"\n\t)\n\t\treturn null;\n\tif (typeof indent !== \"number\" || !Number.isSafeInteger(indent) || indent < 0 || indent > MAX_INDENT) return null;\n\tif ((input.textFormat !== undefined && !isInlineFormat(input.textFormat)) || (input.textStyle !== undefined && input.textStyle !== \"\"))\n\t\treturn null;\n\treturn { direction, alignment, indent };\n}\n\nfunction isInline(node: TextEditorViewerNode): node is TextEditorViewerInline {\n\treturn node.type === \"text\" || node.type === \"linebreak\" || node.type === \"link\";\n}\n\nfunction isLinkChild(node: TextEditorViewerNode): node is TextEditorViewerText | TextEditorViewerLineBreak {\n\treturn node.type === \"text\" || node.type === \"linebreak\";\n}\n\nfunction isBlock(node: TextEditorViewerNode): node is TextEditorViewerBlock {\n\treturn node.type === \"paragraph\" || node.type === \"quote\" || node.type === \"heading\" || node.type === \"list\";\n}\n\nfunction isListItem(node: TextEditorViewerNode): node is TextEditorViewerListItem {\n\treturn node.type === \"listitem\";\n}\n\nfunction isListItemChild(node: TextEditorViewerNode): node is TextEditorViewerInline | TextEditorViewerList {\n\treturn isInline(node) || node.type === \"list\";\n}\n\n/** Только плотный JSON-массив: не вызываем собственные iterator/getter, depth/node budget отсекают циклы. */\nfunction readChildren<Node extends TextEditorViewerNode>(\n\tinput: unknown,\n\tbudget: ViewerParseBudget,\n\tdepth: number,\n\taccept: (node: TextEditorViewerNode) => node is Node\n): readonly Node[] | null {\n\tif (!Array.isArray(input) || Object.getPrototypeOf(input) !== Array.prototype || input.length > MAX_NODE_COUNT) return null;\n\tif (Reflect.ownKeys(input).length !== input.length + 1) return null;\n\tconst children: Node[] = [];\n\tfor (let index = 0; index < input.length; index++) {\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(input, index);\n\t\tif (!descriptor || !(\"value\" in descriptor)) return null;\n\t\tconst node = readNode(descriptor.value, budget, depth);\n\t\tif (!node || !accept(node)) return null;\n\t\tchildren.push(node);\n\t}\n\treturn children;\n}\n\nfunction readNode(input: unknown, budget: ViewerParseBudget, depth: number): TextEditorViewerNode | null {\n\tif (++budget.nodes > MAX_NODE_COUNT || depth > MAX_NODE_DEPTH) return null;\n\tconst node = readPlainRecord(input);\n\tif (!node || node.version !== 1) return null;\n\tif (node.type === \"text\") {\n\t\tif (\n\t\t\t!hasOnlyFields(node, [\"type\", \"version\", \"detail\", \"format\", \"mode\", \"style\", \"text\"]) ||\n\t\t\tnode.detail !== 0 ||\n\t\t\tnode.mode !== \"normal\" ||\n\t\t\tnode.style !== \"\" ||\n\t\t\t!isInlineFormat(node.format) ||\n\t\t\t!consumeText(node.text, budget)\n\t\t)\n\t\t\treturn null;\n\t\treturn { type: \"text\", text: node.text, format: node.format };\n\t}\n\tif (node.type === \"linebreak\") return hasOnlyFields(node, [\"type\", \"version\"]) ? { type: \"linebreak\" } : null;\n\tconst element = readElement(node);\n\tif (!element) return null;\n\tswitch (node.type) {\n\t\tcase \"paragraph\":\n\t\tcase \"quote\": {\n\t\t\tif (!hasOnlyFields(node, ELEMENT_FIELDS)) return null;\n\t\t\tconst children = readChildren(node.children, budget, depth + 1, isInline);\n\t\t\treturn children ? { ...element, type: node.type, children } : null;\n\t\t}\n\t\tcase \"heading\": {\n\t\t\tif (!hasOnlyFields(node, [...ELEMENT_FIELDS, \"tag\"])) return null;\n\t\t\tconst tag = node.tag;\n\t\t\tif (tag !== \"h1\" && tag !== \"h2\" && tag !== \"h3\" && tag !== \"h4\" && tag !== \"h5\" && tag !== \"h6\") return null;\n\t\t\tconst children = readChildren(node.children, budget, depth + 1, isInline);\n\t\t\treturn children ? { ...element, type: \"heading\", tag, children } : null;\n\t\t}\n\t\tcase \"list\": {\n\t\t\tif (!hasOnlyFields(node, [...ELEMENT_FIELDS, \"listType\", \"tag\", \"start\"]) || !isPositiveInteger(node.start)) return null;\n\t\t\tconst listType = node.listType;\n\t\t\tif (!((listType === \"bullet\" && node.tag === \"ul\") || (listType === \"number\" && node.tag === \"ol\"))) return null;\n\t\t\tconst children = readChildren(node.children, budget, depth + 1, isListItem);\n\t\t\treturn children ? { ...element, type: \"list\", listType, start: node.start, children } : null;\n\t\t}\n\t\tcase \"listitem\": {\n\t\t\tif (\n\t\t\t\t!hasOnlyFields(node, [...ELEMENT_FIELDS, \"value\", \"checked\"]) ||\n\t\t\t\t!isPositiveInteger(node.value) ||\n\t\t\t\tnode.checked !== undefined\n\t\t\t)\n\t\t\t\treturn null;\n\t\t\tconst children = readChildren(node.children, budget, depth + 1, isListItemChild);\n\t\t\treturn children ? { ...element, type: \"listitem\", value: node.value, children } : null;\n\t\t}\n\t\tcase \"link\":\n\t\tcase \"accessible-link\": {\n\t\t\tif (!hasOnlyFields(node, node.type === \"link\" ? LINK_FIELDS : ACCESSIBLE_LINK_FIELDS)) return null;\n\t\t\tif (!consumeText(node.url, budget)) return null;\n\t\t\tconst url = resolveTextEditorViewerLink(node.url);\n\t\t\tif (!url || (node.target !== null && node.target !== undefined && node.target !== \"_self\" && node.target !== \"_blank\"))\n\t\t\t\treturn null;\n\t\t\tif (node.rel !== undefined && node.rel !== null && !consumeText(node.rel, budget)) return null;\n\t\t\tif (node.title !== undefined && node.title !== null && !consumeText(node.title, budget)) return null;\n\t\t\tif (\n\t\t\t\tnode.type === \"accessible-link\" &&\n\t\t\t\t((node.qrCode !== undefined && node.qrCode !== false) ||\n\t\t\t\t\t(node.add !== undefined && node.add !== null) ||\n\t\t\t\t\t(node.text !== undefined && node.text !== null && !consumeText(node.text, budget)) ||\n\t\t\t\t\t(node.ariaLabel !== undefined && node.ariaLabel !== null && !consumeText(node.ariaLabel, budget)))\n\t\t\t)\n\t\t\t\treturn null;\n\t\t\tconst children = readChildren(node.children, budget, depth + 1, isLinkChild);\n\t\t\tif (!children) return null;\n\t\t\treturn {\n\t\t\t\t...element,\n\t\t\t\ttype: \"link\",\n\t\t\t\turl,\n\t\t\t\ttarget: node.target === \"_blank\" ? \"_blank\" : \"_self\",\n\t\t\t\tariaLabel: typeof node.ariaLabel === \"string\" ? node.ariaLabel : null,\n\t\t\t\ttitle: typeof node.title === \"string\" ? node.title : null,\n\t\t\t\tchildren\n\t\t\t};\n\t\t}\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\n/** Чистая bounded-проекция; отсутствие DOM/Lexical editor сохраняет одинаковый SSR и browser render. */\nexport function parseTextEditorViewerDocument(input: unknown): TextEditorViewerDocument {\n\tconst envelope = readPlainRecord(input);\n\tif (\n\t\t!envelope ||\n\t\t!hasOnlyFields(envelope, [\"format\", \"version\", \"editorState\"]) ||\n\t\tenvelope.format !== \"lexical\" ||\n\t\tenvelope.version !== 1\n\t)\n\t\treturn INVALID_DOCUMENT;\n\tconst editorState = readPlainRecord(envelope.editorState);\n\tif (!editorState || !hasOnlyFields(editorState, [\"root\"])) return INVALID_DOCUMENT;\n\tconst root = readPlainRecord(editorState.root);\n\tif (!root || !hasOnlyFields(root, ELEMENT_FIELDS) || root.type !== \"root\" || root.version !== 1) return INVALID_DOCUMENT;\n\tconst element = readElement(root);\n\tif (!element) return INVALID_DOCUMENT;\n\tconst children = readChildren(root.children, { nodes: 1, textUnits: 0 }, 1, isBlock);\n\treturn children ? { status: \"valid\", element, children } : INVALID_DOCUMENT;\n}\n",".viewer {\n\tmin-width: 0;\n\tmax-width: 100%;\n\toverflow-wrap: anywhere;\n\tcolor: var(--content-0);\n\n\tp,\n\tblockquote,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tul,\n\tol {\n\t\tmargin-block: 0 var(--space-sm);\n\t}\n\n\tp,\n\tblockquote,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tli {\n\t\twhite-space: pre-wrap;\n\t}\n\n\t> :last-child {\n\t\tmargin-block-end: 0;\n\t}\n\n\tul,\n\tol {\n\t\tpadding-inline-start: var(--space-lg);\n\t}\n\n\tul {\n\t\tlist-style-type: disc;\n\t}\n\tol {\n\t\tlist-style-type: decimal;\n\t}\n\tli[data-nested-list=\"true\"] {\n\t\tlist-style-type: none;\n\t}\n\n\tblockquote {\n\t\tmargin-inline: 0;\n\t\tpadding-inline-start: var(--space-md);\n\t\tborder-inline-start: var(--border);\n\t\tcolor: var(--content-1);\n\t}\n\n\tcode {\n\t\tborder-radius: var(--radius-xs);\n\t\tpadding-inline: var(--space-xs);\n\t\tbackground: var(--surface-2);\n\t}\n\n\tmark {\n\t\tbackground: var(--warning-fill);\n\t\tcolor: var(--warning-on-fill);\n\t}\n}\n","import { type ReactNode } from \"react\";\n\nimport { IS_BOLD, IS_CODE, IS_HIGHLIGHT, IS_ITALIC, IS_STRIKETHROUGH, IS_SUBSCRIPT, IS_SUPERSCRIPT, IS_UNDERLINE } from \"lexical\";\n\nimport { type TextEditorViewerText as TextEditorViewerTextModel } from \"../../model/textEditorViewerTypes\";\n\nexport type TextEditorViewerTextProps = Readonly<{ node: TextEditorViewerTextModel }>;\n\n/** Семантические обёртки сохраняют сочетания форматов, React экранирует сам текст. */\nexport function TextEditorViewerText({ node }: TextEditorViewerTextProps) {\n\tlet content: ReactNode = node.text;\n\tif (node.format & IS_BOLD) content = <strong>{content}</strong>;\n\tif (node.format & IS_ITALIC) content = <em>{content}</em>;\n\tif (node.format & IS_UNDERLINE) content = <u>{content}</u>;\n\tif (node.format & IS_STRIKETHROUGH) content = <s>{content}</s>;\n\tif (node.format & IS_CODE) content = <code>{content}</code>;\n\tif (node.format & IS_HIGHLIGHT) content = <mark>{content}</mark>;\n\tif (node.format & IS_SUBSCRIPT) content = <sub>{content}</sub>;\n\tif (node.format & IS_SUPERSCRIPT) content = <sup>{content}</sup>;\n\treturn content;\n}\n","import { getTextEditorViewerElementStyle } from \"../../lib/viewer/getTextEditorViewerElementStyle\";\nimport { type TextEditorViewerNode as TextEditorViewerNodeModel } from \"../../model/textEditorViewerTypes\";\n\nimport { TextEditorViewerText } from \"./TextEditorViewerText\";\n\nexport type TextEditorViewerNodeProps = Readonly<{ node: TextEditorViewerNodeModel }>;\n\n/** Все tags и DOM props заданы renderer: исходные attributes не распространяются в JSX. */\nexport function TextEditorViewerNode({ node }: TextEditorViewerNodeProps) {\n\tif (node.type === \"text\") return <TextEditorViewerText node={node} />;\n\tif (node.type === \"linebreak\") return <br />;\n\tconst children = node.children.map((child, index) => <TextEditorViewerNode key={index} node={child} />);\n\tconst elementProps = { dir: node.direction ?? undefined, style: getTextEditorViewerElementStyle(node) };\n\tswitch (node.type) {\n\t\tcase \"paragraph\":\n\t\t\treturn <p {...elementProps}>{children.length ? children : <br />}</p>;\n\t\tcase \"quote\":\n\t\t\treturn <blockquote {...elementProps}>{children}</blockquote>;\n\t\tcase \"heading\": {\n\t\t\tconst Heading = node.tag;\n\t\t\treturn <Heading {...elementProps}>{children}</Heading>;\n\t\t}\n\t\tcase \"link\":\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\t{...elementProps}\n\t\t\t\t\thref={node.url}\n\t\t\t\t\ttarget={node.target}\n\t\t\t\t\trel={node.target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n\t\t\t\t\taria-label={node.ariaLabel ?? undefined}\n\t\t\t\t\ttitle={node.title ?? undefined}>\n\t\t\t\t\t{children}\n\t\t\t\t</a>\n\t\t\t);\n\t\tcase \"list\":\n\t\t\treturn node.listType === \"number\" ? (\n\t\t\t\t<ol {...elementProps} start={node.start}>\n\t\t\t\t\t{children}\n\t\t\t\t</ol>\n\t\t\t) : (\n\t\t\t\t<ul {...elementProps}>{children}</ul>\n\t\t\t);\n\t\tcase \"listitem\":\n\t\t\treturn (\n\t\t\t\t<li\n\t\t\t\t\t{...elementProps}\n\t\t\t\t\tvalue={node.value}\n\t\t\t\t\tdata-nested-list={node.children.length === 1 && node.children[0]?.type === \"list\" ? \"true\" : undefined}>\n\t\t\t\t\t{children}\n\t\t\t\t</li>\n\t\t\t);\n\t}\n}\n","import { type ReactNode, useMemo } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { type TextEditorLexicalRaw } from \"./editorModel\";\nimport { getTextEditorViewerElementStyle } from \"./lib/viewer/getTextEditorViewerElementStyle\";\nimport { parseTextEditorViewerDocument } from \"./lib/viewer/parseTextEditorViewerDocument\";\nimport styles from \"./TextEditorLexicalViewer.module.scss\";\nimport { TextEditorViewerNode } from \"./ui/viewer/TextEditorViewerNode\";\n\nexport type TextEditorLexicalViewerProps = Readonly<{\n\traw: TextEditorLexicalRaw;\n\tclassName?: string;\n\tfallback?: ReactNode;\n}>;\n\n/** Читает immutable raw без editor instance; SSR и браузер используют одну безопасную проекцию. */\nexport function TextEditorLexicalViewer({\n\traw,\n\tclassName,\n\tfallback = \"Содержимое недоступно для отображения.\"\n}: TextEditorLexicalViewerProps) {\n\t// Повторный render карточки не должен заново обходить неизменившийся документ.\n\tconst document = useMemo(() => parseTextEditorViewerDocument(raw), [raw]);\n\tif (document.status === \"invalid\") {\n\t\treturn (\n\t\t\t<div className={cn(styles.viewer, className)} data-text-editor-viewer=\"unsupported\">\n\t\t\t\t{fallback}\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(styles.viewer, className)}\n\t\t\tdata-text-editor-viewer=\"ready\"\n\t\t\tdir={document.element.direction ?? undefined}\n\t\t\tstyle={getTextEditorViewerElementStyle(document.element)}>\n\t\t\t{document.children.map((node, index) => (\n\t\t\t\t<TextEditorViewerNode key={index} node={node} />\n\t\t\t))}\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type CSSProperties } from "react";
|
|
2
|
+
import { type TextEditorViewerElement } from "../../model/textEditorViewerTypes";
|
|
3
|
+
/** CSS получает только проверенные enum/число; произвольный style из raw сюда не попадает. */
|
|
4
|
+
export declare function getTextEditorViewerElementStyle(element: TextEditorViewerElement): CSSProperties;
|
|
5
|
+
//# sourceMappingURL=getTextEditorViewerElementStyle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTextEditorViewerElementStyle.d.ts","sourceRoot":"","sources":["../../../../src/text-editor/lib/viewer/getTextEditorViewerElementStyle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAEjF,8FAA8F;AAC9F,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa,CAK/F"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type TextEditorViewerDocument } from "../../model/textEditorViewerTypes";
|
|
2
|
+
/** Чистая bounded-проекция; отсутствие DOM/Lexical editor сохраняет одинаковый SSR и browser render. */
|
|
3
|
+
export declare function parseTextEditorViewerDocument(input: unknown): TextEditorViewerDocument;
|
|
4
|
+
//# sourceMappingURL=parseTextEditorViewerDocument.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseTextEditorViewerDocument.d.ts","sourceRoot":"","sources":["../../../../src/text-editor/lib/viewer/parseTextEditorViewerDocument.ts"],"names":[],"mappings":"AAGA,OAAO,EAEN,KAAK,wBAAwB,EAQ7B,MAAM,mCAAmC,CAAC;AAsM3C,wGAAwG;AACxG,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAiBtF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveTextEditorViewerLink.d.ts","sourceRoot":"","sources":["../../../../src/text-editor/lib/viewer/resolveTextEditorViewerLink.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTextEditorLexicalActions.d.ts","sourceRoot":"","sources":["../../../../src/text-editor/model/hooks/useTextEditorLexicalActions.ts"],"names":[],"mappings":"AAMA,OAAO,EAWN,KAAK,aAAa,EAMlB,MAAM,SAAS,CAAC;AAQjB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUjG,UAAU,iCAAiC;IAC1C,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,mBAAmB,CAAC;IAClC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC1C;AAED,wBAAgB,2BAA2B,CAAC,EAC3C,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,EAAE,iCAAiC;
|
|
1
|
+
{"version":3,"file":"useTextEditorLexicalActions.d.ts","sourceRoot":"","sources":["../../../../src/text-editor/model/hooks/useTextEditorLexicalActions.ts"],"names":[],"mappings":"AAMA,OAAO,EAWN,KAAK,aAAa,EAMlB,MAAM,SAAS,CAAC;AAQjB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUjG,UAAU,iCAAiC;IAC1C,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,mBAAmB,CAAC;IAClC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC1C;AAED,wBAAgB,2BAA2B,CAAC,EAC3C,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,EAAE,iCAAiC;yBAkJ5B,MAAM,QAAQ,MAAM,OAAO,MAAM,aAAa,MAAM,cAAc,OAAO;8BAazE,MAAM,WAAW,MAAM;uCA5FjB,aAAa;oCAzDjB,MAAM;;qCA6CN,MAAM;4BA+JP,SAAS;;2BAsFT,QAAQ;;;;wCAjET,MAAM,QAAQ,MAAM,cAAc,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;EAqG/D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/** Приватная безопасная проекция: DOM получает только перечисленные свойства, а не исходный JSON. */
|
|
2
|
+
export type TextEditorViewerElement = Readonly<{
|
|
3
|
+
direction: "ltr" | "rtl" | null;
|
|
4
|
+
alignment: "" | "left" | "right" | "center" | "justify" | "start" | "end";
|
|
5
|
+
indent: number;
|
|
6
|
+
}>;
|
|
7
|
+
export type TextEditorViewerText = Readonly<{
|
|
8
|
+
type: "text";
|
|
9
|
+
text: string;
|
|
10
|
+
format: number;
|
|
11
|
+
}>;
|
|
12
|
+
export type TextEditorViewerLineBreak = Readonly<{
|
|
13
|
+
type: "linebreak";
|
|
14
|
+
}>;
|
|
15
|
+
export type TextEditorViewerLink = Readonly<TextEditorViewerElement & {
|
|
16
|
+
type: "link";
|
|
17
|
+
url: string;
|
|
18
|
+
target: "_self" | "_blank";
|
|
19
|
+
ariaLabel: string | null;
|
|
20
|
+
title: string | null;
|
|
21
|
+
children: readonly (TextEditorViewerText | TextEditorViewerLineBreak)[];
|
|
22
|
+
}>;
|
|
23
|
+
export type TextEditorViewerInline = TextEditorViewerText | TextEditorViewerLineBreak | TextEditorViewerLink;
|
|
24
|
+
export type TextEditorViewerParagraph = Readonly<TextEditorViewerElement & {
|
|
25
|
+
type: "paragraph";
|
|
26
|
+
children: readonly TextEditorViewerInline[];
|
|
27
|
+
}>;
|
|
28
|
+
export type TextEditorViewerQuote = Readonly<TextEditorViewerElement & {
|
|
29
|
+
type: "quote";
|
|
30
|
+
children: readonly TextEditorViewerInline[];
|
|
31
|
+
}>;
|
|
32
|
+
export type TextEditorViewerHeading = Readonly<TextEditorViewerElement & {
|
|
33
|
+
type: "heading";
|
|
34
|
+
tag: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
35
|
+
children: readonly TextEditorViewerInline[];
|
|
36
|
+
}>;
|
|
37
|
+
export type TextEditorViewerList = Readonly<TextEditorViewerElement & {
|
|
38
|
+
type: "list";
|
|
39
|
+
listType: "bullet" | "number";
|
|
40
|
+
start: number;
|
|
41
|
+
children: readonly TextEditorViewerListItem[];
|
|
42
|
+
}>;
|
|
43
|
+
export type TextEditorViewerListItem = Readonly<TextEditorViewerElement & {
|
|
44
|
+
type: "listitem";
|
|
45
|
+
value: number;
|
|
46
|
+
children: readonly (TextEditorViewerInline | TextEditorViewerList)[];
|
|
47
|
+
}>;
|
|
48
|
+
export type TextEditorViewerBlock = TextEditorViewerParagraph | TextEditorViewerQuote | TextEditorViewerHeading | TextEditorViewerList;
|
|
49
|
+
export type TextEditorViewerNode = TextEditorViewerBlock | TextEditorViewerInline | TextEditorViewerListItem;
|
|
50
|
+
/** Неподдержанный документ не возвращает частично разобранный content. */
|
|
51
|
+
export type TextEditorViewerDocument = Readonly<{
|
|
52
|
+
status: "valid";
|
|
53
|
+
element: TextEditorViewerElement;
|
|
54
|
+
children: readonly TextEditorViewerBlock[];
|
|
55
|
+
}> | Readonly<{
|
|
56
|
+
status: "invalid";
|
|
57
|
+
}>;
|
|
58
|
+
//# sourceMappingURL=textEditorViewerTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textEditorViewerTypes.d.ts","sourceRoot":"","sources":["../../../src/text-editor/model/textEditorViewerTypes.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC9C,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;IAC1E,MAAM,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC5F,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AACxE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAC1C,uBAAuB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC,oBAAoB,GAAG,yBAAyB,CAAC,EAAE,CAAC;CACxE,CACD,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,oBAAoB,CAAC;AAE7G,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAC/C,uBAAuB,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAA;CAAE,CAC5F,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,uBAAuB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAA;CAAE,CAAC,CAAC;AACvI,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAC7C,uBAAuB,GAAG;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7C,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC5C,CACD,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAC1C,uBAAuB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC9C,CACD,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAC9C,uBAAuB,GAAG;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC,sBAAsB,GAAG,oBAAoB,CAAC,EAAE,CAAC;CACrE,CACD,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,yBAAyB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,oBAAoB,CAAC;AACvI,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;AAE7G,0EAA0E;AAC1E,MAAM,MAAM,wBAAwB,GACjC,QAAQ,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,uBAAuB,CAAC;IAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAA;CAAE,CAAC,GAC3G,QAAQ,CAAC;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { LinkTypes } from "./types";
|
|
2
2
|
interface LinkButtonsProps {
|
|
3
|
+
linkTypes?: readonly LinkTypes[];
|
|
3
4
|
disabled: boolean;
|
|
4
5
|
onClick: (type: LinkTypes) => void;
|
|
5
6
|
}
|
|
6
7
|
/**
|
|
7
8
|
* Набор кнопок для вставки ссылок и связанных сущностей в текстовом редакторе. Используется в составе тулбара редактора.
|
|
8
9
|
*/
|
|
9
|
-
export declare function LinkButtons({ disabled, onClick }: LinkButtonsProps): import("react").JSX.Element;
|
|
10
|
+
export declare function LinkButtons({ disabled, onClick, linkTypes }: LinkButtonsProps): import("react").JSX.Element;
|
|
10
11
|
export {};
|
|
11
12
|
//# sourceMappingURL=LinkButtons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkButtons.d.ts","sourceRoot":"","sources":["../../../src/text-editor/toolbar/LinkButtons.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,UAAU,gBAAgB;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,gBAAgB,+
|
|
1
|
+
{"version":3,"file":"LinkButtons.d.ts","sourceRoot":"","sources":["../../../src/text-editor/toolbar/LinkButtons.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,UAAU,gBAAgB;IACzB,SAAS,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,gBAAgB,+BAsB7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextEditorToolbarLexical.d.ts","sourceRoot":"","sources":["../../../src/text-editor/toolbar/TextEditorToolbarLexical.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAqD,MAAM,SAAS,CAAC;AAEjG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEnF,UAAU,6BAA6B;IACtC,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;IAChD,KAAK,EAAE,mBAAmB,CAAC;IAC3B,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,iBAAiB,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IACtD,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EACxC,iBAAiB,EACjB,KAAK,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,MAAM,EACN,MAAM,EACN,UAAU,EACV,EAAE,6BAA6B,+
|
|
1
|
+
{"version":3,"file":"TextEditorToolbarLexical.d.ts","sourceRoot":"","sources":["../../../src/text-editor/toolbar/TextEditorToolbarLexical.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAqD,MAAM,SAAS,CAAC;AAEjG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEnF,UAAU,6BAA6B;IACtC,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;IAChD,KAAK,EAAE,mBAAmB,CAAC;IAC3B,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,iBAAiB,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IACtD,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EACxC,iBAAiB,EACjB,KAAK,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,MAAM,EACN,MAAM,EACN,UAAU,EACV,EAAE,6BAA6B,+BAqF/B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type TextEditorViewerNode as TextEditorViewerNodeModel } from "../../model/textEditorViewerTypes";
|
|
2
|
+
export type TextEditorViewerNodeProps = Readonly<{
|
|
3
|
+
node: TextEditorViewerNodeModel;
|
|
4
|
+
}>;
|
|
5
|
+
/** Все tags и DOM props заданы renderer: исходные attributes не распространяются в JSX. */
|
|
6
|
+
export declare function TextEditorViewerNode({ node }: TextEditorViewerNodeProps): import("react").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=TextEditorViewerNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextEditorViewerNode.d.ts","sourceRoot":"","sources":["../../../../src/text-editor/ui/viewer/TextEditorViewerNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,oBAAoB,IAAI,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAI3G,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,yBAAyB,CAAA;CAAE,CAAC,CAAC;AAEtF,2FAA2F;AAC3F,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,EAAE,yBAAyB,+BA4CvE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type TextEditorViewerText as TextEditorViewerTextModel } from "../../model/textEditorViewerTypes";
|
|
3
|
+
export type TextEditorViewerTextProps = Readonly<{
|
|
4
|
+
node: TextEditorViewerTextModel;
|
|
5
|
+
}>;
|
|
6
|
+
/** Семантические обёртки сохраняют сочетания форматов, React экранирует сам текст. */
|
|
7
|
+
export declare function TextEditorViewerText({ node }: TextEditorViewerTextProps): string | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode>;
|
|
8
|
+
//# sourceMappingURL=TextEditorViewerText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextEditorViewerText.d.ts","sourceRoot":"","sources":["../../../../src/text-editor/ui/viewer/TextEditorViewerText.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAE,KAAK,oBAAoB,IAAI,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE3G,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,yBAAyB,CAAA;CAAE,CAAC,CAAC;AAEtF,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,EAAE,yBAAyB,6HAWvE"}
|