@omnitron-dev/prism 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +148 -0
- package/dist/accessibility/index.d.ts +7 -151
- package/dist/accessibility/index.d.ts.map +1 -0
- package/dist/accessibility/index.js +0 -1
- package/dist/accessibility/index.js.map +1 -1
- package/dist/accessibility/vision-mode.d.ts +154 -0
- package/dist/accessibility/vision-mode.d.ts.map +1 -0
- package/dist/blocks/auth-block/auth-block.d.ts +107 -0
- package/dist/blocks/auth-block/auth-block.d.ts.map +1 -0
- package/dist/blocks/auth-block/guards.d.ts +262 -0
- package/dist/blocks/auth-block/guards.d.ts.map +1 -0
- package/dist/blocks/auth-block/index.d.ts +13 -0
- package/dist/blocks/auth-block/index.d.ts.map +1 -0
- package/dist/blocks/auth-block/types.d.ts +232 -0
- package/dist/blocks/auth-block/types.d.ts.map +1 -0
- package/dist/blocks/dashboard-block/dashboard-block.d.ts +53 -0
- package/dist/blocks/dashboard-block/dashboard-block.d.ts.map +1 -0
- package/dist/blocks/dashboard-block/index.d.ts +12 -0
- package/dist/blocks/dashboard-block/index.d.ts.map +1 -0
- package/dist/blocks/dashboard-block/types.d.ts +182 -0
- package/dist/blocks/dashboard-block/types.d.ts.map +1 -0
- package/dist/blocks/dashboard-block/use-dashboard-block.d.ts +95 -0
- package/dist/blocks/dashboard-block/use-dashboard-block.d.ts.map +1 -0
- package/dist/blocks/data-grid-block/data-grid-block.d.ts +81 -0
- package/dist/blocks/data-grid-block/data-grid-block.d.ts.map +1 -0
- package/dist/blocks/data-grid-block/index.d.ts +11 -0
- package/dist/blocks/data-grid-block/index.d.ts.map +1 -0
- package/dist/blocks/data-grid-block/types.d.ts +304 -0
- package/dist/blocks/data-grid-block/types.d.ts.map +1 -0
- package/dist/blocks/index.d.ts +10 -1235
- package/dist/blocks/index.d.ts.map +1 -0
- package/dist/blocks/index.js +141 -42
- package/dist/blocks/index.js.map +1 -1
- package/dist/{chunk-IZOIO7PA.js → chunk-472SOF76.js} +31 -22
- package/dist/chunk-472SOF76.js.map +1 -0
- package/dist/chunk-4Z5DE5GK.js +1579 -0
- package/dist/chunk-4Z5DE5GK.js.map +1 -0
- package/dist/chunk-52PQL67Q.js +559 -0
- package/dist/chunk-52PQL67Q.js.map +1 -0
- package/dist/chunk-75FQ5IW3.js +590 -0
- package/dist/chunk-75FQ5IW3.js.map +1 -0
- package/dist/{chunk-VAAIHNWQ.js → chunk-7G5D5PTC.js} +4 -3
- package/dist/chunk-7G5D5PTC.js.map +1 -0
- package/dist/{chunk-JDTC2SBY.js → chunk-AD4W7HYC.js} +2 -2
- package/dist/chunk-AD4W7HYC.js.map +1 -0
- package/dist/{chunk-SNKGGHBT.js → chunk-ADG4HZEP.js} +3 -3
- package/dist/chunk-ADG4HZEP.js.map +1 -0
- package/dist/{chunk-JNU4QHJK.js → chunk-AYYFMTMI.js} +5 -4
- package/dist/{chunk-JNU4QHJK.js.map → chunk-AYYFMTMI.js.map} +1 -1
- package/dist/chunk-BJE2AKD4.js +105 -0
- package/dist/chunk-BJE2AKD4.js.map +1 -0
- package/dist/{chunk-HO2GKTWJ.js → chunk-BRDWQVRT.js} +2 -2
- package/dist/chunk-BRDWQVRT.js.map +1 -0
- package/dist/{chunk-2FYNRDXR.js → chunk-DRFNMZLG.js} +2 -2
- package/dist/chunk-DRFNMZLG.js.map +1 -0
- package/dist/chunk-FF5RF32O.js +248 -0
- package/dist/chunk-FF5RF32O.js.map +1 -0
- package/dist/{chunk-KTCWPGON.js → chunk-GMIE6III.js} +561 -111
- package/dist/chunk-GMIE6III.js.map +1 -0
- package/dist/{chunk-BV32OJ2A.js → chunk-GUFHFEPZ.js} +2 -2
- package/dist/chunk-GUFHFEPZ.js.map +1 -0
- package/dist/chunk-GUGTDURV.js +826 -0
- package/dist/chunk-GUGTDURV.js.map +1 -0
- package/dist/chunk-HOXFSQUV.js +573 -0
- package/dist/chunk-HOXFSQUV.js.map +1 -0
- package/dist/chunk-JSQTYDPG.js +3 -0
- package/dist/{chunk-77KIJLPP.js.map → chunk-JSQTYDPG.js.map} +1 -1
- package/dist/{chunk-MEFT6XPH.js → chunk-KQ67XB6T.js} +351 -704
- package/dist/chunk-KQ67XB6T.js.map +1 -0
- package/dist/{chunk-YJMAQL3S.js → chunk-LOY2NPCO.js} +129 -635
- package/dist/chunk-LOY2NPCO.js.map +1 -0
- package/dist/{chunk-A2Z7NVGL.js → chunk-LSPFFEJT.js} +1026 -2128
- package/dist/chunk-LSPFFEJT.js.map +1 -0
- package/dist/{chunk-XXP3ZGU6.js → chunk-OKTLA23Q.js} +22 -14
- package/dist/chunk-OKTLA23Q.js.map +1 -0
- package/dist/chunk-PFT2BNYO.js +191 -0
- package/dist/chunk-PFT2BNYO.js.map +1 -0
- package/dist/chunk-PGHEP4JD.js +106 -0
- package/dist/chunk-PGHEP4JD.js.map +1 -0
- package/dist/chunk-PXXPLHIY.js +74 -0
- package/dist/chunk-PXXPLHIY.js.map +1 -0
- package/dist/chunk-SNZK5X6F.js +594 -0
- package/dist/chunk-SNZK5X6F.js.map +1 -0
- package/dist/chunk-SU3LVQ7N.js +518 -0
- package/dist/chunk-SU3LVQ7N.js.map +1 -0
- package/dist/{chunk-DDY7TLUI.js → chunk-XIXSSI3B.js} +28 -2
- package/dist/chunk-XIXSSI3B.js.map +1 -0
- package/dist/chunk-YHE7HXSG.js +206 -0
- package/dist/chunk-YHE7HXSG.js.map +1 -0
- package/dist/{chunk-XWL6J6IO.js → chunk-YSIG2XYH.js} +2 -2
- package/dist/chunk-YSIG2XYH.js.map +1 -0
- package/dist/cli/commands/add.d.ts +22 -0
- package/dist/cli/commands/add.d.ts.map +1 -0
- package/dist/cli/commands/diff.d.ts +13 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/doctor.d.ts +13 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/init.d.ts +13 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/list.d.ts +13 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/remove.d.ts +13 -0
- package/dist/cli/commands/remove.d.ts.map +1 -0
- package/dist/cli/commands/update.d.ts +13 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/config.d.ts +73 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/constants.d.ts +60 -0
- package/dist/cli/constants.d.ts.map +1 -0
- package/dist/cli/index.d.ts +27 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +38 -39
- package/dist/cli/index.js.map +1 -1
- package/dist/components/accordion/accordion.d.ts +149 -0
- package/dist/components/accordion/accordion.d.ts.map +1 -0
- package/dist/components/accordion/index.d.ts +7 -0
- package/dist/components/accordion/index.d.ts.map +1 -0
- package/dist/components/admin-filters/admin-data-table.d.ts +185 -0
- package/dist/components/admin-filters/admin-data-table.d.ts.map +1 -0
- package/dist/components/admin-filters/amount-cell.d.ts +39 -0
- package/dist/components/admin-filters/amount-cell.d.ts.map +1 -0
- package/dist/components/admin-filters/filter-toolbar.d.ts +99 -0
- package/dist/components/admin-filters/filter-toolbar.d.ts.map +1 -0
- package/dist/components/admin-filters/index.d.ts +13 -0
- package/dist/components/admin-filters/index.d.ts.map +1 -0
- package/dist/components/admin-filters/status-chip.d.ts +55 -0
- package/dist/components/admin-filters/status-chip.d.ts.map +1 -0
- package/dist/components/alert/alert.d.ts +159 -0
- package/dist/components/alert/alert.d.ts.map +1 -0
- package/dist/components/alert/index.d.ts +7 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/animate/animate-border.d.ts +33 -0
- package/dist/components/animate/animate-border.d.ts.map +1 -0
- package/dist/components/animate/index.d.ts +3 -0
- package/dist/components/animate/index.d.ts.map +1 -0
- package/dist/components/animate/motion-lazy.d.ts +5 -0
- package/dist/components/animate/motion-lazy.d.ts.map +1 -0
- package/dist/components/avatar/avatar.d.ts +78 -0
- package/dist/components/avatar/avatar.d.ts.map +1 -0
- package/dist/components/avatar/index.d.ts +7 -0
- package/dist/components/avatar/index.d.ts.map +1 -0
- package/dist/components/badge/badge.d.ts +102 -0
- package/dist/components/badge/badge.d.ts.map +1 -0
- package/dist/components/badge/index.d.ts +7 -0
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/breadcrumbs/breadcrumbs.d.ts +100 -0
- package/dist/components/breadcrumbs/breadcrumbs.d.ts.map +1 -0
- package/dist/components/breadcrumbs/index.d.ts +7 -0
- package/dist/components/breadcrumbs/index.d.ts.map +1 -0
- package/dist/components/card/card.d.ts +127 -0
- package/dist/components/card/card.d.ts.map +1 -0
- package/dist/components/card/index.d.ts +7 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/components/carousel/carousel.d.ts +35 -0
- package/dist/components/carousel/carousel.d.ts.map +1 -0
- package/dist/components/carousel/classes.d.ts +35 -0
- package/dist/components/carousel/classes.d.ts.map +1 -0
- package/dist/components/carousel/index.d.ts +10 -0
- package/dist/components/carousel/index.d.ts.map +1 -0
- package/dist/components/carousel/types.d.ts +167 -0
- package/dist/components/carousel/types.d.ts.map +1 -0
- package/dist/components/carousel/use-carousel.d.ts +51 -0
- package/dist/components/carousel/use-carousel.d.ts.map +1 -0
- package/dist/components/changelog/changelog-entry.d.ts +10 -0
- package/dist/components/changelog/changelog-entry.d.ts.map +1 -0
- package/dist/components/changelog/changelog-timeline.d.ts +9 -0
- package/dist/components/changelog/changelog-timeline.d.ts.map +1 -0
- package/dist/components/changelog/index.d.ts +3 -0
- package/dist/components/changelog/index.d.ts.map +1 -0
- package/dist/components/chart/chart.d.ts +39 -0
- package/dist/components/chart/chart.d.ts.map +1 -0
- package/dist/components/chart/classes.d.ts +24 -0
- package/dist/components/chart/classes.d.ts.map +1 -0
- package/dist/components/chart/components/chart-legends.d.ts +24 -0
- package/dist/components/chart/components/chart-legends.d.ts.map +1 -0
- package/dist/components/chart/components/chart-loading.d.ts +21 -0
- package/dist/components/chart/components/chart-loading.d.ts.map +1 -0
- package/dist/components/chart/components/index.d.ts +8 -0
- package/dist/components/chart/components/index.d.ts.map +1 -0
- package/dist/components/chart/index.d.ts +14 -0
- package/dist/components/chart/index.d.ts.map +1 -0
- package/dist/components/chart/types.d.ts +264 -0
- package/dist/components/chart/types.d.ts.map +1 -0
- package/dist/components/chart/use-chart.d.ts +34 -0
- package/dist/components/chart/use-chart.d.ts.map +1 -0
- package/dist/components/command-palette/command-palette.d.ts +73 -0
- package/dist/components/command-palette/command-palette.d.ts.map +1 -0
- package/dist/components/command-palette/index.d.ts +7 -0
- package/dist/components/command-palette/index.d.ts.map +1 -0
- package/dist/components/confirm-dialog/confirm-dialog.d.ts +89 -0
- package/dist/components/confirm-dialog/confirm-dialog.d.ts.map +1 -0
- package/dist/components/confirm-dialog/index.d.ts +7 -0
- package/dist/components/confirm-dialog/index.d.ts.map +1 -0
- package/dist/components/content-renderer/classes.d.ts +33 -0
- package/dist/components/content-renderer/classes.d.ts.map +1 -0
- package/dist/components/content-renderer/content-renderer.d.ts +37 -0
- package/dist/components/content-renderer/content-renderer.d.ts.map +1 -0
- package/dist/components/content-renderer/html-tags.d.ts +6 -0
- package/dist/components/content-renderer/html-tags.d.ts.map +1 -0
- package/dist/components/content-renderer/html-to-markdown.d.ts +7 -0
- package/dist/components/content-renderer/html-to-markdown.d.ts.map +1 -0
- package/dist/components/content-renderer/index.d.ts +7 -0
- package/dist/components/content-renderer/index.d.ts.map +1 -0
- package/dist/components/content-renderer/markdown.d.ts +23 -0
- package/dist/components/content-renderer/markdown.d.ts.map +1 -0
- package/dist/components/content-renderer/remark-spoiler.d.ts +9 -0
- package/dist/components/content-renderer/remark-spoiler.d.ts.map +1 -0
- package/dist/components/content-renderer/styles.d.ts +2 -0
- package/dist/components/content-renderer/styles.d.ts.map +1 -0
- package/dist/components/country-select/country-select.d.ts +101 -0
- package/dist/components/country-select/country-select.d.ts.map +1 -0
- package/dist/components/country-select/flag-icon.d.ts +36 -0
- package/dist/components/country-select/flag-icon.d.ts.map +1 -0
- package/dist/components/country-select/index.d.ts +5 -0
- package/dist/components/country-select/index.d.ts.map +1 -0
- package/dist/components/date-input/date-input.d.ts +27 -0
- package/dist/components/date-input/date-input.d.ts.map +1 -0
- package/dist/components/date-input/index.d.ts +4 -0
- package/dist/components/date-input/index.d.ts.map +1 -0
- package/dist/components/date-input/value.d.ts +9 -0
- package/dist/components/date-input/value.d.ts.map +1 -0
- package/dist/components/date-range-picker/date-range-input.d.ts +48 -0
- package/dist/components/date-range-picker/date-range-input.d.ts.map +1 -0
- package/dist/components/date-range-picker/date-range-picker.d.ts +39 -0
- package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -0
- package/dist/components/date-range-picker/index.d.ts +7 -0
- package/dist/components/date-range-picker/index.d.ts.map +1 -0
- package/dist/components/date-range-picker/use-date-range-picker.d.ts +28 -0
- package/dist/components/date-range-picker/use-date-range-picker.d.ts.map +1 -0
- package/dist/components/deadline-chip/deadline-chip.d.ts +41 -0
- package/dist/components/deadline-chip/deadline-chip.d.ts.map +1 -0
- package/dist/components/deadline-chip/index.d.ts +7 -0
- package/dist/components/deadline-chip/index.d.ts.map +1 -0
- package/dist/components/doc-layout/doc-layout.d.ts +17 -0
- package/dist/components/doc-layout/doc-layout.d.ts.map +1 -0
- package/dist/components/doc-layout/doc-section-nav.d.ts +16 -0
- package/dist/components/doc-layout/doc-section-nav.d.ts.map +1 -0
- package/dist/components/doc-layout/doc-sidebar.d.ts +18 -0
- package/dist/components/doc-layout/doc-sidebar.d.ts.map +1 -0
- package/dist/components/doc-layout/index.d.ts +4 -0
- package/dist/components/doc-layout/index.d.ts.map +1 -0
- package/dist/components/doc-layout/index.js +6 -0
- package/dist/components/doc-layout/index.js.map +1 -0
- package/dist/components/drawer/drawer.d.ts +65 -0
- package/dist/components/drawer/drawer.d.ts.map +1 -0
- package/dist/components/drawer/index.d.ts +7 -0
- package/dist/components/drawer/index.d.ts.map +1 -0
- package/dist/components/duration-picker/duration-picker.d.ts +24 -0
- package/dist/components/duration-picker/duration-picker.d.ts.map +1 -0
- package/dist/components/duration-picker/index.d.ts +2 -0
- package/dist/components/duration-picker/index.d.ts.map +1 -0
- package/dist/components/editor/classes.d.ts +52 -0
- package/dist/components/editor/classes.d.ts.map +1 -0
- package/dist/components/editor/editor.d.ts +15 -0
- package/dist/components/editor/editor.d.ts.map +1 -0
- package/dist/components/editor/extensions/clear-format.d.ts +3 -0
- package/dist/components/editor/extensions/clear-format.d.ts.map +1 -0
- package/dist/components/editor/extensions/index.d.ts +3 -0
- package/dist/components/editor/extensions/index.d.ts.map +1 -0
- package/dist/components/editor/extensions/text-transform.d.ts +20 -0
- package/dist/components/editor/extensions/text-transform.d.ts.map +1 -0
- package/dist/components/editor/icons/index.d.ts +34 -0
- package/dist/components/editor/icons/index.d.ts.map +1 -0
- package/dist/components/editor/index.d.ts +41 -104
- package/dist/components/editor/index.d.ts.map +1 -0
- package/dist/components/editor/index.js +3 -2
- package/dist/components/editor/presets.d.ts +3 -0
- package/dist/components/editor/presets.d.ts.map +1 -0
- package/dist/components/editor/styles.d.ts +2 -0
- package/dist/components/editor/styles.d.ts.map +1 -0
- package/dist/components/editor/toolbar/bubble-toolbar.d.ts +9 -0
- package/dist/components/editor/toolbar/bubble-toolbar.d.ts.map +1 -0
- package/dist/components/editor/toolbar/code-highlight-block.d.ts +3 -0
- package/dist/components/editor/toolbar/code-highlight-block.d.ts.map +1 -0
- package/dist/components/editor/toolbar/heading-block.d.ts +11 -0
- package/dist/components/editor/toolbar/heading-block.d.ts.map +1 -0
- package/dist/components/editor/toolbar/image-block.d.ts +11 -0
- package/dist/components/editor/toolbar/image-block.d.ts.map +1 -0
- package/dist/components/editor/toolbar/link-block.d.ts +13 -0
- package/dist/components/editor/toolbar/link-block.d.ts.map +1 -0
- package/dist/components/editor/toolbar/toolbar-item.d.ts +3 -0
- package/dist/components/editor/toolbar/toolbar-item.d.ts.map +1 -0
- package/dist/components/editor/toolbar/toolbar.d.ts +3 -0
- package/dist/components/editor/toolbar/toolbar.d.ts.map +1 -0
- package/dist/components/editor/toolbar/use-toolbar-state.d.ts +24 -0
- package/dist/components/editor/toolbar/use-toolbar-state.d.ts.map +1 -0
- package/dist/components/editor/types.d.ts +130 -0
- package/dist/components/editor/types.d.ts.map +1 -0
- package/dist/components/emoji-picker/emoji-picker.d.ts +24 -0
- package/dist/components/emoji-picker/emoji-picker.d.ts.map +1 -0
- package/dist/components/emoji-picker/emoji-search.d.ts +22 -0
- package/dist/components/emoji-picker/emoji-search.d.ts.map +1 -0
- package/dist/components/emoji-picker/emoji.d.ts +19 -0
- package/dist/components/emoji-picker/emoji.d.ts.map +1 -0
- package/dist/components/emoji-picker/index.d.ts +14 -0
- package/dist/components/emoji-picker/index.d.ts.map +1 -0
- package/dist/components/emoji-picker/index.js +3 -0
- package/dist/components/emoji-picker/index.js.map +1 -0
- package/dist/components/emoji-picker/twemoji-url.d.ts +26 -0
- package/dist/components/emoji-picker/twemoji-url.d.ts.map +1 -0
- package/dist/components/emoji-picker/types.d.ts +96 -0
- package/dist/components/emoji-picker/types.d.ts.map +1 -0
- package/dist/components/emoji-picker/use-emoji-data.d.ts +26 -0
- package/dist/components/emoji-picker/use-emoji-data.d.ts.map +1 -0
- package/dist/components/emoji-picker/use-recent-emojis.d.ts +16 -0
- package/dist/components/emoji-picker/use-recent-emojis.d.ts.map +1 -0
- package/dist/components/empty-content/empty-content.d.ts +92 -0
- package/dist/components/empty-content/empty-content.d.ts.map +1 -0
- package/dist/components/empty-content/index.d.ts +7 -0
- package/dist/components/empty-content/index.d.ts.map +1 -0
- package/dist/components/error-boundary/error-boundary.d.ts +162 -0
- package/dist/components/error-boundary/error-boundary.d.ts.map +1 -0
- package/dist/components/error-boundary/index.d.ts +7 -0
- package/dist/components/error-boundary/index.d.ts.map +1 -0
- package/dist/components/field/field-autocomplete.d.ts +74 -0
- package/dist/components/field/field-autocomplete.d.ts.map +1 -0
- package/dist/components/field/field-checkbox.d.ts +42 -0
- package/dist/components/field/field-checkbox.d.ts.map +1 -0
- package/dist/components/field/field-code.d.ts +80 -0
- package/dist/components/field/field-code.d.ts.map +1 -0
- package/dist/components/field/field-country-select.d.ts +84 -0
- package/dist/components/field/field-country-select.d.ts.map +1 -0
- package/dist/components/field/field-date-picker.d.ts +58 -0
- package/dist/components/field/field-date-picker.d.ts.map +1 -0
- package/dist/components/field/field-datetime-picker.d.ts +96 -0
- package/dist/components/field/field-datetime-picker.d.ts.map +1 -0
- package/dist/components/field/field-editor.d.ts +218 -0
- package/dist/components/field/field-editor.d.ts.map +1 -0
- package/dist/components/field/field-multi-checkbox.d.ts +91 -0
- package/dist/components/field/field-multi-checkbox.d.ts.map +1 -0
- package/dist/components/field/field-multi-select.d.ts +85 -0
- package/dist/components/field/field-multi-select.d.ts.map +1 -0
- package/dist/components/field/field-multi-switch.d.ts +93 -0
- package/dist/components/field/field-multi-switch.d.ts.map +1 -0
- package/dist/components/field/field-number.d.ts +50 -0
- package/dist/components/field/field-number.d.ts.map +1 -0
- package/dist/components/field/field-phone.d.ts +82 -0
- package/dist/components/field/field-phone.d.ts.map +1 -0
- package/dist/components/field/field-radio.d.ts +64 -0
- package/dist/components/field/field-radio.d.ts.map +1 -0
- package/dist/components/field/field-rating.d.ts +43 -0
- package/dist/components/field/field-rating.d.ts.map +1 -0
- package/dist/components/field/field-select.d.ts +50 -0
- package/dist/components/field/field-select.d.ts.map +1 -0
- package/dist/components/field/field-slider.d.ts +56 -0
- package/dist/components/field/field-slider.d.ts.map +1 -0
- package/dist/components/field/field-switch.d.ts +44 -0
- package/dist/components/field/field-switch.d.ts.map +1 -0
- package/dist/components/field/field-text.d.ts +38 -0
- package/dist/components/field/field-text.d.ts.map +1 -0
- package/dist/components/field/field-time-picker.d.ts +79 -0
- package/dist/components/field/field-time-picker.d.ts.map +1 -0
- package/dist/components/field/field-upload.d.ts +120 -0
- package/dist/components/field/field-upload.d.ts.map +1 -0
- package/dist/components/field/index.d.ts +149 -0
- package/dist/components/field/index.d.ts.map +1 -0
- package/dist/components/image/image.d.ts +79 -0
- package/dist/components/image/image.d.ts.map +1 -0
- package/dist/components/image/index.d.ts +7 -0
- package/dist/components/image/index.d.ts.map +1 -0
- package/dist/components/index.css +4 -0
- package/dist/components/index.css.map +1 -1
- package/dist/components/index.d.ts +60 -7072
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +21 -11
- package/dist/components/knowledge-graph/edge-labels.d.ts +14 -0
- package/dist/components/knowledge-graph/edge-labels.d.ts.map +1 -0
- package/dist/components/knowledge-graph/graph.d.ts +56 -0
- package/dist/components/knowledge-graph/graph.d.ts.map +1 -0
- package/dist/components/knowledge-graph/index.css +176 -0
- package/dist/components/knowledge-graph/index.css.map +1 -0
- package/dist/components/knowledge-graph/index.d.ts +3 -0
- package/dist/components/knowledge-graph/index.d.ts.map +1 -0
- package/dist/components/knowledge-graph/index.js +795 -0
- package/dist/components/knowledge-graph/index.js.map +1 -0
- package/dist/components/knowledge-graph/label-layout.d.ts +28 -0
- package/dist/components/knowledge-graph/label-layout.d.ts.map +1 -0
- package/dist/components/knowledge-graph/label-store.d.ts +15 -0
- package/dist/components/knowledge-graph/label-store.d.ts.map +1 -0
- package/dist/components/knowledge-graph/model.d.ts +92 -0
- package/dist/components/knowledge-graph/model.d.ts.map +1 -0
- package/dist/components/label/index.d.ts +7 -0
- package/dist/components/label/index.d.ts.map +1 -0
- package/dist/components/label/label.d.ts +71 -0
- package/dist/components/label/label.d.ts.map +1 -0
- package/dist/components/lightbox/classes.d.ts +34 -0
- package/dist/components/lightbox/classes.d.ts.map +1 -0
- package/dist/components/lightbox/index.d.ts +11 -0
- package/dist/components/lightbox/index.d.ts.map +1 -0
- package/dist/components/lightbox/lightbox.d.ts +42 -0
- package/dist/components/lightbox/lightbox.d.ts.map +1 -0
- package/dist/components/lightbox/types.d.ts +233 -0
- package/dist/components/lightbox/types.d.ts.map +1 -0
- package/dist/components/lightbox/use-lightbox.d.ts +42 -0
- package/dist/components/lightbox/use-lightbox.d.ts.map +1 -0
- package/dist/components/loading-screen/index.d.ts +8 -0
- package/dist/components/loading-screen/index.d.ts.map +1 -0
- package/dist/components/loading-screen/loading-screen.d.ts +37 -0
- package/dist/components/loading-screen/loading-screen.d.ts.map +1 -0
- package/dist/components/loading-screen/splash-screen.d.ts +80 -0
- package/dist/components/loading-screen/splash-screen.d.ts.map +1 -0
- package/dist/components/map/Map.d.ts +39 -0
- package/dist/components/map/Map.d.ts.map +1 -0
- package/dist/components/map/MapCoverageLayer.d.ts +25 -0
- package/dist/components/map/MapCoverageLayer.d.ts.map +1 -0
- package/dist/components/map/MapMarker.d.ts +17 -0
- package/dist/components/map/MapMarker.d.ts.map +1 -0
- package/dist/components/map/MapPlaceSearch.d.ts +33 -0
- package/dist/components/map/MapPlaceSearch.d.ts.map +1 -0
- package/dist/components/map/MapPointPicker.d.ts +35 -0
- package/dist/components/map/MapPointPicker.d.ts.map +1 -0
- package/dist/components/map/coordinates.d.ts +10 -0
- package/dist/components/map/coordinates.d.ts.map +1 -0
- package/dist/components/map/index.css +4 -0
- package/dist/components/map/index.css.map +1 -0
- package/dist/components/map/index.d.ts +19 -0
- package/dist/components/map/index.d.ts.map +1 -0
- package/dist/components/map/index.js +3 -0
- package/dist/components/map/index.js.map +1 -0
- package/dist/components/mega-menu/index.d.ts +12 -0
- package/dist/components/mega-menu/index.d.ts.map +1 -0
- package/dist/components/mega-menu/mega-menu-horizontal.d.ts +41 -0
- package/dist/components/mega-menu/mega-menu-horizontal.d.ts.map +1 -0
- package/dist/components/mega-menu/mega-menu-mobile.d.ts +28 -0
- package/dist/components/mega-menu/mega-menu-mobile.d.ts.map +1 -0
- package/dist/components/mega-menu/mega-menu-vertical.d.ts +28 -0
- package/dist/components/mega-menu/mega-menu-vertical.d.ts.map +1 -0
- package/dist/components/mega-menu/styles.d.ts +18 -0
- package/dist/components/mega-menu/styles.d.ts.map +1 -0
- package/dist/components/mega-menu/types.d.ts +200 -0
- package/dist/components/mega-menu/types.d.ts.map +1 -0
- package/dist/components/menu/index.d.ts +7 -0
- package/dist/components/menu/index.d.ts.map +1 -0
- package/dist/components/menu/menu.d.ts +144 -0
- package/dist/components/menu/menu.d.ts.map +1 -0
- package/dist/components/nav-card/index.d.ts +8 -0
- package/dist/components/nav-card/index.d.ts.map +1 -0
- package/dist/components/nav-card/nav-card-grid.d.ts +57 -0
- package/dist/components/nav-card/nav-card-grid.d.ts.map +1 -0
- package/dist/components/nav-card/nav-card.d.ts +69 -0
- package/dist/components/nav-card/nav-card.d.ts.map +1 -0
- package/dist/components/nav-section/components.d.ts +143 -0
- package/dist/components/nav-section/components.d.ts.map +1 -0
- package/dist/components/nav-section/index.d.ts +15 -0
- package/dist/components/nav-section/index.d.ts.map +1 -0
- package/dist/components/nav-section/nav-context.d.ts +80 -0
- package/dist/components/nav-section/nav-context.d.ts.map +1 -0
- package/dist/components/nav-section/nav-item.d.ts +20 -0
- package/dist/components/nav-section/nav-item.d.ts.map +1 -0
- package/dist/components/nav-section/nav-list.d.ts +25 -0
- package/dist/components/nav-section/nav-list.d.ts.map +1 -0
- package/dist/components/nav-section/nav-section-horizontal.d.ts +29 -0
- package/dist/components/nav-section/nav-section-horizontal.d.ts.map +1 -0
- package/dist/components/nav-section/nav-section-mini.d.ts +30 -0
- package/dist/components/nav-section/nav-section-mini.d.ts.map +1 -0
- package/dist/components/nav-section/nav-section-vertical.d.ts +37 -0
- package/dist/components/nav-section/nav-section-vertical.d.ts.map +1 -0
- package/dist/components/nav-section/styles.d.ts +35 -0
- package/dist/components/nav-section/styles.d.ts.map +1 -0
- package/dist/components/nav-section/types.d.ts +178 -0
- package/dist/components/nav-section/types.d.ts.map +1 -0
- package/dist/components/navigation-progress/index.d.ts +7 -0
- package/dist/components/navigation-progress/index.d.ts.map +1 -0
- package/dist/components/navigation-progress/navigation-progress.d.ts +36 -0
- package/dist/components/navigation-progress/navigation-progress.d.ts.map +1 -0
- package/dist/components/page-content/index.d.ts +7 -0
- package/dist/components/page-content/index.d.ts.map +1 -0
- package/dist/components/page-content/page-content.d.ts +55 -0
- package/dist/components/page-content/page-content.d.ts.map +1 -0
- package/dist/components/popover/index.d.ts +7 -0
- package/dist/components/popover/index.d.ts.map +1 -0
- package/dist/{popover-Dmw7SJLR.d.ts → components/popover/popover.d.ts} +11 -14
- package/dist/components/popover/popover.d.ts.map +1 -0
- package/dist/components/progress/countdown-ring.d.ts +60 -0
- package/dist/components/progress/countdown-ring.d.ts.map +1 -0
- package/dist/components/progress/index.d.ts +8 -0
- package/dist/components/progress/index.d.ts.map +1 -0
- package/dist/components/progress/progress.d.ts +106 -0
- package/dist/components/progress/progress.d.ts.map +1 -0
- package/dist/components/rail/index.d.ts +7 -0
- package/dist/components/rail/index.d.ts.map +1 -0
- package/dist/components/rail/rail.d.ts +39 -0
- package/dist/components/rail/rail.d.ts.map +1 -0
- package/dist/components/research/diagram-image.d.ts +11 -0
- package/dist/components/research/diagram-image.d.ts.map +1 -0
- package/dist/components/research/diagram.d.ts +8 -0
- package/dist/components/research/diagram.d.ts.map +1 -0
- package/dist/components/research/document.d.ts +33 -0
- package/dist/components/research/document.d.ts.map +1 -0
- package/dist/components/research/frontmatter.d.ts +15 -0
- package/dist/components/research/frontmatter.d.ts.map +1 -0
- package/dist/components/research/index.css +51 -0
- package/dist/components/research/index.css.map +1 -0
- package/dist/components/research/index.d.ts +3 -0
- package/dist/components/research/index.d.ts.map +1 -0
- package/dist/components/research/index.js +6 -0
- package/dist/components/research/index.js.map +1 -0
- package/dist/components/research/parse.d.ts +29 -0
- package/dist/components/research/parse.d.ts.map +1 -0
- package/dist/components/research-editor/block-commands.d.ts +20 -0
- package/dist/components/research-editor/block-commands.d.ts.map +1 -0
- package/dist/components/research-editor/block-controls.d.ts +13 -0
- package/dist/components/research-editor/block-controls.d.ts.map +1 -0
- package/dist/components/research-editor/editor.d.ts +75 -0
- package/dist/components/research-editor/editor.d.ts.map +1 -0
- package/dist/components/research-editor/extensions.d.ts +14 -0
- package/dist/components/research-editor/extensions.d.ts.map +1 -0
- package/dist/components/research-editor/index.css +332 -0
- package/dist/components/research-editor/index.css.map +1 -0
- package/dist/components/research-editor/index.d.ts +5 -0
- package/dist/components/research-editor/index.d.ts.map +1 -0
- package/dist/components/research-editor/index.js +1592 -0
- package/dist/components/research-editor/index.js.map +1 -0
- package/dist/components/research-editor/math-input.d.ts +32 -0
- package/dist/components/research-editor/math-input.d.ts.map +1 -0
- package/dist/components/research-editor/math-markup.d.ts +4 -0
- package/dist/components/research-editor/math-markup.d.ts.map +1 -0
- package/dist/components/research-editor/math-navigation.d.ts +6 -0
- package/dist/components/research-editor/math-navigation.d.ts.map +1 -0
- package/dist/components/research-editor/math-node.d.ts +11 -0
- package/dist/components/research-editor/math-node.d.ts.map +1 -0
- package/dist/components/research-editor/source.d.ts +19 -0
- package/dist/components/research-editor/source.d.ts.map +1 -0
- package/dist/components/scroll-spy/index.d.ts +3 -0
- package/dist/components/scroll-spy/index.d.ts.map +1 -0
- package/dist/components/scroll-spy/scroll-spy-provider.d.ts +26 -0
- package/dist/components/scroll-spy/scroll-spy-provider.d.ts.map +1 -0
- package/dist/components/scroll-spy/scroll-spy-section.d.ts +10 -0
- package/dist/components/scroll-spy/scroll-spy-section.d.ts.map +1 -0
- package/dist/components/scroll-to-top/index.d.ts +7 -0
- package/dist/components/scroll-to-top/index.d.ts.map +1 -0
- package/dist/components/scroll-to-top/scroll-to-top.d.ts +25 -0
- package/dist/components/scroll-to-top/scroll-to-top.d.ts.map +1 -0
- package/dist/components/scrollbar/index.d.ts +7 -0
- package/dist/components/scrollbar/index.d.ts.map +1 -0
- package/dist/components/scrollbar/scrollbar.d.ts +61 -0
- package/dist/components/scrollbar/scrollbar.d.ts.map +1 -0
- package/dist/components/search-input/index.d.ts +2 -0
- package/dist/components/search-input/index.d.ts.map +1 -0
- package/dist/components/search-input/search-input.d.ts +36 -0
- package/dist/components/search-input/search-input.d.ts.map +1 -0
- package/dist/components/settings/index.d.ts +10 -0
- package/dist/components/settings/index.d.ts.map +1 -0
- package/dist/components/settings/settings-drawer.d.ts +39 -0
- package/dist/components/settings/settings-drawer.d.ts.map +1 -0
- package/dist/components/settings/settings-provider.d.ts +106 -0
- package/dist/components/settings/settings-provider.d.ts.map +1 -0
- package/dist/components/skeleton/index.d.ts +7 -0
- package/dist/components/skeleton/index.d.ts.map +1 -0
- package/dist/components/skeleton/skeleton.d.ts +77 -0
- package/dist/components/skeleton/skeleton.d.ts.map +1 -0
- package/dist/components/snackbar/index.d.ts +7 -0
- package/dist/components/snackbar/index.d.ts.map +1 -0
- package/dist/components/snackbar/snackbar.d.ts +120 -0
- package/dist/components/snackbar/snackbar.d.ts.map +1 -0
- package/dist/components/sponsored-slot/index.d.ts +3 -0
- package/dist/components/sponsored-slot/index.d.ts.map +1 -0
- package/dist/components/sponsored-slot/sponsored-slot.d.ts +16 -0
- package/dist/components/sponsored-slot/sponsored-slot.d.ts.map +1 -0
- package/dist/components/sponsored-slot/types.d.ts +45 -0
- package/dist/components/sponsored-slot/types.d.ts.map +1 -0
- package/dist/components/stepper/index.d.ts +7 -0
- package/dist/components/stepper/index.d.ts.map +1 -0
- package/dist/components/stepper/stepper.d.ts +145 -0
- package/dist/components/stepper/stepper.d.ts.map +1 -0
- package/dist/components/svg-color/index.d.ts +7 -0
- package/dist/components/svg-color/index.d.ts.map +1 -0
- package/dist/components/svg-color/svg-color.d.ts +80 -0
- package/dist/components/svg-color/svg-color.d.ts.map +1 -0
- package/dist/components/table/index.d.ts +7 -0
- package/dist/components/table/index.d.ts.map +1 -0
- package/dist/components/table/table.d.ts +184 -0
- package/dist/components/table/table.d.ts.map +1 -0
- package/dist/components/tabs/index.d.ts +7 -0
- package/dist/components/tabs/index.d.ts.map +1 -0
- package/dist/components/tabs/tabs.d.ts +146 -0
- package/dist/components/tabs/tabs.d.ts.map +1 -0
- package/dist/components/tag-cloud/index.d.ts +7 -0
- package/dist/components/tag-cloud/index.d.ts.map +1 -0
- package/dist/components/tag-cloud/tag-cloud.d.ts +58 -0
- package/dist/components/tag-cloud/tag-cloud.d.ts.map +1 -0
- package/dist/components/tiptap-renderer/index.d.ts +2 -0
- package/dist/components/tiptap-renderer/index.d.ts.map +1 -0
- package/dist/components/tiptap-renderer/tiptap-renderer.d.ts +46 -0
- package/dist/components/tiptap-renderer/tiptap-renderer.d.ts.map +1 -0
- package/dist/components/tooltip/index.d.ts +7 -0
- package/dist/components/tooltip/index.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip.d.ts +38 -0
- package/dist/components/tooltip/tooltip.d.ts.map +1 -0
- package/dist/components/virtual-list/index.d.ts +7 -0
- package/dist/components/virtual-list/index.d.ts.map +1 -0
- package/dist/components/virtual-list/virtual-list.d.ts +64 -0
- package/dist/components/virtual-list/virtual-list.d.ts.map +1 -0
- package/dist/core/accessibility/index.d.ts +96 -0
- package/dist/core/accessibility/index.d.ts.map +1 -0
- package/dist/core/accessibility/skip-link.d.ts +31 -0
- package/dist/core/accessibility/skip-link.d.ts.map +1 -0
- package/dist/core/context.d.ts +99 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/hooks/use-boolean.d.ts +54 -0
- package/dist/core/hooks/use-boolean.d.ts.map +1 -0
- package/dist/core/hooks/use-breakpoints.d.ts +87 -0
- package/dist/core/hooks/use-breakpoints.d.ts.map +1 -0
- package/dist/core/hooks/use-click-outside.d.ts +26 -0
- package/dist/core/hooks/use-click-outside.d.ts.map +1 -0
- package/dist/core/hooks/use-copy-to-clipboard.d.ts +66 -0
- package/dist/core/hooks/use-copy-to-clipboard.d.ts.map +1 -0
- package/dist/core/hooks/use-countdown.d.ts +105 -0
- package/dist/core/hooks/use-countdown.d.ts.map +1 -0
- package/dist/core/hooks/use-debounce.d.ts +64 -0
- package/dist/core/hooks/use-debounce.d.ts.map +1 -0
- package/dist/core/hooks/use-event-listener.d.ts +37 -0
- package/dist/core/hooks/use-event-listener.d.ts.map +1 -0
- package/dist/core/hooks/use-interval.d.ts +30 -0
- package/dist/core/hooks/use-interval.d.ts.map +1 -0
- package/dist/core/hooks/use-is-client.d.ts +24 -0
- package/dist/core/hooks/use-is-client.d.ts.map +1 -0
- package/dist/core/hooks/use-local-storage.d.ts +61 -0
- package/dist/core/hooks/use-local-storage.d.ts.map +1 -0
- package/dist/core/hooks/use-media-query.d.ts +107 -0
- package/dist/core/hooks/use-media-query.d.ts.map +1 -0
- package/dist/core/hooks/use-mounted.d.ts +33 -0
- package/dist/core/hooks/use-mounted.d.ts.map +1 -0
- package/dist/core/hooks/use-multi-select.d.ts +113 -0
- package/dist/core/hooks/use-multi-select.d.ts.map +1 -0
- package/dist/core/hooks/use-previous.d.ts +23 -0
- package/dist/core/hooks/use-previous.d.ts.map +1 -0
- package/dist/core/hooks/use-set-state.d.ts +56 -0
- package/dist/core/hooks/use-set-state.d.ts.map +1 -0
- package/dist/core/hooks/use-tabs.d.ts +74 -0
- package/dist/core/hooks/use-tabs.d.ts.map +1 -0
- package/dist/core/hooks/use-timeout.d.ts +37 -0
- package/dist/core/hooks/use-timeout.d.ts.map +1 -0
- package/dist/core/index.d.ts +36 -468
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +10 -7
- package/dist/core/provider-stack.d.ts +181 -0
- package/dist/core/provider-stack.d.ts.map +1 -0
- package/dist/core/provider.d.ts +72 -0
- package/dist/core/provider.d.ts.map +1 -0
- package/dist/forms/index.d.ts +6 -557
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +0 -1
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/schema-provider.d.ts +282 -0
- package/dist/forms/schema-provider.d.ts.map +1 -0
- package/dist/forms/schema-utils.d.ts +286 -0
- package/dist/forms/schema-utils.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +38 -8
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +12 -9
- package/dist/hooks/use-array.d.ts +126 -0
- package/dist/hooks/use-array.d.ts.map +1 -0
- package/dist/hooks/use-async.d.ts +88 -0
- package/dist/hooks/use-async.d.ts.map +1 -0
- package/dist/hooks/use-back-to-top.d.ts +57 -0
- package/dist/hooks/use-back-to-top.d.ts.map +1 -0
- package/dist/hooks/use-client-rect.d.ts +67 -0
- package/dist/hooks/use-client-rect.d.ts.map +1 -0
- package/dist/hooks/use-config-from-query.d.ts +98 -0
- package/dist/hooks/use-config-from-query.d.ts.map +1 -0
- package/dist/hooks/use-cookies.d.ts +62 -0
- package/dist/hooks/use-cookies.d.ts.map +1 -0
- package/dist/hooks/use-countdown-date.d.ts +47 -0
- package/dist/hooks/use-countdown-date.d.ts.map +1 -0
- package/dist/hooks/use-countdown-seconds.d.ts +83 -0
- package/dist/hooks/use-countdown-seconds.d.ts.map +1 -0
- package/dist/hooks/use-double-click.d.ts +67 -0
- package/dist/hooks/use-double-click.d.ts.map +1 -0
- package/dist/hooks/use-focus-trap.d.ts +66 -0
- package/dist/hooks/use-focus-trap.d.ts.map +1 -0
- package/dist/hooks/use-image-dimensions.d.ts +124 -0
- package/dist/hooks/use-image-dimensions.d.ts.map +1 -0
- package/dist/hooks/use-infinite-scroll.d.ts +204 -0
- package/dist/hooks/use-infinite-scroll.d.ts.map +1 -0
- package/dist/hooks/use-intersection-observer.d.ts +93 -0
- package/dist/hooks/use-intersection-observer.d.ts.map +1 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts +34 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
- package/dist/hooks/use-keyboard-shortcut.d.ts +112 -0
- package/dist/hooks/use-keyboard-shortcut.d.ts.map +1 -0
- package/dist/hooks/use-lazy-query.d.ts +132 -0
- package/dist/hooks/use-lazy-query.d.ts.map +1 -0
- package/dist/hooks/use-mutation.d.ts +141 -0
- package/dist/hooks/use-mutation.d.ts.map +1 -0
- package/dist/hooks/use-online-status.d.ts +56 -0
- package/dist/hooks/use-online-status.d.ts.map +1 -0
- package/dist/hooks/use-password-visibility.d.ts +83 -0
- package/dist/hooks/use-password-visibility.d.ts.map +1 -0
- package/dist/hooks/use-popover-hover.d.ts +78 -0
- package/dist/hooks/use-popover-hover.d.ts.map +1 -0
- package/dist/hooks/use-scroll-offset-top.d.ts +69 -0
- package/dist/hooks/use-scroll-offset-top.d.ts.map +1 -0
- package/dist/hooks/use-scroll-position.d.ts +96 -0
- package/dist/hooks/use-scroll-position.d.ts.map +1 -0
- package/dist/hooks/use-session-storage.d.ts +66 -0
- package/dist/hooks/use-session-storage.d.ts.map +1 -0
- package/dist/hooks/use-throttle.d.ts +67 -0
- package/dist/hooks/use-throttle.d.ts.map +1 -0
- package/dist/hooks/use-update-effect.d.ts +53 -0
- package/dist/hooks/use-update-effect.d.ts.map +1 -0
- package/dist/hooks/use-window-size.d.ts +132 -0
- package/dist/hooks/use-window-size.d.ts.map +1 -0
- package/dist/http/client.d.ts +74 -0
- package/dist/http/client.d.ts.map +1 -0
- package/dist/http/index.d.ts +6 -229
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +0 -2
- package/dist/http/index.js.map +1 -1
- package/dist/http/types.d.ts +158 -0
- package/dist/http/types.d.ts.map +1 -0
- package/dist/icons/context.d.ts +17 -0
- package/dist/icons/context.d.ts.map +1 -0
- package/dist/icons/controls.d.ts +51 -0
- package/dist/icons/controls.d.ts.map +1 -0
- package/dist/icons/index.d.ts +3 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +4 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/icons/theme.d.ts +4 -0
- package/dist/icons/theme.d.ts.map +1 -0
- package/dist/index.css +4 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +19 -2758
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +46 -63
- package/dist/index.js.map +1 -1
- package/dist/layouts/auth/centered.d.ts +49 -0
- package/dist/layouts/auth/centered.d.ts.map +1 -0
- package/dist/layouts/auth/index.d.ts +12 -0
- package/dist/layouts/auth/index.d.ts.map +1 -0
- package/dist/layouts/auth/simple.d.ts +58 -0
- package/dist/layouts/auth/simple.d.ts.map +1 -0
- package/dist/layouts/auth/split.d.ts +81 -0
- package/dist/layouts/auth/split.d.ts.map +1 -0
- package/dist/layouts/core/context.d.ts +102 -0
- package/dist/layouts/core/context.d.ts.map +1 -0
- package/dist/layouts/core/css-vars.d.ts +43 -0
- package/dist/layouts/core/css-vars.d.ts.map +1 -0
- package/dist/layouts/core/header-section.d.ts +79 -0
- package/dist/layouts/core/header-section.d.ts.map +1 -0
- package/dist/layouts/core/index.d.ts +18 -0
- package/dist/layouts/core/index.d.ts.map +1 -0
- package/dist/layouts/core/layout-section.d.ts +64 -0
- package/dist/layouts/core/layout-section.d.ts.map +1 -0
- package/dist/layouts/core/user-menu.d.ts +88 -0
- package/dist/layouts/core/user-menu.d.ts.map +1 -0
- package/dist/layouts/dashboard/index.d.ts +10 -0
- package/dist/layouts/dashboard/index.d.ts.map +1 -0
- package/dist/layouts/dashboard/labels.d.ts +12 -0
- package/dist/layouts/dashboard/labels.d.ts.map +1 -0
- package/dist/layouts/dashboard/layout.d.ts +96 -0
- package/dist/layouts/dashboard/layout.d.ts.map +1 -0
- package/dist/layouts/dashboard/sidenav.d.ts +62 -0
- package/dist/layouts/dashboard/sidenav.d.ts.map +1 -0
- package/dist/layouts/dashboard/topnav.d.ts +41 -0
- package/dist/layouts/dashboard/topnav.d.ts.map +1 -0
- package/dist/layouts/index.d.ts +32 -850
- package/dist/layouts/index.d.ts.map +1 -0
- package/dist/layouts/index.js +8 -4
- package/dist/layouts/panel-layout.d.ts +35 -0
- package/dist/layouts/panel-layout.d.ts.map +1 -0
- package/dist/layouts/sidebar-toggle.d.ts +11 -0
- package/dist/layouts/sidebar-toggle.d.ts.map +1 -0
- package/dist/layouts/types.d.ts +317 -0
- package/dist/layouts/types.d.ts.map +1 -0
- package/dist/netron/context.d.ts +18 -0
- package/dist/netron/context.d.ts.map +1 -0
- package/dist/netron/hooks.d.ts +10 -0
- package/dist/netron/hooks.d.ts.map +1 -0
- package/dist/netron/index.d.ts +47 -4
- package/dist/netron/index.d.ts.map +1 -0
- package/dist/netron/index.js +1 -2
- package/dist/netron/types.d.ts +12 -0
- package/dist/netron/types.d.ts.map +1 -0
- package/dist/registry/index.d.ts +8 -341
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +1 -2
- package/dist/registry/installer.d.ts +137 -0
- package/dist/registry/installer.d.ts.map +1 -0
- package/dist/registry/manager.d.ts +196 -0
- package/dist/registry/manager.d.ts.map +1 -0
- package/dist/state/create-store.d.ts +164 -0
- package/dist/state/create-store.d.ts.map +1 -0
- package/dist/state/index.d.ts +12 -969
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +2 -3
- package/dist/state/settings-version.d.ts +255 -0
- package/dist/state/settings-version.d.ts.map +1 -0
- package/dist/state/stores/auth.d.ts +143 -0
- package/dist/state/stores/auth.d.ts.map +1 -0
- package/dist/state/stores/index.d.ts +10 -0
- package/dist/state/stores/index.d.ts.map +1 -0
- package/dist/state/stores/settings.d.ts +151 -0
- package/dist/state/stores/settings.d.ts.map +1 -0
- package/dist/state/stores/theme.d.ts +87 -0
- package/dist/state/stores/theme.d.ts.map +1 -0
- package/dist/state/stores/ui.d.ts +106 -0
- package/dist/state/stores/ui.d.ts.map +1 -0
- package/dist/theme/colors/base.d.ts +61 -0
- package/dist/theme/colors/base.d.ts.map +1 -0
- package/dist/theme/colors/index.d.ts +10 -0
- package/dist/theme/colors/index.d.ts.map +1 -0
- package/dist/theme/colors/luxury.d.ts +49 -0
- package/dist/theme/colors/luxury.d.ts.map +1 -0
- package/dist/theme/components/Autocomplete.d.ts +9 -0
- package/dist/theme/components/Autocomplete.d.ts.map +1 -0
- package/dist/theme/components/Button.d.ts +33 -0
- package/dist/theme/components/Button.d.ts.map +1 -0
- package/dist/theme/components/Card.d.ts +20 -0
- package/dist/theme/components/Card.d.ts.map +1 -0
- package/dist/theme/components/Chip.d.ts +29 -0
- package/dist/theme/components/Chip.d.ts.map +1 -0
- package/dist/theme/components/DataGrid.d.ts +15 -0
- package/dist/theme/components/DataGrid.d.ts.map +1 -0
- package/dist/theme/components/DatePicker.d.ts +19 -0
- package/dist/theme/components/DatePicker.d.ts.map +1 -0
- package/dist/theme/components/Dialog.d.ts +23 -0
- package/dist/theme/components/Dialog.d.ts.map +1 -0
- package/dist/theme/components/FormControls.d.ts +44 -0
- package/dist/theme/components/FormControls.d.ts.map +1 -0
- package/dist/theme/components/Tabs.d.ts +21 -0
- package/dist/theme/components/Tabs.d.ts.map +1 -0
- package/dist/theme/components/TextField.d.ts +87 -0
- package/dist/theme/components/TextField.d.ts.map +1 -0
- package/dist/theme/components/index.d.ts +27 -0
- package/dist/theme/components/index.d.ts.map +1 -0
- package/dist/theme/components/theme-utils.d.ts +42 -0
- package/dist/theme/components/theme-utils.d.ts.map +1 -0
- package/dist/theme/create-theme.d.ts +119 -0
- package/dist/theme/create-theme.d.ts.map +1 -0
- package/dist/theme/css-variables.d.ts +42 -0
- package/dist/theme/css-variables.d.ts.map +1 -0
- package/dist/theme/custom-shadows.d.ts +58 -0
- package/dist/theme/custom-shadows.d.ts.map +1 -0
- package/dist/theme/index.d.ts +23 -1045
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +6 -3
- package/dist/theme/mixins.d.ts +334 -0
- package/dist/theme/mixins.d.ts.map +1 -0
- package/dist/theme/opacity.d.ts +51 -0
- package/dist/theme/opacity.d.ts.map +1 -0
- package/dist/theme/palette/builder.d.ts +138 -0
- package/dist/theme/palette/builder.d.ts.map +1 -0
- package/dist/theme/palette/index.d.ts +7 -0
- package/dist/theme/palette/index.d.ts.map +1 -0
- package/dist/theme/palette/overrides.d.ts +23 -0
- package/dist/theme/palette/overrides.d.ts.map +1 -0
- package/dist/theme/palette.d.ts +43 -0
- package/dist/theme/palette.d.ts.map +1 -0
- package/dist/theme/presets/arctic.d.ts +13 -0
- package/dist/theme/presets/arctic.d.ts.map +1 -0
- package/dist/theme/presets/default.d.ts +13 -0
- package/dist/theme/presets/default.d.ts.map +1 -0
- package/dist/theme/presets/dracula.d.ts +27 -0
- package/dist/theme/presets/dracula.d.ts.map +1 -0
- package/dist/theme/presets/ember.d.ts +23 -0
- package/dist/theme/presets/ember.d.ts.map +1 -0
- package/dist/theme/presets/index.d.ts +39 -0
- package/dist/theme/presets/index.d.ts.map +1 -0
- package/dist/theme/presets/luxury.d.ts +13 -0
- package/dist/theme/presets/luxury.d.ts.map +1 -0
- package/dist/theme/presets/midnight.d.ts +23 -0
- package/dist/theme/presets/midnight.d.ts.map +1 -0
- package/dist/theme/presets/minimal.d.ts +23 -0
- package/dist/theme/presets/minimal.d.ts.map +1 -0
- package/dist/theme/presets/nature.d.ts +14 -0
- package/dist/theme/presets/nature.d.ts.map +1 -0
- package/dist/theme/presets/retro.d.ts +23 -0
- package/dist/theme/presets/retro.d.ts.map +1 -0
- package/dist/theme/shadows.d.ts +61 -0
- package/dist/theme/shadows.d.ts.map +1 -0
- package/dist/theme/typography.d.ts +24 -0
- package/dist/theme/typography.d.ts.map +1 -0
- package/dist/theme/utils/color.d.ts +295 -0
- package/dist/theme/utils/color.d.ts.map +1 -0
- package/dist/theme/utils/index.d.ts +7 -0
- package/dist/theme/utils/index.d.ts.map +1 -0
- package/dist/{registry-DQcIzW2s.d.ts → types/blocks.d.ts} +30 -191
- package/dist/types/blocks.d.ts.map +1 -0
- package/dist/{components-BCGZ-Rwt.d.ts → types/components.d.ts} +17 -20
- package/dist/types/components.d.ts.map +1 -0
- package/dist/{config-Pct0n_Kq.d.ts → types/config.d.ts} +14 -16
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -7
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -2
- package/dist/types/registry.d.ts +158 -0
- package/dist/types/registry.d.ts.map +1 -0
- package/dist/{theme-B4Q3Bg5o.d.ts → types/theme.d.ts} +31 -34
- package/dist/types/theme.d.ts.map +1 -0
- package/dist/ui/index.d.ts +18 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +148 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/utils/async-lock.d.ts +169 -0
- package/dist/utils/async-lock.d.ts.map +1 -0
- package/dist/utils/cn.d.ts +80 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/cookies.d.ts +68 -0
- package/dist/utils/cookies.d.ts.map +1 -0
- package/dist/utils/create-classes.d.ts +90 -0
- package/dist/utils/create-classes.d.ts.map +1 -0
- package/dist/utils/errors.d.ts +201 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/fetch-interceptor.d.ts +230 -0
- package/dist/utils/fetch-interceptor.d.ts.map +1 -0
- package/dist/utils/font.d.ts +65 -0
- package/dist/utils/font.d.ts.map +1 -0
- package/dist/utils/format-crypto.d.ts +312 -0
- package/dist/utils/format-crypto.d.ts.map +1 -0
- package/dist/utils/format-date.d.ts +240 -0
- package/dist/utils/format-date.d.ts.map +1 -0
- package/dist/utils/format-number.d.ts +245 -0
- package/dist/utils/format-number.d.ts.map +1 -0
- package/dist/utils/i18n-text.d.ts +68 -0
- package/dist/utils/i18n-text.d.ts.map +1 -0
- package/dist/utils/index.d.ts +30 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/jwt.d.ts +227 -0
- package/dist/utils/jwt.d.ts.map +1 -0
- package/dist/utils/object.d.ts +96 -0
- package/dist/utils/object.d.ts.map +1 -0
- package/dist/utils/refs.d.ts +60 -0
- package/dist/utils/refs.d.ts.map +1 -0
- package/dist/utils/rtl.d.ts +75 -0
- package/dist/utils/rtl.d.ts.map +1 -0
- package/dist/utils/storage.d.ts +190 -0
- package/dist/utils/storage.d.ts.map +1 -0
- package/dist/utils/string.d.ts +216 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/dist/utils/template-resolver.d.ts +12 -0
- package/dist/utils/template-resolver.d.ts.map +1 -0
- package/dist/utils/toast.d.ts +25 -0
- package/dist/utils/toast.d.ts.map +1 -0
- package/dist/utils/transform-number.d.ts +108 -0
- package/dist/utils/transform-number.d.ts.map +1 -0
- package/dist/utils/url.d.ts +198 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/package.json +120 -63
- package/dist/chunk-2FYNRDXR.js.map +0 -1
- package/dist/chunk-77KIJLPP.js +0 -37
- package/dist/chunk-A2Z7NVGL.js.map +0 -1
- package/dist/chunk-BV32OJ2A.js.map +0 -1
- package/dist/chunk-DDY7TLUI.js.map +0 -1
- package/dist/chunk-HO2GKTWJ.js.map +0 -1
- package/dist/chunk-IZOIO7PA.js.map +0 -1
- package/dist/chunk-JDTC2SBY.js.map +0 -1
- package/dist/chunk-KTCWPGON.js.map +0 -1
- package/dist/chunk-MEFT6XPH.js.map +0 -1
- package/dist/chunk-SNKGGHBT.js.map +0 -1
- package/dist/chunk-VAAIHNWQ.js.map +0 -1
- package/dist/chunk-XQXGE2PW.js +0 -16793
- package/dist/chunk-XQXGE2PW.js.map +0 -1
- package/dist/chunk-XWL6J6IO.js.map +0 -1
- package/dist/chunk-XXP3ZGU6.js.map +0 -1
- package/dist/chunk-YJMAQL3S.js.map +0 -1
- package/dist/index-nmJ8Muwg.d.ts +0 -2368
- package/dist/settings-CAC0qFjS.d.ts +0 -455
- package/dist/text-transform-D6MzzF7V.d.ts +0 -165
- package/dist/use-timeout-D7U3EAtH.d.ts +0 -808
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/research-editor/math-markup.ts","../../../src/components/research-editor/math-input.tsx","../../../src/components/research-editor/source.ts","../../../src/components/research-editor/math-navigation.ts","../../../src/components/research-editor/math-node.tsx","../../../src/components/research-editor/block-commands.ts","../../../src/components/research-editor/extensions.tsx","../../../src/components/research-editor/block-controls.tsx","../../../src/components/research-editor/editor.tsx"],"names":["p","Button","TextField","useRef","useEffect","closeHistory","jsx","TextSelection","NodeSelection","createContext","useContext","useState","NodeViewWrapper","jsxs","selected","IconButton","math","Box"],"mappings":"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","file":"index.js","sourcesContent":["import DOMPurify from 'dompurify';\n\n// Layout properties required by typeset atoms; none can fetch an external resource.\nconst layoutProperties = new Set([\n 'color',\n 'background-color',\n 'opacity',\n 'height',\n 'width',\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height',\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'vertical-align',\n 'margin',\n 'margin-top',\n 'margin-bottom',\n 'margin-left',\n 'margin-right',\n 'padding',\n 'padding-top',\n 'padding-bottom',\n 'padding-left',\n 'padding-right',\n 'border',\n 'border-top',\n 'border-bottom',\n 'border-left',\n 'border-right',\n 'border-color',\n 'border-width',\n 'border-style',\n 'border-radius',\n 'font-size',\n 'font-weight',\n 'font-style',\n 'line-height',\n 'letter-spacing',\n 'display',\n 'visibility',\n 'text-align',\n 'white-space',\n 'transform',\n 'transform-origin',\n]);\n/** Preserve MathLive's editable sink and local SVG icons, without DOM capabilities\n * or CSS/resource injection from an imported formula's presentation commands. */\nexport function sanitizeMathMarkup(html: string): string {\n const fragment = DOMPurify.sanitize(html, {\n ADD_ATTR: ['contenteditable'],\n ADD_TAGS: ['use'],\n FORBID_TAGS: ['style', 'link', 'iframe', 'object', 'embed', 'img', 'image', 'foreignObject'],\n RETURN_DOM_FRAGMENT: true,\n });\n for (const element of fragment.querySelectorAll('*')) {\n for (const attribute of Array.from(element.attributes)) {\n if (\n ['href', 'xlink:href', 'src', 'action', 'formaction', 'poster'].includes(attribute.name) &&\n !(element.localName === 'use' && /^#[\\w-]+$/.test(attribute.value))\n )\n element.removeAttribute(attribute.name);\n }\n }\n for (const element of fragment.querySelectorAll('[style]')) {\n const parsed = document.createElement('span').style;\n parsed.cssText = element.getAttribute('style') ?? '';\n const safe = document.createElement('span').style;\n for (const name of Array.from(parsed)) {\n if (layoutProperties.has(name)) safe.setProperty(name, parsed.getPropertyValue(name));\n }\n if (safe.cssText) element.setAttribute('style', safe.cssText);\n else element.removeAttribute('style');\n }\n for (const element of fragment.querySelectorAll('[fill], [stroke]')) {\n for (const name of ['fill', 'stroke']) {\n const value = element.getAttribute(name);\n if (value && /url|\\\\/i.test(value)) element.removeAttribute(name);\n }\n }\n const wrapper = document.createElement('div');\n wrapper.append(fragment);\n return wrapper.innerHTML;\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\nimport Tooltip from '@mui/material/Tooltip';\nimport { KeyboardIcon as KeyboardOutlined } from '../../icons/controls.js';\nimport { CheckIcon as Check } from '../../icons/controls.js';\nimport GlobalStyles from '@mui/material/GlobalStyles';\nimport { useTheme } from '@mui/material/styles';\nimport type { MathfieldElement, MathfieldOptions, MoveOutEvent } from 'mathlive';\nimport { sanitizeMathMarkup } from './math-markup.js';\n\nexport const defaultMathInputLabels = {\n field: 'Equation',\n source: 'LaTeX source',\n keyboard: 'Math keyboard',\n done: 'Return to document',\n loading: 'Loading equation editor…',\n unavailable: 'Visual input unavailable. LaTeX editing is available.',\n syntax: 'Check the LaTeX syntax. The source is retained.',\n limit: 'Equation exceeds the configured limit.',\n};\nexport type MathInputLabels = typeof defaultMathInputLabels;\nexport type MathExit = MoveOutEvent['direction'];\nexport interface MathInputProps {\n value: string;\n /** Synchronous admission: return false to reject an edit and restore the accepted value. */\n onChange: (latex: string) => boolean | void;\n onExit?: (direction: MathExit) => void;\n onHistory?: (redo: boolean) => void;\n readOnly?: boolean;\n locale?: string;\n autoFocus?: boolean;\n entry?: 'start' | 'end';\n display?: boolean;\n maxLength?: number;\n labels?: Partial<MathInputLabels>;\n /** Initial host-owned input configuration (remount to replace); expressions never supply executable options. */\n options?: Partial<Pick<MathfieldOptions, 'macros' | 'inlineShortcuts' | 'keybindings' | 'mathVirtualKeyboardPolicy'>>;\n}\nlet runtime: Promise<typeof import('mathlive')> | undefined;\n// MathLive has one document-wide keyboard; only its current owner may close it.\nlet keyboardOwner: MathfieldElement | undefined;\nfunction loadMathLive() {\n return (runtime ??= import('mathlive')\n .then((module) => {\n // Fonts are packaged by the host bundler. Never contact a CDN or load sounds.\n module.MathfieldElement.createHTML = sanitizeMathMarkup;\n module.MathfieldElement.fontsDirectory = null;\n module.MathfieldElement.soundsDirectory = null;\n return module;\n })\n .catch((error: unknown) => {\n runtime = undefined;\n throw error;\n }));\n}\n\n/** Controlled, local-only scientific input. Does not evaluate or certify mathematics. */\nexport function MathInput(props: MathInputProps) {\n const labels = { ...defaultMathInputLabels, ...props.labels };\n const theme = useTheme();\n const host = useRef<HTMLSpanElement>(null),\n field = useRef<MathfieldElement | undefined>(undefined);\n const editingSource = useRef(false);\n const latest = useRef(props);\n latest.current = props;\n const [ready, setReady] = useState(false),\n [failed, setFailed] = useState(false);\n const [source, setSource] = useState(false),\n [issue, setIssue] = useState<'syntax' | 'limit'>();\n function accept(value: string) {\n const p = latest.current;\n if (p.readOnly || value.length > (p.maxLength ?? 65536) || p.onChange(value) === false) {\n if (!p.readOnly) setIssue('limit');\n return false;\n }\n return true;\n }\n useEffect(() => {\n let cancelled = false;\n let dispose: (() => void) | undefined;\n void loadMathLive()\n .then(({ MathfieldElement }) => {\n if (cancelled || !host.current) return;\n const p = latest.current;\n if (p.locale) MathfieldElement.locale = p.locale;\n const mf = new MathfieldElement({\n defaultMode: p.display ? 'math' : 'inline-math',\n mathVirtualKeyboardPolicy: 'manual',\n ...p.options,\n });\n field.current = mf;\n mf.smartFence = false;\n mf.removeExtraneousParentheses = false;\n mf.readOnly = !!p.readOnly;\n mf.setAttribute('aria-label', p.labels?.field ?? defaultMathInputLabels.field);\n mf.setValue(p.value, { silenceNotifications: true });\n const claimKeyboard = () => {\n keyboardOwner = mf;\n };\n mf.addEventListener('focusin', claimKeyboard, true);\n const input = (event: Event) => {\n event.stopPropagation();\n const accepted = accept(mf.value);\n if (!accepted) mf.setValue(latest.current.value, { silenceNotifications: true });\n else setIssue(mf.errors.length ? 'syntax' : undefined);\n };\n const move = (event: CustomEvent<MoveOutEvent>) => {\n if (!latest.current.onExit) return;\n event.preventDefault();\n latest.current.onExit(event.detail.direction);\n };\n const key = (event: KeyboardEvent) => {\n if (event.isComposing) return;\n const p = latest.current;\n if (p.onHistory && (event.metaKey || event.ctrlKey) && ['z', 'y'].includes(event.key.toLowerCase())) {\n event.preventDefault();\n event.stopImmediatePropagation();\n p.onHistory(event.shiftKey || event.key.toLowerCase() === 'y');\n } else if (p.onExit && (event.key === 'Escape' || (event.key === 'Enter' && !event.shiftKey))) {\n // Let MathLive complete a command or navigate a matrix with Enter first.\n if (event.key === 'Enter' && mf.mode === 'latex') return;\n event.preventDefault();\n event.stopImmediatePropagation();\n p.onExit('forward');\n }\n };\n const stop = (event: Event) => {\n event.stopPropagation();\n if (event.type === 'beforeinput' && latest.current.onHistory) {\n const type = (event as InputEvent).inputType;\n if (type === 'historyUndo' || type === 'historyRedo') {\n event.preventDefault();\n latest.current.onHistory(type === 'historyRedo');\n }\n }\n };\n for (const name of ['keydown', 'keyup', 'keypress', 'beforeinput', 'paste', 'cut', 'copy'])\n mf.addEventListener(name, stop);\n mf.addEventListener('input', input);\n mf.addEventListener('move-out', move);\n mf.addEventListener('keydown', key, true);\n dispose = () => {\n if (keyboardOwner === mf) {\n window.mathVirtualKeyboard.hide({ animate: false });\n keyboardOwner = undefined;\n }\n mf.removeEventListener('focusin', claimKeyboard, true);\n for (const name of ['keydown', 'keyup', 'keypress', 'beforeinput', 'paste', 'cut', 'copy'])\n mf.removeEventListener(name, stop);\n mf.removeEventListener('input', input);\n mf.removeEventListener('move-out', move);\n mf.removeEventListener('keydown', key, true);\n mf.remove();\n field.current = undefined;\n };\n host.current.replaceChildren(mf);\n mf.menuItems = [];\n setReady(true);\n if (mf.errors.length) {\n setIssue('syntax');\n editingSource.current = true;\n setSource(true);\n }\n })\n .catch(() => {\n dispose?.();\n if (!cancelled) {\n setFailed(true);\n setSource(true);\n }\n });\n return () => {\n cancelled = true;\n dispose?.();\n };\n }, []);\n useEffect(() => {\n const p = latest.current,\n mf = field.current;\n if (ready && mf && p.autoFocus && !p.readOnly && !editingSource.current) {\n keyboardOwner = mf;\n mf.focus();\n mf.position = p.entry === 'start' ? 0 : -1;\n }\n }, [ready]);\n useEffect(() => {\n const mf = field.current;\n if (!mf) return;\n mf.readOnly = !!props.readOnly;\n mf.setAttribute('aria-label', labels.field);\n if (mf.value !== props.value) mf.setValue(props.value, { silenceNotifications: true });\n }, [props.value, props.readOnly, labels.field, ready]);\n useEffect(() => {\n if (props.locale && ready)\n void loadMathLive().then(({ MathfieldElement }) => {\n MathfieldElement.locale = props.locale!;\n });\n }, [props.locale, ready]);\n return (\n <Box\n component=\"span\"\n className=\"prism-math-input\"\n sx={{\n color: 'text.primary',\n bgcolor: 'background.paper',\n borderColor: 'divider',\n '--prism-editor-accent': theme.palette.primary.main,\n '--prism-editor-radius': `${theme.shape.borderRadius}px`,\n }}\n >\n <GlobalStyles\n styles={{\n '.ML__keyboard': {\n '--keyboard-background': theme.palette.background.default,\n '--keycap-background': theme.palette.background.paper,\n '--keycap-text': theme.palette.text.primary,\n '--keycap-background-hover': theme.palette.action.hover,\n '--keycap-text-hover': theme.palette.text.primary,\n '--keyboard-accent-color': theme.palette.primary.main,\n '--keyboard-toolbar-background': theme.palette.background.paper,\n '--keyboard-toolbar-text': theme.palette.text.secondary,\n '--keyboard-toolbar-text-active': theme.palette.primary.main,\n '--keycap-primary-background': theme.palette.primary.main,\n '--keycap-primary-text': theme.palette.primary.contrastText,\n '--keycap-secondary-background': theme.palette.action.hover,\n '--keycap-secondary-text': theme.palette.text.primary,\n '--keycap-border': `1px solid ${theme.palette.divider}`,\n '--keycap-secondary-border': `1px solid ${theme.palette.divider}`,\n '--keyboard-zindex': theme.zIndex.modal + 1,\n },\n }}\n />\n {!ready && (\n <Box component=\"span\" role=\"status\" sx={{ typography: 'caption' }}>\n {failed ? labels.unavailable : labels.loading}\n </Box>\n )}\n <span ref={host} className=\"prism-math-input__field\" />\n <Box component=\"span\" className=\"prism-math-input__tools\">\n <Button\n type=\"button\"\n size=\"small\"\n aria-pressed={source}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => setSource(!source)}\n >\n LaTeX\n </Button>\n <Tooltip title={labels.keyboard}>\n <span>\n <IconButton\n aria-label={labels.keyboard}\n type=\"button\"\n size=\"small\"\n disabled={!ready || props.readOnly}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => {\n keyboardOwner = field.current;\n field.current?.focus();\n field.current?.executeCommand('toggleVirtualKeyboard');\n }}\n >\n <KeyboardOutlined fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n {props.onExit && (\n <Tooltip title={labels.done}>\n <IconButton type=\"button\" size=\"small\" aria-label={labels.done} onClick={() => props.onExit?.('forward')}>\n <Check fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n {(source || !ready) && (\n <TextField\n fullWidth\n autoFocus={!ready && props.autoFocus}\n size=\"small\"\n multiline\n maxRows={8}\n label={labels.source}\n value={props.value}\n onChange={(event) => {\n editingSource.current = true;\n setSource(true);\n if (accept(event.target.value)) setIssue(undefined);\n }}\n slotProps={{ input: { readOnly: props.readOnly }, htmlInput: { spellCheck: false } }}\n onKeyDown={(event) => {\n if (event.key === 'Escape') {\n event.stopPropagation();\n props.onExit?.('forward');\n }\n if (props.onHistory && (event.ctrlKey || event.metaKey) && ['z', 'y'].includes(event.key.toLowerCase())) {\n event.preventDefault();\n event.stopPropagation();\n props.onHistory(event.shiftKey || event.key.toLowerCase() === 'y');\n }\n }}\n sx={{ flexBasis: '100%', mt: 1, '& textarea': { fontFamily: 'monospace' } }}\n />\n )}\n {issue && (\n <Box component=\"span\" role=\"status\" sx={{ typography: 'caption', color: 'text.secondary', flexBasis: '100%' }}>\n {labels[issue]}\n </Box>\n )}\n </Box>\n );\n}\n","/** Lossless source envelope. Only edited blocks are serialised; unknown blocks stay inert source.\n * Session block IDs are not edition IDs or persisted citation anchors. */\nimport { splitFrontmatter } from '../research/frontmatter.js';\nimport { fromMarkdown } from 'mdast-util-from-markdown';\nimport { toMarkdown } from 'mdast-util-to-markdown';\nimport { gfm } from 'micromark-extension-gfm';\nimport { gfmFromMarkdown, gfmToMarkdown } from 'mdast-util-gfm';\nimport { math } from 'micromark-extension-math';\nimport { mathFromMarkdown, mathToMarkdown } from 'mdast-util-math';\nimport { directive } from 'micromark-extension-directive';\nimport { directiveFromMarkdown } from 'mdast-util-directive';\nimport type { JSONContent } from '@tiptap/core';\nimport type { Node as ProseNode } from '@tiptap/pm/model';\nimport { parseResearchMarkdown, researchLimits } from '../research/parse.js';\n\ntype Ast = {\n type: string;\n children?: Ast[];\n position?: { start: { offset: number }; end: { offset: number } };\n [key: string]: unknown;\n};\nconst opaque = new Set([\n 'html',\n 'frontmatter',\n 'image',\n 'imageReference',\n 'linkReference',\n 'definition',\n 'footnoteDefinition',\n 'footnoteReference',\n 'containerDirective',\n 'leafDirective',\n 'textDirective',\n]);\nconst hasOpaque = (n: Ast): boolean =>\n ((n.type === 'code' || n.type === 'math') && !!n.meta) ||\n (n.type === 'list' &&\n n.children?.some((c) => typeof c.checked === 'boolean') &&\n !n.children?.every((c) => typeof c.checked === 'boolean')) ||\n (n.type === 'table' && Array.isArray(n.align) && n.align.some(Boolean)) ||\n opaque.has(n.type) ||\n (n.type === 'code' && ['mermaid', 'pintora', 'prism'].includes(String(n.lang).toLowerCase())) ||\n !!n.children?.some(hasOpaque);\nexport const newBlockId = () => crypto.randomUUID();\nfunction semantic(n: JSONContent): unknown {\n const attrs = Object.fromEntries(\n Object.entries(n.attrs ?? {}).filter(([k, v]) => !['source', 'id'].includes(k) && v != null)\n );\n return {\n type: n.type,\n ...(Object.keys(attrs).length ? { attrs } : {}),\n ...(n.text !== undefined ? { text: n.text } : {}),\n ...(n.marks?.length ? { marks: n.marks } : {}),\n ...(n.content?.length ? { content: n.content.map(semantic) } : {}),\n };\n}\nexport const signature = (content: JSONContent[]) => JSON.stringify(content.map(semantic));\nexport function sourceDocument(source: string, id: () => string = newBlockId): JSONContent {\n if (source.length > researchLimits.source) throw new Error('document_limit');\n // The reader's structural limits apply before constructing an editable projection.\n parseResearchMarkdown(source);\n const { body, metadata } = splitFrontmatter(source);\n const ast = fromMarkdown(body, {\n extensions: [gfm(), math(), directive()],\n mdastExtensions: [gfmFromMarkdown(), mathFromMarkdown(), directiveFromMarkdown()],\n }) as unknown as Ast;\n if (metadata) {\n const stop = metadata.end - (metadata.raw.endsWith('\\r\\n') ? 2 : metadata.raw.endsWith('\\n') ? 1 : 0);\n ast.children!.unshift({ type: 'frontmatter', position: { start: { offset: 0 }, end: { offset: stop } } });\n }\n let end = 0;\n const content = (ast.children ?? []).map((n) => {\n const start = n.position!.start.offset,\n stop = n.position!.end.offset;\n const raw = source.slice(start, stop),\n prefix = source.slice(end, start);\n end = stop;\n const nodes: JSONContent[] = hasOpaque(n)\n ? [{ type: 'researchSource', attrs: { raw, kind: n.type === 'code' ? String(n.lang) : n.type } }]\n : (parseResearchMarkdown(raw).doc.content as JSONContent[]);\n const cleaned = nodes.map(cleanNode);\n return {\n type: 'researchBlock',\n attrs: { id: id(), raw, prefix, baseline: signature(cleaned) },\n content: cleaned.length ? cleaned : [{ type: 'paragraph' }],\n };\n });\n return {\n type: 'doc',\n attrs: { tail: source.slice(end) },\n content: content.length\n ? content\n : [\n {\n type: 'researchBlock',\n attrs: { id: id(), raw: '', prefix: '', baseline: signature([{ type: 'paragraph' }]) },\n content: [{ type: 'paragraph' }],\n },\n ],\n };\n}\nfunction cleanNode(n: JSONContent): JSONContent {\n const attrs = Object.fromEntries(Object.entries(n.attrs ?? {}).filter(([k]) => !['source', 'id'].includes(k)));\n // ProseMirror defaults must be explicit in the baseline, or opening a document appears to edit it.\n if (n.type === 'orderedList') attrs.start ??= 1;\n if (n.type === 'codeBlock') attrs.language ||= null;\n if (n.type === 'taskItem') attrs.checked ??= false;\n return { ...n, attrs, content: n.content?.map(cleanNode) };\n}\nfunction astNode(n: JSONContent): Ast {\n const children = () => (n.content ?? []).map(astNode),\n a = n.attrs ?? {};\n let result: Ast;\n switch (n.type) {\n case 'paragraph':\n result = { type: 'paragraph', children: children() };\n break;\n case 'heading':\n result = { type: 'heading', depth: a.level, children: children() };\n break;\n case 'text':\n result = { type: 'text', value: n.text ?? '' };\n break;\n case 'hardBreak':\n return { type: 'break' };\n case 'horizontalRule':\n return { type: 'thematicBreak' };\n case 'blockquote':\n return { type: 'blockquote', children: children() };\n case 'codeBlock':\n return { type: 'code', lang: a.language || null, value: (n.content ?? []).map((x) => x.text ?? '').join('') };\n case 'mathBlock':\n return { type: 'math', value: a.tex ?? '' };\n case 'mathInline':\n result = { type: 'inlineMath', value: a.tex ?? '' };\n break;\n case 'bulletList':\n case 'orderedList':\n case 'taskList':\n return {\n type: 'list',\n ordered: n.type === 'orderedList',\n start: a.start ?? 1,\n spread: false,\n children: children(),\n };\n case 'listItem':\n case 'taskItem':\n return {\n type: 'listItem',\n spread: false,\n checked: n.type === 'taskItem' ? !!a.checked : null,\n children: children(),\n };\n case 'table':\n return { type: 'table', align: (n.content?.[0]?.content ?? []).map(() => null), children: children() };\n case 'tableRow':\n return { type: 'tableRow', children: children() };\n case 'tableCell':\n case 'tableHeader':\n if (\n (a.colspan ?? 1) !== 1 ||\n (a.rowspan ?? 1) !== 1 ||\n n.content?.length !== 1 ||\n n.content[0]?.type !== 'paragraph'\n )\n throw Error('unsupported_table_shape');\n return { type: 'tableCell', children: (n.content ?? []).flatMap((p) => (p.content ?? []).map(astNode)) };\n default:\n throw new Error(`unsupported_editor_node:${n.type}`);\n }\n for (const mark of n.marks ?? []) {\n const type = { bold: 'strong', italic: 'emphasis', strike: 'delete', code: 'inlineCode', link: 'link' }[mark.type];\n if (!type) throw new Error(`unsupported_editor_mark:${mark.type}`);\n if (type === 'inlineCode') result = { type, value: n.text ?? '' };\n else\n result = {\n type,\n ...(type === 'link' ? { url: mark.attrs?.href, title: mark.attrs?.title ?? null } : {}),\n children: [result],\n };\n }\n return result;\n}\nexport function blockSource(block: JSONContent): string {\n const content = block.content ?? [];\n if (signature(content) === block.attrs?.baseline) return String(block.attrs.raw ?? '');\n if (content.length === 1 && content[0]?.type === 'researchSource') return String(content[0].attrs?.raw ?? '');\n return toMarkdown({ type: 'root', children: content.map(astNode) } as Parameters<typeof toMarkdown>[0], {\n extensions: [gfmToMarkdown(), mathToMarkdown()],\n bullet: '-',\n fences: true,\n }).replace(/\\n$/, '');\n}\nconst blockCache = new WeakMap<ProseNode, string>();\nexport function editorSource(doc: ProseNode): string {\n const parts: string[] = [];\n doc.forEach((block, _offset, index) => {\n let raw = blockCache.get(block);\n if (raw === undefined) {\n raw = blockSource(block.toJSON());\n blockCache.set(block, raw);\n }\n const prefix = String(block.attrs.prefix ?? '');\n // YAML is a document envelope: the body may begin on the next line, without a blank line.\n const afterMetadata = index === 1 && doc.firstChild?.firstChild?.attrs.kind === 'frontmatter';\n parts.push(index === 0 || afterMetadata ? prefix : /\\r?\\n[ \\t]*\\r?\\n/.test(prefix) ? prefix : '\\n\\n', raw);\n });\n return parts.join('') + String(doc.attrs.tail ?? '');\n}\nexport interface ResearchSnapshot {\n readonly format: 'prism-research-source/1';\n readonly blocks: number;\n /** Synchronous, cached serialization of this immutable transaction snapshot. */\n getSource(): string;\n}\nexport function snapshot(doc: ProseNode): ResearchSnapshot {\n let source: string | undefined;\n return Object.freeze({\n format: 'prism-research-source/1' as const,\n blocks: doc.childCount,\n getSource: () => (source ??= editorSource(doc)),\n });\n}\n/** Canonicalise baseline against the actual schema's default attributes without changing source. */\nexport function hydrateSource(source: string, schema: { nodeFromJSON: (j: JSONContent) => ProseNode }): JSONContent {\n const doc = sourceDocument(source);\n for (const block of doc.content ?? [])\n block.attrs!.baseline = signature(schema.nodeFromJSON(block).toJSON().content ?? []);\n schema.nodeFromJSON(doc).check();\n return doc;\n}\n","import { NodeSelection, TextSelection, type EditorState } from '@tiptap/pm/state';\nimport { closeHistory } from '@tiptap/pm/history';\nimport { newBlockId } from './source.js';\n\n/** Leave an equation at its document boundary, preserving neighbouring structure. */\nexport function exitMathTransaction(state: EditorState, pos: number, before: boolean) {\n const node = state.doc.nodeAt(pos);\n if (!node || !['mathInline', 'mathBlock'].includes(node.type.name)) return undefined;\n const tr = state.tr;\n let target = TextSelection.near(tr.doc.resolve(before ? pos : pos + node.nodeSize), before ? -1 : 1);\n const neighbourMath =\n target instanceof NodeSelection &&\n ['mathInline', 'mathBlock'].includes(target.node.type.name) &&\n target.from !== pos;\n const reachableText =\n target instanceof TextSelection && (before ? target.from <= pos : target.from >= pos + node.nodeSize);\n if (!neighbourMath && !reachableText) {\n const $pos = tr.doc.resolve(pos);\n const edge = before ? $pos.before(1) : $pos.after(1);\n tr.insert(\n edge,\n state.schema.nodes.researchBlock!.create({ id: newBlockId() }, state.schema.nodes.paragraph!.create())\n );\n target = TextSelection.create(tr.doc, edge + 2);\n }\n return closeHistory(tr.setSelection(target))\n .setMeta('prismMathEntry', before ? 'end' : 'start')\n .scrollIntoView();\n}\n\n/** Replace formula source without mapping the selected atom into a text caret. */\nexport function updateMathTransaction(state: EditorState, pos: number, tex: string) {\n const node = state.doc.nodeAt(pos);\n if (!node || !['mathInline', 'mathBlock'].includes(node.type.name)) return undefined;\n const tr = state.tr.setNodeMarkup(pos, undefined, { ...node.attrs, tex });\n if (state.selection instanceof NodeSelection && state.selection.from === pos)\n tr.setSelection(NodeSelection.create(tr.doc, pos));\n return tr;\n}\n","import { createContext, useContext, useEffect, useRef } from 'react';\nimport { flushSync } from 'react-dom';\nimport { NodeViewWrapper, type NodeViewProps } from '@tiptap/react';\nimport { PluginKey } from '@tiptap/pm/state';\nimport { closeHistory } from '@tiptap/pm/history';\nimport katex from 'katex';\nimport { MathInput, type MathInputProps, type MathExit } from './math-input.js';\nimport { exitMathTransaction, updateMathTransaction } from './math-navigation.js';\n\nexport type ResearchMathOptions = Pick<MathInputProps, 'labels' | 'options' | 'maxLength' | 'locale'>;\nexport const mathEntryKey = new PluginKey<'start' | 'end'>('researchMathEntry');\nexport const ResearchMathContext = createContext<ResearchMathOptions & { readOnly?: boolean }>({});\n/** Formula content is a document attribute; focus and engine state are ephemeral. */\nexport function MathNodeView({ node, editor, getPos, selected }: NodeViewProps) {\n const config = useContext(ResearchMathContext);\n const display = node.type.name === 'mathBlock',\n latex = String(node.attrs.tex);\n // The host lock is reactive; editor.isEditable is mutable and may still hold\n // the previous value while the host's setEditable effect is running.\n const editable = config.readOnly === undefined ? editor.isEditable : !config.readOnly;\n const active = selected && editable;\n const preview = useRef<HTMLSpanElement>(null);\n useEffect(() => {\n if (!preview.current) return;\n try {\n katex.render(latex === '\\\\placeholder{}' ? '\\\\square' : latex, preview.current, {\n displayMode: display,\n trust: false,\n strict: 'error',\n throwOnError: true,\n maxExpand: 1000,\n maxSize: 20,\n });\n } catch {\n preview.current.textContent = latex || config.labels?.field || 'Equation';\n }\n }, [latex, display, active, config.labels?.field]);\n useEffect(() => {\n if (active) editor.view.dispatch(closeHistory(editor.state.tr));\n return () => {\n if (active && !editor.isDestroyed) editor.view.dispatch(closeHistory(editor.state.tr));\n };\n }, [active, editor]);\n function exit(direction: MathExit) {\n const pos = getPos();\n if (typeof pos !== 'number' || editor.isDestroyed) return;\n const before = direction === 'backward' || direction === 'upward';\n const tr = exitMathTransaction(editor.state, pos, before);\n // Remove the inner editable before restoring ProseMirror's DOM selection.\n // Otherwise the departing field can consume the next keystroke.\n if (tr) flushSync(() => editor.view.dispatch(tr));\n editor.view.focus();\n }\n return (\n <NodeViewWrapper\n as={display ? 'div' : 'span'}\n className={`prism-science__math${display ? ' prism-science__math--display' : ''}`}\n contentEditable={false}\n >\n {active ? (\n <MathInput\n {...config}\n value={latex}\n display={display}\n entry={mathEntryKey.getState(editor.state)}\n autoFocus\n onChange={(input) => {\n const value = input || '\\\\placeholder{}';\n const pos = getPos();\n if (!editor.isEditable || typeof pos !== 'number' || editor.state.doc.nodeAt(pos)?.type !== node.type)\n return false;\n if (value === editor.state.doc.nodeAt(pos)?.attrs.tex) return true;\n const tr = updateMathTransaction(editor.state, pos, value);\n if (!tr) return false;\n editor.view.dispatch(tr);\n return editor.state.doc.nodeAt(pos)?.attrs.tex === value;\n }}\n onExit={exit}\n onHistory={(redo) => {\n if (redo) editor.commands.redo();\n else editor.commands.undo();\n }}\n />\n ) : (\n <span\n ref={preview}\n role={editable ? 'button' : 'math'}\n tabIndex={editable ? 0 : undefined}\n aria-label={`${config.labels?.field ?? 'Equation'}: ${latex}`}\n className=\"prism-science__math-preview\"\n onClick={() => {\n const pos = getPos();\n if (editor.isEditable && !config.readOnly && typeof pos === 'number') editor.commands.setNodeSelection(pos);\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n event.currentTarget.click();\n }\n }}\n />\n )}\n </NodeViewWrapper>\n );\n}\n","/** Identity-based block operations shared by pointer, keyboard and menu interfaces. */\nimport type { Editor } from '@tiptap/core';\nimport type { Node } from '@tiptap/pm/model';\nimport { NodeSelection, Selection, TextSelection, type EditorState, type Transaction } from '@tiptap/pm/state';\nimport { newBlockId } from './source.js';\nimport { closeHistory } from '@tiptap/pm/history';\nexport type ResearchBlockAction = 'up' | 'down' | 'duplicate' | 'remove';\nexport function findBlock(doc: Node, id: string) {\n let found: { node: Node; pos: number; index: number } | undefined;\n doc.forEach((node, pos, index) => {\n if (node.type.name === 'researchBlock' && node.attrs.id === id) found = { node, pos, index };\n });\n return found;\n}\nexport function currentBlock(editor: Editor): { pos: number; index: number } | undefined {\n const { $from } = editor.state.selection;\n if ($from.depth >= 1) return { pos: $from.before(1), index: $from.index(0) };\n const index = $from.index(0);\n return editor.state.doc.childCount\n ? {\n pos:\n index >= editor.state.doc.childCount\n ? editor.state.doc.content.size - editor.state.doc.lastChild!.nodeSize\n : $from.pos,\n index: Math.min(index, editor.state.doc.childCount - 1),\n }\n : undefined;\n}\nfunction selectMoved(tr: Transaction, state: EditorState, oldPos: number, newPos: number, node: Node) {\n const { selection } = state;\n const within = selection.from >= oldPos && selection.to <= oldPos + node.nodeSize;\n if (within && selection instanceof TextSelection) {\n tr.setSelection(TextSelection.create(tr.doc, newPos + selection.anchor - oldPos, newPos + selection.head - oldPos));\n } else if (within && selection instanceof NodeSelection) {\n tr.setSelection(NodeSelection.create(tr.doc, newPos + selection.from - oldPos));\n } else {\n tr.setSelection(Selection.near(tr.doc.resolve(newPos + 1)));\n }\n return closeHistory(tr).scrollIntoView();\n}\n/** Move before a current block identity, or to the end. Missing/stale identities fail closed. */\nexport function moveBlockTransaction(state: EditorState, id: string, beforeId: string | null): Transaction | undefined {\n const from = findBlock(state.doc, id);\n const before = beforeId === null ? undefined : findBlock(state.doc, beforeId);\n if (!from || (beforeId !== null && !before) || beforeId === id) return undefined;\n const destination = before?.index ?? state.doc.childCount;\n if (destination === from.index + 1 || (destination === state.doc.childCount && from.index === destination - 1))\n return undefined;\n const tr = state.tr.delete(from.pos, from.pos + from.node.nodeSize);\n const target = beforeId === null ? tr.doc.content.size : findBlock(tr.doc, beforeId)!.pos;\n tr.insert(target, from.node);\n return selectMoved(tr, state, from.pos, target, from.node);\n}\nexport function blockActionTransaction(\n state: EditorState,\n id: string,\n action: ResearchBlockAction\n): Transaction | undefined {\n const block = findBlock(state.doc, id);\n if (!block) return undefined;\n const { node, pos, index } = block;\n if (action === 'up')\n return index > 0 ? moveBlockTransaction(state, id, String(state.doc.child(index - 1).attrs.id)) : undefined;\n if (action === 'down')\n return index < state.doc.childCount - 1\n ? moveBlockTransaction(\n state,\n id,\n index + 2 < state.doc.childCount ? String(state.doc.child(index + 2).attrs.id) : null\n )\n : undefined;\n const tr = state.tr;\n if (action === 'duplicate') {\n const copy = node.type.create({ ...node.attrs, id: newBlockId(), prefix: '\\n\\n' }, node.content);\n tr.insert(pos + node.nodeSize, copy);\n return selectMoved(tr, state, pos, pos + node.nodeSize, copy);\n }\n if (state.doc.childCount === 1) {\n tr.replaceWith(\n pos,\n pos + node.nodeSize,\n node.type.create({ id: newBlockId() }, state.schema.nodes.paragraph!.create())\n );\n } else {\n tr.delete(pos, pos + node.nodeSize);\n }\n tr.setSelection(Selection.near(tr.doc.resolve(Math.min(pos + 1, tr.doc.content.size))));\n return closeHistory(tr).scrollIntoView();\n}\nexport function runBlockAction(editor: Editor, action: ResearchBlockAction, id?: string): boolean {\n if (!editor.isEditable) return false;\n const selected = currentBlock(editor);\n const target = id ?? (selected && String(editor.state.doc.child(selected.index).attrs.id));\n const tr = target && blockActionTransaction(editor.state, target, action);\n return dispatchBlockTransaction(editor, tr || undefined);\n}\nexport function dispatchBlockTransaction(editor: Editor, tr: Transaction | undefined): boolean {\n if (!editor.isEditable || !tr) return false;\n editor.view.dispatch(tr);\n // Discrete block edits must not merge with either previous or subsequent typing.\n editor.view.dispatch(closeHistory(editor.state.tr));\n editor.commands.focus();\n return true;\n}\n","import { Node, Extension } from '@tiptap/core';\nimport StarterKit from '@tiptap/starter-kit';\nimport TaskList from '@tiptap/extension-task-list';\nimport TaskItem from '@tiptap/extension-task-item';\nimport { TableKit } from '@tiptap/extension-table';\nimport { Plugin, NodeSelection } from '@tiptap/pm/state';\nimport { Decoration, DecorationSet } from '@tiptap/pm/view';\nimport { MathNodeView, mathEntryKey } from './math-node.js';\nimport { canSplit } from '@tiptap/pm/transform';\nimport { ReactNodeViewRenderer, NodeViewWrapper, type NodeViewProps } from '@tiptap/react';\nimport { createContext, useContext, useEffect, useRef, useState } from 'react';\nimport { ResearchDocument, type ResearchWidgets, type ResearchLabels } from '../research/document.js';\nimport { newBlockId, snapshot } from './source.js';\nimport { runBlockAction } from './block-commands.js';\n\nexport const ResearchViewContext = createContext<\n { widgets: ResearchWidgets; labels?: Partial<ResearchLabels> } | undefined\n>(undefined);\nfunction SourceView({ node, extension }: NodeViewProps) {\n const presentation = useContext(ResearchViewContext);\n const ref = useRef<HTMLDivElement>(null),\n [visible, setVisible] = useState(false);\n useEffect(() => {\n if (!ref.current) return undefined;\n if (typeof IntersectionObserver === 'undefined') {\n setVisible(true);\n return undefined;\n }\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries.some((e) => e.isIntersecting)) {\n setVisible(true);\n observer.disconnect();\n }\n },\n { rootMargin: '200px' }\n );\n observer.observe(ref.current);\n return () => observer.disconnect();\n }, []);\n return (\n <NodeViewWrapper className=\"prism-science__source-block\" contentEditable={false}>\n <div ref={ref}>\n <span className=\"prism-science__kind\">{String(node.attrs.kind)}</span>\n {visible ? (\n <ResearchDocument\n source={String(node.attrs.raw)}\n widgets={presentation?.widgets ?? extension.options.widgets}\n labels={presentation?.labels ?? extension.options.labels}\n />\n ) : (\n <pre>{String(node.attrs.raw).slice(0, 160)}</pre>\n )}\n </div>\n </NodeViewWrapper>\n );\n}\nexport function researchExtensions(\n widgets: ResearchWidgets = {},\n limits?: { source: number; onLimit?: () => void },\n labels?: Partial<ResearchLabels>\n) {\n const Doc = Node.create({\n name: 'doc',\n topNode: true,\n content: 'researchBlock+',\n addAttributes: () => ({ tail: { default: '' } }),\n });\n const Block = Node.create({\n name: 'researchBlock',\n content: 'block+',\n group: 'researchGroup',\n defining: true,\n draggable: true,\n addAttributes: () => ({\n id: { default: null },\n raw: { default: '' },\n prefix: { default: '' },\n baseline: { default: '' },\n }),\n parseHTML: () => [{ tag: 'div[data-research-block]' }],\n renderHTML: ({ node }) => ['div', { 'data-research-block': node.attrs.id, class: 'prism-science__block' }, 0],\n addKeyboardShortcuts() {\n return {\n 'Mod-Alt-ArrowUp': () => runBlockAction(this.editor, 'up'),\n 'Mod-Alt-ArrowDown': () => runBlockAction(this.editor, 'down'),\n Enter: () => {\n if (!this.editor.isEditable) return false;\n const { state, view } = this.editor,\n { $from, $to } = state.selection;\n if (!$from.sameParent($to) || $from.depth !== 2 || !['paragraph', 'heading'].includes($from.parent.type.name))\n return false;\n const next =\n $from.parentOffset === $from.parent.content.size ? state.schema.nodes.paragraph : $from.parent.type;\n const types = [\n { type: state.schema.nodes.researchBlock!, attrs: { id: newBlockId() } },\n { type: next!, attrs: $from.parent.attrs },\n ];\n const tr = state.tr.deleteSelection();\n if (!canSplit(tr.doc, tr.selection.from, 2, types)) return false;\n view.dispatch(tr.split(tr.selection.from, 2, types).scrollIntoView());\n return true;\n },\n };\n },\n });\n const Source = Node.create({\n name: 'researchSource',\n group: 'block',\n atom: true,\n selectable: true,\n addOptions: () => ({ widgets, labels }),\n addAttributes: () => ({ raw: { default: '' }, kind: { default: 'source' } }),\n parseHTML: () => [\n {\n tag: 'pre[data-research-source]',\n priority: 100,\n preserveWhitespace: 'full',\n getAttrs: (element) => ({\n raw: element.getAttribute('data-source') ?? element.textContent ?? '',\n kind: element.getAttribute('data-research-source') ?? 'source',\n }),\n },\n ],\n renderHTML: ({ node }) => [\n 'pre',\n { 'data-research-source': node.attrs.kind, 'data-source': node.attrs.raw },\n node.attrs.raw,\n ],\n addNodeView: () => ReactNodeViewRenderer(SourceView),\n });\n const mathNode = (name: 'mathInline' | 'mathBlock') =>\n Node.create({\n name,\n marks: name === 'mathInline' ? 'bold italic strike link' : '',\n group: name === 'mathInline' ? 'inline' : 'block',\n inline: name === 'mathInline',\n atom: true,\n selectable: true,\n addAttributes: () => ({ tex: { default: '' } }),\n parseHTML: () => [\n {\n tag: name === 'mathInline' ? 'span[data-math-inline]' : 'div[data-math-block]',\n getAttrs: (element) => ({ tex: element.getAttribute('data-tex') ?? element.textContent ?? '' }),\n },\n ],\n renderHTML: ({ node }) => [\n name === 'mathInline' ? 'span' : 'div',\n {\n [name === 'mathInline' ? 'data-math-inline' : 'data-math-block']: true,\n 'data-tex': String(node.attrs.tex),\n },\n String(node.attrs.tex),\n ],\n addNodeView: () =>\n ReactNodeViewRenderer(MathNodeView, {\n // Shadow-DOM math input is not a native INPUT/TEXTAREA. Letting its keys\n // reach ProseMirror would replace the selected atom with ordinary text.\n stopEvent: ({ event }) => event.target instanceof Element && !!event.target.closest('.prism-math-input'),\n }),\n addKeyboardShortcuts() {\n const enter = (backward: boolean) => {\n if (!this.editor.isEditable || !this.editor.state.selection.empty) return false;\n const { $from } = this.editor.state.selection;\n const next = backward ? $from.nodeBefore : $from.nodeAfter;\n if (next?.type.name !== 'mathInline') return false;\n const pos = backward ? $from.pos - next.nodeSize : $from.pos;\n this.editor.view.dispatch(\n this.editor.state.tr\n .setSelection(NodeSelection.create(this.editor.state.doc, pos))\n .setMeta('prismMathEntry', backward ? 'end' : 'start')\n );\n return true;\n };\n return { ArrowLeft: () => enter(true), ArrowRight: () => enter(false) };\n },\n });\n const Ids = Extension.create({\n name: 'researchIds',\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: mathEntryKey,\n state: { init: () => 'end' as const, apply: (tr, value) => tr.getMeta('prismMathEntry') ?? value },\n }),\n new Plugin({\n props: {\n decorations(state) {\n const { from, to, empty } = state.selection;\n const decorations: Decoration[] = [];\n state.doc.forEach((node, pos) => {\n if (empty ? from >= pos && from < pos + node.nodeSize : from < pos + node.nodeSize && to > pos)\n decorations.push(\n Decoration.node(pos, pos + node.nodeSize, { class: empty ? 'is-current' : 'is-selected' })\n );\n });\n return DecorationSet.create(state.doc, decorations);\n },\n },\n filterTransaction(tr) {\n if (!tr.docChanged || !limits) return true;\n try {\n if (snapshot(tr.doc).getSource().length <= limits.source) return true;\n } catch {\n /* reject an unserialisable operation */\n }\n limits.onLimit?.();\n return false;\n },\n appendTransaction(transactions, _old, state) {\n if (!transactions.some((t) => t.docChanged)) return null;\n const seen = new Set<string>(),\n tr = state.tr;\n state.doc.forEach((node, pos) => {\n const id = node.attrs.id;\n if (!id || seen.has(id)) tr.setNodeMarkup(pos, undefined, { ...node.attrs, id: newBlockId() });\n else seen.add(id);\n });\n return tr.docChanged ? tr.setMeta('addToHistory', false) : null;\n },\n }),\n ];\n },\n });\n return [\n Doc,\n Block,\n StarterKit.configure({ document: false, underline: false, link: { openOnClick: false }, trailingNode: false }),\n TaskList,\n TaskItem.configure({ nested: true, a11y: { checkboxLabel: (node) => node.textContent } }),\n TableKit.configure({ table: { resizable: false } }),\n Source,\n mathNode('mathInline'),\n mathNode('mathBlock'),\n Ids,\n ];\n}\n","'use client';\n\nimport { DragIcon, AddIcon } from '../../icons/controls.js';\n\nimport { useEffect, useRef, useState, type RefObject } from 'react';\nimport type { Editor } from '@tiptap/core';\nimport Menu from '@mui/material/Menu';\nimport IconButton from '@mui/material/IconButton';\nimport MenuItem from '@mui/material/MenuItem';\nimport {\n dispatchBlockTransaction,\n currentBlock,\n findBlock,\n moveBlockTransaction,\n runBlockAction,\n type ResearchBlockAction,\n} from './block-commands.js';\nimport type { ResearchEditorLabels } from './editor.js';\n\ntype Anchor = { id: string; top: number };\n/** One contextual control surface for the whole document, not a React subtree per paragraph. */\nexport function BlockControls({\n editor,\n container,\n labels,\n readOnly,\n onInsert,\n onSource,\n}: {\n editor: Editor;\n container: RefObject<HTMLDivElement | null>;\n labels: ResearchEditorLabels;\n readOnly: boolean;\n onInsert: (id: string) => void;\n onSource: (id: string) => void;\n}) {\n const [anchor, setAnchor] = useState<Anchor>();\n const [menu, setMenu] = useState<{ id: string; element: HTMLElement }>();\n const [dropTop, setDropTop] = useState<number>();\n const dragged = useRef<string | undefined>(undefined);\n useEffect(() => {\n const host = container.current;\n if (!host || readOnly) {\n setAnchor(undefined);\n setMenu(undefined);\n setDropTop(undefined);\n return undefined;\n }\n let hovered: HTMLElement | undefined;\n let frame = 0;\n const selectedElement = () => {\n const selected = currentBlock(editor);\n const element = selected && editor.view.nodeDOM(selected.pos);\n return element instanceof HTMLElement ? element : undefined;\n };\n const update = () => {\n frame = 0;\n const element = hovered && editor.view.dom.contains(hovered) ? hovered : selectedElement();\n const id = element?.getAttribute('data-research-block');\n if (!id || !element) {\n setAnchor(undefined);\n return;\n }\n const top = element.getBoundingClientRect().top - host.getBoundingClientRect().top;\n setAnchor((old) => (old?.id === id && old.top === top ? old : { id, top }));\n };\n const schedule = () => {\n if (!frame) frame = requestAnimationFrame(update);\n };\n const elementAt = (target: EventTarget | null) => {\n const element = target instanceof Element ? target.closest<HTMLElement>('[data-research-block]') : null;\n return element && editor.view.dom.contains(element) ? element : undefined;\n };\n const pointer = (event: PointerEvent) => {\n if (dragged.current) return;\n const element = elementAt(event.target);\n if (element) {\n hovered = element;\n schedule();\n }\n };\n const selected = () => {\n hovered = undefined;\n schedule();\n };\n const clearDrop = () => {\n dragged.current = undefined;\n setDropTop(undefined);\n };\n const destination = (event: DragEvent) => {\n const element = elementAt(event.target);\n if (!element) return undefined;\n const id = element.getAttribute('data-research-block')!;\n const block = findBlock(editor.state.doc, id);\n if (!block) return undefined;\n const rect = element.getBoundingClientRect();\n const before = event.clientY < rect.top + rect.height / 2;\n return {\n id: before\n ? id\n : block.index + 1 < editor.state.doc.childCount\n ? String(editor.state.doc.child(block.index + 1).attrs.id)\n : null,\n top: (before ? rect.top : rect.bottom) - host.getBoundingClientRect().top,\n };\n };\n const over = (event: DragEvent) => {\n if (!dragged.current || !editor.isEditable) return;\n const target = destination(event);\n if (!target) {\n setDropTop(undefined);\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n if (event.dataTransfer) event.dataTransfer.dropEffect = 'move';\n setDropTop(target.top);\n };\n const drop = (event: DragEvent) => {\n if (!dragged.current) return;\n event.preventDefault();\n event.stopPropagation();\n const target = destination(event);\n const tr = editor.isEditable && target && moveBlockTransaction(editor.state, dragged.current, target.id);\n clearDrop();\n if (tr) dispatchBlockTransaction(editor, tr);\n };\n host.addEventListener('pointermove', pointer);\n host.addEventListener('dragover', over, true);\n host.addEventListener('drop', drop, true);\n window.addEventListener('dragend', clearDrop);\n editor.on('selectionUpdate', selected);\n editor.on('transaction', selected);\n const observer = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(schedule) : undefined;\n observer?.observe(host);\n window.addEventListener('resize', schedule);\n update();\n return () => {\n cancelAnimationFrame(frame);\n observer?.disconnect();\n host.removeEventListener('pointermove', pointer);\n host.removeEventListener('dragover', over, true);\n host.removeEventListener('drop', drop, true);\n window.removeEventListener('dragend', clearDrop);\n window.removeEventListener('resize', schedule);\n editor.off('selectionUpdate', selected);\n editor.off('transaction', selected);\n dragged.current = undefined;\n };\n }, [editor, container, readOnly]);\n if (readOnly || !anchor) return null;\n const selected = menu && findBlock(editor.state.doc, menu.id);\n function action(kind: ResearchBlockAction) {\n if (menu) runBlockAction(editor, kind, menu.id);\n setMenu(undefined);\n }\n return (\n <>\n <div className=\"prism-science__gutter\" style={{ top: anchor.top }} role=\"group\" aria-label={labels.blockMenu}>\n <IconButton\n type=\"button\"\n title={labels.insert}\n aria-label={labels.insert}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => onInsert(anchor.id)}\n >\n <AddIcon fontSize=\"small\" />\n </IconButton>\n <IconButton\n type=\"button\"\n title={labels.dragBlock}\n aria-label={labels.blockMenu}\n aria-haspopup=\"menu\"\n aria-expanded={!!menu}\n draggable\n onDragStart={(event) => {\n if (!editor.isEditable || !findBlock(editor.state.doc, anchor.id)) {\n event.preventDefault();\n return;\n }\n dragged.current = anchor.id;\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData('application/x-prism-block', anchor.id);\n setMenu(undefined);\n }}\n onClick={(event) => setMenu({ id: anchor.id, element: event.currentTarget })}\n >\n <DragIcon fontSize=\"small\" />\n </IconButton>\n </div>\n {dropTop !== undefined && (\n <div className=\"prism-science__drop-line\" style={{ top: dropTop }} aria-hidden=\"true\" />\n )}\n <Menu open={!!menu} anchorEl={menu?.element} onClose={() => setMenu(undefined)}>\n <MenuItem\n disabled={!selected}\n onClick={() => {\n if (menu) onSource(menu.id);\n setMenu(undefined);\n }}\n >\n {labels.editBlock}\n </MenuItem>\n <MenuItem disabled={!selected || selected.index === 0} onClick={() => action('up')}>\n {labels.up}\n </MenuItem>\n <MenuItem\n disabled={!selected || selected.index === editor.state.doc.childCount - 1}\n onClick={() => action('down')}\n >\n {labels.down}\n </MenuItem>\n <MenuItem disabled={!selected} onClick={() => action('duplicate')}>\n {labels.duplicate}\n </MenuItem>\n <MenuItem disabled={!selected} onClick={() => action('remove')}>\n {labels.remove}\n </MenuItem>\n </Menu>\n </>\n );\n}\n","'use client';\n\nimport type { ReactNode } from 'react';\nimport { AddIcon } from '../../icons/controls.js';\n\nimport { useEffect, useImperativeHandle, useMemo, useRef, useState, type Ref } from 'react';\nimport { getSchema, type JSONContent } from '@tiptap/core';\nimport { useEditor, EditorContent, useEditorState } from '@tiptap/react';\nimport { TextSelection, NodeSelection } from '@tiptap/pm/state';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport TextField from '@mui/material/TextField';\nimport Autocomplete, { createFilterOptions } from '@mui/material/Autocomplete';\nimport type { SxProps, Theme } from '@mui/material/styles';\nimport type { ResearchWidgets, ResearchLabels } from '../research/document.js';\nimport { researchLimits } from '../research/parse.js';\nimport { researchExtensions, ResearchViewContext } from './extensions.js';\nimport { blockSource, hydrateSource, snapshot, type ResearchSnapshot } from './source.js';\nimport { currentBlock, findBlock, runBlockAction } from './block-commands.js';\nimport { BlockControls } from './block-controls.js';\nimport { ResearchMathContext, type ResearchMathOptions } from './math-node.js';\nimport './editor.css';\n\nexport const defaultResearchEditorLabels = {\n editor: 'Research document',\n insert: 'Insert block',\n search: 'Find a block',\n source: 'Document source',\n editBlock: 'Block source',\n up: 'Move block up',\n down: 'Move block down',\n duplicate: 'Duplicate block',\n remove: 'Delete block',\n undo: 'Undo',\n redo: 'Redo',\n bold: 'Bold',\n italic: 'Italic',\n link: 'Link',\n inlineMath: 'Inline equation',\n apply: 'Apply',\n cancel: 'Cancel',\n invalid: 'This source cannot be applied. Check the document limits and structure.',\n limit: 'Document exceeds the configured source limit.',\n hint: 'Type / for a new block. Ctrl/⌘ + Shift + M inserts an equation. Arrow keys move between text and math.',\n paragraph: 'Text',\n heading: 'Heading',\n list: 'Bullet list',\n ordered: 'Numbered list',\n tasks: 'Task list',\n quote: 'Quote',\n code: 'Code',\n equation: 'Equation',\n diagram: 'Diagram',\n table: 'Table',\n widget: 'Interactive block',\n blocks: 'blocks',\n blockMenu: 'Block actions',\n dragBlock: 'Drag to move; click for block actions. Keyboard: Ctrl/Command + Alt + Up/Down.',\n};\nexport type ResearchEditorLabels = typeof defaultResearchEditorLabels;\nexport interface ResearchInsertion {\n id: string;\n label: string;\n source: string;\n keywords?: string[];\n}\nexport interface ResearchEditorHandle {\n getSnapshot(): ResearchSnapshot;\n focus(): void;\n}\nexport interface ResearchEditorProps {\n /** Initial source; replace the React key to load another edition or explicitly reconcile a draft. */\n initialSource: string;\n onChange?: (snapshot: ResearchSnapshot) => void;\n ref?: Ref<ResearchEditorHandle>;\n readOnly?: boolean;\n labels?: Partial<ResearchEditorLabels>;\n widgets?: ResearchWidgets;\n /** Localised labels for scientific block previews. */\n previewLabels?: Partial<ResearchLabels>;\n /** Extra insertion recipes, not executable code from the document. */\n insertions?: readonly ResearchInsertion[];\n maxSourceLength?: number;\n /** Contextual block controls; keyboard commands remain available when hidden. */\n blockControls?: boolean;\n /** In-place equation input configuration and localisation. */\n math?: ResearchMathOptions;\n className?: string;\n sx?: SxProps<Theme>;\n}\nconst filterInsertions = createFilterOptions<ResearchInsertion>({\n stringify: (recipe) => [recipe.label, ...(recipe.keywords ?? [])].join(' '),\n});\nconst noWidgets: ResearchWidgets = Object.freeze({});\nconst noInsertions: readonly ResearchInsertion[] = [];\nexport function ResearchEditor({\n initialSource,\n onChange,\n ref,\n readOnly = false,\n labels: overrides,\n widgets = noWidgets,\n previewLabels,\n insertions = noInsertions,\n maxSourceLength = researchLimits.source,\n blockControls = true,\n math,\n className,\n sx,\n}: ResearchEditorProps) {\n const presentation = useMemo(() => ({ widgets, labels: previewLabels }), [widgets, previewLabels]);\n const labels = useMemo(() => ({ ...defaultResearchEditorLabels, ...overrides }), [overrides]);\n const workspace = useRef<HTMLDivElement>(null);\n const notify = useRef(onChange);\n notify.current = onChange;\n const [palette, setPalette] = useState(false),\n [dialog, setDialog] = useState<{ kind: 'document' | 'block' | 'link'; text: string; pos?: number }>(),\n [invalid, setInvalid] = useState('');\n const extensions = useMemo(\n () =>\n researchExtensions(widgets, { source: maxSourceLength, onLimit: () => setInvalid(labels.limit) }, previewLabels),\n [widgets, maxSourceLength, labels.limit, previewLabels]\n );\n const [initial] = useState(() => hydrateSource(initialSource, getSchema(extensions)));\n const editor = useEditor({\n extensions,\n content: initial,\n editable: !readOnly,\n immediatelyRender: false,\n shouldRerenderOnTransaction: false,\n editorProps: {\n attributes: { role: 'textbox', 'aria-multiline': 'true', 'aria-label': labels.editor },\n handleKeyDown: (view, event) => {\n if (\n !readOnly &&\n !event.isComposing &&\n (event.metaKey || event.ctrlKey) &&\n event.shiftKey &&\n event.key.toLowerCase() === 'm'\n ) {\n event.preventDefault();\n insertInlineMath();\n return true;\n }\n if (\n event.key === '/' &&\n !event.isComposing &&\n !view.composing &&\n view.state.selection.empty &&\n view.state.selection.$from.parent.type.name === 'paragraph' &&\n view.state.selection.$from.parent.content.size === 0\n ) {\n event.preventDefault();\n setPalette(true);\n return true;\n }\n return false;\n },\n },\n onUpdate: ({ editor: e }) => {\n setInvalid('');\n notify.current?.(snapshot(e.state.doc));\n },\n });\n useImperativeHandle(\n ref,\n () => ({\n getSnapshot: () =>\n editor\n ? snapshot(editor.state.doc)\n : { format: 'prism-research-source/1', blocks: initial.content?.length ?? 0, getSource: () => initialSource },\n focus: () => {\n editor?.commands.focus();\n },\n }),\n [editor, initial, initialSource]\n );\n // Changing editable must also stop the contenteditable surface; a disabled fieldset alone does not.\n useEffect(() => {\n editor?.setEditable(!readOnly, false);\n if (readOnly) {\n setPalette(false);\n setDialog(undefined);\n }\n }, [editor, readOnly]);\n const selection = useEditorState({\n editor,\n selector: ({ editor: e }) =>\n e\n ? {\n bold: e.isActive('bold'),\n italic: e.isActive('italic'),\n index: currentBlock(e)?.index ?? 0,\n blocks: e.state.doc.childCount,\n undo: e.can().undo(),\n redo: e.can().redo(),\n }\n : null,\n });\n const blockIndex = selection?.index ?? (editor ? currentBlock(editor)?.index : undefined) ?? 0;\n const blockCount = selection?.blocks ?? editor?.state.doc.childCount ?? initial.content?.length ?? 1;\n const recipes = useMemo<ResearchInsertion[]>(\n () => [\n { id: 'text', label: labels.paragraph, source: '' },\n { id: 'heading', label: labels.heading, source: '## ' },\n { id: 'list', label: labels.list, source: '- ' },\n { id: 'ordered', label: labels.ordered, source: '1. ' },\n { id: 'tasks', label: labels.tasks, source: '- [ ] ' },\n { id: 'quote', label: labels.quote, source: '> ' },\n { id: 'code', label: labels.code, source: '```\\n\\n```' },\n { id: 'equation', label: labels.equation, source: '$$\\n\\\\placeholder{}\\n$$' },\n { id: 'diagram', label: labels.diagram, source: '```mermaid\\nflowchart LR\\n A[Source] --> B[Question]\\n```' },\n { id: 'table', label: labels.table, source: '| A | B |\\n| --- | --- |\\n| | |' },\n ...insertions,\n ],\n [labels, insertions]\n );\n function insertInlineMath() {\n if (!editor?.isEditable) return;\n if (editor.state.selection instanceof NodeSelection && editor.state.selection.node.type.name === 'mathInline')\n return;\n const tr = editor.state.tr.replaceSelectionWith(editor.schema.nodes.mathInline!.create({ tex: '\\\\placeholder{}' }));\n tr.setSelection(NodeSelection.create(tr.doc, tr.selection.from - 1));\n editor.view.dispatch(tr.setMeta('prismMathEntry', 'start'));\n }\n function applyDocument(source: string) {\n if (!editor) return;\n if (source.length > maxSourceLength) throw Error('document_limit');\n const json = hydrateSource(source, editor.schema),\n doc = editor.schema.nodeFromJSON(json);\n editor.view.dispatch(\n editor.state.tr\n .replaceWith(0, editor.state.doc.content.size, doc.content)\n .setDocAttribute('tail', doc.attrs.tail)\n .scrollIntoView()\n );\n }\n function insert(recipe: ResearchInsertion) {\n if (!editor?.isEditable) return;\n const selected = currentBlock(editor),\n old = selected && editor.state.doc.child(selected.index);\n const blocks = hydrateSource(recipe.source, editor.schema).content ?? [];\n // Empty Markdown markers are parsed deliberately by recipe, not mistaken for literal prose.\n const simple: Record<string, JSONContent> = {\n heading: { type: 'heading', attrs: { level: 2 } },\n list: { type: 'bulletList', content: [{ type: 'listItem', content: [{ type: 'paragraph' }] }] },\n ordered: { type: 'orderedList', content: [{ type: 'listItem', content: [{ type: 'paragraph' }] }] },\n tasks: {\n type: 'taskList',\n content: [{ type: 'taskItem', attrs: { checked: false }, content: [{ type: 'paragraph' }] }],\n },\n quote: { type: 'blockquote', content: [{ type: 'paragraph' }] },\n };\n if (simple[recipe.id] && blocks[0]) {\n blocks[0].content = [simple[recipe.id]!];\n blocks[0].attrs!.baseline = '';\n }\n const empty =\n old?.childCount === 1 && old.firstChild?.type.name === 'paragraph' && old.firstChild.content.size === 0;\n const from = selected ? selected.pos + (empty ? 0 : old!.nodeSize) : editor.state.doc.content.size;\n const to = empty ? from + old!.nodeSize : from;\n const tr = editor.state.tr.replaceWith(\n from,\n to,\n blocks.map((b) => editor.schema.nodeFromJSON(b))\n );\n const first = tr.doc.nodeAt(from)?.firstChild;\n tr.setSelection(\n first?.isAtom && !first.isTextblock\n ? NodeSelection.create(tr.doc, from + 1)\n : TextSelection.near(tr.doc.resolve(Math.min(from + 2, tr.doc.content.size)))\n );\n editor.view.dispatch(tr.scrollIntoView());\n setPalette(false);\n editor.commands.focus();\n }\n function openSource(id?: string) {\n if (!editor?.isEditable) return;\n const block = id ? findBlock(editor.state.doc, id) : currentBlock(editor);\n if (!block) return;\n setDialog({ kind: 'block', pos: block.pos, text: blockSource(editor.state.doc.child(block.index).toJSON()) });\n }\n function applyDialog(text: string) {\n if (!editor?.isEditable || !dialog) return;\n try {\n if (dialog.kind === 'document') applyDocument(text);\n else if (dialog.kind === 'block') {\n const old = editor.state.doc.nodeAt(dialog.pos!);\n if (!old) throw Error('stale_selection');\n const blocks = hydrateSource(text, editor.schema).content!;\n blocks[0]!.attrs = { ...blocks[0]!.attrs, id: old.attrs.id, prefix: old.attrs.prefix };\n const tr = editor.state.tr.replaceWith(\n dialog.pos!,\n dialog.pos! + old.nodeSize,\n blocks.map((b) => editor.schema.nodeFromJSON(b))\n );\n if (snapshot(tr.doc).getSource().length > maxSourceLength) throw Error('document_limit');\n editor.view.dispatch(tr.scrollIntoView());\n } else {\n if (text && !/^(https?:\\/\\/|mailto:)/i.test(text)) throw Error('invalid_link');\n const chain = editor.chain().focus().extendMarkRange('link');\n if (text) chain.setLink({ href: text }).run();\n else chain.unsetLink().run();\n }\n setDialog(undefined);\n setInvalid('');\n editor.commands.focus();\n } catch {\n setInvalid(labels.invalid);\n }\n }\n const button = (label: string, action: () => void, disabled = false, pressed?: boolean, icon?: ReactNode) => (\n <Button\n size=\"small\"\n startIcon={icon}\n variant={pressed ? 'contained' : 'text'}\n type=\"button\"\n title={label}\n aria-label={label}\n aria-pressed={pressed}\n disabled={readOnly || !editor || disabled}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => action()}\n >\n {label}\n </Button>\n );\n return (\n <Box\n className={['prism-science', className].filter(Boolean).join(' ')}\n sx={[\n (theme) => ({\n '--prism-editor-border': theme.palette.divider,\n '--prism-editor-bg': theme.palette.background.paper,\n '--prism-editor-muted': theme.palette.text.secondary,\n '--prism-editor-accent': theme.palette.primary.main,\n '--prism-editor-radius': `${theme.shape.borderRadius}px`,\n }),\n ...(Array.isArray(sx) ? sx : [sx]),\n ]}\n >\n <div className=\"prism-science__toolbar\" role=\"toolbar\" aria-label={labels.editor}>\n {button(labels.insert, () => setPalette(true), false, undefined, <AddIcon />)}\n {button(\n labels.bold,\n () => {\n editor?.chain().focus().toggleBold().run();\n },\n false,\n selection?.bold\n )}\n {button(\n labels.italic,\n () => {\n editor?.chain().focus().toggleItalic().run();\n },\n false,\n selection?.italic\n )}\n {button(labels.link, () => setDialog({ kind: 'link', text: String(editor?.getAttributes('link').href ?? '') }))}\n {button(labels.inlineMath, insertInlineMath)}\n {button(\n labels.undo,\n () => {\n editor?.chain().focus().undo().run();\n },\n !selection?.undo\n )}\n {button(\n labels.redo,\n () => {\n editor?.chain().focus().redo().run();\n },\n !selection?.redo\n )}\n {button(labels.source, () => {\n if (editor) setDialog({ kind: 'document', text: snapshot(editor.state.doc).getSource() });\n })}\n </div>\n <p className=\"prism-science__hint\">{labels.hint}</p>\n {invalid && !dialog && <p role=\"alert\">{invalid}</p>}\n <div\n ref={workspace}\n className={`prism-science__workspace${blockControls ? ' prism-science__workspace--controls' : ''}`}\n >\n <ResearchViewContext.Provider value={presentation}>\n <ResearchMathContext.Provider value={{ ...math, readOnly }}>\n <EditorContent editor={editor} className=\"prism-science__content\" />\n </ResearchMathContext.Provider>\n </ResearchViewContext.Provider>\n {editor && blockControls && (\n <BlockControls\n editor={editor}\n container={workspace}\n labels={labels}\n readOnly={readOnly}\n onSource={openSource}\n onInsert={(id) => {\n if (!editor.isEditable) return;\n const block = findBlock(editor.state.doc, id);\n if (block) {\n editor.commands.setNodeSelection(block.pos);\n setPalette(true);\n }\n }}\n />\n )}\n </div>\n <div className=\"prism-science__block-tools\" role=\"group\" aria-label={labels.editBlock}>\n <span aria-live=\"polite\" aria-atomic=\"true\">\n {blockIndex + 1} / {blockCount} {labels.blocks}\n </span>\n {button(labels.editBlock, openSource)}\n {button(\n labels.up,\n () => {\n if (editor) runBlockAction(editor, 'up');\n },\n blockIndex === 0\n )}\n {button(\n labels.down,\n () => {\n if (editor) runBlockAction(editor, 'down');\n },\n blockIndex === blockCount - 1\n )}\n {button(labels.duplicate, () => {\n if (editor) runBlockAction(editor, 'duplicate');\n })}\n {button(labels.remove, () => {\n if (editor) runBlockAction(editor, 'remove');\n })}\n </div>\n <Dialog open={palette} onClose={() => setPalette(false)} fullWidth maxWidth=\"sm\">\n <DialogTitle>{labels.insert}</DialogTitle>\n <DialogContent>\n <Autocomplete\n value={null}\n openText={labels.insert}\n closeText={labels.cancel}\n options={recipes}\n filterOptions={filterInsertions}\n getOptionLabel={(r) => r.label}\n onChange={(_e, value) => {\n if (value) insert(value);\n }}\n renderInput={(params) => <TextField {...params} autoFocus label={labels.search} margin=\"dense\" />}\n openOnFocus\n disablePortal\n />\n </DialogContent>\n <DialogActions>\n <Button onClick={() => setPalette(false)}>{labels.cancel}</Button>\n </DialogActions>\n </Dialog>\n {dialog && (\n <SourceDialog\n key={`${dialog.kind}:${dialog.pos}`}\n title={dialog.kind === 'document' ? labels.source : dialog.kind === 'link' ? labels.link : labels.editBlock}\n initial={dialog.text}\n maxLength={maxSourceLength}\n labels={labels}\n error={invalid}\n onCancel={() => {\n setDialog(undefined);\n setInvalid('');\n }}\n onApply={applyDialog}\n />\n )}\n </Box>\n );\n}\nfunction SourceDialog({\n title,\n initial,\n maxLength,\n labels,\n error,\n onCancel,\n onApply,\n}: {\n title: string;\n initial: string;\n maxLength: number;\n labels: ResearchEditorLabels;\n error: string;\n onCancel: () => void;\n onApply: (value: string) => void;\n}) {\n const [text, setText] = useState(initial);\n return (\n <Dialog open onClose={onCancel} fullWidth maxWidth=\"md\">\n <DialogTitle>{title}</DialogTitle>\n <DialogContent>\n <TextField\n label={title}\n value={text}\n onChange={(e) => setText(e.target.value)}\n multiline\n minRows={5}\n maxRows={20}\n fullWidth\n autoFocus\n margin=\"dense\"\n slotProps={{ htmlInput: { maxLength, spellCheck: false } }}\n />\n {error && <p role=\"alert\">{error}</p>}\n </DialogContent>\n <DialogActions>\n <Button onClick={onCancel}>{labels.cancel}</Button>\n <Button onClick={() => onApply(text)} variant=\"contained\">\n {labels.apply}\n </Button>\n </DialogActions>\n </Dialog>\n );\n}\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { MathfieldOptions, MoveOutEvent } from 'mathlive';
|
|
2
|
+
export declare const defaultMathInputLabels: {
|
|
3
|
+
field: string;
|
|
4
|
+
source: string;
|
|
5
|
+
keyboard: string;
|
|
6
|
+
done: string;
|
|
7
|
+
loading: string;
|
|
8
|
+
unavailable: string;
|
|
9
|
+
syntax: string;
|
|
10
|
+
limit: string;
|
|
11
|
+
};
|
|
12
|
+
export type MathInputLabels = typeof defaultMathInputLabels;
|
|
13
|
+
export type MathExit = MoveOutEvent['direction'];
|
|
14
|
+
export interface MathInputProps {
|
|
15
|
+
value: string;
|
|
16
|
+
/** Synchronous admission: return false to reject an edit and restore the accepted value. */
|
|
17
|
+
onChange: (latex: string) => boolean | void;
|
|
18
|
+
onExit?: (direction: MathExit) => void;
|
|
19
|
+
onHistory?: (redo: boolean) => void;
|
|
20
|
+
readOnly?: boolean;
|
|
21
|
+
locale?: string;
|
|
22
|
+
autoFocus?: boolean;
|
|
23
|
+
entry?: 'start' | 'end';
|
|
24
|
+
display?: boolean;
|
|
25
|
+
maxLength?: number;
|
|
26
|
+
labels?: Partial<MathInputLabels>;
|
|
27
|
+
/** Initial host-owned input configuration (remount to replace); expressions never supply executable options. */
|
|
28
|
+
options?: Partial<Pick<MathfieldOptions, 'macros' | 'inlineShortcuts' | 'keybindings' | 'mathVirtualKeyboardPolicy'>>;
|
|
29
|
+
}
|
|
30
|
+
/** Controlled, local-only scientific input. Does not evaluate or certify mathematics. */
|
|
31
|
+
export declare function MathInput(props: MathInputProps): import("react").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=math-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math-input.d.ts","sourceRoot":"","sources":["../../../src/components/research-editor/math-input.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAoB,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGjF,eAAO,MAAM,sBAAsB;IACjC,KAAK;IACL,MAAM;IACN,QAAQ;IACR,IAAI;IACJ,OAAO;IACP,WAAW;IACX,MAAM;IACN,KAAK;CACN,CAAC;AACF,MAAM,MAAM,eAAe,GAAG,OAAO,sBAAsB,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AACjD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IAC5C,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,gHAAgH;IAChH,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,2BAA2B,CAAC,CAAC,CAAC;CACvH;AAmBD,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,+BA6P9C"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Preserve MathLive's editable sink and local SVG icons, without DOM capabilities
|
|
2
|
+
* or CSS/resource injection from an imported formula's presentation commands. */
|
|
3
|
+
export declare function sanitizeMathMarkup(html: string): string;
|
|
4
|
+
//# sourceMappingURL=math-markup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math-markup.d.ts","sourceRoot":"","sources":["../../../src/components/research-editor/math-markup.ts"],"names":[],"mappings":"AAiDA;iFACiF;AACjF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmCvD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type EditorState } from '@tiptap/pm/state';
|
|
2
|
+
/** Leave an equation at its document boundary, preserving neighbouring structure. */
|
|
3
|
+
export declare function exitMathTransaction(state: EditorState, pos: number, before: boolean): import("@tiptap/pm/state").Transaction | undefined;
|
|
4
|
+
/** Replace formula source without mapping the selected atom into a text caret. */
|
|
5
|
+
export declare function updateMathTransaction(state: EditorState, pos: number, tex: string): import("@tiptap/pm/state").Transaction | undefined;
|
|
6
|
+
//# sourceMappingURL=math-navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math-navigation.d.ts","sourceRoot":"","sources":["../../../src/components/research-editor/math-navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIlF,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,sDAuBnF;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,sDAOjF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type NodeViewProps } from '@tiptap/react';
|
|
2
|
+
import { PluginKey } from '@tiptap/pm/state';
|
|
3
|
+
import { type MathInputProps } from './math-input.js';
|
|
4
|
+
export type ResearchMathOptions = Pick<MathInputProps, 'labels' | 'options' | 'maxLength' | 'locale'>;
|
|
5
|
+
export declare const mathEntryKey: PluginKey<"end" | "start">;
|
|
6
|
+
export declare const ResearchMathContext: import("react").Context<ResearchMathOptions & {
|
|
7
|
+
readOnly?: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
/** Formula content is a document attribute; focus and engine state are ephemeral. */
|
|
10
|
+
export declare function MathNodeView({ node, editor, getPos, selected }: NodeViewProps): import("react").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=math-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math-node.d.ts","sourceRoot":"","sources":["../../../src/components/research-editor/math-node.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAAa,KAAK,cAAc,EAAiB,MAAM,iBAAiB,CAAC;AAGhF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,CAAC;AACtG,eAAO,MAAM,YAAY,4BAAsD,CAAC;AAChF,eAAO,MAAM,mBAAmB;eAAoD,OAAO;EAAO,CAAC;AACnG,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,aAAa,+BA2F7E"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { JSONContent } from '@tiptap/core';
|
|
2
|
+
import type { Node as ProseNode } from '@tiptap/pm/model';
|
|
3
|
+
export declare const newBlockId: () => `${string}-${string}-${string}-${string}-${string}`;
|
|
4
|
+
export declare const signature: (content: JSONContent[]) => string;
|
|
5
|
+
export declare function sourceDocument(source: string, id?: () => string): JSONContent;
|
|
6
|
+
export declare function blockSource(block: JSONContent): string;
|
|
7
|
+
export declare function editorSource(doc: ProseNode): string;
|
|
8
|
+
export interface ResearchSnapshot {
|
|
9
|
+
readonly format: 'prism-research-source/1';
|
|
10
|
+
readonly blocks: number;
|
|
11
|
+
/** Synchronous, cached serialization of this immutable transaction snapshot. */
|
|
12
|
+
getSource(): string;
|
|
13
|
+
}
|
|
14
|
+
export declare function snapshot(doc: ProseNode): ResearchSnapshot;
|
|
15
|
+
/** Canonicalise baseline against the actual schema's default attributes without changing source. */
|
|
16
|
+
export declare function hydrateSource(source: string, schema: {
|
|
17
|
+
nodeFromJSON: (j: JSONContent) => ProseNode;
|
|
18
|
+
}): JSONContent;
|
|
19
|
+
//# sourceMappingURL=source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/components/research-editor/source.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA+B1D,eAAO,MAAM,UAAU,2DAA4B,CAAC;AAapD,eAAO,MAAM,SAAS,YAAa,WAAW,EAAE,WAA0C,CAAC;AAC3F,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAE,MAAM,MAAmB,GAAG,WAAW,CA2CzF;AAoFD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAStD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAcnD;AACD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,SAAS,IAAI,MAAM,CAAC;CACrB;AACD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,gBAAgB,CAOzD;AACD,oGAAoG;AACpG,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;IAAE,YAAY,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,SAAS,CAAA;CAAE,GAAG,WAAW,CAMlH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/scroll-spy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
interface ScrollSpyContextValue {
|
|
3
|
+
activeId: string | null;
|
|
4
|
+
registerSection: (id: string, element: HTMLElement) => void;
|
|
5
|
+
unregisterSection: (id: string) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function useScrollSpy(): ScrollSpyContextValue;
|
|
8
|
+
interface ScrollSpyProviderProps {
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
/** Offset from top in pixels for activation threshold */
|
|
11
|
+
offset?: number;
|
|
12
|
+
/** Root element to observe (defaults to viewport) */
|
|
13
|
+
root?: HTMLElement | null;
|
|
14
|
+
/**
|
|
15
|
+
* CSS selector for heading elements to auto-observe.
|
|
16
|
+
* When set, headings matching this selector inside the container
|
|
17
|
+
* are automatically registered (no need for ScrollSpySection wrappers).
|
|
18
|
+
* @default 'h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]'
|
|
19
|
+
*/
|
|
20
|
+
headingSelector?: string;
|
|
21
|
+
/** Ref to the container to scan for headings. Defaults to document. */
|
|
22
|
+
containerRef?: React.RefObject<HTMLElement | null>;
|
|
23
|
+
}
|
|
24
|
+
export declare function ScrollSpyProvider({ children, offset, root, headingSelector, containerRef, }: ScrollSpyProviderProps): import("react").JSX.Element;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=scroll-spy-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-spy-provider.d.ts","sourceRoot":"","sources":["../../../src/components/scroll-spy/scroll-spy-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5G,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5D,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAQD,wBAAgB,YAAY,0BAE3B;AAED,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACpD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,MAAW,EACX,IAAW,EACX,eAAkE,EAClE,YAAY,GACb,EAAE,sBAAsB,+BAqGxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
interface ScrollSpySectionProps {
|
|
4
|
+
id: string;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
sx?: SxProps<Theme>;
|
|
7
|
+
}
|
|
8
|
+
export declare function ScrollSpySection({ id, children, sx }: ScrollSpySectionProps): import("react").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=scroll-spy-section.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-spy-section.d.ts","sourceRoot":"","sources":["../../../src/components/scroll-spy/scroll-spy-section.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAG3D,UAAU,qBAAqB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,qBAAqB,+BAgB3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/scroll-to-top/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface ScrollToTopProps {
|
|
2
|
+
/** Current route pathname. Scrolls to top on change. */
|
|
3
|
+
pathname: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* ScrollToTop - Restores scroll position to top on route change.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* import { useLocation } from 'react-router-dom';
|
|
11
|
+
* import { ScrollToTop } from '@omnitron-dev/prism';
|
|
12
|
+
*
|
|
13
|
+
* function App() {
|
|
14
|
+
* const { pathname } = useLocation();
|
|
15
|
+
* return (
|
|
16
|
+
* <>
|
|
17
|
+
* <ScrollToTop pathname={pathname} />
|
|
18
|
+
* <Routes>...</Routes>
|
|
19
|
+
* </>
|
|
20
|
+
* );
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function ScrollToTop({ pathname }: ScrollToTopProps): null;
|
|
25
|
+
//# sourceMappingURL=scroll-to-top.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-to-top.d.ts","sourceRoot":"","sources":["../../../src/components/scroll-to-top/scroll-to-top.tsx"],"names":[],"mappings":"AAaA,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,gBAAgB,QAMzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/scrollbar/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|