@nldd/design-system 0.8.64 → 0.8.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/actions/button/button.d.ts.map +1 -1
- package/dist/components/actions/button/button.js +7 -6
- package/dist/components/actions/button/button.js.map +1 -1
- package/dist/components/actions/button/button.styles.d.ts.map +1 -1
- package/dist/components/actions/button/button.styles.js +9 -5
- package/dist/components/actions/button/button.styles.js.map +1 -1
- package/dist/components/actions/button-bar/button-bar.d.ts.map +1 -1
- package/dist/components/actions/button-bar/button-bar.js +3 -2
- package/dist/components/actions/button-bar/button-bar.js.map +1 -1
- package/dist/components/actions/button-group/button-group.d.ts.map +1 -1
- package/dist/components/actions/button-group/button-group.js +3 -2
- package/dist/components/actions/button-group/button-group.js.map +1 -1
- package/dist/components/actions/icon-button/icon-button.d.ts +4 -0
- package/dist/components/actions/icon-button/icon-button.d.ts.map +1 -1
- package/dist/components/actions/icon-button/icon-button.js +13 -5
- package/dist/components/actions/icon-button/icon-button.js.map +1 -1
- package/dist/components/actions/icon-button/icon-button.styles.d.ts.map +1 -1
- package/dist/components/actions/icon-button/icon-button.styles.js +15 -10
- package/dist/components/actions/icon-button/icon-button.styles.js.map +1 -1
- package/dist/components/actions/icon-button/icon-button.template.d.ts.map +1 -1
- package/dist/components/actions/icon-button/icon-button.template.js +2 -0
- package/dist/components/actions/icon-button/icon-button.template.js.map +1 -1
- package/dist/components/actions/menu/menu.d.ts +1 -0
- package/dist/components/actions/menu/menu.d.ts.map +1 -1
- package/dist/components/actions/menu/menu.js +33 -15
- package/dist/components/actions/menu/menu.js.map +1 -1
- package/dist/components/actions/menu/menu.styles.d.ts.map +1 -1
- package/dist/components/actions/menu/menu.styles.js +8 -0
- package/dist/components/actions/menu/menu.styles.js.map +1 -1
- package/dist/components/actions/split-button/split-button.d.ts.map +1 -1
- package/dist/components/actions/split-button/split-button.js +5 -4
- package/dist/components/actions/split-button/split-button.js.map +1 -1
- package/dist/components/actions/toolbar/toolbar.d.ts +11 -0
- package/dist/components/actions/toolbar/toolbar.d.ts.map +1 -1
- package/dist/components/actions/toolbar/toolbar.js +112 -40
- package/dist/components/actions/toolbar/toolbar.js.map +1 -1
- package/dist/components/actions/toolbar/toolbar.styles.d.ts.map +1 -1
- package/dist/components/actions/toolbar/toolbar.styles.js +3 -12
- package/dist/components/actions/toolbar/toolbar.styles.js.map +1 -1
- package/dist/components/components.js +104 -102
- package/dist/components/content/blockquote/blockquote.styles.d.ts.map +1 -1
- package/dist/components/content/blockquote/blockquote.styles.js +0 -3
- package/dist/components/content/blockquote/blockquote.styles.js.map +1 -1
- package/dist/components/content/byline/byline.d.ts.map +1 -1
- package/dist/components/content/byline/byline.js +3 -2
- package/dist/components/content/byline/byline.js.map +1 -1
- package/dist/components/content/code-viewer/code-viewer.d.ts +24 -64
- package/dist/components/content/code-viewer/code-viewer.d.ts.map +1 -1
- package/dist/components/content/code-viewer/code-viewer.js +239 -156
- package/dist/components/content/code-viewer/code-viewer.js.map +1 -1
- package/dist/components/content/code-viewer/code-viewer.styles.d.ts.map +1 -1
- package/dist/components/content/code-viewer/code-viewer.styles.js +33 -92
- package/dist/components/content/code-viewer/code-viewer.styles.js.map +1 -1
- package/dist/components/content/code-viewer/code-viewer.template.d.ts.map +1 -1
- package/dist/components/content/code-viewer/code-viewer.template.js +10 -29
- package/dist/components/content/code-viewer/code-viewer.template.js.map +1 -1
- package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
- package/dist/components/content/icon/icon-aliases.js +22 -1
- package/dist/components/content/icon/icon-aliases.js.map +1 -1
- package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
- package/dist/components/content/icon/icon-registry.js +18 -0
- package/dist/components/content/icon/icon-registry.js.map +1 -1
- package/dist/components/content/icon/icon.d.ts.map +1 -1
- package/dist/components/content/icon/icon.js +3 -2
- package/dist/components/content/icon/icon.js.map +1 -1
- package/dist/components/content/image/image.d.ts.map +1 -1
- package/dist/components/content/image/image.js +7 -6
- package/dist/components/content/image/image.js.map +1 -1
- package/dist/components/content/image/image.styles.d.ts.map +1 -1
- package/dist/components/content/image/image.styles.js +2 -6
- package/dist/components/content/image/image.styles.js.map +1 -1
- package/dist/components/content/keyboard-shortcut/keyboard-shortcut.d.ts.map +1 -1
- package/dist/components/content/keyboard-shortcut/keyboard-shortcut.js +8 -7
- package/dist/components/content/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
- package/dist/components/content/keyboard-shortcut/keyboard-shortcut.styles.d.ts.map +1 -1
- package/dist/components/content/keyboard-shortcut/keyboard-shortcut.styles.js +5 -1
- package/dist/components/content/keyboard-shortcut/keyboard-shortcut.styles.js.map +1 -1
- package/dist/components/content/rich-text/rich-text.d.ts.map +1 -1
- package/dist/components/content/rich-text/rich-text.js +3 -2
- package/dist/components/content/rich-text/rich-text.js.map +1 -1
- package/dist/components/content/tag/tag.d.ts.map +1 -1
- package/dist/components/content/tag/tag.js +5 -4
- package/dist/components/content/tag/tag.js.map +1 -1
- package/dist/components/content/title/title.d.ts.map +1 -1
- package/dist/components/content/title/title.js +2 -1
- package/dist/components/content/title/title.js.map +1 -1
- package/dist/components/content/token/token.d.ts +70 -0
- package/dist/components/content/token/token.d.ts.map +1 -0
- package/dist/components/content/token/token.js +170 -0
- package/dist/components/content/token/token.js.map +1 -0
- package/dist/components/content/token/token.styles.d.ts.map +1 -0
- package/dist/components/content/token/token.styles.js +122 -0
- package/dist/components/content/token/token.styles.js.map +1 -0
- package/dist/components/content/token/token.template.d.ts +6 -0
- package/dist/components/content/token/token.template.d.ts.map +1 -0
- package/dist/components/content/token/token.template.js +47 -0
- package/dist/components/content/token/token.template.js.map +1 -0
- package/dist/components/content/tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/content/tooltip/tooltip.js +14 -5
- package/dist/components/content/tooltip/tooltip.js.map +1 -1
- package/dist/components/content/tooltip/tooltip.styles.d.ts.map +1 -1
- package/dist/components/content/tooltip/tooltip.styles.js +11 -0
- package/dist/components/content/tooltip/tooltip.styles.js.map +1 -1
- package/dist/components/gherkin-DhZlEZiy.js +115 -0
- package/dist/components/index-BI4lrehT.js +66595 -0
- package/dist/components/index-BcdqzZql.js +703 -0
- package/dist/components/index-BlMqctke.js +81 -0
- package/dist/components/index-BseMFLNF.js +688 -0
- package/dist/components/index-ChjtFo6I.js +177 -0
- package/dist/components/index-D3NSlPL5.js +405 -0
- package/dist/components/index-D7B3n3QJ.js +384 -0
- package/dist/components/index.d.ts +20 -18
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +20 -18
- package/dist/components/index.js.map +1 -1
- package/dist/components/inputs/code-editor/code-editor.d.ts +58 -29
- package/dist/components/inputs/code-editor/code-editor.d.ts.map +1 -1
- package/dist/components/inputs/code-editor/code-editor.js +241 -52
- package/dist/components/inputs/code-editor/code-editor.js.map +1 -1
- package/dist/components/inputs/code-editor/code-editor.styles.d.ts.map +1 -1
- package/dist/components/inputs/code-editor/code-editor.styles.js +58 -46
- package/dist/components/inputs/code-editor/code-editor.styles.js.map +1 -1
- package/dist/components/inputs/code-editor/code-editor.template.d.ts +1 -1
- package/dist/components/inputs/code-editor/code-editor.template.d.ts.map +1 -1
- package/dist/components/inputs/code-editor/code-editor.template.js +5 -22
- package/dist/components/inputs/code-editor/code-editor.template.js.map +1 -1
- package/dist/components/inputs/combo-box/combo-box.d.ts +15 -4
- package/dist/components/inputs/combo-box/combo-box.d.ts.map +1 -1
- package/dist/components/inputs/combo-box/combo-box.js +53 -9
- package/dist/components/inputs/combo-box/combo-box.js.map +1 -1
- package/dist/components/inputs/dropdown/dropdown.d.ts.map +1 -1
- package/dist/components/inputs/dropdown/dropdown.js +2 -1
- package/dist/components/inputs/dropdown/dropdown.js.map +1 -1
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts +1 -1
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts.map +1 -1
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js +6 -5
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js.map +1 -1
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.d.ts.map +1 -1
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.js +8 -11
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.js.map +1 -1
- package/dist/components/inputs/number-field/number-field.d.ts.map +1 -1
- package/dist/components/inputs/number-field/number-field.js +2 -1
- package/dist/components/inputs/number-field/number-field.js.map +1 -1
- package/dist/components/inputs/password-field/password-field.d.ts.map +1 -1
- package/dist/components/inputs/password-field/password-field.js +3 -2
- package/dist/components/inputs/password-field/password-field.js.map +1 -1
- package/dist/components/inputs/radio-button-group/radio-button-group.js +1 -1
- package/dist/components/inputs/radio-button-group/radio-button-group.js.map +1 -1
- package/dist/components/inputs/search-field/search-field.d.ts.map +1 -1
- package/dist/components/inputs/search-field/search-field.js +2 -1
- package/dist/components/inputs/search-field/search-field.js.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.d.ts +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.d.ts.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.js +10 -9
- package/dist/components/inputs/segmented-control/segmented-control.js.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.styles.d.ts.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.styles.js +70 -36
- package/dist/components/inputs/segmented-control/segmented-control.styles.js.map +1 -1
- package/dist/components/inputs/stepper/stepper.d.ts.map +1 -1
- package/dist/components/inputs/stepper/stepper.js +2 -1
- package/dist/components/inputs/stepper/stepper.js.map +1 -1
- package/dist/components/inputs/switch/switch.d.ts.map +1 -1
- package/dist/components/inputs/switch/switch.js +2 -1
- package/dist/components/inputs/switch/switch.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.d.ts +51 -0
- package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.js +148 -0
- package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.annotations.d.ts +47 -0
- package/dist/components/inputs/text-editor/text-editor.annotations.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.annotations.js +327 -0
- package/dist/components/inputs/text-editor/text-editor.annotations.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.caret.d.ts +13 -0
- package/dist/components/inputs/text-editor/text-editor.caret.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.caret.js +27 -0
- package/dist/components/inputs/text-editor/text-editor.caret.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.commands.d.ts +61 -0
- package/dist/components/inputs/text-editor/text-editor.commands.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.commands.js +376 -0
- package/dist/components/inputs/text-editor/text-editor.commands.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.d.ts +241 -0
- package/dist/components/inputs/text-editor/text-editor.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.drag.d.ts +30 -0
- package/dist/components/inputs/text-editor/text-editor.drag.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.drag.js +231 -0
- package/dist/components/inputs/text-editor/text-editor.drag.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.i18n.d.ts +8 -0
- package/dist/components/inputs/text-editor/text-editor.i18n.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.i18n.js +13 -0
- package/dist/components/inputs/text-editor/text-editor.i18n.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.js +782 -0
- package/dist/components/inputs/text-editor/text-editor.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.links.d.ts +18 -0
- package/dist/components/inputs/text-editor/text-editor.links.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.links.js +147 -0
- package/dist/components/inputs/text-editor/text-editor.links.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.markdown.d.ts +20 -0
- package/dist/components/inputs/text-editor/text-editor.markdown.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.markdown.js +372 -0
- package/dist/components/inputs/text-editor/text-editor.markdown.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.mentions.d.ts +32 -0
- package/dist/components/inputs/text-editor/text-editor.mentions.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.mentions.js +153 -0
- package/dist/components/inputs/text-editor/text-editor.mentions.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.ordered-list.d.ts +12 -0
- package/dist/components/inputs/text-editor/text-editor.ordered-list.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.ordered-list.js +85 -0
- package/dist/components/inputs/text-editor/text-editor.ordered-list.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.styles.d.ts +2 -0
- package/dist/components/inputs/text-editor/text-editor.styles.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.styles.js +592 -0
- package/dist/components/inputs/text-editor/text-editor.styles.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.template.d.ts +4 -0
- package/dist/components/inputs/text-editor/text-editor.template.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.template.js +7 -0
- package/dist/components/inputs/text-editor/text-editor.template.js.map +1 -0
- package/dist/components/inputs/text-field/text-field.d.ts.map +1 -1
- package/dist/components/inputs/text-field/text-field.js +3 -2
- package/dist/components/inputs/text-field/text-field.js.map +1 -1
- package/dist/components/inputs/toggle-button/toggle-button.d.ts.map +1 -1
- package/dist/components/inputs/toggle-button/toggle-button.js +4 -3
- package/dist/components/inputs/toggle-button/toggle-button.js.map +1 -1
- package/dist/components/inputs/toggle-button/toggle-button.styles.d.ts.map +1 -1
- package/dist/components/inputs/toggle-button/toggle-button.styles.js +14 -10
- package/dist/components/inputs/toggle-button/toggle-button.styles.js.map +1 -1
- package/dist/components/inputs/toggle-button-group/toggle-button-group.d.ts +1 -1
- package/dist/components/inputs/toggle-button-group/toggle-button-group.d.ts.map +1 -1
- package/dist/components/inputs/toggle-button-group/toggle-button-group.js +5 -4
- package/dist/components/inputs/toggle-button-group/toggle-button-group.js.map +1 -1
- package/dist/components/inputs/token-field/token-field.d.ts +257 -0
- package/dist/components/inputs/token-field/token-field.d.ts.map +1 -0
- package/dist/components/inputs/token-field/token-field.i18n.d.ts +9 -0
- package/dist/components/inputs/token-field/token-field.i18n.d.ts.map +1 -0
- package/dist/components/inputs/token-field/token-field.i18n.js +8 -0
- package/dist/components/inputs/token-field/token-field.i18n.js.map +1 -0
- package/dist/components/inputs/token-field/token-field.js +877 -0
- package/dist/components/inputs/token-field/token-field.js.map +1 -0
- package/dist/components/inputs/token-field/token-field.styles.d.ts +2 -0
- package/dist/components/inputs/token-field/token-field.styles.d.ts.map +1 -0
- package/dist/components/inputs/token-field/token-field.styles.js +194 -0
- package/dist/components/inputs/token-field/token-field.styles.js.map +1 -0
- package/dist/components/inputs/token-field/token-field.template.d.ts +8 -0
- package/dist/components/inputs/token-field/token-field.template.d.ts.map +1 -0
- package/dist/components/inputs/token-field/token-field.template.js +136 -0
- package/dist/components/inputs/token-field/token-field.template.js.map +1 -0
- package/dist/components/layout/app-view/app-view.d.ts.map +1 -1
- package/dist/components/layout/app-view/app-view.js +2 -1
- package/dist/components/layout/app-view/app-view.js.map +1 -1
- package/dist/components/layout/box/box.d.ts.map +1 -1
- package/dist/components/layout/box/box.js +2 -1
- package/dist/components/layout/box/box.js.map +1 -1
- package/dist/components/layout/box/box.styles.d.ts.map +1 -1
- package/dist/components/layout/box/box.styles.js +1 -6
- package/dist/components/layout/box/box.styles.js.map +1 -1
- package/dist/components/layout/collection/collection.d.ts +5 -0
- package/dist/components/layout/collection/collection.d.ts.map +1 -1
- package/dist/components/layout/collection/collection.js +17 -1
- package/dist/components/layout/collection/collection.js.map +1 -1
- package/dist/components/layout/collection/collection.styles.d.ts.map +1 -1
- package/dist/components/layout/collection/collection.styles.js +18 -17
- package/dist/components/layout/collection/collection.styles.js.map +1 -1
- package/dist/components/layout/page-footer/page-footer.d.ts.map +1 -1
- package/dist/components/layout/page-footer/page-footer.js +2 -1
- package/dist/components/layout/page-footer/page-footer.js.map +1 -1
- package/dist/components/layout/page-sections/hero/hero.d.ts +7 -23
- package/dist/components/layout/page-sections/hero/hero.d.ts.map +1 -1
- package/dist/components/layout/page-sections/hero/hero.js +12 -73
- package/dist/components/layout/page-sections/hero/hero.js.map +1 -1
- package/dist/components/layout/page-sections/hero/hero.styles.d.ts.map +1 -1
- package/dist/components/layout/page-sections/hero/hero.styles.js +13 -159
- package/dist/components/layout/page-sections/hero/hero.styles.js.map +1 -1
- package/dist/components/layout/popover/popover.d.ts +1 -0
- package/dist/components/layout/popover/popover.d.ts.map +1 -1
- package/dist/components/layout/popover/popover.js +14 -1
- package/dist/components/layout/popover/popover.js.map +1 -1
- package/dist/components/layout/popover/popover.styles.d.ts.map +1 -1
- package/dist/components/layout/popover/popover.styles.js +11 -0
- package/dist/components/layout/popover/popover.styles.js.map +1 -1
- package/dist/components/layout/sheet/sheet.d.ts +1 -1
- package/dist/components/layout/sheet/sheet.d.ts.map +1 -1
- package/dist/components/layout/sheet/sheet.js +16 -6
- package/dist/components/layout/sheet/sheet.js.map +1 -1
- package/dist/components/layout/sheet/sheet.styles.d.ts.map +1 -1
- package/dist/components/layout/sheet/sheet.styles.js +60 -83
- package/dist/components/layout/sheet/sheet.styles.js.map +1 -1
- package/dist/components/layout/spacer/spacer.d.ts.map +1 -1
- package/dist/components/layout/spacer/spacer.js +2 -1
- package/dist/components/layout/spacer/spacer.js.map +1 -1
- package/dist/components/layout/spacer/spacer.styles.d.ts.map +1 -1
- package/dist/components/layout/spacer/spacer.styles.js +0 -1
- package/dist/components/layout/spacer/spacer.styles.js.map +1 -1
- package/dist/components/layout/split-views/split-view-divider/split-view-divider.d.ts.map +1 -1
- package/dist/components/layout/split-views/split-view-divider/split-view-divider.js +2 -1
- package/dist/components/layout/split-views/split-view-divider/split-view-divider.js.map +1 -1
- package/dist/components/layout/split-views/split-view-divider/split-view-divider.styles.js +10 -10
- package/dist/components/layout/window/window.d.ts.map +1 -1
- package/dist/components/layout/window/window.js +11 -2
- package/dist/components/layout/window/window.js.map +1 -1
- package/dist/components/lists-and-tables/cells/cell/cell.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/cell/cell.js +4 -3
- package/dist/components/lists-and-tables/cells/cell/cell.js.map +1 -1
- package/dist/components/lists-and-tables/cells/description-cell/description-cell.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/description-cell/description-cell.js +3 -2
- package/dist/components/lists-and-tables/cells/description-cell/description-cell.js.map +1 -1
- package/dist/components/lists-and-tables/cells/drag-handle-cell/drag-handle-cell.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/drag-handle-cell/drag-handle-cell.js +2 -1
- package/dist/components/lists-and-tables/cells/drag-handle-cell/drag-handle-cell.js.map +1 -1
- package/dist/components/lists-and-tables/cells/icon-cell/icon-cell.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/icon-cell/icon-cell.js +3 -2
- package/dist/components/lists-and-tables/cells/icon-cell/icon-cell.js.map +1 -1
- package/dist/components/lists-and-tables/cells/text-cell/text-cell.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/text-cell/text-cell.js +10 -9
- package/dist/components/lists-and-tables/cells/text-cell/text-cell.js.map +1 -1
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.js +3 -2
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.js.map +1 -1
- package/dist/components/lists-and-tables/cells/title-cell/title-cell.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/title-cell/title-cell.js +9 -8
- package/dist/components/lists-and-tables/cells/title-cell/title-cell.js.map +1 -1
- package/dist/components/lists-and-tables/list/list.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list/list.js +5 -4
- package/dist/components/lists-and-tables/list/list.js.map +1 -1
- package/dist/components/lists-and-tables/list/list.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list/list.styles.js +3 -2
- package/dist/components/lists-and-tables/list/list.styles.js.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.js +2 -1
- package/dist/components/lists-and-tables/list-item/list-item.js.map +1 -1
- package/dist/components/lists-and-tables/table/table.d.ts.map +1 -1
- package/dist/components/lists-and-tables/table/table.js +4 -3
- package/dist/components/lists-and-tables/table/table.js.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js +2 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/components/navigation/document-tab-bar/document-tab-bar.d.ts.map +1 -1
- package/dist/components/navigation/document-tab-bar/document-tab-bar.js +5 -4
- package/dist/components/navigation/document-tab-bar/document-tab-bar.js.map +1 -1
- package/dist/components/navigation/link/link.d.ts.map +1 -1
- package/dist/components/navigation/link/link.js +2 -1
- package/dist/components/navigation/link/link.js.map +1 -1
- package/dist/components/navigation/menu-bar/menu-bar.d.ts.map +1 -1
- package/dist/components/navigation/menu-bar/menu-bar.js +2 -1
- package/dist/components/navigation/menu-bar/menu-bar.js.map +1 -1
- package/dist/components/navigation/menu-bar-item/menu-bar-item.d.ts.map +1 -1
- package/dist/components/navigation/menu-bar-item/menu-bar-item.js +4 -3
- package/dist/components/navigation/menu-bar-item/menu-bar-item.js.map +1 -1
- package/dist/components/navigation/skip-link/skip-link.d.ts.map +1 -1
- package/dist/components/navigation/skip-link/skip-link.js +2 -1
- package/dist/components/navigation/skip-link/skip-link.js.map +1 -1
- package/dist/components/navigation/tab-bar/tab-bar.d.ts +7 -0
- package/dist/components/navigation/tab-bar/tab-bar.d.ts.map +1 -1
- package/dist/components/navigation/tab-bar/tab-bar.js +31 -5
- package/dist/components/navigation/tab-bar/tab-bar.js.map +1 -1
- package/dist/components/navigation/tab-bar/tab-bar.styles.d.ts.map +1 -1
- package/dist/components/navigation/tab-bar/tab-bar.styles.js +74 -78
- package/dist/components/navigation/tab-bar/tab-bar.styles.js.map +1 -1
- package/dist/components/navigation/tab-bar/tab-bar.template.d.ts.map +1 -1
- package/dist/components/navigation/tab-bar/tab-bar.template.js +8 -1
- package/dist/components/navigation/tab-bar/tab-bar.template.js.map +1 -1
- package/dist/components/navigation/top-navigation-bar/top-navigation-bar.d.ts.map +1 -1
- package/dist/components/navigation/top-navigation-bar/top-navigation-bar.js +7 -6
- package/dist/components/navigation/top-navigation-bar/top-navigation-bar.js.map +1 -1
- package/dist/components/navigation/top-title-bar/top-title-bar.d.ts.map +1 -1
- package/dist/components/navigation/top-title-bar/top-title-bar.js +5 -4
- package/dist/components/navigation/top-title-bar/top-title-bar.js.map +1 -1
- package/dist/components/shell-BlsXDxCn.js +222 -0
- package/dist/components/status-and-feedback/activity-indicator/activity-indicator.d.ts.map +1 -1
- package/dist/components/status-and-feedback/activity-indicator/activity-indicator.js +4 -3
- package/dist/components/status-and-feedback/activity-indicator/activity-indicator.js.map +1 -1
- package/dist/components/status-and-feedback/activity-indicator/activity-indicator.styles.d.ts.map +1 -1
- package/dist/components/status-and-feedback/activity-indicator/activity-indicator.styles.js +0 -1
- package/dist/components/status-and-feedback/activity-indicator/activity-indicator.styles.js.map +1 -1
- package/dist/components/status-and-feedback/badge/badge.d.ts.map +1 -1
- package/dist/components/status-and-feedback/badge/badge.js +4 -3
- package/dist/components/status-and-feedback/badge/badge.js.map +1 -1
- package/dist/components/status-and-feedback/banner/banner.d.ts +0 -1
- package/dist/components/status-and-feedback/banner/banner.d.ts.map +1 -1
- package/dist/components/status-and-feedback/banner/banner.js +13 -13
- package/dist/components/status-and-feedback/banner/banner.js.map +1 -1
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.d.ts.map +1 -1
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.js +5 -4
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.js.map +1 -1
- package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.d.ts +1 -0
- package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.d.ts.map +1 -1
- package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.js +35 -4
- package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.js.map +1 -1
- package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.d.ts.map +1 -1
- package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.js +11 -0
- package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.js.map +1 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.d.ts.map +1 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.js +4 -3
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.js.map +1 -1
- package/dist/components/status-and-feedback/progress-bar/progress-bar.d.ts.map +1 -1
- package/dist/components/status-and-feedback/progress-bar/progress-bar.js +9 -8
- package/dist/components/status-and-feedback/progress-bar/progress-bar.js.map +1 -1
- package/dist/components/status-and-feedback/progress-bar/progress-bar.styles.d.ts.map +1 -1
- package/dist/components/status-and-feedback/progress-bar/progress-bar.styles.js +0 -6
- package/dist/components/status-and-feedback/progress-bar/progress-bar.styles.js.map +1 -1
- package/dist/components/status-and-feedback/progress-circle/progress-circle.d.ts.map +1 -1
- package/dist/components/status-and-feedback/progress-circle/progress-circle.js +8 -7
- package/dist/components/status-and-feedback/progress-circle/progress-circle.js.map +1 -1
- package/dist/components/status-and-feedback/progress-circle/progress-circle.styles.d.ts.map +1 -1
- package/dist/components/status-and-feedback/progress-circle/progress-circle.styles.js +0 -2
- package/dist/components/status-and-feedback/progress-circle/progress-circle.styles.js.map +1 -1
- package/dist/components/status-and-feedback/status-bar/status-bar.d.ts.map +1 -1
- package/dist/components/status-and-feedback/status-bar/status-bar.js +3 -2
- package/dist/components/status-and-feedback/status-bar/status-bar.js.map +1 -1
- package/dist/components/toml-BOuWGMcf.js +76 -0
- package/dist/css/fouc.css +30 -0
- package/dist/css/global.css +1 -0
- package/dist/css/rich-text.css +0 -5
- package/dist/css/settings.css +25 -10
- package/dist/utilities/codemirror/codemirror-element.d.ts +66 -0
- package/dist/utilities/codemirror/codemirror-element.d.ts.map +1 -0
- package/dist/utilities/codemirror/codemirror-element.js +121 -0
- package/dist/utilities/codemirror/codemirror-element.js.map +1 -0
- package/dist/utilities/codemirror/languages.d.ts +4 -0
- package/dist/utilities/codemirror/languages.d.ts.map +1 -0
- package/dist/utilities/codemirror/languages.js +39 -0
- package/dist/utilities/codemirror/languages.js.map +1 -0
- package/dist/utilities/codemirror/theme.d.ts +4 -0
- package/dist/utilities/codemirror/theme.d.ts.map +1 -0
- package/dist/utilities/codemirror/theme.js +84 -0
- package/dist/utilities/codemirror/theme.js.map +1 -0
- package/dist/utilities/dismiss-from-title-bar.d.ts +19 -0
- package/dist/utilities/dismiss-from-title-bar.d.ts.map +1 -0
- package/dist/utilities/dismiss-from-title-bar.js +21 -0
- package/dist/utilities/dismiss-from-title-bar.js.map +1 -0
- package/dist/utilities/reflect-non-default.d.ts +30 -0
- package/dist/utilities/reflect-non-default.d.ts.map +1 -0
- package/dist/utilities/reflect-non-default.js +34 -0
- package/dist/utilities/reflect-non-default.js.map +1 -0
- package/package.json +92 -68
- package/dist/components/index-BNhqNvDd.js +0 -36784
- package/dist/components/inputs/token/token.d.ts +0 -42
- package/dist/components/inputs/token/token.d.ts.map +0 -1
- package/dist/components/inputs/token/token.js +0 -86
- package/dist/components/inputs/token/token.js.map +0 -1
- package/dist/components/inputs/token/token.styles.d.ts.map +0 -1
- package/dist/components/inputs/token/token.styles.js +0 -142
- package/dist/components/inputs/token/token.styles.js.map +0 -1
- package/dist/components/inputs/token/token.template.d.ts +0 -4
- package/dist/components/inputs/token/token.template.d.ts.map +0 -1
- package/dist/components/inputs/token/token.template.js +0 -41
- package/dist/components/inputs/token/token.template.js.map +0 -1
- package/dist/components/prism-bash-vbqaw3JR.js +0 -226
- package/dist/components/prism-css-B93tXdOU.js +0 -59
- package/dist/components/prism-gherkin-CMPYyXOQ.js +0 -82
- package/dist/components/prism-javascript-DeC_17Pw.js +0 -140
- package/dist/components/prism-json-DIMpow89.js +0 -25
- package/dist/components/prism-markdown-D-uFBkiz.js +0 -339
- package/dist/components/prism-markup-DfJYPYHA.js +0 -177
- package/dist/components/prism-python--N285k7w.js +0 -99
- package/dist/components/prism-rust-Cnm1tSdo.js +0 -157
- package/dist/components/prism-sql-BGqCBMyJ.js +0 -33
- package/dist/components/prism-toml-Ubdq-a5x.js +0 -45
- package/dist/components/prism-typescript-BPJAiB1s.js +0 -87
- package/dist/components/prism-yaml-DO0f9pf6.js +0 -71
- /package/dist/components/{inputs → content}/token/token.styles.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-editor.js","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ViewPlugin, type DecorationSet } from '@codemirror/view';
|
|
2
|
+
import '../../content/icon/icon.js';
|
|
3
|
+
/** Builds the badge's accessible label from a link's destination. Supplied by the
|
|
4
|
+
* host so the string is localizable; defaults to Dutch at the call site. */
|
|
5
|
+
export type OpenInNewTabLabel = (url: string) => string;
|
|
6
|
+
/** Only follow schemes that are safe to put in a clickable anchor. The editor's
|
|
7
|
+
* value is consumer/document-supplied Markdown, so a `[text](javascript:…)` (or
|
|
8
|
+
* `data:` / `vbscript:`) link must never become a real, clickable badge —
|
|
9
|
+
* `target="_blank"` does NOT neutralise those; they execute in the current
|
|
10
|
+
* document. A URL with no scheme (relative, `#anchor`, `?query`, `//host`) just
|
|
11
|
+
* navigates, so it is allowed; a schemed URL must be http(s)/mailto/tel. */
|
|
12
|
+
export declare function isSafeHref(href: string): boolean;
|
|
13
|
+
/** Adds an "open link" badge after every real link in the viewport. `label` builds
|
|
14
|
+
* the badge's accessible label from the destination, so the host can localize it. */
|
|
15
|
+
export declare function linkOpenBadge(label: OpenInNewTabLabel): ViewPlugin<{
|
|
16
|
+
decorations: DecorationSet;
|
|
17
|
+
}>;
|
|
18
|
+
//# sourceMappingURL=text-editor.links.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-editor.links.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.links.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,UAAU,EAEV,KAAK,aAAa,EAGlB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,4BAA4B,CAAC;AAMpC;6EAC6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AAqExD;;;;;6EAK6E;AAC7E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYhD;AA0CD;sFACsF;AACtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAAC;IAAE,WAAW,EAAE,aAAa,CAAA;CAAE,CAAC,CAelG"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { Decoration, ViewPlugin, WidgetType, } from '@codemirror/view';
|
|
2
|
+
import { RangeSetBuilder } from '@codemirror/state';
|
|
3
|
+
import { syntaxTree } from '@codemirror/language';
|
|
4
|
+
import { MENTION_HREF_PREFIX } from './text-editor.mentions.js';
|
|
5
|
+
import { textCaretBox } from './text-editor.caret.js';
|
|
6
|
+
import '../../content/icon/icon.js';
|
|
7
|
+
class LinkOpenWidget extends WidgetType {
|
|
8
|
+
constructor(href, label) {
|
|
9
|
+
super();
|
|
10
|
+
this.href = href;
|
|
11
|
+
this.label = label;
|
|
12
|
+
}
|
|
13
|
+
eq(other) {
|
|
14
|
+
return other.href === this.href;
|
|
15
|
+
}
|
|
16
|
+
toDOM() {
|
|
17
|
+
const anchor = document.createElement('a');
|
|
18
|
+
anchor.className = 'cm-link-badge';
|
|
19
|
+
anchor.href = this.href;
|
|
20
|
+
anchor.target = '_blank';
|
|
21
|
+
anchor.rel = 'noopener noreferrer';
|
|
22
|
+
anchor.setAttribute('aria-label', this.label(this.href));
|
|
23
|
+
const icon = document.createElement('nldd-icon');
|
|
24
|
+
icon.setAttribute('name', 'external-link');
|
|
25
|
+
icon.setAttribute('aria-hidden', 'true');
|
|
26
|
+
anchor.append(icon);
|
|
27
|
+
// The editor steals mousedown to place the caret; keep the click ours.
|
|
28
|
+
anchor.addEventListener('mousedown', (event) => event.preventDefault());
|
|
29
|
+
return anchor;
|
|
30
|
+
}
|
|
31
|
+
ignoreEvent() {
|
|
32
|
+
return true; // let the anchor handle its own click
|
|
33
|
+
}
|
|
34
|
+
/** Keep the caret at the badge's right edge text-height, not the badge's own box
|
|
35
|
+
* height (which is taller and would flip with the cursor's arrival direction). */
|
|
36
|
+
coordsAt(dom) {
|
|
37
|
+
const badge = dom.getBoundingClientRect();
|
|
38
|
+
const box = textCaretBox(dom) ?? { top: badge.top, bottom: badge.bottom };
|
|
39
|
+
const x = badge.right + parseFloat(getComputedStyle(dom).marginRight);
|
|
40
|
+
return { left: x, right: x, top: box.top, bottom: box.bottom };
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Normalise a Markdown reference label for matching: drop the surrounding
|
|
44
|
+
* brackets, collapse internal whitespace and lowercase (labels are
|
|
45
|
+
* case-insensitive per CommonMark). */
|
|
46
|
+
function normaliseLabel(raw) {
|
|
47
|
+
return raw.replace(/^\[|\]$/g, '').trim().replace(/\s+/g, ' ').toLowerCase();
|
|
48
|
+
}
|
|
49
|
+
/** Map of reference label → URL, from every link reference definition
|
|
50
|
+
* (`[ref]: https://…`) in the doc, so reference-style links can resolve their
|
|
51
|
+
* destination. Definitions usually sit at the bottom, so this scans the whole
|
|
52
|
+
* tree, not just the viewport. */
|
|
53
|
+
function referenceDefs(state) {
|
|
54
|
+
const defs = new Map();
|
|
55
|
+
syntaxTree(state).iterate({
|
|
56
|
+
enter: (node) => {
|
|
57
|
+
if (node.name !== 'LinkReference')
|
|
58
|
+
return;
|
|
59
|
+
let label = null;
|
|
60
|
+
let url = null;
|
|
61
|
+
for (let c = node.node.firstChild; c; c = c.nextSibling) {
|
|
62
|
+
if (c.name === 'LinkLabel')
|
|
63
|
+
label = normaliseLabel(state.sliceDoc(c.from, c.to));
|
|
64
|
+
else if (c.name === 'URL')
|
|
65
|
+
url = state.sliceDoc(c.from, c.to);
|
|
66
|
+
}
|
|
67
|
+
if (label && url && !defs.has(label))
|
|
68
|
+
defs.set(label, url);
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
return defs;
|
|
72
|
+
}
|
|
73
|
+
/** Only follow schemes that are safe to put in a clickable anchor. The editor's
|
|
74
|
+
* value is consumer/document-supplied Markdown, so a `[text](javascript:…)` (or
|
|
75
|
+
* `data:` / `vbscript:`) link must never become a real, clickable badge —
|
|
76
|
+
* `target="_blank"` does NOT neutralise those; they execute in the current
|
|
77
|
+
* document. A URL with no scheme (relative, `#anchor`, `?query`, `//host`) just
|
|
78
|
+
* navigates, so it is allowed; a schemed URL must be http(s)/mailto/tel. */
|
|
79
|
+
export function isSafeHref(href) {
|
|
80
|
+
// Read the scheme through the SAME normalisation the URL parser applies, or a
|
|
81
|
+
// disguised scheme slips through as "relative": the parser strips leading C0
|
|
82
|
+
// controls + space and removes tab/newline/CR anywhere, so `javascript:`
|
|
83
|
+
// and `java\tscript:` both resolve to `javascript:` even though the raw string
|
|
84
|
+
// fails the scheme regex. Drop every control/space char before testing (only for
|
|
85
|
+
// the safety decision — the real href is untouched); a scheme that survives must
|
|
86
|
+
// be in the allowlist.
|
|
87
|
+
// eslint-disable-next-line no-control-regex -- matching control chars is the point: they are the bypass vectors the URL parser strips before resolving the scheme.
|
|
88
|
+
const normalised = href.replace(/[\u0000-\u0020\u007f-\u009f]/g, '');
|
|
89
|
+
if (!/^[a-z][a-z0-9+.-]*:/i.test(normalised))
|
|
90
|
+
return true; // no scheme → relative, safe
|
|
91
|
+
return /^(?:https?|mailto|tel):/i.test(normalised);
|
|
92
|
+
}
|
|
93
|
+
/** The link's destination, or null for a mention, an unsafe scheme, or a link
|
|
94
|
+
* without a resolvable URL. Handles both inline links (`[text](url)`) and
|
|
95
|
+
* reference-style links (`[text][ref]`), resolving the latter against `refs`. */
|
|
96
|
+
function hrefOf(state, link, refs) {
|
|
97
|
+
let label = null;
|
|
98
|
+
for (let child = link.firstChild; child; child = child.nextSibling) {
|
|
99
|
+
if (child.name === 'URL') {
|
|
100
|
+
const href = state.sliceDoc(child.from, child.to);
|
|
101
|
+
return href && !href.startsWith(MENTION_HREF_PREFIX) && isSafeHref(href) ? href : null;
|
|
102
|
+
}
|
|
103
|
+
if (child.name === 'LinkLabel')
|
|
104
|
+
label = normaliseLabel(state.sliceDoc(child.from, child.to));
|
|
105
|
+
}
|
|
106
|
+
if (label) {
|
|
107
|
+
const href = refs.get(label);
|
|
108
|
+
return href && !href.startsWith(MENTION_HREF_PREFIX) && isSafeHref(href) ? href : null;
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
function buildBadges(view, label) {
|
|
113
|
+
const builder = new RangeSetBuilder();
|
|
114
|
+
const tree = syntaxTree(view.state);
|
|
115
|
+
const refs = referenceDefs(view.state);
|
|
116
|
+
for (const { from, to } of view.visibleRanges) {
|
|
117
|
+
tree.iterate({
|
|
118
|
+
from,
|
|
119
|
+
to,
|
|
120
|
+
enter: (node) => {
|
|
121
|
+
if (node.name !== 'Link')
|
|
122
|
+
return;
|
|
123
|
+
const href = hrefOf(view.state, node.node, refs);
|
|
124
|
+
// side -1 draws the badge before the caret, so the caret at the link end
|
|
125
|
+
// sits to the RIGHT of the badge — text typed there lands after it, not
|
|
126
|
+
// wedged between the link and the badge.
|
|
127
|
+
if (href)
|
|
128
|
+
builder.add(node.to, node.to, Decoration.widget({ widget: new LinkOpenWidget(href, label), side: -1 }));
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
return builder.finish();
|
|
133
|
+
}
|
|
134
|
+
/** Adds an "open link" badge after every real link in the viewport. `label` builds
|
|
135
|
+
* the badge's accessible label from the destination, so the host can localize it. */
|
|
136
|
+
export function linkOpenBadge(label) {
|
|
137
|
+
return ViewPlugin.fromClass(class {
|
|
138
|
+
constructor(view) {
|
|
139
|
+
this.decorations = buildBadges(view, label);
|
|
140
|
+
}
|
|
141
|
+
update(update) {
|
|
142
|
+
if (update.docChanged || update.viewportChanged)
|
|
143
|
+
this.decorations = buildBadges(update.view, label);
|
|
144
|
+
}
|
|
145
|
+
}, { decorations: (plugin) => plugin.decorations });
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=text-editor.links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-editor.links.js","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.links.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type EditorState, type Extension } from '@codemirror/state';
|
|
2
|
+
import '../../content/icon/icon.js';
|
|
3
|
+
/** Markdown language (with GFM) plus the hybrid inline-styling decorations. */
|
|
4
|
+
export declare const markdownEditing: Extension;
|
|
5
|
+
/** The mention whose collapsed token contains `pos` (used to select it on click). */
|
|
6
|
+
export declare function mentionRangeAt(state: EditorState, pos: number): {
|
|
7
|
+
from: number;
|
|
8
|
+
to: number;
|
|
9
|
+
} | null;
|
|
10
|
+
/** A mention token ending exactly at `pos` (cursor just after it — backspace). */
|
|
11
|
+
export declare function mentionRangeEndingAt(state: EditorState, pos: number): {
|
|
12
|
+
from: number;
|
|
13
|
+
to: number;
|
|
14
|
+
} | null;
|
|
15
|
+
/** A mention token starting exactly at `pos` (cursor just before it — delete). */
|
|
16
|
+
export declare function mentionRangeStartingAt(state: EditorState, pos: number): {
|
|
17
|
+
from: number;
|
|
18
|
+
to: number;
|
|
19
|
+
} | null;
|
|
20
|
+
//# sourceMappingURL=text-editor.markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-editor.markdown.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.markdown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAGnG,OAAO,4BAA4B,CAAC;AAkUpC,+EAA+E;AAC/E,eAAO,MAAM,eAAe,EAAE,SAS7B,CAAC;AAeF,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGnG;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGzG;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAG3G"}
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
import { ViewPlugin, Decoration, EditorView, WidgetType } from '@codemirror/view';
|
|
2
|
+
import { syntaxTree } from '@codemirror/language';
|
|
3
|
+
import { markdown } from '@codemirror/lang-markdown';
|
|
4
|
+
import { GFM } from '@lezer/markdown';
|
|
5
|
+
import { Prec, StateField } from '@codemirror/state';
|
|
6
|
+
import { MENTION_HREF_PREFIX, unescapeMentionLabel, decodeMentionId } from './text-editor.mentions.js';
|
|
7
|
+
import '../../content/icon/icon.js';
|
|
8
|
+
/* Hybrid markdown rendering: the document stays plain markdown text, but the
|
|
9
|
+
* formatting is shown inline (bold is bold, headings are larger, links are
|
|
10
|
+
* coloured) while the syntax markers stay visible, only dimmed — the iA Writer
|
|
11
|
+
* / Kirby approach. Implemented as decorations over the Lezer syntax tree. */
|
|
12
|
+
// Lezer node name → CSS class applied to that node's whole range (the content).
|
|
13
|
+
const NODE_CLASS = {
|
|
14
|
+
ATXHeading1: 'cm-md-h1',
|
|
15
|
+
ATXHeading2: 'cm-md-h2',
|
|
16
|
+
ATXHeading3: 'cm-md-h3',
|
|
17
|
+
ATXHeading4: 'cm-md-h4',
|
|
18
|
+
ATXHeading5: 'cm-md-h5',
|
|
19
|
+
ATXHeading6: 'cm-md-h6',
|
|
20
|
+
StrongEmphasis: 'cm-md-strong',
|
|
21
|
+
Emphasis: 'cm-md-emphasis',
|
|
22
|
+
Strikethrough: 'cm-md-strike',
|
|
23
|
+
InlineCode: 'cm-md-code',
|
|
24
|
+
// Fenced/indented code blocks are tinted per content line (see line decorations
|
|
25
|
+
// below), not here, so the whole block reads as one filled surface.
|
|
26
|
+
URL: 'cm-md-url',
|
|
27
|
+
Blockquote: 'cm-md-quote',
|
|
28
|
+
};
|
|
29
|
+
// Syntax markers — kept visible but dimmed so the source stays legible.
|
|
30
|
+
const MARK_NODES = new Set([
|
|
31
|
+
'HeaderMark', 'EmphasisMark', 'StrikethroughMark', 'CodeMark',
|
|
32
|
+
'QuoteMark', 'ListMark', 'LinkMark',
|
|
33
|
+
]);
|
|
34
|
+
const dimDeco = Decoration.mark({ class: 'cm-md-mark' });
|
|
35
|
+
const classDecoCache = {};
|
|
36
|
+
function classDeco(cls) {
|
|
37
|
+
// inclusiveEnd so a formatting run (heading, bold, …) wraps a trailing widget at
|
|
38
|
+
// its end — e.g. an annotation badge whose annotation ends the run — instead of
|
|
39
|
+
// letting that widget fall outside the run's font context.
|
|
40
|
+
return (classDecoCache[cls] ?? (classDecoCache[cls] = Decoration.mark({ class: cls, inclusiveEnd: true })));
|
|
41
|
+
}
|
|
42
|
+
// A code block is tinted as full-width line backgrounds — one filled surface — so
|
|
43
|
+
// the fence lines stay clean and the content reads as a block, not per-word chips.
|
|
44
|
+
// The first/last content lines round the top/bottom corners.
|
|
45
|
+
const codeblockLine = Decoration.line({ class: 'cm-md-codeblock' });
|
|
46
|
+
const codeblockFirstLine = Decoration.line({ class: 'cm-md-codeblock-first' });
|
|
47
|
+
const codeblockLastLine = Decoration.line({ class: 'cm-md-codeblock-last' });
|
|
48
|
+
// Whole-block selection: recolours the full-width line background (padding and
|
|
49
|
+
// rounded corners included), so a fully selected block lights up as one surface
|
|
50
|
+
// — the block analogue of a fully selected inline-code / annotation token.
|
|
51
|
+
const codeblockSelectedLine = Decoration.line({ class: 'cm-md-codeblock-line-selected' });
|
|
52
|
+
function tintCodeLines(state, lineNumbers, sel, ranges) {
|
|
53
|
+
if (lineNumbers.length === 0)
|
|
54
|
+
return;
|
|
55
|
+
// The block is "fully selected" when the selection spans from the first content
|
|
56
|
+
// line's start through the last content line's end (it may reach further). Then
|
|
57
|
+
// every line background lights up; otherwise only the selected text slice does.
|
|
58
|
+
const firstLine = state.doc.line(lineNumbers[0]);
|
|
59
|
+
const lastLine = state.doc.line(lineNumbers[lineNumbers.length - 1]);
|
|
60
|
+
const blockFullySelected = !sel.empty && sel.from <= firstLine.from && sel.to >= lastLine.to;
|
|
61
|
+
lineNumbers.forEach((ln, index) => {
|
|
62
|
+
const line = state.doc.line(ln);
|
|
63
|
+
ranges.push(codeblockLine.range(line.from));
|
|
64
|
+
if (index === 0)
|
|
65
|
+
ranges.push(codeblockFirstLine.range(line.from));
|
|
66
|
+
if (index === lineNumbers.length - 1)
|
|
67
|
+
ranges.push(codeblockLastLine.range(line.from));
|
|
68
|
+
if (blockFullySelected) {
|
|
69
|
+
ranges.push(codeblockSelectedLine.range(line.from));
|
|
70
|
+
}
|
|
71
|
+
else if (!sel.empty) {
|
|
72
|
+
// Darken the selected slice of this line (drawSelection hides ::selection).
|
|
73
|
+
const f = Math.max(line.from, sel.from);
|
|
74
|
+
const t = Math.min(line.to, sel.to);
|
|
75
|
+
if (t > f)
|
|
76
|
+
ranges.push(classDeco('cm-md-codeblock-selected').range(f, t));
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
// Indented code block (no fences): every line in the node range is content.
|
|
81
|
+
function addCodeblockLines(state, from, to, sel, ranges) {
|
|
82
|
+
const first = state.doc.lineAt(from).number;
|
|
83
|
+
const last = state.doc.lineAt(Math.max(from, to - 1)).number;
|
|
84
|
+
const lines = [];
|
|
85
|
+
for (let ln = first; ln <= last; ln++)
|
|
86
|
+
lines.push(ln);
|
|
87
|
+
tintCodeLines(state, lines, sel, ranges);
|
|
88
|
+
}
|
|
89
|
+
// Fenced block: tint the content lines only — the ``` fence lines (and the info
|
|
90
|
+
// string) stay clean. Anchored on the whole FencedCode node, not its CodeText child,
|
|
91
|
+
// so a trailing empty line inside the fence is grey right away; CodeText doesn't cover
|
|
92
|
+
// that blank line, so it used to stay untinted until a keystroke grew the node.
|
|
93
|
+
function addFencedCodeLines(state, node, sel, ranges) {
|
|
94
|
+
const fenceLines = new Set();
|
|
95
|
+
for (let child = node.firstChild; child; child = child.nextSibling) {
|
|
96
|
+
if (child.name === 'CodeMark')
|
|
97
|
+
fenceLines.add(state.doc.lineAt(child.from).number);
|
|
98
|
+
}
|
|
99
|
+
const first = state.doc.lineAt(node.from).number;
|
|
100
|
+
const last = state.doc.lineAt(Math.max(node.from, node.to - 1)).number;
|
|
101
|
+
const lines = [];
|
|
102
|
+
for (let ln = first; ln <= last; ln++)
|
|
103
|
+
if (!fenceLines.has(ln))
|
|
104
|
+
lines.push(ln);
|
|
105
|
+
tintCodeLines(state, lines, sel, ranges);
|
|
106
|
+
}
|
|
107
|
+
function linkTextRange(link) {
|
|
108
|
+
const marks = [];
|
|
109
|
+
for (let child = link.firstChild; child; child = child.nextSibling) {
|
|
110
|
+
if (child.name === 'LinkMark')
|
|
111
|
+
marks.push(child);
|
|
112
|
+
}
|
|
113
|
+
if (marks.length < 2)
|
|
114
|
+
return null;
|
|
115
|
+
const from = marks[0].to; // after the opening '['
|
|
116
|
+
const to = marks[1].from; // before the closing ']'
|
|
117
|
+
return to > from ? { from, to } : null;
|
|
118
|
+
}
|
|
119
|
+
// A mention link (`[@Naam](user:id)`) gets a token on its @Naam text; a normal
|
|
120
|
+
// link is coloured across its whole range. Either way the markers and URL are
|
|
121
|
+
// still visited as children and dimmed.
|
|
122
|
+
function decorateLink(state, link, ranges) {
|
|
123
|
+
let url = null;
|
|
124
|
+
for (let child = link.firstChild; child; child = child.nextSibling) {
|
|
125
|
+
if (child.name === 'URL') {
|
|
126
|
+
url = child;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
const isMention = url !== null && state.sliceDoc(url.from, url.to).startsWith(MENTION_HREF_PREFIX);
|
|
131
|
+
if (isMention) {
|
|
132
|
+
const text = linkTextRange(link);
|
|
133
|
+
if (text)
|
|
134
|
+
ranges.push(classDeco('cm-md-mention').range(text.from, text.to));
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
ranges.push(classDeco('cm-md-link').range(link.from, link.to));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Inline/content styling — no layout change, so a viewport-scoped plugin.
|
|
141
|
+
function buildMarkDecorations(view) {
|
|
142
|
+
const ranges = [];
|
|
143
|
+
const sel = view.state.selection.main;
|
|
144
|
+
for (const { from, to } of view.visibleRanges) {
|
|
145
|
+
syntaxTree(view.state).iterate({
|
|
146
|
+
from,
|
|
147
|
+
to,
|
|
148
|
+
enter: (node) => {
|
|
149
|
+
if (node.from >= node.to)
|
|
150
|
+
return;
|
|
151
|
+
if (node.name === 'Link') {
|
|
152
|
+
decorateLink(view.state, node.node, ranges);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
// Fenced blocks tint from the FencedCode node (covers blank lines too),
|
|
156
|
+
// indented blocks from CodeBlock. Neither returns false, so the fence
|
|
157
|
+
// CodeMarks are still visited and dimmed as children.
|
|
158
|
+
if (node.name === 'FencedCode') {
|
|
159
|
+
addFencedCodeLines(view.state, node.node, sel, ranges);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (node.name === 'CodeBlock') {
|
|
163
|
+
addCodeblockLines(view.state, node.from, node.to, sel, ranges);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const cls = NODE_CLASS[node.name];
|
|
167
|
+
if (cls) {
|
|
168
|
+
// Inline code darkens on selection (drawSelection hides the native
|
|
169
|
+
// ::selection). A *fully* selected chip recolours the base element
|
|
170
|
+
// itself — one mark with both classes — so it keeps its padding and
|
|
171
|
+
// rounded corners, like a selected mention/annotation token. The
|
|
172
|
+
// padless overlay slice (used only for a partial selection below)
|
|
173
|
+
// would instead square off the chip.
|
|
174
|
+
const codeFullySelected = cls === 'cm-md-code' && !sel.empty && sel.from <= node.from && sel.to >= node.to;
|
|
175
|
+
if (codeFullySelected) {
|
|
176
|
+
ranges.push(classDeco('cm-md-code cm-md-code-selected').range(node.from, node.to));
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
ranges.push(classDeco(cls).range(node.from, node.to));
|
|
180
|
+
if (!sel.empty && cls === 'cm-md-code') {
|
|
181
|
+
const f = Math.max(node.from, sel.from);
|
|
182
|
+
const t = Math.min(node.to, sel.to);
|
|
183
|
+
if (t > f)
|
|
184
|
+
ranges.push(classDeco('cm-md-code-selected').range(f, t));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else if (node.name === 'ListMark' && /^[-*+]$/.test(view.state.sliceDoc(node.from, node.to)) && /^[ \t]/.test(view.state.sliceDoc(node.to, node.to + 1))) {
|
|
189
|
+
// A bullet marker (- * +) renders as a styled filled dot, but only once
|
|
190
|
+
// it's a real list item — immediately followed by a space. A lone "-"
|
|
191
|
+
// (before the space) falls through to the dimmed literal mark below, so
|
|
192
|
+
// typing "-" no longer flashes a bullet before a list exists. Ordered
|
|
193
|
+
// markers (1.) and other syntax also stay dimmed literal text.
|
|
194
|
+
ranges.push(classDeco('cm-md-mark cm-md-bullet').range(node.from, node.to));
|
|
195
|
+
}
|
|
196
|
+
else if (MARK_NODES.has(node.name)) {
|
|
197
|
+
ranges.push(dimDeco.range(node.from, node.to));
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
return Decoration.set(ranges, true);
|
|
203
|
+
}
|
|
204
|
+
const markDecorationPlugin = ViewPlugin.fromClass(class {
|
|
205
|
+
constructor(view) {
|
|
206
|
+
this.decorations = buildMarkDecorations(view);
|
|
207
|
+
}
|
|
208
|
+
update(update) {
|
|
209
|
+
// selectionSet too: the selected slice of a code span is tinted darker.
|
|
210
|
+
if (update.docChanged || update.viewportChanged || update.selectionSet) {
|
|
211
|
+
this.decorations = buildMarkDecorations(update.view);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}, { decorations: (plugin) => plugin.decorations });
|
|
215
|
+
/* Hanging indent: wrapped continuation lines of a list item or blockquote align
|
|
216
|
+
* under the first line's text. The leading marker prefix is rendered in
|
|
217
|
+
* monospace (cm-md-listprefix), so its width is exactly prefixLength × the mono
|
|
218
|
+
* advance (--_marker-advance). The indent uses that same product, so the first
|
|
219
|
+
* line's text and every wrapped line line up — no per-line measurement, and it
|
|
220
|
+
* holds in both the sans and mono body fonts. Layout-affecting → a StateField. */
|
|
221
|
+
const HANGING_RE = /^(\s*(?:[-*+]|\d+[.)])\s+|\s*>+\s?)/;
|
|
222
|
+
const prefixMonoDeco = Decoration.mark({ class: 'cm-md-listprefix' });
|
|
223
|
+
const hangingLineCache = {};
|
|
224
|
+
function hangingLineDeco(length) {
|
|
225
|
+
return (hangingLineCache[length] ?? (hangingLineCache[length] = Decoration.line({
|
|
226
|
+
attributes: {
|
|
227
|
+
style: `text-indent:calc(${length} * var(--_marker-advance) * -1);padding-left:calc(${length} * var(--_marker-advance))`,
|
|
228
|
+
},
|
|
229
|
+
})));
|
|
230
|
+
}
|
|
231
|
+
/** Whether `pos` sits inside a fenced or indented code block — where a leading
|
|
232
|
+
* `-`/`1.`/`>` is literal code, not a list or quote marker. */
|
|
233
|
+
function inCodeBlock(state, pos) {
|
|
234
|
+
for (let n = syntaxTree(state).resolveInner(pos, 1); n; n = n.parent) {
|
|
235
|
+
if (n.name === 'FencedCode' || n.name === 'CodeBlock')
|
|
236
|
+
return true;
|
|
237
|
+
}
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
function buildHangingIndent(state) {
|
|
241
|
+
const ranges = [];
|
|
242
|
+
for (let i = 1; i <= state.doc.lines; i++) {
|
|
243
|
+
const line = state.doc.line(i);
|
|
244
|
+
const match = line.text.match(HANGING_RE);
|
|
245
|
+
// Code-block lines are literal text: a leading marker isn't a list/quote, so it
|
|
246
|
+
// gets no hanging indent.
|
|
247
|
+
if (match && match[1].length && !inCodeBlock(state, line.from)) {
|
|
248
|
+
const length = match[1].length;
|
|
249
|
+
ranges.push(hangingLineDeco(length).range(line.from));
|
|
250
|
+
ranges.push(prefixMonoDeco.range(line.from, line.from + length));
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return Decoration.set(ranges, true);
|
|
254
|
+
}
|
|
255
|
+
const hangingIndentField = StateField.define({
|
|
256
|
+
create: (state) => buildHangingIndent(state),
|
|
257
|
+
update: (value, tr) => (tr.docChanged ? buildHangingIndent(tr.state) : value),
|
|
258
|
+
provide: (field) => EditorView.decorations.from(field),
|
|
259
|
+
});
|
|
260
|
+
/* @-mentions collapse fully: the whole `[@Naam](user:id)` token is replaced by
|
|
261
|
+
* an atomic token widget — the syntax is hidden, the id is protected, and the
|
|
262
|
+
* cursor steps over it (backspace removes the whole mention). */
|
|
263
|
+
class MentionWidget extends WidgetType {
|
|
264
|
+
constructor(label, id, selected) {
|
|
265
|
+
super();
|
|
266
|
+
this.label = label;
|
|
267
|
+
this.id = id;
|
|
268
|
+
this.selected = selected;
|
|
269
|
+
}
|
|
270
|
+
eq(other) {
|
|
271
|
+
return other.label === this.label && other.id === this.id && other.selected === this.selected;
|
|
272
|
+
}
|
|
273
|
+
toDOM() {
|
|
274
|
+
const token = document.createElement('span');
|
|
275
|
+
token.className = 'cm-md-mention-token';
|
|
276
|
+
token.setAttribute('data-user', this.id);
|
|
277
|
+
if (this.selected)
|
|
278
|
+
token.setAttribute('data-selected', '');
|
|
279
|
+
// The @ is rendered as the DS 'at' icon — a separate, vertically-centred
|
|
280
|
+
// prefix that aligns cleanly with the name.
|
|
281
|
+
const at = document.createElement('nldd-icon');
|
|
282
|
+
at.className = 'cm-md-mention-token-icon';
|
|
283
|
+
at.setAttribute('name', 'at');
|
|
284
|
+
at.setAttribute('aria-hidden', 'true');
|
|
285
|
+
const name = document.createElement('span');
|
|
286
|
+
name.textContent = this.label;
|
|
287
|
+
token.append(at, name);
|
|
288
|
+
return token;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
function buildMentionChips(state) {
|
|
292
|
+
const ranges = [];
|
|
293
|
+
const sel = state.selection.main;
|
|
294
|
+
syntaxTree(state).iterate({
|
|
295
|
+
enter: (node) => {
|
|
296
|
+
if (node.name !== 'Link')
|
|
297
|
+
return;
|
|
298
|
+
const link = node.node;
|
|
299
|
+
let url = null;
|
|
300
|
+
for (let child = link.firstChild; child; child = child.nextSibling) {
|
|
301
|
+
if (child.name === 'URL') {
|
|
302
|
+
url = child;
|
|
303
|
+
break;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
if (!url || !state.sliceDoc(url.from, url.to).startsWith(MENTION_HREF_PREFIX))
|
|
307
|
+
return;
|
|
308
|
+
const text = linkTextRange(link);
|
|
309
|
+
if (!text)
|
|
310
|
+
return;
|
|
311
|
+
const label = unescapeMentionLabel(state.sliceDoc(text.from, text.to).replace(/^@/, ''));
|
|
312
|
+
const id = decodeMentionId(state.sliceDoc(url.from, url.to).slice(MENTION_HREF_PREFIX.length));
|
|
313
|
+
const selected = !sel.empty && sel.from <= link.from && sel.to >= link.to;
|
|
314
|
+
ranges.push(Decoration.replace({ widget: new MentionWidget(label, id, selected) }).range(link.from, link.to));
|
|
315
|
+
},
|
|
316
|
+
});
|
|
317
|
+
return Decoration.set(ranges, true);
|
|
318
|
+
}
|
|
319
|
+
const mentionChipField = StateField.define({
|
|
320
|
+
create: (state) => buildMentionChips(state),
|
|
321
|
+
// Rebuild on doc changes and on selection changes (the latter drives the
|
|
322
|
+
// selected/darker state of a covered mention).
|
|
323
|
+
update: (value, tr) => (tr.docChanged || !tr.startState.selection.eq(tr.state.selection) ? buildMentionChips(tr.state) : value),
|
|
324
|
+
provide: (field) => EditorView.decorations.from(field),
|
|
325
|
+
});
|
|
326
|
+
// Treat each token as one unit so the cursor steps over it and backspace removes
|
|
327
|
+
// the whole mention rather than breaking the hidden (user:id) syntax.
|
|
328
|
+
const mentionAtomicRanges = EditorView.atomicRanges.of((view) => view.state.field(mentionChipField, false) ?? Decoration.none);
|
|
329
|
+
/** Markdown language (with GFM) plus the hybrid inline-styling decorations. */
|
|
330
|
+
export const markdownEditing = [
|
|
331
|
+
markdown({ extensions: GFM }),
|
|
332
|
+
markDecorationPlugin,
|
|
333
|
+
hangingIndentField,
|
|
334
|
+
// Prec.highest keeps the mention chip the innermost decoration, so it nests inside
|
|
335
|
+
// a heading/bold run and inherits its font (scaling with it) instead of sitting at
|
|
336
|
+
// the base size as an outer sibling.
|
|
337
|
+
Prec.highest(mentionChipField),
|
|
338
|
+
mentionAtomicRanges,
|
|
339
|
+
];
|
|
340
|
+
// The mention Link node at `pos` (resolving toward `side`), or null.
|
|
341
|
+
function mentionLinkAt(state, pos, side) {
|
|
342
|
+
for (let node = syntaxTree(state).resolveInner(pos, side); node; node = node.parent) {
|
|
343
|
+
if (node.name !== 'Link')
|
|
344
|
+
continue;
|
|
345
|
+
let url = null;
|
|
346
|
+
for (let child = node.firstChild; child; child = child.nextSibling) {
|
|
347
|
+
if (child.name === 'URL') {
|
|
348
|
+
url = child;
|
|
349
|
+
break;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
if (url && state.sliceDoc(url.from, url.to).startsWith(MENTION_HREF_PREFIX))
|
|
353
|
+
return node;
|
|
354
|
+
}
|
|
355
|
+
return null;
|
|
356
|
+
}
|
|
357
|
+
/** The mention whose collapsed token contains `pos` (used to select it on click). */
|
|
358
|
+
export function mentionRangeAt(state, pos) {
|
|
359
|
+
const link = mentionLinkAt(state, pos, 1);
|
|
360
|
+
return link ? { from: link.from, to: link.to } : null;
|
|
361
|
+
}
|
|
362
|
+
/** A mention token ending exactly at `pos` (cursor just after it — backspace). */
|
|
363
|
+
export function mentionRangeEndingAt(state, pos) {
|
|
364
|
+
const link = mentionLinkAt(state, pos, -1);
|
|
365
|
+
return link && link.to === pos ? { from: link.from, to: link.to } : null;
|
|
366
|
+
}
|
|
367
|
+
/** A mention token starting exactly at `pos` (cursor just before it — delete). */
|
|
368
|
+
export function mentionRangeStartingAt(state, pos) {
|
|
369
|
+
const link = mentionLinkAt(state, pos, 1);
|
|
370
|
+
return link && link.from === pos ? { from: link.from, to: link.to } : null;
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=text-editor.markdown.js.map
|