@vonage/vivid 5.16.0 → 5.17.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 (317) hide show
  1. package/accordion/index.cjs +1 -1
  2. package/accordion/index.js +1 -1
  3. package/accordion-item/index.cjs +1 -1
  4. package/accordion-item/index.js +1 -1
  5. package/action-group/index.cjs +3 -3
  6. package/action-group/index.js +5 -5
  7. package/alert/index.cjs +3 -3
  8. package/alert/index.js +17 -17
  9. package/audio-player/index.cjs +16 -16
  10. package/audio-player/index.js +27 -27
  11. package/avatar/index.cjs +2 -2
  12. package/avatar/index.js +6 -6
  13. package/badge/index.cjs +2 -2
  14. package/badge/index.js +6 -6
  15. package/banner/index.cjs +3 -3
  16. package/banner/index.js +15 -15
  17. package/bundled/base-color-picker.cjs +2 -2
  18. package/bundled/base-color-picker.js +5 -5
  19. package/bundled/button.cjs +1 -1
  20. package/bundled/button.js +2 -2
  21. package/bundled/calendar-picker.template.cjs +2 -2
  22. package/bundled/calendar-picker.template.js +498 -498
  23. package/bundled/definition10.cjs +18 -30
  24. package/bundled/definition10.js +53 -155
  25. package/bundled/definition11.cjs +10 -19
  26. package/bundled/definition11.js +25 -74
  27. package/bundled/definition12.cjs +72 -18
  28. package/bundled/definition12.js +171 -107
  29. package/bundled/definition13.cjs +18 -17
  30. package/bundled/definition13.js +45 -65
  31. package/bundled/definition14.cjs +5 -10
  32. package/bundled/definition14.js +9 -27
  33. package/bundled/definition15.cjs +17 -71
  34. package/bundled/definition15.js +64 -181
  35. package/bundled/definition16.cjs +12 -4
  36. package/bundled/definition16.js +79 -14
  37. package/bundled/definition17.cjs +19 -13
  38. package/bundled/definition17.js +119 -70
  39. package/bundled/definition18.cjs +87 -12
  40. package/bundled/definition18.js +409 -52
  41. package/bundled/definition19.cjs +5 -87
  42. package/bundled/definition19.js +14 -422
  43. package/bundled/definition2.cjs +3 -3
  44. package/bundled/definition2.js +27 -27
  45. package/bundled/definition20.cjs +30 -5
  46. package/bundled/definition20.js +159 -9
  47. package/bundled/definition21.cjs +28 -19
  48. package/bundled/definition21.js +164 -47
  49. package/bundled/definition22.cjs +38 -23
  50. package/bundled/definition22.js +64 -82
  51. package/bundled/definition3.cjs +1 -1
  52. package/bundled/definition3.js +15 -15
  53. package/bundled/definition4.cjs +23 -38
  54. package/bundled/definition4.js +82 -64
  55. package/bundled/definition5.cjs +2 -2
  56. package/bundled/definition5.js +5 -5
  57. package/bundled/definition6.cjs +2 -2
  58. package/bundled/definition6.js +24 -24
  59. package/bundled/definition9.cjs +12 -30
  60. package/bundled/definition9.js +55 -148
  61. package/bundled/divider.cjs +1 -1
  62. package/bundled/divider.js +5 -5
  63. package/bundled/listbox.cjs +1 -1
  64. package/bundled/listbox.js +1 -1
  65. package/bundled/mixins.cjs +4 -4
  66. package/bundled/mixins.js +43 -43
  67. package/bundled/picker-field.template.cjs +7 -7
  68. package/bundled/picker-field.template.js +14 -14
  69. package/bundled/slider.template.cjs +7 -7
  70. package/bundled/slider.template.js +12 -12
  71. package/bundled/slottable-request.cjs +1 -1
  72. package/bundled/slottable-request.js +8 -38
  73. package/bundled/time-selection-picker.template.cjs +4 -4
  74. package/bundled/time-selection-picker.template.js +35 -35
  75. package/bundled/vivid-element.cjs +1 -1
  76. package/bundled/vivid-element.js +1 -1
  77. package/calendar/index.cjs +11 -11
  78. package/calendar/index.js +30 -237
  79. package/calendar-event/index.cjs +3 -3
  80. package/calendar-event/index.js +4 -4
  81. package/card/index.cjs +14 -11
  82. package/card/index.js +16 -13
  83. package/checkbox/index.cjs +1 -1
  84. package/checkbox/index.js +1 -1
  85. package/color-picker/definition.cjs +1 -1
  86. package/color-picker/definition.js +1 -1
  87. package/color-picker/index.cjs +6 -6
  88. package/color-picker/index.js +24 -24
  89. package/combobox/definition.cjs +1 -1
  90. package/combobox/definition.js +1 -1
  91. package/combobox/index.cjs +9 -8
  92. package/combobox/index.js +32 -28
  93. package/contextual-help/definition.cjs +1 -1
  94. package/contextual-help/definition.js +1 -1
  95. package/contextual-help/index.cjs +1 -1
  96. package/contextual-help/index.js +1 -1
  97. package/custom-elements.json +1027 -615
  98. package/data-grid/definition.js +1 -1
  99. package/data-grid/index.cjs +17 -17
  100. package/data-grid/index.js +261 -264
  101. package/date-picker/index.cjs +1 -1
  102. package/date-picker/index.js +12 -12
  103. package/date-range-picker/index.cjs +1 -1
  104. package/date-range-picker/index.js +7 -7
  105. package/date-time-picker/index.cjs +4 -4
  106. package/date-time-picker/index.js +24 -24
  107. package/dial-pad/index.cjs +3 -2
  108. package/dial-pad/index.js +6 -5
  109. package/dialog/index.cjs +4 -4
  110. package/dialog/index.js +5 -5
  111. package/divider/index.cjs +1 -1
  112. package/divider/index.js +1 -1
  113. package/fab/index.cjs +3 -3
  114. package/fab/index.js +8 -8
  115. package/file-picker/index.cjs +16 -13
  116. package/file-picker/index.js +31 -28
  117. package/header/index.cjs +4 -4
  118. package/header/index.js +5 -5
  119. package/index.cjs +24 -21
  120. package/index.js +11 -11
  121. package/lib/combobox/combobox.d.ts +0 -3
  122. package/lib/date-time-picker/date-time-picker.d.ts +0 -4
  123. package/lib/dial-pad/dial-pad.d.ts +6 -2
  124. package/lib/dialog/dialog.d.ts +0 -1
  125. package/lib/menu/menu.d.ts +0 -1
  126. package/lib/option/option.d.ts +0 -1
  127. package/lib/rich-text-editor/rte/exports.d.ts +1 -0
  128. package/lib/rich-text-editor/rte/features/alignment.d.ts +1 -1
  129. package/lib/rich-text-editor/rte/features/character-count.d.ts +21 -0
  130. package/lib/rich-text-editor/rte/features/font-size-picker.d.ts +1 -1
  131. package/lib/rich-text-editor/rte/features/internal/basic-text-blocks.d.ts +1 -1
  132. package/lib/rich-text-editor/rte/features/keyboard-shortcuts.d.ts +1 -1
  133. package/lib/rich-text-editor/rte/features/text-color-picker.d.ts +1 -1
  134. package/lib/rich-text-editor/rte/public-interface.d.ts +6 -0
  135. package/lib/searchable-select/option-tag.d.ts +0 -1
  136. package/lib/table/definition.d.ts +2 -1
  137. package/lib/table/table-header-cell.d.ts +3 -0
  138. package/lib/table/table-sorting-button.d.ts +415 -0
  139. package/lib/table/table-sorting-button.template.d.ts +3 -0
  140. package/locales/de-DE.cjs +4 -178
  141. package/locales/de-DE.js +2 -179
  142. package/locales/en-GB.cjs +4 -9
  143. package/locales/en-GB.js +2 -10
  144. package/locales/en-US.cjs +268 -2
  145. package/locales/en-US.js +265 -1
  146. package/locales/ja-JP.cjs +4 -171
  147. package/locales/ja-JP.js +2 -172
  148. package/locales/zh-CN.cjs +4 -172
  149. package/locales/zh-CN.js +2 -173
  150. package/menu/index.cjs +1 -1
  151. package/menu/index.js +1 -1
  152. package/menu-item/index.cjs +1 -1
  153. package/menu-item/index.js +1 -1
  154. package/nav-disclosure/index.cjs +3 -3
  155. package/nav-disclosure/index.js +8 -8
  156. package/nav-item/index.cjs +1 -1
  157. package/nav-item/index.js +7 -7
  158. package/note/index.cjs +2 -2
  159. package/note/index.js +6 -6
  160. package/number-field/index.cjs +4 -4
  161. package/number-field/index.js +31 -31
  162. package/option/definition.cjs +1 -1
  163. package/option/definition.js +1 -1
  164. package/option/index.cjs +1 -1
  165. package/option/index.js +1 -1
  166. package/package.json +7 -8
  167. package/pagination/index.cjs +3 -3
  168. package/pagination/index.js +15 -15
  169. package/popover/index.cjs +4 -4
  170. package/popover/index.js +5 -5
  171. package/progress/index.cjs +2 -2
  172. package/progress/index.js +5 -5
  173. package/radio/index.cjs +1 -1
  174. package/radio/index.js +1 -1
  175. package/radio-group/index.cjs +4 -4
  176. package/radio-group/index.js +10 -10
  177. package/range-slider/index.cjs +4 -4
  178. package/range-slider/index.js +17 -17
  179. package/rich-text-editor/definition.cjs +1 -0
  180. package/rich-text-editor/definition.js +2 -2
  181. package/rich-text-editor/index.cjs +13 -13
  182. package/rich-text-editor/index.js +1886 -1829
  183. package/rich-text-view/index.cjs +1 -1
  184. package/rich-text-view/index.js +8 -8
  185. package/searchable-select/index.cjs +12 -12
  186. package/searchable-select/index.js +25 -25
  187. package/select/index.cjs +1 -1
  188. package/select/index.js +1 -1
  189. package/selectable-box/index.cjs +7 -7
  190. package/selectable-box/index.js +11 -11
  191. package/shared/foundation/test-utilities/fixture.d.ts +1 -1
  192. package/shared/patterns/linkable.d.ts +1 -1
  193. package/simple-color-picker/index.cjs +3 -3
  194. package/simple-color-picker/index.js +10 -10
  195. package/split-button/index.cjs +5 -5
  196. package/split-button/index.js +10 -10
  197. package/status/index.cjs +2 -2
  198. package/status/index.js +12 -12
  199. package/switch/index.cjs +3 -3
  200. package/switch/index.js +5 -5
  201. package/tab/index.cjs +1 -1
  202. package/tab/index.js +1 -1
  203. package/tab-panel/index.cjs +1 -1
  204. package/tab-panel/index.js +1 -1
  205. package/table/definition.cjs +17 -14
  206. package/table/definition.js +3 -2
  207. package/table/index.cjs +19 -10
  208. package/table/index.js +69 -21
  209. package/tabs/index.cjs +2 -2
  210. package/tabs/index.js +4 -4
  211. package/tag/index.cjs +7 -7
  212. package/tag/index.js +9 -9
  213. package/tag-group/index.cjs +3 -3
  214. package/tag-group/index.js +5 -5
  215. package/text-area/index.cjs +2 -2
  216. package/text-area/index.js +12 -12
  217. package/text-field/definition.cjs +1 -1
  218. package/text-field/definition.js +1 -1
  219. package/text-field/index.cjs +1 -1
  220. package/text-field/index.js +1 -1
  221. package/time-picker/index.cjs +1 -1
  222. package/time-picker/index.js +1 -1
  223. package/toggletip/definition.cjs +1 -1
  224. package/toggletip/definition.js +1 -1
  225. package/toggletip/index.cjs +1 -1
  226. package/toggletip/index.js +1 -1
  227. package/tooltip/definition.cjs +1 -1
  228. package/tooltip/definition.js +1 -1
  229. package/tooltip/index.cjs +1 -1
  230. package/tooltip/index.js +1 -1
  231. package/tree-item/index.cjs +1 -1
  232. package/tree-item/index.js +1 -1
  233. package/tree-view/index.cjs +3 -3
  234. package/tree-view/index.js +17 -17
  235. package/unbundled/button.cjs +2 -2
  236. package/unbundled/button.js +2 -2
  237. package/unbundled/calendar-picker.template.cjs +4347 -9
  238. package/unbundled/calendar-picker.template.js +4345 -7
  239. package/unbundled/chunk.cjs +0 -22
  240. package/unbundled/definition13.cjs +1 -8
  241. package/unbundled/definition13.js +1 -8
  242. package/unbundled/definition14.cjs +2 -2
  243. package/unbundled/definition14.js +2 -2
  244. package/unbundled/definition2.cjs +1 -1
  245. package/unbundled/definition2.js +1 -1
  246. package/unbundled/definition21.cjs +1 -2
  247. package/unbundled/definition21.js +1 -2
  248. package/unbundled/definition22.cjs +7 -2
  249. package/unbundled/definition22.js +7 -2
  250. package/unbundled/definition24.cjs +98 -979
  251. package/unbundled/definition24.js +93 -974
  252. package/unbundled/definition25.cjs +37 -322
  253. package/unbundled/definition25.js +33 -318
  254. package/unbundled/definition26.cjs +317 -91
  255. package/unbundled/definition26.js +313 -87
  256. package/unbundled/definition27.cjs +94 -192
  257. package/unbundled/definition27.js +91 -183
  258. package/unbundled/definition28.cjs +387 -395
  259. package/unbundled/definition28.js +387 -395
  260. package/unbundled/definition29.cjs +189 -110
  261. package/unbundled/definition29.js +180 -107
  262. package/unbundled/definition30.cjs +520 -36
  263. package/unbundled/definition30.js +519 -35
  264. package/unbundled/definition32.cjs +477 -477
  265. package/unbundled/definition32.js +475 -475
  266. package/unbundled/definition33.cjs +87 -2
  267. package/unbundled/definition33.js +77 -4
  268. package/unbundled/definition35.cjs +2 -2
  269. package/unbundled/definition35.js +2 -2
  270. package/unbundled/definition36.cjs +1 -1
  271. package/unbundled/definition36.js +1 -1
  272. package/unbundled/definition37.cjs +6 -2
  273. package/unbundled/definition37.js +6 -2
  274. package/unbundled/definition38.cjs +7 -5
  275. package/unbundled/definition38.js +7 -5
  276. package/unbundled/definition39.cjs +1 -0
  277. package/unbundled/definition39.js +1 -0
  278. package/unbundled/definition42.cjs +22 -11
  279. package/unbundled/definition42.js +22 -11
  280. package/unbundled/definition49.cjs +3 -3
  281. package/unbundled/definition49.js +3 -3
  282. package/unbundled/definition56.cjs +437 -9506
  283. package/unbundled/definition56.js +340 -9415
  284. package/unbundled/definition57.cjs +5 -5
  285. package/unbundled/definition57.js +5 -5
  286. package/unbundled/definition58.cjs +4 -3
  287. package/unbundled/definition58.js +2 -1
  288. package/unbundled/definition59.cjs +4 -3
  289. package/unbundled/definition59.js +4 -3
  290. package/unbundled/definition62.cjs +2 -2
  291. package/unbundled/definition62.js +2 -2
  292. package/unbundled/definition64.cjs +1 -1
  293. package/unbundled/definition64.js +1 -1
  294. package/unbundled/definition71.cjs +2 -2
  295. package/unbundled/definition71.js +2 -2
  296. package/unbundled/definition72.cjs +1 -2
  297. package/unbundled/definition72.js +1 -2
  298. package/unbundled/definition75.cjs +3 -51711
  299. package/unbundled/definition75.js +1 -51711
  300. package/unbundled/listbox.cjs +1 -1
  301. package/unbundled/listbox.js +1 -1
  302. package/unbundled/localized.cjs +2 -2
  303. package/unbundled/localized.js +1 -1
  304. package/unbundled/picker-field.template.cjs +1 -1
  305. package/unbundled/picker-field.template.js +1 -1
  306. package/unbundled/slottable-request.cjs +2 -3168
  307. package/unbundled/slottable-request.js +3 -3097
  308. package/unbundled/time-selection-picker.template.cjs +1 -1
  309. package/unbundled/time-selection-picker.template.js +1 -1
  310. package/unbundled/vivid-element.cjs +1 -1
  311. package/unbundled/vivid-element.js +1 -1
  312. package/video-player/index.cjs +3 -3
  313. package/video-player/index.js +9 -9
  314. package/vivid.api.json +220 -282
  315. package/unbundled/chunk.js +0 -33
  316. package/unbundled/en-US.cjs +0 -447
  317. package/unbundled/en-US.js +0 -443
@@ -1,211 +1,119 @@
1
1
  import { o as defineVividComponent, s as createRegisterFunction, t as VividElement } from "./vivid-element.js";
2
- import { r as Icon, t as iconDefinition } from "./definition2.js";
3
2
  import { t as __decorate } from "./decorate.js";
4
- import { a as affixIconTemplateFactory, i as IconWrapper, n as AffixIconWithTrailing } from "./affix.js";
5
- import { n as applyHostSemantics, t as HostSemantics } from "./host-semantics.js";
6
- import { attr, html, observable, volatile, when } from "@microsoft/fast-element";
7
- import { classNames, isHTMLElement } from "@microsoft/fast-web-utilities";
8
- //#region src/lib/option/option.ts
9
- /**
10
- * Determines if the element is a {@link (ListboxOption:class)}
11
- *
12
- * @param element - the element to test.
13
- * @public
14
- */
15
- function isListboxOption(el) {
16
- return isHTMLElement(el) && (el.getAttribute("role") === "option" || el instanceof HTMLOptionElement || el instanceof ListboxOption);
17
- }
3
+ import { t as handleEscapeKeyAndStopPropogation } from "./dialog.js";
4
+ import { i as Popup, t as popupDefinition } from "./definition10.js";
5
+ import { n as anchorSlotTemplateFactory, t as Anchored } from "./anchored.js";
6
+ import { attr, html } from "@microsoft/fast-element";
7
+ import { classNames } from "@microsoft/fast-web-utilities";
8
+ //#region src/lib/tooltip/tooltip.scss?inline
9
+ var tooltip_default = ":host :host{display:var(--_popup-display,inline)}:host :host([slotted-anchor]){--_popup-display:contents}.control{pointer-events:none}.tooltip{width:var(--tooltip-inline-size,auto);box-sizing:border-box;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);max-inline-size:var(--tooltip-max-inline-size,30ch);padding:8px 12px}";
10
+ //#endregion
11
+ //#region src/lib/tooltip/tooltip.ts
18
12
  /**
19
- * An Option Custom HTML Element.
20
- * Implements {@link https://www.w3.org/TR/wai-aria-1.1/#option | ARIA option }.
21
- *
22
13
  * @public
23
- * @component option
24
- * @slot icon - The preferred way to add an icon to the component.
25
- * @slot tag-icon - Icon to be displayed in the tag when selected inside of Searchable Select.
26
- * @slot trailing-meta - For additional elements at the end of the Option.
27
- * @testAction click click #locator
14
+ * @component tooltip
15
+ * @slot anchor - Used to set the anchor element for the tooltip.
16
+ * @testSelector byText byText
17
+ * @testQuery open open true
18
+ * @testQuery closed open false
28
19
  */
29
- var ListboxOption = class extends HostSemantics(AffixIconWithTrailing(VividElement)) {
30
- defaultSelectedChanged() {
31
- if (!this.dirtySelected) {
32
- this.selected = this.defaultSelected;
33
- if (this.proxy instanceof HTMLOptionElement) this.proxy.selected = this.defaultSelected;
34
- }
35
- if (this.proxy instanceof HTMLOptionElement) this.proxy.defaultSelected = this.defaultSelected;
36
- }
37
- disabledChanged() {
38
- /* v8 ignore if -- @preserve */
39
- if (this.proxy instanceof HTMLOptionElement) this.proxy.disabled = this.disabled;
40
- }
41
- /**
42
- * @deprecated Use `defaultSelected` instead.
43
- */
44
- get selectedAttribute() {
45
- return this.defaultSelected;
46
- }
47
- set selectedAttribute(value) {
48
- this.defaultSelected = value;
49
- }
50
- selectedChanged() {
51
- if (!this.dirtySelected) this.dirtySelected = true;
52
- if (this.proxy instanceof HTMLOptionElement) this.proxy.selected = this.selected;
53
- }
54
- valueChanged() {
55
- if (typeof this.value !== "string") {
56
- this.value = "";
57
- return;
58
- }
59
- if (this.proxy instanceof HTMLOptionElement) this.proxy.value = this.value;
60
- }
61
- get label() {
62
- return this._label ?? this.text;
20
+ var Tooltip = class extends Anchored(VividElement) {
21
+ constructor(..._args) {
22
+ super(..._args);
23
+ this.open = false;
63
24
  }
64
- set label(value) {
65
- this._label = value;
66
- }
67
- set text(value) {
68
- this._text = value;
69
- }
70
- get text() {
71
- return this._text ?? "";
72
- }
73
- /**
74
- * Provides an accessible name for use by parent components.
75
- * Note: Does not implement full accessible name computation, e.g. slotted content is missed.
76
- * @internal
77
- */
78
- _getAccessibleName() {
79
- return this.ariaLabel || `${this.text}${this.textSecondary ? ` ${this.textSecondary}` : ""}`;
80
- }
81
- get form() {
82
- return null;
25
+ connectedCallback() {
26
+ super.connectedCallback();
27
+ this.#updateListeners();
83
28
  }
84
- get _hasMatchedText() {
85
- return Boolean(this.matchedText ?? this._vvdSearchText);
29
+ disconnectedCallback() {
30
+ super.disconnectedCallback();
31
+ this.#updateListeners();
86
32
  }
87
33
  /**
88
- * From is inclusive, to is exclusive.
89
34
  * @internal
90
35
  */
91
- get _matchedRange() {
92
- const matchedText = this.matchedText ?? this._vvdSearchText;
93
- if (matchedText) {
94
- const matchIndex = this.text.toLowerCase().indexOf(matchedText.toLowerCase());
95
- return matchIndex === -1 ? {
96
- from: 0,
97
- to: 0
98
- } : {
99
- from: matchIndex,
100
- to: matchIndex + matchedText.length
101
- };
102
- }
103
- return {
104
- from: 0,
105
- to: 0
106
- };
107
- }
108
- constructor(text, value, defaultSelected, selected) {
109
- super();
110
- this.defaultSelected = false;
111
- this.dirtySelected = false;
112
- this.value = "";
113
- this._highlighted = false;
114
- this._displayCheckmark = false;
115
- this._vvdSearchText = "";
116
- this._isNotMatching = false;
117
- if (text) this.text = text;
118
- if (value) this.value = value;
119
- if (defaultSelected) this.defaultSelected = defaultSelected;
120
- if (selected) this.selected = selected;
121
- this.proxy = new Option(this.text, this.value, this.defaultSelected, this.selected);
122
- this.proxy.disabled = this.disabled;
123
- }
36
+ _anchorElChanged(oldValue, newValue) {
37
+ if (oldValue) this.#cleanupAnchor(oldValue);
38
+ if (newValue) this.#setupAnchor(newValue);
39
+ }
40
+ #setupAnchor(a) {
41
+ a.addEventListener("mouseover", this.#show);
42
+ a.addEventListener("mouseout", this.#hide);
43
+ a.addEventListener("focusin", this.#show);
44
+ a.addEventListener("focusout", this.#hide);
45
+ a.setAttribute("aria-haspopup", "true");
46
+ a.setAttribute("aria-expanded", String(this.open));
47
+ }
48
+ #cleanupAnchor(a) {
49
+ a.removeEventListener("mouseover", this.#show);
50
+ a.removeEventListener("mouseout", this.#hide);
51
+ a.removeEventListener("focusin", this.#show);
52
+ a.removeEventListener("focusout", this.#hide);
53
+ a.removeAttribute("aria-haspopup");
54
+ a.removeAttribute("aria-expanded");
55
+ }
56
+ #show = () => {
57
+ this.open = true;
58
+ this.#updateAnchorExpanded();
59
+ };
60
+ #hide = () => {
61
+ this.open = false;
62
+ this.#updateAnchorExpanded();
63
+ };
64
+ #updateAnchorExpanded() {
65
+ if (this._anchorEl) this._anchorEl.setAttribute("aria-expanded", String(this.open));
66
+ }
67
+ #updateListeners() {
68
+ document.removeEventListener("keydown", this.#closeOnEscape);
69
+ if (this.open && this.isConnected) document.addEventListener("keydown", this.#closeOnEscape);
70
+ }
71
+ #closeOnEscape = (e) => {
72
+ /* v8 ignore else -- @preserve */
73
+ if (e.key === "Escape") this.#hide();
74
+ };
124
75
  /**
125
76
  * @internal
126
77
  */
127
- connectedCallback() {
128
- super.connectedCallback();
129
- if (!this.dirtySelected) {
130
- this.selected = this.defaultSelected;
131
- this.dirtySelected = false;
132
- }
78
+ openChanged(oldValue) {
79
+ if (oldValue === void 0) return;
80
+ this.#updateListeners();
133
81
  }
134
82
  };
135
- __decorate([attr({ converter: {
136
- fromView: (value) => {
137
- if (value === true || value === "true") return true;
138
- if (value === false || value === "false") return false;
139
- },
140
- toView: (value) => value
141
- } })], ListboxOption.prototype, "checked", void 0);
142
- __decorate([attr({
143
- attribute: "selected",
144
- mode: "boolean"
145
- })], ListboxOption.prototype, "defaultSelected", void 0);
146
- __decorate([attr({ mode: "boolean" })], ListboxOption.prototype, "disabled", void 0);
147
- __decorate([attr({
148
- attribute: "current-selected",
149
- mode: "boolean"
150
- })], ListboxOption.prototype, "selected", void 0);
151
- __decorate([attr({ attribute: "value" })], ListboxOption.prototype, "value", void 0);
152
- __decorate([attr({ attribute: "label" })], ListboxOption.prototype, "_label", void 0);
153
- __decorate([attr({ attribute: "text" })], ListboxOption.prototype, "_text", void 0);
154
- __decorate([attr({ attribute: "text-secondary" })], ListboxOption.prototype, "textSecondary", void 0);
155
- __decorate([observable], ListboxOption.prototype, "_highlighted", void 0);
156
- __decorate([observable], ListboxOption.prototype, "_displayCheckmark", void 0);
157
- __decorate([attr({ attribute: "matched-text" })], ListboxOption.prototype, "matchedText", void 0);
158
- __decorate([observable], ListboxOption.prototype, "_vvdSearchText", void 0);
159
- __decorate([volatile], ListboxOption.prototype, "_hasMatchedText", null);
160
- __decorate([observable], ListboxOption.prototype, "_isNotMatching", void 0);
161
- __decorate([volatile], ListboxOption.prototype, "_matchedRange", null);
162
- __decorate([attr], ListboxOption.prototype, "connotation", void 0);
163
- __decorate([attr({ attribute: "tag-connotation" })], ListboxOption.prototype, "tagConnotation", void 0);
83
+ __decorate([attr], Tooltip.prototype, "text", void 0);
84
+ __decorate([attr({ mode: "fromView" })], Tooltip.prototype, "placement", void 0);
85
+ __decorate([attr({ mode: "boolean" })], Tooltip.prototype, "open", void 0);
164
86
  //#endregion
165
- //#region src/lib/option/option.template.ts
166
- var getClasses = (x) => classNames("base", [`connotation-${x.connotation}`, Boolean(x.connotation)], ["disabled", x.disabled], ["selected", Boolean(x.selected)], ["hover", Boolean(x._highlighted)], ["active", Boolean(x.checked)], ["icon", Boolean(x.icon)], ["two-lines", Boolean(x.text?.length) && Boolean(x.textSecondary?.length)]);
167
- function text() {
168
- return html`${when((x) => x.text || x.textSecondary, html`<span class="text">
169
- ${when((x) => x.text, html`<span class="text-primary">
170
- ${when((x) => x._hasMatchedText, html`${(x) => x.text.slice(0, x._matchedRange.from)}<span class="match"
171
- >${(x) => x.text.slice(x._matchedRange.from, x._matchedRange.to)}</span
172
- >`)}${(x) => x.text.slice(x._matchedRange.to)}
173
- </span>`)}
174
- ${when((x) => x.textSecondary, html`<span class="text-secondary">${(x) => x.textSecondary}</span>`)}
175
- </span>`)}`;
176
- }
177
- var ListboxOptionTemplate = (context) => {
178
- const affixIconTemplate = affixIconTemplateFactory(context);
179
- const iconTag = context.tagFor(Icon);
87
+ //#region src/lib/tooltip/tooltip.template.ts
88
+ var getClasses = ({ open }) => classNames("control", ["open", Boolean(open)]);
89
+ var TooltipTemplate = (context) => {
90
+ const popupTag = context.tagFor(Popup);
180
91
  return html`
181
- <template
182
- ${applyHostSemantics({
183
- role: "option",
184
- ariaChecked: (x) => x.checked,
185
- ariaSelected: (x) => x.selected,
186
- ariaDisabled: (x) => x.disabled
187
- })}
188
- style="${(x) => x._isNotMatching ? "display: none" : ""}"
189
- >
190
- <div class="${getClasses}">
191
- ${(x) => affixIconTemplate(x.icon, IconWrapper.Slot)} ${text()}
192
- <slot name="trailing-meta"></slot>
193
- ${when((x) => x._displayCheckmark && x.selected, html`<${iconTag} class="checkmark" name="check-line"></${iconTag}>`)}
194
- </div>
195
- </template>
196
- `;
92
+ ${anchorSlotTemplateFactory()}
93
+ <${popupTag} class="${getClasses}" arrow alternate
94
+ :placement=${(x) => x.placement}
95
+ :anchor="${(x) => x._anchorEl}"
96
+ :open="${(x) => x.open}"
97
+ @keydown="${(x, c) => {
98
+ if (x.open && handleEscapeKeyAndStopPropogation(c.event)) x.open = false;
99
+ }}"
100
+ exportparts="vvd-theme-alternate">
101
+ <div part="vvd-theme-alternate" class="tooltip" role="tooltip">
102
+ ${(x) => x.text}
103
+ </div>
104
+ </${popupTag}>`;
197
105
  };
198
106
  //#endregion
199
- //#region src/lib/option/definition.ts
107
+ //#region src/lib/tooltip/definition.ts
200
108
  /**
201
109
  * @internal
202
110
  */
203
- var listboxOptionDefinition = defineVividComponent("option", ListboxOption, ListboxOptionTemplate, [iconDefinition], { styles: ":host([disabled]){cursor:not-allowed}.base.connotation-cta{--_connotation-color-primary:var(--vvd-option-cta-primary,var(--vvd-color-cta-500));--_connotation-color-primary-text:var(--vvd-option-cta-primary-text,var(--vvd-color-canvas));--_connotation-color-primary-increment:var(--vvd-option-cta-primary-increment,var(--vvd-color-cta-600));--_connotation-color-firm:var(--vvd-option-cta-firm,var(--vvd-color-cta-600));--_connotation-color-faint:var(--vvd-option-cta-faint,var(--vvd-color-cta-50));--_connotation-color-soft:var(--vvd-option-cta-soft,var(--vvd-color-cta-100));--_connotation-color-pale:var(--vvd-option-cta-pale,var(--vvd-color-cta-300));--_connotation-color-dim:var(--vvd-option-cta-dim,var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary:var(--vvd-option-accent-primary,var(--vvd-color-canvas-text));--_connotation-color-primary-text:var(--vvd-option-accent-primary-text,var(--vvd-color-canvas));--_connotation-color-primary-increment:var(--vvd-option-accent-primary-increment,var(--vvd-color-neutral-800));--_connotation-color-firm:var(--vvd-option-accent-firm,var(--vvd-color-canvas-text));--_connotation-color-faint:var(--vvd-option-accent-faint,var(--vvd-color-neutral-50));--_connotation-color-soft:var(--vvd-option-accent-soft,var(--vvd-color-neutral-100));--_connotation-color-pale:var(--vvd-option-accent-pale,var(--vvd-color-neutral-300));--_connotation-color-dim:var(--vvd-option-accent-dim,var(--vvd-color-neutral-200))}.base{--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}@media (hover:hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-faint);--_appearance-color-outline:transparent}.base:disabled,.base.disabled{--_appearance-color-text:var(--vvd-color-neutral-300);--_appearance-color-fill:transparent;--_appearance-color-outline:transparent}.base:active:where(:not(.disabled,:disabled)),.base.active:where(:not(.disabled,:disabled)),.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-soft);--_appearance-color-outline:transparent}@media (hover:hover){.base.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-dim);--_appearance-color-outline:transparent}}.base.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text:var(--_connotation-color-firm);--_appearance-color-fill:var(--_connotation-color-dim);--_appearance-color-outline:transparent}.base{box-sizing:border-box;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_option-appearance-color-text,var(--_appearance-color-text));font:var(--vvd-typography-base);align-items:center;gap:var(--_option-gap);hyphens:auto;inline-size:100%;min-block-size:var(--_option-min-block-size);padding-inline:var(--_option-padding-inline);vertical-align:middle;word-break:break-word;--_option-min-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)));--_option-padding-inline:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);--_option-icon-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2);border-radius:8px;display:flex}.base:not(.two-lines){--_option-gap:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 4)) / 3);padding-block:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 4)}.base.two-lines{gap:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);padding-block:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)) / 2)}@supports (user-select:none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}:host([scale=condensed]) .base{--_option-min-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8));--_option-padding-inline:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)) / 2);--_option-icon-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5)}:host([scale=condensed]) .base:not(.two-lines){--_option-gap:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 5);padding-block:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 4)) / 6)}:host([scale=condensed]) .base.two-lines{gap:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 4)) / 3);padding-block:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8)) / 4)}.base.active{--focus-stroke-color:var(--vvd-color-cta-500);--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in srgb, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}.base.hidden{display:none}.text{font:var(--vvd-typography-base);flex-direction:column;gap:4px;margin-inline-end:auto;display:flex}.text-primary,.text-secondary{font:var(--vvd-typography-base);display:block}.text-primary{font:var(--vvd-typography-base)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}.match{color:var(--vvd-color-cta-600);font:var(--vvd-typography-base-bold)}slot[name=icon]{font-size:var(--_option-icon-size);line-height:1}.base:not(.disabled,.selected) slot[name=icon]{color:var(--vvd-color-neutral-600)}.checkmark{font-size:var(--_option-icon-size)}" });
111
+ var tooltipDefinition = defineVividComponent("tooltip", Tooltip, TooltipTemplate, [popupDefinition], { styles: tooltip_default });
204
112
  /**
205
- * Registers the listbox-option elements with the design system.
113
+ * Registers the tooltip elements with the design system.
206
114
  *
207
115
  * @param prefix - the prefix to use for the component name
208
116
  */
209
- var registerOption = createRegisterFunction(listboxOptionDefinition);
117
+ var registerTooltip = createRegisterFunction(tooltipDefinition);
210
118
  //#endregion
211
- export { isListboxOption as i, registerOption as n, ListboxOption as r, listboxOptionDefinition as t };
119
+ export { tooltipDefinition as n, Tooltip as r, registerTooltip as t };