@fluentui/web-components 3.0.0-beta.71 → 3.0.0-beta.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -2
- package/dist/dts/accordion/accordion.template.d.ts +1 -1
- package/dist/dts/accordion-item/accordion-item.d.ts +2 -2
- package/dist/dts/accordion-item/accordion-item.template.d.ts +1 -1
- package/dist/dts/anchor-button/anchor-button.d.ts +2 -2
- package/dist/dts/anchor-button/anchor-button.options.d.ts +1 -1
- package/dist/dts/anchor-button/anchor-button.template.d.ts +1 -1
- package/dist/dts/avatar/avatar.d.ts +1 -1
- package/dist/dts/avatar/avatar.template.d.ts +1 -1
- package/dist/dts/badge/badge.options.d.ts +1 -1
- package/dist/dts/badge/badge.template.d.ts +1 -1
- package/dist/dts/button/button.d.ts +1 -2
- package/dist/dts/button/button.options.d.ts +1 -1
- package/dist/dts/button/button.template.d.ts +2 -2
- package/dist/dts/compound-button/compound-button.options.d.ts +1 -1
- package/dist/dts/compound-button/compound-button.template.d.ts +1 -1
- package/dist/dts/counter-badge/counter-badge.options.d.ts +1 -1
- package/dist/dts/counter-badge/counter-badge.template.d.ts +2 -2
- package/dist/dts/dialog/dialog.template.d.ts +1 -1
- package/dist/dts/dialog-body/dialog-body.template.d.ts +1 -1
- package/dist/dts/divider/divider.d.ts +1 -1
- package/dist/dts/divider/divider.template.d.ts +1 -1
- package/dist/dts/drawer/drawer.template.d.ts +1 -1
- package/dist/dts/drawer-body/drawer-body.template.d.ts +1 -1
- package/dist/dts/field/field.d.ts +1 -1
- package/dist/dts/field/field.template.d.ts +1 -1
- package/dist/dts/image/image.template.d.ts +1 -1
- package/dist/dts/index-rollup.d.ts +1 -0
- package/dist/dts/index.d.ts +1 -0
- package/dist/dts/label/label.template.d.ts +2 -2
- package/dist/dts/link/link.d.ts +1 -1
- package/dist/dts/link/link.template.d.ts +1 -1
- package/dist/dts/menu/menu.d.ts +1 -1
- package/dist/dts/menu/menu.template.d.ts +1 -1
- package/dist/dts/menu-button/menu-button.template.d.ts +1 -1
- package/dist/dts/menu-item/menu-item.d.ts +1 -1
- package/dist/dts/menu-list/menu-list.template.d.ts +1 -1
- package/dist/dts/message-bar/message-bar.template.d.ts +1 -1
- package/dist/dts/patterns/start-end.d.ts +1 -1
- package/dist/dts/radio/radio.template.d.ts +1 -1
- package/dist/dts/radio-group/radio-group.template.d.ts +1 -1
- package/dist/dts/rating-display/rating-display.template.d.ts +1 -1
- package/dist/dts/slider/slider.d.ts +3 -3
- package/dist/dts/spinner/spinner.d.ts +1 -1
- package/dist/dts/spinner/spinner.template.d.ts +1 -1
- package/dist/dts/switch/switch.template.d.ts +2 -2
- package/dist/dts/tab/tab.d.ts +2 -1
- package/dist/dts/tab/tab.template.d.ts +1 -1
- package/dist/dts/tab-panel/tab-panel.template.d.ts +2 -2
- package/dist/dts/tablist/tablist.template.d.ts +1 -1
- package/dist/dts/tabs/tabs.d.ts +1 -1
- package/dist/dts/tabs/tabs.options.d.ts +2 -2
- package/dist/dts/tabs/tabs.template.d.ts +3 -3
- package/dist/dts/text/text.d.ts +1 -1
- package/dist/dts/text/text.template.d.ts +1 -1
- package/dist/dts/text-input/text-input.d.ts +1 -2
- package/dist/dts/textarea/textarea.template.d.ts +1 -1
- package/dist/dts/toggle-button/toggle-button.template.d.ts +1 -1
- package/dist/dts/tooltip/define.d.ts +1 -0
- package/dist/dts/tooltip/index.d.ts +5 -0
- package/dist/dts/tooltip/tooltip.d.ts +88 -0
- package/dist/dts/tooltip/tooltip.definition.d.ts +9 -0
- package/dist/dts/tooltip/tooltip.options.d.ts +24 -0
- package/dist/dts/tooltip/tooltip.styles.d.ts +5 -0
- package/dist/dts/tooltip/tooltip.template.d.ts +6 -0
- package/dist/dts/utils/element-internals.d.ts +23 -1
- package/dist/dts/utils/template-helpers.d.ts +1 -2
- package/dist/esm/accordion/accordion.template.js.map +1 -1
- package/dist/esm/accordion-item/accordion-item.js +4 -13
- package/dist/esm/accordion-item/accordion-item.js.map +1 -1
- package/dist/esm/accordion-item/accordion-item.template.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.js +5 -20
- package/dist/esm/anchor-button/anchor-button.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.template.js.map +1 -1
- package/dist/esm/avatar/avatar.js +3 -5
- package/dist/esm/avatar/avatar.js.map +1 -1
- package/dist/esm/avatar/avatar.template.js.map +1 -1
- package/dist/esm/badge/badge.js +6 -27
- package/dist/esm/badge/badge.js.map +1 -1
- package/dist/esm/badge/badge.template.js.map +1 -1
- package/dist/esm/button/button.js +6 -22
- package/dist/esm/button/button.js.map +1 -1
- package/dist/esm/button/button.template.js.map +1 -1
- package/dist/esm/checkbox/checkbox.js +5 -15
- package/dist/esm/checkbox/checkbox.js.map +1 -1
- package/dist/esm/compound-button/compound-button.template.js.map +1 -1
- package/dist/esm/counter-badge/counter-badge.js +6 -26
- package/dist/esm/counter-badge/counter-badge.js.map +1 -1
- package/dist/esm/counter-badge/counter-badge.template.js.map +1 -1
- package/dist/esm/dialog/dialog.template.js.map +1 -1
- package/dist/esm/dialog-body/dialog-body.template.js.map +1 -1
- package/dist/esm/divider/divider.js +6 -21
- package/dist/esm/divider/divider.js.map +1 -1
- package/dist/esm/divider/divider.template.js.map +1 -1
- package/dist/esm/drawer/drawer.template.js.map +1 -1
- package/dist/esm/drawer-body/drawer-body.template.js.map +1 -1
- package/dist/esm/field/field.js.map +1 -1
- package/dist/esm/field/field.template.js.map +1 -1
- package/dist/esm/image/image.js +4 -13
- package/dist/esm/image/image.js.map +1 -1
- package/dist/esm/image/image.template.js.map +1 -1
- package/dist/esm/index-rollup.js +1 -0
- package/dist/esm/index-rollup.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/label/label.js +4 -13
- package/dist/esm/label/label.js.map +1 -1
- package/dist/esm/label/label.template.js.map +1 -1
- package/dist/esm/link/link.js +3 -7
- package/dist/esm/link/link.js.map +1 -1
- package/dist/esm/link/link.template.js.map +1 -1
- package/dist/esm/menu/menu.js +0 -3
- package/dist/esm/menu/menu.js.map +1 -1
- package/dist/esm/menu/menu.template.js.map +1 -1
- package/dist/esm/menu-button/menu-button.template.js.map +1 -1
- package/dist/esm/menu-item/menu-item.js +0 -7
- package/dist/esm/menu-item/menu-item.js.map +1 -1
- package/dist/esm/menu-item/menu-item.template.js +1 -3
- package/dist/esm/menu-item/menu-item.template.js.map +1 -1
- package/dist/esm/menu-list/menu-list.js +1 -2
- package/dist/esm/menu-list/menu-list.js.map +1 -1
- package/dist/esm/menu-list/menu-list.template.js.map +1 -1
- package/dist/esm/message-bar/message-bar.js +5 -19
- package/dist/esm/message-bar/message-bar.js.map +1 -1
- package/dist/esm/message-bar/message-bar.template.js.map +1 -1
- package/dist/esm/patterns/start-end.js.map +1 -1
- package/dist/esm/progress-bar/progress-bar.js +5 -19
- package/dist/esm/progress-bar/progress-bar.js.map +1 -1
- package/dist/esm/progress-bar/progress-bar.options.js.map +1 -1
- package/dist/esm/radio/radio.template.js.map +1 -1
- package/dist/esm/radio-group/radio-group.js +1 -2
- package/dist/esm/radio-group/radio-group.js.map +1 -1
- package/dist/esm/radio-group/radio-group.template.js.map +1 -1
- package/dist/esm/rating-display/rating-display.js +4 -9
- package/dist/esm/rating-display/rating-display.js.map +1 -1
- package/dist/esm/rating-display/rating-display.template.js.map +1 -1
- package/dist/esm/slider/slider.js +5 -16
- package/dist/esm/slider/slider.js.map +1 -1
- package/dist/esm/spinner/spinner.js +4 -13
- package/dist/esm/spinner/spinner.js.map +1 -1
- package/dist/esm/switch/switch.template.js.map +1 -1
- package/dist/esm/tab/tab.js +1 -1
- package/dist/esm/tab/tab.js.map +1 -1
- package/dist/esm/tab/tab.template.js.map +1 -1
- package/dist/esm/tab-panel/tab-panel.template.js.map +1 -1
- package/dist/esm/tablist/tablist.js +6 -22
- package/dist/esm/tablist/tablist.js.map +1 -1
- package/dist/esm/tabs/tabs.js.map +1 -1
- package/dist/esm/tabs/tabs.template.js.map +1 -1
- package/dist/esm/text/text.js +6 -25
- package/dist/esm/text/text.js.map +1 -1
- package/dist/esm/text/text.template.js.map +1 -1
- package/dist/esm/text-input/text-input.js +5 -16
- package/dist/esm/text-input/text-input.js.map +1 -1
- package/dist/esm/textarea/textarea.js +10 -23
- package/dist/esm/textarea/textarea.js.map +1 -1
- package/dist/esm/textarea/textarea.template.js.map +1 -1
- package/dist/esm/tooltip/define.js +4 -0
- package/dist/esm/tooltip/define.js.map +1 -0
- package/dist/esm/tooltip/index.js +6 -0
- package/dist/esm/tooltip/index.js.map +1 -0
- package/dist/esm/tooltip/tooltip.definition.js +17 -0
- package/dist/esm/tooltip/tooltip.definition.js.map +1 -0
- package/dist/esm/tooltip/tooltip.js +188 -0
- package/dist/esm/tooltip/tooltip.js.map +1 -0
- package/dist/esm/tooltip/tooltip.options.js +19 -0
- package/dist/esm/tooltip/tooltip.options.js.map +1 -0
- package/dist/esm/tooltip/tooltip.styles.js +95 -0
- package/dist/esm/tooltip/tooltip.styles.js.map +1 -0
- package/dist/esm/tooltip/tooltip.template.js +11 -0
- package/dist/esm/tooltip/tooltip.template.js.map +1 -0
- package/dist/esm/utils/element-internals.js +45 -0
- package/dist/esm/utils/element-internals.js.map +1 -1
- package/dist/esm/utils/template-helpers.js +1 -1
- package/dist/esm/utils/template-helpers.js.map +1 -1
- package/dist/web-components.d.ts +130 -6
- package/dist/web-components.js +1134 -940
- package/dist/web-components.min.js +343 -330
- package/package.json +1 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { attr, FASTElement, nullableNumberConverter } from '@microsoft/fast-element';
|
|
3
|
+
import { uniqueId } from '@microsoft/fast-web-utilities';
|
|
4
|
+
const SUPPORTS_CSS_ANCHOR_POSITIONING = CSS.supports('anchor-name: --a');
|
|
5
|
+
const SUPPORTS_HTML_ANCHOR_POSITIONING = 'anchor' in HTMLElement.prototype;
|
|
6
|
+
/**
|
|
7
|
+
* A Tooltip Custom HTML Element.
|
|
8
|
+
* Based on ARIA APG Tooltip Pattern {@link https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/ }
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export class Tooltip extends FASTElement {
|
|
12
|
+
/**
|
|
13
|
+
* Reference to the anchor element
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
get anchorElement() {
|
|
17
|
+
var _a;
|
|
18
|
+
const rootNode = this.getRootNode();
|
|
19
|
+
return (rootNode instanceof ShadowRoot ? rootNode : document).getElementById((_a = this.anchor) !== null && _a !== void 0 ? _a : '');
|
|
20
|
+
}
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
/**
|
|
24
|
+
* The attached element internals
|
|
25
|
+
*/
|
|
26
|
+
this.elementInternals = this.attachInternals();
|
|
27
|
+
/**
|
|
28
|
+
* The item ID
|
|
29
|
+
*
|
|
30
|
+
* @public
|
|
31
|
+
* @remarks
|
|
32
|
+
* HTML Attribute: id
|
|
33
|
+
*/
|
|
34
|
+
this.id = uniqueId('tooltip-');
|
|
35
|
+
/**
|
|
36
|
+
* The default delay for the tooltip
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
this.defaultDelay = 250;
|
|
40
|
+
/**
|
|
41
|
+
* The id of the anchor element for the tooltip
|
|
42
|
+
*/
|
|
43
|
+
this.anchor = '';
|
|
44
|
+
/**
|
|
45
|
+
* Reference to the anchor positioning style element
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
this.anchorPositioningStyleElement = null;
|
|
49
|
+
/**
|
|
50
|
+
* Show the tooltip on mouse enter
|
|
51
|
+
*/
|
|
52
|
+
this.mouseenterAnchorHandler = () => this.showTooltip(this.delay);
|
|
53
|
+
/**
|
|
54
|
+
* Hide the tooltip on mouse leave
|
|
55
|
+
*/
|
|
56
|
+
this.mouseleaveAnchorHandler = () => this.hideTooltip(this.delay);
|
|
57
|
+
/**
|
|
58
|
+
* Show the tooltip on focus
|
|
59
|
+
*/
|
|
60
|
+
this.focusAnchorHandler = () => this.showTooltip(0);
|
|
61
|
+
/**
|
|
62
|
+
* Hide the tooltip on blur
|
|
63
|
+
*/
|
|
64
|
+
this.blurAnchorHandler = () => this.hideTooltip(0);
|
|
65
|
+
this.elementInternals.role = 'tooltip';
|
|
66
|
+
}
|
|
67
|
+
connectedCallback() {
|
|
68
|
+
var _a, _b, _c, _d;
|
|
69
|
+
super.connectedCallback();
|
|
70
|
+
// If the anchor element is not found, tooltip will not be shown
|
|
71
|
+
if (!this.anchorElement) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
// @ts-expect-error - Baseline 2024
|
|
75
|
+
const anchorName = this.anchorElement.style.anchorName || `--${this.anchor}`;
|
|
76
|
+
const describedBy = this.anchorElement.getAttribute('aria-describedby');
|
|
77
|
+
this.anchorElement.setAttribute('aria-describedby', describedBy ? `${describedBy} ${this.id}` : this.id);
|
|
78
|
+
if (SUPPORTS_CSS_ANCHOR_POSITIONING) {
|
|
79
|
+
if (!SUPPORTS_HTML_ANCHOR_POSITIONING) {
|
|
80
|
+
// @ts-expect-error - Baseline 2024
|
|
81
|
+
this.anchorElement.style.anchorName = anchorName;
|
|
82
|
+
// @ts-expect-error - Baseline 2024
|
|
83
|
+
this.style.positionAnchor = anchorName;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
// Provide style fallback for browsers that do not support anchor positioning
|
|
88
|
+
if (!this.anchorPositioningStyleElement) {
|
|
89
|
+
this.anchorPositioningStyleElement = document.createElement('style');
|
|
90
|
+
document.head.append(this.anchorPositioningStyleElement);
|
|
91
|
+
}
|
|
92
|
+
// Given a position with <direction>-<alignment> format, return the proper CSS properties
|
|
93
|
+
// eslint-disable-next-line prefer-const
|
|
94
|
+
let [direction, alignment] = (_b = (_a = this.positioning) === null || _a === void 0 ? void 0 : _a.split('-')) !== null && _b !== void 0 ? _b : [];
|
|
95
|
+
if (alignment === undefined && (direction === 'above' || direction === 'below')) {
|
|
96
|
+
alignment = 'centerX';
|
|
97
|
+
}
|
|
98
|
+
if (alignment === undefined && (direction === 'before' || direction === 'after')) {
|
|
99
|
+
alignment = 'centerY';
|
|
100
|
+
}
|
|
101
|
+
const directionCSSMap = {
|
|
102
|
+
above: `bottom: anchor(${anchorName} top);`,
|
|
103
|
+
below: `top: anchor(${anchorName} bottom);`,
|
|
104
|
+
before: `right: anchor(${anchorName} left);`,
|
|
105
|
+
after: `left: anchor(${anchorName} right);`,
|
|
106
|
+
};
|
|
107
|
+
const directionCSS = (_c = directionCSSMap[direction]) !== null && _c !== void 0 ? _c : directionCSSMap.above;
|
|
108
|
+
const alignmentCSSMap = {
|
|
109
|
+
start: `left: anchor(${anchorName} left);`,
|
|
110
|
+
end: `right: anchor(${anchorName} right);`,
|
|
111
|
+
top: `top: anchor(${anchorName} top);`,
|
|
112
|
+
bottom: `bottom: anchor(${anchorName} bottom);`,
|
|
113
|
+
centerX: `left: anchor(${anchorName} center); translate: -50% 0;`,
|
|
114
|
+
centerY: `top: anchor(${anchorName} center); translate: 0 -50%;`,
|
|
115
|
+
};
|
|
116
|
+
const alignmentCSS = (_d = alignmentCSSMap[alignment]) !== null && _d !== void 0 ? _d : alignmentCSSMap.centerX;
|
|
117
|
+
this.anchorPositioningStyleElement.textContent = `
|
|
118
|
+
#${this.anchor} {
|
|
119
|
+
anchor-name: ${anchorName};
|
|
120
|
+
}
|
|
121
|
+
#${this.id} {
|
|
122
|
+
inset: unset;
|
|
123
|
+
${directionCSS}
|
|
124
|
+
${alignmentCSS}
|
|
125
|
+
position: absolute;
|
|
126
|
+
}
|
|
127
|
+
`;
|
|
128
|
+
if (window.CSS_ANCHOR_POLYFILL) {
|
|
129
|
+
window.CSS_ANCHOR_POLYFILL.call({ element: this.anchorPositioningStyleElement });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
this.anchorElement.addEventListener('focus', this.focusAnchorHandler);
|
|
133
|
+
this.anchorElement.addEventListener('blur', this.blurAnchorHandler);
|
|
134
|
+
this.anchorElement.addEventListener('mouseenter', this.mouseenterAnchorHandler);
|
|
135
|
+
this.anchorElement.addEventListener('mouseleave', this.mouseleaveAnchorHandler);
|
|
136
|
+
}
|
|
137
|
+
disconnectedCallback() {
|
|
138
|
+
var _a, _b, _c, _d;
|
|
139
|
+
super.disconnectedCallback();
|
|
140
|
+
(_a = this.anchorElement) === null || _a === void 0 ? void 0 : _a.removeEventListener('focus', this.focusAnchorHandler);
|
|
141
|
+
(_b = this.anchorElement) === null || _b === void 0 ? void 0 : _b.removeEventListener('blur', this.blurAnchorHandler);
|
|
142
|
+
(_c = this.anchorElement) === null || _c === void 0 ? void 0 : _c.removeEventListener('mouseenter', this.mouseenterAnchorHandler);
|
|
143
|
+
(_d = this.anchorElement) === null || _d === void 0 ? void 0 : _d.removeEventListener('mouseleave', this.mouseleaveAnchorHandler);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Shows the tooltip
|
|
147
|
+
* @param delay Number of milliseconds to delay showing the tooltip
|
|
148
|
+
* @internal
|
|
149
|
+
*/
|
|
150
|
+
showTooltip(delay = this.defaultDelay) {
|
|
151
|
+
setTimeout(() => {
|
|
152
|
+
this.setAttribute('aria-hidden', 'false');
|
|
153
|
+
//// @ts-expect-error - Baseline 2024
|
|
154
|
+
this.showPopover();
|
|
155
|
+
}, delay);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Hide the tooltip
|
|
159
|
+
* @param delay Number of milliseconds to delay hiding the tooltip
|
|
160
|
+
* @internal
|
|
161
|
+
*/
|
|
162
|
+
hideTooltip(delay = this.defaultDelay) {
|
|
163
|
+
setTimeout(() => {
|
|
164
|
+
var _a;
|
|
165
|
+
// Detect if the tooltip or anchor element is still hovered and enqueue another hide
|
|
166
|
+
if (this.matches(':hover') || ((_a = this.anchorElement) === null || _a === void 0 ? void 0 : _a.matches(':hover'))) {
|
|
167
|
+
this.hideTooltip(delay);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
this.setAttribute('aria-hidden', 'true');
|
|
171
|
+
//// @ts-expect-error - Baseline 2024
|
|
172
|
+
this.hidePopover();
|
|
173
|
+
}, delay);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
__decorate([
|
|
177
|
+
attr
|
|
178
|
+
], Tooltip.prototype, "id", void 0);
|
|
179
|
+
__decorate([
|
|
180
|
+
attr({ converter: nullableNumberConverter })
|
|
181
|
+
], Tooltip.prototype, "delay", void 0);
|
|
182
|
+
__decorate([
|
|
183
|
+
attr
|
|
184
|
+
], Tooltip.prototype, "positioning", void 0);
|
|
185
|
+
__decorate([
|
|
186
|
+
attr
|
|
187
|
+
], Tooltip.prototype, "anchor", void 0);
|
|
188
|
+
//# sourceMappingURL=tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/tooltip/tooltip.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAGzD,MAAM,+BAA+B,GAAG,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACzE,MAAM,gCAAgC,GAAG,QAAQ,IAAI,WAAW,CAAC,SAAS,CAAC;AAE3E;;;;GAIG;AACH,MAAM,OAAO,OAAQ,SAAQ,WAAW;IAwCtC;;;OAGG;IACH,IAAY,aAAa;;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,CAAC,QAAQ,YAAY,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC;IAClG,CAAC;IAQD;QACE,KAAK,EAAE,CAAC;QAvDV;;WAEG;QACI,qBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEjD;;;;;;WAMG;QAEI,OAAE,GAAW,QAAQ,CAAC,UAAU,CAAC,CAAC;QAQzC;;;WAGG;QACK,iBAAY,GAAW,GAAG,CAAC;QAQnC;;WAEG;QAEI,WAAM,GAAW,EAAE,CAAC;QAW3B;;;WAGG;QACO,kCAA6B,GAA4B,IAAI,CAAC;QAmIxE;;WAEG;QACI,4BAAuB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE;;WAEG;QACI,4BAAuB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE;;WAEG;QACI,uBAAkB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACtD;;WAEG;QACI,sBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QA9InD,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,SAAS,CAAC;IACzC,CAAC;IAEM,iBAAiB;;QACtB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,gEAAgE;QAChE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO;SACR;QAED,mCAAmC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAE7E,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzG,IAAI,+BAA+B,EAAE;YACnC,IAAI,CAAC,gCAAgC,EAAE;gBACrC,mCAAmC;gBACnC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;gBACjD,mCAAmC;gBACnC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC;aACxC;SACF;aAAM;YACL,6EAA6E;YAC7E,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACvC,IAAI,CAAC,6BAA6B,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACrE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;aAC1D;YAED,yFAAyF;YACzF,wCAAwC;YACxC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;YAEhE,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,CAAC,EAAE;gBAC/E,SAAS,GAAG,SAAS,CAAC;aACvB;YACD,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,OAAO,CAAC,EAAE;gBAChF,SAAS,GAAG,SAAS,CAAC;aACvB;YAED,MAAM,eAAe,GAAG;gBACtB,KAAK,EAAE,kBAAkB,UAAU,QAAQ;gBAC3C,KAAK,EAAE,eAAe,UAAU,WAAW;gBAC3C,MAAM,EAAE,iBAAiB,UAAU,SAAS;gBAC5C,KAAK,EAAE,gBAAgB,UAAU,UAAU;aACnC,CAAC;YAGX,MAAM,YAAY,GAAG,MAAA,eAAe,CAAC,SAA+B,CAAC,mCAAI,eAAe,CAAC,KAAK,CAAC;YAE/F,MAAM,eAAe,GAAG;gBACtB,KAAK,EAAE,gBAAgB,UAAU,SAAS;gBAC1C,GAAG,EAAE,iBAAiB,UAAU,UAAU;gBAC1C,GAAG,EAAE,eAAe,UAAU,QAAQ;gBACtC,MAAM,EAAE,kBAAkB,UAAU,WAAW;gBAC/C,OAAO,EAAE,gBAAgB,UAAU,8BAA8B;gBACjE,OAAO,EAAE,eAAe,UAAU,8BAA8B;aACxD,CAAC;YAGX,MAAM,YAAY,GAAG,MAAA,eAAe,CAAC,SAA+B,CAAC,mCAAI,eAAe,CAAC,OAAO,CAAC;YAEjG,IAAI,CAAC,6BAA6B,CAAC,WAAW,GAAG;aAC1C,IAAI,CAAC,MAAM;2BACG,UAAU;;aAExB,IAAI,CAAC,EAAE;;cAEN,YAAY;cACZ,YAAY;;;SAGjB,CAAC;YAEJ,IAAI,MAAM,CAAC,mBAAmB,EAAE;gBAC9B,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC;aAClF;SACF;QAED,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtE,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACpE,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAChF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAClF,CAAC;IAEM,oBAAoB;;QACzB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,MAAA,IAAI,CAAC,aAAa,0CAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1E,MAAA,IAAI,CAAC,aAAa,0CAAE,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACxE,MAAA,IAAI,CAAC,aAAa,0CAAE,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACpF,MAAA,IAAI,CAAC,aAAa,0CAAE,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACtF,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,QAAgB,IAAI,CAAC,YAAY;QAClD,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC1C,qCAAqC;YACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,QAAgB,IAAI,CAAC,YAAY;QAClD,UAAU,CAAC,GAAG,EAAE;;YACd,oFAAoF;YACpF,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,CAAC,QAAQ,CAAC,CAAA,EAAE;gBACnE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACxB,OAAO;aACR;YAED,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACzC,qCAAqC;YACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;CAkBF;AA1LQ;IADN,IAAI;mCACoC;AAMlC;IADN,IAAI,CAAC,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC;sCACvB;AAYf;IADN,IAAI;4CACyC;AAMvC;IADN,IAAI;uCACsB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The TooltipPositioning options and their corresponding CSS values
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
export const TooltipPositioningOption = {
|
|
6
|
+
'above-start': 'block-start span-inline-end',
|
|
7
|
+
above: 'block-start',
|
|
8
|
+
'above-end': 'block-start span-inline-start',
|
|
9
|
+
'below-start': 'block-end span-inline-end',
|
|
10
|
+
below: 'block-end',
|
|
11
|
+
'below-end': 'block-end span-inline-start',
|
|
12
|
+
'before-top': 'inline-start span-block-end',
|
|
13
|
+
before: 'inline-start',
|
|
14
|
+
'before-bottom': 'inline-start span-block-start',
|
|
15
|
+
'after-top': 'inline-end span-block-end',
|
|
16
|
+
after: 'inline-end',
|
|
17
|
+
'after-bottom': 'inline-end span-block-start',
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=tooltip.options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.options.js","sourceRoot":"","sources":["../../../src/tooltip/tooltip.options.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,aAAa,EAAE,6BAA6B;IAC5C,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,+BAA+B;IAC5C,aAAa,EAAE,2BAA2B;IAC1C,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,6BAA6B;IAC1C,YAAY,EAAE,6BAA6B;IAC3C,MAAM,EAAE,cAAc;IACtB,eAAe,EAAE,+BAA+B;IAChD,WAAW,EAAE,2BAA2B;IACxC,KAAK,EAAE,YAAY;IACnB,cAAc,EAAE,6BAA6B;CACrC,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { css } from '@microsoft/fast-element';
|
|
2
|
+
import { display } from '../utils/display.js';
|
|
3
|
+
import { borderRadiusMedium, colorNeutralBackground1, colorNeutralForeground1, colorNeutralShadowAmbient, colorNeutralShadowKey, colorTransparentStroke, fontFamilyBase, fontSizeBase200, lineHeightBase200, spacingHorizontalMNudge, spacingHorizontalXS, spacingVerticalXS, } from '../theme/design-tokens.js';
|
|
4
|
+
import { TooltipPositioningOption } from './tooltip.options.js';
|
|
5
|
+
/**
|
|
6
|
+
* Styles for the tooltip component
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export const styles = css `
|
|
10
|
+
${display('inline-flex')}
|
|
11
|
+
|
|
12
|
+
:host(:not(:popover-open)) {
|
|
13
|
+
display: none;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:host {
|
|
17
|
+
--position-area: block-start;
|
|
18
|
+
--position-try-options: flip-block;
|
|
19
|
+
--block-offset: ${spacingVerticalXS};
|
|
20
|
+
--inline-offset: ${spacingHorizontalXS};
|
|
21
|
+
background: ${colorNeutralBackground1};
|
|
22
|
+
border-radius: ${borderRadiusMedium};
|
|
23
|
+
border: 1px solid ${colorTransparentStroke};
|
|
24
|
+
box-sizing: border-box;
|
|
25
|
+
color: ${colorNeutralForeground1};
|
|
26
|
+
display: inline-flex;
|
|
27
|
+
filter: drop-shadow(0 0 2px ${colorNeutralShadowAmbient}) drop-shadow(0 4px 8px ${colorNeutralShadowKey});
|
|
28
|
+
font-family: ${fontFamilyBase};
|
|
29
|
+
font-size: ${fontSizeBase200};
|
|
30
|
+
inset: unset;
|
|
31
|
+
line-height: ${lineHeightBase200};
|
|
32
|
+
margin: unset; /* Remove browser default for [popover] */
|
|
33
|
+
max-width: 240px;
|
|
34
|
+
padding: 4px ${spacingHorizontalMNudge} 6px;
|
|
35
|
+
position: absolute;
|
|
36
|
+
position-area: var(--position-area);
|
|
37
|
+
position-try-options: var(--position-try-options);
|
|
38
|
+
width: auto;
|
|
39
|
+
z-index: 1;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@supports (inset-area: block-start) {
|
|
43
|
+
:host {
|
|
44
|
+
inset-area: var(--position-area);
|
|
45
|
+
position-try-fallbacks: var(--position-try-options);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
:host(:is([positioning^='above'], [positioning^='below'], :not([positioning]))) {
|
|
50
|
+
margin-block: var(--block-offset);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:host(:is([positioning^='before'], [positioning^='after'])) {
|
|
54
|
+
margin-inline: var(--inline-offset);
|
|
55
|
+
--position-try-options: flip-inline;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:host([positioning='above-start']) {
|
|
59
|
+
--position-area: ${TooltipPositioningOption['above-start']};
|
|
60
|
+
}
|
|
61
|
+
:host([positioning='above']) {
|
|
62
|
+
--position-area: ${TooltipPositioningOption.above};
|
|
63
|
+
}
|
|
64
|
+
:host([positioning='above-end']) {
|
|
65
|
+
--position-area: ${TooltipPositioningOption['above-end']};
|
|
66
|
+
}
|
|
67
|
+
:host([positioning='below-start']) {
|
|
68
|
+
--position-area: ${TooltipPositioningOption['below-start']};
|
|
69
|
+
}
|
|
70
|
+
:host([positioning='below']) {
|
|
71
|
+
--position-area: ${TooltipPositioningOption.below};
|
|
72
|
+
}
|
|
73
|
+
:host([positioning='below-end']) {
|
|
74
|
+
--position-area: ${TooltipPositioningOption.below};
|
|
75
|
+
}
|
|
76
|
+
:host([positioning='before-top']) {
|
|
77
|
+
--position-area: ${TooltipPositioningOption['before-top']};
|
|
78
|
+
}
|
|
79
|
+
:host([positioning='before']) {
|
|
80
|
+
--position-area: ${TooltipPositioningOption.before};
|
|
81
|
+
}
|
|
82
|
+
:host([positioning='before-bottom']) {
|
|
83
|
+
--position-area: ${TooltipPositioningOption['before-bottom']};
|
|
84
|
+
}
|
|
85
|
+
:host([positioning='after-top']) {
|
|
86
|
+
--position-area: ${TooltipPositioningOption['after-top']};
|
|
87
|
+
}
|
|
88
|
+
:host([positioning='after']) {
|
|
89
|
+
--position-area: ${TooltipPositioningOption.after};
|
|
90
|
+
}
|
|
91
|
+
:host([positioning='after-bottom']) {
|
|
92
|
+
--position-area: ${TooltipPositioningOption['after-bottom']};
|
|
93
|
+
}
|
|
94
|
+
`;
|
|
95
|
+
//# sourceMappingURL=tooltip.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.styles.js","sourceRoot":"","sources":["../../../src/tooltip/tooltip.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,aAAa,CAAC;;;;;;;;;sBASJ,iBAAiB;uBAChB,mBAAmB;kBACxB,uBAAuB;qBACpB,kBAAkB;wBACf,sBAAsB;;aAEjC,uBAAuB;;kCAEF,yBAAyB,2BAA2B,qBAAqB;mBACxF,cAAc;iBAChB,eAAe;;mBAEb,iBAAiB;;;mBAGjB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;uBAyBnB,wBAAwB,CAAC,aAAa,CAAC;;;uBAGvC,wBAAwB,CAAC,KAAK;;;uBAG9B,wBAAwB,CAAC,WAAW,CAAC;;;uBAGrC,wBAAwB,CAAC,aAAa,CAAC;;;uBAGvC,wBAAwB,CAAC,KAAK;;;uBAG9B,wBAAwB,CAAC,KAAK;;;uBAG9B,wBAAwB,CAAC,YAAY,CAAC;;;uBAGtC,wBAAwB,CAAC,MAAM;;;uBAG/B,wBAAwB,CAAC,eAAe,CAAC;;;uBAGzC,wBAAwB,CAAC,WAAW,CAAC;;;uBAGrC,wBAAwB,CAAC,KAAK;;;uBAG9B,wBAAwB,CAAC,cAAc,CAAC;;CAE9D,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { html } from '@microsoft/fast-element';
|
|
2
|
+
/**
|
|
3
|
+
* Template for the tooltip component
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export const template = html `
|
|
7
|
+
<template popover aria-hidden="true">
|
|
8
|
+
<slot></slot>
|
|
9
|
+
</template>
|
|
10
|
+
`;
|
|
11
|
+
//# sourceMappingURL=tooltip.template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.template.js","sourceRoot":"","sources":["../../../src/tooltip/tooltip.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAG/C;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAS;;;;CAIpC,CAAC"}
|
|
@@ -38,6 +38,9 @@ export function stateSelector(state) {
|
|
|
38
38
|
* @internal
|
|
39
39
|
*/
|
|
40
40
|
export function toggleState(elementInternals, state, force) {
|
|
41
|
+
if (!state) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
41
44
|
if (!CustomStatesSetSupported) {
|
|
42
45
|
elementInternals.shadowRoot.host.toggleAttribute(`state--${state}`, force);
|
|
43
46
|
return;
|
|
@@ -51,4 +54,46 @@ export function toggleState(elementInternals, state, force) {
|
|
|
51
54
|
// @ts-expect-error - Baseline 2024
|
|
52
55
|
elementInternals.states.delete(state);
|
|
53
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* A weak map to store the valid states for attributes.
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
const matchingStateMap = new WeakMap();
|
|
62
|
+
/**
|
|
63
|
+
* Check if a given attribute value is a valid state. Attribute values are often kebab-cased, so this function converts
|
|
64
|
+
* the kebab-cased `state` to camelCase and checks if it exists in as a key in the `States` object.
|
|
65
|
+
*
|
|
66
|
+
* @param States - the object containing valid states for the attribute
|
|
67
|
+
* @param state - the state to check
|
|
68
|
+
* @returns true if the state is in the States object
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
export function hasMatchingState(States, state) {
|
|
72
|
+
if (!States || !state) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
if (matchingStateMap.has(States)) {
|
|
76
|
+
return matchingStateMap.get(States).has(state);
|
|
77
|
+
}
|
|
78
|
+
const stateSet = new Set(Object.values(States));
|
|
79
|
+
matchingStateMap.set(States, stateSet);
|
|
80
|
+
return stateSet.has(state);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Swap an old state for a new state.
|
|
84
|
+
*
|
|
85
|
+
* @param elementInternals - the `ElementInternals` instance for the component
|
|
86
|
+
* @param prev - the previous state to remove
|
|
87
|
+
* @param next - the new state to add
|
|
88
|
+
* @param States - the object containing valid states for the attribute
|
|
89
|
+
* @param prefix - an optional prefix to add to the state
|
|
90
|
+
*
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
93
|
+
export function swapStates(elementInternals, prev = '', next = '', States, prefix = '') {
|
|
94
|
+
toggleState(elementInternals, `${prefix}${prev}`, false);
|
|
95
|
+
if (!States || hasMatchingState(States, next)) {
|
|
96
|
+
toggleState(elementInternals, `${prefix}${next}`, true);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
54
99
|
//# sourceMappingURL=element-internals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element-internals.js","sourceRoot":"","sources":["../../../src/utils/element-internals.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAmB,KAAQ;;IACtD,OAAO,CAAC,MAAA,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,mCAC1B,SAAS;SACN,GAAG,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC;SAC/E,GAAG,CAAC,KAAK,CAAC,CAAqB,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CAAC,gBAAkC,EAAE,
|
|
1
|
+
{"version":3,"file":"element-internals.js","sourceRoot":"","sources":["../../../src/utils/element-internals.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAmB,KAAQ;;IACtD,OAAO,CAAC,MAAA,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,mCAC1B,SAAS;SACN,GAAG,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC;SAC/E,GAAG,CAAC,KAAK,CAAC,CAAqB,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CAAC,gBAAkC,EAAE,KAAyB,EAAE,KAAe;IACxG,IAAI,CAAC,KAAK,EAAE;QACV,OAAO;KACR;IAED,IAAI,CAAC,wBAAwB,EAAE;QAC7B,gBAAgB,CAAC,UAAW,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5E,OAAO;KACR;IACD,mCAAmC;IACnC,IAAI,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAChD,mCAAmC;QACnC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO;KACR;IACD,mCAAmC;IACnC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAuC,CAAC;AAE5E;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA0C,EAAE,KAAyB;IACpG,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAChC,OAAO,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACjD;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACxB,gBAAkC,EAClC,OAA2B,EAAE,EAC7B,OAA2B,EAAE,EAC7B,MAA+B,EAC/B,SAAiB,EAAE;IAEnB,WAAW,CAAC,gBAAgB,EAAE,GAAG,MAAM,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAEzD,IAAI,CAAC,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;QAC7C,WAAW,CAAC,gBAAgB,EAAE,GAAG,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;KACzD;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-helpers.js","sourceRoot":"","sources":["../../../src/utils/template-helpers.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,OAAO,
|
|
1
|
+
{"version":3,"file":"template-helpers.js","sourceRoot":"","sources":["../../../src/utils/template-helpers.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,OAAO,EAGL,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AAgBjC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAgD;IAEhD,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,uBAAuB,CAAC,KAAK,CAAC;KACtC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;KAC1C;IAED,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;KACtB;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/web-components.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { HostBehavior } from '@microsoft/fast-element';
|
|
|
9
9
|
import type { HostController } from '@microsoft/fast-element';
|
|
10
10
|
import { HTMLDirective } from '@microsoft/fast-element';
|
|
11
11
|
import { Orientation } from '@microsoft/fast-web-utilities';
|
|
12
|
-
import
|
|
12
|
+
import { SyntheticViewTemplate } from '@microsoft/fast-element';
|
|
13
13
|
import { ViewTemplate } from '@microsoft/fast-element';
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -127,7 +127,7 @@ export declare class AccordionItem extends BaseAccordionItem {
|
|
|
127
127
|
* @param prev - previous value
|
|
128
128
|
* @param next - next value
|
|
129
129
|
*/
|
|
130
|
-
sizeChanged(prev: AccordionItemSize, next: AccordionItemSize): void;
|
|
130
|
+
sizeChanged(prev: AccordionItemSize | undefined, next: AccordionItemSize | undefined): void;
|
|
131
131
|
/**
|
|
132
132
|
* Sets expand and collapsed icon position.
|
|
133
133
|
*
|
|
@@ -141,7 +141,7 @@ export declare class AccordionItem extends BaseAccordionItem {
|
|
|
141
141
|
* @param prev - previous value
|
|
142
142
|
* @param next - next value
|
|
143
143
|
*/
|
|
144
|
-
markerPositionChanged(prev: AccordionItemMarkerPosition, next: AccordionItemMarkerPosition): void;
|
|
144
|
+
markerPositionChanged(prev: AccordionItemMarkerPosition | undefined, next: AccordionItemMarkerPosition | undefined): void;
|
|
145
145
|
/**
|
|
146
146
|
* Sets the width of the focus state.
|
|
147
147
|
*
|
|
@@ -1629,7 +1629,7 @@ export declare class BaseDivider extends FASTElement {
|
|
|
1629
1629
|
* @param next - the current orientation value
|
|
1630
1630
|
* @internal
|
|
1631
1631
|
*/
|
|
1632
|
-
orientationChanged(previous:
|
|
1632
|
+
orientationChanged(previous: DividerRole | undefined, next: DividerRole | undefined): void;
|
|
1633
1633
|
}
|
|
1634
1634
|
|
|
1635
1635
|
/**
|
|
@@ -8280,7 +8280,7 @@ export declare class Slider extends FASTElement implements SliderConfiguration {
|
|
|
8280
8280
|
* HTML Attribute: size
|
|
8281
8281
|
*/
|
|
8282
8282
|
size?: SliderSize;
|
|
8283
|
-
protected sizeChanged(prev:
|
|
8283
|
+
protected sizeChanged(prev: SliderSize | undefined, next: SliderSize | undefined): void;
|
|
8284
8284
|
handleChange(_: any, propertyName: string): void;
|
|
8285
8285
|
private stepStyles?;
|
|
8286
8286
|
/**
|
|
@@ -8519,7 +8519,7 @@ export declare class Slider extends FASTElement implements SliderConfiguration {
|
|
|
8519
8519
|
* apply different behavior when it’s vertical.
|
|
8520
8520
|
*/
|
|
8521
8521
|
orientation?: Orientation;
|
|
8522
|
-
protected orientationChanged(prev:
|
|
8522
|
+
protected orientationChanged(prev: Orientation | undefined, next: Orientation | undefined): void;
|
|
8523
8523
|
/**
|
|
8524
8524
|
* The selection mode.
|
|
8525
8525
|
*
|
|
@@ -9943,6 +9943,130 @@ export declare const ToggleButtonStyles: ElementStyles;
|
|
|
9943
9943
|
*/
|
|
9944
9944
|
export declare const ToggleButtonTemplate: ElementViewTemplate<ToggleButton>;
|
|
9945
9945
|
|
|
9946
|
+
/**
|
|
9947
|
+
* A Tooltip Custom HTML Element.
|
|
9948
|
+
* Based on ARIA APG Tooltip Pattern {@link https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/ }
|
|
9949
|
+
* @public
|
|
9950
|
+
*/
|
|
9951
|
+
export declare class Tooltip extends FASTElement {
|
|
9952
|
+
/**
|
|
9953
|
+
* The attached element internals
|
|
9954
|
+
*/
|
|
9955
|
+
elementInternals: ElementInternals;
|
|
9956
|
+
/**
|
|
9957
|
+
* The item ID
|
|
9958
|
+
*
|
|
9959
|
+
* @public
|
|
9960
|
+
* @remarks
|
|
9961
|
+
* HTML Attribute: id
|
|
9962
|
+
*/
|
|
9963
|
+
id: string;
|
|
9964
|
+
/**
|
|
9965
|
+
* Set the delay for the tooltip
|
|
9966
|
+
*/
|
|
9967
|
+
delay?: number;
|
|
9968
|
+
/**
|
|
9969
|
+
* The default delay for the tooltip
|
|
9970
|
+
* @internal
|
|
9971
|
+
*/
|
|
9972
|
+
private defaultDelay;
|
|
9973
|
+
/**
|
|
9974
|
+
* Set the positioning of the tooltip
|
|
9975
|
+
*/
|
|
9976
|
+
positioning?: TooltipPositioningOption;
|
|
9977
|
+
/**
|
|
9978
|
+
* The id of the anchor element for the tooltip
|
|
9979
|
+
*/
|
|
9980
|
+
anchor: string;
|
|
9981
|
+
/**
|
|
9982
|
+
* Reference to the anchor element
|
|
9983
|
+
* @internal
|
|
9984
|
+
*/
|
|
9985
|
+
private get anchorElement();
|
|
9986
|
+
/**
|
|
9987
|
+
* Reference to the anchor positioning style element
|
|
9988
|
+
* @internal
|
|
9989
|
+
*/
|
|
9990
|
+
protected anchorPositioningStyleElement: HTMLStyleElement | null;
|
|
9991
|
+
constructor();
|
|
9992
|
+
connectedCallback(): void;
|
|
9993
|
+
disconnectedCallback(): void;
|
|
9994
|
+
/**
|
|
9995
|
+
* Shows the tooltip
|
|
9996
|
+
* @param delay Number of milliseconds to delay showing the tooltip
|
|
9997
|
+
* @internal
|
|
9998
|
+
*/
|
|
9999
|
+
showTooltip(delay?: number): void;
|
|
10000
|
+
/**
|
|
10001
|
+
* Hide the tooltip
|
|
10002
|
+
* @param delay Number of milliseconds to delay hiding the tooltip
|
|
10003
|
+
* @internal
|
|
10004
|
+
*/
|
|
10005
|
+
hideTooltip(delay?: number): void;
|
|
10006
|
+
/**
|
|
10007
|
+
* Show the tooltip on mouse enter
|
|
10008
|
+
*/
|
|
10009
|
+
mouseenterAnchorHandler: () => void;
|
|
10010
|
+
/**
|
|
10011
|
+
* Hide the tooltip on mouse leave
|
|
10012
|
+
*/
|
|
10013
|
+
mouseleaveAnchorHandler: () => void;
|
|
10014
|
+
/**
|
|
10015
|
+
* Show the tooltip on focus
|
|
10016
|
+
*/
|
|
10017
|
+
focusAnchorHandler: () => void;
|
|
10018
|
+
/**
|
|
10019
|
+
* Hide the tooltip on blur
|
|
10020
|
+
*/
|
|
10021
|
+
blurAnchorHandler: () => void;
|
|
10022
|
+
}
|
|
10023
|
+
|
|
10024
|
+
/**
|
|
10025
|
+
* The {@link Tooltip } custom element definition.
|
|
10026
|
+
*
|
|
10027
|
+
* @public
|
|
10028
|
+
* @remarks
|
|
10029
|
+
* HTML Element: `<fluent-tooltip>`
|
|
10030
|
+
*/
|
|
10031
|
+
export declare const TooltipDefinition: FASTElementDefinition<typeof Tooltip>;
|
|
10032
|
+
|
|
10033
|
+
/**
|
|
10034
|
+
* The TooltipPositioning options and their corresponding CSS values
|
|
10035
|
+
* @public
|
|
10036
|
+
*/
|
|
10037
|
+
export declare const TooltipPositioningOption: {
|
|
10038
|
+
readonly 'above-start': "block-start span-inline-end";
|
|
10039
|
+
readonly above: "block-start";
|
|
10040
|
+
readonly 'above-end': "block-start span-inline-start";
|
|
10041
|
+
readonly 'below-start': "block-end span-inline-end";
|
|
10042
|
+
readonly below: "block-end";
|
|
10043
|
+
readonly 'below-end': "block-end span-inline-start";
|
|
10044
|
+
readonly 'before-top': "inline-start span-block-end";
|
|
10045
|
+
readonly before: "inline-start";
|
|
10046
|
+
readonly 'before-bottom': "inline-start span-block-start";
|
|
10047
|
+
readonly 'after-top': "inline-end span-block-end";
|
|
10048
|
+
readonly after: "inline-end";
|
|
10049
|
+
readonly 'after-bottom': "inline-end span-block-start";
|
|
10050
|
+
};
|
|
10051
|
+
|
|
10052
|
+
/**
|
|
10053
|
+
* The TooltipPositioning type
|
|
10054
|
+
* @public
|
|
10055
|
+
*/
|
|
10056
|
+
export declare type TooltipPositioningOption = ValuesOf<typeof TooltipPositioningOption>;
|
|
10057
|
+
|
|
10058
|
+
/**
|
|
10059
|
+
* Styles for the tooltip component
|
|
10060
|
+
* @public
|
|
10061
|
+
*/
|
|
10062
|
+
export declare const TooltipStyles: ElementStyles;
|
|
10063
|
+
|
|
10064
|
+
/**
|
|
10065
|
+
* Template for the tooltip component
|
|
10066
|
+
* @public
|
|
10067
|
+
*/
|
|
10068
|
+
export declare const TooltipTemplate: ViewTemplate<Tooltip, any>;
|
|
10069
|
+
|
|
9946
10070
|
export declare const typographyBody1StrongerStyles: CSSDirective;
|
|
9947
10071
|
|
|
9948
10072
|
export declare const typographyBody1StrongStyles: CSSDirective;
|