@nldd/design-system 0.8.63 → 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/assets/styles/{slotted-reset.d.ts → style-resets.d.ts} +1 -1
- package/dist/assets/styles/style-resets.d.ts.map +1 -0
- package/dist/assets/styles/{slotted-reset.fixtures.d.ts → style-resets.fixtures.d.ts} +4 -4
- package/dist/assets/styles/style-resets.fixtures.d.ts.map +1 -0
- package/dist/assets/styles/{slotted-reset.fixtures.js → style-resets.fixtures.js} +4 -4
- package/dist/assets/styles/style-resets.fixtures.js.map +1 -0
- package/dist/assets/styles/{slotted-reset.js → style-resets.js} +1 -1
- package/dist/assets/styles/style-resets.js.map +1 -0
- 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 +16 -12
- 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-bar/button-bar.styles.d.ts.map +1 -1
- package/dist/components/actions/button-bar/button-bar.styles.js +3 -0
- package/dist/components/actions/button-bar/button-bar.styles.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/button-group/button-group.styles.d.ts.map +1 -1
- package/dist/components/actions/button-group/button-group.styles.js +3 -0
- package/dist/components/actions/button-group/button-group.styles.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 +19 -11
- 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 +12 -1
- 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/split-button/split-button.styles.d.ts.map +1 -1
- package/dist/components/actions/split-button/split-button.styles.js +4 -1
- package/dist/components/actions/split-button/split-button.styles.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 +7 -13
- package/dist/components/actions/toolbar/toolbar.styles.js.map +1 -1
- package/dist/components/components.js +104 -101
- package/dist/components/content/blockquote/blockquote.styles.js +4 -4
- 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/byline/byline.styles.d.ts.map +1 -1
- package/dist/components/content/byline/byline.styles.js +4 -1
- package/dist/components/content/byline/byline.styles.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 +37 -93
- 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 +23 -2
- 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/icon/icon.styles.d.ts.map +1 -1
- package/dist/components/content/icon/icon.styles.js +3 -0
- package/dist/components/content/icon/icon.styles.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 +6 -7
- 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 +9 -2
- 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/tag/tag.styles.d.ts.map +1 -1
- package/dist/components/content/tag/tag.styles.js +4 -1
- package/dist/components/content/tag/tag.styles.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/title/title.styles.d.ts.map +1 -1
- package/dist/components/content/title/title.styles.js +4 -1
- package/dist/components/content/title/title.styles.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 +15 -1
- package/dist/components/content/tooltip/tooltip.styles.js.map +1 -1
- package/dist/components/forms/form-actions/form-actions.styles.d.ts.map +1 -1
- package/dist/components/forms/form-actions/form-actions.styles.js +3 -0
- package/dist/components/forms/form-actions/form-actions.styles.js.map +1 -1
- package/dist/components/forms/form-field/form-field.styles.d.ts.map +1 -1
- package/dist/components/forms/form-field/form-field.styles.js +4 -1
- package/dist/components/forms/form-field/form-field.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 +21 -18
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +21 -18
- package/dist/components/index.js.map +1 -1
- package/dist/components/inputs/checkbox/checkbox.styles.d.ts.map +1 -1
- package/dist/components/inputs/checkbox/checkbox.styles.js +3 -0
- package/dist/components/inputs/checkbox/checkbox.styles.js.map +1 -1
- package/dist/components/inputs/checkbox-field/checkbox-field.styles.d.ts.map +1 -1
- package/dist/components/inputs/checkbox-field/checkbox-field.styles.js +4 -1
- package/dist/components/inputs/checkbox-field/checkbox-field.styles.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 +62 -47
- 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/combo-box/combo-box.styles.d.ts.map +1 -1
- package/dist/components/inputs/combo-box/combo-box.styles.js +4 -1
- package/dist/components/inputs/combo-box/combo-box.styles.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/dropdown/dropdown.styles.d.ts.map +1 -1
- package/dist/components/inputs/dropdown/dropdown.styles.js +4 -1
- package/dist/components/inputs/dropdown/dropdown.styles.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.js +12 -12
- 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/number-field/number-field.styles.d.ts.map +1 -1
- package/dist/components/inputs/number-field/number-field.styles.js +4 -1
- package/dist/components/inputs/number-field/number-field.styles.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/password-field/password-field.styles.d.ts.map +1 -1
- package/dist/components/inputs/password-field/password-field.styles.js +4 -1
- package/dist/components/inputs/password-field/password-field.styles.js.map +1 -1
- package/dist/components/inputs/radio-button/radio-button.styles.d.ts.map +1 -1
- package/dist/components/inputs/radio-button/radio-button.styles.js +3 -0
- package/dist/components/inputs/radio-button/radio-button.styles.js.map +1 -1
- package/dist/components/inputs/radio-button-field/radio-button-field.styles.d.ts.map +1 -1
- package/dist/components/inputs/radio-button-field/radio-button-field.styles.js +4 -1
- package/dist/components/inputs/radio-button-field/radio-button-field.styles.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/radio-button-group/radio-button-group.styles.d.ts.map +1 -1
- package/dist/components/inputs/radio-button-group/radio-button-group.styles.js +4 -1
- package/dist/components/inputs/radio-button-group/radio-button-group.styles.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/search-field/search-field.styles.d.ts.map +1 -1
- package/dist/components/inputs/search-field/search-field.styles.js +13 -1
- package/dist/components/inputs/search-field/search-field.styles.js.map +1 -1
- package/dist/components/inputs/search-field/search-field.template.d.ts.map +1 -1
- package/dist/components/inputs/search-field/search-field.template.js +47 -39
- package/dist/components/inputs/search-field/search-field.template.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 +74 -37
- 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/stepper/stepper.styles.d.ts.map +1 -1
- package/dist/components/inputs/stepper/stepper.styles.js +3 -0
- package/dist/components/inputs/stepper/stepper.styles.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/switch/switch.styles.d.ts.map +1 -1
- package/dist/components/inputs/switch/switch.styles.js +3 -0
- package/dist/components/inputs/switch/switch.styles.js.map +1 -1
- package/dist/components/inputs/switch-field/switch-field.styles.d.ts.map +1 -1
- package/dist/components/inputs/switch-field/switch-field.styles.js +4 -1
- package/dist/components/inputs/switch-field/switch-field.styles.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/text-field/text-field.styles.d.ts.map +1 -1
- package/dist/components/inputs/text-field/text-field.styles.js +4 -1
- package/dist/components/inputs/text-field/text-field.styles.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 +18 -11
- 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/toggle-button-group/toggle-button-group.styles.d.ts.map +1 -1
- package/dist/components/inputs/toggle-button-group/toggle-button-group.styles.js +3 -0
- package/dist/components/inputs/toggle-button-group/toggle-button-group.styles.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/app-view/app-view.styles.d.ts.map +1 -1
- package/dist/components/layout/app-view/app-view.styles.js +3 -0
- package/dist/components/layout/app-view/app-view.styles.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 +4 -6
- package/dist/components/layout/box/box.styles.js.map +1 -1
- package/dist/components/layout/card/card.d.ts +28 -2
- package/dist/components/layout/card/card.d.ts.map +1 -1
- package/dist/components/layout/card/card.i18n.d.ts +5 -0
- package/dist/components/layout/card/card.i18n.d.ts.map +1 -0
- package/dist/components/layout/card/card.i18n.js +4 -0
- package/dist/components/layout/card/card.i18n.js.map +1 -0
- package/dist/components/layout/card/card.js +54 -2
- package/dist/components/layout/card/card.js.map +1 -1
- package/dist/components/layout/card/card.styles.d.ts.map +1 -1
- package/dist/components/layout/card/card.styles.js +20 -0
- package/dist/components/layout/card/card.styles.js.map +1 -1
- package/dist/components/layout/card/card.template.d.ts.map +1 -1
- package/dist/components/layout/card/card.template.js +17 -1
- package/dist/components/layout/card/card.template.js.map +1 -1
- package/dist/components/layout/collection/collection.d.ts +10 -5
- package/dist/components/layout/collection/collection.d.ts.map +1 -1
- package/dist/components/layout/collection/collection.js +21 -5
- 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 +23 -19
- package/dist/components/layout/collection/collection.styles.js.map +1 -1
- package/dist/components/layout/container/container.d.ts +7 -3
- package/dist/components/layout/container/container.d.ts.map +1 -1
- package/dist/components/layout/container/container.js +15 -3
- package/dist/components/layout/container/container.js.map +1 -1
- package/dist/components/layout/container/container.styles.d.ts.map +1 -1
- package/dist/components/layout/container/container.styles.js +42 -1
- package/dist/components/layout/container/container.styles.js.map +1 -1
- package/dist/components/layout/divider/divider.styles.d.ts.map +1 -1
- package/dist/components/layout/divider/divider.styles.js +3 -0
- package/dist/components/layout/divider/divider.styles.js.map +1 -1
- package/dist/components/layout/page/page.styles.d.ts.map +1 -1
- package/dist/components/layout/page/page.styles.js +3 -0
- package/dist/components/layout/page/page.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-footer/page-footer.styles.d.ts.map +1 -1
- package/dist/components/layout/page-footer/page-footer.styles.js +4 -1
- package/dist/components/layout/page-footer/page-footer.styles.js.map +1 -1
- package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.styles.d.ts.map +1 -1
- package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.styles.js +3 -0
- package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.styles.js.map +1 -1
- package/dist/components/layout/page-sections/hero/hero.d.ts +29 -25
- package/dist/components/layout/page-sections/hero/hero.d.ts.map +1 -1
- package/dist/components/layout/page-sections/hero/hero.js +64 -76
- 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 +28 -163
- package/dist/components/layout/page-sections/hero/hero.styles.js.map +1 -1
- package/dist/components/layout/page-sections/hero/hero.template.d.ts.map +1 -1
- package/dist/components/layout/page-sections/hero/hero.template.js +13 -1
- package/dist/components/layout/page-sections/hero/hero.template.js.map +1 -1
- package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.styles.d.ts.map +1 -1
- package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.styles.js +3 -0
- package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.styles.js.map +1 -1
- package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.styles.d.ts.map +1 -1
- package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.styles.js +3 -0
- package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.styles.js.map +1 -1
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.d.ts +119 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.d.ts.map +1 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.i18n.d.ts +6 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.i18n.d.ts.map +1 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.i18n.js +5 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.i18n.js.map +1 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.js +219 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.js.map +1 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.styles.d.ts +2 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.styles.d.ts.map +1 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.styles.js +157 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.styles.js.map +1 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.template.d.ts +4 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.template.d.ts.map +1 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.template.js +57 -0
- package/dist/components/layout/page-sections/sidebar-section/sidebar-section.template.js.map +1 -0
- package/dist/components/layout/page-sections/simple-section/simple-section.styles.d.ts.map +1 -1
- package/dist/components/layout/page-sections/simple-section/simple-section.styles.js +3 -0
- package/dist/components/layout/page-sections/simple-section/simple-section.styles.js.map +1 -1
- package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.styles.d.ts.map +1 -1
- package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.styles.js +3 -0
- package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.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 +14 -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 +63 -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 +3 -1
- package/dist/components/layout/spacer/spacer.styles.js.map +1 -1
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.styles.d.ts.map +1 -1
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.styles.js +3 -0
- package/dist/components/layout/split-views/bar-split-view/bar-split-view.styles.js.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.d.ts +47 -19
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.d.ts.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.js +123 -73
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.js.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.styles.d.ts.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.styles.js +17 -14
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.styles.js.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.template.d.ts.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.template.js +10 -8
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.template.js.map +1 -1
- package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.styles.d.ts.map +1 -1
- package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.styles.js +3 -0
- package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.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.d.ts.map +1 -1
- package/dist/components/layout/split-views/split-view-divider/split-view-divider.styles.js +13 -10
- package/dist/components/layout/split-views/split-view-divider/split-view-divider.styles.js.map +1 -1
- package/dist/components/layout/split-views/split-view-pane/split-view-pane.styles.d.ts.map +1 -1
- package/dist/components/layout/split-views/split-view-pane/split-view-pane.styles.js +3 -0
- package/dist/components/layout/split-views/split-view-pane/split-view-pane.styles.js.map +1 -1
- package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.styles.d.ts.map +1 -1
- package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.styles.js +3 -0
- package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.styles.js.map +1 -1
- package/dist/components/layout/window/window.d.ts +1 -19
- package/dist/components/layout/window/window.d.ts.map +1 -1
- package/dist/components/layout/window/window.js +11 -188
- package/dist/components/layout/window/window.js.map +1 -1
- package/dist/components/layout/window/window.styles.d.ts.map +1 -1
- package/dist/components/layout/window/window.styles.js +5 -28
- package/dist/components/layout/window/window.styles.js.map +1 -1
- package/dist/components/layout/window/window.template.d.ts.map +1 -1
- package/dist/components/layout/window/window.template.js +1 -2
- package/dist/components/layout/window/window.template.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/cell/cell.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/cell/cell.styles.js +4 -1
- package/dist/components/lists-and-tables/cells/cell/cell.styles.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/description-cell/description-cell.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/description-cell/description-cell.styles.js +4 -1
- package/dist/components/lists-and-tables/cells/description-cell/description-cell.styles.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/drag-handle-cell/drag-handle-cell.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/drag-handle-cell/drag-handle-cell.styles.js +3 -0
- package/dist/components/lists-and-tables/cells/drag-handle-cell/drag-handle-cell.styles.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/icon-cell/icon-cell.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/icon-cell/icon-cell.styles.js +3 -0
- package/dist/components/lists-and-tables/cells/icon-cell/icon-cell.styles.js.map +1 -1
- package/dist/components/lists-and-tables/cells/spacer-cell/spacer-cell.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/spacer-cell/spacer-cell.styles.js +3 -0
- package/dist/components/lists-and-tables/cells/spacer-cell/spacer-cell.styles.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/text-cell/text-cell.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/text-cell/text-cell.styles.js +4 -1
- package/dist/components/lists-and-tables/cells/text-cell/text-cell.styles.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/timeline-track-cell/timeline-track-cell.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.styles.js +3 -0
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.styles.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/cells/title-cell/title-cell.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/title-cell/title-cell.styles.js +4 -1
- package/dist/components/lists-and-tables/cells/title-cell/title-cell.styles.js.map +1 -1
- package/dist/components/lists-and-tables/list/list.d.ts +138 -8
- package/dist/components/lists-and-tables/list/list.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list/list.i18n.d.ts +2 -0
- package/dist/components/lists-and-tables/list/list.i18n.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list/list.i18n.js +2 -0
- package/dist/components/lists-and-tables/list/list.i18n.js.map +1 -1
- package/dist/components/lists-and-tables/list/list.js +373 -20
- 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 +164 -25
- package/dist/components/lists-and-tables/list/list.styles.js.map +1 -1
- package/dist/components/lists-and-tables/list/list.template.d.ts +26 -1
- package/dist/components/lists-and-tables/list/list.template.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list/list.template.js +76 -18
- package/dist/components/lists-and-tables/list/list.template.js.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.d.ts +20 -7
- 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 +51 -25
- package/dist/components/lists-and-tables/list-item/list-item.js.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.styles.js +50 -28
- package/dist/components/lists-and-tables/list-item/list-item.styles.js.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.template.d.ts +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.template.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.template.js +9 -6
- package/dist/components/lists-and-tables/list-item/list-item.template.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/lists-and-tables/table/table.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/table/table.styles.js +4 -1
- package/dist/components/lists-and-tables/table/table.styles.js.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +0 -44
- package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.i18n.d.ts +0 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.i18n.d.ts.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.i18n.js +0 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.i18n.js.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js +3 -85
- package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.styles.d.ts.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.styles.js +6 -52
- package/dist/components/navigation/breadcrumbs/breadcrumbs.styles.js.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.template.d.ts.map +1 -1
- package/dist/components/navigation/breadcrumbs/breadcrumbs.template.js +1 -17
- package/dist/components/navigation/breadcrumbs/breadcrumbs.template.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/document-tab-bar/document-tab-bar.styles.d.ts.map +1 -1
- package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.js +4 -1
- package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.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/link/link.styles.d.ts.map +1 -1
- package/dist/components/navigation/link/link.styles.js +4 -1
- package/dist/components/navigation/link/link.styles.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/menu-bar.styles.d.ts.map +1 -1
- package/dist/components/navigation/menu-bar/menu-bar.styles.js +4 -1
- package/dist/components/navigation/menu-bar/menu-bar.styles.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/menu-bar-item/menu-bar-item.styles.d.ts.map +1 -1
- package/dist/components/navigation/menu-bar-item/menu-bar-item.styles.js +4 -1
- package/dist/components/navigation/menu-bar-item/menu-bar-item.styles.js.map +1 -1
- package/dist/components/navigation/pagination/pagination.styles.d.ts.map +1 -1
- package/dist/components/navigation/pagination/pagination.styles.js +4 -1
- package/dist/components/navigation/pagination/pagination.styles.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/skip-link/skip-link.styles.d.ts.map +1 -1
- package/dist/components/navigation/skip-link/skip-link.styles.js +4 -1
- package/dist/components/navigation/skip-link/skip-link.styles.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 +78 -79
- 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 +5 -0
- 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 +24 -6
- package/dist/components/navigation/top-navigation-bar/top-navigation-bar.js.map +1 -1
- package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.d.ts.map +1 -1
- package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js +32 -16
- package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.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/navigation/top-title-bar/top-title-bar.styles.d.ts.map +1 -1
- package/dist/components/navigation/top-title-bar/top-title-bar.styles.js +4 -1
- package/dist/components/navigation/top-title-bar/top-title-bar.styles.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 +4 -2
- 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/badge/badge.styles.d.ts.map +1 -1
- package/dist/components/status-and-feedback/badge/badge.styles.js +4 -1
- package/dist/components/status-and-feedback/badge/badge.styles.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/banner/banner.styles.d.ts.map +1 -1
- package/dist/components/status-and-feedback/banner/banner.styles.js +4 -1
- package/dist/components/status-and-feedback/banner/banner.styles.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/inline-dialog/inline-dialog.styles.d.ts.map +1 -1
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.styles.js +4 -1
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.styles.js.map +1 -1
- package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.d.ts +6 -4
- 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 +40 -9
- 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 +16 -2
- 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/modal-dialog/modal-dialog.styles.d.ts.map +1 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.js +4 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.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 +4 -7
- 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 +4 -3
- 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/status-and-feedback/status-bar/status-bar.styles.d.ts.map +1 -1
- package/dist/components/status-and-feedback/status-bar/status-bar.styles.js +4 -1
- package/dist/components/status-and-feedback/status-bar/status-bar.styles.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 +63 -5
- package/dist/css/settings.css +35 -13
- 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 +96 -68
- package/dist/assets/styles/slotted-reset.d.ts.map +0 -1
- package/dist/assets/styles/slotted-reset.fixtures.d.ts.map +0 -1
- package/dist/assets/styles/slotted-reset.fixtures.js.map +0 -1
- package/dist/assets/styles/slotted-reset.js.map +0 -1
- package/dist/components/index-BVaijKe_.js +0 -35785
- 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 -139
- 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-Tr_Ff1KJ.js +0 -99
- package/dist/components/prism-rust-CxUpjfK5.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-zaF4YQWN.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,148 @@
|
|
|
1
|
+
/* Annotation sentinels — the "fake character" machinery.
|
|
2
|
+
*
|
|
3
|
+
* To let the caret rest on BOTH sides of an annotation edge (outside it and just
|
|
4
|
+
* inside it), each annotation group carries a zero-width sentinel character in the
|
|
5
|
+
* document at its start and end: one real document offset on either side of the
|
|
6
|
+
* boundary, so the caret has two stops. The end sentinel is rendered as the count
|
|
7
|
+
* badge; the start sentinel is invisible.
|
|
8
|
+
*
|
|
9
|
+
* U+2060 (WORD JOINER) is the sentinel: zero-width, and CommonMark treats it as an
|
|
10
|
+
* ordinary character, so it does not break inline emphasis/code/links. (It DOES
|
|
11
|
+
* break a few constructs — GFM strikethrough, and line-start block markers when it
|
|
12
|
+
* sits right before them — so placement is guarded; see `canPlaceSentinel`.)
|
|
13
|
+
*
|
|
14
|
+
* The sentinel lives only in the CodeMirror document; it must never reach the
|
|
15
|
+
* exposed `value`, the clipboard, or the form. Everything here is pure and
|
|
16
|
+
* DOM-free so it can be unit-tested in isolation. */
|
|
17
|
+
export const ANNOTATION_SENTINEL = '';
|
|
18
|
+
/** Remove every sentinel from a string (doc text -> clean value). */
|
|
19
|
+
export function stripSentinels(text) {
|
|
20
|
+
return text.split(ANNOTATION_SENTINEL).join('');
|
|
21
|
+
}
|
|
22
|
+
/** Whether `text` contains a sentinel. */
|
|
23
|
+
export function hasSentinel(text) {
|
|
24
|
+
return text.includes(ANNOTATION_SENTINEL);
|
|
25
|
+
}
|
|
26
|
+
/** Doc-offset positions of every sentinel in `doc`. */
|
|
27
|
+
export function sentinelPositions(doc) {
|
|
28
|
+
const out = [];
|
|
29
|
+
for (let i = 0; i < doc.length; i++)
|
|
30
|
+
if (doc[i] === ANNOTATION_SENTINEL)
|
|
31
|
+
out.push(i);
|
|
32
|
+
return out;
|
|
33
|
+
}
|
|
34
|
+
/** Number of sentinels at doc positions strictly before `docPos`. */
|
|
35
|
+
export function sentinelsBefore(doc, docPos) {
|
|
36
|
+
let n = 0;
|
|
37
|
+
for (let i = 0; i < docPos && i < doc.length; i++)
|
|
38
|
+
if (doc[i] === ANNOTATION_SENTINEL)
|
|
39
|
+
n++;
|
|
40
|
+
return n;
|
|
41
|
+
}
|
|
42
|
+
/** Doc offset -> clean offset (subtract the sentinels before it). */
|
|
43
|
+
export function docToClean(doc, docPos) {
|
|
44
|
+
return docPos - sentinelsBefore(doc, docPos);
|
|
45
|
+
}
|
|
46
|
+
/** Clean offset -> doc offset, given the doc's sorted sentinel positions. Sentinels
|
|
47
|
+
* at or before the growing doc position push it further right. */
|
|
48
|
+
export function cleanToDoc(sortedSentinelPositions, cleanPos) {
|
|
49
|
+
let docPos = cleanPos;
|
|
50
|
+
for (const s of sortedSentinelPositions)
|
|
51
|
+
if (s <= docPos)
|
|
52
|
+
docPos++;
|
|
53
|
+
return docPos;
|
|
54
|
+
}
|
|
55
|
+
/** The sentinels a set of groups wants, in clean offsets (start before the first
|
|
56
|
+
* char, end after the last), filtered by the guard. Positions may repeat when two
|
|
57
|
+
* groups touch (end of one, start of the next). */
|
|
58
|
+
export function desiredSentinels(groups, cleanText, canPlace = canPlaceSentinel) {
|
|
59
|
+
const out = [];
|
|
60
|
+
for (const g of groups) {
|
|
61
|
+
if (g.to <= g.from)
|
|
62
|
+
continue;
|
|
63
|
+
if (canPlace(cleanText, g.from, 'start'))
|
|
64
|
+
out.push({ pos: g.from, kind: 'start' });
|
|
65
|
+
if (canPlace(cleanText, g.to, 'end'))
|
|
66
|
+
out.push({ pos: g.to, kind: 'end' });
|
|
67
|
+
}
|
|
68
|
+
return out;
|
|
69
|
+
}
|
|
70
|
+
/** Build the desired doc text: `cleanText` with a sentinel inserted at each desired
|
|
71
|
+
* position (multiplicity honoured for touching groups). */
|
|
72
|
+
export function buildDesiredDoc(cleanText, desired) {
|
|
73
|
+
const counts = new Map();
|
|
74
|
+
for (const d of desired)
|
|
75
|
+
counts.set(d.pos, (counts.get(d.pos) ?? 0) + 1);
|
|
76
|
+
let out = '';
|
|
77
|
+
for (let i = 0; i <= cleanText.length; i++) {
|
|
78
|
+
const n = counts.get(i) ?? 0;
|
|
79
|
+
if (n)
|
|
80
|
+
out += ANNOTATION_SENTINEL.repeat(n);
|
|
81
|
+
if (i < cleanText.length)
|
|
82
|
+
out += cleanText[i];
|
|
83
|
+
}
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
86
|
+
/** Minimal changes (in current-doc coords) to turn `doc` into a document that holds
|
|
87
|
+
* exactly the sentinels the groups want — touching only sentinel characters, never
|
|
88
|
+
* the real text. `doc` and the target share the same clean text, so a two-pointer
|
|
89
|
+
* walk yields sentinel-only inserts/deletes. */
|
|
90
|
+
export function reconcileSentinels(doc, groups, canPlace = canPlaceSentinel) {
|
|
91
|
+
const cleanText = stripSentinels(doc);
|
|
92
|
+
const desired = buildDesiredDoc(cleanText, desiredSentinels(groups, cleanText, canPlace));
|
|
93
|
+
const changes = [];
|
|
94
|
+
let i = 0; // over doc
|
|
95
|
+
let j = 0; // over desired
|
|
96
|
+
while (i < doc.length || j < desired.length) {
|
|
97
|
+
const dc = i < doc.length ? doc[i] : '';
|
|
98
|
+
const ec = j < desired.length ? desired[j] : '';
|
|
99
|
+
if (dc === ec) {
|
|
100
|
+
i++;
|
|
101
|
+
j++;
|
|
102
|
+
}
|
|
103
|
+
else if (dc === ANNOTATION_SENTINEL) {
|
|
104
|
+
changes.push({ from: i, to: i + 1 }); // stray sentinel -> delete
|
|
105
|
+
i++;
|
|
106
|
+
}
|
|
107
|
+
else if (ec === ANNOTATION_SENTINEL) {
|
|
108
|
+
changes.push({ from: i, to: i, insert: ANNOTATION_SENTINEL }); // missing -> insert
|
|
109
|
+
j++;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
// Non-sentinel mismatch should be impossible (clean text is identical).
|
|
113
|
+
i++;
|
|
114
|
+
j++;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return changes;
|
|
118
|
+
}
|
|
119
|
+
const LINE_START_MARKER = /^(\s*)(#{1,6}\s|[-*+]\s|\d+[.)]\s|>|`{3,}|~{3,})/;
|
|
120
|
+
/** Default placement guard. Blocks the sentinel where U+2060 would break the
|
|
121
|
+
* markdown parse: right before a line-start block marker, and inside a GFM
|
|
122
|
+
* strikethrough run (`~~...~~`). Blocked edges fall back to a single caret stop. */
|
|
123
|
+
export function canPlaceSentinel(cleanText, pos, _kind) {
|
|
124
|
+
// Line start (or the whole leading marker) directly ahead -> a sentinel here
|
|
125
|
+
// pushes the marker off column 0 (or between marker and text) and kills the block.
|
|
126
|
+
const lineStart = cleanText.lastIndexOf('\n', pos - 1) + 1;
|
|
127
|
+
const rest = cleanText.slice(lineStart);
|
|
128
|
+
const marker = rest.match(LINE_START_MARKER);
|
|
129
|
+
if (marker) {
|
|
130
|
+
const markerEnd = lineStart + marker[0].length;
|
|
131
|
+
// Block only positions *within* the marker (before it, or between the marker
|
|
132
|
+
// char and its required space) — those push the marker off column 0 or split
|
|
133
|
+
// it and kill the block. A sentinel exactly at markerEnd sits at the start of
|
|
134
|
+
// the content, after the marker and its space, so the block stays intact and
|
|
135
|
+
// an annotation opening the line (e.g. right after "- ") keeps both caret stops.
|
|
136
|
+
if (pos < markerEnd)
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
// Inside a strikethrough run on this line: count unescaped `~~` before pos.
|
|
140
|
+
const lineText = cleanText.slice(lineStart, cleanText.indexOf('\n', pos) === -1 ? undefined : cleanText.indexOf('\n', pos));
|
|
141
|
+
const rel = pos - lineStart;
|
|
142
|
+
const before = lineText.slice(0, rel);
|
|
143
|
+
const strikes = (before.match(/~~/g) ?? []).length;
|
|
144
|
+
if (strikes % 2 === 1)
|
|
145
|
+
return false; // odd number of ~~ before -> inside a run
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=text-editor.annotation-sentinels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-editor.annotation-sentinels.js","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.annotation-sentinels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;qDAeqD;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,qEAAqE;AACrE,MAAM,UAAU,cAAc,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAC3C,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC5C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,mBAAmB;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,GAAG,CAAC;AACZ,CAAC;AAQD,qEAAqE;AACrE,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,MAAc;IAC1D,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,mBAAmB;YAAE,CAAC,EAAE,CAAC;IAC3F,OAAO,CAAC,CAAC;AACV,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,MAAc;IACrD,OAAO,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,UAAU,CAAC,uBAAiC,EAAE,QAAgB;IAC7E,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,uBAAuB;QAAE,IAAI,CAAC,IAAI,MAAM;YAAE,MAAM,EAAE,CAAC;IACnE,OAAO,MAAM,CAAC;AACf,CAAC;AAaD;;oDAEoD;AACpD,MAAM,UAAU,gBAAgB,CAAC,MAAoB,EAAE,SAAiB,EAAE,WAAqB,gBAAgB;IAC9G,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI;YAAE,SAAS;QAC7B,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACnF,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;4DAC4D;AAC5D,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,OAA0B;IAC5E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC;YAAE,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM;YAAE,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AASD;;;iDAGiD;AACjD,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,MAAoB,EAAE,WAAqB,gBAAgB;IAC1G,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,EAAE,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;IACtB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe;IAC1B,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACf,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;QACL,CAAC;aAAM,IAAI,EAAE,KAAK,mBAAmB,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B;YACjE,CAAC,EAAE,CAAC;QACL,CAAC;aAAM,IAAI,EAAE,KAAK,mBAAmB,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,oBAAoB;YACnF,CAAC,EAAE,CAAC;QACL,CAAC;aAAM,CAAC;YACP,wEAAwE;YACxE,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;QACL,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,iBAAiB,GAAG,kDAAkD,CAAC;AAE7E;;qFAEqF;AACrF,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,GAAW,EAAE,KAAsB;IACtF,6EAA6E;IAC7E,mFAAmF;IACnF,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/C,6EAA6E;QAC7E,6EAA6E;QAC7E,8EAA8E;QAC9E,6EAA6E;QAC7E,iFAAiF;QACjF,IAAI,GAAG,GAAG,SAAS;YAAE,OAAO,KAAK,CAAC;IACnC,CAAC;IACD,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5H,MAAM,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;IAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACnD,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,0CAA0C;IAC/E,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { EditorState, type Extension } from '@codemirror/state';
|
|
2
|
+
export interface Annotation {
|
|
3
|
+
/** Stable id, owned by the consumer. */
|
|
4
|
+
id: string;
|
|
5
|
+
/** Character offset range in the CLEAN document (W3C TextPositionSelector). */
|
|
6
|
+
start: number;
|
|
7
|
+
end: number;
|
|
8
|
+
/** The quoted text, kept for re-anchoring after edits (TextQuoteSelector). */
|
|
9
|
+
quote?: string;
|
|
10
|
+
}
|
|
11
|
+
/** An annotation anchored in CLEAN (sentinel-free) coordinates. */
|
|
12
|
+
interface CleanAnn {
|
|
13
|
+
id: string;
|
|
14
|
+
from: number;
|
|
15
|
+
to: number;
|
|
16
|
+
}
|
|
17
|
+
/** Replace the editor's annotation set (consumer offsets are clean). */
|
|
18
|
+
export declare const setAnnotations: import("@codemirror/state").StateEffectType<readonly Annotation[]>;
|
|
19
|
+
/** A drag-move, in CLEAN offsets: the block [from, to) is being relocated so its
|
|
20
|
+
* first character lands at `insertAt`. mapPos can't follow moved content, so the
|
|
21
|
+
* filter uses this to carry annotations inside the block along with their text. */
|
|
22
|
+
export declare const annotationMove: import("@codemirror/state").StateEffectType<{
|
|
23
|
+
from: number;
|
|
24
|
+
to: number;
|
|
25
|
+
insertAt: number;
|
|
26
|
+
}>;
|
|
27
|
+
/** A cut→paste inside the same editor: re-attach the annotations that were cut at the
|
|
28
|
+
* paste point. `at` is the CLEAN paste offset; each entry's from/to are relative to
|
|
29
|
+
* the pasted text. Carries the original ids, so a cut→paste is a move, not a copy. */
|
|
30
|
+
export declare const pasteAnnotations: import("@codemirror/state").StateEffectType<{
|
|
31
|
+
at: number;
|
|
32
|
+
anns: CleanAnn[];
|
|
33
|
+
}>;
|
|
34
|
+
/** The annotations currently anchored in the document, in clean offsets. Lets the
|
|
35
|
+
* host capture what sits inside a cut so it can re-attach them on paste. */
|
|
36
|
+
export declare function currentAnnotations(state: EditorState): readonly CleanAnn[];
|
|
37
|
+
/** Builds an annotation badge's accessible label from the count and the (already
|
|
38
|
+
* truncated) quoted text, choosing singular/plural. Supplied by the host so the
|
|
39
|
+
* string is localizable; defaults to Dutch at the call site. */
|
|
40
|
+
export type AnnotationCountLabel = (count: number, quote: string) => string;
|
|
41
|
+
/** The annotation overlay: clean-coordinate anchoring, sentinel maintenance, and
|
|
42
|
+
* tint/badge rendering with a caret stop on each side of every edge. `countLabel`
|
|
43
|
+
* builds each badge's accessible label (count + quote, singular/plural), so the
|
|
44
|
+
* host can localize it. */
|
|
45
|
+
export declare function annotations(countLabel: AnnotationCountLabel): Extension;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=text-editor.annotations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-editor.annotations.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.annotations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAiC,KAAK,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAyB3G,MAAM,WAAW,UAAU;IAC1B,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,UAAU,QAAQ;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACX;AAED,wEAAwE;AACxE,eAAO,MAAM,cAAc,oEAA8C,CAAC;AAM1E;;oFAEoF;AACpF,eAAO,MAAM,cAAc;UAA8B,MAAM;QAAM,MAAM;cAAY,MAAM;EAAK,CAAC;AAEnG;;uFAEuF;AACvF,eAAO,MAAM,gBAAgB;QAA4B,MAAM;UAAQ,QAAQ,EAAE;EAAK,CAAC;AAEvF;6EAC6E;AAC7E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,QAAQ,EAAE,CAE1E;AA6DD;;iEAEiE;AACjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AA0P5E;;;4BAG4B;AAI5B,wBAAgB,WAAW,CAAC,UAAU,EAAE,oBAAoB,GAAG,SAAS,CAWvE"}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import { Decoration, EditorView, WidgetType } from '@codemirror/view';
|
|
2
|
+
import { EditorState, Prec, StateEffect, StateField } from '@codemirror/state';
|
|
3
|
+
import { invertedEffects } from '@codemirror/commands';
|
|
4
|
+
import { ANNOTATION_SENTINEL as S, stripSentinels, sentinelPositions, docToClean, cleanToDoc, reconcileSentinels, } from './text-editor.annotation-sentinels.js';
|
|
5
|
+
import { textCaretBox } from './text-editor.caret.js';
|
|
6
|
+
/** Replace the editor's annotation set (consumer offsets are clean). */
|
|
7
|
+
export const setAnnotations = StateEffect.define();
|
|
8
|
+
/** Internal: the filter's freshly computed clean anchors. The field only ever
|
|
9
|
+
* updates from this, so anchoring lives in one place (the filter). */
|
|
10
|
+
const setAnchored = StateEffect.define();
|
|
11
|
+
/** A drag-move, in CLEAN offsets: the block [from, to) is being relocated so its
|
|
12
|
+
* first character lands at `insertAt`. mapPos can't follow moved content, so the
|
|
13
|
+
* filter uses this to carry annotations inside the block along with their text. */
|
|
14
|
+
export const annotationMove = StateEffect.define();
|
|
15
|
+
/** A cut→paste inside the same editor: re-attach the annotations that were cut at the
|
|
16
|
+
* paste point. `at` is the CLEAN paste offset; each entry's from/to are relative to
|
|
17
|
+
* the pasted text. Carries the original ids, so a cut→paste is a move, not a copy. */
|
|
18
|
+
export const pasteAnnotations = StateEffect.define();
|
|
19
|
+
/** The annotations currently anchored in the document, in clean offsets. Lets the
|
|
20
|
+
* host capture what sits inside a cut so it can re-attach them on paste. */
|
|
21
|
+
export function currentAnnotations(state) {
|
|
22
|
+
return state.field(annotationField, false) ?? [];
|
|
23
|
+
}
|
|
24
|
+
function anchorClean(list, cleanLength) {
|
|
25
|
+
return list
|
|
26
|
+
.map((a) => ({
|
|
27
|
+
id: a.id,
|
|
28
|
+
from: Math.max(0, Math.min(a.start, cleanLength)),
|
|
29
|
+
to: Math.max(0, Math.min(a.end, cleanLength)),
|
|
30
|
+
}))
|
|
31
|
+
.filter((a) => a.to > a.from);
|
|
32
|
+
}
|
|
33
|
+
/** A clean annotation's doc range: text start, and text end (just before the end
|
|
34
|
+
* sentinel). Used to map through a user edit in doc space, where the sentinel
|
|
35
|
+
* physically separates the inside edge from the outside one. */
|
|
36
|
+
function annToDoc(a, sents) {
|
|
37
|
+
return { from: cleanToDoc(sents, a.from), to: cleanToDoc(sents, a.to - 1) + 1 };
|
|
38
|
+
}
|
|
39
|
+
/** Annotations in clean coordinates. Updated only via `setAnchored`, which the
|
|
40
|
+
* transaction filter computes (mapping through edits in doc space). */
|
|
41
|
+
const annotationField = StateField.define({
|
|
42
|
+
create: () => [],
|
|
43
|
+
update: (value, tr) => {
|
|
44
|
+
const set = tr.effects.find((e) => e.is(setAnchored));
|
|
45
|
+
return set ? set.value : value;
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
function groupOverlapping(anns) {
|
|
49
|
+
const groups = [];
|
|
50
|
+
for (const a of [...anns].sort((x, y) => x.from - y.from || x.to - y.to)) {
|
|
51
|
+
const last = groups[groups.length - 1];
|
|
52
|
+
// Strict overlap only: two ranges that merely touch (one ends where the next
|
|
53
|
+
// begins, e.g. [0,3] and [3,6]) stay separate tints/badges. The sentinel
|
|
54
|
+
// machinery already places two sentinels at such a seam.
|
|
55
|
+
if (last && a.from < last.to) {
|
|
56
|
+
last.to = Math.max(last.to, a.to);
|
|
57
|
+
last.ids.push(a.id);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
groups.push({ from: a.from, to: a.to, ids: [a.id] });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return groups;
|
|
64
|
+
}
|
|
65
|
+
// The badge's accessible label quotes the annotated text, truncated so a long range
|
|
66
|
+
// can't produce a huge label. Screen-reader-only; the visible badge shows the count.
|
|
67
|
+
const ANNOTATION_LABEL_MAX = 40;
|
|
68
|
+
function truncateQuote(text) {
|
|
69
|
+
return text.length > ANNOTATION_LABEL_MAX ? `${text.slice(0, ANNOTATION_LABEL_MAX)}…` : text;
|
|
70
|
+
}
|
|
71
|
+
class AnnotationBadge extends WidgetType {
|
|
72
|
+
constructor(ids, quote, label) {
|
|
73
|
+
super();
|
|
74
|
+
this.ids = ids;
|
|
75
|
+
this.quote = quote;
|
|
76
|
+
this.label = label;
|
|
77
|
+
}
|
|
78
|
+
eq(other) {
|
|
79
|
+
return (other.quote === this.quote &&
|
|
80
|
+
other.ids.length === this.ids.length &&
|
|
81
|
+
other.ids.every((id, i) => id === this.ids[i]));
|
|
82
|
+
}
|
|
83
|
+
toDOM() {
|
|
84
|
+
const badge = document.createElement('button');
|
|
85
|
+
badge.className = 'cm-annotation-badge';
|
|
86
|
+
badge.type = 'button';
|
|
87
|
+
badge.dataset.annotations = this.ids.join(' ');
|
|
88
|
+
badge.textContent = String(this.ids.length);
|
|
89
|
+
badge.setAttribute('aria-label', this.label(this.ids.length, truncateQuote(this.quote)));
|
|
90
|
+
return badge;
|
|
91
|
+
}
|
|
92
|
+
/** Give the caret at either edge of the badge a stable, text-height rectangle.
|
|
93
|
+
* Without this, drawSelection measures the caret from the badge's own small font,
|
|
94
|
+
* so it renders short next to the badge and its height flips with the arrival
|
|
95
|
+
* direction (the queried side follows the cursor's assoc). */
|
|
96
|
+
coordsAt(dom, pos, _side) {
|
|
97
|
+
const badge = dom.getBoundingClientRect();
|
|
98
|
+
const cs = getComputedStyle(dom);
|
|
99
|
+
const box = textCaretBox(dom) ?? { top: badge.top, bottom: badge.bottom };
|
|
100
|
+
// Inside edge: the text's end (before the badge's left margin). Outside edge:
|
|
101
|
+
// just past the badge (its right edge + margin). The badge is a single inline
|
|
102
|
+
// box on the annotation's last line, so this stays correct for multi-line
|
|
103
|
+
// annotations — where the tint's bounding box would be the union of every
|
|
104
|
+
// line and push the caret to the far right edge.
|
|
105
|
+
const x = pos <= 0
|
|
106
|
+
? badge.left - parseFloat(cs.marginLeft)
|
|
107
|
+
: badge.right + parseFloat(cs.marginRight);
|
|
108
|
+
return { left: x, right: x, top: box.top, bottom: box.bottom };
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// inclusiveEnd lets the end sentinel's replace (the badge) nest inside the tint span.
|
|
112
|
+
const annotationMark = Decoration.mark({ class: 'cm-annotation', inclusiveEnd: true });
|
|
113
|
+
const annotationFullSelectedMark = Decoration.mark({ class: 'cm-annotation is-selected', inclusiveEnd: true });
|
|
114
|
+
const annotationSelectedMark = Decoration.mark({ class: 'is-selected' });
|
|
115
|
+
class AnnotationStart extends WidgetType {
|
|
116
|
+
eq(other) {
|
|
117
|
+
return other instanceof AnnotationStart;
|
|
118
|
+
}
|
|
119
|
+
toDOM() {
|
|
120
|
+
const span = document.createElement('span');
|
|
121
|
+
span.className = 'cm-annotation-start';
|
|
122
|
+
return span;
|
|
123
|
+
}
|
|
124
|
+
coordsAt(dom, pos, _side) {
|
|
125
|
+
// CodeMirror inserts a zero-width cm-widgetBuffer between the widget and the
|
|
126
|
+
// content, so skip it to reach the tint span.
|
|
127
|
+
let tint = dom.nextElementSibling;
|
|
128
|
+
while (tint instanceof HTMLElement && tint.classList.contains('cm-widgetBuffer'))
|
|
129
|
+
tint = tint.nextElementSibling;
|
|
130
|
+
if (!(tint instanceof HTMLElement) || !tint.classList.contains('cm-annotation'))
|
|
131
|
+
return null;
|
|
132
|
+
const padLeft = parseFloat(getComputedStyle(tint).paddingInlineStart || '0');
|
|
133
|
+
// The start sentinel sits on the tint's FIRST line, so measure that line, not
|
|
134
|
+
// tint.getBoundingClientRect() — which for a multi-line annotation is the union
|
|
135
|
+
// of every line and would draw a caret as tall as the whole token. textCaretBox
|
|
136
|
+
// gives the exact body caret, but it throws (→ null) during drawSelection's
|
|
137
|
+
// measure pass; the fallback then uses the first client rect, never the union.
|
|
138
|
+
const firstLine = tint.getClientRects()[0] ?? tint.getBoundingClientRect();
|
|
139
|
+
const box = textCaretBox(dom) ?? { top: firstLine.top, bottom: firstLine.bottom };
|
|
140
|
+
const x = pos <= 0 ? firstLine.left : firstLine.left + padLeft;
|
|
141
|
+
return { left: x, right: x, top: box.top, bottom: box.bottom };
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// The start sentinel: an invisible widget that pins the caret to the token's edges.
|
|
145
|
+
const startSentinelDeco = Decoration.replace({ widget: new AnnotationStart() });
|
|
146
|
+
// Dummy value for the atomic-range set (positions only; never rendered).
|
|
147
|
+
const atomicMark = Decoration.mark({});
|
|
148
|
+
// Glues the annotated text's last word to the badge so the badge never wraps onto
|
|
149
|
+
// a line by itself (an orphan). Only the tail is nowrap, so a long annotation still
|
|
150
|
+
// wraps at its earlier spaces.
|
|
151
|
+
// inclusiveEnd so the mark wraps the trailing badge widget at its end boundary,
|
|
152
|
+
// keeping the badge inside the nowrap span (a plain mark would leave it a sibling).
|
|
153
|
+
const badgeTailMark = Decoration.mark({ class: 'cm-annotation-tail', inclusiveEnd: true });
|
|
154
|
+
/** Resolve a group's doc geometry: the text span, and where its sentinels actually
|
|
155
|
+
* sit (they may be absent when placement was guarded). */
|
|
156
|
+
function resolveGroup(group, doc, sents) {
|
|
157
|
+
const docFrom = cleanToDoc(sents, group.from);
|
|
158
|
+
const textTo = cleanToDoc(sents, group.to - 1) + 1; // just after the last text char
|
|
159
|
+
const startSent = docFrom - 1 >= 0 && doc[docFrom - 1] === S ? docFrom - 1 : null;
|
|
160
|
+
const endSent = textTo < doc.length && doc[textTo] === S ? textTo : null;
|
|
161
|
+
return { docFrom, textTo, startSent, endSent };
|
|
162
|
+
}
|
|
163
|
+
function buildAll(state, label) {
|
|
164
|
+
const doc = state.doc.toString();
|
|
165
|
+
const sel = state.selection.main;
|
|
166
|
+
const sents = sentinelPositions(doc);
|
|
167
|
+
// Clamp anchors to the CLEAN document length before building. The field and the
|
|
168
|
+
// document can be transiently inconsistent — most sharply on undo/redo, where
|
|
169
|
+
// history reverts the text (and any non-historized sentinels linger) while the
|
|
170
|
+
// field still holds pre-revert offsets. Building unclamped then emits decoration
|
|
171
|
+
// ranges past the document end, and CodeMirror throws "Position N out of range"
|
|
172
|
+
// diffing them. Clamping keeps every range in-bounds; the next consistent update
|
|
173
|
+
// re-renders the real anchors.
|
|
174
|
+
const cleanLen = doc.length - sents.length;
|
|
175
|
+
const clean = stripSentinels(doc);
|
|
176
|
+
const anns = state.field(annotationField)
|
|
177
|
+
.map((a) => ({ id: a.id, from: Math.min(a.from, cleanLen), to: Math.min(a.to, cleanLen) }))
|
|
178
|
+
.filter((a) => a.to > a.from);
|
|
179
|
+
const deco = [];
|
|
180
|
+
const atomic = [];
|
|
181
|
+
for (const group of groupOverlapping(anns)) {
|
|
182
|
+
if (group.to <= group.from)
|
|
183
|
+
continue;
|
|
184
|
+
const { docFrom, textTo, startSent, endSent } = resolveGroup(group, doc, sents);
|
|
185
|
+
// The annotated text (sentinel-free) for the badge's accessible label.
|
|
186
|
+
const quote = clean.slice(group.from, group.to);
|
|
187
|
+
// The tint covers the text, plus the end sentinel (badge) when present so the
|
|
188
|
+
// badge shares the tint.
|
|
189
|
+
const tintTo = endSent !== null ? textTo + 1 : textTo;
|
|
190
|
+
const fully = !sel.empty && sel.from <= docFrom && sel.to >= tintTo;
|
|
191
|
+
deco.push((fully ? annotationFullSelectedMark : annotationMark).range(docFrom, tintTo));
|
|
192
|
+
if (!fully && !sel.empty) {
|
|
193
|
+
const f = Math.max(docFrom, sel.from);
|
|
194
|
+
const t = Math.min(tintTo, sel.to);
|
|
195
|
+
if (t > f)
|
|
196
|
+
deco.push(annotationSelectedMark.range(f, t));
|
|
197
|
+
}
|
|
198
|
+
// The badge end (just past it): the sentinel slot when present, else the text end.
|
|
199
|
+
const badgeEnd = endSent !== null ? endSent + 1 : textTo;
|
|
200
|
+
// Start of the annotated text's last word — nowrap from here through the badge
|
|
201
|
+
// keeps the two together so the badge can't orphan onto the next line.
|
|
202
|
+
const tail = doc.slice(docFrom, textTo).match(/\S+$/);
|
|
203
|
+
if (tail)
|
|
204
|
+
deco.push(badgeTailMark.range(docFrom + (tail.index ?? 0), badgeEnd));
|
|
205
|
+
if (endSent !== null) {
|
|
206
|
+
// Two caret stops: the badge replaces the end sentinel, atomic so the caret
|
|
207
|
+
// treats it as a unit and stops just before (inside) and just after (outside).
|
|
208
|
+
deco.push(Decoration.replace({ widget: new AnnotationBadge(group.ids, quote, label) }).range(endSent, endSent + 1));
|
|
209
|
+
atomic.push(atomicMark.range(endSent, endSent + 1));
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
// Guarded edge (would break the markdown parse): fall back to the old
|
|
213
|
+
// single-stop nub — a zero-width widget at the range end, inside the tint.
|
|
214
|
+
deco.push(Decoration.widget({ widget: new AnnotationBadge(group.ids, quote, label), side: -1 }).range(textTo));
|
|
215
|
+
}
|
|
216
|
+
if (startSent !== null) {
|
|
217
|
+
deco.push(startSentinelDeco.range(startSent, startSent + 1));
|
|
218
|
+
atomic.push(atomicMark.range(startSent, startSent + 1));
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return { deco: Decoration.set(deco, true), atomic: Decoration.set(atomic, true) };
|
|
222
|
+
}
|
|
223
|
+
/** The render field carries the badge label so its accessible text is localizable.
|
|
224
|
+
* A fresh field per overlay keeps the two concerns (rendering, atomic ranges) reading
|
|
225
|
+
* the same instance. */
|
|
226
|
+
function makeAnnotationRender(label) {
|
|
227
|
+
return StateField.define({
|
|
228
|
+
create: (state) => buildAll(state, label),
|
|
229
|
+
update: (value, tr) => {
|
|
230
|
+
if (tr.docChanged || !tr.startState.selection.eq(tr.state.selection) || tr.effects.some((e) => e.is(setAnnotations))) {
|
|
231
|
+
return buildAll(tr.state, label);
|
|
232
|
+
}
|
|
233
|
+
return value;
|
|
234
|
+
},
|
|
235
|
+
provide: (f) => EditorView.decorations.from(f, (v) => v.deco),
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
/** Maintains the document sentinels: after any annotation or text change, ensures
|
|
239
|
+
* exactly one sentinel at each group's start and end (minus guarded edges). Runs in
|
|
240
|
+
* the same transaction (atomic, single undo step) via a transaction filter. */
|
|
241
|
+
const annotationSentinelFilter = EditorState.transactionFilter.of((tr) => {
|
|
242
|
+
const set = tr.effects.find((e) => e.is(setAnnotations));
|
|
243
|
+
if (!tr.docChanged && !set)
|
|
244
|
+
return tr;
|
|
245
|
+
const postUserDoc = tr.newDoc.toString(); // after the user's changes, before sentinels
|
|
246
|
+
const cleanLen = stripSentinels(postUserDoc).length;
|
|
247
|
+
let anns;
|
|
248
|
+
if (set) {
|
|
249
|
+
anns = anchorClean(set.value, cleanLen);
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
// Map each annotation through the user edit in DOC space (to leans right, so a
|
|
253
|
+
// character typed just inside the end — before the sentinel — grows it, while
|
|
254
|
+
// one typed just outside — after the sentinel — does not), then back to clean.
|
|
255
|
+
const oldSents = sentinelPositions(tr.startState.doc.toString());
|
|
256
|
+
const move = tr.effects.find((e) => e.is(annotationMove))?.value;
|
|
257
|
+
anns = (tr.startState.field(annotationField, false) ?? [])
|
|
258
|
+
.map((a) => {
|
|
259
|
+
// A drag relocates whole annotations with their text. mapPos can't follow
|
|
260
|
+
// moved content (a delete + a separate insert), so an annotation sitting
|
|
261
|
+
// fully inside the moved block is translated to its landing spot instead of
|
|
262
|
+
// being collapsed by the delete.
|
|
263
|
+
if (move && a.from >= move.from && a.to <= move.to) {
|
|
264
|
+
return { id: a.id, from: move.insertAt + (a.from - move.from), to: move.insertAt + (a.to - move.from) };
|
|
265
|
+
}
|
|
266
|
+
const doc = annToDoc(a, oldSents);
|
|
267
|
+
const from = tr.changes.mapPos(doc.from, -1);
|
|
268
|
+
const to = tr.changes.mapPos(doc.to, 1);
|
|
269
|
+
return { id: a.id, from: docToClean(postUserDoc, from), to: docToClean(postUserDoc, to) };
|
|
270
|
+
})
|
|
271
|
+
.filter((a) => a.to > a.from);
|
|
272
|
+
// A cut→paste re-attaches the cut annotations at the paste point (clean offsets
|
|
273
|
+
// relative to the pasted text), clamped into the document.
|
|
274
|
+
const paste = tr.effects.find((e) => e.is(pasteAnnotations))?.value;
|
|
275
|
+
if (paste) {
|
|
276
|
+
anns = anns.concat(paste.anns
|
|
277
|
+
.map((a) => ({
|
|
278
|
+
id: a.id,
|
|
279
|
+
from: Math.max(0, Math.min(paste.at + a.from, cleanLen)),
|
|
280
|
+
to: Math.max(0, Math.min(paste.at + a.to, cleanLen)),
|
|
281
|
+
}))
|
|
282
|
+
.filter((a) => a.to > a.from));
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
const groups = groupOverlapping(anns);
|
|
286
|
+
const changes = reconcileSentinels(postUserDoc, groups);
|
|
287
|
+
// Re-anchor the field to the freshly computed clean annotations (authoritative).
|
|
288
|
+
return [tr, { changes, effects: [setAnchored.of(anns)], sequential: true }];
|
|
289
|
+
});
|
|
290
|
+
// The transaction filter re-anchors the field on live edits, but it does NOT run on
|
|
291
|
+
// history transactions — so on undo/redo the document (and its sentinels) revert while
|
|
292
|
+
// the clean anchors would keep their pre-undo positions, drifting the annotations.
|
|
293
|
+
// invertedEffects stores the field's prior value alongside each anchoring change, so
|
|
294
|
+
// history restores the anchors in step with the document it belongs to.
|
|
295
|
+
const annotationHistory = invertedEffects.of((tr) => {
|
|
296
|
+
if (!tr.effects.some((e) => e.is(setAnchored)))
|
|
297
|
+
return [];
|
|
298
|
+
const prior = tr.startState.field(annotationField, false) ?? [];
|
|
299
|
+
return [setAnchored.of(prior)];
|
|
300
|
+
});
|
|
301
|
+
// Keep sentinels out of the clipboard: copy/cut strip them from the outgoing text,
|
|
302
|
+
// and paste strips any that rode in from another editor instance. The document's own
|
|
303
|
+
// filter re-adds the sentinels it needs, so clipboard text stays clean either way.
|
|
304
|
+
const annotationClipboard = [
|
|
305
|
+
EditorView.clipboardOutputFilter.of((text) => stripSentinels(text)),
|
|
306
|
+
EditorView.clipboardInputFilter.of((text) => stripSentinels(text)),
|
|
307
|
+
];
|
|
308
|
+
/** The annotation overlay: clean-coordinate anchoring, sentinel maintenance, and
|
|
309
|
+
* tint/badge rendering with a caret stop on each side of every edge. `countLabel`
|
|
310
|
+
* builds each badge's accessible label (count + quote, singular/plural), so the
|
|
311
|
+
* host can localize it. */
|
|
312
|
+
// Prec.low keeps the tint the INNERMOST mark, so it hugs the raw text and inherits
|
|
313
|
+
// its font (a heading, bold, etc.) — the token then scales with whatever it marks,
|
|
314
|
+
// instead of sitting at the base font size as an outer wrapper.
|
|
315
|
+
export function annotations(countLabel) {
|
|
316
|
+
const annotationRender = makeAnnotationRender(countLabel);
|
|
317
|
+
const annotationAtomic = EditorView.atomicRanges.of((view) => view.state.field(annotationRender).atomic);
|
|
318
|
+
return [
|
|
319
|
+
annotationField,
|
|
320
|
+
Prec.highest(annotationRender),
|
|
321
|
+
annotationAtomic,
|
|
322
|
+
annotationSentinelFilter,
|
|
323
|
+
annotationHistory,
|
|
324
|
+
annotationClipboard,
|
|
325
|
+
];
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=text-editor.annotations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-editor.annotations.js","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.annotations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** The caret rectangle CodeMirror renders for the plain text just before `dom` (an
|
|
2
|
+
* inline widget), taken from CodeMirror's own coordsAtPos. A widget's own box would
|
|
3
|
+
* otherwise make the caret beside it too tall or too short and flip its height with
|
|
4
|
+
* the cursor's arrival direction; measuring the neighbouring text gives the exact
|
|
5
|
+
* body caret for whatever font and line the widget sits on.
|
|
6
|
+
*
|
|
7
|
+
* Widgets use this in their `coordsAt` to place a stable, text-height caret at their
|
|
8
|
+
* edges. */
|
|
9
|
+
export declare function textCaretBox(dom: HTMLElement): {
|
|
10
|
+
top: number;
|
|
11
|
+
bottom: number;
|
|
12
|
+
} | null;
|
|
13
|
+
//# sourceMappingURL=text-editor.caret.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-editor.caret.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.caret.ts"],"names":[],"mappings":"AAEA;;;;;;;aAOa;AACb,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAcrF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { EditorView } from '@codemirror/view';
|
|
2
|
+
/** The caret rectangle CodeMirror renders for the plain text just before `dom` (an
|
|
3
|
+
* inline widget), taken from CodeMirror's own coordsAtPos. A widget's own box would
|
|
4
|
+
* otherwise make the caret beside it too tall or too short and flip its height with
|
|
5
|
+
* the cursor's arrival direction; measuring the neighbouring text gives the exact
|
|
6
|
+
* body caret for whatever font and line the widget sits on.
|
|
7
|
+
*
|
|
8
|
+
* Widgets use this in their `coordsAt` to place a stable, text-height caret at their
|
|
9
|
+
* edges. */
|
|
10
|
+
export function textCaretBox(dom) {
|
|
11
|
+
const view = EditorView.findFromDOM(dom);
|
|
12
|
+
if (!view)
|
|
13
|
+
return null;
|
|
14
|
+
const pos = view.posAtDOM(dom);
|
|
15
|
+
const line = view.state.doc.lineAt(pos);
|
|
16
|
+
// coordsAtPos reads layout; when a widget's coordsAt is itself invoked during an
|
|
17
|
+
// update/measure pass, CM forbids that reentrant read and throws. Fall back to the
|
|
18
|
+
// caller's own rect in that case rather than letting the exception escape.
|
|
19
|
+
try {
|
|
20
|
+
const coords = view.coordsAtPos(Math.max(line.from, pos - 1), 1);
|
|
21
|
+
return coords ? { top: coords.top, bottom: coords.bottom } : null;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=text-editor.caret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-editor.caret.js","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.caret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;aAOa;AACb,MAAM,UAAU,YAAY,CAAC,GAAgB;IAC5C,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,iFAAiF;IACjF,mFAAmF;IACnF,2EAA2E;IAC3E,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC"}
|