@vonage/vivid 3.28.2 → 3.30.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 (83) hide show
  1. package/custom-elements.json +400 -2
  2. package/index.js +13 -12
  3. package/lib/components.d.ts +1 -0
  4. package/lib/icon/icon.d.ts +1 -1
  5. package/lib/menu/menu.d.ts +1 -1
  6. package/lib/split-button/definition.d.ts +2 -0
  7. package/lib/split-button/index.d.ts +1 -0
  8. package/lib/split-button/split-button.d.ts +25 -0
  9. package/lib/split-button/split-button.template.d.ts +4 -0
  10. package/listbox/index.js +1 -1
  11. package/package.json +1 -1
  12. package/shared/definition.js +1 -1
  13. package/shared/definition10.js +1 -1
  14. package/shared/definition11.js +1 -1
  15. package/shared/definition12.js +1 -1
  16. package/shared/definition14.js +1 -1
  17. package/shared/definition15.js +1 -1
  18. package/shared/definition16.js +1 -1
  19. package/shared/definition17.js +1 -1
  20. package/shared/definition18.js +1 -1
  21. package/shared/definition19.js +1 -1
  22. package/shared/definition2.js +1 -1
  23. package/shared/definition21.js +1 -1
  24. package/shared/definition22.js +2 -2
  25. package/shared/definition23.js +1 -1
  26. package/shared/definition24.js +1 -1
  27. package/shared/definition25.js +1 -1
  28. package/shared/definition26.js +1 -1
  29. package/shared/definition27.js +1 -1
  30. package/shared/definition28.js +1 -1
  31. package/shared/definition30.js +7 -2
  32. package/shared/definition31.js +1 -1
  33. package/shared/definition33.js +1 -1
  34. package/shared/definition34.js +1 -1
  35. package/shared/definition35.js +1 -1
  36. package/shared/definition36.js +1 -1
  37. package/shared/definition37.js +1 -1
  38. package/shared/definition38.js +1 -1
  39. package/shared/definition39.js +1 -1
  40. package/shared/definition4.js +1 -1
  41. package/shared/definition40.js +1 -1
  42. package/shared/definition41.js +1 -1
  43. package/shared/definition42.js +1 -1
  44. package/shared/definition44.js +91 -126
  45. package/shared/definition45.js +123 -49
  46. package/shared/definition46.js +56 -16
  47. package/shared/definition47.js +16 -483
  48. package/shared/definition48.js +476 -96
  49. package/shared/definition49.js +108 -16
  50. package/shared/definition5.js +1 -1
  51. package/shared/definition50.js +15 -270
  52. package/shared/definition51.js +245 -89
  53. package/shared/definition52.js +113 -120
  54. package/shared/definition53.js +91 -82
  55. package/shared/definition54.js +111 -65
  56. package/shared/definition55.js +64 -291
  57. package/shared/definition56.js +303 -0
  58. package/shared/definition6.js +1 -1
  59. package/shared/definition7.js +1 -1
  60. package/shared/definition9.js +1 -1
  61. package/shared/form-elements.js +1 -1
  62. package/shared/icon.js +1 -1
  63. package/shared/patterns/form-elements/form-elements.d.ts +4 -4
  64. package/shared/text-field.js +1 -1
  65. package/split-button/index.js +15 -0
  66. package/styles/core/all.css +1 -1
  67. package/styles/core/theme.css +1 -1
  68. package/styles/core/typography.css +1 -1
  69. package/styles/tokens/theme-dark.css +4 -4
  70. package/styles/tokens/theme-light.css +4 -4
  71. package/switch/index.js +1 -1
  72. package/tab/index.js +1 -1
  73. package/tab-panel/index.js +1 -1
  74. package/tabs/index.js +3 -3
  75. package/tag/index.js +1 -1
  76. package/tag-group/index.js +1 -1
  77. package/text-area/index.js +1 -1
  78. package/text-field/index.js +1 -1
  79. package/toggletip/index.js +1 -1
  80. package/tooltip/index.js +1 -1
  81. package/tree-item/index.js +1 -1
  82. package/tree-view/index.js +1 -1
  83. package/vivid.api.json +287 -0
@@ -1,122 +1,131 @@
1
- import { F as FoundationElement, f as __classPrivateFieldSet, d as __classPrivateFieldGet, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
1
+ import { F as FoundationElement, f as __classPrivateFieldSet, d as __classPrivateFieldGet, D as DOM, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
2
  import { P as Popup, p as popupRegistries } from './definition20.js';
3
+ import { w as when } from './when.js';
3
4
  import { c as classNames } from './class-names.js';
4
5
 
5
- var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 07 Aug 2023 18:00:27 GMT\n */\n.control {\n pointer-events: none;\n}\n\n.tooltip {\n width: var(--tooltip-inline-size, auto);\n}\n.tooltip-text {\n padding: 8px 12px;\n color: var(--vvd-color-canvas-text);\n font: var(--vvd-typography-base-bold);\n}";
6
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 14 Aug 2023 13:17:40 GMT\n */\n.control {\n display: inline-block;\n}\n\n.content-wrapper {\n width: var(--toggletip-inline-size, auto);\n padding: 16px;\n}\n\n.headline {\n font: var(--vvd-typography-base-bold);\n}\n\n.action-items {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n}\n\n::slotted([slot=action-items]) {\n margin-block-start: 16px;\n}";
6
7
 
7
- var _Tooltip_instances, _Tooltip_anchorEl, _Tooltip_observer, _Tooltip_observeMissingAnchor, _Tooltip_anchorUpdated, _Tooltip_addEventListener, _Tooltip_removeEventListener, _Tooltip_show, _Tooltip_hide, _Tooltip_closeOnEscape;
8
- class Tooltip extends FoundationElement {
8
+ var _Toggletip_instances, _Toggletip_observer, _Toggletip_anchorEl, _Toggletip_observeMissingAnchor, _Toggletip_ANCHOR_ARIA_LABEL_SUFFIX, _Toggletip_setupAnchor, _Toggletip_cleanupAnchor, _Toggletip_openIfClosed, _Toggletip_closeOnClickOutside, _Toggletip_closeOnEscape;
9
+ class Toggletip extends FoundationElement {
9
10
  constructor() {
10
11
  super(...arguments);
11
- _Tooltip_instances.add(this);
12
- _Tooltip_anchorEl.set(this, null);
13
- this.open = false;
14
- _Tooltip_observer.set(this, void 0);
15
- _Tooltip_observeMissingAnchor.set(this, anchorId => {
16
- __classPrivateFieldSet(this, _Tooltip_observer, new MutationObserver(() => {
12
+ _Toggletip_instances.add(this);
13
+ _Toggletip_observer.set(this, void 0);
14
+ _Toggletip_anchorEl.set(this, null);
15
+ _Toggletip_observeMissingAnchor.set(this, anchorId => {
16
+ __classPrivateFieldSet(this, _Toggletip_observer, new MutationObserver(() => {
17
17
  const anchor = document.getElementById(anchorId);
18
18
  if (anchor) {
19
- __classPrivateFieldSet(this, _Tooltip_anchorEl, anchor, "f");
20
- __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_anchorUpdated).call(this);
21
- __classPrivateFieldGet(this, _Tooltip_observer, "f").disconnect();
22
- __classPrivateFieldSet(this, _Tooltip_observer, undefined, "f");
19
+ __classPrivateFieldSet(this, _Toggletip_anchorEl, anchor, "f");
20
+ __classPrivateFieldGet(this, _Toggletip_instances, "m", _Toggletip_setupAnchor).call(this, __classPrivateFieldGet(this, _Toggletip_anchorEl, "f"));
21
+ __classPrivateFieldGet(this, _Toggletip_observer, "f").disconnect();
22
+ __classPrivateFieldSet(this, _Toggletip_observer, undefined, "f");
23
23
  }
24
24
  }), "f");
25
- __classPrivateFieldGet(this, _Tooltip_observer, "f").observe(document.body, {
25
+ __classPrivateFieldGet(this, _Toggletip_observer, "f").observe(document.body, {
26
26
  childList: true,
27
27
  subtree: true
28
28
  });
29
29
  });
30
- _Tooltip_show.set(this, () => {
31
- this.open = true;
30
+ _Toggletip_ANCHOR_ARIA_LABEL_SUFFIX.set(this, ' ; Show more information');
31
+ this.alternate = false;
32
+ this.placement = 'right';
33
+ this.anchor = '';
34
+ this.open = false;
35
+ _Toggletip_openIfClosed.set(this, () => {
36
+ if (!this.open) DOM.queueUpdate(() => this.open = true);
32
37
  });
33
- _Tooltip_hide.set(this, () => {
34
- this.open = false;
38
+ _Toggletip_closeOnClickOutside.set(this, e => {
39
+ if (!this.contains(e.target)) this.open = false;
35
40
  });
36
- _Tooltip_closeOnEscape.set(this, e => {
37
- if (e.key === 'Escape') __classPrivateFieldGet(this, _Tooltip_hide, "f").call(this);
41
+ _Toggletip_closeOnEscape.set(this, e => {
42
+ if (e.key === 'Escape') this.open = false;
38
43
  });
39
44
  }
40
45
  anchorChanged(_, newValue) {
41
46
  var _a;
42
- if (__classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_removeEventListener).call(this);
43
- (_a = __classPrivateFieldGet(this, _Tooltip_observer, "f")) === null || _a === void 0 ? void 0 : _a.disconnect();
44
- __classPrivateFieldSet(this, _Tooltip_anchorEl, newValue instanceof HTMLElement ? newValue : document.getElementById(newValue), "f");
45
- if (__classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) {
46
- __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_anchorUpdated).call(this);
47
+ if (__classPrivateFieldGet(this, _Toggletip_anchorEl, "f")) __classPrivateFieldGet(this, _Toggletip_instances, "m", _Toggletip_cleanupAnchor).call(this, __classPrivateFieldGet(this, _Toggletip_anchorEl, "f"));
48
+ (_a = __classPrivateFieldGet(this, _Toggletip_observer, "f")) === null || _a === void 0 ? void 0 : _a.disconnect();
49
+ __classPrivateFieldSet(this, _Toggletip_anchorEl, newValue instanceof HTMLElement ? newValue : document.getElementById(newValue), "f");
50
+ if (__classPrivateFieldGet(this, _Toggletip_anchorEl, "f")) {
51
+ __classPrivateFieldGet(this, _Toggletip_instances, "m", _Toggletip_setupAnchor).call(this, __classPrivateFieldGet(this, _Toggletip_anchorEl, "f"));
47
52
  } else {
48
- __classPrivateFieldGet(this, _Tooltip_observeMissingAnchor, "f").call(this, newValue);
53
+ __classPrivateFieldGet(this, _Toggletip_observeMissingAnchor, "f").call(this, newValue);
49
54
  }
50
55
  }
51
- disconnectedCallback() {
52
- var _a;
53
- super.disconnectedCallback();
54
- __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_removeEventListener).call(this);
55
- (_a = __classPrivateFieldGet(this, _Tooltip_observer, "f")) === null || _a === void 0 ? void 0 : _a.disconnect();
56
- document.removeEventListener('keydown', __classPrivateFieldGet(this, _Tooltip_closeOnEscape, "f"));
57
- }
58
- openChanged(_, newValue) {
59
- if (_ === undefined) return;
56
+ openChanged(oldValue, newValue) {
57
+ if (oldValue === undefined) return;
60
58
  if (newValue) {
61
- document.addEventListener('keydown', __classPrivateFieldGet(this, _Tooltip_closeOnEscape, "f"));
59
+ document.addEventListener('click', __classPrivateFieldGet(this, _Toggletip_closeOnClickOutside, "f"));
60
+ document.addEventListener('keydown', __classPrivateFieldGet(this, _Toggletip_closeOnEscape, "f"));
61
+ this.setAttribute('role', 'status');
62
62
  } else {
63
- document.removeEventListener('keydown', __classPrivateFieldGet(this, _Tooltip_closeOnEscape, "f"));
63
+ document.removeEventListener('click', __classPrivateFieldGet(this, _Toggletip_closeOnClickOutside, "f"));
64
+ document.removeEventListener('keydown', __classPrivateFieldGet(this, _Toggletip_closeOnEscape, "f"));
65
+ this.removeAttribute('role');
66
+ }
67
+ if (__classPrivateFieldGet(this, _Toggletip_anchorEl, "f")) {
68
+ __classPrivateFieldGet(this, _Toggletip_anchorEl, "f").ariaExpanded = this.open.toString();
64
69
  }
65
70
  }
66
- }
67
- _Tooltip_anchorEl = new WeakMap(), _Tooltip_observer = new WeakMap(), _Tooltip_observeMissingAnchor = new WeakMap(), _Tooltip_show = new WeakMap(), _Tooltip_hide = new WeakMap(), _Tooltip_closeOnEscape = new WeakMap(), _Tooltip_instances = new WeakSet(), _Tooltip_anchorUpdated = function _Tooltip_anchorUpdated() {
68
- __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_removeEventListener).call(this);
69
- __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_addEventListener).call(this);
70
- }, _Tooltip_addEventListener = function _Tooltip_addEventListener() {
71
- if (__classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) {
72
- __classPrivateFieldGet(this, _Tooltip_anchorEl, "f").addEventListener('mouseover', __classPrivateFieldGet(this, _Tooltip_show, "f"));
73
- __classPrivateFieldGet(this, _Tooltip_anchorEl, "f").addEventListener('mouseout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
74
- __classPrivateFieldGet(this, _Tooltip_anchorEl, "f").addEventListener('focusin', __classPrivateFieldGet(this, _Tooltip_show, "f"));
75
- __classPrivateFieldGet(this, _Tooltip_anchorEl, "f").addEventListener('focusout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
71
+ disconnectedCallback() {
72
+ var _a;
73
+ super.disconnectedCallback();
74
+ if (__classPrivateFieldGet(this, _Toggletip_anchorEl, "f")) __classPrivateFieldGet(this, _Toggletip_instances, "m", _Toggletip_cleanupAnchor).call(this, __classPrivateFieldGet(this, _Toggletip_anchorEl, "f"));
75
+ (_a = __classPrivateFieldGet(this, _Toggletip_observer, "f")) === null || _a === void 0 ? void 0 : _a.disconnect();
76
+ document.removeEventListener('keydown', __classPrivateFieldGet(this, _Toggletip_closeOnEscape, "f"));
76
77
  }
77
- }, _Tooltip_removeEventListener = function _Tooltip_removeEventListener() {
78
- var _a, _b, _c, _d;
79
- (_a = __classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseover', __classPrivateFieldGet(this, _Tooltip_show, "f"));
80
- (_b = __classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) === null || _b === void 0 ? void 0 : _b.removeEventListener('mouseout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
81
- (_c = __classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) === null || _c === void 0 ? void 0 : _c.removeEventListener('focusin', __classPrivateFieldGet(this, _Tooltip_show, "f"));
82
- (_d = __classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) === null || _d === void 0 ? void 0 : _d.removeEventListener('focusout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
78
+ }
79
+ _Toggletip_observer = new WeakMap(), _Toggletip_anchorEl = new WeakMap(), _Toggletip_observeMissingAnchor = new WeakMap(), _Toggletip_ANCHOR_ARIA_LABEL_SUFFIX = new WeakMap(), _Toggletip_openIfClosed = new WeakMap(), _Toggletip_closeOnClickOutside = new WeakMap(), _Toggletip_closeOnEscape = new WeakMap(), _Toggletip_instances = new WeakSet(), _Toggletip_setupAnchor = function _Toggletip_setupAnchor(a) {
80
+ var _a;
81
+ a.addEventListener('click', __classPrivateFieldGet(this, _Toggletip_openIfClosed, "f"), true);
82
+ a.ariaLabel = ((_a = a.ariaLabel) !== null && _a !== void 0 ? _a : '') + __classPrivateFieldGet(this, _Toggletip_ANCHOR_ARIA_LABEL_SUFFIX, "f");
83
+ }, _Toggletip_cleanupAnchor = function _Toggletip_cleanupAnchor(a) {
84
+ a.removeEventListener('click', __classPrivateFieldGet(this, _Toggletip_openIfClosed, "f"), true);
85
+ if (a.ariaLabel) a.ariaLabel = a.ariaLabel.replace(__classPrivateFieldGet(this, _Toggletip_ANCHOR_ARIA_LABEL_SUFFIX, "f"), '');
83
86
  };
84
- __decorate([attr, __metadata("design:type", String)], Tooltip.prototype, "text", void 0);
85
- __decorate([attr({
86
- mode: 'fromView'
87
- }), __metadata("design:type", String)], Tooltip.prototype, "placement", void 0);
87
+ __decorate([attr, __metadata("design:type", String)], Toggletip.prototype, "headline", void 0);
88
88
  __decorate([attr({
89
89
  mode: 'boolean'
90
- }), __metadata("design:type", Object)], Tooltip.prototype, "open", void 0);
90
+ }), __metadata("design:type", Object)], Toggletip.prototype, "alternate", void 0);
91
91
  __decorate([attr({
92
92
  mode: 'fromView'
93
- }), __metadata("design:type", Object)], Tooltip.prototype, "anchor", void 0);
93
+ }), __metadata("design:type", String)], Toggletip.prototype, "placement", void 0);
94
+ __decorate([attr({
95
+ mode: 'fromView'
96
+ }), __metadata("design:type", Object)], Toggletip.prototype, "anchor", void 0);
97
+ __decorate([attr({
98
+ mode: 'boolean'
99
+ }), __metadata("design:type", Object)], Toggletip.prototype, "open", void 0);
94
100
 
95
- const getClasses = ({
96
- open
97
- }) => classNames('control', ['open', Boolean(open)]);
98
- const TooltipTemplate = context => {
99
- const popupTag = context.tagFor(Popup);
101
+ const getClasses = _ => classNames('control');
102
+ const ToggletipTemplate = context => {
103
+ const popup = context.tagFor(Popup);
100
104
  return html`
101
- <${popupTag} class="${getClasses}" arrow alternate
102
- :placement=${x => x.placement}
103
- :anchor="${x => x.anchor}"
104
- :open=${x => x.open}
105
- exportparts="vvd-theme-alternate">
106
- <div class="tooltip" role="tooltip">
107
- <header part="vvd-theme-alternate" class="tooltip-header">
108
- <div class="tooltip-text">${x => x.text}</div>
109
- </header>
110
- </div>
111
- </${popupTag}>`;
105
+ <${popup}
106
+ class="${getClasses}"
107
+ arrow
108
+ :anchor="${x => x.anchor}"
109
+ :open="${x => x.open}"
110
+ ?alternate="${x => !x.alternate}"
111
+ placement="${x => x.placement}"
112
+ exportparts="vvd-theme-alternate"
113
+ >
114
+ <div class="content-wrapper">
115
+ ${when(x => x.headline, html`<header class="headline">${x => x.headline}</header>`)}
116
+ <slot></slot>
117
+ <footer class="action-items"><slot name="action-items"></slot></footer>
118
+ </div>
119
+ </${popup}>
120
+ `;
112
121
  };
113
122
 
114
- const tooltipDefinition = Tooltip.compose({
115
- baseName: 'tooltip',
116
- template: TooltipTemplate,
123
+ const toggletipDefinition = Toggletip.compose({
124
+ baseName: 'toggletip',
125
+ template: ToggletipTemplate,
117
126
  styles: css_248z
118
127
  });
119
- const tooltipRegistries = [tooltipDefinition(), ...popupRegistries];
120
- const registerTooltip = registerFactory(tooltipRegistries);
128
+ const toggletipRegistries = [toggletipDefinition(), ...popupRegistries];
129
+ const registerToggletip = registerFactory(toggletipRegistries);
121
130
 
122
- export { tooltipRegistries as a, registerTooltip as r, tooltipDefinition as t };
131
+ export { toggletipRegistries as a, registerToggletip as r, toggletipDefinition as t };
@@ -1,76 +1,122 @@
1
- import { _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
- import { i as iconRegistries } from './definition3.js';
3
- import { f as focusRegistries } from './definition4.js';
4
- import { b as AffixIcon, a as affixIconTemplateFactory } from './affix.js';
5
- import { T as TreeItem$1 } from './tree-item.js';
6
- import { a as applyMixins } from './apply-mixins.js';
7
- import { I as Icon } from './icon.js';
8
- import { f as focusTemplateFactory } from './focus2.js';
9
- import { e as elements } from './node-observation.js';
10
- import { c as children } from './children.js';
11
- import { w as when } from './when.js';
12
- import { s as slotted } from './slotted.js';
1
+ import { F as FoundationElement, f as __classPrivateFieldSet, d as __classPrivateFieldGet, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
+ import { P as Popup, p as popupRegistries } from './definition20.js';
13
3
  import { c as classNames } from './class-names.js';
14
- import { r as ref } from './ref.js';
15
4
 
16
- var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 07 Aug 2023 18:00:27 GMT\n */\n@supports selector(:focus-visible) {\n :host(:focus) {\n outline: none;\n }\n}\n.control {\n position: relative;\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n background-color: var(--_appearance-color-fill);\n border-radius: 6px;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n color: var(--_appearance-color-text);\n font: var(--vvd-typography-base);\n gap: 12px;\n hyphens: auto;\n inline-size: 100%;\n min-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n padding-inline: 16px;\n text-decoration: none;\n vertical-align: middle;\n word-break: break-word;\n}\n.control {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.control:where(:disabled, .disabled) {\n --_appearance-color-text: var(--vvd-color-neutral-300);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.control:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: transparent;\n}\n.control:where(:active, .active):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-soft);\n --_appearance-color-outline: transparent;\n}\n.control:where(.selected, [aria-current]):where(:not(:disabled, .disabled, :hover, .hover)) {\n --_appearance-color-text: var(--_connotation-color-primary-text);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: transparent;\n}\n.control:where(.selected, [aria-current]):where(:hover, .hover) {\n --_appearance-color-text: var(--_connotation-color-primary-text);\n --_appearance-color-fill: var(--_connotation-color-primary-increment);\n --_appearance-color-outline: transparent;\n}\n.control {\n /* @cssprop [--vvd-tree-item-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-tree-item-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-tree-item-accent-primary-text=var(--vvd-color-canvas)] */\n --_connotation-color-primary-text: var(--vvd-tree-item-accent-primary-text, var(--vvd-color-canvas));\n /* @cssprop [--vvd-tree-item-accent-primary-increment=var(--vvd-color-neutral-800)] */\n --_connotation-color-primary-increment: var(--vvd-tree-item-accent-primary-increment, var(--vvd-color-neutral-800));\n /* @cssprop [--vvd-tree-item-accent-faint=var(--vvd-color-neutral-50)] */\n --_connotation-color-faint: var(--vvd-tree-item-accent-faint, var(--vvd-color-neutral-50));\n /* @cssprop [--vvd-tree-item-accent-soft=var(--vvd-color-neutral-100)] */\n --_connotation-color-soft: var(--vvd-tree-item-accent-soft, var(--vvd-color-neutral-100));\n}\n@supports selector(:focus-visible) {\n .control:focus {\n outline: none;\n }\n}\n@supports (user-select: none) {\n .control {\n user-select: none;\n }\n}\n.control:not(.disabled) {\n cursor: pointer;\n}\n.control.disabled {\n cursor: not-allowed;\n pointer-events: none;\n}\n.control .text {\n font: var(--vvd-typography-base);\n}\n\n.expandCollapseButton {\n display: flex;\n align-items: center;\n border-radius: 6px;\n font-size: 20px;\n}\n.expandCollapseButton .expandCollapseIcon {\n margin: 4px;\n}\n.expandCollapseButton:hover {\n background-color: var(--vvd-color-neutral-100);\n}\n\n.items {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-block: 4px;\n padding-inline-start: 48px;\n}\n\n:host(:not(:focus-visible)) .focus-indicator {\n display: none;\n}\n\n.icon {\n font-size: 20px;\n line-height: 1;\n}\n.control:not(.disabled, .selected) .icon {\n color: var(--vvd-color-neutral-600);\n}";
5
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 14 Aug 2023 13:17:40 GMT\n */\n.control {\n pointer-events: none;\n}\n\n.tooltip {\n width: var(--tooltip-inline-size, auto);\n}\n.tooltip-text {\n padding: 8px 12px;\n color: var(--vvd-color-canvas-text);\n font: var(--vvd-typography-base-bold);\n}";
17
6
 
18
- class TreeItem extends TreeItem$1 {}
19
- __decorate([attr, __metadata("design:type", String)], TreeItem.prototype, "text", void 0);
20
- applyMixins(TreeItem, AffixIcon);
7
+ var _Tooltip_instances, _Tooltip_anchorEl, _Tooltip_observer, _Tooltip_observeMissingAnchor, _Tooltip_anchorUpdated, _Tooltip_addEventListener, _Tooltip_removeEventListener, _Tooltip_show, _Tooltip_hide, _Tooltip_closeOnEscape;
8
+ class Tooltip extends FoundationElement {
9
+ constructor() {
10
+ super(...arguments);
11
+ _Tooltip_instances.add(this);
12
+ _Tooltip_anchorEl.set(this, null);
13
+ this.open = false;
14
+ _Tooltip_observer.set(this, void 0);
15
+ _Tooltip_observeMissingAnchor.set(this, anchorId => {
16
+ __classPrivateFieldSet(this, _Tooltip_observer, new MutationObserver(() => {
17
+ const anchor = document.getElementById(anchorId);
18
+ if (anchor) {
19
+ __classPrivateFieldSet(this, _Tooltip_anchorEl, anchor, "f");
20
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_anchorUpdated).call(this);
21
+ __classPrivateFieldGet(this, _Tooltip_observer, "f").disconnect();
22
+ __classPrivateFieldSet(this, _Tooltip_observer, undefined, "f");
23
+ }
24
+ }), "f");
25
+ __classPrivateFieldGet(this, _Tooltip_observer, "f").observe(document.body, {
26
+ childList: true,
27
+ subtree: true
28
+ });
29
+ });
30
+ _Tooltip_show.set(this, () => {
31
+ this.open = true;
32
+ });
33
+ _Tooltip_hide.set(this, () => {
34
+ this.open = false;
35
+ });
36
+ _Tooltip_closeOnEscape.set(this, e => {
37
+ if (e.key === 'Escape') __classPrivateFieldGet(this, _Tooltip_hide, "f").call(this);
38
+ });
39
+ }
40
+ anchorChanged(_, newValue) {
41
+ var _a;
42
+ if (__classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_removeEventListener).call(this);
43
+ (_a = __classPrivateFieldGet(this, _Tooltip_observer, "f")) === null || _a === void 0 ? void 0 : _a.disconnect();
44
+ __classPrivateFieldSet(this, _Tooltip_anchorEl, newValue instanceof HTMLElement ? newValue : document.getElementById(newValue), "f");
45
+ if (__classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) {
46
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_anchorUpdated).call(this);
47
+ } else {
48
+ __classPrivateFieldGet(this, _Tooltip_observeMissingAnchor, "f").call(this, newValue);
49
+ }
50
+ }
51
+ disconnectedCallback() {
52
+ var _a;
53
+ super.disconnectedCallback();
54
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_removeEventListener).call(this);
55
+ (_a = __classPrivateFieldGet(this, _Tooltip_observer, "f")) === null || _a === void 0 ? void 0 : _a.disconnect();
56
+ document.removeEventListener('keydown', __classPrivateFieldGet(this, _Tooltip_closeOnEscape, "f"));
57
+ }
58
+ openChanged(_, newValue) {
59
+ if (_ === undefined) return;
60
+ if (newValue) {
61
+ document.addEventListener('keydown', __classPrivateFieldGet(this, _Tooltip_closeOnEscape, "f"));
62
+ } else {
63
+ document.removeEventListener('keydown', __classPrivateFieldGet(this, _Tooltip_closeOnEscape, "f"));
64
+ }
65
+ }
66
+ }
67
+ _Tooltip_anchorEl = new WeakMap(), _Tooltip_observer = new WeakMap(), _Tooltip_observeMissingAnchor = new WeakMap(), _Tooltip_show = new WeakMap(), _Tooltip_hide = new WeakMap(), _Tooltip_closeOnEscape = new WeakMap(), _Tooltip_instances = new WeakSet(), _Tooltip_anchorUpdated = function _Tooltip_anchorUpdated() {
68
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_removeEventListener).call(this);
69
+ __classPrivateFieldGet(this, _Tooltip_instances, "m", _Tooltip_addEventListener).call(this);
70
+ }, _Tooltip_addEventListener = function _Tooltip_addEventListener() {
71
+ if (__classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) {
72
+ __classPrivateFieldGet(this, _Tooltip_anchorEl, "f").addEventListener('mouseover', __classPrivateFieldGet(this, _Tooltip_show, "f"));
73
+ __classPrivateFieldGet(this, _Tooltip_anchorEl, "f").addEventListener('mouseout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
74
+ __classPrivateFieldGet(this, _Tooltip_anchorEl, "f").addEventListener('focusin', __classPrivateFieldGet(this, _Tooltip_show, "f"));
75
+ __classPrivateFieldGet(this, _Tooltip_anchorEl, "f").addEventListener('focusout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
76
+ }
77
+ }, _Tooltip_removeEventListener = function _Tooltip_removeEventListener() {
78
+ var _a, _b, _c, _d;
79
+ (_a = __classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseover', __classPrivateFieldGet(this, _Tooltip_show, "f"));
80
+ (_b = __classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) === null || _b === void 0 ? void 0 : _b.removeEventListener('mouseout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
81
+ (_c = __classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) === null || _c === void 0 ? void 0 : _c.removeEventListener('focusin', __classPrivateFieldGet(this, _Tooltip_show, "f"));
82
+ (_d = __classPrivateFieldGet(this, _Tooltip_anchorEl, "f")) === null || _d === void 0 ? void 0 : _d.removeEventListener('focusout', __classPrivateFieldGet(this, _Tooltip_hide, "f"));
83
+ };
84
+ __decorate([attr, __metadata("design:type", String)], Tooltip.prototype, "text", void 0);
85
+ __decorate([attr({
86
+ mode: 'fromView'
87
+ }), __metadata("design:type", String)], Tooltip.prototype, "placement", void 0);
88
+ __decorate([attr({
89
+ mode: 'boolean'
90
+ }), __metadata("design:type", Object)], Tooltip.prototype, "open", void 0);
91
+ __decorate([attr({
92
+ mode: 'fromView'
93
+ }), __metadata("design:type", Object)], Tooltip.prototype, "anchor", void 0);
21
94
 
22
95
  const getClasses = ({
23
- disabled,
24
- selected
25
- }) => classNames('control', ['disabled', disabled], ['selected', Boolean(selected)]);
26
- const expandCollapseButton = context => {
27
- const iconTag = context.tagFor(Icon);
28
- return html`
29
- <div aria-hidden="true"
30
- class="expandCollapseButton"
31
- @click="${(x, c) => x.handleExpandCollapseButtonClick(c.event)}"
32
- ${ref('expandCollapseButton')}
33
- >
34
- <${iconTag} class="expandCollapseIcon" name="${x => x.expanded ? 'chevron-down-line' : 'chevron-right-line'}"></${iconTag}>
35
- </div>`;
36
- };
37
- const TreeItemTemplate = context => {
38
- const affixIconTemplate = affixIconTemplateFactory(context);
39
- const focusTemplate = focusTemplateFactory(context);
96
+ open
97
+ }) => classNames('control', ['open', Boolean(open)]);
98
+ const TooltipTemplate = context => {
99
+ const popupTag = context.tagFor(Popup);
40
100
  return html`
41
- <template
42
- role="treeitem"
43
- slot="${x => x.isNestedItem() ? 'item' : void 0}"
44
- tabindex="-1"
45
- aria-expanded="${x => x.childItems && x.childItems.length > 0 ? x.expanded : void 0}"
46
- aria-selected="${x => x.selected}"
47
- aria-disabled="${x => x.disabled}"
48
- @focusin="${(x, c) => x.handleFocus(c.event)}"
49
- @focusout="${(x, c) => x.handleBlur(c.event)}"
50
- ${children({
51
- property: 'childItems',
52
- filter: elements()
53
- })}
54
- >
55
- <div class="${getClasses}">
56
- ${() => focusTemplate}
57
- ${when(x => x.childItems && x.childItems.length > 0, expandCollapseButton(context))}
58
- ${x => affixIconTemplate(x.icon)}
59
- ${x => x.text}
60
- </div>
61
- ${when(x => x.childItems && x.childItems.length > 0 && x.expanded, html`
62
- <div role="group" class="items">
63
- <slot name="item" ${slotted('items')}></slot>
64
- </div>`)}
65
- </template>`;
101
+ <${popupTag} class="${getClasses}" arrow alternate
102
+ :placement=${x => x.placement}
103
+ :anchor="${x => x.anchor}"
104
+ :open=${x => x.open}
105
+ exportparts="vvd-theme-alternate">
106
+ <div class="tooltip" role="tooltip">
107
+ <header part="vvd-theme-alternate" class="tooltip-header">
108
+ <div class="tooltip-text">${x => x.text}</div>
109
+ </header>
110
+ </div>
111
+ </${popupTag}>`;
66
112
  };
67
113
 
68
- const treeItemDefinition = TreeItem.compose({
69
- baseName: 'tree-item',
70
- template: TreeItemTemplate,
114
+ const tooltipDefinition = Tooltip.compose({
115
+ baseName: 'tooltip',
116
+ template: TooltipTemplate,
71
117
  styles: css_248z
72
118
  });
73
- const treeItemRegistries = [treeItemDefinition(), ...iconRegistries, ...focusRegistries];
74
- const registerTreeItem = registerFactory(treeItemRegistries);
119
+ const tooltipRegistries = [tooltipDefinition(), ...popupRegistries];
120
+ const registerTooltip = registerFactory(tooltipRegistries);
75
121
 
76
- export { treeItemRegistries as a, registerTreeItem as r, treeItemDefinition as t };
122
+ export { tooltipRegistries as a, registerTooltip as r, tooltipDefinition as t };