@ryuzaki13/react-foundation-ui 3.10.1 → 3.12.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/README.md +11 -0
- package/dist/chunks/{TextEditorLexicalClient-Cj6yjCGm.js → TextEditorLexicalClient-apy-Cugj.js} +101 -101
- package/dist/chunks/{TextEditorLexicalClient-Cj6yjCGm.js.map → TextEditorLexicalClient-apy-Cugj.js.map} +1 -1
- package/dist/floating-windows/FloatingWindow.d.ts +19 -0
- package/dist/floating-windows/FloatingWindow.d.ts.map +1 -0
- package/dist/floating-windows/FloatingWindowHeader.d.ts +14 -0
- package/dist/floating-windows/FloatingWindowHeader.d.ts.map +1 -0
- package/dist/floating-windows/FloatingWindows.d.ts +16 -0
- package/dist/floating-windows/FloatingWindows.d.ts.map +1 -0
- package/dist/floating-windows/FloatingWindowsBoundary.d.ts +10 -0
- package/dist/floating-windows/FloatingWindowsBoundary.d.ts.map +1 -0
- package/dist/floating-windows/FloatingWindowsProvider.d.ts +11 -0
- package/dist/floating-windows/FloatingWindowsProvider.d.ts.map +1 -0
- package/dist/floating-windows/index.d.ts +4 -0
- package/dist/floating-windows/index.d.ts.map +1 -0
- package/dist/floating-windows/index.js +576 -0
- package/dist/floating-windows/index.js.map +1 -0
- package/dist/floating-windows/lib/constrainFloatingWindowPosition.d.ts +8 -0
- package/dist/floating-windows/lib/constrainFloatingWindowPosition.d.ts.map +1 -0
- package/dist/floating-windows/lib/floatingWindowsStorage.d.ts +10 -0
- package/dist/floating-windows/lib/floatingWindowsStorage.d.ts.map +1 -0
- package/dist/floating-windows/lib/getFloatingWindowStyle.d.ts +5 -0
- package/dist/floating-windows/lib/getFloatingWindowStyle.d.ts.map +1 -0
- package/dist/floating-windows/lib/isFloatingWindowId.d.ts +3 -0
- package/dist/floating-windows/lib/isFloatingWindowId.d.ts.map +1 -0
- package/dist/floating-windows/lib/selectFloatingWindowCascadePosition.d.ts +8 -0
- package/dist/floating-windows/lib/selectFloatingWindowCascadePosition.d.ts.map +1 -0
- package/dist/floating-windows/lib/selectFloatingWindowRestoreFocus.d.ts +3 -0
- package/dist/floating-windows/lib/selectFloatingWindowRestoreFocus.d.ts.map +1 -0
- package/dist/floating-windows/model/FloatingWindowsContext.d.ts +4 -0
- package/dist/floating-windows/model/FloatingWindowsContext.d.ts.map +1 -0
- package/dist/floating-windows/model/createFloatingWindowsStore.d.ts +8 -0
- package/dist/floating-windows/model/createFloatingWindowsStore.d.ts.map +1 -0
- package/dist/floating-windows/model/floatingWindowMoveTypes.d.ts +27 -0
- package/dist/floating-windows/model/floatingWindowMoveTypes.d.ts.map +1 -0
- package/dist/floating-windows/model/floatingWindowsTypes.d.ts +40 -0
- package/dist/floating-windows/model/floatingWindowsTypes.d.ts.map +1 -0
- package/dist/floating-windows/model/useFloatingWindowFocus.d.ts +4 -0
- package/dist/floating-windows/model/useFloatingWindowFocus.d.ts.map +1 -0
- package/dist/floating-windows/model/useFloatingWindowMeasurements.d.ts +5 -0
- package/dist/floating-windows/model/useFloatingWindowMeasurements.d.ts.map +1 -0
- package/dist/floating-windows/model/useFloatingWindowMove.d.ts +4 -0
- package/dist/floating-windows/model/useFloatingWindowMove.d.ts.map +1 -0
- package/dist/floating-windows/model/useFloatingWindowSnapshot.d.ts +4 -0
- package/dist/floating-windows/model/useFloatingWindowSnapshot.d.ts.map +1 -0
- package/dist/floating-windows/model/useFloatingWindowsBounds.d.ts +4 -0
- package/dist/floating-windows/model/useFloatingWindowsBounds.d.ts.map +1 -0
- package/dist/floating-windows/model/useFloatingWindowsPersistence.d.ts +4 -0
- package/dist/floating-windows/model/useFloatingWindowsPersistence.d.ts.map +1 -0
- package/dist/floating-windows/model/useFloatingWindowsStore.d.ts +4 -0
- package/dist/floating-windows/model/useFloatingWindowsStore.d.ts.map +1 -0
- package/dist/notifications/index.js +9 -9
- package/dist/styles.css +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/index.d.ts +1 -0
- 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/textEditorViewerTypes.d.ts +58 -0
- package/dist/text-editor/model/textEditorViewerTypes.d.ts.map +1 -0
- 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 +5 -1
- package/storybook-static/assets/{Badge-7nsS5Yyj.js → Badge-Dn4r-dgK.js} +1 -1
- package/storybook-static/assets/{Badge.stories-BzQKeDqC.js → Badge.stories-C8jgD6Tm.js} +1 -1
- package/storybook-static/assets/{BadgeList-WzFV9MB1.js → BadgeList-DoZGQ7qG.js} +1 -1
- package/storybook-static/assets/{BarcodeScannerDialog.stories-Ci8Mf9WX.js → BarcodeScannerDialog.stories-SWsYyoae.js} +1 -1
- package/storybook-static/assets/{Button-DqsSng-I.js → Button-BHqigqOj.js} +1 -1
- package/storybook-static/assets/{Button-6F3OVyTc.js → Button-DLYgesJU.js} +1 -1
- package/storybook-static/assets/{Button.stories-PNc3lIYB.js → Button.stories-B-YCCpsv.js} +1 -1
- package/storybook-static/assets/{CalendarView-BT9X9tky.js → CalendarView-DC9-KqBg.js} +1 -1
- package/storybook-static/assets/{CheckBox-BJhTyl1K.js → CheckBox-A1DE9OKH.js} +1 -1
- package/storybook-static/assets/{CheckBox-BasxUZYS.js → CheckBox-BhDEikPn.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-DLRA5q3H.js → CheckBox.stories-CCwPabOj.js} +1 -1
- package/storybook-static/assets/Color-6AOWCN3U-CZ7Lqth4.js +1 -0
- package/storybook-static/assets/{ContextMenu-BckwURZg.js → ContextMenu-C7QDzxj5.js} +1 -1
- package/storybook-static/assets/{ContextMenu-OOsbvmOa.js → ContextMenu-snDFBA5B.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-BD-wMDNw.js → ContextMenu.stories-DmQHbLWt.js} +1 -1
- package/storybook-static/assets/{DateInput-DT6btAWU.js → DateInput-BkVJLdmV.js} +1 -1
- package/storybook-static/assets/{DateInput-B5MxQUHL.js → DateInput-DLOTW8zG.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-BK2brwe_.js → DateInput.stories-DNMVE7-m.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-gRdIuTx9.js → DateRangePresetSelect-Aswl3yfO.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-Dplr79Cm.js → DateRangePresetSelect-FZ5Wqp5Q.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-BRksGdxw.js → DateRangePresetSelect.stories-D7j1ye-X.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect-1MSPac-V.js → DeprecatedMultiSelect-BrU5iHiB.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect-BOxmEW2D.js → DeprecatedMultiSelect-DZm42dZe.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect.stories-Ax0zv6Kb.js → DeprecatedMultiSelect.stories-DX5gJVg8.js} +1 -1
- package/storybook-static/assets/{Detail-_5TyqOha.js → Detail-Dm2OB35c.js} +1 -1
- package/storybook-static/assets/{Detail.stories-CJbeEBiY.js → Detail.stories-ChjIDw9R.js} +1 -1
- package/storybook-static/assets/{Dialog-HBOYhMQq.js → Dialog-5Bjs3MIP.js} +1 -1
- package/storybook-static/assets/{Dialog-BodfEiIi.js → Dialog-CppiFu4m.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-Ds4F0ZoJ.js → Dialog.stories-DNKVgKJf.js} +1 -1
- package/storybook-static/assets/{Disclosure-BbvtIOyN.js → Disclosure-B_rE1zlW.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-CnSK79hZ.js → Disclosure.stories-ATxKR5IU.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-Dd0BeL4o.js → DisclosureGroup-ClweT22a.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-BX-ThlFg.js → DocsRenderer-JROSPFPF-m7QPTTWT.js} +1 -1
- package/storybook-static/assets/{DropZone-DPqYieZH.js → DropZone-C6Qx5YnY.js} +1 -1
- package/storybook-static/assets/{DropZone-CCkHaYAD.js → DropZone-CEnjaRlb.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-lfKkNIIl.js → DropZone.stories-8b7TFwCV.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-QWp-lSol.js → DropdownMenu-BvqYqsyj.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-DxPp3zYd.js → ExpandableActionPanel-DfZA1lTx.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-BiklI55p.js → ExpandableActionPanel.stories-Bq2XMot-.js} +1 -1
- package/storybook-static/assets/{Flex-S4mwRnc2.js → Flex-BFGhhseF.js} +1 -1
- package/storybook-static/assets/{Flex.stories-DRBLrgrW.js → Flex.stories-Ct2TXMNG.js} +1 -1
- package/storybook-static/assets/{FlexContainer-4Ap7vbIt.js → FlexContainer-DNTMFsKB.js} +1 -1
- package/storybook-static/assets/{FlexItem-Dwqi7KeT.js → FlexItem-DdZg96Tw.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-D8FScEoc.js → FloatingPopover-Qm2OYQyi.js} +1 -1
- package/storybook-static/assets/FloatingWindows-C2FJO6ij.css +1 -0
- package/storybook-static/assets/FloatingWindows.stories-DSXleet4.js +13 -0
- package/storybook-static/assets/FormattedTableCell-Cfdl2sgg.js +15 -0
- package/storybook-static/assets/{Grid-CJ5RLrgv.js → Grid-DF06uQ48.js} +1 -1
- package/storybook-static/assets/{Grid-DIYjEdUA.js → Grid-DlctIqYo.js} +1 -1
- package/storybook-static/assets/{Grid.stories-Bl35lMkU.js → Grid.stories-CqMEpZ8C.js} +1 -1
- package/storybook-static/assets/{GridContainer-B2iAnXeB.js → GridContainer-BlkGC1Ti.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories--E79MUTS.js → ImageCropper.stories-GlDzLRHa.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-D0stahXz.js → ImageRenderer-DKVKzwts.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-C_Ir6A3m.js → ImageRenderer.stories-D5Ot_LFG.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-DbY7pwWs.js → ImageView.stories-t9WED3jc.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-D2jfTzCV.js → ImageViewer.stories-CTLSla9v.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-DlvGnNv4.js → ImageViewerRuntime-B0a-Sycn.js} +1 -1
- package/storybook-static/assets/{Input-CzvWPW0I.js → Input-C-RwifM5.js} +1 -1
- package/storybook-static/assets/{Input-av5ktymr.js → Input-L7KSl95J.js} +1 -1
- package/storybook-static/assets/{Input.stories-CvLnu270.js → Input.stories-RZ8DST5q.js} +1 -1
- package/storybook-static/assets/{InputDateTime-D5bQuB9a.js → InputDateTime-C3SMAFaX.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-BD9Pt7vB.js → InputDateTime.stories-Bo76yqgM.js} +1 -1
- package/storybook-static/assets/{InputFile-ulrG6ECh.js → InputFile-ByiVAcXi.js} +1 -1
- package/storybook-static/assets/{InputFile-C3nj3qsi.js → InputFile-DeMKgRCz.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-CEewSWb_.js → InputFile.stories-C2xolZZp.js} +1 -1
- package/storybook-static/assets/{InputFiles-DZ1nUYOE.js → InputFiles-D2X5XwMg.js} +1 -1
- package/storybook-static/assets/{InputFiles-lF7Ys1hh.js → InputFiles-DW_A7HZQ.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-CCptKLDn.js → InputFiles.stories-Cy4lGiDs.js} +1 -1
- package/storybook-static/assets/{InputFilesList-DTJkMHNI.js → InputFilesList-D-T9k_qj.js} +1 -1
- package/storybook-static/assets/{InputImage-lDHbW_ac.js → InputImage-COyE-G8n.js} +1 -1
- package/storybook-static/assets/{InputImage-CIPZL6uS.js → InputImage-VviyVqWs.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-CQ2BBGf-.js → InputImage.stories-C7PZBPak.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-DD7TZeA4.js → InteractiveComponents-DsXWc2Ba.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-Bbo3l8WO.js → InteractiveComponents.stories-xzIOC6VP.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-uw1knHzA.js → LayoutPicker-CEe3rtKw.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-A7VlDbc0.js → LayoutPicker-DqauomnH.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-DDR6oiSN.js → LayoutPicker.stories-DZS4nX4W.js} +1 -1
- package/storybook-static/assets/{Listbox-CmkI7dm_.js → Listbox-DMBqQzvF.js} +1 -1
- package/storybook-static/assets/{Listbox-CO1BjyFs.js → Listbox-DcoYj_fu.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-BIPmBbuG.js → Listbox.stories-CiEKNklg.js} +1 -1
- package/storybook-static/assets/{Modal-C3JdXj6Q.js → Modal-B2NdQSX-.js} +1 -1
- package/storybook-static/assets/{Modal-IXMZUaaw.js → Modal-XzWN4rYg.js} +1 -1
- package/storybook-static/assets/{Modal.stories-BD-UnVeM.js → Modal.stories-DiO0SJb6.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-zJVg8-dg.js → ModalManagerProvider-CXZWFJBk.js} +1 -1
- package/storybook-static/assets/{MultiSelect-DZKjK53B.js → MultiSelect-Bdo1Sjz8.js} +1 -1
- package/storybook-static/assets/{MultiSelect-CGoyA8-m.js → MultiSelect-CIrw0Nez.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-D65mpYYt.js → MultiSelect.stories-DsYsvZRr.js} +1 -1
- package/storybook-static/assets/{MultiSelectCore-ih1pgvuq.js → MultiSelectCore-DVlr9xCh.js} +1 -1
- package/storybook-static/assets/{NoData-32gM9qt4.js → NoData-D0rf5MW3.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-pkEhxgz2.js → NotificationsHost-BQZaAM-V.js} +9 -9
- package/storybook-static/assets/{NotificationsHost.stories-BqIayryx.js → NotificationsHost.stories-DwymJZby.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-D42gAcHg.js → ODataMultiSelect-DMSWI6tE.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-DfAkKAsG.js → ODataMultiSelect.stories-B3zztIBx.js} +2 -2
- package/storybook-static/assets/{ODataSelect-DPOMWPKO.js → ODataSelect-C7HWF4Mk.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-DHs3wp7E.js → ODataSelect.stories-BTqluN2n.js} +2 -2
- package/storybook-static/assets/{ODataTreeMultiSelect-CC8yuaVP.js → ODataTreeMultiSelect-D1C46tO1.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-BtwLdGK6.js → ODataTreeMultiSelect.stories-Cau6yuzj.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-qcitpYxj.js → ODataTreeSelect-DjieOI9n.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-1r_tkUVi.js → ODataTreeSelect.stories-C2QXdt7d.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-wz4Qujpx.js → OneStepScroller-srOmxRQp.js} +1 -1
- package/storybook-static/assets/{Option-Beom2xTg.js → Option-7XzYAa1X.js} +1 -1
- package/storybook-static/assets/{OptionButton-D_ZCVbsd.js → OptionButton-De2RG5bE.js} +1 -1
- package/storybook-static/assets/{OptionContent-FZ-u9L1s.js → OptionContent-J_mD8o8Q.js} +1 -1
- package/storybook-static/assets/{OptionContentContainer-HVNOgpjm.js → OptionContentContainer-BMe8XiaH.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-qevVtoSU.js → PeriodSelect-BanQI_dT.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DbdeznMQ.js → PeriodSelect-DffdZHTx.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-BLi_6rpY.js → PeriodSelect.stories-D_mZIvPa.js} +1 -1
- package/storybook-static/assets/{PickerField-BHSRcQY6.js → PickerField-BiRCrEVk.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-Cxk3YQGF.js → PickerTriggerActions-SYQofxvL.js} +1 -1
- package/storybook-static/assets/{Popover-BosMVXTI.js → Popover-CyFO9TsF.js} +1 -1
- package/storybook-static/assets/{Popover-De2fvkIB.js → Popover-DVLKhPpI.js} +1 -1
- package/storybook-static/assets/{Popover.stories-DM-Plj05.js → Popover.stories-z-_6ttYX.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-jersOEYO.js → PresetRangeDateInput-CNwYUovX.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-CCQuBkJj.js → PresetRangeDateInput-DusPRYOo.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-DwqDWXX9.js → PresetRangeDateInput.stories-C_o_VW2j.js} +1 -1
- package/storybook-static/assets/{PresetSelect-BhwHbWmS.js → PresetSelect-CV3zwYQR.js} +1 -1
- package/storybook-static/assets/{README-LWfExOhc.js → README-0xXSqDp8.js} +1 -1
- package/storybook-static/assets/{README-DmJq-c8n.js → README-2-1qM_na.js} +1 -1
- package/storybook-static/assets/{README-B5eMX8_9.js → README-4aHWePja.js} +1 -1
- package/storybook-static/assets/{README-DzASMBMv.js → README-7eESTN29.js} +1 -1
- package/storybook-static/assets/{README-BzVVPLXk.js → README-B5zjJGVN.js} +1 -1
- package/storybook-static/assets/{README-DQl_3tX1.js → README-BG0ZHFMO.js} +1 -1
- package/storybook-static/assets/{README-ECCgQcGo.js → README-BJ0oZ6IK.js} +1 -1
- package/storybook-static/assets/{README-DT96eoyc.js → README-BaVIhvx2.js} +1 -1
- package/storybook-static/assets/{README-1UUrJXjZ.js → README-BdSEAONV.js} +1 -1
- package/storybook-static/assets/{README-D_d6frx1.js → README-BgG12pti.js} +1 -1
- package/storybook-static/assets/{README-CioPc-xb.js → README-BggXgUKF.js} +1 -1
- package/storybook-static/assets/{README-DK5aZdOt.js → README-BjBW3_iS.js} +1 -1
- package/storybook-static/assets/{README-DKI2c8YJ.js → README-Bjq-bxH1.js} +1 -1
- package/storybook-static/assets/{README-o4PUljT6.js → README-BmcSs4kj.js} +1 -1
- package/storybook-static/assets/{README-BPSG9KrB.js → README-Bn7kAPLQ.js} +1 -1
- package/storybook-static/assets/{README-bWB0c7pN.js → README-BoQbGA96.js} +1 -1
- package/storybook-static/assets/{README-CrhHHw0i.js → README-BwUFmp9h.js} +1 -1
- package/storybook-static/assets/{README-CPZBUXWs.js → README-BwvDtGJp.js} +1 -1
- package/storybook-static/assets/{README-DeHGaTaW.js → README-BxC_3EeL.js} +1 -1
- package/storybook-static/assets/{README-CvReVgGJ.js → README-C-U-dI9P.js} +1 -1
- package/storybook-static/assets/{README-D5YLxtgR.js → README-C-e2RqTI.js} +1 -1
- package/storybook-static/assets/{README-D09okhy9.js → README-C3-4o6yH.js} +1 -1
- package/storybook-static/assets/{README-BNsU3Cqx.js → README-CFpsye1R.js} +1 -1
- package/storybook-static/assets/{README-BK8k_Q4m.js → README-CJG1QnZ8.js} +1 -1
- package/storybook-static/assets/{README-BD5f1if4.js → README-Cc67rRzO.js} +1 -1
- package/storybook-static/assets/{README-BQDFmWGi.js → README-CgHkf8AZ.js} +1 -1
- package/storybook-static/assets/{README-DzrrH56m.js → README-CjwjADv4.js} +1 -1
- package/storybook-static/assets/{README-CvzdarfH.js → README-CtA0tP_V.js} +1 -1
- package/storybook-static/assets/{README-CmzO6bzh.js → README-D0SwEPQG.js} +1 -1
- package/storybook-static/assets/{README-sPm51M3K.js → README-D0eHrEQF.js} +1 -1
- package/storybook-static/assets/{README-Rk3Krdys.js → README-D8bNkmba.js} +1 -1
- package/storybook-static/assets/{README-Cpk-Tr_W.js → README-DCP4ywXT.js} +1 -1
- package/storybook-static/assets/{README-CJ6rsYUk.js → README-DEHjbK77.js} +1 -1
- package/storybook-static/assets/{README-DNeDK1_H.js → README-DHXjeQQR.js} +1 -1
- package/storybook-static/assets/{README-Df8F75dr.js → README-DJsEoOXI.js} +1 -1
- package/storybook-static/assets/{README-BCEKAY_J.js → README-DWfKideq.js} +1 -1
- package/storybook-static/assets/{README-29WDFTDH.js → README-DZD6wqGT.js} +1 -1
- package/storybook-static/assets/{README-CJFgcV8C.js → README-D_V-SEnq.js} +1 -1
- package/storybook-static/assets/{README-By0zyJQ-.js → README-DkEysBXh.js} +1 -1
- package/storybook-static/assets/{README-33qTnj5l.js → README-DuB9PiOM.js} +1 -1
- package/storybook-static/assets/{README-BIvHy4kr.js → README-Duk1AG16.js} +1 -1
- package/storybook-static/assets/{README-BKLeD4y3.js → README-DwC2gAZg.js} +1 -1
- package/storybook-static/assets/{README-Cz14JUTC.js → README-MX6_MwDQ.js} +1 -1
- package/storybook-static/assets/{README-Dc2qBccm.js → README-TaumiOmj.js} +1 -1
- package/storybook-static/assets/{README-B_tg7QVI.js → README-_ysKMvAx.js} +1 -1
- package/storybook-static/assets/{README-BAlXRtAz.js → README-b_q7W3j3.js} +1 -1
- package/storybook-static/assets/{README-B5rmNIab.js → README-gE_kxplo.js} +1 -1
- package/storybook-static/assets/{README-DS63ZnOT.js → README-gjTa9tZ_.js} +1 -1
- package/storybook-static/assets/{README-NHHRscRF.js → README-p62MFS5g.js} +1 -1
- package/storybook-static/assets/{README-CHllxFPj.js → README-swRdnv1f.js} +1 -1
- package/storybook-static/assets/{README-BfRKdJtw.js → README-x--9qFul.js} +1 -1
- package/storybook-static/assets/{README-O9BJmE-H.js → README-xDqMMO8-.js} +1 -1
- package/storybook-static/assets/{README-BoJXfTe6.js → README-xWo3G40o.js} +1 -1
- package/storybook-static/assets/{RadioButton-BZiBFXe1.js → RadioButton-B6x2_7or.js} +1 -1
- package/storybook-static/assets/{RadioButton-CBLdgMz4.js → RadioButton-CBABLSvE.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-BP5yM5qg.js → RadioButton.stories-DLd7EmuZ.js} +1 -1
- package/storybook-static/assets/{RadioGroup-DYRfZVGC.js → RadioGroup-CIaXj3zQ.js} +1 -1
- package/storybook-static/assets/{RadioGroup-epjQdSZn.js → RadioGroup-Ce5Irxz3.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-UOjXIk6v.js → RadioGroup.stories-DKhMElyC.js} +1 -1
- package/storybook-static/assets/{ResponsiveLayoutPreview-BHBxtn2W.js → ResponsiveLayoutPreview-Bcojizl4.js} +1 -1
- package/storybook-static/assets/{Scrollable-DKQa75cf.js → Scrollable-B5e-IEe8.js} +1 -1
- package/storybook-static/assets/{Scrollable-BBYov1Hn.js → Scrollable-BfCUp0BO.js} +1 -1
- package/storybook-static/assets/{Scrollable.stories-BH1-i6nI.js → Scrollable.stories-B4IMoipT.js} +1 -1
- package/storybook-static/assets/{Select-DU6Eh0Lt.js → Select-CdjYSSyG.js} +1 -1
- package/storybook-static/assets/{Select-DYOCTPiv.js → Select-DYHUwcLE.js} +1 -1
- package/storybook-static/assets/{Select.stories-BF3svbAH.js → Select.stories-BuaXB6qE.js} +1 -1
- package/storybook-static/assets/{Separator-_gvt1sqm.js → Separator-CS6gkWSA.js} +1 -1
- package/storybook-static/assets/{Separator-CxviJxG5.js → Separator-D45blL6r.js} +1 -1
- package/storybook-static/assets/{Separator.stories-DN6hlZl5.js → Separator.stories-C2GzCEGW.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-BVTOrYLs.js → SerializableSelect-7raamiuG.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-pcWq603M.js → SerializableSelect.stories-CD0e6DQk.js} +1 -1
- package/storybook-static/assets/{ShimmerText-BDDa_Wf7.js → ShimmerText-DkiewbBe.js} +1 -1
- package/storybook-static/assets/{ShimmerText.stories-DdZPIKwl.js → ShimmerText.stories-DrXMcGDO.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-q-eu2xUU.js → SingleDateTimeInput-BTIgqxH7.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-sGTkT8ZA.js → SingleDateTimeInput-Dj_VSvfb.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-X7CMAFsq.js → SingleDateTimeInput.stories-CnYFrOUX.js} +1 -1
- package/storybook-static/assets/{Slider-CaKY8LIJ.js → Slider-CLE5MSJr.js} +1 -1
- package/storybook-static/assets/{Slider-CqNWljkT.js → Slider-D4wvDQDc.js} +1 -1
- package/storybook-static/assets/{Slider.stories-CMxutCGM.js → Slider.stories-Cbz3RilT.js} +1 -1
- package/storybook-static/assets/{SliderInput-HUUN5_IF.js → SliderInput-AC9oLjGF.js} +1 -1
- package/storybook-static/assets/{SliderInput-scYwk-4g.js → SliderInput-DbyDo3fR.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-CDhgeql1.js → SliderInput.stories-69pRH0Uk.js} +1 -1
- package/storybook-static/assets/{Sortable-CaysnUNW.js → Sortable-E3DirII-.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-C4gHc5ka.js → Sortable.stories-BbmTcem4.js} +1 -1
- package/storybook-static/assets/{Splitter-6cU1s7Qr.js → Splitter-DbaIQk2G.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-CA9A-CZ-.js → Splitter.stories-HntpFa6w.js} +1 -1
- package/storybook-static/assets/{StateSelect-OHl6KWge.js → StateSelect-8r4Qlf4Y.js} +1 -1
- package/storybook-static/assets/{StateSelect-BAqjdi4g.js → StateSelect-C7ZIrgDB.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-xX3ujKGO.js → StateSelect.stories-CfUJCQGE.js} +1 -1
- package/storybook-static/assets/{StatusIndicator-C_7dWY2t.js → StatusIndicator-IqUZ24rN.js} +1 -1
- package/storybook-static/assets/{StatusIndicator.stories-BRlVzKf7.js → StatusIndicator.stories-DhKREzk8.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-DFPLwtHW.js → StringToggle.stories-BOC_AuIw.js} +1 -1
- package/storybook-static/assets/{Switch-CrlrIm3t.js → Switch-58npo6H_.js} +1 -1
- package/storybook-static/assets/{Switch-DHcMczAC.js → Switch-C4wfyH7_.js} +1 -1
- package/storybook-static/assets/{Switch.stories-LhTPX_R-.js → Switch.stories-BpABAFmv.js} +1 -1
- package/storybook-static/assets/{Table-Ct8iqJEY.js → Table-RAMtWu9C.js} +1 -1
- package/storybook-static/assets/Table.stories-Cth_AbDh.js +184 -0
- package/storybook-static/assets/{TableEditor.stories-Qtqr_l4g.js → TableEditor.stories-IfJyun1v.js} +1 -1
- package/storybook-static/assets/{Tabs-CC0IIQwl.js → Tabs-CX67nGv0.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-Bo_Y-dq8.js → Tabs.stories-6wO9Pmly.js} +1 -1
- package/storybook-static/assets/{TabsBox-BMNvHsCH.js → TabsBox-QKS_MMQ0.js} +1 -1
- package/storybook-static/assets/{TagInput-BLwbzCit.js → TagInput-R6ANDdvh.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-DNcD4tn4.js → TagInput.stories-DAyX89-l.js} +1 -1
- package/storybook-static/assets/{Text-Bih-aO3C.js → Text-D3vBpXH0.js} +1 -1
- package/storybook-static/assets/TextEditorLexicalViewer-DRQG2UON.css +1 -0
- package/storybook-static/assets/TextEditorLexicalViewer.stories-RdypWNwx.js +66 -0
- package/storybook-static/assets/{Textarea-DCnLF4aj.js → Textarea-BPtHeqrt.js} +1 -1
- package/storybook-static/assets/{Textarea-D3os1biP.js → Textarea-Cio32hA3.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-CIFzZQ5Z.js → Textarea.stories-DDVaU3Ho.js} +1 -1
- package/storybook-static/assets/{TimePanel-BcVGesht.js → TimePanel-e1drsuDA.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-C6_xVdCq.js → TimePanel.stories-Dze9jjtv.js} +1 -1
- package/storybook-static/assets/{Toggle-BD0YAuO2.js → Toggle-BuLJ3UR_.js} +1 -1
- package/storybook-static/assets/{Toggle-CtABgcO5.js → Toggle-D8UQ_CuL.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-DnTnFcGB.js → Toggle.stories-0wuia83j.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DHk_QP2h.js → TreeMultiSelect-Ciy9H9Q3.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-Bp_Akwgc.js → TreeMultiSelect-QWOfniqX.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-CBVQbR1c.js → TreeMultiSelect.stories-C5bKUKLA.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-BhWXyIoO.js → TreePickerBase-DAld1sj1.js} +1 -1
- package/storybook-static/assets/{TreeSelect-HNbghKYG.js → TreeSelect-ANFeSIqw.js} +1 -1
- package/storybook-static/assets/{TreeSelect-DleoF0hJ.js → TreeSelect-DKUJycNd.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-BigcPfEn.js → TreeSelect.stories-BJErYrTv.js} +1 -1
- package/storybook-static/assets/{TreeTable-BNkuyFKP.js → TreeTable-DcyUjVXj.js} +1 -1
- package/storybook-static/assets/TreeTable.stories-BnyxdNPz.js +138 -0
- package/storybook-static/assets/blocks-Bn1nLfdu.js +287 -0
- package/storybook-static/assets/{check-DRMDOowi.js → check-DTcQ3CsH.js} +1 -1
- package/storybook-static/assets/{chevron-down-D0ohA4RZ.js → chevron-down-CRBjmU7w.js} +1 -1
- package/storybook-static/assets/{chevron-left-CLqpYqDQ.js → chevron-left-CBPOblch.js} +1 -1
- package/storybook-static/assets/{chevron-right-CXryGzSx.js → chevron-right-Bryg2EIf.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-CxLeSIMq.js → chunk-W22LQPXL-44DPZKTZ.js} +1 -1
- package/storybook-static/assets/{circle-alert-l6NwXGUY.js → circle-alert-DviK8puL.js} +1 -1
- package/storybook-static/assets/{circle-check-B-r716dD.js → circle-check-B1-l7Oh4.js} +1 -1
- package/storybook-static/assets/{contextMenu-Br4n839h.js → contextMenu-DtHQnSjw.js} +1 -1
- package/storybook-static/assets/{download-DqFSGBvN.js → download-BuLQijJq.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-B-qFeMZZ.js → floating-ui.react-iTaFJp98.js} +1 -1
- package/storybook-static/assets/{foundationApi-DxO3oR-c.js → foundationApi-Bjw5h-ru.js} +1 -1
- package/storybook-static/assets/{foundationLib-CTFFCQvn.js → foundationLib-BcePCYWP.js} +1 -1
- package/storybook-static/assets/{hooks-CAgVZJ-F.js → hooks-CiUB_4kG.js} +1 -1
- package/storybook-static/assets/{iframe-E950Ehp0.js → iframe-BvendKJ_.js} +4 -4
- package/storybook-static/assets/iframe-BzGX4Usd.js +1 -0
- package/storybook-static/assets/{info-Dp6XZGwP.js → info-Dq-9oYHd.js} +1 -1
- package/storybook-static/assets/isRecord-DXDTW-jA-CMenzszF.js +1 -0
- package/storybook-static/assets/odata-f2MNATrV.js +1 -0
- package/storybook-static/assets/{odataStoryFixtures-CDArjyM7.js → odataStoryFixtures-BaKh8qyu.js} +1 -1
- package/storybook-static/assets/{react-CGpO0FqR.js → react-B6cO4JYx.js} +1 -1
- package/storybook-static/assets/{refresh-cw-dMgbnEda.js → refresh-cw-DmxZlsqm.js} +1 -1
- package/storybook-static/assets/{settings-2-CmW1dpao.js → settings-2-CBuqWUWt.js} +1 -1
- package/storybook-static/assets/{sortable-D7TAXZBK.js → sortable-BkTzd-5v.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-ok7zY4QK.js → syntaxhighlighter-QEQV7K2Y-h6bhL7V7.js} +1 -1
- package/storybook-static/assets/{trash-2-5v1tbQ2V.js → trash-2-wTK0eWnF.js} +1 -1
- package/storybook-static/assets/{triangle-alert-CVLPpc5j.js → triangle-alert-CD0VXyGn.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-Bkht6gRs.js → useODataSelectBase-keqr2Q3a.js} +1 -1
- package/storybook-static/assets/useODataTreeData-BLDGoADN.js +1 -0
- package/storybook-static/assets/{usePickerQuery-BmoBHlzm.js → usePickerQuery-BA8NMnw6.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-Dvt7LsFZ.js → usePickerTriggerController-Ceb5Hrtf.js} +1 -1
- package/storybook-static/assets/{x-DZpfbNy0.js → x-CsG3nxct.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/storybook-static/assets/Color-6AOWCN3U-C4R02nIA.js +0 -1
- package/storybook-static/assets/FormattedTableCell-BKSpyxnu.js +0 -15
- package/storybook-static/assets/Table.stories-DO30v6VO.js +0 -184
- package/storybook-static/assets/TreeTable.stories-Bdx3y7Yb.js +0 -138
- package/storybook-static/assets/blocks-DGivDYe5.js +0 -48
- package/storybook-static/assets/components-Vmrwp1qC.js +0 -241
- package/storybook-static/assets/iframe-dKozSQh6.js +0 -1
- package/storybook-static/assets/odata-DuJbgix6.js +0 -1
- package/storybook-static/assets/useODataTreeData-DTWPuC9Y.js +0 -1
|
@@ -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-apy-Cugj.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"}
|
|
@@ -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"}
|
|
@@ -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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryuzaki13/react-foundation-ui",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.12.0",
|
|
4
4
|
"description": "Reusable React foundation UI primitives and Storybook stories.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ryuzaki13",
|
|
@@ -131,6 +131,10 @@
|
|
|
131
131
|
"types": "./dist/floating-arrow/index.d.ts",
|
|
132
132
|
"import": "./dist/floating-arrow/index.js"
|
|
133
133
|
},
|
|
134
|
+
"./floating-windows": {
|
|
135
|
+
"types": "./dist/floating-windows/index.d.ts",
|
|
136
|
+
"import": "./dist/floating-windows/index.js"
|
|
137
|
+
},
|
|
134
138
|
"./fullscreen-portal": {
|
|
135
139
|
"types": "./dist/fullscreen-portal/index.d.ts",
|
|
136
140
|
"import": "./dist/fullscreen-portal/index.js"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BvendKJ_.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-Bn1nLfdu.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./Badge.stories-C8jgD6Tm.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:h,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,S.jsx)(u,{children:`Badge`}),`
|
|
3
3
|
`,(0,S.jsx)(o,{children:`Компактная текстовая метка для статусов, категорий, фильтров и коротких служебных пометок`}),`
|
|
4
4
|
`,(0,S.jsx)(t.p,{children:`Badge подходит для коротких подписей, которые должны быстро читаться и не перегружать интерфейс:`}),`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-BvendKJ_.js";import{i,n as a,r as o,t as s}from"./BadgeList-DoZGQ7qG.js";var c=t({Appearances:()=>h,Basic:()=>p,RemovableList:()=>_,Sizes:()=>g,Tones:()=>m,__namedExportsOrder:()=>v,default:()=>f}),l,u,d,f,p,m,h,g,_,v;function y(){return(y=e((()=>{l=n(),i(),a(),u=r(),{useArgs:d}=__STORYBOOK_MODULE_PREVIEW_API__,f={title:`UI/Badge`,component:o,args:{children:`Новый`,size:`md`,tone:`info`,appearance:`solid`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{children:{description:`Текст внутри бейджа.`,control:`text`},size:{description:`Размер бейджа.`,control:`inline-radio`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Цветовой тон бейджа.`,control:`inline-radio`,options:[`neutral`,`accent`,`brand`,`success`,`warning`,`error`,`info`]},appearance:{description:`Форма бейджа.`,control:`inline-radio`,options:[`solid`,`outline`,`ghost`,`transparent`]},onRemove:{description:`Показывает кнопку удаления и вызывает обработчик по клику.`,control:!1}}},p={render:function(){let[e]=d();return(0,u.jsx)(o,{...e})}},m={render:()=>(0,u.jsxs)(s,{children:[(0,u.jsx)(o,{tone:`neutral`,appearance:`outline`,children:`Neutral`}),(0,u.jsx)(o,{tone:`accent`,appearance:`solid`,children:`Акцент`}),(0,u.jsx)(o,{tone:`brand`,appearance:`solid`,children:`Бренд`}),(0,u.jsx)(o,{tone:`success`,appearance:`solid`,children:`Успешно`}),(0,u.jsx)(o,{tone:`warning`,appearance:`solid`,children:`Внимание`}),(0,u.jsx)(o,{tone:`error`,appearance:`solid`,children:`Ошибка`}),(0,u.jsx)(o,{tone:`info`,appearance:`solid`,children:`Информация`})]})},h={render:()=>(0,u.jsxs)(s,{children:[(0,u.jsx)(o,{tone:`neutral`,appearance:`solid`,children:`Solid`}),(0,u.jsx)(o,{tone:`neutral`,appearance:`outline`,children:`Outline`}),(0,u.jsx)(o,{tone:`info`,appearance:`ghost`,children:`Ghost`}),(0,u.jsx)(o,{tone:`warning`,appearance:`transparent`,children:`Transparent`})]})},g={render:()=>(0,u.jsxs)(s,{children:[(0,u.jsx)(o,{size:`xs`,children:`Extra Small`}),(0,u.jsx)(o,{size:`sm`,children:`Small`}),(0,u.jsx)(o,{size:`md`,children:`Medium`}),(0,u.jsx)(o,{size:`lg`,children:`Large`}),(0,u.jsx)(o,{size:`xl`,children:`Extra Large`})]})},_={render:()=>{let[e,t]=(0,l.useState)([`Фильтр A`,`Фильтр B`,`Фильтр C`]);return(0,u.jsx)(s,{children:e.map(e=>(0,u.jsx)(o,{tone:`info`,appearance:`outline`,onRemove:()=>t(t=>t.filter(t=>t!==e)),children:e},e))})}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: function Render() {
|
|
3
3
|
const [args] = useArgs<BadgeStoryArgs>();
|
|
4
4
|
return <Badge {...args} />;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./x-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./x-CsG3nxct.js";import{n as i}from"./iframe-BvendKJ_.js";import{a,i as o}from"./utils-tg3ibbzi.js";import{a as s,l as c}from"./array-D-_yMMUK-BBmW5vUr.js";import{n as l,t as u}from"./FloatingPopover-Qm2OYQyi.js";import{a as d,i as f,r as p,t as m}from"./uiClasses-BblrV9p1.js";import{n as h,t as g}from"./FlexContainer-DNTMFsKB.js";function _({maxChar:e,placement:t=`left`,closeDelay:n=0,maxWidth:r,children:i,block:a,state:o,textWrap:s,textWrapProps:l}){let d=c(i);if(!d.length||e&&d.length<e)return(0,v.jsx)(`span`,{children:d});let f=s??`div`,p={style:{display:a?`block`:`inline-block`,width:e?`${e-3}ch`:`auto`},className:`textOverflow`},m={...l,...p,style:{...l?.style,...p.style},className:[l?.className,p.className].filter(Boolean).join(` `)};return(0,v.jsx)(u,{state:o,placement:t,openOnHover:!0,content:d,closeDelay:n,maxWidth:r,children:(0,v.jsx)(f,{...m,children:d})})}var v;function y(){return(y=e((()=>{s(),l(),v=i(),_.__docgenInfo={description:``,methods:[],displayName:`TextOverflow`,props:{children:{required:!0,tsType:{name:`string`},description:``},maxChar:{required:!1,tsType:{name:`number`},description:``},maxWidth:{required:!1,tsType:{name:`number`},description:`Максимальная ширина тултипа в em.`},placement:{required:!1,tsType:{name:`Placement`},description:``,defaultValue:{value:`"left"`,computed:!1}},closeDelay:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`0`,computed:!1}},block:{required:!1,tsType:{name:`literal`,value:`true`},description:`Для работы text-overflow элемент обязан быть блочным или inline-block.
|
|
2
2
|
Если в качестве обёртки передается инлайновый компонент, то он будет
|
|
3
3
|
перезаписан через стили на display: block или inline-block в зависимости
|
|
4
4
|
от установки данного пропса.`},state:{required:!1,tsType:{name:`union`,raw:`"information" | "error" | "warning" | "success" | "negative"`,elements:[{name:`literal`,value:`"information"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"negative"`}]},description:``},textWrap:{required:!1,tsType:{name:`T`},description:``},textWrapProps:{required:!1,tsType:{name:`Omit`,elements:[{name:`ComponentProps`,elements:[{name:`T`}],raw:`ComponentProps<T>`},{name:`literal`,value:`"children"`}],raw:`Omit<ComponentProps<T>, "children">`},description:``}}}})))()}var b,x,S,C,w,T,E,D,O,k;function A(){return(A=e((()=>{b=`qBtmnH`,x=`p-HsHY`,S=`u9tQAE`,C=`FRScRz`,w=`W13uQO`,T=`_3IRcM9`,E=`R3ybI7`,D=`DdWAaC`,O=`_5cXBQF`,k={badge:b,passive:x,sizeXs:S,sizeSm:C,sizeMd:w,sizeLg:T,sizeXl:E,content:D,removeButton:O}})))()}function j({children:e,size:t=`sm`,tone:n,appearance:i,className:o,onRemove:s}){let c=n??`neutral`,l=d({tone:n,appearance:i,fallbackTone:c,fallbackAppearance:c===`neutral`?`outline`:`solid`});return(0,M.jsxs)(`div`,{className:a(k.badge,N[t],p(l.tone),m(l.appearance),!s&&k.passive,o),children:[(0,M.jsx)(_,{maxChar:25,placement:`top`,block:!0,textWrapProps:{className:k.content},children:String(e)}),s&&(0,M.jsx)(`button`,{type:`button`,onClick:s,className:k.removeButton,"aria-label":`Удалить бейдж`,"data-ui":`badge-remove-button`,"data-action":`remove-badge`,children:(0,M.jsx)(r,{})})]})}var M,N;function P(){return(P=e((()=>{o(),n(),y(),f(),A(),M=i(),N={xs:k.sizeXs,sm:k.sizeSm,md:k.sizeMd,lg:k.sizeLg,xl:k.sizeXl},j.__docgenInfo={description:`Компактный индикатор для статусов, категорий и коротких служебных меток.`,methods:[],displayName:`Badge`,props:{children:{required:!0,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``,defaultValue:{value:`"sm"`,computed:!1}},tone:{required:!1,tsType:{name:`union`,raw:`"accent" | "neutral" | "brand" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"accent"`},{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``},appearance:{required:!1,tsType:{name:`union`,raw:`"solid" | "outline" | "ghost" | "transparent"`,elements:[{name:`literal`,value:`"solid"`},{name:`literal`,value:`"outline"`},{name:`literal`,value:`"ghost"`},{name:`literal`,value:`"transparent"`}]},description:``},className:{required:!1,tsType:{name:`string`},description:``},onRemove:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}})))()}function F({children:e}){return(0,L.jsx)(g,{inline:!0,wrap:!0,gap:`sm`,align:`baseline`,children:I.Children.map(e,(e,t)=>(0,L.jsx)(I.Fragment,{children:e},t))})}var I,L;function R(){return(R=e((()=>{I=t(),h(),L=i(),F.__docgenInfo={description:"Контейнер для группы `Badge`, который выстраивает элементы в единый список с предсказуемыми отступами. Используется для компактного вывода набора меток или фильтров.",methods:[],displayName:`BadgeList`,props:{children:{required:!0,tsType:{name:`Array`,elements:[{name:`ReactElement`,elements:[{name:`union`,raw:`typeof Badge | null | undefined | false`,elements:[{name:`Badge`},{name:`null`},{name:`undefined`},{name:`literal`,value:`false`}]}],raw:`ReactElement<typeof Badge | null | undefined | false>`}],raw:`ReactElement<typeof Badge | null | undefined | false>[]`},description:``}}}})))()}export{P as i,R as n,j as r,F as t};
|