@vonage/vivid 4.25.0 → 4.27.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.
Files changed (196) hide show
  1. package/custom-elements.json +3371 -1999
  2. package/lib/accordion-item/accordion-item.d.ts +2 -2
  3. package/lib/action-group/action-group.d.ts +1 -1
  4. package/lib/alert/alert.d.ts +5 -5
  5. package/lib/audio-player/audio-player.d.ts +3 -3
  6. package/lib/avatar/avatar.d.ts +393 -1
  7. package/lib/avatar/avatar.template.d.ts +2 -2
  8. package/lib/badge/badge.d.ts +2 -2
  9. package/lib/banner/banner.d.ts +6 -6
  10. package/lib/breadcrumb/breadcrumb.d.ts +1 -1
  11. package/lib/breadcrumb-item/breadcrumb-item.d.ts +1 -1
  12. package/lib/button/button.d.ts +6 -6
  13. package/lib/calendar/calendar.d.ts +2 -0
  14. package/lib/calendar-event/calendar-event.d.ts +1 -1
  15. package/lib/card/card.d.ts +1 -1
  16. package/lib/checkbox/checkbox.d.ts +10 -10
  17. package/lib/combobox/combobox.d.ts +11 -11
  18. package/lib/data-grid/data-grid-cell.d.ts +6 -4
  19. package/lib/data-grid/data-grid-row.d.ts +1 -0
  20. package/lib/data-grid/data-grid.d.ts +1 -1
  21. package/lib/date-picker/date-picker.d.ts +75 -75
  22. package/lib/date-picker/date-picker.template.d.ts +1 -1
  23. package/lib/date-range-picker/date-range-picker.d.ts +44 -44
  24. package/lib/date-range-picker/date-range-picker.template.d.ts +1 -1
  25. package/lib/date-time-picker/date-time-picker.d.ts +64 -64
  26. package/lib/date-time-picker/date-time-picker.template.d.ts +1 -1
  27. package/lib/dial-pad/dial-pad.d.ts +3 -3
  28. package/lib/dialog/dialog.d.ts +5 -4
  29. package/lib/divider/divider.d.ts +1 -1
  30. package/lib/fab/fab.d.ts +2 -2
  31. package/lib/file-picker/file-picker.d.ts +10 -10
  32. package/lib/header/header.d.ts +1 -1
  33. package/lib/menu/menu.d.ts +2 -2
  34. package/lib/menu-item/menu-item.d.ts +3 -3
  35. package/lib/nav/nav.d.ts +1 -1
  36. package/lib/nav-disclosure/nav-disclosure.d.ts +3 -3
  37. package/lib/nav-item/nav-item.d.ts +3 -3
  38. package/lib/note/note.d.ts +2 -2
  39. package/lib/number-field/locale.d.ts +3 -2
  40. package/lib/number-field/number-field.d.ts +15 -15
  41. package/lib/option/option.d.ts +3 -3
  42. package/lib/pagination/locale.d.ts +5 -0
  43. package/lib/pagination/pagination.d.ts +341 -2
  44. package/lib/popup/popup.d.ts +1 -0
  45. package/lib/progress/progress.d.ts +1 -1
  46. package/lib/progress-ring/progress-ring.d.ts +1 -1
  47. package/lib/radio/radio.d.ts +3 -3
  48. package/lib/radio-group/radio-group.d.ts +4 -4
  49. package/lib/range-slider/range-slider.d.ts +5 -5
  50. package/lib/rich-text-editor/menubar/menubar.d.ts +3 -3
  51. package/lib/rich-text-editor/rich-text-editor.d.ts +3 -3
  52. package/lib/searchable-select/locale.d.ts +1 -1
  53. package/lib/searchable-select/option-tag.d.ts +3 -3
  54. package/lib/searchable-select/searchable-select.d.ts +15 -15
  55. package/lib/select/select.d.ts +12 -12
  56. package/lib/selectable-box/selectable-box.d.ts +1 -1
  57. package/lib/slider/slider.d.ts +5 -5
  58. package/lib/split-button/split-button.d.ts +6 -6
  59. package/lib/switch/switch.d.ts +2 -2
  60. package/lib/tab/tab.d.ts +6 -6
  61. package/lib/tab-panel/tab-panel.d.ts +1 -1
  62. package/lib/tag/locale.d.ts +3 -0
  63. package/lib/tag/tag.d.ts +343 -6
  64. package/lib/tag-group/tag-group.d.ts +1 -1
  65. package/lib/text-area/text-area.d.ts +14 -14
  66. package/lib/text-field/text-field.d.ts +16 -16
  67. package/lib/time-picker/time-picker.d.ts +21 -21
  68. package/lib/toggletip/toggletip.d.ts +1 -1
  69. package/lib/tooltip/tooltip.d.ts +1 -1
  70. package/lib/tree-item/tree-item.d.ts +3 -3
  71. package/lib/tree-view/tree-view.d.ts +1 -1
  72. package/lib/video-player/video-player.d.ts +3 -3
  73. package/locales/de-DE.cjs +40 -5
  74. package/locales/de-DE.js +40 -5
  75. package/locales/en-GB.cjs +40 -5
  76. package/locales/en-GB.js +40 -5
  77. package/locales/en-US.cjs +40 -5
  78. package/locales/en-US.js +40 -5
  79. package/locales/ja-JP.cjs +40 -5
  80. package/locales/ja-JP.js +40 -5
  81. package/locales/zh-CN.cjs +40 -5
  82. package/locales/zh-CN.js +40 -5
  83. package/package.json +73 -45
  84. package/shared/aria/delegates-aria.d.ts +1 -1
  85. package/shared/aria/host-semantics.d.ts +1 -1
  86. package/shared/calendar-picker.template.cjs +40 -13
  87. package/shared/calendar-picker.template.js +40 -13
  88. package/shared/definition.cjs +19 -3
  89. package/shared/definition.js +20 -4
  90. package/shared/definition11.cjs +1 -1
  91. package/shared/definition11.js +1 -1
  92. package/shared/definition13.cjs +25 -0
  93. package/shared/definition13.js +26 -1
  94. package/shared/definition15.cjs +1 -1
  95. package/shared/definition15.js +1 -1
  96. package/shared/definition16.cjs +1 -1
  97. package/shared/definition16.js +1 -1
  98. package/shared/definition17.cjs +602 -522
  99. package/shared/definition17.js +600 -520
  100. package/shared/definition18.cjs +8 -1
  101. package/shared/definition18.js +8 -1
  102. package/shared/definition19.cjs +9 -2
  103. package/shared/definition19.js +9 -2
  104. package/shared/definition2.cjs +1 -1
  105. package/shared/definition2.js +1 -1
  106. package/shared/definition20.cjs +3 -1
  107. package/shared/definition20.js +3 -1
  108. package/shared/definition21.cjs +2 -2
  109. package/shared/definition21.js +2 -2
  110. package/shared/definition22.cjs +9 -3
  111. package/shared/definition22.js +9 -3
  112. package/shared/definition28.cjs +2 -2
  113. package/shared/definition28.js +2 -2
  114. package/shared/definition3.cjs +1 -1
  115. package/shared/definition3.js +1 -1
  116. package/shared/definition30.cjs +1 -1
  117. package/shared/definition30.js +1 -1
  118. package/shared/definition31.cjs +1 -1
  119. package/shared/definition31.js +1 -1
  120. package/shared/definition32.cjs +1 -1
  121. package/shared/definition32.js +1 -1
  122. package/shared/definition36.cjs +41 -30
  123. package/shared/definition36.js +34 -23
  124. package/shared/definition38.cjs +30 -23
  125. package/shared/definition38.js +30 -23
  126. package/shared/definition4.cjs +1 -1
  127. package/shared/definition4.js +1 -1
  128. package/shared/definition41.cjs +1 -1
  129. package/shared/definition41.js +1 -1
  130. package/shared/definition42.cjs +2 -2
  131. package/shared/definition42.js +2 -2
  132. package/shared/definition44.cjs +129 -117
  133. package/shared/definition44.js +130 -118
  134. package/shared/definition45.cjs +17 -7
  135. package/shared/definition45.js +17 -7
  136. package/shared/definition46.cjs +1 -1
  137. package/shared/definition46.js +1 -1
  138. package/shared/definition49.cjs +6 -6
  139. package/shared/definition49.js +6 -6
  140. package/shared/definition54.cjs +2 -2
  141. package/shared/definition54.js +2 -2
  142. package/shared/definition56.cjs +5 -4
  143. package/shared/definition56.js +5 -4
  144. package/shared/definition57.cjs +1 -1
  145. package/shared/definition57.js +1 -1
  146. package/shared/definition58.cjs +1 -1
  147. package/shared/definition58.js +1 -1
  148. package/shared/definition59.cjs +3 -1
  149. package/shared/definition59.js +3 -1
  150. package/shared/definition6.cjs +45 -12
  151. package/shared/definition6.js +45 -12
  152. package/shared/definition63.cjs +2 -2
  153. package/shared/definition63.js +2 -2
  154. package/shared/definition64.cjs +136 -38
  155. package/shared/definition64.js +136 -38
  156. package/shared/definition67.cjs +36 -15
  157. package/shared/definition67.js +37 -16
  158. package/shared/feedback/feedback-message.d.ts +1 -1
  159. package/shared/feedback/mixins.d.ts +2 -2
  160. package/shared/form-associated.cjs +4 -0
  161. package/shared/form-associated.js +4 -0
  162. package/shared/foundation/button/button.d.ts +1 -1
  163. package/shared/foundation/vivid-element/vivid-element.d.ts +2 -0
  164. package/shared/key-codes.js +1 -1
  165. package/shared/localization/Locale.d.ts +4 -0
  166. package/shared/mixins.cjs +4 -1
  167. package/shared/mixins.js +4 -1
  168. package/shared/patterns/affix.d.ts +2 -2
  169. package/shared/patterns/char-count/char-count.d.ts +1 -1
  170. package/shared/patterns/form-elements/with-success-text.d.ts +1 -1
  171. package/shared/patterns/linkable.d.ts +1 -1
  172. package/shared/patterns/localized.d.ts +1 -1
  173. package/shared/patterns/trapped-focus.d.ts +1 -1
  174. package/shared/picker-field/mixins/calendar-picker.d.ts +2 -2
  175. package/shared/picker-field/mixins/calendar-picker.locale.d.ts +5 -0
  176. package/shared/picker-field/mixins/calendar-picker.template.d.ts +2 -2
  177. package/shared/picker-field/mixins/calendar-segments/segment.d.ts +1 -0
  178. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +1 -1
  179. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +4 -4
  180. package/shared/picker-field/mixins/single-date-picker.d.ts +4 -4
  181. package/shared/picker-field/mixins/single-value-picker.d.ts +1 -1
  182. package/shared/picker-field/mixins/time-selection-picker.d.ts +2 -2
  183. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +2 -2
  184. package/shared/picker-field/picker-field.d.ts +3 -3
  185. package/shared/picker-field.template.cjs +13 -13
  186. package/shared/picker-field.template.js +13 -13
  187. package/shared/vivid-element.cjs +11 -1
  188. package/shared/vivid-element.js +11 -1
  189. package/styles/core/all.css +5 -5
  190. package/styles/core/theme.css +2 -2
  191. package/styles/core/typography.css +4 -4
  192. package/styles/fonts/spezia-variable.css +15 -15
  193. package/styles/tokens/theme-dark.css +4 -4
  194. package/styles/tokens/theme-light.css +4 -4
  195. package/styles/tokens/vivid-2-compat.css +1 -1
  196. package/vivid.api.json +395 -277
@@ -1,70 +1,21 @@
1
1
  'use strict';
2
2
 
3
3
  const vividElement = require('./vivid-element.cjs');
4
- const localized = require('./localized.cjs');
5
4
  const definition$1 = require('./definition11.cjs');
6
- const divider = require('./divider.cjs');
5
+ const definition$6 = require('./definition23.cjs');
6
+ const definition$5 = require('./definition37.cjs');
7
7
  const definition$2 = require('./definition61.cjs');
8
- const definition$4 = require('./definition46.cjs');
9
- const option = require('./option.cjs');
10
8
  const definition = require('./definition31.cjs');
11
9
  const definition$3 = require('./definition30.cjs');
10
+ const definition$4 = require('./definition46.cjs');
11
+ const divider = require('./divider.cjs');
12
+ const option = require('./option.cjs');
12
13
  const repeat = require('./repeat.cjs');
13
14
  const classNames = require('./class-names.cjs');
14
- const definition$5 = require('./definition37.cjs');
15
- const definition$6 = require('./definition23.cjs');
15
+ const localized = require('./localized.cjs');
16
16
 
17
17
  const styles$1 = "@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}.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}";
18
18
 
19
- const styles = ":host{display:flex;align-items:center;background-color:var(--vvd-color-neutral-50);gap:4px}:host .hide-menubar{display:none}.title{--_text-primary-custom-size: var(--vvd-typography-heading-4)}.subtitle{--_text-primary-custom-size: var(--vvd-typography-base-extended)}.body{--_text-primary-custom-size: var(--vvd-typography-base)}.divider{height:28px}#text-block{width:104px}";
20
-
21
- var __defProp$1 = Object.defineProperty;
22
- var __decorateClass$1 = (decorators, target, key, kind) => {
23
- var result = void 0 ;
24
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
25
- if (decorator = decorators[i])
26
- result = (decorator(target, key, result) ) || result;
27
- if (result) __defProp$1(target, key, result);
28
- return result;
29
- };
30
- class MenuBar extends localized.Localized(vividElement.VividElement) {
31
- get #textEditorElement() {
32
- return this.parentElement;
33
- }
34
- #updateTextStyleState = () => {
35
- this.dispatchEvent(
36
- new CustomEvent("text-styles-changed", {
37
- detail: this.#textEditorElement?.selectionStyles
38
- })
39
- );
40
- };
41
- connectedCallback() {
42
- super.connectedCallback();
43
- this.#textEditorElement.addEventListener(
44
- "selection-changed",
45
- this.#updateTextStyleState
46
- );
47
- this.#textEditorElement.addEventListener(
48
- "change",
49
- this.#updateTextStyleState
50
- );
51
- }
52
- disconnectedCallback() {
53
- super.disconnectedCallback();
54
- this.#textEditorElement?.removeEventListener(
55
- "selection-changed",
56
- this.#updateTextStyleState
57
- );
58
- this.#textEditorElement?.removeEventListener(
59
- "change",
60
- this.#updateTextStyleState
61
- );
62
- }
63
- }
64
- __decorateClass$1([
65
- vividElement.attr({ attribute: "menu-items" })
66
- ], MenuBar.prototype, "menuItems");
67
-
68
19
  function notifyMenuBarChange(menuBar, eventName, payload) {
69
20
  menuBar.$emit(eventName, payload, { bubbles: false, composed: false });
70
21
  return true;
@@ -305,6 +256,53 @@ const MENU_BAR_ITEMS = {
305
256
  }
306
257
  };
307
258
 
259
+ var __defProp$1 = Object.defineProperty;
260
+ var __decorateClass$1 = (decorators, target, key, kind) => {
261
+ var result = void 0 ;
262
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
263
+ if (decorator = decorators[i])
264
+ result = (decorator(target, key, result) ) || result;
265
+ if (result) __defProp$1(target, key, result);
266
+ return result;
267
+ };
268
+ class MenuBar extends localized.Localized(vividElement.VividElement) {
269
+ get #textEditorElement() {
270
+ return this.parentElement;
271
+ }
272
+ #updateTextStyleState = () => {
273
+ this.dispatchEvent(
274
+ new CustomEvent("text-styles-changed", {
275
+ detail: this.#textEditorElement?.selectionStyles
276
+ })
277
+ );
278
+ };
279
+ connectedCallback() {
280
+ super.connectedCallback();
281
+ this.#textEditorElement.addEventListener(
282
+ "selection-changed",
283
+ this.#updateTextStyleState
284
+ );
285
+ this.#textEditorElement.addEventListener(
286
+ "change",
287
+ this.#updateTextStyleState
288
+ );
289
+ }
290
+ disconnectedCallback() {
291
+ super.disconnectedCallback();
292
+ this.#textEditorElement?.removeEventListener(
293
+ "selection-changed",
294
+ this.#updateTextStyleState
295
+ );
296
+ this.#textEditorElement?.removeEventListener(
297
+ "change",
298
+ this.#updateTextStyleState
299
+ );
300
+ }
301
+ }
302
+ __decorateClass$1([
303
+ vividElement.attr({ attribute: "menu-items" })
304
+ ], MenuBar.prototype, "menuItems");
305
+
308
306
  const getClasses$1 = (menuBar) => classNames.classNames("control", [
309
307
  "hide-menubar",
310
308
  getValidMenuItems(menuBar).length === 0
@@ -334,6 +332,8 @@ const MenuBarTemplate = (context) => {
334
332
  </template>`;
335
333
  };
336
334
 
335
+ const styles = ":host{display:flex;align-items:center;background-color:var(--vvd-color-neutral-50);gap:4px}:host .hide-menubar{display:none}.title{--_text-primary-custom-size: var(--vvd-typography-heading-4)}.subtitle{--_text-primary-custom-size: var(--vvd-typography-base-extended)}.body{--_text-primary-custom-size: var(--vvd-typography-base)}.divider{height:28px}#text-block{width:104px}";
336
+
337
337
  const menuBarDefinition = vividElement.defineVividComponent(
338
338
  "menubar",
339
339
  MenuBar,
@@ -7067,6 +7067,7 @@ const isEquivalentPosition = function (node, off, targetNode, targetOff) {
7067
7067
  };
7068
7068
  const atomElements = /^(img|br|input|textarea|hr)$/i;
7069
7069
  function scanFor(node, off, targetNode, targetOff, dir) {
7070
+ var _a;
7070
7071
  for (;;) {
7071
7072
  if (node == targetNode && off == targetOff)
7072
7073
  return true;
@@ -7079,10 +7080,17 @@ function scanFor(node, off, targetNode, targetOff, dir) {
7079
7080
  node = parent;
7080
7081
  }
7081
7082
  else if (node.nodeType == 1) {
7082
- node = node.childNodes[off + (dir < 0 ? -1 : 0)];
7083
- if (node.contentEditable == "false")
7084
- return false;
7085
- off = dir < 0 ? nodeSize(node) : 0;
7083
+ let child = node.childNodes[off + (dir < 0 ? -1 : 0)];
7084
+ if (child.nodeType == 1 && child.contentEditable == "false") {
7085
+ if ((_a = child.pmViewDesc) === null || _a === void 0 ? void 0 : _a.ignoreForSelection)
7086
+ off += dir;
7087
+ else
7088
+ return false;
7089
+ }
7090
+ else {
7091
+ node = child;
7092
+ off = dir < 0 ? nodeSize(node) : 0;
7093
+ }
7086
7094
  }
7087
7095
  else {
7088
7096
  return false;
@@ -7203,7 +7211,7 @@ const safari = !ie$1 && !!nav && /Apple Computer/.test(nav.vendor);
7203
7211
  // Is true for both iOS and iPadOS for convenience
7204
7212
  const ios = safari && (/Mobile\/\w+/.test(agent) || !!nav && nav.maxTouchPoints > 2);
7205
7213
  const mac$3 = ios || (nav ? /Mac/.test(nav.platform) : false);
7206
- const windows = nav ? /Win/.test(nav.platform) : false;
7214
+ const windows$1 = nav ? /Win/.test(nav.platform) : false;
7207
7215
  const android = /Android \d/.test(agent);
7208
7216
  const webkit = !!doc && "webkitFontSmoothing" in doc.documentElement.style;
7209
7217
  const webkit_version = webkit ? +(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent) || [0, 0])[1] : 0;
@@ -8166,6 +8174,7 @@ class ViewDesc {
8166
8174
  }
8167
8175
  get domAtom() { return false; }
8168
8176
  get ignoreForCoords() { return false; }
8177
+ get ignoreForSelection() { return false; }
8169
8178
  isText(text) { return false; }
8170
8179
  }
8171
8180
  // A widget desc represents a widget decoration, which is a DOM node
@@ -8210,6 +8219,7 @@ class WidgetViewDesc extends ViewDesc {
8210
8219
  super.destroy();
8211
8220
  }
8212
8221
  get domAtom() { return true; }
8222
+ get ignoreForSelection() { return !!this.widget.type.spec.relaxedSide; }
8213
8223
  get side() { return this.widget.type.side; }
8214
8224
  }
8215
8225
  class CompositionViewDesc extends ViewDesc {
@@ -9673,7 +9683,7 @@ function setSelFocus(view, node, offset) {
9673
9683
  }
9674
9684
  function findDirection(view, pos) {
9675
9685
  let $pos = view.state.doc.resolve(pos);
9676
- if (!(chrome || windows) && $pos.parent.inlineContent) {
9686
+ if (!(chrome || windows$1) && $pos.parent.inlineContent) {
9677
9687
  let coords = view.coordsAtPos(pos);
9678
9688
  if (pos > $pos.start()) {
9679
9689
  let before = view.coordsAtPos(pos - 1);
@@ -10079,7 +10089,7 @@ class InputState {
10079
10089
  this.mouseDown = null;
10080
10090
  this.lastKeyCode = null;
10081
10091
  this.lastKeyCodeTime = 0;
10082
- this.lastClick = { time: 0, x: 0, y: 0, type: "" };
10092
+ this.lastClick = { time: 0, x: 0, y: 0, type: "", button: 0 };
10083
10093
  this.lastSelectionOrigin = null;
10084
10094
  this.lastSelectionTime = 0;
10085
10095
  this.lastIOSEnter = 0;
@@ -10207,8 +10217,9 @@ editHandlers.keypress = (view, _event) => {
10207
10217
  let sel = view.state.selection;
10208
10218
  if (!(sel instanceof TextSelection) || !sel.$from.sameParent(sel.$to)) {
10209
10219
  let text = String.fromCharCode(event.charCode);
10210
- if (!/[\r\n]/.test(text) && !view.someProp("handleTextInput", f => f(view, sel.$from.pos, sel.$to.pos, text)))
10211
- view.dispatch(view.state.tr.insertText(text).scrollIntoView());
10220
+ let deflt = () => view.state.tr.insertText(text).scrollIntoView();
10221
+ if (!/[\r\n]/.test(text) && !view.someProp("handleTextInput", f => f(view, sel.$from.pos, sel.$to.pos, text, deflt)))
10222
+ view.dispatch(deflt());
10212
10223
  event.preventDefault();
10213
10224
  }
10214
10225
  };
@@ -10320,13 +10331,14 @@ handlers.mousedown = (view, _event) => {
10320
10331
  view.input.shiftKey = event.shiftKey;
10321
10332
  let flushed = forceDOMFlush(view);
10322
10333
  let now = Date.now(), type = "singleClick";
10323
- if (now - view.input.lastClick.time < 500 && isNear(event, view.input.lastClick) && !event[selectNodeModifier]) {
10334
+ if (now - view.input.lastClick.time < 500 && isNear(event, view.input.lastClick) && !event[selectNodeModifier] &&
10335
+ view.input.lastClick.button == event.button) {
10324
10336
  if (view.input.lastClick.type == "singleClick")
10325
10337
  type = "doubleClick";
10326
10338
  else if (view.input.lastClick.type == "doubleClick")
10327
10339
  type = "tripleClick";
10328
10340
  }
10329
- view.input.lastClick = { time: now, x: event.clientX, y: event.clientY, type };
10341
+ view.input.lastClick = { time: now, x: event.clientX, y: event.clientY, type, button: event.button };
10330
10342
  let pos = view.posAtCoords(eventCoords(event));
10331
10343
  if (!pos)
10332
10344
  return;
@@ -10583,10 +10595,10 @@ function endComposition(view, restarting = false) {
10583
10595
  view.domObserver.forceFlush();
10584
10596
  clearComposition(view);
10585
10597
  if (restarting || view.docView && view.docView.dirty) {
10586
- let sel = selectionFromDOM(view);
10587
- if (sel && !sel.eq(view.state.selection))
10598
+ let sel = selectionFromDOM(view), cur = view.state.selection;
10599
+ if (sel && !sel.eq(cur))
10588
10600
  view.dispatch(view.state.tr.setSelection(sel));
10589
- else if ((view.markCursor || restarting) && !view.state.selection.empty)
10601
+ else if ((view.markCursor || restarting) && !cur.$from.node(cur.$from.sharedDepth(cur.to)).inlineContent)
10590
10602
  view.dispatch(view.state.tr.deleteSelection());
10591
10603
  else
10592
10604
  view.updateState(view.state);
@@ -12091,7 +12103,26 @@ function readDOMChange(view, from, to, typeOver, addedNodes) {
12091
12103
  }, 20);
12092
12104
  }
12093
12105
  let chFrom = change.start, chTo = change.endA;
12094
- let tr, storedMarks, markChange;
12106
+ let mkTr = (base) => {
12107
+ let tr = base || view.state.tr.replace(chFrom, chTo, parse.doc.slice(change.start - parse.from, change.endB - parse.from));
12108
+ if (parse.sel) {
12109
+ let sel = resolveSelection(view, tr.doc, parse.sel);
12110
+ // Chrome will sometimes, during composition, report the
12111
+ // selection in the wrong place. If it looks like that is
12112
+ // happening, don't update the selection.
12113
+ // Edge just doesn't move the cursor forward when you start typing
12114
+ // in an empty block or between br nodes.
12115
+ if (sel && !(chrome && view.composing && sel.empty &&
12116
+ (change.start != change.endB || view.input.lastChromeDelete < Date.now() - 100) &&
12117
+ (sel.head == chFrom || sel.head == tr.mapping.map(chTo) - 1) ||
12118
+ ie$1 && sel.empty && sel.head == chFrom))
12119
+ tr.setSelection(sel);
12120
+ }
12121
+ if (compositionID)
12122
+ tr.setMeta("composition", compositionID);
12123
+ return tr.scrollIntoView();
12124
+ };
12125
+ let markChange;
12095
12126
  if (inlineChange) {
12096
12127
  if ($from.pos == $to.pos) { // Deletion
12097
12128
  // IE11 sometimes weirdly moves the DOM selection around after
@@ -12100,46 +12131,33 @@ function readDOMChange(view, from, to, typeOver, addedNodes) {
12100
12131
  view.domObserver.suppressSelectionUpdates();
12101
12132
  setTimeout(() => selectionToDOM(view), 20);
12102
12133
  }
12103
- tr = view.state.tr.delete(chFrom, chTo);
12104
- storedMarks = doc.resolve(change.start).marksAcross(doc.resolve(change.endA));
12134
+ let tr = mkTr(view.state.tr.delete(chFrom, chTo));
12135
+ let marks = doc.resolve(change.start).marksAcross(doc.resolve(change.endA));
12136
+ if (marks)
12137
+ tr.ensureMarks(marks);
12138
+ view.dispatch(tr);
12105
12139
  }
12106
12140
  else if ( // Adding or removing a mark
12107
12141
  change.endA == change.endB &&
12108
12142
  (markChange = isMarkChange($from.parent.content.cut($from.parentOffset, $to.parentOffset), $fromA.parent.content.cut($fromA.parentOffset, change.endA - $fromA.start())))) {
12109
- tr = view.state.tr;
12143
+ let tr = mkTr(view.state.tr);
12110
12144
  if (markChange.type == "add")
12111
12145
  tr.addMark(chFrom, chTo, markChange.mark);
12112
12146
  else
12113
12147
  tr.removeMark(chFrom, chTo, markChange.mark);
12148
+ view.dispatch(tr);
12114
12149
  }
12115
12150
  else if ($from.parent.child($from.index()).isText && $from.index() == $to.index() - ($to.textOffset ? 0 : 1)) {
12116
12151
  // Both positions in the same text node -- simply insert text
12117
12152
  let text = $from.parent.textBetween($from.parentOffset, $to.parentOffset);
12118
- if (view.someProp("handleTextInput", f => f(view, chFrom, chTo, text)))
12119
- return;
12120
- tr = view.state.tr.insertText(text, chFrom, chTo);
12121
- }
12122
- }
12123
- if (!tr)
12124
- tr = view.state.tr.replace(chFrom, chTo, parse.doc.slice(change.start - parse.from, change.endB - parse.from));
12125
- if (parse.sel) {
12126
- let sel = resolveSelection(view, tr.doc, parse.sel);
12127
- // Chrome will sometimes, during composition, report the
12128
- // selection in the wrong place. If it looks like that is
12129
- // happening, don't update the selection.
12130
- // Edge just doesn't move the cursor forward when you start typing
12131
- // in an empty block or between br nodes.
12132
- if (sel && !(chrome && view.composing && sel.empty &&
12133
- (change.start != change.endB || view.input.lastChromeDelete < Date.now() - 100) &&
12134
- (sel.head == chFrom || sel.head == tr.mapping.map(chTo) - 1) ||
12135
- ie$1 && sel.empty && sel.head == chFrom))
12136
- tr.setSelection(sel);
12137
- }
12138
- if (storedMarks)
12139
- tr.ensureMarks(storedMarks);
12140
- if (compositionID)
12141
- tr.setMeta("composition", compositionID);
12142
- view.dispatch(tr.scrollIntoView());
12153
+ let deflt = () => mkTr(view.state.tr.insertText(text, chFrom, chTo));
12154
+ if (!view.someProp("handleTextInput", f => f(view, chFrom, chTo, text, deflt)))
12155
+ view.dispatch(deflt());
12156
+ }
12157
+ }
12158
+ else {
12159
+ view.dispatch(mkTr());
12160
+ }
12143
12161
  }
12144
12162
  function resolveSelection(view, doc, parsedSel) {
12145
12163
  if (Math.max(parsedSel.anchor, parsedSel.head) > doc.content.size)
@@ -12733,22 +12751,6 @@ class EditorView {
12733
12751
  return dispatchEvent(this, event);
12734
12752
  }
12735
12753
  /**
12736
- Dispatch a transaction. Will call
12737
- [`dispatchTransaction`](https://prosemirror.net/docs/ref/#view.DirectEditorProps.dispatchTransaction)
12738
- when given, and otherwise defaults to applying the transaction to
12739
- the current state and calling
12740
- [`updateState`](https://prosemirror.net/docs/ref/#view.EditorView.updateState) with the result.
12741
- This method is bound to the view instance, so that it can be
12742
- easily passed around.
12743
- */
12744
- dispatch(tr) {
12745
- let dispatchTransaction = this._props.dispatchTransaction;
12746
- if (dispatchTransaction)
12747
- dispatchTransaction.call(this, tr);
12748
- else
12749
- this.updateState(this.state.apply(tr));
12750
- }
12751
- /**
12752
12754
  @internal
12753
12755
  */
12754
12756
  domSelectionRange() {
@@ -12765,6 +12767,13 @@ class EditorView {
12765
12767
  return this.root.getSelection();
12766
12768
  }
12767
12769
  }
12770
+ EditorView.prototype.dispatch = function (tr) {
12771
+ let dispatchTransaction = this._props.dispatchTransaction;
12772
+ if (dispatchTransaction)
12773
+ dispatchTransaction.call(this, tr);
12774
+ else
12775
+ this.updateState(this.state.apply(tr));
12776
+ };
12768
12777
  function computeDocDeco(view) {
12769
12778
  let attrs = Object.create(null);
12770
12779
  attrs.class = "ProseMirror";
@@ -12952,7 +12961,8 @@ function keyName(event) {
12952
12961
  return name
12953
12962
  }
12954
12963
 
12955
- const mac$1 = typeof navigator != "undefined" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform) : false;
12964
+ const mac$1 = typeof navigator != "undefined" && /Mac|iP(hone|[oa]d)/.test(navigator.platform);
12965
+ const windows = typeof navigator != "undefined" && /Win/.test(navigator.platform);
12956
12966
  function normalizeKeyName(name) {
12957
12967
  let parts = name.split(/-(?!$)/), result = parts[parts.length - 1];
12958
12968
  if (result == "Space")
@@ -13058,12 +13068,14 @@ function keydownHandler(bindings) {
13058
13068
  if (noShift && noShift(view.state, view.dispatch, view))
13059
13069
  return true;
13060
13070
  }
13061
- if ((event.shiftKey || event.altKey || event.metaKey || name.charCodeAt(0) > 127) &&
13071
+ if ((event.altKey || event.metaKey || event.ctrlKey) &&
13072
+ // Ctrl-Alt may be used for AltGr on Windows
13073
+ !(windows && event.ctrlKey && event.altKey) &&
13062
13074
  (baseName = base[event.keyCode]) && baseName != name) {
13063
13075
  // Try falling back to the keyCode when there's a modifier
13064
13076
  // active or the character produced isn't ASCII, and our table
13065
13077
  // produces a different name from the the keyCode. See #668,
13066
- // #1060
13078
+ // #1060, #1529.
13067
13079
  let fromCode = map[modifiers(baseName, event)];
13068
13080
  if (fromCode && fromCode(view.state, view.dispatch, view))
13069
13081
  return true;