@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,518 @@
|
|
|
1
|
+
import { TipTapRenderer } from './chunk-GUGTDURV.js';
|
|
2
|
+
import { ChevronDownIcon } from './chunk-PGHEP4JD.js';
|
|
3
|
+
import { fromMarkdown } from 'mdast-util-from-markdown';
|
|
4
|
+
import { gfm } from 'micromark-extension-gfm';
|
|
5
|
+
import { gfmFromMarkdown } from 'mdast-util-gfm';
|
|
6
|
+
import { directive } from 'micromark-extension-directive';
|
|
7
|
+
import { directiveFromMarkdown } from 'mdast-util-directive';
|
|
8
|
+
import { math } from 'micromark-extension-math';
|
|
9
|
+
import { mathFromMarkdown } from 'mdast-util-math';
|
|
10
|
+
import { useId, useMemo, Component, useRef, useState, useEffect } from 'react';
|
|
11
|
+
import katex from 'katex';
|
|
12
|
+
import { Box, Accordion, AccordionSummary, Typography, AccordionDetails } from '@mui/material';
|
|
13
|
+
import { useTheme } from '@mui/material/styles';
|
|
14
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
15
|
+
|
|
16
|
+
// src/components/research/frontmatter.ts
|
|
17
|
+
function splitFrontmatter(source) {
|
|
18
|
+
const opening = /^(?:\uFEFF)?---[ \t]*\r?\n/.exec(source);
|
|
19
|
+
if (!opening) return { body: source, metadata: void 0 };
|
|
20
|
+
let offset = opening[0].length;
|
|
21
|
+
while (offset < source.length) {
|
|
22
|
+
const newline = source.indexOf("\n", offset);
|
|
23
|
+
const end = newline < 0 ? source.length : newline + 1;
|
|
24
|
+
if (/^(?:---|\.\.\.)[ \t]*(?:\r?\n)?$/.test(source.slice(offset, end))) {
|
|
25
|
+
const raw = source.slice(0, end);
|
|
26
|
+
return {
|
|
27
|
+
body: raw.replace(/[^\r\n]/g, " ") + source.slice(end),
|
|
28
|
+
metadata: { format: "yaml", raw, start: 0, end }
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
offset = end;
|
|
32
|
+
}
|
|
33
|
+
return { body: source, metadata: void 0 };
|
|
34
|
+
}
|
|
35
|
+
var researchLimits = { source: 262144, nodes: 2e4, depth: 64, block: 2e4 };
|
|
36
|
+
var str = (v) => typeof v === "string" ? v : "";
|
|
37
|
+
var plain = (n) => str(n.value) || (n.children ?? []).map(plain).join("");
|
|
38
|
+
function parseResearchMarkdown(source, prefix = "research", sourceProfile = "research") {
|
|
39
|
+
if (source.length > researchLimits.source) throw new Error("document_limit");
|
|
40
|
+
if (!/^[a-zA-Z][\w-]{0,100}$/.test(prefix)) throw new Error("invalid_document_prefix");
|
|
41
|
+
const { body, metadata } = splitFrontmatter(source);
|
|
42
|
+
const tree = fromMarkdown(body, {
|
|
43
|
+
extensions: [gfm(), directive(), math()],
|
|
44
|
+
mdastExtensions: [gfmFromMarkdown(), directiveFromMarkdown(), mathFromMarkdown()]
|
|
45
|
+
});
|
|
46
|
+
const headings = [], diagnostics = [];
|
|
47
|
+
const ids = /* @__PURE__ */ new Set();
|
|
48
|
+
let count = 0;
|
|
49
|
+
const definitions = /* @__PURE__ */ new Map();
|
|
50
|
+
const collect = (n, depth) => {
|
|
51
|
+
if (++count > researchLimits.nodes || depth > researchLimits.depth) throw new Error("structure_limit");
|
|
52
|
+
if (n.type === "definition") definitions.set(str(n.identifier), n);
|
|
53
|
+
for (const c of n.children ?? []) collect(c, depth + 1);
|
|
54
|
+
};
|
|
55
|
+
collect(tree, 0);
|
|
56
|
+
const fallback = (n, code, inline = false) => {
|
|
57
|
+
diagnostics.push({ code, line: n.position?.start.line ?? 1 });
|
|
58
|
+
const raw = source.slice(n.position?.start.offset ?? 0, n.position?.end.offset ?? 0) || plain(n);
|
|
59
|
+
return inline ? { type: "text", text: raw } : { type: "codeBlock", content: [{ type: "text", text: raw }] };
|
|
60
|
+
};
|
|
61
|
+
const convert = (n, marks = []) => {
|
|
62
|
+
const children = () => (n.children ?? []).flatMap((c) => convert(c, marks));
|
|
63
|
+
const node = (type, attrs, content = children()) => [
|
|
64
|
+
{
|
|
65
|
+
type,
|
|
66
|
+
attrs: { ...attrs, source: n.position },
|
|
67
|
+
content
|
|
68
|
+
}
|
|
69
|
+
];
|
|
70
|
+
switch (n.type) {
|
|
71
|
+
case "root":
|
|
72
|
+
return children();
|
|
73
|
+
case "definition":
|
|
74
|
+
return [];
|
|
75
|
+
case "text":
|
|
76
|
+
return [{ type: "text", text: str(n.value), marks }];
|
|
77
|
+
case "inlineCode":
|
|
78
|
+
return [{ type: "text", text: str(n.value), marks: [...marks, { type: "code" }] }];
|
|
79
|
+
case "strong":
|
|
80
|
+
case "emphasis":
|
|
81
|
+
case "delete":
|
|
82
|
+
return (n.children ?? []).flatMap(
|
|
83
|
+
(c) => convert(c, [...marks, { type: { strong: "bold", emphasis: "italic", delete: "strike" }[n.type] }])
|
|
84
|
+
);
|
|
85
|
+
case "paragraph":
|
|
86
|
+
return node("paragraph");
|
|
87
|
+
case "heading": {
|
|
88
|
+
const explicit = sourceProfile === "docusaurus" ? /\s*\{#([^\s{}]+)\}\s*$/.exec(plain(n)) : null;
|
|
89
|
+
const title = explicit ? plain(n).slice(0, explicit.index) : plain(n);
|
|
90
|
+
const base = `${prefix}-${explicit?.[1] ?? (title.normalize("NFKC").toLowerCase().replace(/[^\p{L}\p{N}]+/gu, "-").replace(/^-|-$/g, "") || "section")}`;
|
|
91
|
+
let id = base, suffix = 1;
|
|
92
|
+
while (ids.has(id)) id = `${base}-${++suffix}`;
|
|
93
|
+
if (explicit && id !== base)
|
|
94
|
+
diagnostics.push({ code: "duplicate_heading_id", line: n.position?.start.line ?? 1 });
|
|
95
|
+
ids.add(id);
|
|
96
|
+
headings.push({ id, title, level: Number(n.depth) });
|
|
97
|
+
let content = n.children ?? [];
|
|
98
|
+
if (explicit) {
|
|
99
|
+
const last = content.at(-1);
|
|
100
|
+
if (last?.type === "text")
|
|
101
|
+
content = [
|
|
102
|
+
...content.slice(0, -1),
|
|
103
|
+
{ ...last, value: str(last.value).replace(/\s*\{#[^\s{}]+\}\s*$/, "") }
|
|
104
|
+
];
|
|
105
|
+
}
|
|
106
|
+
return node(
|
|
107
|
+
"heading",
|
|
108
|
+
{ level: n.depth, id },
|
|
109
|
+
content.flatMap((c) => convert(c, marks))
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
case "linkReference":
|
|
113
|
+
case "imageReference": {
|
|
114
|
+
const def = definitions.get(str(n.identifier));
|
|
115
|
+
if (!def) return [fallback(n, "unresolved_reference", true)];
|
|
116
|
+
return convert(
|
|
117
|
+
{ ...n, type: n.type === "linkReference" ? "link" : "image", url: def.url, title: def.title },
|
|
118
|
+
marks
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
case "link":
|
|
122
|
+
return (n.children ?? []).flatMap(
|
|
123
|
+
(c) => convert(c, [
|
|
124
|
+
...marks,
|
|
125
|
+
{
|
|
126
|
+
type: "link",
|
|
127
|
+
attrs: {
|
|
128
|
+
href: sourceProfile === "docusaurus" && str(n.url).startsWith("#") ? `#${prefix}-${str(n.url).slice(1)}` : str(n.url)
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
])
|
|
132
|
+
);
|
|
133
|
+
case "image":
|
|
134
|
+
return node("image", { src: str(n.url), alt: str(n.alt), title: str(n.title) }, []);
|
|
135
|
+
case "break":
|
|
136
|
+
return node("hardBreak", {}, []);
|
|
137
|
+
case "blockquote":
|
|
138
|
+
return node("blockquote");
|
|
139
|
+
case "thematicBreak":
|
|
140
|
+
return node("horizontalRule", {}, []);
|
|
141
|
+
case "list":
|
|
142
|
+
return node(
|
|
143
|
+
(n.children ?? []).some((c) => typeof c.checked === "boolean") ? "taskList" : n.ordered ? "orderedList" : "bulletList",
|
|
144
|
+
{ start: n.start }
|
|
145
|
+
);
|
|
146
|
+
case "listItem":
|
|
147
|
+
return node(typeof n.checked === "boolean" ? "taskItem" : "listItem", { checked: n.checked });
|
|
148
|
+
case "table":
|
|
149
|
+
return node(
|
|
150
|
+
"table",
|
|
151
|
+
{},
|
|
152
|
+
(n.children ?? []).map((row, i) => ({
|
|
153
|
+
type: "tableRow",
|
|
154
|
+
content: (row.children ?? []).map((cell) => ({
|
|
155
|
+
type: i === 0 ? "tableHeader" : "tableCell",
|
|
156
|
+
content: [{ type: "paragraph", content: (cell.children ?? []).flatMap((c) => convert(c)) }]
|
|
157
|
+
}))
|
|
158
|
+
}))
|
|
159
|
+
);
|
|
160
|
+
case "inlineMath":
|
|
161
|
+
case "math":
|
|
162
|
+
return node(n.type === "math" ? "mathBlock" : "mathInline", { tex: str(n.value) }, []).map((n2) => ({
|
|
163
|
+
...n2,
|
|
164
|
+
marks
|
|
165
|
+
}));
|
|
166
|
+
case "code": {
|
|
167
|
+
const language = str(n.lang).toLowerCase(), body2 = str(n.value);
|
|
168
|
+
if (["mermaid", "pintora", "prism"].includes(language) && body2.length > researchLimits.block)
|
|
169
|
+
return [fallback(n, "block_limit")];
|
|
170
|
+
if (language === "mermaid" || language === "pintora")
|
|
171
|
+
return node("diagram", { engine: language, code: body2 }, []);
|
|
172
|
+
if (language === "prism") {
|
|
173
|
+
try {
|
|
174
|
+
return node("researchWidget", { descriptor: JSON.parse(body2) }, []);
|
|
175
|
+
} catch {
|
|
176
|
+
return [fallback(n, "invalid_widget_json")];
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return node("codeBlock", { language, title: str(n.meta) }, [{ type: "text", text: body2 }]);
|
|
180
|
+
}
|
|
181
|
+
case "containerDirective":
|
|
182
|
+
case "leafDirective": {
|
|
183
|
+
const name = str(n.name), attrs = n.attributes ?? {};
|
|
184
|
+
if (["note", "tip", "warning", "danger", "info", "caution"].includes(name))
|
|
185
|
+
return node("admonition", { kind: name, title: attrs.title || name });
|
|
186
|
+
if (name === "tabs") {
|
|
187
|
+
if ((n.children ?? []).some((c) => c.type !== "containerDirective" || c.name !== "tab"))
|
|
188
|
+
return [fallback(n, "invalid_tabs")];
|
|
189
|
+
return node(
|
|
190
|
+
"tabs",
|
|
191
|
+
{},
|
|
192
|
+
(n.children ?? []).flatMap((c) => convert(c))
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
if (name === "tab") return node("tabItem", { label: attrs.label || attrs.value || "Tab" });
|
|
196
|
+
if (name === "widget")
|
|
197
|
+
return node(
|
|
198
|
+
"researchWidget",
|
|
199
|
+
{
|
|
200
|
+
descriptor: {
|
|
201
|
+
type: attrs.type,
|
|
202
|
+
version: Number(attrs.version || 1),
|
|
203
|
+
props: Object.fromEntries(Object.entries(attrs).filter(([key]) => key !== "type" && key !== "version"))
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
[]
|
|
207
|
+
);
|
|
208
|
+
return [fallback(n, "unknown_directive")];
|
|
209
|
+
}
|
|
210
|
+
case "html":
|
|
211
|
+
return [fallback(n, "raw_html", true)];
|
|
212
|
+
default:
|
|
213
|
+
return [
|
|
214
|
+
fallback(
|
|
215
|
+
n,
|
|
216
|
+
`unsupported_${n.type}`,
|
|
217
|
+
n.type.startsWith("inline") || n.type === "textDirective" || n.type === "footnoteReference"
|
|
218
|
+
)
|
|
219
|
+
];
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
return { format: "prism-research/1", metadata, doc: { type: "doc", content: convert(tree) }, headings, diagnostics };
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// src/components/research/diagram-image.ts
|
|
226
|
+
function diagramImage(source, purify) {
|
|
227
|
+
const fragment = purify.sanitize(source, {
|
|
228
|
+
USE_PROFILES: { svg: true, svgFilters: true },
|
|
229
|
+
ADD_TAGS: ["style"],
|
|
230
|
+
FORBID_TAGS: ["foreignObject", "image", "a", "script", "animate", "animateMotion", "animateTransform", "set"],
|
|
231
|
+
FORBID_ATTR: ["href", "xlink:href"],
|
|
232
|
+
RETURN_DOM_FRAGMENT: true
|
|
233
|
+
});
|
|
234
|
+
const svg = fragment.querySelector("svg");
|
|
235
|
+
if (!svg || !svg.getAttribute("viewBox")) throw new Error("invalid_diagram_svg");
|
|
236
|
+
const title = svg.querySelector("title")?.textContent?.trim();
|
|
237
|
+
const labels = [...svg.querySelectorAll("text")].map((node) => node.textContent?.trim()).filter(Boolean);
|
|
238
|
+
const description = title || labels.join(" \xB7 ") || "Diagram";
|
|
239
|
+
return {
|
|
240
|
+
src: "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(svg)),
|
|
241
|
+
description: description.slice(0, 2e3)
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
var pending = Promise.resolve();
|
|
245
|
+
function diagramSourceAllowed(source, engine) {
|
|
246
|
+
return engine === "mermaid" && source.length <= researchLimits.block && !/^\s*---/m.test(source) && !/%%\s*\{/.test(source);
|
|
247
|
+
}
|
|
248
|
+
function ResearchDiagram({
|
|
249
|
+
source,
|
|
250
|
+
engine,
|
|
251
|
+
labels
|
|
252
|
+
}) {
|
|
253
|
+
const id = `diagram-${useId().replace(/[^\w-]/g, "")}`;
|
|
254
|
+
const container = useRef(null);
|
|
255
|
+
const [picture, setPicture] = useState();
|
|
256
|
+
const [state, setState] = useState("loading");
|
|
257
|
+
const theme = useTheme(), mode = theme.palette.mode;
|
|
258
|
+
useEffect(() => {
|
|
259
|
+
let cancelled = false;
|
|
260
|
+
setState("loading");
|
|
261
|
+
setPicture(void 0);
|
|
262
|
+
const target = container.current;
|
|
263
|
+
const run = async () => {
|
|
264
|
+
if (cancelled || !target) return;
|
|
265
|
+
if (!diagramSourceAllowed(source, engine)) {
|
|
266
|
+
setState("error");
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
let scratch;
|
|
270
|
+
try {
|
|
271
|
+
const [{ default: mermaid }, { default: purify }] = await Promise.all([import('mermaid'), import('dompurify')]);
|
|
272
|
+
if (cancelled) return;
|
|
273
|
+
scratch = document.createElement("div");
|
|
274
|
+
scratch.style.cssText = "position:absolute;visibility:hidden;pointer-events:none;width:1000px";
|
|
275
|
+
target.append(scratch);
|
|
276
|
+
mermaid.initialize({
|
|
277
|
+
startOnLoad: false,
|
|
278
|
+
securityLevel: "strict",
|
|
279
|
+
htmlLabels: false,
|
|
280
|
+
maxTextSize: researchLimits.block,
|
|
281
|
+
maxEdges: 256,
|
|
282
|
+
suppressErrorRendering: true,
|
|
283
|
+
look: "classic",
|
|
284
|
+
theme: "base",
|
|
285
|
+
fontFamily: "system-ui, sans-serif",
|
|
286
|
+
themeVariables: {
|
|
287
|
+
darkMode: mode === "dark",
|
|
288
|
+
primaryColor: theme.palette.background.paper,
|
|
289
|
+
primaryTextColor: theme.palette.text.primary,
|
|
290
|
+
primaryBorderColor: theme.palette.text.secondary,
|
|
291
|
+
secondaryColor: theme.palette.background.default,
|
|
292
|
+
tertiaryColor: theme.palette.background.paper,
|
|
293
|
+
lineColor: theme.palette.text.secondary,
|
|
294
|
+
textColor: theme.palette.text.primary,
|
|
295
|
+
fontFamily: "system-ui, sans-serif",
|
|
296
|
+
fontSize: "16px"
|
|
297
|
+
},
|
|
298
|
+
flowchart: { htmlLabels: false },
|
|
299
|
+
secure: [
|
|
300
|
+
"securityLevel",
|
|
301
|
+
"startOnLoad",
|
|
302
|
+
"maxTextSize",
|
|
303
|
+
"maxEdges",
|
|
304
|
+
"htmlLabels",
|
|
305
|
+
"theme",
|
|
306
|
+
"look",
|
|
307
|
+
"fontFamily",
|
|
308
|
+
"themeCSS",
|
|
309
|
+
"themeVariables"
|
|
310
|
+
]
|
|
311
|
+
});
|
|
312
|
+
const result = await mermaid.render(id, source, scratch);
|
|
313
|
+
const picture2 = diagramImage(result.svg, purify);
|
|
314
|
+
if (!cancelled) {
|
|
315
|
+
setPicture(picture2);
|
|
316
|
+
setState("ready");
|
|
317
|
+
}
|
|
318
|
+
} catch {
|
|
319
|
+
if (!cancelled) setState("error");
|
|
320
|
+
} finally {
|
|
321
|
+
scratch?.remove();
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
pending = pending.catch(() => void 0).then(run);
|
|
325
|
+
return () => {
|
|
326
|
+
cancelled = true;
|
|
327
|
+
target?.replaceChildren();
|
|
328
|
+
};
|
|
329
|
+
}, [source, engine, id, theme]);
|
|
330
|
+
return /* @__PURE__ */ jsxs("figure", { className: "prism-research__diagram", children: [
|
|
331
|
+
state !== "ready" && /* @__PURE__ */ jsx("p", { role: "status", children: state === "error" ? labels.invalid : labels.loading }),
|
|
332
|
+
/* @__PURE__ */ jsx("div", { ref: container, "aria-hidden": "true" }),
|
|
333
|
+
picture && /* @__PURE__ */ jsx(
|
|
334
|
+
"img",
|
|
335
|
+
{
|
|
336
|
+
className: "prism-research__diagram-image",
|
|
337
|
+
src: picture.src,
|
|
338
|
+
alt: picture.description,
|
|
339
|
+
onError: () => setState("error")
|
|
340
|
+
}
|
|
341
|
+
),
|
|
342
|
+
/* @__PURE__ */ jsxs("details", { open: state === "error", children: [
|
|
343
|
+
/* @__PURE__ */ jsxs("summary", { children: [
|
|
344
|
+
labels.source,
|
|
345
|
+
" \xB7 ",
|
|
346
|
+
engine
|
|
347
|
+
] }),
|
|
348
|
+
/* @__PURE__ */ jsx("pre", { children: source })
|
|
349
|
+
] })
|
|
350
|
+
] });
|
|
351
|
+
}
|
|
352
|
+
function defineResearchWidget(version, parse, View) {
|
|
353
|
+
return {
|
|
354
|
+
version,
|
|
355
|
+
render(input) {
|
|
356
|
+
const props = parse(input);
|
|
357
|
+
return /* @__PURE__ */ jsx(View, { ...props });
|
|
358
|
+
}
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
var defaultResearchLabels = {
|
|
362
|
+
metadata: "Source metadata",
|
|
363
|
+
contents: "On this page",
|
|
364
|
+
source: "Source",
|
|
365
|
+
unavailable: "This block is not available in this document.",
|
|
366
|
+
invalid: "This block could not be rendered. Its source is preserved.",
|
|
367
|
+
loading: "Rendering diagram\u2026",
|
|
368
|
+
diagnostics: "Document diagnostics"
|
|
369
|
+
};
|
|
370
|
+
var BlockBoundary = class extends Component {
|
|
371
|
+
state = { failed: false };
|
|
372
|
+
static getDerivedStateFromError() {
|
|
373
|
+
return { failed: true };
|
|
374
|
+
}
|
|
375
|
+
render() {
|
|
376
|
+
return this.state.failed ? this.props.fallback : this.props.children;
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
function Formula({ node, labels }) {
|
|
380
|
+
const tex = String(node.attrs?.tex ?? "");
|
|
381
|
+
try {
|
|
382
|
+
if (tex.length > researchLimits.block) throw new Error("formula_limit");
|
|
383
|
+
const html = katex.renderToString(tex, {
|
|
384
|
+
displayMode: node.type === "mathBlock",
|
|
385
|
+
trust: false,
|
|
386
|
+
strict: "error",
|
|
387
|
+
throwOnError: true,
|
|
388
|
+
maxExpand: 1e3,
|
|
389
|
+
maxSize: 20,
|
|
390
|
+
output: "htmlAndMathml"
|
|
391
|
+
});
|
|
392
|
+
return /* @__PURE__ */ jsx(
|
|
393
|
+
"span",
|
|
394
|
+
{
|
|
395
|
+
className: node.type === "mathBlock" ? "prism-research__formula-block" : void 0,
|
|
396
|
+
dangerouslySetInnerHTML: { __html: html }
|
|
397
|
+
}
|
|
398
|
+
);
|
|
399
|
+
} catch {
|
|
400
|
+
return /* @__PURE__ */ jsx("code", { className: "prism-research__invalid-math", title: labels.invalid, children: tex });
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
function Widget({ node, widgets, labels }) {
|
|
404
|
+
const d = node.attrs?.descriptor;
|
|
405
|
+
if (!d || typeof d.type !== "string" || !Object.hasOwn(widgets, d.type) || widgets[d.type]?.version !== d.version)
|
|
406
|
+
return /* @__PURE__ */ jsxs("details", { className: "prism-research__failure", children: [
|
|
407
|
+
/* @__PURE__ */ jsx("summary", { children: labels.unavailable }),
|
|
408
|
+
/* @__PURE__ */ jsx("pre", { children: JSON.stringify(d) })
|
|
409
|
+
] });
|
|
410
|
+
try {
|
|
411
|
+
return widgets[d.type].render(d.props);
|
|
412
|
+
} catch {
|
|
413
|
+
return /* @__PURE__ */ jsxs("details", { className: "prism-research__failure", children: [
|
|
414
|
+
/* @__PURE__ */ jsx("summary", { children: labels.invalid }),
|
|
415
|
+
/* @__PURE__ */ jsx("pre", { children: JSON.stringify(d) })
|
|
416
|
+
] });
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
var emptyWidgets = Object.freeze({});
|
|
420
|
+
function ResearchDocument({
|
|
421
|
+
source,
|
|
422
|
+
sourceProfile = "research",
|
|
423
|
+
documentId,
|
|
424
|
+
widgets = emptyWidgets,
|
|
425
|
+
labels: overrides,
|
|
426
|
+
contents = false,
|
|
427
|
+
className,
|
|
428
|
+
sx
|
|
429
|
+
}) {
|
|
430
|
+
const uid = useId();
|
|
431
|
+
const prefix = documentId ?? `research-${uid.replace(/[^\w-]/g, "")}`;
|
|
432
|
+
const labels = { ...defaultResearchLabels, ...overrides };
|
|
433
|
+
const parsed = useMemo(() => {
|
|
434
|
+
try {
|
|
435
|
+
return { data: parseResearchMarkdown(source, prefix, sourceProfile) };
|
|
436
|
+
} catch {
|
|
437
|
+
return { error: true };
|
|
438
|
+
}
|
|
439
|
+
}, [source, prefix, sourceProfile]);
|
|
440
|
+
const nodes = useMemo(() => {
|
|
441
|
+
const failure = (raw) => /* @__PURE__ */ jsxs("details", { className: "prism-research__failure", open: true, children: [
|
|
442
|
+
/* @__PURE__ */ jsx("summary", { children: labels.invalid }),
|
|
443
|
+
/* @__PURE__ */ jsx("pre", { children: raw })
|
|
444
|
+
] });
|
|
445
|
+
const bounded = (render) => (props) => {
|
|
446
|
+
const raw = String(
|
|
447
|
+
props.node.attrs?.tex ?? props.node.attrs?.code ?? JSON.stringify(props.node.attrs?.descriptor ?? {})
|
|
448
|
+
);
|
|
449
|
+
return /* @__PURE__ */ jsx(BlockBoundary, { fallback: failure(raw), children: render(props.node) }, raw);
|
|
450
|
+
};
|
|
451
|
+
return {
|
|
452
|
+
mathInline: ({ node }) => /* @__PURE__ */ jsx(Formula, { node, labels }),
|
|
453
|
+
mathBlock: ({ node }) => /* @__PURE__ */ jsx(Formula, { node, labels }),
|
|
454
|
+
diagram: bounded((n) => /* @__PURE__ */ jsx(ResearchDiagram, { source: String(n.attrs?.code ?? ""), engine: String(n.attrs?.engine ?? ""), labels })),
|
|
455
|
+
researchWidget: bounded((n) => /* @__PURE__ */ jsx(Widget, { node: n, widgets, labels }))
|
|
456
|
+
};
|
|
457
|
+
}, [widgets, labels.invalid, labels.unavailable, labels.loading, labels.source]);
|
|
458
|
+
if (!parsed.data) return /* @__PURE__ */ jsx("p", { role: "alert", children: labels.invalid });
|
|
459
|
+
return /* @__PURE__ */ jsxs(
|
|
460
|
+
Box,
|
|
461
|
+
{
|
|
462
|
+
className: `prism-research ${className ?? ""}`,
|
|
463
|
+
sx: (theme) => ({ "--prism-research-border": theme.palette.divider }),
|
|
464
|
+
children: [
|
|
465
|
+
parsed.data.metadata && /* @__PURE__ */ jsxs(
|
|
466
|
+
Accordion,
|
|
467
|
+
{
|
|
468
|
+
disableGutters: true,
|
|
469
|
+
elevation: 0,
|
|
470
|
+
sx: { mb: 2, border: 1, borderColor: "divider", "&:before": { display: "none" } },
|
|
471
|
+
children: [
|
|
472
|
+
/* @__PURE__ */ jsx(AccordionSummary, { expandIcon: /* @__PURE__ */ jsx(ChevronDownIcon, { fontSize: "small" }), children: /* @__PURE__ */ jsxs(Typography, { variant: "caption", color: "text.secondary", children: [
|
|
473
|
+
labels.metadata,
|
|
474
|
+
" \xB7 YAML"
|
|
475
|
+
] }) }),
|
|
476
|
+
/* @__PURE__ */ jsx(AccordionDetails, { children: /* @__PURE__ */ jsx(
|
|
477
|
+
Box,
|
|
478
|
+
{
|
|
479
|
+
component: "pre",
|
|
480
|
+
sx: {
|
|
481
|
+
m: 0,
|
|
482
|
+
maxHeight: 240,
|
|
483
|
+
overflow: "auto",
|
|
484
|
+
whiteSpace: "pre-wrap",
|
|
485
|
+
overflowWrap: "anywhere",
|
|
486
|
+
fontSize: 12
|
|
487
|
+
},
|
|
488
|
+
children: parsed.data.metadata.raw
|
|
489
|
+
}
|
|
490
|
+
) })
|
|
491
|
+
]
|
|
492
|
+
}
|
|
493
|
+
),
|
|
494
|
+
contents && parsed.data.headings.length > 0 && /* @__PURE__ */ jsxs("nav", { className: "prism-research__contents", "aria-label": labels.contents, children: [
|
|
495
|
+
/* @__PURE__ */ jsx("p", { children: labels.contents }),
|
|
496
|
+
/* @__PURE__ */ jsx("ol", { children: parsed.data.headings.map((h) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href: `#${h.id}`, children: h.title }) }, h.id)) })
|
|
497
|
+
] }),
|
|
498
|
+
/* @__PURE__ */ jsx(TipTapRenderer, { content: parsed.data.doc, nodeRenderers: nodes, inheritRegisteredNodes: false, sx }),
|
|
499
|
+
parsed.data.diagnostics.length > 0 && /* @__PURE__ */ jsxs("details", { className: "prism-research__diagnostics", children: [
|
|
500
|
+
/* @__PURE__ */ jsxs("summary", { children: [
|
|
501
|
+
labels.diagnostics,
|
|
502
|
+
" \xB7 ",
|
|
503
|
+
parsed.data.diagnostics.length
|
|
504
|
+
] }),
|
|
505
|
+
/* @__PURE__ */ jsx("ul", { children: parsed.data.diagnostics.map((d, i) => /* @__PURE__ */ jsxs("li", { children: [
|
|
506
|
+
d.line,
|
|
507
|
+
": ",
|
|
508
|
+
/* @__PURE__ */ jsx("code", { children: d.code })
|
|
509
|
+
] }, i)) })
|
|
510
|
+
] })
|
|
511
|
+
]
|
|
512
|
+
}
|
|
513
|
+
);
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
export { ResearchDocument, defaultResearchLabels, defineResearchWidget, parseResearchMarkdown, researchLimits, splitFrontmatter };
|
|
517
|
+
//# sourceMappingURL=chunk-SU3LVQ7N.js.map
|
|
518
|
+
//# sourceMappingURL=chunk-SU3LVQ7N.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/research/frontmatter.ts","../src/components/research/parse.ts","../src/components/research/diagram-image.ts","../src/components/research/diagram.tsx","../src/components/research/document.tsx"],"names":["n","body","picture","jsx","jsxs","useId"],"mappings":"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","file":"chunk-SU3LVQ7N.js","sourcesContent":["/** Recognize a leading YAML envelope without interpreting tags, aliases or values.\n * Masking preserves every UTF-16 offset and line ending in subsequent source spans. */\nexport function splitFrontmatter(source: string) {\n const opening = /^(?:\\uFEFF)?---[ \\t]*\\r?\\n/.exec(source);\n if (!opening) return { body: source, metadata: undefined };\n let offset = opening[0].length;\n while (offset < source.length) {\n const newline = source.indexOf('\\n', offset);\n const end = newline < 0 ? source.length : newline + 1;\n if (/^(?:---|\\.\\.\\.)[ \\t]*(?:\\r?\\n)?$/.test(source.slice(offset, end))) {\n const raw = source.slice(0, end);\n return {\n body: raw.replace(/[^\\r\\n]/g, ' ') + source.slice(end),\n metadata: { format: 'yaml' as const, raw, start: 0, end },\n };\n }\n offset = end;\n }\n return { body: source, metadata: undefined };\n}\n","/** Research Markdown v1: structured documents with source locations,\n * explicit diagnostics and isolated widgets.\n * Source is data: HTML and unknown syntax are retained as text, never executed. */\nimport { splitFrontmatter } from './frontmatter.js';\nimport { fromMarkdown } from 'mdast-util-from-markdown';\nimport { gfm } from 'micromark-extension-gfm';\nimport { gfmFromMarkdown } from 'mdast-util-gfm';\nimport { directive } from 'micromark-extension-directive';\nimport { directiveFromMarkdown } from 'mdast-util-directive';\nimport { math } from 'micromark-extension-math';\nimport { mathFromMarkdown } from 'mdast-util-math';\nimport type { TipTapDoc, TipTapNode, TipTapMark } from '../tiptap-renderer/index.js';\n\ntype Position = { start: { line: number; offset?: number }; end: { line: number; offset?: number } };\ntype Ast = { type: string; children?: Ast[]; position?: Position; [key: string]: unknown };\nexport interface ResearchDiagnostic {\n code: string;\n line: number;\n}\nexport interface ResearchDocumentData {\n format: 'prism-research/1';\n metadata?: { format: 'yaml'; raw: string; start: number; end: number };\n doc: TipTapDoc;\n headings: { id: string; title: string; level: number }[];\n diagnostics: ResearchDiagnostic[];\n}\nexport const researchLimits = { source: 262144, nodes: 20000, depth: 64, block: 20000 } as const;\nconst str = (v: unknown) => (typeof v === 'string' ? v : '');\nconst plain = (n: Ast): string => str(n.value) || (n.children ?? []).map(plain).join('');\n\nexport function parseResearchMarkdown(\n source: string,\n prefix = 'research',\n sourceProfile: 'research' | 'docusaurus' = 'research'\n): ResearchDocumentData {\n if (source.length > researchLimits.source) throw new Error('document_limit');\n if (!/^[a-zA-Z][\\w-]{0,100}$/.test(prefix)) throw new Error('invalid_document_prefix');\n const { body, metadata } = splitFrontmatter(source);\n const tree = fromMarkdown(body, {\n extensions: [gfm(), directive(), math()],\n mdastExtensions: [gfmFromMarkdown(), directiveFromMarkdown(), mathFromMarkdown()],\n }) as unknown as Ast;\n const headings: ResearchDocumentData['headings'] = [],\n diagnostics: ResearchDiagnostic[] = [];\n const ids = new Set<string>();\n let count = 0;\n const definitions = new Map<string, Ast>();\n const collect = (n: Ast, depth: number) => {\n if (++count > researchLimits.nodes || depth > researchLimits.depth) throw new Error('structure_limit');\n if (n.type === 'definition') definitions.set(str(n.identifier), n);\n for (const c of n.children ?? []) collect(c, depth + 1);\n };\n collect(tree, 0);\n const fallback = (n: Ast, code: string, inline = false): TipTapNode => {\n diagnostics.push({ code, line: n.position?.start.line ?? 1 });\n const raw = source.slice(n.position?.start.offset ?? 0, n.position?.end.offset ?? 0) || plain(n);\n return inline ? { type: 'text', text: raw } : { type: 'codeBlock', content: [{ type: 'text', text: raw }] };\n };\n const convert = (n: Ast, marks: TipTapMark[] = []): TipTapNode[] => {\n const children = () => (n.children ?? []).flatMap((c) => convert(c, marks));\n const node = (type: string, attrs?: Record<string, unknown>, content = children()): TipTapNode[] => [\n {\n type,\n attrs: { ...attrs, source: n.position },\n content,\n },\n ];\n switch (n.type) {\n case 'root':\n return children();\n case 'definition':\n return [];\n case 'text':\n return [{ type: 'text', text: str(n.value), marks }];\n case 'inlineCode':\n return [{ type: 'text', text: str(n.value), marks: [...marks, { type: 'code' }] }];\n case 'strong':\n case 'emphasis':\n case 'delete':\n return (n.children ?? []).flatMap((c) =>\n convert(c, [...marks, { type: { strong: 'bold', emphasis: 'italic', delete: 'strike' }[n.type]! }])\n );\n case 'paragraph':\n return node('paragraph');\n case 'heading': {\n const explicit = sourceProfile === 'docusaurus' ? /\\s*\\{#([^\\s{}]+)\\}\\s*$/.exec(plain(n)) : null;\n const title = explicit ? plain(n).slice(0, explicit.index) : plain(n);\n const base = `${prefix}-${\n explicit?.[1] ??\n (title\n .normalize('NFKC')\n .toLowerCase()\n .replace(/[^\\p{L}\\p{N}]+/gu, '-')\n .replace(/^-|-$/g, '') ||\n 'section')\n }`;\n let id = base,\n suffix = 1;\n while (ids.has(id)) id = `${base}-${++suffix}`;\n if (explicit && id !== base)\n diagnostics.push({ code: 'duplicate_heading_id', line: n.position?.start.line ?? 1 });\n ids.add(id);\n headings.push({ id, title, level: Number(n.depth) });\n let content = n.children ?? [];\n if (explicit) {\n const last = content.at(-1);\n if (last?.type === 'text')\n content = [\n ...content.slice(0, -1),\n { ...last, value: str(last.value).replace(/\\s*\\{#[^\\s{}]+\\}\\s*$/, '') },\n ];\n }\n return node(\n 'heading',\n { level: n.depth, id },\n content.flatMap((c) => convert(c, marks))\n );\n }\n case 'linkReference':\n case 'imageReference': {\n const def = definitions.get(str(n.identifier));\n if (!def) return [fallback(n, 'unresolved_reference', true)];\n return convert(\n { ...n, type: n.type === 'linkReference' ? 'link' : 'image', url: def.url, title: def.title },\n marks\n );\n }\n case 'link':\n return (n.children ?? []).flatMap((c) =>\n convert(c, [\n ...marks,\n {\n type: 'link',\n attrs: {\n href:\n sourceProfile === 'docusaurus' && str(n.url).startsWith('#')\n ? `#${prefix}-${str(n.url).slice(1)}`\n : str(n.url),\n },\n },\n ])\n );\n case 'image':\n return node('image', { src: str(n.url), alt: str(n.alt), title: str(n.title) }, []);\n case 'break':\n return node('hardBreak', {}, []);\n case 'blockquote':\n return node('blockquote');\n case 'thematicBreak':\n return node('horizontalRule', {}, []);\n case 'list':\n return node(\n (n.children ?? []).some((c) => typeof c.checked === 'boolean')\n ? 'taskList'\n : n.ordered\n ? 'orderedList'\n : 'bulletList',\n { start: n.start }\n );\n case 'listItem':\n return node(typeof n.checked === 'boolean' ? 'taskItem' : 'listItem', { checked: n.checked });\n case 'table':\n return node(\n 'table',\n {},\n (n.children ?? []).map((row, i) => ({\n type: 'tableRow',\n content: (row.children ?? []).map((cell) => ({\n type: i === 0 ? 'tableHeader' : 'tableCell',\n content: [{ type: 'paragraph', content: (cell.children ?? []).flatMap((c) => convert(c)) }],\n })),\n }))\n );\n case 'inlineMath':\n case 'math':\n return node(n.type === 'math' ? 'mathBlock' : 'mathInline', { tex: str(n.value) }, []).map((n) => ({\n ...n,\n marks,\n }));\n case 'code': {\n const language = str(n.lang).toLowerCase(),\n body = str(n.value);\n if (['mermaid', 'pintora', 'prism'].includes(language) && body.length > researchLimits.block)\n return [fallback(n, 'block_limit')];\n if (language === 'mermaid' || language === 'pintora')\n return node('diagram', { engine: language, code: body }, []);\n if (language === 'prism') {\n try {\n return node('researchWidget', { descriptor: JSON.parse(body) }, []);\n } catch {\n return [fallback(n, 'invalid_widget_json')];\n }\n }\n return node('codeBlock', { language, title: str(n.meta) }, [{ type: 'text', text: body }]);\n }\n case 'containerDirective':\n case 'leafDirective': {\n const name = str(n.name),\n attrs = (n.attributes ?? {}) as Record<string, string>;\n if (['note', 'tip', 'warning', 'danger', 'info', 'caution'].includes(name))\n return node('admonition', { kind: name, title: attrs.title || name });\n if (name === 'tabs') {\n if ((n.children ?? []).some((c) => c.type !== 'containerDirective' || c.name !== 'tab'))\n return [fallback(n, 'invalid_tabs')];\n return node(\n 'tabs',\n {},\n (n.children ?? []).flatMap((c) => convert(c))\n );\n }\n if (name === 'tab') return node('tabItem', { label: attrs.label || attrs.value || 'Tab' });\n if (name === 'widget')\n return node(\n 'researchWidget',\n {\n descriptor: {\n type: attrs.type,\n version: Number(attrs.version || 1),\n props: Object.fromEntries(Object.entries(attrs).filter(([key]) => key !== 'type' && key !== 'version')),\n },\n },\n []\n );\n return [fallback(n, 'unknown_directive')];\n }\n case 'html':\n return [fallback(n, 'raw_html', true)];\n default:\n return [\n fallback(\n n,\n `unsupported_${n.type}`,\n n.type.startsWith('inline') || n.type === 'textDirective' || n.type === 'footnoteReference'\n ),\n ];\n }\n };\n return { format: 'prism-research/1', metadata, doc: { type: 'doc', content: convert(tree) }, headings, diagnostics };\n}\n","import type { DOMPurify } from 'dompurify';\n\n/** The returned SVG must be consumed only by <img>, never injected into HTML.\n * SVG image isolation preserves Mermaid's layout CSS without granting it DOM\n * capabilities or allowing its styles to affect the surrounding document.\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Guides/SVG_as_an_image\n */\nexport function diagramImage(source: string, purify: DOMPurify) {\n const fragment = purify.sanitize(source, {\n USE_PROFILES: { svg: true, svgFilters: true },\n ADD_TAGS: ['style'],\n FORBID_TAGS: ['foreignObject', 'image', 'a', 'script', 'animate', 'animateMotion', 'animateTransform', 'set'],\n FORBID_ATTR: ['href', 'xlink:href'],\n RETURN_DOM_FRAGMENT: true,\n });\n const svg = fragment.querySelector('svg');\n if (!svg || !svg.getAttribute('viewBox')) throw new Error('invalid_diagram_svg');\n const title = svg.querySelector('title')?.textContent?.trim();\n const labels = [...svg.querySelectorAll('text')].map((node) => node.textContent?.trim()).filter(Boolean);\n const description = title || labels.join(' · ') || 'Diagram';\n return {\n src: 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(new XMLSerializer().serializeToString(svg)),\n description: description.slice(0, 2000),\n };\n}\n","'use client';\nimport { useEffect, useId, useRef, useState } from 'react';\nimport { useTheme } from '@mui/material/styles';\nimport type { ResearchLabels } from './document.js';\nimport { researchLimits } from './parse.js';\nimport { diagramImage } from './diagram-image.js';\n// Mermaid has mutable process-wide configuration. Serialise its configure/render\n// pair; document-local widgets and source code never get a configuration hook.\nlet pending: Promise<unknown> = Promise.resolve();\nexport function diagramSourceAllowed(source: string, engine: string) {\n return (\n engine === 'mermaid' && source.length <= researchLimits.block && !/^\\s*---/m.test(source) && !/%%\\s*\\{/.test(source)\n );\n}\nexport function ResearchDiagram({\n source,\n engine,\n labels,\n}: {\n source: string;\n engine: string;\n labels: ResearchLabels;\n}) {\n const id = `diagram-${useId().replace(/[^\\w-]/g, '')}`;\n const container = useRef<HTMLDivElement>(null);\n const [picture, setPicture] = useState<ReturnType<typeof diagramImage>>();\n const [state, setState] = useState<'loading' | 'ready' | 'error'>('loading');\n const theme = useTheme(),\n mode = theme.palette.mode;\n useEffect(() => {\n let cancelled = false;\n setState('loading');\n setPicture(undefined);\n const target = container.current;\n const run = async () => {\n if (cancelled || !target) return;\n if (!diagramSourceAllowed(source, engine)) {\n setState('error');\n return;\n }\n let scratch: HTMLDivElement | undefined;\n try {\n const [{ default: mermaid }, { default: purify }] = await Promise.all([import('mermaid'), import('dompurify')]);\n if (cancelled) return;\n scratch = document.createElement('div');\n scratch.style.cssText = 'position:absolute;visibility:hidden;pointer-events:none;width:1000px';\n target.append(scratch);\n mermaid.initialize({\n startOnLoad: false,\n securityLevel: 'strict',\n htmlLabels: false,\n maxTextSize: researchLimits.block,\n maxEdges: 256,\n suppressErrorRendering: true,\n look: 'classic',\n theme: 'base',\n fontFamily: 'system-ui, sans-serif',\n themeVariables: {\n darkMode: mode === 'dark',\n primaryColor: theme.palette.background.paper,\n primaryTextColor: theme.palette.text.primary,\n primaryBorderColor: theme.palette.text.secondary,\n secondaryColor: theme.palette.background.default,\n tertiaryColor: theme.palette.background.paper,\n lineColor: theme.palette.text.secondary,\n textColor: theme.palette.text.primary,\n fontFamily: 'system-ui, sans-serif',\n fontSize: '16px',\n },\n flowchart: { htmlLabels: false },\n secure: [\n 'securityLevel',\n 'startOnLoad',\n 'maxTextSize',\n 'maxEdges',\n 'htmlLabels',\n 'theme',\n 'look',\n 'fontFamily',\n 'themeCSS',\n 'themeVariables',\n ],\n });\n const result = await mermaid.render(id, source, scratch);\n const picture = diagramImage(result.svg, purify);\n if (!cancelled) {\n setPicture(picture);\n setState('ready');\n }\n } catch {\n if (!cancelled) setState('error');\n } finally {\n scratch?.remove();\n }\n };\n pending = pending.catch(() => undefined).then(run);\n return () => {\n cancelled = true;\n target?.replaceChildren();\n };\n }, [source, engine, id, theme]);\n return (\n <figure className=\"prism-research__diagram\">\n {state !== 'ready' && <p role=\"status\">{state === 'error' ? labels.invalid : labels.loading}</p>}\n <div ref={container} aria-hidden=\"true\" />\n {picture && (\n <img\n className=\"prism-research__diagram-image\"\n src={picture.src}\n alt={picture.description}\n onError={() => setState('error')}\n />\n )}\n <details open={state === 'error'}>\n <summary>\n {labels.source} · {engine}\n </summary>\n <pre>{source}</pre>\n </details>\n </figure>\n );\n}\n","'use client';\n\nimport { ChevronDownIcon } from '../../icons/controls.js';\nimport { Component, useId, useMemo, type ReactNode, type ComponentType } from 'react';\nimport katex from 'katex';\nimport { Accordion, AccordionSummary, AccordionDetails, Box, Typography } from '@mui/material';\nimport type { SxProps, Theme } from '@mui/material/styles';\nimport { TipTapRenderer, type TipTapNode } from '../tiptap-renderer/index.js';\nimport { parseResearchMarkdown, researchLimits } from './parse.js';\nimport { ResearchDiagram } from './diagram.js';\nimport './research.css';\n\nexport interface ResearchWidget {\n version: number;\n render: (props: unknown) => ReactNode;\n}\nexport type ResearchWidgets = Readonly<Record<string, ResearchWidget>>;\nexport function defineResearchWidget<P>(\n version: number,\n parse: (input: unknown) => P,\n View: ComponentType<P & object>\n): ResearchWidget {\n return {\n version,\n render(input) {\n const props = parse(input);\n return <View {...(props as P & object)} />;\n },\n };\n}\nexport interface ResearchLabels {\n metadata: string;\n contents: string;\n source: string;\n unavailable: string;\n invalid: string;\n loading: string;\n diagnostics: string;\n}\nexport const defaultResearchLabels: ResearchLabels = {\n metadata: 'Source metadata',\n contents: 'On this page',\n source: 'Source',\n unavailable: 'This block is not available in this document.',\n invalid: 'This block could not be rendered. Its source is preserved.',\n loading: 'Rendering diagram…',\n diagnostics: 'Document diagnostics',\n};\nexport interface ResearchDocumentProps {\n /** Enables inert Docusaurus heading IDs and namespaced fragment links. */\n sourceProfile?: 'research' | 'docusaurus';\n source: string;\n /** Stable namespace for deep links. A revision identifier belongs to the host's document metadata. */\n documentId?: string;\n widgets?: ResearchWidgets;\n labels?: Partial<ResearchLabels>;\n contents?: boolean;\n className?: string;\n sx?: SxProps<Theme>;\n}\nclass BlockBoundary extends Component<{ children: ReactNode; fallback: ReactNode }, { failed: boolean }> {\n state = { failed: false };\n static getDerivedStateFromError() {\n return { failed: true };\n }\n render() {\n return this.state.failed ? this.props.fallback : this.props.children;\n }\n}\nfunction Formula({ node, labels }: { node: TipTapNode; labels: ResearchLabels }) {\n const tex = String(node.attrs?.tex ?? '');\n try {\n if (tex.length > researchLimits.block) throw new Error('formula_limit');\n const html = katex.renderToString(tex, {\n displayMode: node.type === 'mathBlock',\n trust: false,\n strict: 'error',\n throwOnError: true,\n maxExpand: 1000,\n maxSize: 20,\n output: 'htmlAndMathml',\n });\n return (\n <span\n className={node.type === 'mathBlock' ? 'prism-research__formula-block' : undefined}\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n } catch {\n return (\n <code className=\"prism-research__invalid-math\" title={labels.invalid}>\n {tex}\n </code>\n );\n }\n}\nfunction Widget({ node, widgets, labels }: { node: TipTapNode; widgets: ResearchWidgets; labels: ResearchLabels }) {\n const d = node.attrs?.descriptor as { type?: unknown; version?: unknown; props?: unknown } | undefined;\n if (!d || typeof d.type !== 'string' || !Object.hasOwn(widgets, d.type) || widgets[d.type]?.version !== d.version)\n return (\n <details className=\"prism-research__failure\">\n <summary>{labels.unavailable}</summary>\n <pre>{JSON.stringify(d)}</pre>\n </details>\n );\n try {\n return widgets[d.type]!.render(d.props);\n } catch {\n return (\n <details className=\"prism-research__failure\">\n <summary>{labels.invalid}</summary>\n <pre>{JSON.stringify(d)}</pre>\n </details>\n );\n }\n}\nconst emptyWidgets: ResearchWidgets = Object.freeze({});\nexport function ResearchDocument({\n source,\n sourceProfile = 'research',\n documentId,\n widgets = emptyWidgets,\n labels: overrides,\n contents = false,\n className,\n sx,\n}: ResearchDocumentProps) {\n const uid = useId();\n const prefix = documentId ?? `research-${uid.replace(/[^\\w-]/g, '')}`;\n const labels = { ...defaultResearchLabels, ...overrides };\n const parsed = useMemo(() => {\n try {\n return { data: parseResearchMarkdown(source, prefix, sourceProfile) };\n } catch {\n return { error: true };\n }\n }, [source, prefix, sourceProfile]);\n const nodes = useMemo(() => {\n const failure = (raw: string) => (\n <details className=\"prism-research__failure\" open>\n <summary>{labels.invalid}</summary>\n <pre>{raw}</pre>\n </details>\n );\n const bounded = (render: (node: TipTapNode) => ReactNode) => (props: { node: TipTapNode }) => {\n const raw = String(\n props.node.attrs?.tex ?? props.node.attrs?.code ?? JSON.stringify(props.node.attrs?.descriptor ?? {})\n );\n return (\n <BlockBoundary key={raw} fallback={failure(raw)}>\n {render(props.node)}\n </BlockBoundary>\n );\n };\n return {\n mathInline: ({ node }: { node: TipTapNode }) => <Formula node={node} labels={labels} />,\n mathBlock: ({ node }: { node: TipTapNode }) => <Formula node={node} labels={labels} />,\n diagram: bounded((n) => (\n <ResearchDiagram source={String(n.attrs?.code ?? '')} engine={String(n.attrs?.engine ?? '')} labels={labels} />\n )),\n researchWidget: bounded((n) => <Widget node={n} widgets={widgets} labels={labels} />),\n };\n }, [widgets, labels.invalid, labels.unavailable, labels.loading, labels.source]);\n if (!parsed.data) return <p role=\"alert\">{labels.invalid}</p>;\n return (\n <Box\n className={`prism-research ${className ?? ''}`}\n sx={(theme) => ({ '--prism-research-border': theme.palette.divider })}\n >\n {parsed.data.metadata && (\n <Accordion\n disableGutters\n elevation={0}\n sx={{ mb: 2, border: 1, borderColor: 'divider', '&:before': { display: 'none' } }}\n >\n <AccordionSummary expandIcon={<ChevronDownIcon fontSize=\"small\" />}>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {labels.metadata} · YAML\n </Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Box\n component=\"pre\"\n sx={{\n m: 0,\n maxHeight: 240,\n overflow: 'auto',\n whiteSpace: 'pre-wrap',\n overflowWrap: 'anywhere',\n fontSize: 12,\n }}\n >\n {parsed.data.metadata.raw}\n </Box>\n </AccordionDetails>\n </Accordion>\n )}\n {contents && parsed.data.headings.length > 0 && (\n <nav className=\"prism-research__contents\" aria-label={labels.contents}>\n <p>{labels.contents}</p>\n <ol>\n {parsed.data.headings.map((h) => (\n <li key={h.id}>\n <a href={`#${h.id}`}>{h.title}</a>\n </li>\n ))}\n </ol>\n </nav>\n )}\n <TipTapRenderer content={parsed.data.doc} nodeRenderers={nodes} inheritRegisteredNodes={false} sx={sx} />\n {parsed.data.diagnostics.length > 0 && (\n <details className=\"prism-research__diagnostics\">\n <summary>\n {labels.diagnostics} · {parsed.data.diagnostics.length}\n </summary>\n <ul>\n {parsed.data.diagnostics.map((d, i) => (\n <li key={i}>\n {d.line}: <code>{d.code}</code>\n </li>\n ))}\n </ul>\n </details>\n )}\n </Box>\n );\n}\n"]}
|