@vonage/vivid 5.3.0 → 5.4.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 (157) hide show
  1. package/accordion-item/definition.js +1 -1
  2. package/alert/definition.cjs +1 -1
  3. package/alert/definition.js +2 -2
  4. package/badge/definition.js +1 -1
  5. package/banner/definition.js +1 -1
  6. package/bundled/calendar-picker.template.cjs +7 -7
  7. package/bundled/calendar-picker.template.js +101 -101
  8. package/bundled/definition11.cjs +13 -13
  9. package/bundled/definition11.js +202 -50
  10. package/bundled/definition19.cjs +24 -25
  11. package/bundled/definition19.js +152 -164
  12. package/bundled/definition6.cjs +3 -3
  13. package/bundled/definition6.js +19 -19
  14. package/bundled/definition9.cjs +5 -5
  15. package/bundled/definition9.js +394 -392
  16. package/bundled/listbox.cjs +1 -1
  17. package/bundled/listbox.js +82 -102
  18. package/bundled/localized.cjs +1 -1
  19. package/bundled/localized.js +18 -14
  20. package/bundled/vivid-element.cjs +5 -1
  21. package/bundled/vivid-element.js +401 -358
  22. package/calendar/index.cjs +1 -1
  23. package/calendar/index.js +14 -14
  24. package/card/definition.cjs +1 -1
  25. package/card/definition.js +1 -1
  26. package/color-picker/definition.cjs +1 -1
  27. package/color-picker/definition.js +1 -1
  28. package/combobox/definition.cjs +7 -27
  29. package/combobox/definition.js +8 -28
  30. package/combobox/index.cjs +6 -6
  31. package/combobox/index.js +57 -71
  32. package/custom-elements.json +305 -2
  33. package/date-picker/definition.cjs +1 -1
  34. package/date-picker/definition.js +1 -1
  35. package/date-range-picker/definition.cjs +1 -1
  36. package/date-range-picker/definition.js +1 -1
  37. package/date-time-picker/definition.cjs +1 -1
  38. package/date-time-picker/definition.js +1 -1
  39. package/dialog/definition.cjs +2 -2
  40. package/dialog/definition.js +2 -2
  41. package/dialog/index.cjs +7 -7
  42. package/dialog/index.js +6 -6
  43. package/elevation/definition.cjs +1 -1
  44. package/elevation/definition.js +1 -1
  45. package/fab/definition.js +1 -1
  46. package/header/definition.cjs +1 -1
  47. package/header/definition.js +1 -1
  48. package/index.cjs +3 -4
  49. package/index.js +2 -3
  50. package/lib/accordion/accordion.d.ts +1 -1
  51. package/lib/accordion/definition.d.ts +1 -1
  52. package/lib/audio-player/audio-player.d.ts +1 -1
  53. package/lib/combobox/combobox.d.ts +1 -0
  54. package/lib/combobox/combobox.options.d.ts +1 -1
  55. package/lib/divider/divider.d.ts +1 -1
  56. package/lib/menu-item/menu-item-role.d.ts +1 -1
  57. package/lib/popup/popup.d.ts +1 -1
  58. package/lib/searchable-select/locale.d.ts +4 -0
  59. package/lib/searchable-select/searchable-select.d.ts +3 -0
  60. package/lib/select/select.d.ts +3 -1
  61. package/lib/slider/slider.d.ts +1 -1
  62. package/lib/tabs/tabs.d.ts +2 -2
  63. package/lib/text-area/text-area.d.ts +1 -1
  64. package/lib/text-field/text-field.d.ts +1 -1
  65. package/locales/de-DE.cjs +4 -0
  66. package/locales/de-DE.js +4 -0
  67. package/locales/en-GB.cjs +4 -0
  68. package/locales/en-GB.js +4 -0
  69. package/locales/en-US.cjs +4 -0
  70. package/locales/en-US.js +4 -0
  71. package/locales/ja-JP.cjs +4 -0
  72. package/locales/ja-JP.js +4 -0
  73. package/locales/zh-CN.cjs +4 -0
  74. package/locales/zh-CN.js +4 -0
  75. package/menu/definition.cjs +4 -4
  76. package/menu/definition.js +4 -4
  77. package/nav-disclosure/definition.js +1 -1
  78. package/nav-item/definition.js +1 -1
  79. package/note/definition.js +1 -1
  80. package/number-field/definition.js +1 -1
  81. package/option/definition.cjs +6 -77
  82. package/option/definition.js +3 -78
  83. package/package.json +31 -5
  84. package/popup/definition.cjs +2 -2
  85. package/popup/definition.js +2 -2
  86. package/range-slider/definition.cjs +1 -1
  87. package/range-slider/definition.js +1 -1
  88. package/rich-text-editor/definition.cjs +2 -3
  89. package/rich-text-editor/definition.js +1 -2
  90. package/rich-text-editor/index.cjs +27 -27
  91. package/rich-text-editor/index.js +1208 -1198
  92. package/searchable-select/definition.cjs +103 -11
  93. package/searchable-select/definition.js +103 -11
  94. package/searchable-select/index.cjs +81 -69
  95. package/searchable-select/index.js +359 -273
  96. package/select/definition.cjs +24 -41
  97. package/select/definition.js +24 -41
  98. package/selectable-box/definition.cjs +1 -1
  99. package/selectable-box/definition.js +1 -1
  100. package/selectable-box/index.cjs +1 -1
  101. package/selectable-box/index.js +1 -1
  102. package/shared/aria/aria-mixin.d.ts +1 -1
  103. package/shared/foundation/listbox/listbox.d.ts +4 -0
  104. package/simple-color-picker/definition.cjs +1 -1
  105. package/simple-color-picker/definition.js +1 -1
  106. package/slider/definition.cjs +1 -1
  107. package/slider/definition.js +1 -1
  108. package/split-button/definition.js +1 -1
  109. package/styles/core/all.css +1 -1
  110. package/styles/core/theme.css +1 -1
  111. package/styles/core/typography.css +1 -1
  112. package/styles/tokens/theme-dark.css +4 -4
  113. package/styles/tokens/theme-light.css +4 -4
  114. package/styles/tokens/vivid-2-compat.css +1 -1
  115. package/tab/definition.js +1 -1
  116. package/tag/definition.js +1 -1
  117. package/text-field/definition.js +1 -1
  118. package/time-picker/definition.cjs +1 -1
  119. package/time-picker/definition.js +1 -1
  120. package/toggletip/definition.cjs +1 -1
  121. package/toggletip/definition.js +1 -1
  122. package/tooltip/definition.cjs +1 -1
  123. package/tooltip/definition.js +1 -1
  124. package/tree-item/definition.cjs +1 -1
  125. package/tree-item/definition.js +1 -1
  126. package/tree-view/definition.cjs +1 -1
  127. package/tree-view/definition.js +1 -1
  128. package/unbundled/affix.js +1 -1
  129. package/unbundled/calendar-picker.template.cjs +1 -1
  130. package/unbundled/calendar-picker.template.js +1 -1
  131. package/unbundled/definition.js +1 -1
  132. package/unbundled/definition2.js +1 -1
  133. package/unbundled/definition3.cjs +222 -141
  134. package/unbundled/definition3.js +220 -139
  135. package/unbundled/definition4.cjs +145 -235
  136. package/unbundled/definition4.js +143 -233
  137. package/unbundled/definition5.cjs +269 -27
  138. package/unbundled/definition5.js +267 -26
  139. package/unbundled/definition6.cjs +56 -0
  140. package/unbundled/definition6.js +52 -0
  141. package/unbundled/listbox.cjs +41 -63
  142. package/unbundled/listbox.js +39 -61
  143. package/unbundled/picker-field.template.cjs +1 -1
  144. package/unbundled/picker-field.template.js +1 -1
  145. package/unbundled/slider.template.cjs +1 -1
  146. package/unbundled/slider.template.js +1 -1
  147. package/unbundled/vivid-element.cjs +1 -1
  148. package/unbundled/vivid-element.js +1 -1
  149. package/video-player/definition.cjs +56 -16
  150. package/video-player/definition.js +56 -16
  151. package/video-player/index.cjs +36 -36
  152. package/video-player/index.js +2461 -2445
  153. package/vivid.api.json +285 -38
  154. package/bundled/option.cjs +0 -1
  155. package/bundled/option.js +0 -158
  156. package/unbundled/option.cjs +0 -217
  157. package/unbundled/option.js +0 -214
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const popup_definition = require('../unbundled/definition4.cjs');
5
+ const popup_definition = require('../unbundled/definition5.cjs');
6
6
  const menuItem_definition = require('../unbundled/definition2.cjs');
7
7
  const vividElement = require('../unbundled/vivid-element.cjs');
8
8
  const fastElement = require('@microsoft/fast-element');
@@ -251,7 +251,7 @@ class Menu extends anchored.Anchored(delegatesAria.DelegatesAria(vividElement.Vi
251
251
  /**
252
252
  * @internal
253
253
  */
254
- _onChange(e) {
254
+ _onBodyChange(e) {
255
255
  if (this.menuItems === void 0 || !(e.target instanceof Element)) {
256
256
  return;
257
257
  }
@@ -341,8 +341,7 @@ const MenuTemplate = (context) => {
341
341
  x.open = state;
342
342
  }
343
343
  return fastElement.html`
344
- <template @change="${(x, c) => x._onChange(c.event)}"
345
- @focusout="${(x, c) => x._onFocusout(c.event)}">
344
+ <template @focusout="${(x, c) => x._onFocusout(c.event)}">
346
345
  ${anchorSlotTemplate}
347
346
  <${popupTag}
348
347
  ${fastElement.ref("_popupEl")}
@@ -364,6 +363,7 @@ const MenuTemplate = (context) => {
364
363
  ${delegatesAria.delegateAria({
365
364
  role: "menu"
366
365
  })}
366
+ @change="${(x, c) => x._onBodyChange(c.event)}"
367
367
  @keydown="${(x, c) => x.handleMenuKeyDown(c.event)}"
368
368
  @focusout="${(x, c) => x.handleFocusOut(c.event)}"
369
369
  >
@@ -1,4 +1,4 @@
1
- import { P as Popup, p as popupDefinition } from '../unbundled/definition4.js';
1
+ import { P as Popup, p as popupDefinition } from '../unbundled/definition5.js';
2
2
  import { M as MenuItem, a as MenuItemRole, m as menuItemDefinition, b as menuName } from '../unbundled/definition2.js';
3
3
  import { V as VividElement, d as defineVividComponent, c as createRegisterFunction } from '../unbundled/vivid-element.js';
4
4
  import { Updates, attr, nullableNumberConverter, observable, ref, slotted, html } from '@microsoft/fast-element';
@@ -247,7 +247,7 @@ class Menu extends Anchored(DelegatesAria(VividElement)) {
247
247
  /**
248
248
  * @internal
249
249
  */
250
- _onChange(e) {
250
+ _onBodyChange(e) {
251
251
  if (this.menuItems === void 0 || !(e.target instanceof Element)) {
252
252
  return;
253
253
  }
@@ -337,8 +337,7 @@ const MenuTemplate = (context) => {
337
337
  x.open = state;
338
338
  }
339
339
  return html`
340
- <template @change="${(x, c) => x._onChange(c.event)}"
341
- @focusout="${(x, c) => x._onFocusout(c.event)}">
340
+ <template @focusout="${(x, c) => x._onFocusout(c.event)}">
342
341
  ${anchorSlotTemplate}
343
342
  <${popupTag}
344
343
  ${ref("_popupEl")}
@@ -360,6 +359,7 @@ const MenuTemplate = (context) => {
360
359
  ${delegateAria({
361
360
  role: "menu"
362
361
  })}
362
+ @change="${(x, c) => x._onBodyChange(c.event)}"
363
363
  @keydown="${(x, c) => x.handleMenuKeyDown(c.event)}"
364
364
  @focusout="${(x, c) => x.handleFocusOut(c.event)}"
365
365
  >
@@ -1,7 +1,7 @@
1
1
  import { VwcIconElement as Icon, iconDefinition } from '../icon/definition.js';
2
2
  import { V as VividElement, r as replaces, d as defineVividComponent, c as createRegisterFunction } from '../unbundled/vivid-element.js';
3
3
  import { attr, ref, html } from '@microsoft/fast-element';
4
- import { b as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from '../unbundled/affix.js';
4
+ import { A as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from '../unbundled/affix.js';
5
5
  import { D as DelegatesAria, d as delegateAria } from '../unbundled/delegates-aria.js';
6
6
  import { classNames } from '@microsoft/fast-web-utilities';
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { iconDefinition } from '../icon/definition.js';
2
2
  import { V as VividElement, r as replaces, d as defineVividComponent, c as createRegisterFunction } from '../unbundled/vivid-element.js';
3
3
  import { attr, html } from '@microsoft/fast-element';
4
- import { b as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from '../unbundled/affix.js';
4
+ import { A as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from '../unbundled/affix.js';
5
5
  import { L as Linkable } from '../unbundled/linkable.js';
6
6
  import { classNames } from '@microsoft/fast-web-utilities';
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { iconDefinition } from '../icon/definition.js';
2
2
  import { V as VividElement, d as defineVividComponent, c as createRegisterFunction } from '../unbundled/vivid-element.js';
3
3
  import { attr, when, html } from '@microsoft/fast-element';
4
- import { b as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from '../unbundled/affix.js';
4
+ import { A as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from '../unbundled/affix.js';
5
5
  import { classNames } from '@microsoft/fast-web-utilities';
6
6
 
7
7
  const styles = ".base.connotation-success{--_connotation-color-intermediate: var(--vvd-note-success-intermediate, var(--vvd-color-success-500));--_connotation-color-faint: var(--vvd-note-success-faint, var(--vvd-color-success-50));--_connotation-color-fierce: var(--vvd-note-success-fierce, var(--vvd-color-success-700))}.base.connotation-information{--_connotation-color-intermediate: var(--vvd-note-information-intermediate, var(--vvd-color-information-500));--_connotation-color-faint: var(--vvd-note-information-faint, var(--vvd-color-information-50));--_connotation-color-fierce: var(--vvd-note-information-fierce, var(--vvd-color-information-700))}.base.connotation-alert{--_connotation-color-intermediate: var(--vvd-note-alert-intermediate, var(--vvd-color-alert-500));--_connotation-color-faint: var(--vvd-note-alert-faint, var(--vvd-color-alert-50));--_connotation-color-fierce: var(--vvd-note-alert-fierce, var(--vvd-color-alert-700))}.base.connotation-warning{--_connotation-color-intermediate: var(--vvd-note-warning-intermediate, var(--vvd-color-warning-300));--_connotation-color-faint: var(--vvd-note-warning-faint, var(--vvd-color-warning-50));--_connotation-color-fierce: var(--vvd-note-warning-fierce, var(--vvd-color-warning-700))}.base.connotation-announcement{--_connotation-color-intermediate: var(--vvd-note-announcement-intermediate, var(--vvd-color-announcement-500));--_connotation-color-faint: var(--vvd-note-announcement-faint, var(--vvd-color-announcement-50));--_connotation-color-fierce: var(--vvd-note-announcement-fierce, var(--vvd-color-announcement-700))}.base:not(.connotation-success,.connotation-information,.connotation-alert,.connotation-warning,.connotation-announcement){--_connotation-color-intermediate: var(--vvd-note-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-note-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-fierce: var(--vvd-note-accent-fierce, var(--vvd-color-neutral-700))}.base{--_appearance-color-text: var(--_connotation-color-fierce);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-intermediate)}.base{display:flex;align-items:flex-start;padding:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)));border-radius:8px;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--vvd-color-canvas-text);column-gap:16px}@supports (contain: content){.base{contain:content}}@supports not (contain: content){.base{overflow:hidden}}slot[name=icon]{color:var(--_appearance-color-outline);font-size:calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.text{display:flex;min-height:24px;flex-direction:column;flex-grow:1;align-items:flex-start;justify-content:center;gap:4px;text-align:start}.text .headline{font:var(--vvd-typography-base-bold)}.text .message{font:var(--vvd-typography-base)}";
@@ -13,7 +13,7 @@ import { W as WithContextualHelp } from '../unbundled/with-contextual-help.js';
13
13
  import { W as WithErrorText } from '../unbundled/with-error-text.js';
14
14
  import { W as WithSuccessText } from '../unbundled/with-success-text.js';
15
15
  import { F as FormElement } from '../unbundled/form-element.js';
16
- import { b as AffixIcon } from '../unbundled/affix.js';
16
+ import { A as AffixIcon } from '../unbundled/affix.js';
17
17
  import { L as Localized } from '../unbundled/localized.js';
18
18
  import { S as Shape } from '../unbundled/enums.js';
19
19
  import { D as Divider } from '../unbundled/divider.js';
@@ -2,83 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const icon_definition = require('../icon/definition.cjs');
6
- const vividElement = require('../unbundled/vivid-element.cjs');
7
- const option = require('../unbundled/option.cjs');
8
- const fastElement = require('@microsoft/fast-element');
9
- const fastWebUtilities = require('@microsoft/fast-web-utilities');
10
- const affix = require('../unbundled/affix.cjs');
11
- const hostSemantics = require('../unbundled/host-semantics.cjs');
5
+ require('../icon/definition.cjs');
6
+ require('../unbundled/vivid-element.cjs');
7
+ const option_definition = require('../unbundled/definition3.cjs');
12
8
 
13
- const getClasses = (x) => fastWebUtilities.classNames(
14
- "base",
15
- ["disabled", x.disabled],
16
- ["selected", Boolean(x.selected)],
17
- ["hover", Boolean(x._highlighted)],
18
- ["active", Boolean(x.checked)],
19
- ["icon", Boolean(x.icon)],
20
- ["two-lines", Boolean(x.text?.length) && Boolean(x.textSecondary?.length)]
21
- );
22
- function text() {
23
- return fastElement.html`${fastElement.when(
24
- (x) => x.text || x.textSecondary,
25
- fastElement.html`<span class="text">
26
- ${fastElement.when(
27
- (x) => x.text,
28
- fastElement.html`<span class="text-primary">
29
- ${fastElement.when(
30
- (x) => x._hasMatchedText,
31
- fastElement.html`${(x) => x.text.slice(0, x._matchedRange.from)}<span class="match"
32
- >${(x) => x.text.slice(x._matchedRange.from, x._matchedRange.to)}</span
33
- >`
34
- )}${(x) => x.text.slice(x._matchedRange.to)}
35
- </span>`
36
- )}
37
- ${fastElement.when(
38
- (x) => x.textSecondary,
39
- fastElement.html`<span class="text-secondary">${(x) => x.textSecondary}</span>`
40
- )}
41
- </span>`
42
- )}`;
43
- }
44
- const ListboxOptionTemplate = (context) => {
45
- const affixIconTemplate = affix.affixIconTemplateFactory(context);
46
- const iconTag = context.tagFor(icon_definition.VwcIconElement);
47
- return fastElement.html`
48
- <template
49
- ${hostSemantics.applyHostSemantics({
50
- role: "option",
51
- ariaChecked: (x) => x.checked,
52
- ariaSelected: (x) => x.selected,
53
- ariaDisabled: (x) => x.disabled
54
- })}
55
- style="${(x) => x._isNotMatching ? "display: none" : ""}"
56
- >
57
- <div class="${getClasses}">
58
- ${(x) => affixIconTemplate(x.icon, affix.IconWrapper.Slot)} ${text()}
59
- <slot name="trailing-meta"></slot>
60
- ${fastElement.when(
61
- (x) => x._displayCheckmark && x.selected,
62
- fastElement.html`<${iconTag} class="checkmark" name="check-line"></${iconTag}>`
63
- )}
64
- </div>
65
- </template>
66
- `;
67
- };
68
9
 
69
- const styles = ":host([disabled]){cursor:not-allowed}.base{--_connotation-color-primary: var(--vvd-option-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-option-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-option-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-option-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-option-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-option-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-option-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-option-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}@media (hover: hover){.base.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}}.base.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base{display:flex;box-sizing:border-box;align-items:center;border-radius:8px;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_option-appearance-color-text, var(--_appearance-color-text));font:var(--vvd-typography-base);gap:var(--_option-gap);hyphens:auto;inline-size:100%;min-block-size:var(--_option-min-block-size);padding-inline:var(--_option-padding-inline);vertical-align:middle;word-break:break-word}.base{--_option-min-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_option-padding-inline: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_option-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) }.base:not(.two-lines){--_option-gap: calc( calc(1px*(36 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) / 3);padding-block:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/4)}.base.two-lines{gap:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))*.4);padding-block:calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2)}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}:host([scale=condensed]) .base{--_option-min-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_option-padding-inline: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_option-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) }:host([scale=condensed]) .base:not(.two-lines){--_option-gap: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/5) ;padding-block:calc(calc(1px*(36 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 6)}:host([scale=condensed]) .base.two-lines{gap:calc(calc(1px*(36 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 3);padding-block:calc(1px*(32 + 4*clamp(-1,var(--vvd-size-density, 0),2))/4)}.base.active{--focus-stroke-color: var(--vvd-color-cta-500);--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))}.base.hidden{display:none}.text{display:flex;flex-direction:column;font:var(--vvd-typography-base);gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:block;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}.match{color:var(--vvd-color-cta-600);font:var(--vvd-typography-base-bold)}slot[name=icon]{font-size:var(--_option-icon-size);line-height:1}.base:not(.disabled,.selected) slot[name=icon]{color:var(--vvd-color-neutral-600)}.checkmark{font-size:var(--_option-icon-size)}";
70
10
 
71
- const listboxOptionDefinition = vividElement.defineVividComponent(
72
- "option",
73
- option.ListboxOption,
74
- ListboxOptionTemplate,
75
- [icon_definition.iconDefinition],
76
- {
77
- styles
78
- }
79
- );
80
- const registerOption = vividElement.createRegisterFunction(listboxOptionDefinition);
81
-
82
- exports.VwcOptionElement = option.ListboxOption;
83
- exports.listboxOptionDefinition = listboxOptionDefinition;
84
- exports.registerOption = registerOption;
11
+ exports.VwcOptionElement = option_definition.ListboxOption;
12
+ exports.listboxOptionDefinition = option_definition.listboxOptionDefinition;
13
+ exports.registerOption = option_definition.registerOption;
@@ -1,78 +1,3 @@
1
- import { VwcIconElement as Icon, iconDefinition } from '../icon/definition.js';
2
- import { d as defineVividComponent, c as createRegisterFunction } from '../unbundled/vivid-element.js';
3
- import { L as ListboxOption } from '../unbundled/option.js';
4
- import { when, html } from '@microsoft/fast-element';
5
- import { classNames } from '@microsoft/fast-web-utilities';
6
- import { a as affixIconTemplateFactory, I as IconWrapper } from '../unbundled/affix.js';
7
- import { a as applyHostSemantics } from '../unbundled/host-semantics.js';
8
-
9
- const getClasses = (x) => classNames(
10
- "base",
11
- ["disabled", x.disabled],
12
- ["selected", Boolean(x.selected)],
13
- ["hover", Boolean(x._highlighted)],
14
- ["active", Boolean(x.checked)],
15
- ["icon", Boolean(x.icon)],
16
- ["two-lines", Boolean(x.text?.length) && Boolean(x.textSecondary?.length)]
17
- );
18
- function text() {
19
- return html`${when(
20
- (x) => x.text || x.textSecondary,
21
- html`<span class="text">
22
- ${when(
23
- (x) => x.text,
24
- html`<span class="text-primary">
25
- ${when(
26
- (x) => x._hasMatchedText,
27
- html`${(x) => x.text.slice(0, x._matchedRange.from)}<span class="match"
28
- >${(x) => x.text.slice(x._matchedRange.from, x._matchedRange.to)}</span
29
- >`
30
- )}${(x) => x.text.slice(x._matchedRange.to)}
31
- </span>`
32
- )}
33
- ${when(
34
- (x) => x.textSecondary,
35
- html`<span class="text-secondary">${(x) => x.textSecondary}</span>`
36
- )}
37
- </span>`
38
- )}`;
39
- }
40
- const ListboxOptionTemplate = (context) => {
41
- const affixIconTemplate = affixIconTemplateFactory(context);
42
- const iconTag = context.tagFor(Icon);
43
- return html`
44
- <template
45
- ${applyHostSemantics({
46
- role: "option",
47
- ariaChecked: (x) => x.checked,
48
- ariaSelected: (x) => x.selected,
49
- ariaDisabled: (x) => x.disabled
50
- })}
51
- style="${(x) => x._isNotMatching ? "display: none" : ""}"
52
- >
53
- <div class="${getClasses}">
54
- ${(x) => affixIconTemplate(x.icon, IconWrapper.Slot)} ${text()}
55
- <slot name="trailing-meta"></slot>
56
- ${when(
57
- (x) => x._displayCheckmark && x.selected,
58
- html`<${iconTag} class="checkmark" name="check-line"></${iconTag}>`
59
- )}
60
- </div>
61
- </template>
62
- `;
63
- };
64
-
65
- const styles = ":host([disabled]){cursor:not-allowed}.base{--_connotation-color-primary: var(--vvd-option-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-option-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-option-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-option-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-option-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-option-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-option-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-option-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}@media (hover: hover){.base.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}}.base.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base{display:flex;box-sizing:border-box;align-items:center;border-radius:8px;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_option-appearance-color-text, var(--_appearance-color-text));font:var(--vvd-typography-base);gap:var(--_option-gap);hyphens:auto;inline-size:100%;min-block-size:var(--_option-min-block-size);padding-inline:var(--_option-padding-inline);vertical-align:middle;word-break:break-word}.base{--_option-min-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_option-padding-inline: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) ;--_option-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) }.base:not(.two-lines){--_option-gap: calc( calc(1px*(36 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) / 3);padding-block:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/4)}.base.two-lines{gap:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))*.4);padding-block:calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2)}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}:host([scale=condensed]) .base{--_option-min-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_option-padding-inline: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/2) ;--_option-icon-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))*.4) }:host([scale=condensed]) .base:not(.two-lines){--_option-gap: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))/5) ;padding-block:calc(calc(1px*(36 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 6)}:host([scale=condensed]) .base.two-lines{gap:calc(calc(1px*(36 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 3);padding-block:calc(1px*(32 + 4*clamp(-1,var(--vvd-size-density, 0),2))/4)}.base.active{--focus-stroke-color: var(--vvd-color-cta-500);--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))}.base.hidden{display:none}.text{display:flex;flex-direction:column;font:var(--vvd-typography-base);gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:block;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}.match{color:var(--vvd-color-cta-600);font:var(--vvd-typography-base-bold)}slot[name=icon]{font-size:var(--_option-icon-size);line-height:1}.base:not(.disabled,.selected) slot[name=icon]{color:var(--vvd-color-neutral-600)}.checkmark{font-size:var(--_option-icon-size)}";
66
-
67
- const listboxOptionDefinition = defineVividComponent(
68
- "option",
69
- ListboxOption,
70
- ListboxOptionTemplate,
71
- [iconDefinition],
72
- {
73
- styles
74
- }
75
- );
76
- const registerOption = createRegisterFunction(listboxOptionDefinition);
77
-
78
- export { ListboxOption as VwcOptionElement, listboxOptionDefinition, registerOption };
1
+ import '../icon/definition.js';
2
+ import '../unbundled/vivid-element.js';
3
+ export { L as VwcOptionElement, l as listboxOptionDefinition, r as registerOption } from '../unbundled/definition3.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vonage/vivid",
3
- "version": "5.3.0",
3
+ "version": "5.4.0",
4
4
  "type": "module",
5
5
  "module": "./index.js",
6
6
  "main": "./index.cjs",
@@ -62,16 +62,20 @@
62
62
  "@microsoft/fast-element": "^2.7.0",
63
63
  "@microsoft/fast-web-utilities": "^6.0.0",
64
64
  "date-fns": "^3.0.0",
65
+ "vanilla-colorful": "^0.7.2",
65
66
  "prosemirror-commands": "^1.7.1",
66
67
  "prosemirror-keymap": "^1.2.3",
67
- "prosemirror-model": "^1.25.2",
68
+ "prosemirror-model": "^1.25.4",
68
69
  "prosemirror-schema-basic": "^1.2.3",
69
- "prosemirror-state": "^1.4.3",
70
+ "prosemirror-state": "^1.4.4",
70
71
  "prosemirror-view": "^1.40.1",
71
- "ramda": "^0.30.0",
72
+ "ramda": "^0.32.0",
72
73
  "uuid": "^11.1.0"
73
74
  },
74
75
  "devDependencies": {
76
+ "@microsoft/api-extractor": "^7.52.9",
77
+ "@microsoft/eslint-config-fast-dna": "^2.1.0",
78
+ "@playwright/test": "1.48.2",
75
79
  "@repo/cem-analyzer-plugins": "*",
76
80
  "@repo/consts": "*",
77
81
  "@repo/eslint-config": "*",
@@ -81,6 +85,28 @@
81
85
  "@repo/styles": "*",
82
86
  "@repo/typescript-config": "*",
83
87
  "@repo/vitest-config": "*",
84
- "video.js": "^8.23.3"
88
+ "video.js": "^8.23.3",
89
+ "@testing-library/dom": "^8.18.1",
90
+ "@testing-library/user-event": "^14.6.1",
91
+ "@types/node": "18.19.130",
92
+ "@types/uuid": "^10.0.0",
93
+ "@vonage/vivid-figma-tokens": "github:vonage/vivid-figma-tokens#v1.4.0",
94
+ "cem-plugin-async-function": "^0.0.5",
95
+ "cem-plugin-jsdoc-example": "^0.0.9",
96
+ "cem-plugin-jsdoc-function": "^0.0.5",
97
+ "cem-plugin-readonly": "^0.0.5",
98
+ "dialog-polyfill": "^0.5.6",
99
+ "element-internals-polyfill": "^1.3.13",
100
+ "esbuild": "0.23.0",
101
+ "jsdom": "^23.0.0",
102
+ "markdown-it": "^13.0.2",
103
+ "playwright": "1.48.2",
104
+ "sass": "^1.89.2",
105
+ "vite-plugin-static-copy": "^1.0.6",
106
+ "vitest": "^2.1.8",
107
+ "vitest-axe": "^0.1.0",
108
+ "vitest-fetch-mock": "^0.4.5",
109
+ "wait-on": "^8.0.5",
110
+ "concurrently": "^9.2.0"
85
111
  }
86
112
  }
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  require('../unbundled/definition.cjs');
6
- require('../unbundled/definition5.cjs');
6
+ require('../unbundled/definition6.cjs');
7
7
  require('../unbundled/vivid-element.cjs');
8
- const popup_definition = require('../unbundled/definition4.cjs');
8
+ const popup_definition = require('../unbundled/definition5.cjs');
9
9
 
10
10
 
11
11
 
@@ -1,4 +1,4 @@
1
1
  import '../unbundled/definition.js';
2
- import '../unbundled/definition5.js';
2
+ import '../unbundled/definition6.js';
3
3
  import '../unbundled/vivid-element.js';
4
- export { p as popupDefinition, r as registerPopup } from '../unbundled/definition4.js';
4
+ export { p as popupDefinition, r as registerPopup } from '../unbundled/definition5.js';
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const popup_definition = require('../unbundled/definition4.cjs');
5
+ const popup_definition = require('../unbundled/definition5.cjs');
6
6
  const vividElement = require('../unbundled/vivid-element.cjs');
7
7
  const fastElement = require('@microsoft/fast-element');
8
8
  const fastWebUtilities = require('@microsoft/fast-web-utilities');
@@ -1,4 +1,4 @@
1
- import { P as Popup, a as PlacementStrategy, p as popupDefinition } from '../unbundled/definition4.js';
1
+ import { P as Popup, a as PlacementStrategy, p as popupDefinition } from '../unbundled/definition5.js';
2
2
  import { V as VividElement, d as defineVividComponent, c as createRegisterFunction } from '../unbundled/vivid-element.js';
3
3
  import { observable, attr, nullableNumberConverter, ref, when, html } from '@microsoft/fast-element';
4
4
  import { Orientation, keyHome, keyEnd, keyArrowUp, keyArrowDown, limit, classNames } from '@microsoft/fast-web-utilities';
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const vividElement = require('../unbundled/vivid-element.cjs');
6
6
  const button_definition = require('../unbundled/definition.cjs');
7
7
  const divider_definition = require('../divider/definition.cjs');
8
- const option_definition = require('../option/definition.cjs');
8
+ const option_definition = require('../unbundled/definition3.cjs');
9
9
  const tooltip_definition = require('../tooltip/definition.cjs');
10
10
  const menu_definition = require('../menu/definition.cjs');
11
11
  const menuItem_definition = require('../unbundled/definition2.cjs');
@@ -13,7 +13,6 @@ const select_definition = require('../select/definition.cjs');
13
13
  const fastElement = require('@microsoft/fast-element');
14
14
  const fastWebUtilities = require('@microsoft/fast-web-utilities');
15
15
  const divider = require('../unbundled/divider.cjs');
16
- const option = require('../unbundled/option.cjs');
17
16
  const localized = require('../unbundled/localized.cjs');
18
17
  const prosemirrorState = require('prosemirror-state');
19
18
  const prosemirrorModel = require('prosemirror-model');
@@ -122,7 +121,7 @@ const MENU_BAR_ITEMS = {
122
121
  },
123
122
  render: function(context) {
124
123
  const selectTag = context.tagFor(select_definition.VwcSelectElement);
125
- const optionTag = context.tagFor(option.ListboxOption);
124
+ const optionTag = context.tagFor(option_definition.ListboxOption);
126
125
  const tooltipTag = context.tagFor(tooltip_definition.VwcTooltipElement);
127
126
  return fastElement.html`
128
127
  <${tooltipTag} text="${(_, { parent }) => parent.locale.richTextEditor.textBlockType}" placement="top">
@@ -1,7 +1,7 @@
1
1
  import { V as VividElement, d as defineVividComponent, c as createRegisterFunction } from '../unbundled/vivid-element.js';
2
2
  import { B as Button, b as buttonDefinition } from '../unbundled/definition.js';
3
3
  import { dividerDefinition } from '../divider/definition.js';
4
- import { listboxOptionDefinition } from '../option/definition.js';
4
+ import { L as ListboxOption, l as listboxOptionDefinition } from '../unbundled/definition3.js';
5
5
  import { VwcTooltipElement as Tooltip, tooltipDefinition } from '../tooltip/definition.js';
6
6
  import { VwcMenuElement as Menu, menuDefinition } from '../menu/definition.js';
7
7
  import { M as MenuItem, m as menuItemDefinition } from '../unbundled/definition2.js';
@@ -9,7 +9,6 @@ import { VwcSelectElement as Select, selectDefinition } from '../select/definiti
9
9
  import { html, repeat, attr, Updates, nullableNumberConverter, when } from '@microsoft/fast-element';
10
10
  import { classNames } from '@microsoft/fast-web-utilities';
11
11
  import { D as Divider } from '../unbundled/divider.js';
12
- import { L as ListboxOption } from '../unbundled/option.js';
13
12
  import { L as Localized } from '../unbundled/localized.js';
14
13
  import { EditorState, PluginKey, TextSelection, Plugin } from 'prosemirror-state';
15
14
  import { Schema, DOMParser } from 'prosemirror-model';