@vonage/vivid 5.1.0 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion-item/definition.cjs +2 -1
- package/accordion-item/definition.js +2 -1
- package/alert/index.cjs +1 -1
- package/alert/index.js +1 -1
- package/audio-player/definition.cjs +41 -6
- package/audio-player/definition.js +41 -6
- package/audio-player/index.cjs +27 -25
- package/audio-player/index.js +88 -62
- package/badge/index.cjs +2 -2
- package/badge/index.js +4 -4
- package/banner/index.cjs +3 -3
- package/banner/index.js +6 -6
- package/breadcrumb-item/index.cjs +1 -1
- package/breadcrumb-item/index.js +1 -1
- package/bundled/affix.cjs +7 -7
- package/bundled/affix.js +5 -5
- package/bundled/anchored.cjs +1 -1
- package/bundled/anchored.js +6 -6
- package/bundled/attribute-binding-behaviour.cjs +1 -1
- package/bundled/attribute-binding-behaviour.js +15 -13
- package/bundled/base-color-picker.cjs +13 -0
- package/bundled/base-color-picker.js +194 -0
- package/bundled/button.cjs +1 -1
- package/bundled/button.js +2 -2
- package/bundled/calendar-picker.template.cjs +1 -1
- package/bundled/calendar-picker.template.js +21 -21
- package/bundled/char-count.cjs +1 -1
- package/bundled/char-count.js +1 -1
- package/bundled/children.cjs +1 -1
- package/bundled/children.js +28 -20
- package/bundled/definition.cjs +3 -3
- package/bundled/definition.js +38 -38
- package/bundled/definition10.cjs +72 -18
- package/bundled/definition10.js +351 -65
- package/bundled/definition11.cjs +19 -10
- package/bundled/definition11.js +66 -37
- package/bundled/definition12.cjs +10 -1
- package/bundled/definition12.js +38 -14
- package/bundled/definition13.cjs +1 -73
- package/bundled/definition13.js +15 -354
- package/bundled/definition15.cjs +1 -1
- package/bundled/definition15.js +1 -1
- package/bundled/definition16.cjs +2 -2
- package/bundled/definition16.js +8 -8
- package/bundled/definition17.cjs +7 -7
- package/bundled/definition17.js +17 -17
- package/bundled/definition19.cjs +17 -14
- package/bundled/definition19.js +85 -77
- package/bundled/definition2.cjs +9 -5
- package/bundled/definition2.js +21 -17
- package/bundled/definition22.cjs +9 -9
- package/bundled/definition22.js +31 -31
- package/bundled/definition3.cjs +1 -1
- package/bundled/definition3.js +1 -1
- package/bundled/definition6.cjs +6 -6
- package/bundled/definition6.js +34 -31
- package/bundled/definition7.cjs +1 -1
- package/bundled/definition7.js +6 -6
- package/bundled/definition8.cjs +2 -2
- package/bundled/definition8.js +4 -4
- package/bundled/definition9.cjs +1 -1
- package/bundled/definition9.js +1 -1
- package/bundled/delegates-aria.cjs +1 -1
- package/bundled/delegates-aria.js +59 -46
- package/bundled/form-associated.cjs +1 -1
- package/bundled/form-associated.js +3 -3
- package/bundled/host-semantics.cjs +1 -1
- package/bundled/host-semantics.js +48 -34
- package/bundled/localized.cjs +1 -1
- package/bundled/localized.js +43 -31
- package/bundled/mixins.cjs +18 -18
- package/bundled/mixins.js +99 -93
- package/bundled/normalize.cjs +1 -0
- package/bundled/normalize.js +7 -0
- package/bundled/picker-field.template.cjs +18 -13
- package/bundled/picker-field.template.js +45 -37
- package/bundled/ref.cjs +1 -1
- package/bundled/ref.js +8 -25
- package/bundled/repeat.cjs +1 -1
- package/bundled/repeat.js +459 -233
- package/bundled/slider.template.cjs +1 -1
- package/bundled/slider.template.js +2 -2
- package/bundled/slotted.cjs +1 -1
- package/bundled/slotted.js +62 -45
- package/bundled/text-field.cjs +1 -1
- package/bundled/text-field.js +1 -1
- package/bundled/time-selection-picker.template.cjs +1 -1
- package/bundled/time-selection-picker.template.js +5 -5
- package/bundled/vivid-element.cjs +1 -1
- package/bundled/vivid-element.js +2126 -1172
- package/bundled/when.cjs +1 -1
- package/bundled/when.js +8 -7
- package/bundled/with-contextual-help.cjs +1 -1
- package/bundled/with-contextual-help.js +17 -7
- package/calendar/definition.cjs +1 -1
- package/calendar/definition.js +2 -2
- package/calendar/index.cjs +1 -1
- package/calendar/index.js +6 -6
- package/calendar-event/index.cjs +1 -1
- package/calendar-event/index.js +1 -1
- package/card/definition.cjs +10 -2
- package/card/definition.js +10 -2
- package/card/index.cjs +19 -11
- package/card/index.js +35 -27
- package/color-picker/definition.cjs +1079 -0
- package/color-picker/definition.js +1073 -0
- package/color-picker/index.cjs +127 -0
- package/color-picker/index.js +726 -0
- package/combobox/definition.cjs +13 -6
- package/combobox/definition.js +14 -7
- package/combobox/index.cjs +15 -11
- package/combobox/index.js +82 -75
- package/contextual-help/index.cjs +1 -1
- package/contextual-help/index.js +1 -1
- package/custom-elements.json +1621 -325
- package/data-grid/definition.cjs +862 -27
- package/data-grid/definition.js +863 -28
- package/data-grid/index.cjs +25 -25
- package/data-grid/index.js +175 -168
- package/date-picker/index.cjs +1 -1
- package/date-picker/index.js +2 -2
- package/date-range-picker/index.cjs +1 -1
- package/date-range-picker/index.js +2 -2
- package/date-time-picker/index.cjs +1 -1
- package/date-time-picker/index.js +2 -2
- package/dial-pad/definition.cjs +55 -1
- package/dial-pad/definition.js +56 -2
- package/dial-pad/index.cjs +21 -18
- package/dial-pad/index.js +138 -104
- package/dialog/definition.cjs +4 -1
- package/dialog/definition.js +4 -1
- package/dialog/index.cjs +21 -18
- package/dialog/index.js +43 -40
- package/empty-state/definition.cjs +7 -2
- package/empty-state/definition.js +7 -2
- package/empty-state/index.cjs +10 -5
- package/empty-state/index.js +18 -13
- package/fab/index.cjs +2 -2
- package/fab/index.js +4 -4
- package/file-picker/definition.cjs +16 -7
- package/file-picker/definition.js +17 -8
- package/file-picker/index.cjs +12 -9
- package/file-picker/index.js +103 -93
- package/icon/definition.cjs +10 -6
- package/icon/definition.js +10 -6
- package/index.cjs +4 -0
- package/index.js +1 -0
- package/lib/accordion-item/accordion-item.d.ts +2 -2
- package/lib/action-group/action-group.d.ts +2 -2
- package/lib/alert/alert.d.ts +4 -4
- package/lib/audio-player/audio-player.d.ts +6 -2
- package/lib/avatar/avatar.d.ts +2 -2
- package/lib/badge/badge.d.ts +2 -2
- package/lib/banner/banner.d.ts +6 -6
- package/lib/breadcrumb/breadcrumb.d.ts +2 -2
- package/lib/breadcrumb-item/breadcrumb-item.d.ts +2 -2
- package/lib/button/button.d.ts +6 -6
- package/lib/button/button.template.d.ts +2 -1
- package/lib/calendar/calendar.d.ts +1 -1
- package/lib/calendar-event/calendar-event.d.ts +2 -2
- package/lib/card/card.d.ts +2 -2
- package/lib/checkbox/checkbox.d.ts +12 -12
- package/lib/color-picker/color-picker.d.ts +2420 -0
- package/lib/color-picker/color-picker.template.d.ts +3 -0
- package/lib/color-picker/definition.d.ts +4 -0
- package/lib/color-picker/locale.d.ts +9 -0
- package/lib/combobox/combobox.d.ts +495 -78
- package/lib/components.d.ts +1 -0
- package/lib/data-grid/data-grid-cell.d.ts +4 -4
- package/lib/data-grid/data-grid-row.d.ts +3 -4
- package/lib/data-grid/data-grid.d.ts +1 -2
- package/lib/date-picker/date-picker.d.ts +906 -894
- package/lib/date-range-picker/date-range-picker.d.ts +596 -590
- package/lib/date-time-picker/date-time-picker.d.ts +907 -895
- package/lib/dial-pad/dial-pad.d.ts +3 -2
- package/lib/dial-pad/dial-pad.template.d.ts +1 -1
- package/lib/dial-pad/locale.d.ts +1 -0
- package/lib/dialog/dialog.d.ts +4 -4
- package/lib/divider/divider.d.ts +2 -2
- package/lib/fab/fab.d.ts +2 -2
- package/lib/file-picker/file-picker.d.ts +495 -78
- package/lib/header/header.d.ts +2 -2
- package/lib/menu/menu.d.ts +5 -4
- package/lib/menu-item/menu-item.d.ts +4 -4
- package/lib/nav/nav.d.ts +2 -2
- package/lib/nav-disclosure/nav-disclosure.d.ts +4 -4
- package/lib/nav-item/nav-item.d.ts +4 -4
- package/lib/note/note.d.ts +2 -2
- package/lib/number-field/number-field.d.ts +19 -18
- package/lib/option/option.d.ts +4 -4
- package/lib/pagination/pagination.d.ts +2 -2
- package/lib/progress/progress.d.ts +2 -2
- package/lib/progress-ring/progress-ring.d.ts +2 -2
- package/lib/radio/radio.d.ts +6 -6
- package/lib/radio-group/radio-group.d.ts +2 -2
- package/lib/range-slider/range-slider.d.ts +6 -6
- package/lib/rich-text-editor/menubar/menubar.d.ts +2 -2
- package/lib/rich-text-editor/rich-text-editor.d.ts +2 -2
- package/lib/searchable-select/option-tag.d.ts +2 -2
- package/lib/searchable-select/searchable-select.d.ts +521 -104
- package/lib/select/select.d.ts +484 -67
- package/lib/selectable-box/selectable-box.d.ts +2 -2
- package/lib/simple-color-picker/locale.d.ts +0 -1
- package/lib/simple-color-picker/simple-color-picker.d.ts +47 -821
- package/lib/slider/slider.d.ts +6 -6
- package/lib/split-button/split-button.d.ts +6 -6
- package/lib/switch/switch.d.ts +4 -4
- package/lib/tab/tab.d.ts +6 -6
- package/lib/tab-panel/tab-panel.d.ts +2 -2
- package/lib/tag/tag.d.ts +6 -6
- package/lib/tag-group/tag-group.d.ts +2 -2
- package/lib/tag-name-map.d.ts +2 -1
- package/lib/text-area/text-area.d.ts +17 -16
- package/lib/text-field/text-field.d.ts +19 -18
- package/lib/time-picker/time-picker.d.ts +579 -573
- package/lib/toggletip/toggletip.d.ts +4 -4
- package/lib/tooltip/tooltip.d.ts +2 -2
- package/lib/tree-item/tree-item.d.ts +4 -4
- package/lib/tree-view/tree-view.d.ts +2 -2
- package/lib/video-player/video-player.d.ts +2 -2
- package/locales/de-DE.cjs +15 -3
- package/locales/de-DE.js +15 -3
- package/locales/en-GB.cjs +15 -3
- package/locales/en-GB.js +15 -3
- package/locales/en-US.cjs +15 -3
- package/locales/en-US.js +15 -3
- package/locales/ja-JP.cjs +15 -3
- package/locales/ja-JP.js +15 -3
- package/locales/zh-CN.cjs +15 -3
- package/locales/zh-CN.js +15 -3
- package/menu/definition.cjs +8 -4
- package/menu/definition.js +9 -5
- package/note/index.cjs +2 -2
- package/note/index.js +4 -4
- package/number-field/definition.cjs +3 -3
- package/number-field/definition.js +4 -4
- package/number-field/index.cjs +8 -8
- package/number-field/index.js +41 -40
- package/option/index.cjs +1 -1
- package/option/index.js +1 -1
- package/package.json +5 -5
- package/pagination/definition.cjs +2 -1
- package/pagination/definition.js +2 -1
- package/pagination/index.cjs +12 -12
- package/pagination/index.js +59 -59
- package/progress/index.cjs +1 -1
- package/progress/index.js +1 -1
- package/radio/definition.cjs +9 -9
- package/radio/definition.js +10 -10
- package/radio-group/definition.cjs +2 -1
- package/radio-group/definition.js +2 -1
- package/radio-group/index.cjs +5 -5
- package/radio-group/index.js +80 -77
- package/range-slider/index.cjs +1 -1
- package/range-slider/index.js +1 -1
- package/rich-text-editor/definition.cjs +1 -1
- package/rich-text-editor/definition.js +2 -2
- package/rich-text-editor/index.cjs +2 -2
- package/rich-text-editor/index.js +3 -3
- package/searchable-select/definition.cjs +30 -21
- package/searchable-select/definition.js +31 -22
- package/searchable-select/index.cjs +28 -25
- package/searchable-select/index.js +149 -140
- package/select/definition.cjs +15 -7
- package/select/definition.js +16 -8
- package/selectable-box/definition.cjs +1 -1
- package/selectable-box/definition.js +1 -1
- package/selectable-box/index.cjs +3 -3
- package/selectable-box/index.js +20 -20
- package/shared/aria/aria-change-subscription.d.ts +0 -1
- package/shared/aria/aria-mixin.d.ts +2 -2
- package/shared/aria/delegate-aria-behavior.d.ts +5 -10
- package/shared/aria/delegates-aria.d.ts +3 -3
- package/shared/aria/host-semantics-behavior.d.ts +5 -8
- package/shared/aria/host-semantics.d.ts +3 -3
- package/shared/color-picker/base-color-picker.d.ts +436 -0
- package/shared/color-picker/index.d.ts +1 -0
- package/shared/color-picker/locale.d.ts +3 -0
- package/shared/color-picker/utils.d.ts +1 -0
- package/shared/deprecation/replaced-props.d.ts +317 -2
- package/shared/design-system/defineVividComponent.d.ts +2 -2
- package/shared/feedback/feedback-message.d.ts +2 -2
- package/shared/feedback/mixins.d.ts +4 -4
- package/shared/foundation/button/button.d.ts +4 -4
- package/shared/foundation/form-associated/form-associated.d.ts +4 -4
- package/shared/foundation/vivid-element/vivid-element.d.ts +335 -8
- package/shared/localization/Locale.d.ts +4 -0
- package/shared/patterns/affix.d.ts +4 -4
- package/shared/patterns/anchored.d.ts +4 -4
- package/shared/patterns/char-count/char-count.d.ts +2 -2
- package/shared/patterns/form-elements/form-element.d.ts +4 -4
- package/shared/patterns/form-elements/index.d.ts +1 -0
- package/shared/patterns/form-elements/with-contextual-help.d.ts +7 -6
- package/shared/patterns/form-elements/with-error-text.d.ts +6 -6
- package/shared/patterns/form-elements/with-success-text.d.ts +2 -2
- package/shared/patterns/linkable.d.ts +2 -2
- package/shared/patterns/localized.d.ts +2 -2
- package/shared/patterns/trapped-focus.d.ts +2 -2
- package/shared/picker-field/mixins/calendar-picker.d.ts +454 -451
- package/shared/picker-field/mixins/calendar-picker.template.d.ts +454 -451
- package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +2 -2
- package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +600 -594
- package/shared/picker-field/mixins/single-date-picker.d.ts +746 -737
- package/shared/picker-field/mixins/single-value-picker.d.ts +451 -448
- package/shared/picker-field/mixins/time-selection-picker.d.ts +580 -574
- package/shared/picker-field/mixins/time-selection-picker.template.d.ts +579 -573
- package/shared/picker-field/picker-field.d.ts +495 -78
- package/shared/templating/attribute-binding-behaviour.d.ts +3 -4
- package/shared/templating/render-in-light-dom.d.ts +13 -12
- package/side-drawer/index.cjs +1 -1
- package/side-drawer/index.js +1 -1
- package/simple-color-picker/definition.cjs +28 -215
- package/simple-color-picker/definition.js +29 -216
- package/simple-color-picker/index.cjs +9 -21
- package/simple-color-picker/index.js +71 -185
- package/styles/core/all.css +1 -1
- package/styles/core/theme.css +1 -1
- package/styles/core/typography.css +1 -1
- package/styles/tokens/theme-dark.css +4 -4
- package/styles/tokens/theme-light.css +4 -4
- package/styles/tokens/vivid-2-compat.css +1 -1
- package/switch/index.cjs +2 -2
- package/switch/index.js +4 -4
- package/tabs/definition.cjs +1 -1
- package/tabs/definition.js +2 -2
- package/tabs/index.cjs +2 -2
- package/tabs/index.js +16 -16
- package/tag/index.cjs +1 -1
- package/tag/index.js +1 -1
- package/text-area/definition.cjs +1 -1
- package/text-area/definition.js +1 -1
- package/text-area/index.cjs +3 -3
- package/text-area/index.js +9 -9
- package/text-field/definition.cjs +3 -3
- package/text-field/definition.js +4 -4
- package/text-field/index.cjs +1 -1
- package/text-field/index.js +1 -1
- package/time-picker/index.cjs +1 -1
- package/time-picker/index.js +2 -2
- package/toggletip/definition.cjs +1 -1
- package/toggletip/definition.js +2 -2
- package/tree-view/definition.cjs +1 -1
- package/tree-view/definition.js +2 -2
- package/tree-view/index.cjs +2 -2
- package/tree-view/index.js +6 -6
- package/unbundled/_commonjsHelpers.cjs +36 -0
- package/unbundled/_commonjsHelpers.js +32 -0
- package/unbundled/affix.cjs +1 -1
- package/unbundled/affix.js +1 -1
- package/unbundled/attribute-binding-behaviour.cjs +11 -10
- package/unbundled/attribute-binding-behaviour.js +11 -10
- package/unbundled/base-color-picker.cjs +278 -0
- package/unbundled/base-color-picker.js +275 -0
- package/unbundled/button.cjs +1 -1
- package/unbundled/button.js +2 -2
- package/unbundled/calendar-picker.template.cjs +3 -3
- package/unbundled/calendar-picker.template.js +4 -4
- package/unbundled/definition2.cjs +1 -1
- package/unbundled/definition2.js +2 -2
- package/unbundled/definition3.cjs +2 -1
- package/unbundled/definition3.js +2 -1
- package/unbundled/delegates-aria.cjs +67 -33
- package/unbundled/delegates-aria.js +69 -35
- package/unbundled/form-associated.cjs +2 -2
- package/unbundled/form-associated.js +3 -3
- package/unbundled/host-semantics.cjs +47 -22
- package/unbundled/host-semantics.js +48 -23
- package/unbundled/mixins.cjs +34 -27
- package/unbundled/mixins.js +35 -28
- package/unbundled/picker-field.template.cjs +13 -5
- package/unbundled/picker-field.template.js +14 -6
- package/unbundled/text-field.cjs +1 -1
- package/unbundled/text-field.js +1 -1
- package/unbundled/time-selection-picker.template.cjs +4 -4
- package/unbundled/time-selection-picker.template.js +5 -5
- package/unbundled/vivid-element.cjs +22 -15
- package/unbundled/vivid-element.js +23 -15
- package/unbundled/with-contextual-help.cjs +11 -0
- package/unbundled/with-contextual-help.js +11 -0
- package/video-player/definition.cjs +69007 -1
- package/video-player/definition.js +69007 -1
- package/video-player/index.cjs +35 -35
- package/video-player/index.js +1358 -1384
- package/visually-hidden/index.cjs +1 -1
- package/visually-hidden/index.js +1 -1
- package/vivid.api.json +347 -69
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const O=require("../bundled/vivid-element.cjs"),Zt=require("../bundled/definition3.cjs"),Br=require("../bundled/definition14.cjs"),ys=require("../bundled/
|
|
1
|
+
"use strict";const O=require("../bundled/vivid-element.cjs"),Zt=require("../bundled/definition3.cjs"),Br=require("../bundled/definition14.cjs"),ys=require("../bundled/definition11.cjs"),ft=require("../bundled/definition18.cjs"),Fr=require("../bundled/definition6.cjs"),Vr=require("../bundled/definition7.cjs"),Lr=require("../bundled/definition19.cjs"),$r=require("../bundled/divider.cjs"),xs=require("../bundled/option.cjs"),Qt=require("../bundled/repeat.cjs"),gn=require("../bundled/class-names.cjs"),qr=require("../bundled/localized.cjs"),Wr=require("../bundled/definition2.cjs"),bs=require("../bundled/when.cjs"),ks='@charset "UTF-8";.ProseMirror li{position:relative}.ProseMirror-hideselection *::selection{background:transparent}.ProseMirror-hideselection *::-moz-selection{background:transparent}.ProseMirror-hideselection{caret-color:transparent}.ProseMirror [draggable][contenteditable=false]{user-select:text}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";position:absolute;inset:-2px -2px -2px -32px;border:2px solid #8cf;pointer-events:none}img.ProseMirror-separator{display:inline!important;border:none!important;margin:0!important}.ProseMirror-textblock-dropdown{min-width:3em}.ProseMirror-menu{margin:0 -4px;line-height:1}.ProseMirror-tooltip .ProseMirror-menu{width:-webkit-fit-content;width:fit-content;white-space:pre}.ProseMirror-menuitem{margin-right:3px;display:inline-block}.ProseMirror-menuseparator{border-right:1px solid #ddd;margin-right:3px}.ProseMirror-menu-dropdown,.ProseMirror-menu-dropdown-menu{font-size:90%;white-space:nowrap}.ProseMirror-menu-dropdown{vertical-align:1px;cursor:pointer;position:relative;padding-right:15px}.ProseMirror-menu-dropdown-wrap{padding:1px 0 1px 4px;display:inline-block;position:relative}.ProseMirror-menu-dropdown:after{content:"";border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid currentColor;opacity:.6;position:absolute;right:4px;top:calc(50% - 2px)}.ProseMirror-menu-dropdown-menu,.ProseMirror-menu-submenu{position:absolute;background:#fff;color:#666;border:1px solid #aaa;padding:2px}.ProseMirror-menu-dropdown-menu{z-index:15;min-width:6em}.ProseMirror-menu-dropdown-item{cursor:pointer;padding:2px 8px 2px 4px}@media (hover: hover){.ProseMirror-menu-dropdown-item:hover{background:#f2f2f2}}.ProseMirror-menu-submenu-wrap{position:relative;margin-right:-4px}.ProseMirror-menu-submenu-label:after{content:"";border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid currentColor;opacity:.6;position:absolute;right:4px;top:calc(50% - 4px)}.ProseMirror-menu-submenu{display:none;min-width:4em;left:100%;top:-3px}.ProseMirror-menu-active{background:#eee;border-radius:4px}.ProseMirror-menu-disabled{opacity:.3}.ProseMirror-menu-submenu-wrap:hover .ProseMirror-menu-submenu,.ProseMirror-menu-submenu-wrap-active .ProseMirror-menu-submenu{display:block}.ProseMirror-menubar{border-top-left-radius:inherit;border-top-right-radius:inherit;position:relative;min-height:1em;color:#666;padding:1px 6px;top:0;left:0;right:0;border-bottom:1px solid silver;background:#fff;z-index:10;-moz-box-sizing:border-box;box-sizing:border-box;overflow:visible}.ProseMirror-icon{display:inline-block;line-height:.8;vertical-align:-2px;padding:2px 8px;cursor:pointer}.ProseMirror-menu-disabled.ProseMirror-icon{cursor:default}.ProseMirror-icon svg{fill:currentColor;height:1em}.ProseMirror-icon span{vertical-align:text-top}.ProseMirror-gapcursor{display:none;pointer-events:none;position:absolute}.ProseMirror-gapcursor:after{content:"";display:block;position:absolute;top:-2px;width:20px;border-top:1px solid black;animation:ProseMirror-cursor-blink 1.1s steps(2,start) infinite}@keyframes ProseMirror-cursor-blink{to{visibility:hidden}}.ProseMirror-focused .ProseMirror-gapcursor{display:block}.ProseMirror-example-setup-style hr{padding:2px 10px;border:none;margin:1em 0}.ProseMirror-example-setup-style hr:after{content:"";display:block;height:1px;background-color:silver;line-height:2px}.ProseMirror ul,.ProseMirror ol{padding-left:30px}.ProseMirror blockquote{padding-left:1em;border-left:3px solid #eee;margin-left:0;margin-right:0}.ProseMirror-example-setup-style img{cursor:default}.ProseMirror-prompt{background:#fff;padding:5px 10px 5px 15px;border:1px solid silver;position:fixed;border-radius:3px;z-index:11;box-shadow:-.5px 2px 5px #0003}.ProseMirror-prompt h5{margin:0;font-weight:400;font-size:100%;color:#444}.ProseMirror-prompt input[type=text],.ProseMirror-prompt textarea{background:#eee;border:none;outline:none}.ProseMirror-prompt input[type=text]{padding:0 4px}.ProseMirror-prompt-close{position:absolute;left:2px;top:1px;color:#666;border:none;background:transparent;padding:0}.ProseMirror-prompt-close:after{content:"✕";font-size:12px}.ProseMirror-invalid{background:#ffc;border:1px solid #cc7;border-radius:4px;padding:5px 10px;position:absolute;min-width:10em}.ProseMirror-prompt-buttons{margin-top:5px;display:none}.placeholder:before{position:absolute;color:var(--vvd-color-neutral-600);content:attr(data-placeholder);font:var(--vvd-typography-base);pointer-events:none}.editor{box-sizing:border-box;background:var(--vvd-color-canvas);background-clip:padding-box;color:var(--vvd-color-canvas-text)}.ProseMirror{position:relative;box-sizing:border-box;padding:10px 16px;block-size:120px;font:var(--vvd-typography-base);font-feature-settings:"liga" 0;font-variant-ligatures:none;line-height:1.2;outline:none;overflow-y:auto;white-space:break-spaces;word-wrap:break-word}.ProseMirror pre{white-space:pre-wrap}.ProseMirror p{margin-bottom:1em}.ProseMirror p:first-child,.ProseMirror h1:first-child,.ProseMirror h2:first-child,.ProseMirror h3:first-child,.ProseMirror h4:first-child,.ProseMirror h5:first-child,.ProseMirror h6:first-child{margin-top:10px}h2{font:var(--vvd-typography-heading-4)}h3{font:var(--vvd-typography-base-extended)}p{font:var(--vvd-typography-base)}:host{display:block}#editor{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}#editor{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}#editor ::-webkit-scrollbar{width:4px}#editor ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}#editor ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}#editor{position:relative;display:flex;flex-direction:column;block-size:100%;overflow-y:auto}[contenteditable=true]{overflow:unset;block-size:unset}#attachments-wrapper{order:1}#attachments-wrapper .divider{padding:0 12px}.hidden{display:none}.drag-overlay{position:absolute;z-index:10;display:none;align-items:center;justify-content:center;border:1px dashed var(--vvd-color-cta-400);border-radius:8px;background:var(--vvd-color-cta-100);font:var(--vvd-typography-base);inset:0;opacity:.8;pointer-events:none;transition:opacity .2s}.drag-over .drag-overlay{display:flex}';function It(r,e,t){return r.$emit(e,t,{bubbles:!1,composed:!1}),!0}const Jr=[{text:"Bold",icon:"bold-line",value:"bold"},{text:"Italic",icon:"italic-line",value:"italics"},{text:"Underline",icon:"underline-line",value:"underline"},{text:"Strikethrough",icon:"strikethrough-line",value:"strikethrough"},{text:"Monospace",icon:"monospace-line",value:"monospace"}],Ss=[{text:"Extra Large",value:"extra-large"},{text:"Large",value:"large"},{text:"Normal",value:"normal"},{text:"Small",value:"small"}],Ms=r=>{const e=r;if(!e||!e.detail||e.detail.textBlockType===void 0)return;e.target.shadowRoot.querySelector("#text-block").setAttribute("current-value",e.detail.textBlockType)},Cs=r=>{const e=r;if(!e||!e.detail)return;const n=e.target.shadowRoot.querySelectorAll("#text-decoration .selection-button");n.forEach(i=>i.removeAttribute("active")),e.detail.textDecoration!==void 0&&Jr.forEach((i,s)=>{e.detail.textDecoration.indexOf(i.value)>=0&&n[s].toggleAttribute("active",!0)})},Os=r=>{const e=r;if(!e||!e.detail)return;const t=e.target,n=e.detail.textSize??"normal";t.shadowRoot.querySelectorAll(".menubar-selector-menuitem").forEach(s=>{s.toggleAttribute("checked",s.getAttribute("value")===n)})},Kr={textBlock:{registerStateProperty:function(r){r.addEventListener("text-styles-changed",Ms)},render:function(r){const e=r.tagFor(Lr.Select),t=r.tagFor(xs.ListboxOption),n=r.tagFor(ft.Tooltip);return O.html`
|
|
2
2
|
<${n} text="${(i,{parent:s})=>s.locale.richTextEditor.textBlockType}" placement="top">
|
|
3
3
|
<${e}
|
|
4
4
|
scale="condensed"
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
|
|
97
97
|
`);return{dom:a,text:u,slice:e}}function Wi(r,e,t,n,i){let s=i.parent.type.spec.code,o,l;if(!t&&!e)return null;let a=e&&(n||s||!t);if(a){if(r.someProp("transformPastedText",u=>{e=u(e,s||n,r)}),s)return e?new x(y.from(r.state.schema.text(e.replace(/\r\n?/g,`
|
|
98
98
|
`))),0,0):x.empty;let f=r.someProp("clipboardTextParser",u=>u(e,i,n,r));if(f)l=f;else{let u=i.marks(),{schema:p}=r.state,d=Je.fromSchema(p);o=document.createElement("div"),e.split(/(?:\r\n?|\n)+/).forEach(m=>{let g=o.appendChild(document.createElement("p"));m&&g.appendChild(d.serializeNode(p.text(m,u)))})}}else r.someProp("transformPastedHTML",f=>{t=f(t,r)}),o=Tl(t),it&&Nl(o);let c=o&&o.querySelector("[data-pm-slice]"),h=c&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(c.getAttribute("data-pm-slice")||"");if(h&&h[3])for(let f=+h[3];f>0;f--){let u=o.firstChild;for(;u&&u.nodeType!=1;)u=u.nextSibling;if(!u)break;o=u}if(l||(l=(r.someProp("clipboardParser")||r.someProp("domParser")||Fe.fromSchema(r.state.schema)).parseSlice(o,{preserveWhitespace:!!(a||h),context:i,ruleFromNode(u){return u.nodeName=="BR"&&!u.nextSibling&&u.parentNode&&!Cl.test(u.parentNode.nodeName)?{ignore:!0}:null}})),h)l=Dl(kr(l,+h[1],+h[2]),h[4]);else if(l=x.maxOpen(Ol(l.content,i),!0),l.openStart||l.openEnd){let f=0,u=0;for(let p=l.content.firstChild;f<l.openStart&&!p.type.spec.isolating;f++,p=p.firstChild);for(let p=l.content.lastChild;u<l.openEnd&&!p.type.spec.isolating;u++,p=p.lastChild);l=kr(l,f,u)}return r.someProp("transformPasted",f=>{l=f(l,r)}),l}const Cl=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function Ol(r,e){if(r.childCount<2)return r;for(let t=e.depth;t>=0;t--){let i=e.node(t).contentMatchAt(e.index(t)),s,o=[];if(r.forEach(l=>{if(!o)return;let a=i.findWrapping(l.type),c;if(!a)return o=null;if(c=o.length&&s.length&&Ki(a,s,l,o[o.length-1],0))o[o.length-1]=c;else{o.length&&(o[o.length-1]=Hi(o[o.length-1],s.length));let h=Ji(l,a);o.push(h),i=i.matchType(h.type),s=a}}),o)return y.from(o)}return r}function Ji(r,e,t=0){for(let n=e.length-1;n>=t;n--)r=e[n].create(null,y.from(r));return r}function Ki(r,e,t,n,i){if(i<r.length&&i<e.length&&r[i]==e[i]){let s=Ki(r,e,t,n.lastChild,i+1);if(s)return n.copy(n.content.replaceChild(n.childCount-1,s));if(n.contentMatchAt(n.childCount).matchType(i==r.length-1?t.type:r[i+1]))return n.copy(n.content.append(y.from(Ji(t,r,i+1))))}}function Hi(r,e){if(e==0)return r;let t=r.content.replaceChild(r.childCount-1,Hi(r.lastChild,e-1)),n=r.contentMatchAt(r.childCount).fillBefore(y.empty,!0);return r.copy(t.append(n))}function un(r,e,t,n,i,s){let o=e<0?r.firstChild:r.lastChild,l=o.content;return r.childCount>1&&(s=0),i<n-1&&(l=un(l,e,t,n,i+1,s)),i>=t&&(l=e<0?o.contentMatchAt(0).fillBefore(l,s<=i).append(l):l.append(o.contentMatchAt(o.childCount).fillBefore(y.empty,!0))),r.replaceChild(e<0?0:r.childCount-1,o.copy(l))}function kr(r,e,t){return e<r.openStart&&(r=new x(un(r.content,-1,e,r.openStart,0,r.openEnd),e,r.openEnd)),t<r.openEnd&&(r=new x(un(r.content,1,t,r.openEnd,0,0),r.openStart,t)),r}const Ui={thead:["table"],tbody:["table"],tfoot:["table"],caption:["table"],colgroup:["table"],col:["table","colgroup"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","tbody","tr"]};let Sr=null;function _i(){return Sr||(Sr=document.implementation.createHTMLDocument("title"))}let Ht=null;function wl(r){let e=window.trustedTypes;return e?(Ht||(Ht=e.defaultPolicy||e.createPolicy("ProseMirrorClipboard",{createHTML:t=>t})),Ht.createHTML(r)):r}function Tl(r){let e=/^(\s*<meta [^>]*>)*/.exec(r);e&&(r=r.slice(e[0].length));let t=_i().createElement("div"),n=/<([a-z][^>\s]+)/i.exec(r),i;if((i=n&&Ui[n[1].toLowerCase()])&&(r=i.map(s=>"<"+s+">").join("")+r+i.map(s=>"</"+s+">").reverse().join("")),t.innerHTML=wl(r),i)for(let s=0;s<i.length;s++)t=t.querySelector(i[s])||t;return t}function Nl(r){let e=r.querySelectorAll(z?"span:not([class]):not([style])":"span.Apple-converted-space");for(let t=0;t<e.length;t++){let n=e[t];n.childNodes.length==1&&n.textContent==" "&&n.parentNode&&n.parentNode.replaceChild(r.ownerDocument.createTextNode(" "),n)}}function Dl(r,e){if(!r.size)return r;let t=r.content.firstChild.type.schema,n;try{n=JSON.parse(e)}catch{return r}let{content:i,openStart:s,openEnd:o}=r;for(let l=n.length-2;l>=0;l-=2){let a=t.nodes[n[l]];if(!a||a.hasRequiredAttrs())break;i=y.from(a.create(n[l+1],i)),s++,o++}return new x(i,s,o)}const V={},L={},El={touchstart:!0,touchmove:!0};class Al{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:"",button:0},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastChromeDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}}function vl(r){for(let e in V){let t=V[e];r.dom.addEventListener(e,r.input.eventHandlers[e]=n=>{Rl(r,n)&&!Nn(r,n)&&(r.editable||!(n.type in L))&&t(r,n)},El[e]?{passive:!0}:void 0)}F&&r.dom.addEventListener("input",()=>null),pn(r)}function de(r,e){r.input.lastSelectionOrigin=e,r.input.lastSelectionTime=Date.now()}function Pl(r){r.domObserver.stop();for(let e in r.input.eventHandlers)r.dom.removeEventListener(e,r.input.eventHandlers[e]);clearTimeout(r.input.composingTimeout),clearTimeout(r.input.lastIOSEnterFallbackTimeout)}function pn(r){r.someProp("handleDOMEvents",e=>{for(let t in e)r.input.eventHandlers[t]||r.dom.addEventListener(t,r.input.eventHandlers[t]=n=>Nn(r,n))})}function Nn(r,e){return r.someProp("handleDOMEvents",t=>{let n=t[e.type];return n?n(r,e)||e.defaultPrevented:!1})}function Rl(r,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target;t!=r.dom;t=t.parentNode)if(!t||t.nodeType==11||t.pmViewDesc&&t.pmViewDesc.stopEvent(e))return!1;return!0}function Il(r,e){!Nn(r,e)&&V[e.type]&&(r.editable||!(e.type in L))&&V[e.type](r,e)}L.keydown=(r,e)=>{let t=e;if(r.input.shiftKey=t.keyCode==16||t.shiftKey,!Gi(r,t)&&(r.input.lastKeyCode=t.keyCode,r.input.lastKeyCodeTime=Date.now(),!(ie&&z&&t.keyCode==13)))if(t.keyCode!=229&&r.domObserver.forceFlush(),$e&&t.keyCode==13&&!t.ctrlKey&&!t.altKey&&!t.metaKey){let n=Date.now();r.input.lastIOSEnter=n,r.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{r.input.lastIOSEnter==n&&(r.someProp("handleKeyDown",i=>i(r,be(13,"Enter"))),r.input.lastIOSEnter=0)},200)}else r.someProp("handleKeyDown",n=>n(r,t))||Ml(r,t)?t.preventDefault():de(r,"key")};L.keyup=(r,e)=>{e.keyCode==16&&(r.input.shiftKey=!1)};L.keypress=(r,e)=>{let t=e;if(Gi(r,t)||!t.charCode||t.ctrlKey&&!t.altKey||U&&t.metaKey)return;if(r.someProp("handleKeyPress",i=>i(r,t))){t.preventDefault();return}let n=r.state.selection;if(!(n instanceof M)||!n.$from.sameParent(n.$to)){let i=String.fromCharCode(t.charCode),s=()=>r.state.tr.insertText(i).scrollIntoView();!/[\r\n]/.test(i)&&!r.someProp("handleTextInput",o=>o(r,n.$from.pos,n.$to.pos,i,s))&&r.dispatch(s()),t.preventDefault()}};function vt(r){return{left:r.clientX,top:r.clientY}}function zl(r,e){let t=e.x-r.clientX,n=e.y-r.clientY;return t*t+n*n<100}function Dn(r,e,t,n,i){if(n==-1)return!1;let s=r.state.doc.resolve(n);for(let o=s.depth+1;o>0;o--)if(r.someProp(e,l=>o>s.depth?l(r,t,s.nodeAfter,s.before(o),i,!0):l(r,t,s.node(o),s.before(o),i,!1)))return!0;return!1}function Be(r,e,t){if(r.focused||r.focus(),r.state.selection.eq(e))return;let n=r.state.tr.setSelection(e);n.setMeta("pointer",!0),r.dispatch(n)}function Bl(r,e){if(e==-1)return!1;let t=r.state.doc.resolve(e),n=t.nodeAfter;return n&&n.isAtom&&k.isSelectable(n)?(Be(r,new k(t)),!0):!1}function Fl(r,e){if(e==-1)return!1;let t=r.state.selection,n,i;t instanceof k&&(n=t.node);let s=r.state.doc.resolve(e);for(let o=s.depth+1;o>0;o--){let l=o>s.depth?s.nodeAfter:s.node(o);if(k.isSelectable(l)){n&&t.$from.depth>0&&o>=t.$from.depth&&s.before(t.$from.depth+1)==t.$from.pos?i=s.before(t.$from.depth):i=s.before(o);break}}return i!=null?(Be(r,k.create(r.state.doc,i)),!0):!1}function Vl(r,e,t,n,i){return Dn(r,"handleClickOn",e,t,n)||r.someProp("handleClick",s=>s(r,e,n))||(i?Fl(r,t):Bl(r,t))}function Ll(r,e,t,n){return Dn(r,"handleDoubleClickOn",e,t,n)||r.someProp("handleDoubleClick",i=>i(r,e,n))}function $l(r,e,t,n){return Dn(r,"handleTripleClickOn",e,t,n)||r.someProp("handleTripleClick",i=>i(r,e,n))||ql(r,t,n)}function ql(r,e,t){if(t.button!=0)return!1;let n=r.state.doc;if(e==-1)return n.inlineContent?(Be(r,M.create(n,0,n.content.size)),!0):!1;let i=n.resolve(e);for(let s=i.depth+1;s>0;s--){let o=s>i.depth?i.nodeAfter:i.node(s),l=i.before(s);if(o.inlineContent)Be(r,M.create(n,l+1,l+1+o.content.size));else if(k.isSelectable(o))Be(r,k.create(n,l));else continue;return!0}}function En(r){return Ct(r)}const ji=U?"metaKey":"ctrlKey";V.mousedown=(r,e)=>{let t=e;r.input.shiftKey=t.shiftKey;let n=En(r),i=Date.now(),s="singleClick";i-r.input.lastClick.time<500&&zl(t,r.input.lastClick)&&!t[ji]&&r.input.lastClick.button==t.button&&(r.input.lastClick.type=="singleClick"?s="doubleClick":r.input.lastClick.type=="doubleClick"&&(s="tripleClick")),r.input.lastClick={time:i,x:t.clientX,y:t.clientY,type:s,button:t.button};let o=r.posAtCoords(vt(t));o&&(s=="singleClick"?(r.input.mouseDown&&r.input.mouseDown.done(),r.input.mouseDown=new Wl(r,o,t,!!n)):(s=="doubleClick"?Ll:$l)(r,o.pos,o.inside,t)?t.preventDefault():de(r,"pointer"))};class Wl{constructor(e,t,n,i){this.view=e,this.pos=t,this.event=n,this.flushed=i,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=e.state.doc,this.selectNode=!!n[ji],this.allowDefault=n.shiftKey;let s,o;if(t.inside>-1)s=e.state.doc.nodeAt(t.inside),o=t.inside;else{let h=e.state.doc.resolve(t.pos);s=h.parent,o=h.depth?h.before():0}const l=i?null:n.target,a=l?e.docView.nearestDesc(l,!0):null;this.target=a&&a.dom.nodeType==1?a.dom:null;let{selection:c}=e.state;(n.button==0&&s.type.spec.draggable&&s.type.spec.selectable!==!1||c instanceof k&&c.from<=o&&c.to>o)&&(this.mightDrag={node:s,pos:o,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&Y&&!this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),e.root.addEventListener("mouseup",this.up=this.up.bind(this)),e.root.addEventListener("mousemove",this.move=this.move.bind(this)),de(e,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>se(this.view)),this.view.input.mouseDown=null}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let t=this.pos;this.view.state.doc!=this.startDoc&&(t=this.view.posAtCoords(vt(e))),this.updateAllowDefault(e),this.allowDefault||!t?de(this.view,"pointer"):Vl(this.view,t.pos,t.inside,e,this.selectNode)?e.preventDefault():e.button==0&&(this.flushed||F&&this.mightDrag&&!this.mightDrag.node.isAtom||z&&!this.view.state.selection.visible&&Math.min(Math.abs(t.pos-this.view.state.selection.from),Math.abs(t.pos-this.view.state.selection.to))<=2)?(Be(this.view,C.near(this.view.state.doc.resolve(t.pos))),e.preventDefault()):de(this.view,"pointer")}move(e){this.updateAllowDefault(e),de(this.view,"pointer"),e.buttons==0&&this.done()}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}}V.touchstart=r=>{r.input.lastTouch=Date.now(),En(r),de(r,"pointer")};V.touchmove=r=>{r.input.lastTouch=Date.now(),de(r,"pointer")};V.contextmenu=r=>En(r);function Gi(r,e){return r.composing?!0:F&&Math.abs(e.timeStamp-r.input.compositionEndedAt)<500?(r.input.compositionEndedAt=-2e8,!0):!1}const Jl=ie?5e3:-1;L.compositionstart=L.compositionupdate=r=>{if(!r.composing){r.domObserver.flush();let{state:e}=r,t=e.selection.$to;if(e.selection instanceof M&&(e.storedMarks||!t.textOffset&&t.parentOffset&&t.nodeBefore.marks.some(n=>n.type.spec.inclusive===!1)))r.markCursor=r.state.storedMarks||t.marks(),Ct(r,!0),r.markCursor=null;else if(Ct(r,!e.selection.empty),Y&&e.selection.empty&&t.parentOffset&&!t.textOffset&&t.nodeBefore.marks.length){let n=r.domSelectionRange();for(let i=n.focusNode,s=n.focusOffset;i&&i.nodeType==1&&s!=0;){let o=s<0?i.lastChild:i.childNodes[s-1];if(!o)break;if(o.nodeType==3){let l=r.domSelection();l&&l.collapse(o,o.nodeValue.length);break}else i=o,s=-1}}r.input.composing=!0}Yi(r,Jl)};L.compositionend=(r,e)=>{r.composing&&(r.input.composing=!1,r.input.compositionEndedAt=e.timeStamp,r.input.compositionPendingChanges=r.domObserver.pendingRecords().length?r.input.compositionID:0,r.input.compositionNode=null,r.input.compositionPendingChanges&&Promise.resolve().then(()=>r.domObserver.flush()),r.input.compositionID++,Yi(r,20))};function Yi(r,e){clearTimeout(r.input.composingTimeout),e>-1&&(r.input.composingTimeout=setTimeout(()=>Ct(r),e))}function Xi(r){for(r.composing&&(r.input.composing=!1,r.input.compositionEndedAt=Hl());r.input.compositionNodes.length>0;)r.input.compositionNodes.pop().markParentsDirty()}function Kl(r){let e=r.domSelectionRange();if(!e.focusNode)return null;let t=Bo(e.focusNode,e.focusOffset),n=Fo(e.focusNode,e.focusOffset);if(t&&n&&t!=n){let i=n.pmViewDesc,s=r.domObserver.lastChangedTextNode;if(t==s||n==s)return s;if(!i||!i.isText(n.nodeValue))return n;if(r.input.compositionNode==n){let o=t.pmViewDesc;if(!(!o||!o.isText(t.nodeValue)))return n}}return t||n}function Hl(){let r=document.createEvent("Event");return r.initEvent("event",!0,!0),r.timeStamp}function Ct(r,e=!1){if(!(ie&&r.domObserver.flushingSoon>=0)){if(r.domObserver.forceFlush(),Xi(r),e||r.docView&&r.docView.dirty){let t=On(r),n=r.state.selection;return t&&!t.eq(n)?r.dispatch(r.state.tr.setSelection(t)):(r.markCursor||e)&&!n.$from.node(n.$from.sharedDepth(n.to)).inlineContent?r.dispatch(r.state.tr.deleteSelection()):r.updateState(r.state),!0}return!1}}function Ul(r,e){if(!r.dom.parentNode)return;let t=r.dom.parentNode.appendChild(document.createElement("div"));t.appendChild(e),t.style.cssText="position: fixed; left: -10000px; top: 10px";let n=getSelection(),i=document.createRange();i.selectNodeContents(e),r.dom.blur(),n.removeAllRanges(),n.addRange(i),setTimeout(()=>{t.parentNode&&t.parentNode.removeChild(t),r.focus()},50)}const et=q&&ue<15||$e&&Wo<604;V.copy=L.cut=(r,e)=>{let t=e,n=r.state.selection,i=t.type=="cut";if(n.empty)return;let s=et?null:t.clipboardData,o=n.content(),{dom:l,text:a}=Tn(r,o);s?(t.preventDefault(),s.clearData(),s.setData("text/html",l.innerHTML),s.setData("text/plain",a)):Ul(r,l),i&&r.dispatch(r.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))};function _l(r){return r.openStart==0&&r.openEnd==0&&r.content.childCount==1?r.content.firstChild:null}function jl(r,e){if(!r.dom.parentNode)return;let t=r.input.shiftKey||r.state.selection.$from.parent.type.spec.code,n=r.dom.parentNode.appendChild(document.createElement(t?"textarea":"div"));t||(n.contentEditable="true"),n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus();let i=r.input.shiftKey&&r.input.lastKeyCode!=45;setTimeout(()=>{r.focus(),n.parentNode&&n.parentNode.removeChild(n),t?tt(r,n.value,null,i,e):tt(r,n.textContent,n.innerHTML,i,e)},50)}function tt(r,e,t,n,i){let s=Wi(r,e,t,n,r.state.selection.$from);if(r.someProp("handlePaste",a=>a(r,i,s||x.empty)))return!0;if(!s)return!1;let o=_l(s),l=o?r.state.tr.replaceSelectionWith(o,n):r.state.tr.replaceSelection(s);return r.dispatch(l.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function Zi(r){let e=r.getData("text/plain")||r.getData("Text");if(e)return e;let t=r.getData("text/uri-list");return t?t.replace(/\r?\n/g," "):""}L.paste=(r,e)=>{let t=e;if(r.composing&&!ie)return;let n=et?null:t.clipboardData,i=r.input.shiftKey&&r.input.lastKeyCode!=45;n&&tt(r,Zi(n),n.getData("text/html"),i,t)?t.preventDefault():jl(r,t)};class Qi{constructor(e,t,n){this.slice=e,this.move=t,this.node=n}}const Gl=U?"altKey":"ctrlKey";function es(r,e){let t=r.someProp("dragCopies",n=>!n(e));return t??!e[Gl]}V.dragstart=(r,e)=>{let t=e,n=r.input.mouseDown;if(n&&n.done(),!t.dataTransfer)return;let i=r.state.selection,s=i.empty?null:r.posAtCoords(vt(t)),o;if(!(s&&s.pos>=i.from&&s.pos<=(i instanceof k?i.to-1:i.to))){if(n&&n.mightDrag)o=k.create(r.state.doc,n.mightDrag.pos);else if(t.target&&t.target.nodeType==1){let f=r.docView.nearestDesc(t.target,!0);f&&f.node.type.spec.draggable&&f!=r.docView&&(o=k.create(r.state.doc,f.posBefore))}}let l=(o||r.state.selection).content(),{dom:a,text:c,slice:h}=Tn(r,l);(!t.dataTransfer.files.length||!z||Ti>120)&&t.dataTransfer.clearData(),t.dataTransfer.setData(et?"Text":"text/html",a.innerHTML),t.dataTransfer.effectAllowed="copyMove",et||t.dataTransfer.setData("text/plain",c),r.dragging=new Qi(h,es(r,t),o)};V.dragend=r=>{let e=r.dragging;window.setTimeout(()=>{r.dragging==e&&(r.dragging=null)},50)};L.dragover=L.dragenter=(r,e)=>e.preventDefault();L.drop=(r,e)=>{let t=e,n=r.dragging;if(r.dragging=null,!t.dataTransfer)return;let i=r.posAtCoords(vt(t));if(!i)return;let s=r.state.doc.resolve(i.pos),o=n&&n.slice;o?r.someProp("transformPasted",d=>{o=d(o,r)}):o=Wi(r,Zi(t.dataTransfer),et?null:t.dataTransfer.getData("text/html"),!1,s);let l=!!(n&&es(r,t));if(r.someProp("handleDrop",d=>d(r,t,o||x.empty,l))){t.preventDefault();return}if(!o)return;t.preventDefault();let a=o?So(r.state.doc,s.pos,o):s.pos;a==null&&(a=s.pos);let c=r.state.tr;if(l){let{node:d}=n;d?d.replace(c):c.deleteSelection()}let h=c.mapping.map(a),f=o.openStart==0&&o.openEnd==0&&o.content.childCount==1,u=c.doc;if(f?c.replaceRangeWith(h,h,o.content.firstChild):c.replaceRange(h,h,o),c.doc.eq(u))return;let p=c.doc.resolve(h);if(f&&k.isSelectable(o.content.firstChild)&&p.nodeAfter&&p.nodeAfter.sameMarkup(o.content.firstChild))c.setSelection(new k(p));else{let d=c.mapping.map(a);c.mapping.maps[c.mapping.maps.length-1].forEach((m,g,b,N)=>d=N),c.setSelection(wn(r,p,c.doc.resolve(d)))}r.focus(),r.dispatch(c.setMeta("uiEvent","drop"))};V.focus=r=>{r.input.lastFocus=Date.now(),r.focused||(r.domObserver.stop(),r.dom.classList.add("ProseMirror-focused"),r.domObserver.start(),r.focused=!0,setTimeout(()=>{r.docView&&r.hasFocus()&&!r.domObserver.currentSelection.eq(r.domSelectionRange())&&se(r)},20))};V.blur=(r,e)=>{let t=e;r.focused&&(r.domObserver.stop(),r.dom.classList.remove("ProseMirror-focused"),r.domObserver.start(),t.relatedTarget&&r.dom.contains(t.relatedTarget)&&r.domObserver.currentSelection.clear(),r.focused=!1)};V.beforeinput=(r,e)=>{if(z&&ie&&e.inputType=="deleteContentBackward"){r.domObserver.flushSoon();let{domChangeCount:n}=r.input;setTimeout(()=>{if(r.input.domChangeCount!=n||(r.dom.blur(),r.focus(),r.someProp("handleKeyDown",s=>s(r,be(8,"Backspace")))))return;let{$cursor:i}=r.state.selection;i&&i.pos>0&&r.dispatch(r.state.tr.delete(i.pos-1,i.pos).scrollIntoView())},50)}};for(let r in L)V[r]=L[r];function nt(r,e){if(r==e)return!0;for(let t in r)if(r[t]!==e[t])return!1;for(let t in e)if(!(t in r))return!1;return!0}class Ot{constructor(e,t){this.toDOM=e,this.spec=t||Oe,this.side=this.spec.side||0}map(e,t,n,i){let{pos:s,deleted:o}=e.mapResult(t.from+i,this.side<0?-1:1);return o?null:new j(s-n,s-n,this)}valid(){return!0}eq(e){return this==e||e instanceof Ot&&(this.spec.key&&this.spec.key==e.spec.key||this.toDOM==e.toDOM&&nt(this.spec,e.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}}class me{constructor(e,t){this.attrs=e,this.spec=t||Oe}map(e,t,n,i){let s=e.map(t.from+i,this.spec.inclusiveStart?-1:1)-n,o=e.map(t.to+i,this.spec.inclusiveEnd?1:-1)-n;return s>=o?null:new j(s,o,this)}valid(e,t){return t.from<t.to}eq(e){return this==e||e instanceof me&&nt(this.attrs,e.attrs)&&nt(this.spec,e.spec)}static is(e){return e.type instanceof me}destroy(){}}class An{constructor(e,t){this.attrs=e,this.spec=t||Oe}map(e,t,n,i){let s=e.mapResult(t.from+i,1);if(s.deleted)return null;let o=e.mapResult(t.to+i,-1);return o.deleted||o.pos<=s.pos?null:new j(s.pos-n,o.pos-n,this)}valid(e,t){let{index:n,offset:i}=e.content.findIndex(t.from),s;return i==t.from&&!(s=e.child(n)).isText&&i+s.nodeSize==t.to}eq(e){return this==e||e instanceof An&&nt(this.attrs,e.attrs)&&nt(this.spec,e.spec)}destroy(){}}class j{constructor(e,t,n){this.from=e,this.to=t,this.type=n}copy(e,t){return new j(e,t,this.type)}eq(e,t=0){return this.type.eq(e.type)&&this.from+t==e.from&&this.to+t==e.to}map(e,t,n){return this.type.map(e,this,t,n)}static widget(e,t,n){return new j(e,e,new Ot(t,n))}static inline(e,t,n,i){return new j(e,t,new me(n,i))}static node(e,t,n,i){return new j(e,t,new An(n,i))}get spec(){return this.type.spec}get inline(){return this.type instanceof me}get widget(){return this.type instanceof Ot}}const Re=[],Oe={};class D{constructor(e,t){this.local=e.length?e:Re,this.children=t.length?t:Re}static create(e,t){return t.length?wt(t,e,0,Oe):R}find(e,t,n){let i=[];return this.findInner(e??0,t??1e9,i,0,n),i}findInner(e,t,n,i,s){for(let o=0;o<this.local.length;o++){let l=this.local[o];l.from<=t&&l.to>=e&&(!s||s(l.spec))&&n.push(l.copy(l.from+i,l.to+i))}for(let o=0;o<this.children.length;o+=3)if(this.children[o]<t&&this.children[o+1]>e){let l=this.children[o]+1;this.children[o+2].findInner(e-l,t-l,n,i+l,s)}}map(e,t,n){return this==R||e.maps.length==0?this:this.mapInner(e,t,0,0,n||Oe)}mapInner(e,t,n,i,s){let o;for(let l=0;l<this.local.length;l++){let a=this.local[l].map(e,n,i);a&&a.type.valid(t,a)?(o||(o=[])).push(a):s.onRemove&&s.onRemove(this.local[l].spec)}return this.children.length?Yl(this.children,o||[],e,t,n,i,s):o?new D(o.sort(we),Re):R}add(e,t){return t.length?this==R?D.create(e,t):this.addInner(e,t,0):this}addInner(e,t,n){let i,s=0;e.forEach((l,a)=>{let c=a+n,h;if(h=ns(t,l,c)){for(i||(i=this.children.slice());s<i.length&&i[s]<a;)s+=3;i[s]==a?i[s+2]=i[s+2].addInner(l,h,c+1):i.splice(s,0,a,a+l.nodeSize,wt(h,l,c+1,Oe)),s+=3}});let o=ts(s?rs(t):t,-n);for(let l=0;l<o.length;l++)o[l].type.valid(e,o[l])||o.splice(l--,1);return new D(o.length?this.local.concat(o).sort(we):this.local,i||this.children)}remove(e){return e.length==0||this==R?this:this.removeInner(e,0)}removeInner(e,t){let n=this.children,i=this.local;for(let s=0;s<n.length;s+=3){let o,l=n[s]+t,a=n[s+1]+t;for(let h=0,f;h<e.length;h++)(f=e[h])&&f.from>l&&f.to<a&&(e[h]=null,(o||(o=[])).push(f));if(!o)continue;n==this.children&&(n=this.children.slice());let c=n[s+2].removeInner(o,l+1);c!=R?n[s+2]=c:(n.splice(s,3),s-=3)}if(i.length){for(let s=0,o;s<e.length;s++)if(o=e[s])for(let l=0;l<i.length;l++)i[l].eq(o,t)&&(i==this.local&&(i=this.local.slice()),i.splice(l--,1))}return n==this.children&&i==this.local?this:i.length||n.length?new D(i,n):R}forChild(e,t){if(this==R)return this;if(t.isLeaf)return D.empty;let n,i;for(let l=0;l<this.children.length;l+=3)if(this.children[l]>=e){this.children[l]==e&&(n=this.children[l+2]);break}let s=e+1,o=s+t.content.size;for(let l=0;l<this.local.length;l++){let a=this.local[l];if(a.from<o&&a.to>s&&a.type instanceof me){let c=Math.max(s,a.from)-s,h=Math.min(o,a.to)-s;c<h&&(i||(i=[])).push(a.copy(c,h))}}if(i){let l=new D(i.sort(we),Re);return n?new ce([l,n]):l}return n||R}eq(e){if(this==e)return!0;if(!(e instanceof D)||this.local.length!=e.local.length||this.children.length!=e.children.length)return!1;for(let t=0;t<this.local.length;t++)if(!this.local[t].eq(e.local[t]))return!1;for(let t=0;t<this.children.length;t+=3)if(this.children[t]!=e.children[t]||this.children[t+1]!=e.children[t+1]||!this.children[t+2].eq(e.children[t+2]))return!1;return!0}locals(e){return vn(this.localsInner(e))}localsInner(e){if(this==R)return Re;if(e.inlineContent||!this.local.some(me.is))return this.local;let t=[];for(let n=0;n<this.local.length;n++)this.local[n].type instanceof me||t.push(this.local[n]);return t}forEachSet(e){e(this)}}D.empty=new D([],[]);D.removeOverlap=vn;const R=D.empty;class ce{constructor(e){this.members=e}map(e,t){const n=this.members.map(i=>i.map(e,t,Oe));return ce.from(n)}forChild(e,t){if(t.isLeaf)return D.empty;let n=[];for(let i=0;i<this.members.length;i++){let s=this.members[i].forChild(e,t);s!=R&&(s instanceof ce?n=n.concat(s.members):n.push(s))}return ce.from(n)}eq(e){if(!(e instanceof ce)||e.members.length!=this.members.length)return!1;for(let t=0;t<this.members.length;t++)if(!this.members[t].eq(e.members[t]))return!1;return!0}locals(e){let t,n=!0;for(let i=0;i<this.members.length;i++){let s=this.members[i].localsInner(e);if(s.length)if(!t)t=s;else{n&&(t=t.slice(),n=!1);for(let o=0;o<s.length;o++)t.push(s[o])}}return t?vn(n?t:t.sort(we)):Re}static from(e){switch(e.length){case 0:return R;case 1:return e[0];default:return new ce(e.every(t=>t instanceof D)?e:e.reduce((t,n)=>t.concat(n instanceof D?n:n.members),[]))}}forEachSet(e){for(let t=0;t<this.members.length;t++)this.members[t].forEachSet(e)}}function Yl(r,e,t,n,i,s,o){let l=r.slice();for(let c=0,h=s;c<t.maps.length;c++){let f=0;t.maps[c].forEach((u,p,d,m)=>{let g=m-d-(p-u);for(let b=0;b<l.length;b+=3){let N=l[b+1];if(N<0||u>N+h-f)continue;let H=l[b]+h-f;p>=H?l[b+1]=u<=H?-2:-1:u>=h&&g&&(l[b]+=g,l[b+1]+=g)}f+=g}),h=t.maps[c].map(h,-1)}let a=!1;for(let c=0;c<l.length;c+=3)if(l[c+1]<0){if(l[c+1]==-2){a=!0,l[c+1]=-1;continue}let h=t.map(r[c]+s),f=h-i;if(f<0||f>=n.content.size){a=!0;continue}let u=t.map(r[c+1]+s,-1),p=u-i,{index:d,offset:m}=n.content.findIndex(f),g=n.maybeChild(d);if(g&&m==f&&m+g.nodeSize==p){let b=l[c+2].mapInner(t,g,h+1,r[c]+s+1,o);b!=R?(l[c]=f,l[c+1]=p,l[c+2]=b):(l[c+1]=-2,a=!0)}else a=!0}if(a){let c=Xl(l,r,e,t,i,s,o),h=wt(c,n,0,o);e=h.local;for(let f=0;f<l.length;f+=3)l[f+1]<0&&(l.splice(f,3),f-=3);for(let f=0,u=0;f<h.children.length;f+=3){let p=h.children[f];for(;u<l.length&&l[u]<p;)u+=3;l.splice(u,0,h.children[f],h.children[f+1],h.children[f+2])}}return new D(e.sort(we),l)}function ts(r,e){if(!e||!r.length)return r;let t=[];for(let n=0;n<r.length;n++){let i=r[n];t.push(new j(i.from+e,i.to+e,i.type))}return t}function Xl(r,e,t,n,i,s,o){function l(a,c){for(let h=0;h<a.local.length;h++){let f=a.local[h].map(n,i,c);f?t.push(f):o.onRemove&&o.onRemove(a.local[h].spec)}for(let h=0;h<a.children.length;h+=3)l(a.children[h+2],a.children[h]+c+1)}for(let a=0;a<r.length;a+=3)r[a+1]==-1&&l(r[a+2],e[a]+s+1);return t}function ns(r,e,t){if(e.isLeaf)return null;let n=t+e.nodeSize,i=null;for(let s=0,o;s<r.length;s++)(o=r[s])&&o.from>t&&o.to<n&&((i||(i=[])).push(o),r[s]=null);return i}function rs(r){let e=[];for(let t=0;t<r.length;t++)r[t]!=null&&e.push(r[t]);return e}function wt(r,e,t,n){let i=[],s=!1;e.forEach((l,a)=>{let c=ns(r,l,a+t);if(c){s=!0;let h=wt(c,l,t+a+1,n);h!=R&&i.push(a,a+l.nodeSize,h)}});let o=ts(s?rs(r):r,-t).sort(we);for(let l=0;l<o.length;l++)o[l].type.valid(e,o[l])||(n.onRemove&&n.onRemove(o[l].spec),o.splice(l--,1));return o.length||i.length?new D(o,i):R}function we(r,e){return r.from-e.from||r.to-e.to}function vn(r){let e=r;for(let t=0;t<e.length-1;t++){let n=e[t];if(n.from!=n.to)for(let i=t+1;i<e.length;i++){let s=e[i];if(s.from==n.from){s.to!=n.to&&(e==r&&(e=r.slice()),e[i]=s.copy(s.from,n.to),Mr(e,i+1,s.copy(n.to,s.to)));continue}else{s.from<n.to&&(e==r&&(e=r.slice()),e[t]=n.copy(n.from,s.from),Mr(e,i,n.copy(s.from,n.to)));break}}}return e}function Mr(r,e,t){for(;e<r.length&&we(t,r[e])>0;)e++;r.splice(e,0,t)}function Ut(r){let e=[];return r.someProp("decorations",t=>{let n=t(r.state);n&&n!=R&&e.push(n)}),r.cursorWrapper&&e.push(D.create(r.state.doc,[r.cursorWrapper.deco])),ce.from(e)}const Zl={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},Ql=q&&ue<=11;class ea{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}}class ta{constructor(e,t){this.view=e,this.handleDOMChange=t,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new ea,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(n=>{for(let i=0;i<n.length;i++)this.queue.push(n[i]);q&&ue<=11&&n.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),Ql&&(this.onCharData=n=>{this.queue.push({target:n.target,type:"characterData",oldValue:n.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,Zl)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let t=0;t<e.length;t++)this.queue.push(e[t]);window.setTimeout(()=>this.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(pr(this.view)){if(this.suppressingSelectionUpdates)return se(this.view);if(q&&ue<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&De(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let t=new Set,n;for(let s=e.focusNode;s;s=Le(s))t.add(s);for(let s=e.anchorNode;s;s=Le(s))if(t.has(s)){n=s;break}let i=n&&this.view.docView.nearestDesc(n);if(i&&i.ignoreMutation({type:"selection",target:n.nodeType==3?n.parentNode:n}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let t=this.pendingRecords();t.length&&(this.queue=[]);let n=e.domSelectionRange(),i=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(n)&&pr(e)&&!this.ignoreSelectionChange(n),s=-1,o=-1,l=!1,a=[];if(e.editable)for(let h=0;h<t.length;h++){let f=this.registerMutation(t[h],a);f&&(s=s<0?f.from:Math.min(f.from,s),o=o<0?f.to:Math.max(f.to,o),f.typeOver&&(l=!0))}if(Y&&a.length){let h=a.filter(f=>f.nodeName=="BR");if(h.length==2){let[f,u]=h;f.parentNode&&f.parentNode.parentNode==u.parentNode?u.remove():f.remove()}else{let{focusNode:f}=this.currentSelection;for(let u of h){let p=u.parentNode;p&&p.nodeName=="LI"&&(!f||ia(e,f)!=p)&&u.remove()}}}let c=null;s<0&&i&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)<Date.now()-300&&Et(n)&&(c=On(e))&&c.eq(C.near(e.state.doc.resolve(0),1))?(e.input.lastFocus=0,se(e),this.currentSelection.set(n),e.scrollToSelection()):(s>-1||i)&&(s>-1&&(e.docView.markDirty(s,o),na(e)),this.handleDOMChange(s,o,l,a),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(n)||se(e),this.currentSelection.set(n))}registerMutation(e,t){if(t.indexOf(e.target)>-1)return null;let n=this.view.docView.nearestDesc(e.target);if(e.type=="attributes"&&(n==this.view.docView||e.attributeName=="contenteditable"||e.attributeName=="style"&&!e.oldValue&&!e.target.getAttribute("style"))||!n||n.ignoreMutation(e))return null;if(e.type=="childList"){for(let h=0;h<e.addedNodes.length;h++){let f=e.addedNodes[h];t.push(f),f.nodeType==3&&(this.lastChangedTextNode=f)}if(n.contentDOM&&n.contentDOM!=n.dom&&!n.contentDOM.contains(e.target))return{from:n.posBefore,to:n.posAfter};let i=e.previousSibling,s=e.nextSibling;if(q&&ue<=11&&e.addedNodes.length)for(let h=0;h<e.addedNodes.length;h++){let{previousSibling:f,nextSibling:u}=e.addedNodes[h];(!f||Array.prototype.indexOf.call(e.addedNodes,f)<0)&&(i=f),(!u||Array.prototype.indexOf.call(e.addedNodes,u)<0)&&(s=u)}let o=i&&i.parentNode==e.target?v(i)+1:0,l=n.localPosFromDOM(e.target,o,-1),a=s&&s.parentNode==e.target?v(s):e.target.childNodes.length,c=n.localPosFromDOM(e.target,a,1);return{from:l,to:c}}else return e.type=="attributes"?{from:n.posAtStart-n.border,to:n.posAtEnd+n.border}:(this.lastChangedTextNode=e.target,{from:n.posAtStart,to:n.posAtEnd,typeOver:e.target.nodeValue==e.oldValue})}}let Cr=new WeakMap,Or=!1;function na(r){if(!Cr.has(r)&&(Cr.set(r,null),["normal","nowrap","pre-line"].indexOf(getComputedStyle(r.dom).whiteSpace)!==-1)){if(r.requiresGeckoHackNode=Y,Or)return;console.warn("ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package."),Or=!0}}function wr(r,e){let t=e.startContainer,n=e.startOffset,i=e.endContainer,s=e.endOffset,o=r.domAtPos(r.state.selection.anchor);return De(o.node,o.offset,i,s)&&([t,n,i,s]=[i,s,t,n]),{anchorNode:t,anchorOffset:n,focusNode:i,focusOffset:s}}function ra(r,e){if(e.getComposedRanges){let i=e.getComposedRanges(r.root)[0];if(i)return wr(r,i)}let t;function n(i){i.preventDefault(),i.stopImmediatePropagation(),t=i.getTargetRanges()[0]}return r.dom.addEventListener("beforeinput",n,!0),document.execCommand("indent"),r.dom.removeEventListener("beforeinput",n,!0),t?wr(r,t):null}function ia(r,e){for(let t=e.parentNode;t&&t!=r.dom;t=t.parentNode){let n=r.docView.nearestDesc(t,!0);if(n&&n.node.isBlock)return t}return null}function sa(r,e,t){let{node:n,fromOffset:i,toOffset:s,from:o,to:l}=r.docView.parseRange(e,t),a=r.domSelectionRange(),c,h=a.anchorNode;if(h&&r.dom.contains(h.nodeType==1?h:h.parentNode)&&(c=[{node:h,offset:a.anchorOffset}],Et(a)||c.push({node:a.focusNode,offset:a.focusOffset})),z&&r.input.lastKeyCode===8)for(let g=s;g>i;g--){let b=n.childNodes[g-1],N=b.pmViewDesc;if(b.nodeName=="BR"&&!N){s=g;break}if(!N||N.size)break}let f=r.state.doc,u=r.someProp("domParser")||Fe.fromSchema(r.state.schema),p=f.resolve(o),d=null,m=u.parse(n,{topNode:p.parent,topMatch:p.parent.contentMatchAt(p.index()),topOpen:!0,from:i,to:s,preserveWhitespace:p.parent.type.whitespace=="pre"?"full":!0,findPositions:c,ruleFromNode:oa,context:p});if(c&&c[0].pos!=null){let g=c[0].pos,b=c[1]&&c[1].pos;b==null&&(b=g),d={anchor:g+o,head:b+o}}return{doc:m,sel:d,from:o,to:l}}function oa(r){let e=r.pmViewDesc;if(e)return e.parseRule();if(r.nodeName=="BR"&&r.parentNode){if(F&&/^(ul|ol)$/i.test(r.parentNode.nodeName)){let t=document.createElement("div");return t.appendChild(document.createElement("li")),{skip:t}}else if(r.parentNode.lastChild==r||F&&/^(tr|table)$/i.test(r.parentNode.nodeName))return{ignore:!0}}else if(r.nodeName=="IMG"&&r.getAttribute("mark-placeholder"))return{ignore:!0};return null}const la=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|img|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function aa(r,e,t,n,i){let s=r.input.compositionPendingChanges||(r.composing?r.input.compositionID:0);if(r.input.compositionPendingChanges=0,e<0){let S=r.input.lastSelectionTime>Date.now()-50?r.input.lastSelectionOrigin:null,E=On(r,S);if(E&&!r.state.selection.eq(E)){if(z&&ie&&r.input.lastKeyCode===13&&Date.now()-100<r.input.lastKeyCodeTime&&r.someProp("handleKeyDown",gs=>gs(r,be(13,"Enter"))))return;let $=r.state.tr.setSelection(E);S=="pointer"?$.setMeta("pointer",!0):S=="key"&&$.scrollIntoView(),s&&$.setMeta("composition",s),r.dispatch($)}return}let o=r.state.doc.resolve(e),l=o.sharedDepth(t);e=o.before(l+1),t=r.state.doc.resolve(t).after(l+1);let a=r.state.selection,c=sa(r,e,t),h=r.state.doc,f=h.slice(c.from,c.to),u,p;r.input.lastKeyCode===8&&Date.now()-100<r.input.lastKeyCodeTime?(u=r.state.selection.to,p="end"):(u=r.state.selection.from,p="start"),r.input.lastKeyCode=null;let d=fa(f.content,c.doc.content,c.from,u,p);if(d&&r.input.domChangeCount++,($e&&r.input.lastIOSEnter>Date.now()-225||ie)&&i.some(S=>S.nodeType==1&&!la.test(S.nodeName))&&(!d||d.endA>=d.endB)&&r.someProp("handleKeyDown",S=>S(r,be(13,"Enter")))){r.input.lastIOSEnter=0;return}if(!d)if(n&&a instanceof M&&!a.empty&&a.$head.sameParent(a.$anchor)&&!r.composing&&!(c.sel&&c.sel.anchor!=c.sel.head))d={start:a.from,endA:a.to,endB:a.to};else{if(c.sel){let S=Tr(r,r.state.doc,c.sel);if(S&&!S.eq(r.state.selection)){let E=r.state.tr.setSelection(S);s&&E.setMeta("composition",s),r.dispatch(E)}}return}r.state.selection.from<r.state.selection.to&&d.start==d.endB&&r.state.selection instanceof M&&(d.start>r.state.selection.from&&d.start<=r.state.selection.from+2&&r.state.selection.from>=c.from?d.start=r.state.selection.from:d.endA<r.state.selection.to&&d.endA>=r.state.selection.to-2&&r.state.selection.to<=c.to&&(d.endB+=r.state.selection.to-d.endA,d.endA=r.state.selection.to)),q&&ue<=11&&d.endB==d.start+1&&d.endA==d.start&&d.start>c.from&&c.doc.textBetween(d.start-c.from-1,d.start-c.from+1)==" "&&(d.start--,d.endA--,d.endB--);let m=c.doc.resolveNoCache(d.start-c.from),g=c.doc.resolveNoCache(d.endB-c.from),b=h.resolve(d.start),N=m.sameParent(g)&&m.parent.inlineContent&&b.end()>=d.endA,H;if(($e&&r.input.lastIOSEnter>Date.now()-225&&(!N||i.some(S=>S.nodeName=="DIV"||S.nodeName=="P"))||!N&&m.pos<c.doc.content.size&&(!m.sameParent(g)||!m.parent.inlineContent)&&!/\S/.test(c.doc.textBetween(m.pos,g.pos,"",""))&&(H=C.findFrom(c.doc.resolve(m.pos+1),1,!0))&&H.head>m.pos)&&r.someProp("handleKeyDown",S=>S(r,be(13,"Enter")))){r.input.lastIOSEnter=0;return}if(r.state.selection.anchor>d.start&&ha(h,d.start,d.endA,m,g)&&r.someProp("handleKeyDown",S=>S(r,be(8,"Backspace")))){ie&&z&&r.domObserver.suppressSelectionUpdates();return}z&&d.endB==d.start&&(r.input.lastChromeDelete=Date.now()),ie&&!N&&m.start()!=g.start()&&g.parentOffset==0&&m.depth==g.depth&&c.sel&&c.sel.anchor==c.sel.head&&c.sel.head==d.endA&&(d.endB-=2,g=c.doc.resolveNoCache(d.endB-c.from),setTimeout(()=>{r.someProp("handleKeyDown",function(S){return S(r,be(13,"Enter"))})},20));let oe=d.start,xe=d.endA,lt=S=>{let E=S||r.state.tr.replace(oe,xe,c.doc.slice(d.start-c.from,d.endB-c.from));if(c.sel){let $=Tr(r,E.doc,c.sel);$&&!(z&&r.composing&&$.empty&&(d.start!=d.endB||r.input.lastChromeDelete<Date.now()-100)&&($.head==oe||$.head==E.mapping.map(xe)-1)||q&&$.empty&&$.head==oe)&&E.setSelection($)}return s&&E.setMeta("composition",s),E.scrollIntoView()},at;if(N){if(m.pos==g.pos){q&&ue<=11&&m.parentOffset==0&&(r.domObserver.suppressSelectionUpdates(),setTimeout(()=>se(r),20));let S=lt(r.state.tr.delete(oe,xe)),E=h.resolve(d.start).marksAcross(h.resolve(d.endA));E&&S.ensureMarks(E),r.dispatch(S)}else if(d.endA==d.endB&&(at=ca(m.parent.content.cut(m.parentOffset,g.parentOffset),b.parent.content.cut(b.parentOffset,d.endA-b.start())))){let S=lt(r.state.tr);at.type=="add"?S.addMark(oe,xe,at.mark):S.removeMark(oe,xe,at.mark),r.dispatch(S)}else if(m.parent.child(m.index()).isText&&m.index()==g.index()-(g.textOffset?0:1)){let S=m.parent.textBetween(m.parentOffset,g.parentOffset),E=()=>lt(r.state.tr.insertText(S,oe,xe));r.someProp("handleTextInput",$=>$(r,oe,xe,S,E))||r.dispatch(E())}}else r.dispatch(lt())}function Tr(r,e,t){return Math.max(t.anchor,t.head)>e.content.size?null:wn(r,e.resolve(t.anchor),e.resolve(t.head))}function ca(r,e){let t=r.firstChild.marks,n=e.firstChild.marks,i=t,s=n,o,l,a;for(let h=0;h<n.length;h++)i=n[h].removeFromSet(i);for(let h=0;h<t.length;h++)s=t[h].removeFromSet(s);if(i.length==1&&s.length==0)l=i[0],o="add",a=h=>h.mark(l.addToSet(h.marks));else if(i.length==0&&s.length==1)l=s[0],o="remove",a=h=>h.mark(l.removeFromSet(h.marks));else return null;let c=[];for(let h=0;h<e.childCount;h++)c.push(a(e.child(h)));if(y.from(c).eq(r))return{mark:l,type:o}}function ha(r,e,t,n,i){if(t-e<=i.pos-n.pos||_t(n,!0,!1)<i.pos)return!1;let s=r.resolve(e);if(!n.parent.isTextblock){let l=s.nodeAfter;return l!=null&&t==e+l.nodeSize}if(s.parentOffset<s.parent.content.size||!s.parent.isTextblock)return!1;let o=r.resolve(_t(s,!0,!0));return!o.parent.isTextblock||o.pos>t||_t(o,!0,!1)<t?!1:n.parent.content.cut(n.parentOffset).eq(o.parent.content)}function _t(r,e,t){let n=r.depth,i=e?r.end():r.pos;for(;n>0&&(e||r.indexAfter(n)==r.node(n).childCount);)n--,i++,e=!1;if(t){let s=r.node(n).maybeChild(r.indexAfter(n));for(;s&&!s.isLeaf;)s=s.firstChild,i++}return i}function fa(r,e,t,n,i){let s=r.findDiffStart(e,t);if(s==null)return null;let{a:o,b:l}=r.findDiffEnd(e,t+r.size,t+e.size);if(i=="end"){let a=Math.max(0,s-Math.min(o,l));n-=o+a-s}if(o<s&&r.size<e.size){let a=n<=s&&n>=o?s-n:0;s-=a,s&&s<e.size&&Nr(e.textBetween(s-1,s+1))&&(s+=a?1:-1),l=s+(l-o),o=s}else if(l<s){let a=n<=s&&n>=l?s-n:0;s-=a,s&&s<r.size&&Nr(r.textBetween(s-1,s+1))&&(s+=a?1:-1),o=s+(o-l),l=s}return{start:s,endA:o,endB:l}}function Nr(r){if(r.length!=2)return!1;let e=r.charCodeAt(0),t=r.charCodeAt(1);return e>=56320&&e<=57343&&t>=55296&&t<=56319}class is{constructor(e,t){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new Al,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=t,this.state=t.state,this.directPlugins=t.plugins||[],this.directPlugins.forEach(Pr),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement("div"),e&&(e.appendChild?e.appendChild(this.dom):typeof e=="function"?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=Ar(this),Er(this),this.nodeViews=vr(this),this.docView=ar(this.state.doc,Dr(this),Ut(this),this.dom,this),this.domObserver=new ta(this,(n,i,s,o)=>aa(this,n,i,s,o)),this.domObserver.start(),vl(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let t in e)this._props[t]=e[t];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&pn(this);let t=this._props;this._props=e,e.plugins&&(e.plugins.forEach(Pr),this.directPlugins=e.plugins),this.updateStateInner(e.state,t)}setProps(e){let t={};for(let n in this._props)t[n]=this._props[n];t.state=this.state;for(let n in e)t[n]=e[n];this.update(t)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,t){var n;let i=this.state,s=!1,o=!1;e.storedMarks&&this.composing&&(Xi(this),o=!0),this.state=e;let l=i.plugins!=e.plugins||this._props.plugins!=t.plugins;if(l||this._props.plugins!=t.plugins||this._props.nodeViews!=t.nodeViews){let p=vr(this);ua(p,this.nodeViews)&&(this.nodeViews=p,s=!0)}(l||t.handleDOMEvents!=this._props.handleDOMEvents)&&pn(this),this.editable=Ar(this),Er(this);let a=Ut(this),c=Dr(this),h=i.plugins!=e.plugins&&!i.doc.eq(e.doc)?"reset":e.scrollToSelection>i.scrollToSelection?"to selection":"preserve",f=s||!this.docView.matchesNode(e.doc,c,a);(f||!e.selection.eq(i.selection))&&(o=!0);let u=h=="preserve"&&o&&this.dom.style.overflowAnchor==null&&Ho(this);if(o){this.domObserver.stop();let p=f&&(q||z)&&!this.composing&&!i.selection.empty&&!e.selection.empty&&da(i.selection,e.selection);if(f){let d=z?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=Kl(this)),(s||!this.docView.update(e.doc,c,a,this))&&(this.docView.updateOuterDeco(c),this.docView.destroy(),this.docView=ar(e.doc,c,a,this.dom,this)),d&&!this.trackWrites&&(p=!0)}p||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&ml(this))?se(this,p):(Li(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(i),!((n=this.dragging)===null||n===void 0)&&n.node&&!i.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,i),h=="reset"?this.dom.scrollTop=0:h=="to selection"?this.scrollToSelection():u&&Uo(u)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(!(!e||!this.dom.contains(e.nodeType==1?e:e.parentNode))){if(!this.someProp("handleScrollToSelection",t=>t(this)))if(this.state.selection instanceof k){let t=this.docView.domAfterPos(this.state.selection.from);t.nodeType==1&&nr(this,t.getBoundingClientRect(),e)}else nr(this,this.coordsAtPos(this.state.selection.head,1),e)}}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let t=0;t<this.directPlugins.length;t++){let n=this.directPlugins[t];n.spec.view&&this.pluginViews.push(n.spec.view(this))}for(let t=0;t<this.state.plugins.length;t++){let n=this.state.plugins[t];n.spec.view&&this.pluginViews.push(n.spec.view(this))}}else for(let t=0;t<this.pluginViews.length;t++){let n=this.pluginViews[t];n.update&&n.update(this,e)}}updateDraggedNode(e,t){let n=e.node,i=-1;if(this.state.doc.nodeAt(n.from)==n.node)i=n.from;else{let s=n.from+(this.state.doc.content.size-t.doc.content.size);(s>0&&this.state.doc.nodeAt(s))==n.node&&(i=s)}this.dragging=new Qi(e.slice,e.move,i<0?void 0:k.create(this.state.doc,i))}someProp(e,t){let n=this._props&&this._props[e],i;if(n!=null&&(i=t?t(n):n))return i;for(let o=0;o<this.directPlugins.length;o++){let l=this.directPlugins[o].props[e];if(l!=null&&(i=t?t(l):l))return i}let s=this.state.plugins;if(s)for(let o=0;o<s.length;o++){let l=s[o].props[e];if(l!=null&&(i=t?t(l):l))return i}}hasFocus(){if(q){let e=this.root.activeElement;if(e==this.dom)return!0;if(!e||!this.dom.contains(e))return!1;for(;e&&this.dom!=e&&this.dom.contains(e);){if(e.contentEditable=="false")return!1;e=e.parentElement}return!0}return this.root.activeElement==this.dom}focus(){this.domObserver.stop(),this.editable&&_o(this.dom),se(this),this.domObserver.start()}get root(){let e=this._root;if(e==null){for(let t=this.dom.parentNode;t;t=t.parentNode)if(t.nodeType==9||t.nodeType==11&&t.host)return t.getSelection||(Object.getPrototypeOf(t).getSelection=()=>t.ownerDocument.getSelection()),this._root=t}return e||document}updateRoot(){this._root=null}posAtCoords(e){return Zo(this,e)}coordsAtPos(e,t=1){return vi(this,e,t)}domAtPos(e,t=0){return this.docView.domFromPos(e,t)}nodeDOM(e){let t=this.docView.descAt(e);return t?t.nodeDOM:null}posAtDOM(e,t,n=-1){let i=this.docView.posFromDOM(e,t,n);if(i==null)throw new RangeError("DOM position not inside the editor");return i}endOfTextblock(e,t){return rl(this,t||this.state,e)}pasteHTML(e,t){return tt(this,"",e,!1,t||new ClipboardEvent("paste"))}pasteText(e,t){return tt(this,e,null,!0,t||new ClipboardEvent("paste"))}serializeForClipboard(e){return Tn(this,e)}destroy(){this.docView&&(Pl(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],Ut(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,Io())}get isDestroyed(){return this.docView==null}dispatchEvent(e){return Il(this,e)}domSelectionRange(){let e=this.domSelection();return e?F&&this.root.nodeType===11&&Lo(this.dom.ownerDocument)==this.dom&&ra(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}}is.prototype.dispatch=function(r){let e=this._props.dispatchTransaction;e?e.call(this,r):this.updateState(this.state.apply(r))};function Dr(r){let e=Object.create(null);return e.class="ProseMirror",e.contenteditable=String(r.editable),r.someProp("attributes",t=>{if(typeof t=="function"&&(t=t(r.state)),t)for(let n in t)n=="class"?e.class+=" "+t[n]:n=="style"?e.style=(e.style?e.style+";":"")+t[n]:!e[n]&&n!="contenteditable"&&n!="nodeName"&&(e[n]=String(t[n]))}),e.translate||(e.translate="no"),[j.node(0,r.state.doc.content.size,e)]}function Er(r){if(r.markCursor){let e=document.createElement("img");e.className="ProseMirror-separator",e.setAttribute("mark-placeholder","true"),e.setAttribute("alt",""),r.cursorWrapper={dom:e,deco:j.widget(r.state.selection.from,e,{raw:!0,marks:r.markCursor})}}else r.cursorWrapper=null}function Ar(r){return!r.someProp("editable",e=>e(r.state)===!1)}function da(r,e){let t=Math.min(r.$anchor.sharedDepth(r.head),e.$anchor.sharedDepth(e.head));return r.$anchor.start(t)!=e.$anchor.start(t)}function vr(r){let e=Object.create(null);function t(n){for(let i in n)Object.prototype.hasOwnProperty.call(e,i)||(e[i]=n[i])}return r.someProp("nodeViews",t),r.someProp("markViews",t),e}function ua(r,e){let t=0,n=0;for(let i in r){if(r[i]!=e[i])return!0;t++}for(let i in e)n++;return t!=n}function Pr(r){if(r.spec.state||r.spec.filterTransaction||r.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}var ge={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Tt={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},pa=typeof navigator<"u"&&/Mac/.test(navigator.platform),ma=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var P=0;P<10;P++)ge[48+P]=ge[96+P]=String(P);for(var P=1;P<=24;P++)ge[P+111]="F"+P;for(var P=65;P<=90;P++)ge[P]=String.fromCharCode(P+32),Tt[P]=String.fromCharCode(P);for(var jt in ge)Tt.hasOwnProperty(jt)||(Tt[jt]=ge[jt]);function ga(r){var e=pa&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||ma&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified",t=!e&&r.key||(r.shiftKey?Tt:ge)[r.keyCode]||r.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}const ya=typeof navigator<"u"&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),xa=typeof navigator<"u"&&/Win/.test(navigator.platform);function ba(r){let e=r.split(/-(?!$)/),t=e[e.length-1];t=="Space"&&(t=" ");let n,i,s,o;for(let l=0;l<e.length-1;l++){let a=e[l];if(/^(cmd|meta|m)$/i.test(a))o=!0;else if(/^a(lt)?$/i.test(a))n=!0;else if(/^(c|ctrl|control)$/i.test(a))i=!0;else if(/^s(hift)?$/i.test(a))s=!0;else if(/^mod$/i.test(a))ya?o=!0:i=!0;else throw new Error("Unrecognized modifier name: "+a)}return n&&(t="Alt-"+t),i&&(t="Ctrl-"+t),o&&(t="Meta-"+t),s&&(t="Shift-"+t),t}function ka(r){let e=Object.create(null);for(let t in r)e[ba(t)]=r[t];return e}function Gt(r,e,t=!0){return e.altKey&&(r="Alt-"+r),e.ctrlKey&&(r="Ctrl-"+r),e.metaKey&&(r="Meta-"+r),t&&e.shiftKey&&(r="Shift-"+r),r}function ss(r){return new Mn({props:{handleKeyDown:Sa(r)}})}function Sa(r){let e=ka(r);return function(t,n){let i=ga(n),s,o=e[Gt(i,n)];if(o&&o(t.state,t.dispatch,t))return!0;if(i.length==1&&i!=" "){if(n.shiftKey){let l=e[Gt(i,n,!1)];if(l&&l(t.state,t.dispatch,t))return!0}if((n.altKey||n.metaKey||n.ctrlKey)&&!(xa&&n.ctrlKey&&n.altKey)&&(s=ge[n.keyCode])&&s!=i){let l=e[Gt(s,n)];if(l&&l(t.state,t.dispatch,t))return!0}}return!1}}const ls=(r,e)=>r.selection.empty?!1:(e&&e(r.tr.deleteSelection().scrollIntoView()),!0);function Ma(r,e){let{$cursor:t}=r.selection;return!t||(e?!e.endOfTextblock("backward",r):t.parentOffset>0)?null:t}const Ca=(r,e,t)=>{let n=Ma(r,t);if(!n)return!1;let i=as(n);if(!i){let o=n.blockRange(),l=o&&bn(o);return l==null?!1:(e&&e(r.tr.lift(o,l).scrollIntoView()),!0)}let s=i.nodeBefore;if(hs(r,i,e,-1))return!0;if(n.parent.content.size==0&&(qe(s,"end")||k.isSelectable(s)))for(let o=n.depth;;o--){let l=kn(r.doc,n.before(o),n.after(o),x.empty);if(l&&l.slice.size<l.to-l.from){if(e){let a=r.tr.step(l);a.setSelection(qe(s,"end")?C.findFrom(a.doc.resolve(a.mapping.map(i.pos,-1)),-1):k.create(a.doc,i.pos-s.nodeSize)),e(a.scrollIntoView())}return!0}if(o==1||n.node(o-1).childCount>1)break}return s.isAtom&&i.depth==n.depth-1?(e&&e(r.tr.delete(i.pos-s.nodeSize,i.pos).scrollIntoView()),!0):!1};function qe(r,e,t=!1){for(let n=r;n;n=e=="start"?n.firstChild:n.lastChild){if(n.isTextblock)return!0;if(t&&n.childCount!=1)return!1}return!1}const Oa=(r,e,t)=>{let{$head:n,empty:i}=r.selection,s=n;if(!i)return!1;if(n.parent.isTextblock){if(t?!t.endOfTextblock("backward",r):n.parentOffset>0)return!1;s=as(n)}let o=s&&s.nodeBefore;return!o||!k.isSelectable(o)?!1:(e&&e(r.tr.setSelection(k.create(r.doc,s.pos-o.nodeSize)).scrollIntoView()),!0)};function as(r){if(!r.parent.type.spec.isolating)for(let e=r.depth-1;e>=0;e--){if(r.index(e)>0)return r.doc.resolve(r.before(e+1));if(r.node(e).type.spec.isolating)break}return null}function wa(r,e){let{$cursor:t}=r.selection;return!t||(e?!e.endOfTextblock("forward",r):t.parentOffset<t.parent.content.size)?null:t}const Ta=(r,e,t)=>{let n=wa(r,t);if(!n)return!1;let i=cs(n);if(!i)return!1;let s=i.nodeAfter;if(hs(r,i,e,1))return!0;if(n.parent.content.size==0&&(qe(s,"start")||k.isSelectable(s))){let o=kn(r.doc,n.before(),n.after(),x.empty);if(o&&o.slice.size<o.to-o.from){if(e){let l=r.tr.step(o);l.setSelection(qe(s,"start")?C.findFrom(l.doc.resolve(l.mapping.map(i.pos)),1):k.create(l.doc,l.mapping.map(i.pos))),e(l.scrollIntoView())}return!0}}return s.isAtom&&i.depth==n.depth-1?(e&&e(r.tr.delete(i.pos,i.pos+s.nodeSize).scrollIntoView()),!0):!1},Na=(r,e,t)=>{let{$head:n,empty:i}=r.selection,s=n;if(!i)return!1;if(n.parent.isTextblock){if(t?!t.endOfTextblock("forward",r):n.parentOffset<n.parent.content.size)return!1;s=cs(n)}let o=s&&s.nodeAfter;return!o||!k.isSelectable(o)?!1:(e&&e(r.tr.setSelection(k.create(r.doc,s.pos)).scrollIntoView()),!0)};function cs(r){if(!r.parent.type.spec.isolating)for(let e=r.depth-1;e>=0;e--){let t=r.node(e);if(r.index(e)+1<t.childCount)return r.doc.resolve(r.after(e+1));if(t.type.spec.isolating)break}return null}const Da=(r,e)=>{let{$head:t,$anchor:n}=r.selection;return!t.parent.type.spec.code||!t.sameParent(n)?!1:(e&&e(r.tr.insertText(`
|
|
99
|
-
`).scrollIntoView()),!0)};function Pn(r){for(let e=0;e<r.edgeCount;e++){let{type:t}=r.edge(e);if(t.isTextblock&&!t.hasRequiredAttrs())return t}return null}const Ea=(r,e)=>{let{$head:t,$anchor:n}=r.selection;if(!t.parent.type.spec.code||!t.sameParent(n))return!1;let i=t.node(-1),s=t.indexAfter(-1),o=Pn(i.contentMatchAt(s));if(!o||!i.canReplaceWith(s,s,o))return!1;if(e){let l=t.after(),a=r.tr.replaceWith(l,l,o.createAndFill());a.setSelection(C.near(a.doc.resolve(l),1)),e(a.scrollIntoView())}return!0},Aa=(r,e)=>{let t=r.selection,{$from:n,$to:i}=t;if(t instanceof K||n.parent.inlineContent||i.parent.inlineContent)return!1;let s=Pn(i.parent.contentMatchAt(i.indexAfter()));if(!s||!s.isTextblock)return!1;if(e){let o=(!n.parentOffset&&i.index()<i.parent.childCount?n:i).pos,l=r.tr.insert(o,s.createAndFill());l.setSelection(M.create(l.doc,o+1)),e(l.scrollIntoView())}return!0},va=(r,e)=>{let{$cursor:t}=r.selection;if(!t||t.parent.content.size)return!1;if(t.depth>1&&t.after()!=t.end(-1)){let s=t.before();if(mt(r.doc,s))return e&&e(r.tr.split(s).scrollIntoView()),!0}let n=t.blockRange(),i=n&&bn(n);return i==null?!1:(e&&e(r.tr.lift(n,i).scrollIntoView()),!0)};function Pa(r){return(e,t)=>{let{$from:n,$to:i}=e.selection;if(e.selection instanceof k&&e.selection.node.isBlock)return!n.parentOffset||!mt(e.doc,n.pos)?!1:(t&&t(e.tr.split(n.pos).scrollIntoView()),!0);if(!n.depth)return!1;let s=[],o,l,a=!1,c=!1;for(let p=n.depth;;p--)if(n.node(p).isBlock){a=n.end(p)==n.pos+(n.depth-p),c=n.start(p)==n.pos-(n.depth-p),l=Pn(n.node(p-1).contentMatchAt(n.indexAfter(p-1))),s.unshift(a&&l?{type:l}:null),o=p;break}else{if(p==1)return!1;s.unshift(null)}let h=e.tr;(e.selection instanceof M||e.selection instanceof K)&&h.deleteSelection();let f=h.mapping.map(n.pos),u=mt(h.doc,f,s.length,s);if(u||(s[0]=l?{type:l}:null,u=mt(h.doc,f,s.length,s)),!u)return!1;if(h.split(f,s.length,s),!a&&c&&n.node(o).type!=l){let p=h.mapping.map(n.before(o)),d=h.doc.resolve(p);l&&n.node(o-1).canReplaceWith(d.index(),d.index()+1,l)&&h.setNodeMarkup(h.mapping.map(n.before(o)),l)}return t&&t(h.scrollIntoView()),!0}}const Ra=Pa(),Ia=(r,e)=>(e&&e(r.tr.setSelection(new K(r.doc))),!0);function za(r,e,t){let n=e.nodeBefore,i=e.nodeAfter,s=e.index();return!n||!i||!n.type.compatibleContent(i.type)?!1:!n.content.size&&e.parent.canReplace(s-1,s)?(t&&t(r.tr.delete(e.pos-n.nodeSize,e.pos).scrollIntoView()),!0):!e.parent.canReplace(s,s+1)||!(i.isTextblock||xi(r.doc,e.pos))?!1:(t&&t(r.tr.join(e.pos).scrollIntoView()),!0)}function hs(r,e,t,n){let i=e.nodeBefore,s=e.nodeAfter,o,l,a=i.type.spec.isolating||s.type.spec.isolating;if(!a&&za(r,e,t))return!0;let c=!a&&e.parent.canReplace(e.index(),e.index()+1);if(c&&(o=(l=i.contentMatchAt(i.childCount)).findWrapping(s.type))&&l.matchType(o[0]||s.type).validEnd){if(t){let p=e.pos+s.nodeSize,d=y.empty;for(let b=o.length-1;b>=0;b--)d=y.from(o[b].create(null,d));d=y.from(i.copy(d));let m=r.tr.step(new J(e.pos-1,p,e.pos,p,new x(d,1,0),o.length,!0)),g=m.doc.resolve(p+2*o.length);g.nodeAfter&&g.nodeAfter.type==i.type&&xi(m.doc,g.pos)&&m.join(g.pos),t(m.scrollIntoView())}return!0}let h=s.type.spec.isolating||n>0&&a?null:C.findFrom(e,1),f=h&&h.$from.blockRange(h.$to),u=f&&bn(f);if(u!=null&&u>=e.depth)return t&&t(r.tr.lift(f,u).scrollIntoView()),!0;if(c&&qe(s,"start",!0)&&qe(i,"end")){let p=i,d=[];for(;d.push(p),!p.isTextblock;)p=p.lastChild;let m=s,g=1;for(;!m.isTextblock;m=m.firstChild)g++;if(p.canReplace(p.childCount,p.childCount,m.content)){if(t){let b=y.empty;for(let H=d.length-1;H>=0;H--)b=y.from(d[H].copy(b));let N=r.tr.step(new J(e.pos-d.length,e.pos+s.nodeSize,e.pos+g,e.pos+s.nodeSize-g,new x(b,d.length,0),0,!0));t(N.scrollIntoView())}return!0}}return!1}function fs(r){return function(e,t){let n=e.selection,i=r<0?n.$from:n.$to,s=i.depth;for(;i.node(s).isInline;){if(!s)return!1;s--}return i.node(s).isTextblock?(t&&t(e.tr.setSelection(M.create(e.doc,r<0?i.start(s):i.end(s)))),!0):!1}}const Ba=fs(-1),Fa=fs(1);function Va(r,e,t,n){for(let i=0;i<e.length;i++){let{$from:s,$to:o}=e[i],l=s.depth==0?r.inlineContent&&r.type.allowsMarkType(t):!1;if(r.nodesBetween(s.pos,o.pos,(a,c)=>{if(l)return!1;l=a.inlineContent&&a.type.allowsMarkType(t)}),l)return!0}return!1}function La(r,e=null,t){return function(n,i){let{empty:s,$cursor:o,ranges:l}=n.selection;if(s&&!o||!Va(n.doc,l,r))return!1;if(i)if(o)r.isInSet(n.storedMarks||o.marks())?i(n.tr.removeStoredMark(r)):i(n.tr.addStoredMark(r.create(e)));else{let a,c=n.tr;a=!l.some(h=>n.doc.rangeHasMark(h.$from.pos,h.$to.pos,r));for(let h=0;h<l.length;h++){let{$from:f,$to:u}=l[h];if(!a)c.removeMark(f.pos,u.pos,r);else{let p=f.pos,d=u.pos,m=f.nodeAfter,g=u.nodeBefore,b=m&&m.isText?/^\s*/.exec(m.text)[0].length:0,N=g&&g.isText?/\s*$/.exec(g.text)[0].length:0;p+b<d&&(p+=b,d-=N),c.addMark(p,d,r.create(e))}}i(c.scrollIntoView())}return!0}}function Rn(...r){return function(e,t,n){for(let i=0;i<r.length;i++)if(r[i](e,t,n))return!0;return!1}}let Yt=Rn(ls,Ca,Oa),Rr=Rn(ls,Ta,Na);const re={Enter:Rn(Da,Aa,va,Ra),"Mod-Enter":Ea,Backspace:Yt,"Mod-Backspace":Yt,"Shift-Backspace":Yt,Delete:Rr,"Mod-Delete":Rr,"Mod-a":Ia},ds={"Ctrl-h":re.Backspace,"Alt-Backspace":re["Mod-Backspace"],"Ctrl-d":re.Delete,"Ctrl-Alt-Backspace":re["Mod-Delete"],"Alt-Delete":re["Mod-Delete"],"Alt-d":re["Mod-Delete"],"Ctrl-a":Ba,"Ctrl-e":Fa};for(let r in re)ds[r]=re[r];const $a=typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator.platform):typeof os<"u"&&os.platform?os.platform()=="darwin":!1,qa=$a?ds:re,Wa=["p",0],Ja=["blockquote",0],Ka=["hr"],Ha=["pre",["code",0]],Ua=["br"],_a={doc:{content:"block+"},paragraph:{content:"inline*",group:"block",parseDOM:[{tag:"p"}],toDOM(){return Wa}},blockquote:{content:"block+",group:"block",defining:!0,parseDOM:[{tag:"blockquote"}],toDOM(){return Ja}},horizontal_rule:{group:"block",parseDOM:[{tag:"hr"}],toDOM(){return Ka}},heading:{attrs:{level:{default:1,validate:"number"}},content:"inline*",group:"block",defining:!0,parseDOM:[{tag:"h1",attrs:{level:1}},{tag:"h2",attrs:{level:2}},{tag:"h3",attrs:{level:3}},{tag:"h4",attrs:{level:4}},{tag:"h5",attrs:{level:5}},{tag:"h6",attrs:{level:6}}],toDOM(r){return["h"+r.attrs.level,0]}},code_block:{content:"text*",marks:"",group:"block",code:!0,defining:!0,parseDOM:[{tag:"pre",preserveWhitespace:"full"}],toDOM(){return Ha}},text:{group:"inline"},image:{inline:!0,attrs:{src:{validate:"string"},alt:{default:null,validate:"string|null"},title:{default:null,validate:"string|null"}},group:"inline",draggable:!0,parseDOM:[{tag:"img[src]",getAttrs(r){return{src:r.getAttribute("src"),title:r.getAttribute("title"),alt:r.getAttribute("alt")}}}],toDOM(r){let{src:e,alt:t,title:n}=r.attrs;return["img",{src:e,alt:t,title:n}]}},hard_break:{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"br"}],toDOM(){return Ua}}},ja=["em",0],Ga=["strong",0],Ya=["code",0],Xa={link:{attrs:{href:{validate:"string"},title:{default:null,validate:"string|null"}},inclusive:!1,parseDOM:[{tag:"a[href]",getAttrs(r){return{href:r.getAttribute("href"),title:r.getAttribute("title")}}}],toDOM(r){let{href:e,title:t}=r.attrs;return["a",{href:e,title:t},0]}},em:{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-style=italic"},{style:"font-style=normal",clearMark:r=>r.type.name=="em"}],toDOM(){return ja}},strong:{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:r=>r.style.fontWeight!="normal"&&null},{style:"font-weight=400",clearMark:r=>r.type.name=="strong"},{style:"font-weight",getAttrs:r=>/^(bold(er)?|[5-9]\d{2,})$/.test(r)&&null}],toDOM(){return Ga}},code:{code:!0,parseDOM:[{tag:"code"}],toDOM(){return Ya}}},Ir=new ai({nodes:_a,marks:Xa}),mn={"extra-large":"var(--vvd-typography-heading-4)",large:"var(--vvd-typography-base-extended)",normal:"var(--vvd-typography-base)",small:"var(--vvd-typography-base-condensed)"},Za=Object.fromEntries(Object.entries(mn).map(([r,e])=>[e,r])),Qa={u:{parseDOM:[{tag:"u"}],toDOM(){return["u",0]}},s:{parseDOM:[{tag:"s"},{tag:"del"}],toDOM(){return["s",0]}},tt:{parseDOM:[{tag:"tt"},{tag:"code"}],toDOM(){return["tt",0]}},textSize:{attrs:{size:{default:"normal"}},parseDOM:[{tag:"span[style*='font']",getAttrs:r=>{const t=r.getAttribute("style").match(/font:\s*([^;]+)/)?.[1]?.trim(),n=Za[t];return n?{size:n}:!1}}],toDOM(r){const e=r.attrs.size;return["span",{style:`font: ${mn[e]||mn.normal};`},0]}}},us=(r="vwc")=>new ai({nodes:{...Ir.spec.nodes.toObject(),imageError:{inline:!0,group:"inline",atom:!0,attrs:{alt:{default:""},icon:{default:""},errorMessage:{default:"Failed to attach"},fileName:{default:""}},toDOM(e){return[`${r}-text-editor-image-placeholder`,{alt:e.attrs.alt,icon:e.attrs.icon,"error-message":e.attrs.errorMessage,"file-name":e.attrs.fileName}]},parseDOM:[{tag:`${r}-text-editor-image-placeholder`,getAttrs(e){return{alt:e.getAttribute("alt"),icon:e.getAttribute("icon"),errorMessage:e.getAttribute("error-message"),fileName:e.getAttribute("file-name")}}}]}},marks:{...Ir.spec.marks.toObject(),...Qa}});us();const ec={start:-1,end:-1};class tc{static get h2(){return{type:"heading",attrs:{level:2}}}static get h3(){return{type:"heading",attrs:{level:3}}}static get p(){return{type:"paragraph",attrs:{}}}}function Xt(r,e){r.textBlockType&&r.textBlockType!==e||r.textBlockType===""?r.textBlockType="":r.textBlockType=e}function nc(){return ss({"Shift-Enter":(r,e)=>{const{schema:t}=r,n=t.nodes.hard_break,{$from:i,$to:s}=r.selection;if(i.sameParent(s))e&&e(r.tr.replaceSelectionWith(n.create()).scrollIntoView());else if(e){const o=r.tr,l=r.doc.resolve(s.end());o.delete(l.start(),s.pos),o.delete(i.pos,l.start()-1),o.insert(i.pos,n.create());const a=M.create(o.doc,i.pos+1);o.setSelection(a),e(o.scrollIntoView())}return!0},Enter:(r,e)=>{const{schema:t}=r,n=t.nodes.paragraph,{$from:i,empty:s}=r.selection;if(!s||i.parent.type!==n)return!1;const o=r.tr,l=i.marks();if(o.split(i.pos),l.length>0){const a=i.pos+1,h=t.text("",l);o.insert(a,h),o.setSelection(M.create(o.doc,a+1))}return e&&e(o.scrollIntoView()),!0}})}function rc(r){return new Mn({view:()=>({update:(e,t)=>{const{from:n,to:i}=e.state.selection,{from:s,to:o}=t.selection;(n!==s||i!==o)&&r({start:n,end:i})}})})}function ic({to:r,from:e}){return{start:e,end:r}}function sc(r,e,t="Image loading failed"){return r.nodes.imageError.create({alt:`inline image from file ${e.name}`,fileName:e.name,icon:e.type.split("/")[1],errorMessage:t})}const oc=r=>r.type.name==="paragraph"&&r.nodeSize===2,lc="Start typing...",ps=new Ro("placeholderPlugin"),zr=(r=lc)=>new Mn({key:ps,props:{decorations(e){const{$from:t}=e.selection,n=[];if(e.doc.childCount===1&&oc(t.parent)){const i=j.node(t.before(),t.after(),{"data-placeholder":r,class:"placeholder"});n.push(i)}return D.create(e.doc,n)}}});class ac{#t=!1;#e;#n(){if(!this.#e)throw new Error("ProseMirror was not initiated. Please use the `init` method first.")}#s=()=>{this.#l("selection-changed")};#o=e=>{e.stopPropagation(),this.#t=!0,this.#l("input")};#r=()=>{if(!this.#t){this.#t=!1;return}this.#l("change")};#i="vwc";init(e,t="vwc"){if(this.#i=t,!(e instanceof HTMLElement))throw new Error("ProseMirror Facade init accepts a valid HTMLElement as its first parameter");const n=[zr(),rc(this.#s),nc(),ss(qa)],i=Ie.create({schema:us(this.#i),plugins:n});this.#e=new is(e,{state:i}),this.#e.dom.addEventListener("input",this.#o),this.#e.dom.addEventListener("blur",this.#r)}updatePlaceholder(e){this.#n();const{state:t}=this.#e,n=t.plugins.filter(o=>o!==ps.get(t)),i=zr(e),s=t.reconfigure({plugins:[...n,i]});this.#e.updateState(s)}replaceContent(e){this.#n();const n=Fe.fromSchema(this.#e.state.schema).parse(new window.DOMParser().parseFromString(e,"text/html").body),i=this.#e.state.tr.replaceWith(0,this.#e.state.doc.content.size,n.content);this.#e.dispatch(i)}selection(e){if(this.#e&&e){const t=this.#e.state.tr.setSelection(M.create(this.#e.state.doc,e.start,e.end));this.#e.dispatch(t)}return this.#e?ic(this.#e.state.selection):ec}#a=document.createElement("div");addEventListener(e,t){this.#a.addEventListener(e,t)}#l=(e,t)=>{this.#a.dispatchEvent(new CustomEvent(e,{detail:t}))};setSelectionTag(e){this.#n();const t=tc[e]??{type:e},{state:n,dispatch:i}=this.#e,{from:s,to:o}=n.selection,l=n.tr;n.doc.nodesBetween(s,o,a=>{const c=n.schema.nodes[t.type];if(!c)throw new Error("Node type tag does not exist in the schema");a.type!==c&&l.setBlockType(s,o,c,t.attrs)}),i(l)}setSelectionDecoration(e){this.#n();const t={bold:"strong",italics:"em",underline:"u",strikethrough:"s",monospace:"tt"},{state:n,dispatch:i}=this.#e,s=e,o=n.schema.marks[t[s]];if(!o)throw new Error(`${e} is not a supported decoration`);La(o)(n,i),this.#t=!0,this.#r()}#c(){const{state:e}=this.#e,{from:t,to:n}=e.selection,i={};return e.doc.nodesBetween(t,n,s=>{s.type.name==="heading"&&s.attrs.level===2?Xt(i,"title"):s.type.name==="heading"&&s.attrs.level===3?Xt(i,"subtitle"):s.type.name==="paragraph"&&Xt(i,"body")}),i.textBlockType}#h(){const{state:e}=this.#e,{from:t,to:n,empty:i}=e.selection,s=[];if(i){const o=e.doc.resolve(t).marks();e.schema.marks.strong&&o.some(l=>l.type===e.schema.marks.strong)&&s.push("bold"),e.schema.marks.em&&o.some(l=>l.type===e.schema.marks.em)&&s.push("italics"),e.schema.marks.u&&o.some(l=>l.type===e.schema.marks.u)&&s.push("underline"),e.schema.marks.s&&o.some(l=>l.type===e.schema.marks.s)&&s.push("strikethrough"),e.schema.marks.tt&&o.some(l=>l.type===e.schema.marks.tt)&&s.push("monospace")}else e.schema.marks.strong&&e.doc.rangeHasMark(t,n,e.schema.marks.strong)&&s.push("bold"),e.schema.marks.em&&e.doc.rangeHasMark(t,n,e.schema.marks.em)&&s.push("italics"),e.schema.marks.u&&e.doc.rangeHasMark(t,n,e.schema.marks.u)&&s.push("underline"),e.schema.marks.s&&e.doc.rangeHasMark(t,n,e.schema.marks.s)&&s.push("strikethrough"),e.schema.marks.tt&&e.doc.rangeHasMark(t,n,e.schema.marks.tt)&&s.push("monospace");return s.length?s:void 0}#f(){const{state:e}=this.#e,{from:t,to:n,empty:i}=e.selection,s="normal";if(i){const l=e.doc.resolve(t).marks().find(a=>a.type===e.schema.marks.textSize);return l?l.attrs.size:s}else{let o=null,l=!1;return e.doc.nodesBetween(t,n,a=>{if(a.isText){const c=a.marks.find(h=>h.type===e.schema.marks.textSize);if(c){if(o===null)o=c.attrs.size;else if(o!==c.attrs.size)return l=!0,!1}else if(o!==null)return l=!0,!1}return!0}),l?"":o!==null?o:s}}getSelectionStyles(){this.#n();const e={};return e.textBlockType=this.#c(),e.textDecoration=this.#h(),e.textSize=this.#f(),e}setTextSize(e="normal"){this.#n();const{state:t,dispatch:n}=this.#e,{schema:i,selection:s,tr:o}=t,{from:l,to:a}=s,c=i.marks.textSize;o.removeMark(l,a,c),o.addMark(l,a,c.create({size:e})),n(o.scrollIntoView()),this.#t=!0,this.#r()}getValue(){return this.#e.dom.innerHTML}async addInlineImage({file:e,position:t,alt:n,error:i}){this.#n();const s=new FileReader,o=await new Promise((d,m)=>{s.onload=()=>d(s.result),s.onerror=m,s.readAsDataURL(e)}),{state:l,dispatch:a}=this.#e,{schema:c}=l,h=n??`inline image from file ${e.name}`,f=i?sc(c,e,i):c.nodes.image.create({src:o,alt:h});let u=t;typeof u!="number"&&(u=l.selection.from);const p=l.tr.insert(u,f);a(p.scrollIntoView())}}var cc=Object.defineProperty,In=(r,e,t,n)=>{for(var i=void 0,s=r.length-1,o;s>=0;s--)(o=r[s])&&(i=o(e,t,i)||i);return i&&cc(e,t,i),i};const hc={title:"h2",subtitle:"h3",body:"p"};class Pt extends qr.Localized(O.VividElement){constructor(){super(),this.selectionStart=null,this.#n=()=>{try{this.#t?.selection({start:this.selectionStart,end:this.selectionEnd?this.selectionEnd:this.selectionStart})}catch(e){console.warn(e.message)}},this.selectionEnd=null,this.#s=()=>{if(!this.#t.selection())return;const{start:e,end:t}=this.#t.selection();this.selectionStart=e,this.selectionEnd=t,this.$emit("selection-changed")},this.#o=()=>{this.$emit("change")},this.#r=()=>{this.$emit("input")}}get value(){return this.#t?.getValue()}set value(e){this.#t&&this.#t.replaceContent(e)}#t;get#e(){return this.shadowRoot.querySelector("#editor")}selectionStartChanged(){!this.selectionStart||this.selectionEnd&&this.selectionStart>this.selectionEnd||this.#n()}#n;selectionEndChanged(){this.selectionEnd&&!this.selectionStart&&(this.selectionStart=1),this.#n()}placeholderChanged(){this.#t?.updatePlaceholder(this.placeholder)}#s;#o;#r;connectedCallback(){super.connectedCallback(),this.#t||(this.#t=new ac,this.#t.init(this.#e),this.#t.addEventListener("selection-changed",this.#s),this.#t.addEventListener("change",this.#o),this.#t.addEventListener("input",this.#r)),this.placeholderChanged()}setTextBlock(e){try{this.#t?.setSelectionTag(hc[e])}catch{console.warn(`Invalid text block: ${e}`)}}setSelectionDecoration(e){try{this.#t?.setSelectionDecoration(e)}catch{console.warn(`Invalid decoration: ${e}`)}}setSelectionTextSize(e){this.#t?.setTextSize(e)}get selectionStyles(){return this.#t?this.#t.getSelectionStyles():{}}focus(){super.focus(),setTimeout(()=>{this.#i.focus()},0)}get#i(){return this.#e.querySelector('[contenteditable="true"]')}scrollToAttachments(e=0){O.DOM.queueUpdate(()=>{this.#e.scrollTop=this.#i.getBoundingClientRect().height-this.#e.getBoundingClientRect().height+e})}async addInlineImage(e){try{await this.#t.addInlineImage(e)}catch(t){console.warn(t.message)}}}In([O.attr({converter:O.nullableNumberConverter,attribute:"selection-start"})],Pt.prototype,"selectionStart");In([O.attr({converter:O.nullableNumberConverter,attribute:"selection-end"})],Pt.prototype,"selectionEnd");In([O.attr],Pt.prototype,"placeholder");const fc=r=>gn.classNames("control"),dc="menubar",We=r=>r.parentElement;function uc(r){We(r.target).setTextBlock(r.detail),We(r.target).focus()}function pc(r){We(r.target).setSelectionDecoration(r.detail),We(r.target).focus()}function mc(r){We(r.target).setSelectionTextSize(r.detail),We(r.target).focus()}function gc(r,{event:e}){const t=e.target;t.parentElement?.classList.toggle("hidden",t.assignedElements().length<1)}function yc(r,{event:e}){const n=e.target.assignedElements({flatten:!0}),i=n.find(s=>s.tagName.toLowerCase().endsWith(dc));n.forEach(s=>{s===i?s.style.removeProperty("display"):s.style.display="none"}),i&&(i.addEventListener("text-block-selected",uc),i.addEventListener("text-decoration-selected",pc),i.addEventListener("text-size-selected",mc))}function xc(r,{event:e}){r.dispatchEvent(new CustomEvent("file-drop",{detail:e.dataTransfer.files})),ms(r,{event:e})}function bc(r,{event:e}){e.currentTarget.classList.toggle("drag-over",!0)}function ms(r,{event:e}){const t=e.currentTarget;t.contains(e.relatedTarget)||t.classList.remove("drag-over")}const kc=r=>{const e=r.tagFor($r.Divider);return O.html`<template class="${fc}">
|
|
99
|
+
`).scrollIntoView()),!0)};function Pn(r){for(let e=0;e<r.edgeCount;e++){let{type:t}=r.edge(e);if(t.isTextblock&&!t.hasRequiredAttrs())return t}return null}const Ea=(r,e)=>{let{$head:t,$anchor:n}=r.selection;if(!t.parent.type.spec.code||!t.sameParent(n))return!1;let i=t.node(-1),s=t.indexAfter(-1),o=Pn(i.contentMatchAt(s));if(!o||!i.canReplaceWith(s,s,o))return!1;if(e){let l=t.after(),a=r.tr.replaceWith(l,l,o.createAndFill());a.setSelection(C.near(a.doc.resolve(l),1)),e(a.scrollIntoView())}return!0},Aa=(r,e)=>{let t=r.selection,{$from:n,$to:i}=t;if(t instanceof K||n.parent.inlineContent||i.parent.inlineContent)return!1;let s=Pn(i.parent.contentMatchAt(i.indexAfter()));if(!s||!s.isTextblock)return!1;if(e){let o=(!n.parentOffset&&i.index()<i.parent.childCount?n:i).pos,l=r.tr.insert(o,s.createAndFill());l.setSelection(M.create(l.doc,o+1)),e(l.scrollIntoView())}return!0},va=(r,e)=>{let{$cursor:t}=r.selection;if(!t||t.parent.content.size)return!1;if(t.depth>1&&t.after()!=t.end(-1)){let s=t.before();if(mt(r.doc,s))return e&&e(r.tr.split(s).scrollIntoView()),!0}let n=t.blockRange(),i=n&&bn(n);return i==null?!1:(e&&e(r.tr.lift(n,i).scrollIntoView()),!0)};function Pa(r){return(e,t)=>{let{$from:n,$to:i}=e.selection;if(e.selection instanceof k&&e.selection.node.isBlock)return!n.parentOffset||!mt(e.doc,n.pos)?!1:(t&&t(e.tr.split(n.pos).scrollIntoView()),!0);if(!n.depth)return!1;let s=[],o,l,a=!1,c=!1;for(let p=n.depth;;p--)if(n.node(p).isBlock){a=n.end(p)==n.pos+(n.depth-p),c=n.start(p)==n.pos-(n.depth-p),l=Pn(n.node(p-1).contentMatchAt(n.indexAfter(p-1))),s.unshift(a&&l?{type:l}:null),o=p;break}else{if(p==1)return!1;s.unshift(null)}let h=e.tr;(e.selection instanceof M||e.selection instanceof K)&&h.deleteSelection();let f=h.mapping.map(n.pos),u=mt(h.doc,f,s.length,s);if(u||(s[0]=l?{type:l}:null,u=mt(h.doc,f,s.length,s)),!u)return!1;if(h.split(f,s.length,s),!a&&c&&n.node(o).type!=l){let p=h.mapping.map(n.before(o)),d=h.doc.resolve(p);l&&n.node(o-1).canReplaceWith(d.index(),d.index()+1,l)&&h.setNodeMarkup(h.mapping.map(n.before(o)),l)}return t&&t(h.scrollIntoView()),!0}}const Ra=Pa(),Ia=(r,e)=>(e&&e(r.tr.setSelection(new K(r.doc))),!0);function za(r,e,t){let n=e.nodeBefore,i=e.nodeAfter,s=e.index();return!n||!i||!n.type.compatibleContent(i.type)?!1:!n.content.size&&e.parent.canReplace(s-1,s)?(t&&t(r.tr.delete(e.pos-n.nodeSize,e.pos).scrollIntoView()),!0):!e.parent.canReplace(s,s+1)||!(i.isTextblock||xi(r.doc,e.pos))?!1:(t&&t(r.tr.join(e.pos).scrollIntoView()),!0)}function hs(r,e,t,n){let i=e.nodeBefore,s=e.nodeAfter,o,l,a=i.type.spec.isolating||s.type.spec.isolating;if(!a&&za(r,e,t))return!0;let c=!a&&e.parent.canReplace(e.index(),e.index()+1);if(c&&(o=(l=i.contentMatchAt(i.childCount)).findWrapping(s.type))&&l.matchType(o[0]||s.type).validEnd){if(t){let p=e.pos+s.nodeSize,d=y.empty;for(let b=o.length-1;b>=0;b--)d=y.from(o[b].create(null,d));d=y.from(i.copy(d));let m=r.tr.step(new J(e.pos-1,p,e.pos,p,new x(d,1,0),o.length,!0)),g=m.doc.resolve(p+2*o.length);g.nodeAfter&&g.nodeAfter.type==i.type&&xi(m.doc,g.pos)&&m.join(g.pos),t(m.scrollIntoView())}return!0}let h=s.type.spec.isolating||n>0&&a?null:C.findFrom(e,1),f=h&&h.$from.blockRange(h.$to),u=f&&bn(f);if(u!=null&&u>=e.depth)return t&&t(r.tr.lift(f,u).scrollIntoView()),!0;if(c&&qe(s,"start",!0)&&qe(i,"end")){let p=i,d=[];for(;d.push(p),!p.isTextblock;)p=p.lastChild;let m=s,g=1;for(;!m.isTextblock;m=m.firstChild)g++;if(p.canReplace(p.childCount,p.childCount,m.content)){if(t){let b=y.empty;for(let H=d.length-1;H>=0;H--)b=y.from(d[H].copy(b));let N=r.tr.step(new J(e.pos-d.length,e.pos+s.nodeSize,e.pos+g,e.pos+s.nodeSize-g,new x(b,d.length,0),0,!0));t(N.scrollIntoView())}return!0}}return!1}function fs(r){return function(e,t){let n=e.selection,i=r<0?n.$from:n.$to,s=i.depth;for(;i.node(s).isInline;){if(!s)return!1;s--}return i.node(s).isTextblock?(t&&t(e.tr.setSelection(M.create(e.doc,r<0?i.start(s):i.end(s)))),!0):!1}}const Ba=fs(-1),Fa=fs(1);function Va(r,e,t,n){for(let i=0;i<e.length;i++){let{$from:s,$to:o}=e[i],l=s.depth==0?r.inlineContent&&r.type.allowsMarkType(t):!1;if(r.nodesBetween(s.pos,o.pos,(a,c)=>{if(l)return!1;l=a.inlineContent&&a.type.allowsMarkType(t)}),l)return!0}return!1}function La(r,e=null,t){return function(n,i){let{empty:s,$cursor:o,ranges:l}=n.selection;if(s&&!o||!Va(n.doc,l,r))return!1;if(i)if(o)r.isInSet(n.storedMarks||o.marks())?i(n.tr.removeStoredMark(r)):i(n.tr.addStoredMark(r.create(e)));else{let a,c=n.tr;a=!l.some(h=>n.doc.rangeHasMark(h.$from.pos,h.$to.pos,r));for(let h=0;h<l.length;h++){let{$from:f,$to:u}=l[h];if(!a)c.removeMark(f.pos,u.pos,r);else{let p=f.pos,d=u.pos,m=f.nodeAfter,g=u.nodeBefore,b=m&&m.isText?/^\s*/.exec(m.text)[0].length:0,N=g&&g.isText?/\s*$/.exec(g.text)[0].length:0;p+b<d&&(p+=b,d-=N),c.addMark(p,d,r.create(e))}}i(c.scrollIntoView())}return!0}}function Rn(...r){return function(e,t,n){for(let i=0;i<r.length;i++)if(r[i](e,t,n))return!0;return!1}}let Yt=Rn(ls,Ca,Oa),Rr=Rn(ls,Ta,Na);const re={Enter:Rn(Da,Aa,va,Ra),"Mod-Enter":Ea,Backspace:Yt,"Mod-Backspace":Yt,"Shift-Backspace":Yt,Delete:Rr,"Mod-Delete":Rr,"Mod-a":Ia},ds={"Ctrl-h":re.Backspace,"Alt-Backspace":re["Mod-Backspace"],"Ctrl-d":re.Delete,"Ctrl-Alt-Backspace":re["Mod-Delete"],"Alt-Delete":re["Mod-Delete"],"Alt-d":re["Mod-Delete"],"Ctrl-a":Ba,"Ctrl-e":Fa};for(let r in re)ds[r]=re[r];const $a=typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator.platform):typeof os<"u"&&os.platform?os.platform()=="darwin":!1,qa=$a?ds:re,Wa=["p",0],Ja=["blockquote",0],Ka=["hr"],Ha=["pre",["code",0]],Ua=["br"],_a={doc:{content:"block+"},paragraph:{content:"inline*",group:"block",parseDOM:[{tag:"p"}],toDOM(){return Wa}},blockquote:{content:"block+",group:"block",defining:!0,parseDOM:[{tag:"blockquote"}],toDOM(){return Ja}},horizontal_rule:{group:"block",parseDOM:[{tag:"hr"}],toDOM(){return Ka}},heading:{attrs:{level:{default:1,validate:"number"}},content:"inline*",group:"block",defining:!0,parseDOM:[{tag:"h1",attrs:{level:1}},{tag:"h2",attrs:{level:2}},{tag:"h3",attrs:{level:3}},{tag:"h4",attrs:{level:4}},{tag:"h5",attrs:{level:5}},{tag:"h6",attrs:{level:6}}],toDOM(r){return["h"+r.attrs.level,0]}},code_block:{content:"text*",marks:"",group:"block",code:!0,defining:!0,parseDOM:[{tag:"pre",preserveWhitespace:"full"}],toDOM(){return Ha}},text:{group:"inline"},image:{inline:!0,attrs:{src:{validate:"string"},alt:{default:null,validate:"string|null"},title:{default:null,validate:"string|null"}},group:"inline",draggable:!0,parseDOM:[{tag:"img[src]",getAttrs(r){return{src:r.getAttribute("src"),title:r.getAttribute("title"),alt:r.getAttribute("alt")}}}],toDOM(r){let{src:e,alt:t,title:n}=r.attrs;return["img",{src:e,alt:t,title:n}]}},hard_break:{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"br"}],toDOM(){return Ua}}},ja=["em",0],Ga=["strong",0],Ya=["code",0],Xa={link:{attrs:{href:{validate:"string"},title:{default:null,validate:"string|null"}},inclusive:!1,parseDOM:[{tag:"a[href]",getAttrs(r){return{href:r.getAttribute("href"),title:r.getAttribute("title")}}}],toDOM(r){let{href:e,title:t}=r.attrs;return["a",{href:e,title:t},0]}},em:{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-style=italic"},{style:"font-style=normal",clearMark:r=>r.type.name=="em"}],toDOM(){return ja}},strong:{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:r=>r.style.fontWeight!="normal"&&null},{style:"font-weight=400",clearMark:r=>r.type.name=="strong"},{style:"font-weight",getAttrs:r=>/^(bold(er)?|[5-9]\d{2,})$/.test(r)&&null}],toDOM(){return Ga}},code:{code:!0,parseDOM:[{tag:"code"}],toDOM(){return Ya}}},Ir=new ai({nodes:_a,marks:Xa}),mn={"extra-large":"var(--vvd-typography-heading-4)",large:"var(--vvd-typography-base-extended)",normal:"var(--vvd-typography-base)",small:"var(--vvd-typography-base-condensed)"},Za=Object.fromEntries(Object.entries(mn).map(([r,e])=>[e,r])),Qa={u:{parseDOM:[{tag:"u"}],toDOM(){return["u",0]}},s:{parseDOM:[{tag:"s"},{tag:"del"}],toDOM(){return["s",0]}},tt:{parseDOM:[{tag:"tt"},{tag:"code"}],toDOM(){return["tt",0]}},textSize:{attrs:{size:{default:"normal"}},parseDOM:[{tag:"span[style*='font']",getAttrs:r=>{const t=r.getAttribute("style").match(/font:\s*([^;]+)/)?.[1]?.trim(),n=Za[t];return n?{size:n}:!1}}],toDOM(r){const e=r.attrs.size;return["span",{style:`font: ${mn[e]||mn.normal};`},0]}}},us=(r="vwc")=>new ai({nodes:{...Ir.spec.nodes.toObject(),imageError:{inline:!0,group:"inline",atom:!0,attrs:{alt:{default:""},icon:{default:""},errorMessage:{default:"Failed to attach"},fileName:{default:""}},toDOM(e){return[`${r}-text-editor-image-placeholder`,{alt:e.attrs.alt,icon:e.attrs.icon,"error-message":e.attrs.errorMessage,"file-name":e.attrs.fileName}]},parseDOM:[{tag:`${r}-text-editor-image-placeholder`,getAttrs(e){return{alt:e.getAttribute("alt"),icon:e.getAttribute("icon"),errorMessage:e.getAttribute("error-message"),fileName:e.getAttribute("file-name")}}}]}},marks:{...Ir.spec.marks.toObject(),...Qa}});us();const ec={start:-1,end:-1};class tc{static get h2(){return{type:"heading",attrs:{level:2}}}static get h3(){return{type:"heading",attrs:{level:3}}}static get p(){return{type:"paragraph",attrs:{}}}}function Xt(r,e){r.textBlockType&&r.textBlockType!==e||r.textBlockType===""?r.textBlockType="":r.textBlockType=e}function nc(){return ss({"Shift-Enter":(r,e)=>{const{schema:t}=r,n=t.nodes.hard_break,{$from:i,$to:s}=r.selection;if(i.sameParent(s))e&&e(r.tr.replaceSelectionWith(n.create()).scrollIntoView());else if(e){const o=r.tr,l=r.doc.resolve(s.end());o.delete(l.start(),s.pos),o.delete(i.pos,l.start()-1),o.insert(i.pos,n.create());const a=M.create(o.doc,i.pos+1);o.setSelection(a),e(o.scrollIntoView())}return!0},Enter:(r,e)=>{const{schema:t}=r,n=t.nodes.paragraph,{$from:i,empty:s}=r.selection;if(!s||i.parent.type!==n)return!1;const o=r.tr,l=i.marks();if(o.split(i.pos),l.length>0){const a=i.pos+1,h=t.text("",l);o.insert(a,h),o.setSelection(M.create(o.doc,a+1))}return e&&e(o.scrollIntoView()),!0}})}function rc(r){return new Mn({view:()=>({update:(e,t)=>{const{from:n,to:i}=e.state.selection,{from:s,to:o}=t.selection;(n!==s||i!==o)&&r({start:n,end:i})}})})}function ic({to:r,from:e}){return{start:e,end:r}}function sc(r,e,t="Image loading failed"){return r.nodes.imageError.create({alt:`inline image from file ${e.name}`,fileName:e.name,icon:e.type.split("/")[1],errorMessage:t})}const oc=r=>r.type.name==="paragraph"&&r.nodeSize===2,lc="Start typing...",ps=new Ro("placeholderPlugin"),zr=(r=lc)=>new Mn({key:ps,props:{decorations(e){const{$from:t}=e.selection,n=[];if(e.doc.childCount===1&&oc(t.parent)){const i=j.node(t.before(),t.after(),{"data-placeholder":r,class:"placeholder"});n.push(i)}return D.create(e.doc,n)}}});class ac{#t=!1;#e;#n(){if(!this.#e)throw new Error("ProseMirror was not initiated. Please use the `init` method first.")}#s=()=>{this.#l("selection-changed")};#o=e=>{e.stopPropagation(),this.#t=!0,this.#l("input")};#r=()=>{if(!this.#t){this.#t=!1;return}this.#l("change")};#i="vwc";init(e,t="vwc"){if(this.#i=t,!(e instanceof HTMLElement))throw new Error("ProseMirror Facade init accepts a valid HTMLElement as its first parameter");const n=[zr(),rc(this.#s),nc(),ss(qa)],i=Ie.create({schema:us(this.#i),plugins:n});this.#e=new is(e,{state:i}),this.#e.dom.addEventListener("input",this.#o),this.#e.dom.addEventListener("blur",this.#r)}updatePlaceholder(e){this.#n();const{state:t}=this.#e,n=t.plugins.filter(o=>o!==ps.get(t)),i=zr(e),s=t.reconfigure({plugins:[...n,i]});this.#e.updateState(s)}replaceContent(e){this.#n();const n=Fe.fromSchema(this.#e.state.schema).parse(new window.DOMParser().parseFromString(e,"text/html").body),i=this.#e.state.tr.replaceWith(0,this.#e.state.doc.content.size,n.content);this.#e.dispatch(i)}selection(e){if(this.#e&&e){const t=this.#e.state.tr.setSelection(M.create(this.#e.state.doc,e.start,e.end));this.#e.dispatch(t)}return this.#e?ic(this.#e.state.selection):ec}#a=document.createElement("div");addEventListener(e,t){this.#a.addEventListener(e,t)}#l=(e,t)=>{this.#a.dispatchEvent(new CustomEvent(e,{detail:t}))};setSelectionTag(e){this.#n();const t=tc[e]??{type:e},{state:n,dispatch:i}=this.#e,{from:s,to:o}=n.selection,l=n.tr;n.doc.nodesBetween(s,o,a=>{const c=n.schema.nodes[t.type];if(!c)throw new Error("Node type tag does not exist in the schema");a.type!==c&&l.setBlockType(s,o,c,t.attrs)}),i(l)}setSelectionDecoration(e){this.#n();const t={bold:"strong",italics:"em",underline:"u",strikethrough:"s",monospace:"tt"},{state:n,dispatch:i}=this.#e,s=e,o=n.schema.marks[t[s]];if(!o)throw new Error(`${e} is not a supported decoration`);La(o)(n,i),this.#t=!0,this.#r()}#c(){const{state:e}=this.#e,{from:t,to:n}=e.selection,i={};return e.doc.nodesBetween(t,n,s=>{s.type.name==="heading"&&s.attrs.level===2?Xt(i,"title"):s.type.name==="heading"&&s.attrs.level===3?Xt(i,"subtitle"):s.type.name==="paragraph"&&Xt(i,"body")}),i.textBlockType}#h(){const{state:e}=this.#e,{from:t,to:n,empty:i}=e.selection,s=[];if(i){const o=e.doc.resolve(t).marks();e.schema.marks.strong&&o.some(l=>l.type===e.schema.marks.strong)&&s.push("bold"),e.schema.marks.em&&o.some(l=>l.type===e.schema.marks.em)&&s.push("italics"),e.schema.marks.u&&o.some(l=>l.type===e.schema.marks.u)&&s.push("underline"),e.schema.marks.s&&o.some(l=>l.type===e.schema.marks.s)&&s.push("strikethrough"),e.schema.marks.tt&&o.some(l=>l.type===e.schema.marks.tt)&&s.push("monospace")}else e.schema.marks.strong&&e.doc.rangeHasMark(t,n,e.schema.marks.strong)&&s.push("bold"),e.schema.marks.em&&e.doc.rangeHasMark(t,n,e.schema.marks.em)&&s.push("italics"),e.schema.marks.u&&e.doc.rangeHasMark(t,n,e.schema.marks.u)&&s.push("underline"),e.schema.marks.s&&e.doc.rangeHasMark(t,n,e.schema.marks.s)&&s.push("strikethrough"),e.schema.marks.tt&&e.doc.rangeHasMark(t,n,e.schema.marks.tt)&&s.push("monospace");return s.length?s:void 0}#f(){const{state:e}=this.#e,{from:t,to:n,empty:i}=e.selection,s="normal";if(i){const l=e.doc.resolve(t).marks().find(a=>a.type===e.schema.marks.textSize);return l?l.attrs.size:s}else{let o=null,l=!1;return e.doc.nodesBetween(t,n,a=>{if(a.isText){const c=a.marks.find(h=>h.type===e.schema.marks.textSize);if(c){if(o===null)o=c.attrs.size;else if(o!==c.attrs.size)return l=!0,!1}else if(o!==null)return l=!0,!1}return!0}),l?"":o!==null?o:s}}getSelectionStyles(){this.#n();const e={};return e.textBlockType=this.#c(),e.textDecoration=this.#h(),e.textSize=this.#f(),e}setTextSize(e="normal"){this.#n();const{state:t,dispatch:n}=this.#e,{schema:i,selection:s,tr:o}=t,{from:l,to:a}=s,c=i.marks.textSize;o.removeMark(l,a,c),o.addMark(l,a,c.create({size:e})),n(o.scrollIntoView()),this.#t=!0,this.#r()}getValue(){return this.#e.dom.innerHTML}async addInlineImage({file:e,position:t,alt:n,error:i}){this.#n();const s=new FileReader,o=await new Promise((d,m)=>{s.onload=()=>d(s.result),s.onerror=m,s.readAsDataURL(e)}),{state:l,dispatch:a}=this.#e,{schema:c}=l,h=n??`inline image from file ${e.name}`,f=i?sc(c,e,i):c.nodes.image.create({src:o,alt:h});let u=t;typeof u!="number"&&(u=l.selection.from);const p=l.tr.insert(u,f);a(p.scrollIntoView())}}var cc=Object.defineProperty,In=(r,e,t,n)=>{for(var i=void 0,s=r.length-1,o;s>=0;s--)(o=r[s])&&(i=o(e,t,i)||i);return i&&cc(e,t,i),i};const hc={title:"h2",subtitle:"h3",body:"p"};class Pt extends qr.Localized(O.VividElement){constructor(){super(),this.selectionStart=null,this.#n=()=>{try{this.#t?.selection({start:this.selectionStart,end:this.selectionEnd?this.selectionEnd:this.selectionStart})}catch(e){console.warn(e.message)}},this.selectionEnd=null,this.#s=()=>{if(!this.#t.selection())return;const{start:e,end:t}=this.#t.selection();this.selectionStart=e,this.selectionEnd=t,this.$emit("selection-changed")},this.#o=()=>{this.$emit("change")},this.#r=()=>{this.$emit("input")}}get value(){return this.#t?.getValue()}set value(e){this.#t&&this.#t.replaceContent(e)}#t;get#e(){return this.shadowRoot.querySelector("#editor")}selectionStartChanged(){!this.selectionStart||this.selectionEnd&&this.selectionStart>this.selectionEnd||this.#n()}#n;selectionEndChanged(){this.selectionEnd&&!this.selectionStart&&(this.selectionStart=1),this.#n()}placeholderChanged(){this.#t?.updatePlaceholder(this.placeholder)}#s;#o;#r;connectedCallback(){super.connectedCallback(),this.#t||(this.#t=new ac,this.#t.init(this.#e),this.#t.addEventListener("selection-changed",this.#s),this.#t.addEventListener("change",this.#o),this.#t.addEventListener("input",this.#r)),this.placeholderChanged()}setTextBlock(e){try{this.#t?.setSelectionTag(hc[e])}catch{console.warn(`Invalid text block: ${e}`)}}setSelectionDecoration(e){try{this.#t?.setSelectionDecoration(e)}catch{console.warn(`Invalid decoration: ${e}`)}}setSelectionTextSize(e){this.#t?.setTextSize(e)}get selectionStyles(){return this.#t?this.#t.getSelectionStyles():{}}focus(){super.focus(),setTimeout(()=>{this.#i.focus()},0)}get#i(){return this.#e.querySelector('[contenteditable="true"]')}scrollToAttachments(e=0){O.Updates.enqueue(()=>{this.#e.scrollTop=this.#i.getBoundingClientRect().height-this.#e.getBoundingClientRect().height+e})}async addInlineImage(e){try{await this.#t.addInlineImage(e)}catch(t){console.warn(t.message)}}}In([O.attr({converter:O.nullableNumberConverter,attribute:"selection-start"})],Pt.prototype,"selectionStart");In([O.attr({converter:O.nullableNumberConverter,attribute:"selection-end"})],Pt.prototype,"selectionEnd");In([O.attr],Pt.prototype,"placeholder");const fc=r=>gn.classNames("control"),dc="menubar",We=r=>r.parentElement;function uc(r){We(r.target).setTextBlock(r.detail),We(r.target).focus()}function pc(r){We(r.target).setSelectionDecoration(r.detail),We(r.target).focus()}function mc(r){We(r.target).setSelectionTextSize(r.detail),We(r.target).focus()}function gc(r,{event:e}){const t=e.target;t.parentElement?.classList.toggle("hidden",t.assignedElements().length<1)}function yc(r,{event:e}){const n=e.target.assignedElements({flatten:!0}),i=n.find(s=>s.tagName.toLowerCase().endsWith(dc));n.forEach(s=>{s===i?s.style.removeProperty("display"):s.style.display="none"}),i&&(i.addEventListener("text-block-selected",uc),i.addEventListener("text-decoration-selected",pc),i.addEventListener("text-size-selected",mc))}function xc(r,{event:e}){r.dispatchEvent(new CustomEvent("file-drop",{detail:e.dataTransfer.files})),ms(r,{event:e})}function bc(r,{event:e}){e.currentTarget.classList.toggle("drag-over",!0)}function ms(r,{event:e}){const t=e.currentTarget;t.contains(e.relatedTarget)||t.classList.remove("drag-over")}const kc=r=>{const e=r.tagFor($r.Divider);return O.html`<template class="${fc}">
|
|
100
100
|
<div id="editor"
|
|
101
101
|
class="editor"
|
|
102
102
|
@drop="${xc}"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { h as U, V as gn, a as ye, d as yn,
|
|
1
|
+
import { h as U, V as gn, a as ye, d as yn, U as ys, n as Lr, c as xs } from "../bundled/vivid-element.js";
|
|
2
2
|
import { B as Fn, b as bs } from "../bundled/definition3.js";
|
|
3
3
|
import { d as $r } from "../bundled/definition14.js";
|
|
4
|
-
import { l as ks } from "../bundled/
|
|
4
|
+
import { l as ks } from "../bundled/definition11.js";
|
|
5
5
|
import { T as It, t as Ss } from "../bundled/definition18.js";
|
|
6
6
|
import { M as Ms, m as Cs } from "../bundled/definition6.js";
|
|
7
7
|
import { M as Os, m as ws } from "../bundled/definition7.js";
|
|
@@ -10222,7 +10222,7 @@ class Pt extends qr(gn) {
|
|
|
10222
10222
|
);
|
|
10223
10223
|
}
|
|
10224
10224
|
scrollToAttachments(e = 0) {
|
|
10225
|
-
ys.
|
|
10225
|
+
ys.enqueue(() => {
|
|
10226
10226
|
this.#e.scrollTop = this.#i.getBoundingClientRect().height - this.#e.getBoundingClientRect().height + e;
|
|
10227
10227
|
});
|
|
10228
10228
|
}
|
|
@@ -12,6 +12,7 @@ const fastElement = require('@microsoft/fast-element');
|
|
|
12
12
|
const scrollIntoView = require('../unbundled/scrollIntoView.cjs');
|
|
13
13
|
const delegatesAria = require('../unbundled/delegates-aria.cjs');
|
|
14
14
|
const formAssociated = require('../unbundled/form-associated.cjs');
|
|
15
|
+
const withContextualHelp = require('../unbundled/with-contextual-help.cjs');
|
|
15
16
|
const withErrorText = require('../unbundled/with-error-text.cjs');
|
|
16
17
|
const withSuccessText = require('../unbundled/with-success-text.cjs');
|
|
17
18
|
const formElement = require('../unbundled/form-element.cjs');
|
|
@@ -20,7 +21,7 @@ const localized = require('../unbundled/localized.cjs');
|
|
|
20
21
|
const fastWebUtilities = require('@microsoft/fast-web-utilities');
|
|
21
22
|
const option = require('../unbundled/option.cjs');
|
|
22
23
|
|
|
23
|
-
const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host(:focus-visible){outline:none}:host{display:inline-block;inline-size:300px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.control-wrapper{display:flex;flex-direction:column;gap:4px}.label{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.selection-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.fieldset{--_connotation-color-primary: var(--vvd-searchable-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-searchable-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-searchable-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-searchable-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-searchable-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-searchable-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-searchable-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-searchable-select-accent-fierce, var(--vvd-color-neutral-700))}.fieldset{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.fieldset.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.fieldset:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.fieldset:hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.fieldset.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.fieldset.hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.fieldset:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.fieldset:disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.fieldset.disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.fieldset.readonly:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset.error:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.fieldset.error:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.fieldset.success:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.fieldset.success:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.fieldset{display:flex;align-items:center;justify-content:space-between;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;padding-block:8px;padding-inline:16px;transition:box-shadow .2s,background-color .2s}@supports selector(:has(*)){.fieldset:not(.has-highlighted-option):has(input:focus){box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}}@supports not selector(:has(*)){.fieldset:not(.has-highlighted-option):focus-within{box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}}:host(:not([shape=pill])) .fieldset{border-radius:8px}:host([shape=pill]) .fieldset{border-radius:24px}.popup-wrapper{position:relative}.content-area{display:flex;overflow:hidden;flex:1;flex-direction:column;gap:8px;min-block-size:24px}.tag-row{display:flex;gap:8px;inline-size:100%}.tag-row.contains-only-input:not(:focus-within){display:contents}.tag-wrapper{overflow:hidden}.tag{max-inline-size:100%}input{box-sizing:border-box;flex:1;border:none;background:none;block-size:24px;font:var(--vvd-typography-base);max-inline-size:100%;min-inline-size:min(100px,40%);outline:none}.contains-only-input input:not(:focus){position:absolute;block-size:0;inline-size:0;min-inline-size:0;opacity:0;pointer-events:none}.listbox{display:flex;flex-direction:column;padding:4px;gap:2px;max-block-size:var(--searchable-select-height, 408px);overflow-y:auto}.empty-message{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-300);font:var(--vvd-typography-base);min-block-size:40px;text-align:center}::part(popup-base){inline-size:max-content;min-inline-size:var(--_searchable-select-fixed-width, 100%)}slot[name=icon]{font-size:20px}.visually-hidden{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}::slotted([data-vvd-component=option][data-highlighted]){border-radius:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}";
|
|
24
|
+
const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host(:focus-visible){outline:none}:host{display:inline-block;inline-size:300px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.control-wrapper{display:flex;flex-direction:column;gap:4px}.label{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.selection-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.fieldset{--_connotation-color-primary: var(--vvd-searchable-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-searchable-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-searchable-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-searchable-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-searchable-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-searchable-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-searchable-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-searchable-select-accent-fierce, var(--vvd-color-neutral-700))}.fieldset{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.fieldset.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.fieldset:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.fieldset:hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.fieldset.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.fieldset.hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.fieldset:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.fieldset:disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.fieldset.disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.fieldset.readonly:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset.error:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.fieldset.error:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.fieldset.success:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.fieldset.success:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.fieldset{display:flex;align-items:center;justify-content:space-between;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;padding-block:8px;padding-inline:16px;transition:box-shadow .2s,background-color .2s}@supports selector(:has(*)){.fieldset:not(.has-highlighted-option):has(input:focus){box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}}@supports not selector(:has(*)){.fieldset:not(.has-highlighted-option):focus-within{box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}}:host(:not([shape=pill])) .fieldset{border-radius:8px}:host([shape=pill]) .fieldset{border-radius:24px}.popup-wrapper{position:relative}.content-area{display:flex;overflow:hidden;flex:1;flex-direction:column;gap:8px;min-block-size:24px}.tag-row{display:flex;gap:8px;inline-size:100%}.tag-row.contains-only-input:not(:focus-within){display:contents}.tag-wrapper{overflow:hidden}.tag{max-inline-size:100%}input{box-sizing:border-box;flex:1;border:none;background:none;block-size:24px;font:var(--vvd-typography-base);max-inline-size:100%;min-inline-size:min(100px,40%);outline:none}.contains-only-input input:not(:focus){position:absolute;block-size:0;inline-size:0;min-inline-size:0;opacity:0;pointer-events:none}.listbox{display:flex;flex-direction:column;padding:4px;gap:2px;max-block-size:var(--searchable-select-height, 408px);overflow-y:auto}.empty-message{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-300);font:var(--vvd-typography-base);min-block-size:40px;text-align:center}::part(popup-base){inline-size:max-content;min-inline-size:var(--_searchable-select-fixed-width, 100%)}slot[name=icon]{font-size:20px}.visually-hidden{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}::slotted([data-vvd-component=option][data-highlighted]){border-radius:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}.label-wrapper{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--label-wrapper-gap, 8px)}.label-wrapper[hidden]{display:none}.label-wrapper .label{flex:1 1 auto}.label-wrapper slot[name=contextual-help]::slotted([data-vvd-component=contextual-help]){margin-inline-start:auto}";
|
|
24
25
|
|
|
25
26
|
const optionTagStyles = ".base.connotation-cta{--_connotation-color-contrast: var(--vvd-option-tag-cta-contrast, var(--vvd-color-cta-800))}.base:not(.connotation-cta){--_connotation-color-contrast: var(--vvd-option-tag-accent-contrast, var(--vvd-color-neutral-800))}.base{position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--fill-color);block-size:calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 1px var(--outline-color);color:var(--text-color);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;user-select:none;vertical-align:middle}.base:not(.disabled){--text-color: var(--_connotation-color-contrast);--fill-color: var(--_connotation-color-soft);--outline-color: transparent}@supports (background-color: color-mix(in srgb,black 50%,white)){.base:not(.disabled){--fill-color: color-mix( in srgb, var(--_connotation-color-contrast), transparent 87.5% )}}.base.disabled{--text-color: var(--vvd-color-neutral-300);--fill-color: var(--vvd-color-neutral-200);--outline-color: transparent}@supports (background-color: color-mix(in srgb,black 50%,white)){.base.disabled{--fill-color: color-mix( in srgb, var(--vvd-color-neutral-800), transparent 87.5% )}}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 1.5);line-height:1}.icon-placeholder{inline-size:calc(calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 1.5)}.remove-button{display:flex;align-items:center;border-radius:inherit;cursor:pointer;outline:none}.disabled .remove-button{pointer-events:none}.remove-button:focus-visible:before{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}";
|
|
26
27
|
|
|
@@ -37,12 +38,14 @@ const TagGapPx = 8;
|
|
|
37
38
|
const InputMinWidthPx = 100;
|
|
38
39
|
const PageSize = 10;
|
|
39
40
|
const isFormAssociatedTryingToSetFormValue = (value) => typeof value === "string";
|
|
40
|
-
class SearchableSelect extends
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
class SearchableSelect extends withContextualHelp.WithContextualHelp(
|
|
42
|
+
mixins.WithFeedback(
|
|
43
|
+
withErrorText.WithErrorText(
|
|
44
|
+
withSuccessText.WithSuccessText(
|
|
45
|
+
formElement.FormElement(
|
|
46
|
+
delegatesAria.DelegatesAria(
|
|
47
|
+
affix.AffixIconWithTrailing(localized.Localized(formAssociated.FormAssociated(vividElement.VividElement)))
|
|
48
|
+
)
|
|
46
49
|
)
|
|
47
50
|
)
|
|
48
51
|
)
|
|
@@ -659,7 +662,7 @@ class SearchableSelect extends mixins.WithFeedback(
|
|
|
659
662
|
case "Enter":
|
|
660
663
|
case " ": {
|
|
661
664
|
this._onTagRemoved(this.values[tagIndex]);
|
|
662
|
-
fastElement.
|
|
665
|
+
fastElement.Updates.process();
|
|
663
666
|
this.#moveTagFocusTo(this.#nextTagIndexForRemoved(tagIndex));
|
|
664
667
|
break;
|
|
665
668
|
}
|
|
@@ -758,6 +761,12 @@ class SearchableSelect extends mixins.WithFeedback(
|
|
|
758
761
|
}
|
|
759
762
|
}
|
|
760
763
|
}
|
|
764
|
+
/**
|
|
765
|
+
* @internal
|
|
766
|
+
*/
|
|
767
|
+
get _hasSelectionCount() {
|
|
768
|
+
return this.multiple && this.maxSelected && this.maxSelected >= 1;
|
|
769
|
+
}
|
|
761
770
|
#determineInitialValues() {
|
|
762
771
|
return this.initialValues.length ? this.initialValues : this.initialValue ? [this.initialValue] : [];
|
|
763
772
|
}
|
|
@@ -837,7 +846,7 @@ class SearchableSelect extends mixins.WithFeedback(
|
|
|
837
846
|
*/
|
|
838
847
|
_onMouseDown(event) {
|
|
839
848
|
const originalTarget = event.composedPath()[0];
|
|
840
|
-
if (!event.defaultPrevented && originalTarget !== this._input) {
|
|
849
|
+
if (!event.defaultPrevented && originalTarget !== this._input && !this._isFromContextualHelp(event)) {
|
|
841
850
|
this._input.focus();
|
|
842
851
|
return false;
|
|
843
852
|
}
|
|
@@ -1142,18 +1151,18 @@ function setFixedDropdownVarWidth(x) {
|
|
|
1142
1151
|
function renderControl(context) {
|
|
1143
1152
|
const popupTag = context.tagFor(popup_definition.Popup);
|
|
1144
1153
|
return fastElement.html`
|
|
1145
|
-
|
|
1146
|
-
|
|
1154
|
+
<div class="label-wrapper" ?hidden=${(x) => !x.label && !x._hasContextualHelp && !x._hasSelectionCount}>
|
|
1155
|
+
${fastElement.when(
|
|
1156
|
+
(x) => x.label || x._hasSelectionCount,
|
|
1147
1157
|
fastElement.html`
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
)}
|
|
1154
|
-
</div>
|
|
1155
|
-
`
|
|
1158
|
+
<div>
|
|
1159
|
+
${fastElement.when((x) => x.label, renderLabel())}
|
|
1160
|
+
${fastElement.when((x) => x._hasSelectionCount, renderSelectionCount())}
|
|
1161
|
+
</div>
|
|
1162
|
+
`
|
|
1156
1163
|
)}
|
|
1164
|
+
<slot name="contextual-help" ${fastElement.slotted("_contextualHelpSlottedContent")}></slot>
|
|
1165
|
+
</div>
|
|
1157
1166
|
<span aria-live="assertive" aria-relevant="text" class="visually-hidden">
|
|
1158
1167
|
${(x) => x._changeDescription}
|
|
1159
1168
|
</span>
|
|
@@ -1213,10 +1222,10 @@ function renderControl(context) {
|
|
|
1213
1222
|
`;
|
|
1214
1223
|
}
|
|
1215
1224
|
const SearchableSelectTemplate = (context) => {
|
|
1216
|
-
const
|
|
1225
|
+
const optionTagName = context.tagFor(OptionTag, true);
|
|
1217
1226
|
return fastElement.html`
|
|
1218
1227
|
<template
|
|
1219
|
-
:_optionTagTagName="${() =>
|
|
1228
|
+
:_optionTagTagName="${() => optionTagName}"
|
|
1220
1229
|
@mousedown="${(x, c) => x._onMouseDown(c.event)}"
|
|
1221
1230
|
>
|
|
1222
1231
|
<div class="control-wrapper">
|
|
@@ -4,10 +4,11 @@ import { VwcIconElement as Icon, iconDefinition } from '../icon/definition.js';
|
|
|
4
4
|
import { VwcProgressRingElement as ProgressRing, progressRingDefinition } from '../progress-ring/definition.js';
|
|
5
5
|
import { V as VividElement, c as createRegisterFunction, d as defineVividComponent } from '../unbundled/vivid-element.js';
|
|
6
6
|
import { a as WithFeedback, f as feedbackMessageDefinition } from '../unbundled/mixins.js';
|
|
7
|
-
import { Observable,
|
|
7
|
+
import { Observable, Updates, attr, nullableNumberConverter, observable, html, when, slotted, ref, repeat } from '@microsoft/fast-element';
|
|
8
8
|
import { s as scrollIntoView } from '../unbundled/scrollIntoView.js';
|
|
9
9
|
import { D as DelegatesAria, d as delegateAria } from '../unbundled/delegates-aria.js';
|
|
10
10
|
import { F as FormAssociated } from '../unbundled/form-associated.js';
|
|
11
|
+
import { W as WithContextualHelp } from '../unbundled/with-contextual-help.js';
|
|
11
12
|
import { W as WithErrorText } from '../unbundled/with-error-text.js';
|
|
12
13
|
import { W as WithSuccessText } from '../unbundled/with-success-text.js';
|
|
13
14
|
import { F as FormElement } from '../unbundled/form-element.js';
|
|
@@ -16,7 +17,7 @@ import { L as Localized } from '../unbundled/localized.js';
|
|
|
16
17
|
import { classNames } from '@microsoft/fast-web-utilities';
|
|
17
18
|
import { i as isListboxOption } from '../unbundled/option.js';
|
|
18
19
|
|
|
19
|
-
const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host(:focus-visible){outline:none}:host{display:inline-block;inline-size:300px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.control-wrapper{display:flex;flex-direction:column;gap:4px}.label{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.selection-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.fieldset{--_connotation-color-primary: var(--vvd-searchable-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-searchable-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-searchable-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-searchable-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-searchable-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-searchable-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-searchable-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-searchable-select-accent-fierce, var(--vvd-color-neutral-700))}.fieldset{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.fieldset.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.fieldset:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.fieldset:hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.fieldset.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.fieldset.hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.fieldset:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.fieldset:disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.fieldset.disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.fieldset.readonly:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset.error:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.fieldset.error:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.fieldset.success:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.fieldset.success:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.fieldset{display:flex;align-items:center;justify-content:space-between;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;padding-block:8px;padding-inline:16px;transition:box-shadow .2s,background-color .2s}@supports selector(:has(*)){.fieldset:not(.has-highlighted-option):has(input:focus){box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}}@supports not selector(:has(*)){.fieldset:not(.has-highlighted-option):focus-within{box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}}:host(:not([shape=pill])) .fieldset{border-radius:8px}:host([shape=pill]) .fieldset{border-radius:24px}.popup-wrapper{position:relative}.content-area{display:flex;overflow:hidden;flex:1;flex-direction:column;gap:8px;min-block-size:24px}.tag-row{display:flex;gap:8px;inline-size:100%}.tag-row.contains-only-input:not(:focus-within){display:contents}.tag-wrapper{overflow:hidden}.tag{max-inline-size:100%}input{box-sizing:border-box;flex:1;border:none;background:none;block-size:24px;font:var(--vvd-typography-base);max-inline-size:100%;min-inline-size:min(100px,40%);outline:none}.contains-only-input input:not(:focus){position:absolute;block-size:0;inline-size:0;min-inline-size:0;opacity:0;pointer-events:none}.listbox{display:flex;flex-direction:column;padding:4px;gap:2px;max-block-size:var(--searchable-select-height, 408px);overflow-y:auto}.empty-message{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-300);font:var(--vvd-typography-base);min-block-size:40px;text-align:center}::part(popup-base){inline-size:max-content;min-inline-size:var(--_searchable-select-fixed-width, 100%)}slot[name=icon]{font-size:20px}.visually-hidden{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}::slotted([data-vvd-component=option][data-highlighted]){border-radius:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}";
|
|
20
|
+
const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host(:focus-visible){outline:none}:host{display:inline-block;inline-size:300px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.control-wrapper{display:flex;flex-direction:column;gap:4px}.label{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.selection-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.fieldset{--_connotation-color-primary: var(--vvd-searchable-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-searchable-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-searchable-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-searchable-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-searchable-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-searchable-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-searchable-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-searchable-select-accent-fierce, var(--vvd-color-neutral-700))}.fieldset{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.fieldset.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.fieldset:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.fieldset:hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.fieldset.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.fieldset.hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.fieldset:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.fieldset:disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.fieldset.disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.fieldset.readonly:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset.error:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.fieldset.error:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.fieldset.success:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.fieldset.success:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.fieldset{display:flex;align-items:center;justify-content:space-between;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;padding-block:8px;padding-inline:16px;transition:box-shadow .2s,background-color .2s}@supports selector(:has(*)){.fieldset:not(.has-highlighted-option):has(input:focus){box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}}@supports not selector(:has(*)){.fieldset:not(.has-highlighted-option):focus-within{box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}}:host(:not([shape=pill])) .fieldset{border-radius:8px}:host([shape=pill]) .fieldset{border-radius:24px}.popup-wrapper{position:relative}.content-area{display:flex;overflow:hidden;flex:1;flex-direction:column;gap:8px;min-block-size:24px}.tag-row{display:flex;gap:8px;inline-size:100%}.tag-row.contains-only-input:not(:focus-within){display:contents}.tag-wrapper{overflow:hidden}.tag{max-inline-size:100%}input{box-sizing:border-box;flex:1;border:none;background:none;block-size:24px;font:var(--vvd-typography-base);max-inline-size:100%;min-inline-size:min(100px,40%);outline:none}.contains-only-input input:not(:focus){position:absolute;block-size:0;inline-size:0;min-inline-size:0;opacity:0;pointer-events:none}.listbox{display:flex;flex-direction:column;padding:4px;gap:2px;max-block-size:var(--searchable-select-height, 408px);overflow-y:auto}.empty-message{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-300);font:var(--vvd-typography-base);min-block-size:40px;text-align:center}::part(popup-base){inline-size:max-content;min-inline-size:var(--_searchable-select-fixed-width, 100%)}slot[name=icon]{font-size:20px}.visually-hidden{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}::slotted([data-vvd-component=option][data-highlighted]){border-radius:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}.label-wrapper{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--label-wrapper-gap, 8px)}.label-wrapper[hidden]{display:none}.label-wrapper .label{flex:1 1 auto}.label-wrapper slot[name=contextual-help]::slotted([data-vvd-component=contextual-help]){margin-inline-start:auto}";
|
|
20
21
|
|
|
21
22
|
const optionTagStyles = ".base.connotation-cta{--_connotation-color-contrast: var(--vvd-option-tag-cta-contrast, var(--vvd-color-cta-800))}.base:not(.connotation-cta){--_connotation-color-contrast: var(--vvd-option-tag-accent-contrast, var(--vvd-color-neutral-800))}.base{position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--fill-color);block-size:calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 1px var(--outline-color);color:var(--text-color);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;user-select:none;vertical-align:middle}.base:not(.disabled){--text-color: var(--_connotation-color-contrast);--fill-color: var(--_connotation-color-soft);--outline-color: transparent}@supports (background-color: color-mix(in srgb,black 50%,white)){.base:not(.disabled){--fill-color: color-mix( in srgb, var(--_connotation-color-contrast), transparent 87.5% )}}.base.disabled{--text-color: var(--vvd-color-neutral-300);--fill-color: var(--vvd-color-neutral-200);--outline-color: transparent}@supports (background-color: color-mix(in srgb,black 50%,white)){.base.disabled{--fill-color: color-mix( in srgb, var(--vvd-color-neutral-800), transparent 87.5% )}}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 1.5);line-height:1}.icon-placeholder{inline-size:calc(calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 1.5)}.remove-button{display:flex;align-items:center;border-radius:inherit;cursor:pointer;outline:none}.disabled .remove-button{pointer-events:none}.remove-button:focus-visible:before{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}";
|
|
22
23
|
|
|
@@ -33,12 +34,14 @@ const TagGapPx = 8;
|
|
|
33
34
|
const InputMinWidthPx = 100;
|
|
34
35
|
const PageSize = 10;
|
|
35
36
|
const isFormAssociatedTryingToSetFormValue = (value) => typeof value === "string";
|
|
36
|
-
class SearchableSelect extends
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
class SearchableSelect extends WithContextualHelp(
|
|
38
|
+
WithFeedback(
|
|
39
|
+
WithErrorText(
|
|
40
|
+
WithSuccessText(
|
|
41
|
+
FormElement(
|
|
42
|
+
DelegatesAria(
|
|
43
|
+
AffixIconWithTrailing(Localized(FormAssociated(VividElement)))
|
|
44
|
+
)
|
|
42
45
|
)
|
|
43
46
|
)
|
|
44
47
|
)
|
|
@@ -655,7 +658,7 @@ class SearchableSelect extends WithFeedback(
|
|
|
655
658
|
case "Enter":
|
|
656
659
|
case " ": {
|
|
657
660
|
this._onTagRemoved(this.values[tagIndex]);
|
|
658
|
-
|
|
661
|
+
Updates.process();
|
|
659
662
|
this.#moveTagFocusTo(this.#nextTagIndexForRemoved(tagIndex));
|
|
660
663
|
break;
|
|
661
664
|
}
|
|
@@ -754,6 +757,12 @@ class SearchableSelect extends WithFeedback(
|
|
|
754
757
|
}
|
|
755
758
|
}
|
|
756
759
|
}
|
|
760
|
+
/**
|
|
761
|
+
* @internal
|
|
762
|
+
*/
|
|
763
|
+
get _hasSelectionCount() {
|
|
764
|
+
return this.multiple && this.maxSelected && this.maxSelected >= 1;
|
|
765
|
+
}
|
|
757
766
|
#determineInitialValues() {
|
|
758
767
|
return this.initialValues.length ? this.initialValues : this.initialValue ? [this.initialValue] : [];
|
|
759
768
|
}
|
|
@@ -833,7 +842,7 @@ class SearchableSelect extends WithFeedback(
|
|
|
833
842
|
*/
|
|
834
843
|
_onMouseDown(event) {
|
|
835
844
|
const originalTarget = event.composedPath()[0];
|
|
836
|
-
if (!event.defaultPrevented && originalTarget !== this._input) {
|
|
845
|
+
if (!event.defaultPrevented && originalTarget !== this._input && !this._isFromContextualHelp(event)) {
|
|
837
846
|
this._input.focus();
|
|
838
847
|
return false;
|
|
839
848
|
}
|
|
@@ -1138,18 +1147,18 @@ function setFixedDropdownVarWidth(x) {
|
|
|
1138
1147
|
function renderControl(context) {
|
|
1139
1148
|
const popupTag = context.tagFor(Popup);
|
|
1140
1149
|
return html`
|
|
1141
|
-
|
|
1142
|
-
|
|
1150
|
+
<div class="label-wrapper" ?hidden=${(x) => !x.label && !x._hasContextualHelp && !x._hasSelectionCount}>
|
|
1151
|
+
${when(
|
|
1152
|
+
(x) => x.label || x._hasSelectionCount,
|
|
1143
1153
|
html`
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
)}
|
|
1150
|
-
</div>
|
|
1151
|
-
`
|
|
1154
|
+
<div>
|
|
1155
|
+
${when((x) => x.label, renderLabel())}
|
|
1156
|
+
${when((x) => x._hasSelectionCount, renderSelectionCount())}
|
|
1157
|
+
</div>
|
|
1158
|
+
`
|
|
1152
1159
|
)}
|
|
1160
|
+
<slot name="contextual-help" ${slotted("_contextualHelpSlottedContent")}></slot>
|
|
1161
|
+
</div>
|
|
1153
1162
|
<span aria-live="assertive" aria-relevant="text" class="visually-hidden">
|
|
1154
1163
|
${(x) => x._changeDescription}
|
|
1155
1164
|
</span>
|
|
@@ -1209,10 +1218,10 @@ function renderControl(context) {
|
|
|
1209
1218
|
`;
|
|
1210
1219
|
}
|
|
1211
1220
|
const SearchableSelectTemplate = (context) => {
|
|
1212
|
-
const
|
|
1221
|
+
const optionTagName = context.tagFor(OptionTag, true);
|
|
1213
1222
|
return html`
|
|
1214
1223
|
<template
|
|
1215
|
-
:_optionTagTagName="${() =>
|
|
1224
|
+
:_optionTagTagName="${() => optionTagName}"
|
|
1216
1225
|
@mousedown="${(x, c) => x._onMouseDown(c.event)}"
|
|
1217
1226
|
>
|
|
1218
1227
|
<div class="control-wrapper">
|