@vonage/vivid 3.30.0 → 3.32.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 (135) hide show
  1. package/alert/index.js +2 -1
  2. package/checkbox/index.js +2 -1
  3. package/combobox/index.js +2 -1
  4. package/custom-elements.json +811 -18
  5. package/date-picker/index.js +35 -0
  6. package/dialog/index.js +1 -1
  7. package/divider/index.js +1 -1
  8. package/empty-state/index.js +1 -1
  9. package/fab/index.js +1 -1
  10. package/file-picker/index.js +3 -2
  11. package/header/index.js +1 -1
  12. package/index.d.ts +1 -0
  13. package/index.js +48 -46
  14. package/layout/index.js +1 -1
  15. package/lib/button/button.d.ts +2 -0
  16. package/lib/components.d.ts +20 -19
  17. package/lib/date-picker/calendar/calendarGrid.d.ts +17 -0
  18. package/lib/date-picker/calendar/dateStr.d.ts +6 -0
  19. package/lib/date-picker/calendar/month.d.ts +11 -0
  20. package/lib/date-picker/calendar/monthPickerGrid.d.ts +10 -0
  21. package/lib/date-picker/calendar/presentationDate.d.ts +4 -0
  22. package/lib/date-picker/date-picker.d.ts +16 -0
  23. package/lib/date-picker/date-picker.template.d.ts +4 -0
  24. package/lib/date-picker/definition.d.ts +3 -0
  25. package/lib/date-picker/index.d.ts +1 -0
  26. package/lib/date-picker/locale.d.ts +21 -0
  27. package/lib/nav-disclosure/nav-disclosure.d.ts +1 -0
  28. package/lib/pagination/definition.d.ts +1 -0
  29. package/lib/pagination/pagination.d.ts +3 -1
  30. package/lib/select/select.d.ts +4 -2
  31. package/listbox/index.js +3 -2
  32. package/locales/en-GB.d.ts +3 -0
  33. package/locales/en-GB.js +25 -0
  34. package/locales/en-US.d.ts +3 -0
  35. package/locales/en-US.js +25 -0
  36. package/locales/ja-JP.d.ts +3 -0
  37. package/locales/ja-JP.js +25 -0
  38. package/locales/zh-CN.d.ts +3 -0
  39. package/locales/zh-CN.js +25 -0
  40. package/menu/index.js +2 -2
  41. package/menu-item/index.js +1 -1
  42. package/nav/index.js +1 -1
  43. package/nav-disclosure/index.js +1 -1
  44. package/nav-item/index.js +1 -1
  45. package/note/index.js +3 -2
  46. package/number-field/index.js +4 -3
  47. package/option/index.js +2 -1
  48. package/package.json +2 -1
  49. package/pagination/index.js +1 -1
  50. package/progress/index.js +1 -1
  51. package/radio/index.js +1 -1
  52. package/radio-group/index.js +1 -1
  53. package/select/index.js +3 -2
  54. package/shared/definition.js +1 -1
  55. package/shared/definition10.js +1 -1
  56. package/shared/definition11.js +1 -1
  57. package/shared/definition12.js +1 -1
  58. package/shared/definition14.js +1 -1
  59. package/shared/definition15.js +1 -1
  60. package/shared/definition16.js +1 -1
  61. package/shared/definition17.js +1 -1
  62. package/shared/definition18.js +2 -2
  63. package/shared/definition19.js +2 -2
  64. package/shared/definition2.js +1 -1
  65. package/shared/definition21.js +3 -3
  66. package/shared/definition22.js +2 -2
  67. package/shared/definition23.js +5750 -189
  68. package/shared/definition24.js +116 -68
  69. package/shared/definition25.js +68 -38
  70. package/shared/definition26.js +222 -74
  71. package/shared/definition27.js +33 -2282
  72. package/shared/definition28.js +76 -47
  73. package/shared/definition29.js +2287 -38
  74. package/shared/definition30.js +39 -417
  75. package/shared/definition31.js +38 -364
  76. package/shared/definition32.js +427 -12
  77. package/shared/definition33.js +351 -53
  78. package/shared/definition34.js +12 -26
  79. package/shared/definition35.js +67 -31
  80. package/shared/definition36.js +20 -431
  81. package/shared/definition37.js +34 -181
  82. package/shared/definition38.js +427 -45
  83. package/shared/definition39.js +195 -33
  84. package/shared/definition4.js +1 -1
  85. package/shared/definition40.js +53 -425
  86. package/shared/definition41.js +29 -645
  87. package/shared/definition42.js +420 -73
  88. package/shared/definition43.js +549 -444
  89. package/shared/definition44.js +68 -90
  90. package/shared/definition45.js +501 -79
  91. package/shared/definition46.js +84 -45
  92. package/shared/definition47.js +131 -17
  93. package/shared/definition48.js +44 -471
  94. package/shared/definition49.js +21 -108
  95. package/shared/definition5.js +1 -1
  96. package/shared/definition50.js +487 -15
  97. package/shared/definition51.js +92 -255
  98. package/shared/definition52.js +16 -115
  99. package/shared/definition53.js +264 -115
  100. package/shared/definition54.js +91 -82
  101. package/shared/definition55.js +111 -65
  102. package/shared/definition56.js +64 -291
  103. package/shared/definition57.js +303 -0
  104. package/shared/definition6.js +2 -2
  105. package/shared/definition7.js +10 -3
  106. package/shared/definition9.js +1 -1
  107. package/shared/{form-elements.js → index2.js} +14 -2
  108. package/shared/localization/Locale.d.ts +4 -0
  109. package/shared/localization/index.d.ts +7 -0
  110. package/shared/patterns/form-elements/form-elements.d.ts +4 -4
  111. package/shared/patterns/index.d.ts +1 -0
  112. package/shared/patterns/localized.d.ts +4 -0
  113. package/shared/text-field.js +1 -1
  114. package/side-drawer/index.js +1 -1
  115. package/slider/index.js +1 -1
  116. package/split-button/index.js +1 -1
  117. package/styles/core/all.css +25 -3
  118. package/styles/core/theme.css +1 -1
  119. package/styles/core/typography.css +25 -3
  120. package/styles/tokens/theme-dark.css +4 -4
  121. package/styles/tokens/theme-light.css +4 -4
  122. package/styles/tokens/vivid-2-compat.css +14 -0
  123. package/switch/index.js +3 -2
  124. package/tab/index.js +1 -1
  125. package/tab-panel/index.js +1 -1
  126. package/tabs/index.js +3 -3
  127. package/tag/index.js +1 -1
  128. package/tag-group/index.js +1 -1
  129. package/text-area/index.js +3 -2
  130. package/text-field/index.js +3 -2
  131. package/toggletip/index.js +1 -1
  132. package/tooltip/index.js +1 -1
  133. package/tree-item/index.js +1 -1
  134. package/tree-view/index.js +1 -1
  135. package/vivid.api.json +262 -0
@@ -1,131 +1,280 @@
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
- import { P as Popup, p as popupRegistries } from './definition20.js';
1
+ import { F as FoundationElement, _ as __decorate, a as attr, n as nullableNumberConverter, o as observable, 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 './affix.js';
5
+ import './focus.js';
6
+ import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, b as FormElementCharCount, g as getFeedbackTemplate } from './index2.js';
7
+ import { D as DelegatesARIATextbox } from './text-field2.js';
8
+ import { a as applyMixins } from './apply-mixins.js';
9
+ import { F as FormAssociated } from './form-associated.js';
3
10
  import { w as when } from './when.js';
11
+ import { r as ref } from './ref.js';
4
12
  import { c as classNames } from './class-names.js';
5
13
 
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}";
14
+ class _TextArea extends FoundationElement {
15
+ }
16
+ /**
17
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(TextArea:class)} component.
18
+ *
19
+ * @internal
20
+ */
21
+ class FormAssociatedTextArea extends FormAssociated(_TextArea) {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.proxy = document.createElement("textarea");
25
+ }
26
+ }
27
+
28
+ /**
29
+ * Resize mode for a TextArea
30
+ * @public
31
+ */
32
+ const TextAreaResize = {
33
+ /**
34
+ * No resize.
35
+ */
36
+ none: "none",
37
+ /**
38
+ * Resize vertically and horizontally.
39
+ */
40
+ both: "both",
41
+ /**
42
+ * Resize horizontally.
43
+ */
44
+ horizontal: "horizontal",
45
+ /**
46
+ * Resize vertically.
47
+ */
48
+ vertical: "vertical",
49
+ };
7
50
 
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 {
10
- constructor() {
11
- super(...arguments);
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
- const anchor = document.getElementById(anchorId);
18
- if (anchor) {
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");
51
+ /**
52
+ * A Text Area Custom HTML Element.
53
+ * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea | <textarea> element }.
54
+ *
55
+ * @slot - The default slot for the label
56
+ * @csspart label - The label
57
+ * @csspart root - The element wrapping the control
58
+ * @csspart control - The textarea element
59
+ * @fires change - Emits a custom 'change' event when the textarea emits a change event
60
+ *
61
+ * @public
62
+ */
63
+ class TextArea$1 extends FormAssociatedTextArea {
64
+ constructor() {
65
+ super(...arguments);
66
+ /**
67
+ * The resize mode of the element.
68
+ * @public
69
+ * @remarks
70
+ * HTML Attribute: resize
71
+ */
72
+ this.resize = TextAreaResize.none;
73
+ /**
74
+ * Sizes the element horizontally by a number of character columns.
75
+ *
76
+ * @public
77
+ * @remarks
78
+ * HTML Attribute: cols
79
+ */
80
+ this.cols = 20;
81
+ /**
82
+ * @internal
83
+ */
84
+ this.handleTextInput = () => {
85
+ this.value = this.control.value;
86
+ };
87
+ }
88
+ readOnlyChanged() {
89
+ if (this.proxy instanceof HTMLTextAreaElement) {
90
+ this.proxy.readOnly = this.readOnly;
23
91
  }
24
- }), "f");
25
- __classPrivateFieldGet(this, _Toggletip_observer, "f").observe(document.body, {
26
- childList: true,
27
- subtree: true
28
- });
29
- });
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);
37
- });
38
- _Toggletip_closeOnClickOutside.set(this, e => {
39
- if (!this.contains(e.target)) this.open = false;
40
- });
41
- _Toggletip_closeOnEscape.set(this, e => {
42
- if (e.key === 'Escape') this.open = false;
43
- });
44
- }
45
- anchorChanged(_, newValue) {
46
- var _a;
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"));
52
- } else {
53
- __classPrivateFieldGet(this, _Toggletip_observeMissingAnchor, "f").call(this, newValue);
54
92
  }
55
- }
56
- openChanged(oldValue, newValue) {
57
- if (oldValue === undefined) return;
58
- if (newValue) {
59
- document.addEventListener('click', __classPrivateFieldGet(this, _Toggletip_closeOnClickOutside, "f"));
60
- document.addEventListener('keydown', __classPrivateFieldGet(this, _Toggletip_closeOnEscape, "f"));
61
- this.setAttribute('role', 'status');
62
- } else {
63
- document.removeEventListener('click', __classPrivateFieldGet(this, _Toggletip_closeOnClickOutside, "f"));
64
- document.removeEventListener('keydown', __classPrivateFieldGet(this, _Toggletip_closeOnEscape, "f"));
65
- this.removeAttribute('role');
93
+ autofocusChanged() {
94
+ if (this.proxy instanceof HTMLTextAreaElement) {
95
+ this.proxy.autofocus = this.autofocus;
96
+ }
66
97
  }
67
- if (__classPrivateFieldGet(this, _Toggletip_anchorEl, "f")) {
68
- __classPrivateFieldGet(this, _Toggletip_anchorEl, "f").ariaExpanded = this.open.toString();
98
+ listChanged() {
99
+ if (this.proxy instanceof HTMLTextAreaElement) {
100
+ this.proxy.setAttribute("list", this.list);
101
+ }
102
+ }
103
+ maxlengthChanged() {
104
+ if (this.proxy instanceof HTMLTextAreaElement) {
105
+ this.proxy.maxLength = this.maxlength;
106
+ }
107
+ }
108
+ minlengthChanged() {
109
+ if (this.proxy instanceof HTMLTextAreaElement) {
110
+ this.proxy.minLength = this.minlength;
111
+ }
112
+ }
113
+ spellcheckChanged() {
114
+ if (this.proxy instanceof HTMLTextAreaElement) {
115
+ this.proxy.spellcheck = this.spellcheck;
116
+ }
117
+ }
118
+ /**
119
+ * Selects all the text in the text area
120
+ *
121
+ * @public
122
+ */
123
+ select() {
124
+ this.control.select();
125
+ /**
126
+ * The select event does not permeate the shadow DOM boundary.
127
+ * This fn effectively proxies the select event,
128
+ * emitting a `select` event whenever the internal
129
+ * control emits a `select` event
130
+ */
131
+ this.$emit("select");
132
+ }
133
+ /**
134
+ * Change event handler for inner control.
135
+ * @remarks
136
+ * "Change" events are not `composable` so they will not
137
+ * permeate the shadow DOM boundary. This fn effectively proxies
138
+ * the change event, emitting a `change` event whenever the internal
139
+ * control emits a `change` event
140
+ * @internal
141
+ */
142
+ handleChange() {
143
+ this.$emit("change");
144
+ }
145
+ /** {@inheritDoc (FormAssociated:interface).validate} */
146
+ validate() {
147
+ super.validate(this.control);
69
148
  }
70
- }
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"));
77
- }
78
149
  }
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"), '');
86
- };
87
- __decorate([attr, __metadata("design:type", String)], Toggletip.prototype, "headline", void 0);
88
- __decorate([attr({
89
- mode: 'boolean'
90
- }), __metadata("design:type", Object)], Toggletip.prototype, "alternate", void 0);
91
- __decorate([attr({
92
- mode: 'fromView'
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);
150
+ __decorate([
151
+ attr({ mode: "boolean" })
152
+ ], TextArea$1.prototype, "readOnly", void 0);
153
+ __decorate([
154
+ attr
155
+ ], TextArea$1.prototype, "resize", void 0);
156
+ __decorate([
157
+ attr({ mode: "boolean" })
158
+ ], TextArea$1.prototype, "autofocus", void 0);
159
+ __decorate([
160
+ attr({ attribute: "form" })
161
+ ], TextArea$1.prototype, "formId", void 0);
162
+ __decorate([
163
+ attr
164
+ ], TextArea$1.prototype, "list", void 0);
165
+ __decorate([
166
+ attr({ converter: nullableNumberConverter })
167
+ ], TextArea$1.prototype, "maxlength", void 0);
168
+ __decorate([
169
+ attr({ converter: nullableNumberConverter })
170
+ ], TextArea$1.prototype, "minlength", void 0);
171
+ __decorate([
172
+ attr
173
+ ], TextArea$1.prototype, "name", void 0);
174
+ __decorate([
175
+ attr
176
+ ], TextArea$1.prototype, "placeholder", void 0);
177
+ __decorate([
178
+ attr({ converter: nullableNumberConverter, mode: "fromView" })
179
+ ], TextArea$1.prototype, "cols", void 0);
180
+ __decorate([
181
+ attr({ converter: nullableNumberConverter, mode: "fromView" })
182
+ ], TextArea$1.prototype, "rows", void 0);
183
+ __decorate([
184
+ attr({ mode: "boolean" })
185
+ ], TextArea$1.prototype, "spellcheck", void 0);
186
+ __decorate([
187
+ observable
188
+ ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
189
+ applyMixins(TextArea$1, DelegatesARIATextbox);
190
+
191
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 22 Aug 2023 13:37:39 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n display: inline-grid;\n grid-template-columns: 1fr max-content;\n inline-size: 100%;\n row-gap: 4px;\n}\n.base {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--_connotation-color-backdrop);\n --_appearance-color-outline: var(--_connotation-color-intermediate);\n}\n.base.appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)) {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--_connotation-color-backdrop);\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)).appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: transparent;\n}\n.base:where(:disabled, .disabled) {\n --_appearance-color-text: var(--vvd-color-neutral-300);\n --_appearance-color-fill: var(--vvd-color-neutral-100);\n --_appearance-color-outline: var(--vvd-color-neutral-300);\n}\n.base:where(:disabled, .disabled).appearance-ghost {\n --_appearance-color-text: var(--vvd-color-neutral-300);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base:where(.readonly):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--vvd-color-neutral-200);\n --_appearance-color-outline: var(--vvd-color-neutral-400);\n}\n.base:where(.readonly):where(:not(:disabled, .disabled)).appearance-ghost {\n --_appearance-color-text: var(--vvd-color-neutral-600);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base.connotation-success {\n /* @cssprop [--vvd-text-area-success-primary=var(--vvd-color-success-500)] */\n --_connotation-color-primary: var(--vvd-text-area-success-primary, var(--vvd-color-success-500));\n /* @cssprop [--vvd-text-area-success-backdrop=var(--vvd-color-success-50)] */\n --_connotation-color-backdrop: var(--vvd-text-area-success-backdrop, var(--vvd-color-success-50));\n /* @cssprop [--vvd-text-area-success-intermediate=var(--vvd-color-success-500)] */\n --_connotation-color-intermediate: var(--vvd-text-area-success-intermediate, var(--vvd-color-success-500));\n /* @cssprop [--vvd-text-area-success-firm=var(--vvd-color-success-600)] */\n --_connotation-color-firm: var(--vvd-text-area-success-firm, var(--vvd-color-success-600));\n /* @cssprop [--vvd-text-area-success-faint=var(--vvd-color-success-50)] */\n --_connotation-color-faint: var(--vvd-text-area-success-faint, var(--vvd-color-success-50));\n /* @cssprop [--vvd-text-area-success-soft=var(--vvd-color-success-100)] */\n --_connotation-color-soft: var(--vvd-text-area-success-soft, var(--vvd-color-success-100));\n}\n.base.connotation-alert {\n /* @cssprop [--vvd-text-area-alert-primary=var(--vvd-color-alert-500)] */\n --_connotation-color-primary: var(--vvd-text-area-alert-primary, var(--vvd-color-alert-500));\n /* @cssprop [--vvd-text-area-alert-backdrop=var(--vvd-color-alert-50)] */\n --_connotation-color-backdrop: var(--vvd-text-area-alert-backdrop, var(--vvd-color-alert-50));\n /* @cssprop [--vvd-text-area-alert-intermediate=var(--vvd-color-alert-500)] */\n --_connotation-color-intermediate: var(--vvd-text-area-alert-intermediate, var(--vvd-color-alert-500));\n /* @cssprop [--vvd-text-area-alert-firm=var(--vvd-color-alert-600)] */\n --_connotation-color-firm: var(--vvd-text-area-alert-firm, var(--vvd-color-alert-600));\n /* @cssprop [--vvd-text-area-alert-faint=var(--vvd-color-alert-50)] */\n --_connotation-color-faint: var(--vvd-text-area-alert-faint, var(--vvd-color-alert-50));\n /* @cssprop [--vvd-text-area-alert-soft=var(--vvd-color-alert-100)] */\n --_connotation-color-soft: var(--vvd-text-area-alert-soft, var(--vvd-color-alert-100));\n}\n.base:not(.connotation-success, .connotation-alert) {\n /* @cssprop [--vvd-text-area-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-text-area-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-text-area-accent-backdrop=var(--vvd-color-canvas)] */\n --_connotation-color-backdrop: var(--vvd-text-area-accent-backdrop, var(--vvd-color-canvas));\n /* @cssprop [--vvd-text-area-accent-intermediate=var(--vvd-color-neutral-500)] */\n --_connotation-color-intermediate: var(--vvd-text-area-accent-intermediate, var(--vvd-color-neutral-500));\n /* @cssprop [--vvd-text-area-accent-firm=var(--vvd-color-canvas-text)] */\n --_connotation-color-firm: var(--vvd-text-area-accent-firm, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-text-area-accent-faint=var(--vvd-color-neutral-50)] */\n --_connotation-color-faint: var(--vvd-text-area-accent-faint, var(--vvd-color-neutral-50));\n /* @cssprop [--vvd-text-area-accent-soft=var(--vvd-color-neutral-100)] */\n --_connotation-color-soft: var(--vvd-text-area-accent-soft, var(--vvd-color-neutral-100));\n}\n@supports (user-select: none) {\n .base {\n user-select: none;\n }\n}\n.base:not(.disabled) {\n --_low-ink-color: var(--vvd-color-neutral-600);\n}\n.base.disabled {\n --_low-ink-color: var(--_appearance-color-text);\n pointer-events: none;\n}\n\n.label {\n color: var(--vvd-color-canvas-text);\n contain: inline-size;\n font: var(--vvd-typography-base);\n grid-column: 1/2;\n grid-row: 1;\n line-height: 20px;\n}\n\n.char-count {\n color: var(--_low-ink-color);\n font: var(--vvd-typography-base);\n grid-column: 2/-1;\n}\n\n.control {\n padding: 8px 16px;\n border: 0 none;\n appearance: none; /* for box-shadow visibility on IOS */\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 grid-column: 1/-1;\n min-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n resize: none;\n transition: box-shadow 0.2s, background-color 0.2s, color 0.2s;\n}\n.control:disabled {\n cursor: not-allowed;\n opacity: 1; /* 2. correct opacity on iOS */\n pointer-events: none;\n -webkit-text-fill-color: var(--_appearance-color-text); /* 1. sets text fill to current `color` for safari */\n}\n.control::placeholder, .control:disabled::placeholder {\n opacity: 1; /* 2. correct opacity on iOS */\n pointer-events: none;\n -webkit-text-fill-color: var(--_low-ink-color); /* 1. sets text fill to current `color` for safari */\n}\n.control:focus {\n outline: 2px solid var(--focus-stroke-color, currentColor);\n outline-offset: -2px;\n}\n:host([resize=both]) .control {\n resize: both;\n}\n:host([resize=horizontal]) .control {\n resize: horizontal;\n}\n:host([resize=vertical]) .control {\n resize: vertical;\n}";
100
192
 
101
- const getClasses = _ => classNames('control');
102
- const ToggletipTemplate = context => {
103
- const popup = context.tagFor(Popup);
193
+ let TextArea = class TextArea extends TextArea$1 {};
194
+ __decorate([attr, __metadata("design:type", String)], TextArea.prototype, "wrap", void 0);
195
+ TextArea = __decorate([errorText, formElements], TextArea);
196
+ applyMixins(TextArea, FormElementCharCount, FormElementHelperText, FormElementSuccessText);
197
+
198
+ const getClasses = ({
199
+ value,
200
+ errorValidationMessage,
201
+ disabled,
202
+ placeholder,
203
+ readOnly,
204
+ successText
205
+ }) => classNames('base', ['readonly', readOnly], ['placeholder', Boolean(placeholder)], ['disabled', disabled], ['error connotation-alert', Boolean(errorValidationMessage)], ['has-value', Boolean(value)], ['success connotation-success', !!successText]);
206
+ function renderLabel() {
207
+ return html`
208
+ <label for="control" class="label">
209
+ ${x => x.label}
210
+ </label>`;
211
+ }
212
+ function renderCharCount() {
213
+ return html`
214
+ <span class="char-count">${x => x.value ? x.value.length : 0} / ${x => x.maxlength}</span>
215
+ `;
216
+ }
217
+ const TextAreaTemplate = context => {
104
218
  return html`
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}>
219
+ <div class="${getClasses}">
220
+ ${when(x => x.charCount && x.maxlength, renderCharCount())}
221
+ ${when(x => x.label, renderLabel())}
222
+ <textarea class="control"
223
+ ?autofocus="${x => x.autofocus}"
224
+ placeholder="${x => x.placeholder ? x.placeholder : null}"
225
+ name="${x => x.name ? x.name : null}"
226
+ maxlength="${x => x.maxlength ? x.maxlength : null}"
227
+ rows="${x => x.rows ? x.rows : null}"
228
+ cols="${x => x.cols ? x.cols : null}"
229
+ wrap="${x => x.wrap ? x.wrap : null}"
230
+ ?readonly="${x => x.readOnly}"
231
+ ?disabled="${x => x.disabled}"
232
+ ?required="${x => x.required}"
233
+ ?spellcheck="${x => x.spellcheck}"
234
+ :value="${x => x.value}"
235
+ aria-atomic="${x => x.ariaAtomic}"
236
+ aria-busy="${x => x.ariaBusy}"
237
+ aria-controls="${x => x.ariaControls}"
238
+ aria-current="${x => x.ariaCurrent}"
239
+ aria-describedby="${x => x.ariaDescribedby}"
240
+ aria-details="${x => x.ariaDetails}"
241
+ aria-disabled="${x => x.ariaDisabled}"
242
+ aria-errormessage="${x => x.ariaErrormessage}"
243
+ aria-flowto="${x => x.ariaFlowto}"
244
+ aria-haspopup="${x => x.ariaHaspopup}"
245
+ aria-hidden="${x => x.ariaHidden}"
246
+ aria-invalid="${x => x.ariaInvalid}"
247
+ aria-keyshortcuts="${x => x.ariaKeyshortcuts}"
248
+ aria-label="${x => x.ariaLabel}"
249
+ aria-labelledby="${x => x.ariaLabelledby}"
250
+ aria-live="${x => x.ariaLive}"
251
+ aria-owns="${x => x.ariaOwns}"
252
+ aria-relevant="${x => x.ariaRelevant}"
253
+ aria-roledescription="${x => x.ariaRoledescription}"
254
+ @input="${x => x.handleTextInput()}"
255
+ @change="${x => x.handleChange()}"
256
+ ${ref('control')}
257
+ >
258
+ </textarea>
259
+ ${when(x => {
260
+ var _a;
261
+ return !x.successText && !x.errorValidationMessage && ((_a = x.helperText) === null || _a === void 0 ? void 0 : _a.length);
262
+ }, getFeedbackTemplate('helper', context))}
263
+ ${when(x => !x.successText && x.errorValidationMessage, getFeedbackTemplate('error', context))}
264
+ ${when(x => x.successText, getFeedbackTemplate('success', context))}
265
+ </div>
120
266
  `;
121
267
  };
122
268
 
123
- const toggletipDefinition = Toggletip.compose({
124
- baseName: 'toggletip',
125
- template: ToggletipTemplate,
126
- styles: css_248z
269
+ const textAreaDefinition = TextArea.compose({
270
+ baseName: 'text-area',
271
+ template: TextAreaTemplate,
272
+ styles: css_248z,
273
+ shadowOptions: {
274
+ delegatesFocus: true
275
+ }
127
276
  });
128
- const toggletipRegistries = [toggletipDefinition(), ...popupRegistries];
129
- const registerToggletip = registerFactory(toggletipRegistries);
277
+ const textAreaRegistries = [textAreaDefinition(), ...iconRegistries, ...focusRegistries];
278
+ const registerTextArea = registerFactory(textAreaRegistries);
130
279
 
131
- export { toggletipRegistries as a, registerToggletip as r, toggletipDefinition as t };
280
+ export { textAreaRegistries as a, registerTextArea as r, textAreaDefinition as t };
@@ -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, 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}";
6
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 22 Aug 2023 13:37:39 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 };